diff --git a/third_party/googleapis/.gitignore b/third_party/googleapis/.gitignore index c4e73d4c1..ac0fa98b1 100644 --- a/third_party/googleapis/.gitignore +++ b/third_party/googleapis/.gitignore @@ -5,3 +5,4 @@ google/protobuf .project artman-genfiles/ bazel-* +.vscode/ diff --git a/third_party/googleapis/WORKSPACE b/third_party/googleapis/WORKSPACE index 8bf384036..b1c7283f5 100644 --- a/third_party/googleapis/WORKSPACE +++ b/third_party/googleapis/WORKSPACE @@ -93,21 +93,32 @@ load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") rules_pkg_dependencies() -# This must be above the download of gRPC (in C++ section) and -# rules_gapic_repositories because both depend on rules_go and we need to manage -# our version of rules_go explicitly rather than depend on the version those -# bring in transitively. -_io_bazel_rules_go_version = "0.44.2" +# This and gazelle must be above the download of gRPC (in C++ section) and +# rules_gapic_repositories because both depend on them and we need to manage +# our versions explicitly rather than depend on the version those bring in +# transitively. +_io_bazel_rules_go_version = "0.46.0" http_archive( name = "io_bazel_rules_go", - sha256 = "7c76d6236b28ff695aa28cf35f95de317a9472fd1fb14ac797c9bf684f09b37c", + sha256 = "80a98277ad1311dacd837f9b16db62887702e9f1d1c4c9f796d0121a46c8e184", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v{0}/rules_go-v{0}.zip".format(_io_bazel_rules_go_version), "https://github.com/bazelbuild/rules_go/releases/download/v{0}/rules_go-v{0}.zip".format(_io_bazel_rules_go_version), ], ) +_bazel_gazelle_version = "0.36.0" + +http_archive( + name = "bazel_gazelle", + sha256 = "75df288c4b31c81eb50f51e2e14f4763cb7548daae126817247064637fd9ea62", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v{0}/bazel-gazelle-v{0}.tar.gz".format(_bazel_gazelle_version), + "https://github.com/bazelbuild/bazel-gazelle/releases/download/v{0}/bazel-gazelle-v{0}.tar.gz".format(_bazel_gazelle_version), + ], +) + ############################################################################## # C++ ############################################################################## @@ -138,9 +149,9 @@ http_archive( # Explicitly declaring Protobuf version, while Protobuf dependency is already # instantiated in grpc_deps(). -_protobuf_version = "25.2" +_protobuf_version = "25.3" -_protobuf_sha256 = "8ff511a64fc46ee792d3fe49a5a1bcad6f7dc50dfbba5a28b0e5b979c17f9871" +_protobuf_sha256 = "d19643d265b978383352b3143f04c0641eea75a75235c111cc01a1350173180e" http_archive( name = "com_google_protobuf", @@ -204,29 +215,7 @@ http_archive( urls = ["https://github.com/googleapis/rules_gapic/archive/v%s.tar.gz" % _rules_gapic_version], ) -# Gazelle dependency version should match gazelle dependency expected by gRPC -_bazel_gazelle_version = "0.24.0" - -http_archive( - name = "bazel_gazelle", - sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v{0}/bazel-gazelle-v{0}.tar.gz".format(_bazel_gazelle_version), - "https://github.com/bazelbuild/bazel-gazelle/releases/download/v{0}/bazel-gazelle-v{0}.tar.gz".format(_bazel_gazelle_version), - ], -) - -# This overrides the package name @go_googleapis to point at this package, -# @com_google_googleapis, which has the latest versions of all protos and is the -# source of truth for those protos. This prevents rules_go from loading its own, -# conflicting copy of googleapis under this package name, which would create -# package collisions during compilation. -local_repository( - name = "go_googleapis", - path = ".", -) - -_gapic_generator_go_version = "0.40.0" +_gapic_generator_go_version = "0.44.0" http_archive( name = "com_googleapis_gapic_generator_go", @@ -274,7 +263,7 @@ maven_install( ], ) -_gapic_generator_java_version = "2.35.0" +_gapic_generator_java_version = "2.42.0" maven_install( artifacts = [ @@ -323,7 +312,7 @@ load("@rules_gapic//python:py_gapic_repositories.bzl", "py_gapic_repositories") py_gapic_repositories() -_gapic_generator_python_version = "1.14.3" +_gapic_generator_python_version = "1.18.2" http_archive( name = "gapic_generator_python", @@ -360,9 +349,9 @@ gapic_generator_register_toolchains() # TypeScript ############################################################################## -_gapic_generator_typescript_version = "4.4.2" +_gapic_generator_typescript_version = "4.6.1" -_gapic_generator_typescript_sha256 = "6cc1c90a0e5dfb7bbb4e58feb1fbb3c49290da7d064ae55e5a127408efaf101f" +_gapic_generator_typescript_sha256 = "80a3fb3ab55f581ca020b89550ea5c7d3b269e1cae4935605cf9e9d13eb26b3f" ### TypeScript generator http_archive( @@ -405,7 +394,7 @@ pnpm_repository(name = "pnpm") ############################################################################## # PHP micro-generator -_gapic_generator_php_version = "1.10.0" +_gapic_generator_php_version = "1.16.0" http_archive( name = "gapic_generator_php", @@ -438,9 +427,8 @@ http_archive( urls = ["https://github.com/googleapis/gax-dotnet/archive/refs/tags/%s.tar.gz" % _gax_dotnet_version], ) -_gapic_generator_csharp_version = "1.4.24" - -_gapic_generator_csharp_sha256 = "e163e1a1289d052942c7c2bf6736fa57c08e082ecadc07b949cd1bded7502612" +_gapic_generator_csharp_version = "1.4.30" +_gapic_generator_csharp_sha256 = "e2e40510fc59277a40c6d7df519a5bdd368f9f0035c2de5adf45265fea7539d7" http_archive( name = "gapic_generator_csharp", @@ -457,9 +445,9 @@ gapic_generator_csharp_repositories() # Ruby ############################################################################## -_gapic_generator_ruby_version = "v0.29.0" +_gapic_generator_ruby_version = "v0.33.0" -_gapic_generator_ruby_sha256 = "21d8c448e99eef6a2d8182f0422c70f8adddf9fc333d6c739e47720702ce52df" +_gapic_generator_ruby_sha256 = "a0a8f3816a9bf3fde60f696c21faebc233155bc0e2212e871b5b535f03f1ae3e" http_archive( name = "gapic_generator_ruby", @@ -476,7 +464,7 @@ gapic_generator_ruby_repositories() # Discovery ############################################################################## -_disco_to_proto3_converter_version = "8163e5ea8d8dbcf0899534d2895819ab135ffab5" +_disco_to_proto3_converter_version = "2091fbeb555cd7151df82b4b1b42f36cbddc1775" http_archive( name = "com_google_disco_to_proto3_converter", diff --git a/third_party/googleapis/api-index-v1.json b/third_party/googleapis/api-index-v1.json index 626b2ac9f..2ca408523 100644 --- a/third_party/googleapis/api-index-v1.json +++ b/third_party/googleapis/api-index-v1.json @@ -212,8453 +212,8585 @@ "nameInServiceConfig": "actions.googleapis.com" }, { - "id": "google.ads.googleads.v14", - "directory": "google/ads/googleads/v14", - "version": "v14", - "majorVersion": "v14", - "hostName": "googleads.googleapis.com", - "title": "Google Ads API", - "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", + "id": "google.ads.admanager.v1", + "directory": "google/ads/admanager/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "admanager.googleapis.com", + "title": "Google Ad Manager API", + "description": "Manage your Ad Manager inventory, run reports and more.", "importDirectories": [ - "google/ads/googleads/v14/common", - "google/ads/googleads/v14/enums", - "google/ads/googleads/v14/errors", - "google/ads/googleads/v14/resources", - "google/ads/googleads/v14/services", + "google/ads/admanager/v1", "google/api", "google/longrunning", "google/protobuf", - "google/rpc" + "google/type" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.GoogleAds.V14.Common": 35, - "Google.Ads.GoogleAds.V14.Enums": 315, - "Google.Ads.GoogleAds.V14.Errors": 145, - "Google.Ads.GoogleAds.V14.Resources": 165, - "Google.Ads.GoogleAds.V14.Services": 107 + "Google.Ads.AdManager.V1": 35 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common": 35, - "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums": 315, - "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors": 145, - "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources": 165, - "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services": 107 + "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager": 35 } }, "java_multiple_files": { "valueCounts": { - "true": 767 + "true": 35 } }, "java_package": { "valueCounts": { - "com.google.ads.googleads.v14.common": 35, - "com.google.ads.googleads.v14.enums": 315, - "com.google.ads.googleads.v14.errors": 145, - "com.google.ads.googleads.v14.resources": 165, - "com.google.ads.googleads.v14.services": 107 + "com.google.ads.admanager.v1": 35 } }, "objc_class_prefix": { "valueCounts": { - "GAA": 767 + "": 1, + "GAA": 34 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\GoogleAds\\V14\\Common": 35, - "Google\\Ads\\GoogleAds\\V14\\Enums": 315, - "Google\\Ads\\GoogleAds\\V14\\Errors": 145, - "Google\\Ads\\GoogleAds\\V14\\Resources": 165, - "Google\\Ads\\GoogleAds\\V14\\Services": 107 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Ads::GoogleAds::V14::Common": 35, - "Google::Ads::GoogleAds::V14::Enums": 315, - "Google::Ads::GoogleAds::V14::Errors": 145, - "Google::Ads::GoogleAds::V14::Resources": 165, - "Google::Ads::GoogleAds::V14::Services": 107 + "Google\\Ads\\AdManager\\V1": 35 } } }, "services": [ { - "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v14.services.AccountBudgetProposalService", + "shortName": "AdPartnerService", + "fullName": "google.ads.admanager.v1.AdPartnerService", "methods": [ { - "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v14.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "shortName": "GetAdPartner", + "fullName": "google.ads.admanager.v1.AdPartnerService.GetAdPartner", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/accountBudgetProposals:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/adPartners/*}" + } + ] + }, + { + "shortName": "ListAdPartners", + "fullName": "google.ads.admanager.v1.AdPartnerService.ListAdPartners", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/adPartners" } ] } ] }, { - "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v14.services.AccountLinkService", + "shortName": "AdUnitService", + "fullName": "google.ads.admanager.v1.AdUnitService", "methods": [ { - "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v14.services.AccountLinkService.CreateAccountLink", + "shortName": "GetAdUnit", + "fullName": "google.ads.admanager.v1.AdUnitService.GetAdUnit", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/accountLinks:create" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/adUnits/*}" } ] }, { - "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v14.services.AccountLinkService.MutateAccountLink", + "shortName": "ListAdUnits", + "fullName": "google.ads.admanager.v1.AdUnitService.ListAdUnits", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/accountLinks:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/adUnits" } ] } ] }, { - "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v14.services.AdGroupAdLabelService", + "shortName": "CompanyService", + "fullName": "google.ads.admanager.v1.CompanyService", "methods": [ { - "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v14.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "shortName": "GetCompany", + "fullName": "google.ads.admanager.v1.CompanyService.GetCompany", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupAdLabels:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/companies/*}" } ] - } - ] - }, - { - "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v14.services.AdGroupAdService", - "methods": [ + }, { - "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v14.services.AdGroupAdService.MutateAdGroupAds", + "shortName": "ListCompanies", + "fullName": "google.ads.admanager.v1.CompanyService.ListCompanies", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupAds:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/companies" } ] } ] }, { - "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v14.services.AdGroupAssetService", + "shortName": "ContactService", + "fullName": "google.ads.admanager.v1.ContactService", "methods": [ { - "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v14.services.AdGroupAssetService.MutateAdGroupAssets", + "shortName": "GetContact", + "fullName": "google.ads.admanager.v1.ContactService.GetContact", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupAssets:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/contacts/*}" } ] - } - ] - }, - { - "shortName": "AdGroupAssetSetService", - "fullName": "google.ads.googleads.v14.services.AdGroupAssetSetService", - "methods": [ + }, { - "shortName": "MutateAdGroupAssetSets", - "fullName": "google.ads.googleads.v14.services.AdGroupAssetSetService.MutateAdGroupAssetSets", + "shortName": "ListContacts", + "fullName": "google.ads.admanager.v1.ContactService.ListContacts", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupAssetSets:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/contacts" } ] } ] }, { - "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v14.services.AdGroupBidModifierService", + "shortName": "CreativeService", + "fullName": "google.ads.admanager.v1.CreativeService", "methods": [ { - "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v14.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "shortName": "GetCreative", + "fullName": "google.ads.admanager.v1.CreativeService.GetCreative", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/creatives/*}" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v14.services.AdGroupCriterionCustomizerService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v14.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "shortName": "ListCreatives", + "fullName": "google.ads.admanager.v1.CreativeService.ListCreatives", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/creatives" } ] } ] }, { - "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v14.services.AdGroupCriterionLabelService", + "shortName": "CustomFieldService", + "fullName": "google.ads.admanager.v1.CustomFieldService", "methods": [ { - "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v14.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "shortName": "GetCustomField", + "fullName": "google.ads.admanager.v1.CustomFieldService.GetCustomField", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/customFields/*}" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v14.services.AdGroupCriterionService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v14.services.AdGroupCriterionService.MutateAdGroupCriteria", + "shortName": "ListCustomFields", + "fullName": "google.ads.admanager.v1.CustomFieldService.ListCustomFields", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupCriteria:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/customFields" } ] } ] }, { - "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v14.services.AdGroupCustomizerService", + "shortName": "CustomTargetingKeyService", + "fullName": "google.ads.admanager.v1.CustomTargetingKeyService", "methods": [ { - "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v14.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "shortName": "GetCustomTargetingKey", + "fullName": "google.ads.admanager.v1.CustomTargetingKeyService.GetCustomTargetingKey", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupCustomizers:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/customTargetingKeys/*}" } ] - } - ] - }, - { - "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v14.services.AdGroupExtensionSettingService", - "methods": [ + }, { - "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v14.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "shortName": "ListCustomTargetingKeys", + "fullName": "google.ads.admanager.v1.CustomTargetingKeyService.ListCustomTargetingKeys", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/customTargetingKeys" } ] } ] }, { - "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v14.services.AdGroupFeedService", + "shortName": "CustomTargetingValueService", + "fullName": "google.ads.admanager.v1.CustomTargetingValueService", "methods": [ { - "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v14.services.AdGroupFeedService.MutateAdGroupFeeds", + "shortName": "GetCustomTargetingValue", + "fullName": "google.ads.admanager.v1.CustomTargetingValueService.GetCustomTargetingValue", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupFeeds:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/customTargetingKeys/*/customTargetingValues/*}" } ] - } - ] - }, - { - "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v14.services.AdGroupLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v14.services.AdGroupLabelService.MutateAdGroupLabels", + "shortName": "ListCustomTargetingValues", + "fullName": "google.ads.admanager.v1.CustomTargetingValueService.ListCustomTargetingValues", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroupLabels:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*/customTargetingKeys/*}/customTargetingValues" } ] } ] }, { - "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v14.services.AdGroupService", + "shortName": "LabelService", + "fullName": "google.ads.admanager.v1.LabelService", "methods": [ { - "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v14.services.AdGroupService.MutateAdGroups", + "shortName": "GetLabel", + "fullName": "google.ads.admanager.v1.LabelService.GetLabel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adGroups:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/labels/*}" } ] - } - ] - }, - { - "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v14.services.AdParameterService", - "methods": [ + }, { - "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v14.services.AdParameterService.MutateAdParameters", + "shortName": "ListLabels", + "fullName": "google.ads.admanager.v1.LabelService.ListLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/adParameters:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/labels" } ] } ] }, { - "shortName": "AdService", - "fullName": "google.ads.googleads.v14.services.AdService", + "shortName": "LineItemService", + "fullName": "google.ads.admanager.v1.LineItemService", "methods": [ { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v14.services.AdService.GetAd", + "shortName": "GetLineItem", + "fullName": "google.ads.admanager.v1.LineItemService.GetLineItem", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v14/{resource_name=customers/*/ads/*}" + "path": "/v1/{name=networks/*/orders/*/lineItems/*}" } ] }, { - "shortName": "MutateAds", - "fullName": "google.ads.googleads.v14.services.AdService.MutateAds", + "shortName": "ListLineItems", + "fullName": "google.ads.admanager.v1.LineItemService.ListLineItems", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/ads:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*/orders/*}/lineItems" } ] } ] }, { - "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v14.services.AssetGroupAssetService", + "shortName": "NetworkService", + "fullName": "google.ads.admanager.v1.NetworkService", "methods": [ { - "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v14.services.AssetGroupAssetService.MutateAssetGroupAssets", + "shortName": "GetNetwork", + "fullName": "google.ads.admanager.v1.NetworkService.GetNetwork", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assetGroupAssets:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*}" } ] } ] }, { - "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v14.services.AssetGroupListingGroupFilterService", + "shortName": "OrderService", + "fullName": "google.ads.admanager.v1.OrderService", "methods": [ { - "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v14.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "shortName": "GetOrder", + "fullName": "google.ads.admanager.v1.OrderService.GetOrder", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/orders/*}" } ] - } - ] - }, - { - "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v14.services.AssetGroupService", - "methods": [ + }, { - "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v14.services.AssetGroupService.MutateAssetGroups", + "shortName": "ListOrders", + "fullName": "google.ads.admanager.v1.OrderService.ListOrders", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assetGroups:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/orders" } ] } ] }, { - "shortName": "AssetGroupSignalService", - "fullName": "google.ads.googleads.v14.services.AssetGroupSignalService", + "shortName": "PlacementService", + "fullName": "google.ads.admanager.v1.PlacementService", "methods": [ { - "shortName": "MutateAssetGroupSignals", - "fullName": "google.ads.googleads.v14.services.AssetGroupSignalService.MutateAssetGroupSignals", + "shortName": "GetPlacement", + "fullName": "google.ads.admanager.v1.PlacementService.GetPlacement", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assetGroupSignals:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/placements/*}" } ] - } - ] - }, - { - "shortName": "AssetService", - "fullName": "google.ads.googleads.v14.services.AssetService", - "methods": [ + }, { - "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v14.services.AssetService.MutateAssets", + "shortName": "ListPlacements", + "fullName": "google.ads.admanager.v1.PlacementService.ListPlacements", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assets:mutate" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/placements" } ] } ] }, { - "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v14.services.AssetSetAssetService", + "shortName": "ReportService", + "fullName": "google.ads.admanager.v1.ReportService", "methods": [ { - "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v14.services.AssetSetAssetService.MutateAssetSetAssets", + "shortName": "ExportSavedReport", + "fullName": "google.ads.admanager.v1.ReportService.ExportSavedReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assetSetAssets:mutate" + "path": "/v1/{report=networks/*/reports/*}:exportSavedReport" } ] } ] }, { - "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v14.services.AssetSetService", + "shortName": "RoleService", + "fullName": "google.ads.admanager.v1.RoleService", "methods": [ { - "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v14.services.AssetSetService.MutateAssetSets", + "shortName": "GetRole", + "fullName": "google.ads.admanager.v1.RoleService.GetRole", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/assetSets:mutate" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/roles/*}" + } + ] + }, + { + "shortName": "ListRoles", + "fullName": "google.ads.admanager.v1.RoleService.ListRoles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/roles" } ] } ] }, { - "shortName": "AudienceInsightsService", - "fullName": "google.ads.googleads.v14.services.AudienceInsightsService", + "shortName": "TeamService", + "fullName": "google.ads.admanager.v1.TeamService", "methods": [ { - "shortName": "GenerateAudienceCompositionInsights", - "fullName": "google.ads.googleads.v14.services.AudienceInsightsService.GenerateAudienceCompositionInsights", + "shortName": "GetTeam", + "fullName": "google.ads.admanager.v1.TeamService.GetTeam", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateAudienceCompositionInsights" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/teams/*}" } ] }, { - "shortName": "GenerateInsightsFinderReport", - "fullName": "google.ads.googleads.v14.services.AudienceInsightsService.GenerateInsightsFinderReport", + "shortName": "ListTeams", + "fullName": "google.ads.admanager.v1.TeamService.ListTeams", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateInsightsFinderReport" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/teams" } ] - }, + } + ] + }, + { + "shortName": "UserService", + "fullName": "google.ads.admanager.v1.UserService", + "methods": [ { - "shortName": "ListAudienceInsightsAttributes", - "fullName": "google.ads.googleads.v14.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "shortName": "GetUser", + "fullName": "google.ads.admanager.v1.UserService.GetUser", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:searchAudienceInsightsAttributes" + "httpMethod": "GET", + "path": "/v1/{name=networks/*/users/*}" } ] }, { - "shortName": "ListInsightsEligibleDates", - "fullName": "google.ads.googleads.v14.services.AudienceInsightsService.ListInsightsEligibleDates", + "shortName": "ListUsers", + "fullName": "google.ads.admanager.v1.UserService.ListUsers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/audienceInsights:listInsightsEligibleDates" + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/users" } ] } ] + } + ], + "configFile": "admanager_v1.yaml", + "serviceConfigApiNames": [ + "google.ads.admanager.v1.AdPartnerService", + "google.ads.admanager.v1.AdUnitService", + "google.ads.admanager.v1.CompanyService", + "google.ads.admanager.v1.ContactService", + "google.ads.admanager.v1.CreativeService", + "google.ads.admanager.v1.CustomFieldService", + "google.ads.admanager.v1.CustomTargetingKeyService", + "google.ads.admanager.v1.CustomTargetingValueService", + "google.ads.admanager.v1.LabelService", + "google.ads.admanager.v1.LineItemService", + "google.ads.admanager.v1.NetworkService", + "google.ads.admanager.v1.OrderService", + "google.ads.admanager.v1.PlacementService", + "google.ads.admanager.v1.ReportService", + "google.ads.admanager.v1.RoleService", + "google.ads.admanager.v1.TeamService", + "google.ads.admanager.v1.UserService", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "admanager.googleapis.com" + }, + { + "id": "google.ads.googleads.v15", + "directory": "google/ads/googleads/v15", + "version": "v15", + "majorVersion": "v15", + "hostName": "googleads.googleapis.com", + "title": "Google Ads API", + "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", + "importDirectories": [ + "google/ads/googleads/v15/common", + "google/ads/googleads/v15/enums", + "google/ads/googleads/v15/errors", + "google/ads/googleads/v15/resources", + "google/ads/googleads/v15/services", + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Ads.GoogleAds.V15.Common": 38, + "Google.Ads.GoogleAds.V15.Enums": 338, + "Google.Ads.GoogleAds.V15.Errors": 151, + "Google.Ads.GoogleAds.V15.Resources": 176, + "Google.Ads.GoogleAds.V15.Services": 110 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common": 38, + "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums": 338, + "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors": 151, + "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources": 176, + "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services": 110 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 813 + } + }, + "java_package": { + "valueCounts": { + "com.google.ads.googleads.v15.common": 38, + "com.google.ads.googleads.v15.enums": 338, + "com.google.ads.googleads.v15.errors": 151, + "com.google.ads.googleads.v15.resources": 176, + "com.google.ads.googleads.v15.services": 110 + } }, + "objc_class_prefix": { + "valueCounts": { + "GAA": 813 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Ads\\GoogleAds\\V15\\Common": 38, + "Google\\Ads\\GoogleAds\\V15\\Enums": 338, + "Google\\Ads\\GoogleAds\\V15\\Errors": 151, + "Google\\Ads\\GoogleAds\\V15\\Resources": 176, + "Google\\Ads\\GoogleAds\\V15\\Services": 110 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Ads::GoogleAds::V15::Common": 38, + "Google::Ads::GoogleAds::V15::Enums": 338, + "Google::Ads::GoogleAds::V15::Errors": 151, + "Google::Ads::GoogleAds::V15::Resources": 176, + "Google::Ads::GoogleAds::V15::Services": 110 + } + } + }, + "services": [ { - "shortName": "AudienceService", - "fullName": "google.ads.googleads.v14.services.AudienceService", + "shortName": "AccountBudgetProposalService", + "fullName": "google.ads.googleads.v15.services.AccountBudgetProposalService", "methods": [ { - "shortName": "MutateAudiences", - "fullName": "google.ads.googleads.v14.services.AudienceService.MutateAudiences", + "shortName": "MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v15.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/audiences:mutate" + "path": "/v15/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } ] }, { - "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v14.services.BatchJobService", + "shortName": "AccountLinkService", + "fullName": "google.ads.googleads.v15.services.AccountLinkService", "methods": [ { - "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v14.services.BatchJobService.AddBatchJobOperations", + "shortName": "CreateAccountLink", + "fullName": "google.ads.googleads.v15.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/batchJobs/*}:addOperations" + "path": "/v15/customers/{customer_id=*}/accountLinks:create" } ] }, { - "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v14.services.BatchJobService.ListBatchJobResults", + "shortName": "MutateAccountLink", + "fullName": "google.ads.googleads.v15.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/{resource_name=customers/*/batchJobs/*}:listResults" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/accountLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupAdLabelService", + "fullName": "google.ads.googleads.v15.services.AdGroupAdLabelService", + "methods": [ { - "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v14.services.BatchJobService.MutateBatchJob", + "shortName": "MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v15.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupAdService", + "fullName": "google.ads.googleads.v15.services.AdGroupAdService", + "methods": [ { - "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v14.services.BatchJobService.RunBatchJob", + "shortName": "MutateAdGroupAds", + "fullName": "google.ads.googleads.v15.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v15/customers/{customer_id=*}/adGroupAds:mutate" } ] } ] }, { - "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v14.services.BiddingDataExclusionService", + "shortName": "AdGroupAssetService", + "fullName": "google.ads.googleads.v15.services.AdGroupAssetService", "methods": [ { - "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v14.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "shortName": "MutateAdGroupAssets", + "fullName": "google.ads.googleads.v15.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupAssets:mutate" } ] } ] }, { - "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService", + "shortName": "AdGroupAssetSetService", + "fullName": "google.ads.googleads.v15.services.AdGroupAssetSetService", "methods": [ { - "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "shortName": "MutateAdGroupAssetSets", + "fullName": "google.ads.googleads.v15.services.AdGroupAssetSetService.MutateAdGroupAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupAssetSets:mutate" } ] } ] }, { - "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v14.services.BiddingStrategyService", + "shortName": "AdGroupBidModifierService", + "fullName": "google.ads.googleads.v15.services.AdGroupBidModifierService", "methods": [ { - "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v14.services.BiddingStrategyService.MutateBiddingStrategies", + "shortName": "MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v15.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } ] }, { - "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v14.services.BillingSetupService", + "shortName": "AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService", "methods": [ { - "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v14.services.BillingSetupService.MutateBillingSetup", + "shortName": "MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v15/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } ] }, { - "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v14.services.CampaignAssetService", + "shortName": "AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v15.services.AdGroupCriterionLabelService", "methods": [ { - "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v14.services.CampaignAssetService.MutateCampaignAssets", + "shortName": "MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v15.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } ] }, { - "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v14.services.CampaignAssetSetService", + "shortName": "AdGroupCriterionService", + "fullName": "google.ads.googleads.v15.services.AdGroupCriterionService", "methods": [ { - "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v14.services.CampaignAssetSetService.MutateCampaignAssetSets", + "shortName": "MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v15.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } ] }, { - "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v14.services.CampaignBidModifierService", + "shortName": "AdGroupCustomizerService", + "fullName": "google.ads.googleads.v15.services.AdGroupCustomizerService", "methods": [ { - "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v14.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "shortName": "MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v15.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } ] }, { - "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v14.services.CampaignBudgetService", + "shortName": "AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v15.services.AdGroupExtensionSettingService", "methods": [ { - "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v14.services.CampaignBudgetService.MutateCampaignBudgets", + "shortName": "MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v15.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } ] }, { - "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v14.services.CampaignConversionGoalService", + "shortName": "AdGroupFeedService", + "fullName": "google.ads.googleads.v15.services.AdGroupFeedService", "methods": [ { - "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v14.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "shortName": "MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v15.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignConversionGoals:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } ] }, { - "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v14.services.CampaignCriterionService", + "shortName": "AdGroupLabelService", + "fullName": "google.ads.googleads.v15.services.AdGroupLabelService", "methods": [ { - "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v14.services.CampaignCriterionService.MutateCampaignCriteria", + "shortName": "MutateAdGroupLabels", + "fullName": "google.ads.googleads.v15.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v15/customers/{customer_id=*}/adGroupLabels:mutate" } ] } ] }, { - "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v14.services.CampaignCustomizerService", + "shortName": "AdGroupService", + "fullName": "google.ads.googleads.v15.services.AdGroupService", "methods": [ { - "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v14.services.CampaignCustomizerService.MutateCampaignCustomizers", + "shortName": "MutateAdGroups", + "fullName": "google.ads.googleads.v15.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v15/customers/{customer_id=*}/adGroups:mutate" } ] } ] }, { - "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v14.services.CampaignDraftService", + "shortName": "AdParameterService", + "fullName": "google.ads.googleads.v15.services.AdParameterService", "methods": [ { - "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v14.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "shortName": "MutateAdParameters", + "fullName": "google.ads.googleads.v15.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/adParameters:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdService", + "fullName": "google.ads.googleads.v15.services.AdService", + "methods": [ { - "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v14.services.CampaignDraftService.MutateCampaignDrafts", + "shortName": "GetAd", + "fullName": "google.ads.googleads.v15.services.AdService.GetAd", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignDrafts:mutate" + "httpMethod": "GET", + "path": "/v15/{resource_name=customers/*/ads/*}" } ] }, { - "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v14.services.CampaignDraftService.PromoteCampaignDraft", + "shortName": "MutateAds", + "fullName": "google.ads.googleads.v15.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v15/customers/{customer_id=*}/ads:mutate" } ] } ] }, { - "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v14.services.CampaignExtensionSettingService", + "shortName": "AssetGroupAssetService", + "fullName": "google.ads.googleads.v15.services.AssetGroupAssetService", "methods": [ { - "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v14.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "shortName": "MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v15.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v15/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } ] }, { - "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v14.services.CampaignFeedService", + "shortName": "AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService", "methods": [ { - "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v14.services.CampaignFeedService.MutateCampaignFeeds", + "shortName": "MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v15/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } ] }, { - "shortName": "CampaignGroupService", - "fullName": "google.ads.googleads.v14.services.CampaignGroupService", + "shortName": "AssetGroupService", + "fullName": "google.ads.googleads.v15.services.AssetGroupService", "methods": [ { - "shortName": "MutateCampaignGroups", - "fullName": "google.ads.googleads.v14.services.CampaignGroupService.MutateCampaignGroups", + "shortName": "MutateAssetGroups", + "fullName": "google.ads.googleads.v15.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignGroups:mutate" + "path": "/v15/customers/{customer_id=*}/assetGroups:mutate" } ] } ] }, { - "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v14.services.CampaignLabelService", + "shortName": "AssetGroupSignalService", + "fullName": "google.ads.googleads.v15.services.AssetGroupSignalService", "methods": [ { - "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v14.services.CampaignLabelService.MutateCampaignLabels", + "shortName": "MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v15.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v15/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } ] }, { - "shortName": "CampaignService", - "fullName": "google.ads.googleads.v14.services.CampaignService", + "shortName": "AssetService", + "fullName": "google.ads.googleads.v15.services.AssetService", "methods": [ { - "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v14.services.CampaignService.MutateCampaigns", + "shortName": "MutateAssets", + "fullName": "google.ads.googleads.v15.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaigns:mutate" + "path": "/v15/customers/{customer_id=*}/assets:mutate" } ] } ] }, { - "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v14.services.CampaignSharedSetService", + "shortName": "AssetSetAssetService", + "fullName": "google.ads.googleads.v15.services.AssetSetAssetService", "methods": [ { - "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v14.services.CampaignSharedSetService.MutateCampaignSharedSets", + "shortName": "MutateAssetSetAssets", + "fullName": "google.ads.googleads.v15.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v15/customers/{customer_id=*}/assetSetAssets:mutate" } ] } ] }, { - "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v14.services.ConversionActionService", + "shortName": "AssetSetService", + "fullName": "google.ads.googleads.v15.services.AssetSetService", "methods": [ { - "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v14.services.ConversionActionService.MutateConversionActions", + "shortName": "MutateAssetSets", + "fullName": "google.ads.googleads.v15.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v15/customers/{customer_id=*}/assetSets:mutate" } ] } ] }, { - "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v14.services.ConversionAdjustmentUploadService", + "shortName": "AudienceInsightsService", + "fullName": "google.ads.googleads.v15.services.AudienceInsightsService", "methods": [ { - "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v14.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "shortName": "GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v15/customers/{customer_id=*}:generateAudienceCompositionInsights" } ] - } - ] - }, - { - "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v14.services.ConversionCustomVariableService", - "methods": [ + }, { - "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v14.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "shortName": "GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v15/customers/{customer_id=*}:generateInsightsFinderReport" } ] - } - ] - }, - { - "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v14.services.ConversionGoalCampaignConfigService", - "methods": [ + }, { - "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v14.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "shortName": "GenerateSuggestedTargetingInsights", + "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "path": "/v15/customers/{customer_id=*}:generateSuggestedTargetingInsights" } ] - } - ] - }, - { - "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v14.services.ConversionUploadService", - "methods": [ + }, { - "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v14.services.ConversionUploadService.UploadCallConversions", + "shortName": "ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.ListAudienceInsightsAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:uploadCallConversions" + "path": "/v15/customers/{customer_id=*}:searchAudienceInsightsAttributes" } ] }, { - "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v14.services.ConversionUploadService.UploadClickConversions", + "shortName": "ListInsightsEligibleDates", + "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.ListInsightsEligibleDates", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:uploadClickConversions" + "path": "/v15/audienceInsights:listInsightsEligibleDates" } ] } ] }, { - "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v14.services.ConversionValueRuleService", + "shortName": "AudienceService", + "fullName": "google.ads.googleads.v15.services.AudienceService", "methods": [ { - "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v14.services.ConversionValueRuleService.MutateConversionValueRules", + "shortName": "MutateAudiences", + "fullName": "google.ads.googleads.v15.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v15/customers/{customer_id=*}/audiences:mutate" } ] } ] }, { - "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v14.services.ConversionValueRuleSetService", + "shortName": "BatchJobService", + "fullName": "google.ads.googleads.v15.services.BatchJobService", "methods": [ { - "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v14.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "shortName": "AddBatchJobOperations", + "fullName": "google.ads.googleads.v15.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v15/{resource_name=customers/*/batchJobs/*}:addOperations" } ] - } - ] - }, - { - "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v14.services.CustomAudienceService", - "methods": [ + }, { - "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v14.services.CustomAudienceService.MutateCustomAudiences", + "shortName": "ListBatchJobResults", + "fullName": "google.ads.googleads.v15.services.BatchJobService.ListBatchJobResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v15/{resource_name=customers/*/batchJobs/*}:listResults" + } + ] + }, + { + "shortName": "MutateBatchJob", + "fullName": "google.ads.googleads.v15.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v15/customers/{customer_id=*}/batchJobs:mutate" } ] - } - ] - }, - { - "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v14.services.CustomConversionGoalService", - "methods": [ + }, { - "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v14.services.CustomConversionGoalService.MutateCustomConversionGoals", + "shortName": "RunBatchJob", + "fullName": "google.ads.googleads.v15.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customConversionGoals:mutate" + "path": "/v15/{resource_name=customers/*/batchJobs/*}:run" } ] } ] }, { - "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v14.services.CustomInterestService", + "shortName": "BiddingDataExclusionService", + "fullName": "google.ads.googleads.v15.services.BiddingDataExclusionService", "methods": [ { - "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v14.services.CustomInterestService.MutateCustomInterests", + "shortName": "MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v15.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customInterests:mutate" + "path": "/v15/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } ] }, { - "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v14.services.CustomerAssetService", + "shortName": "BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService", "methods": [ { - "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v14.services.CustomerAssetService.MutateCustomerAssets", + "shortName": "MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v15/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } ] }, { - "shortName": "CustomerAssetSetService", - "fullName": "google.ads.googleads.v14.services.CustomerAssetSetService", + "shortName": "BiddingStrategyService", + "fullName": "google.ads.googleads.v15.services.BiddingStrategyService", "methods": [ { - "shortName": "MutateCustomerAssetSets", - "fullName": "google.ads.googleads.v14.services.CustomerAssetSetService.MutateCustomerAssetSets", + "shortName": "MutateBiddingStrategies", + "fullName": "google.ads.googleads.v15.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerAssetSets:mutate" + "path": "/v15/customers/{customer_id=*}/biddingStrategies:mutate" } ] } ] }, { - "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v14.services.CustomerClientLinkService", + "shortName": "BillingSetupService", + "fullName": "google.ads.googleads.v15.services.BillingSetupService", "methods": [ { - "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v14.services.CustomerClientLinkService.MutateCustomerClientLink", + "shortName": "MutateBillingSetup", + "fullName": "google.ads.googleads.v15.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v15/customers/{customer_id=*}/billingSetups:mutate" } ] } ] }, { - "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v14.services.CustomerConversionGoalService", + "shortName": "BrandSuggestionService", + "fullName": "google.ads.googleads.v15.services.BrandSuggestionService", "methods": [ { - "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v14.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "shortName": "SuggestBrands", + "fullName": "google.ads.googleads.v15.services.BrandSuggestionService.SuggestBrands", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v15/customers/{customer_id=*}:suggestBrands" } ] } ] }, { - "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v14.services.CustomerCustomizerService", + "shortName": "CampaignAssetService", + "fullName": "google.ads.googleads.v15.services.CampaignAssetService", "methods": [ { - "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v14.services.CustomerCustomizerService.MutateCustomerCustomizers", + "shortName": "MutateCampaignAssets", + "fullName": "google.ads.googleads.v15.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/CustomerCustomizers:mutate" + "path": "/v15/customers/{customer_id=*}/campaignAssets:mutate" } ] } ] }, { - "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v14.services.CustomerExtensionSettingService", + "shortName": "CampaignAssetSetService", + "fullName": "google.ads.googleads.v15.services.CampaignAssetSetService", "methods": [ { - "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v14.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "shortName": "MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v15.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v15/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } ] }, { - "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v14.services.CustomerFeedService", + "shortName": "CampaignBidModifierService", + "fullName": "google.ads.googleads.v15.services.CampaignBidModifierService", "methods": [ { - "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v14.services.CustomerFeedService.MutateCustomerFeeds", + "shortName": "MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v15.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v15/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } ] }, { - "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v14.services.CustomerLabelService", + "shortName": "CampaignBudgetService", + "fullName": "google.ads.googleads.v15.services.CampaignBudgetService", "methods": [ { - "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v14.services.CustomerLabelService.MutateCustomerLabels", + "shortName": "MutateCampaignBudgets", + "fullName": "google.ads.googleads.v15.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v15/customers/{customer_id=*}/campaignBudgets:mutate" } ] } ] }, { - "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v14.services.CustomerManagerLinkService", + "shortName": "CampaignConversionGoalService", + "fullName": "google.ads.googleads.v15.services.CampaignConversionGoalService", "methods": [ { - "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v14.services.CustomerManagerLinkService.MoveManagerLink", + "shortName": "MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v15.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "path": "/v15/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignCriterionService", + "fullName": "google.ads.googleads.v15.services.CampaignCriterionService", + "methods": [ { - "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v14.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "shortName": "MutateCampaignCriteria", + "fullName": "google.ads.googleads.v15.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v15/customers/{customer_id=*}/campaignCriteria:mutate" } ] } ] }, { - "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v14.services.CustomerNegativeCriterionService", + "shortName": "CampaignCustomizerService", + "fullName": "google.ads.googleads.v15.services.CampaignCustomizerService", "methods": [ { - "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v14.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "shortName": "MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v15.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v15/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.googleads.v14.services.CustomerService", + "shortName": "CampaignDraftService", + "fullName": "google.ads.googleads.v15.services.CampaignDraftService", "methods": [ { - "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v14.services.CustomerService.CreateCustomerClient", + "shortName": "ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v15.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:createCustomerClient" + "httpMethod": "GET", + "path": "/v15/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v14.services.CustomerService.ListAccessibleCustomers", + "shortName": "MutateCampaignDrafts", + "fullName": "google.ads.googleads.v15.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/customers:listAccessibleCustomers" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/campaignDrafts:mutate" } ] }, { - "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v14.services.CustomerService.MutateCustomer", + "shortName": "PromoteCampaignDraft", + "fullName": "google.ads.googleads.v15.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:mutate" + "path": "/v15/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } ] }, { - "shortName": "CustomerSkAdNetworkConversionValueSchemaService", - "fullName": "google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService", + "shortName": "CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v15.services.CampaignExtensionSettingService", "methods": [ { - "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", - "fullName": "google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", + "shortName": "MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v15.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + "path": "/v15/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } ] }, { - "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v14.services.CustomerUserAccessInvitationService", + "shortName": "CampaignFeedService", + "fullName": "google.ads.googleads.v15.services.CampaignFeedService", "methods": [ { - "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v14.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "shortName": "MutateCampaignFeeds", + "fullName": "google.ads.googleads.v15.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v15/customers/{customer_id=*}/campaignFeeds:mutate" } ] } ] }, { - "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v14.services.CustomerUserAccessService", + "shortName": "CampaignGroupService", + "fullName": "google.ads.googleads.v15.services.CampaignGroupService", "methods": [ { - "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v14.services.CustomerUserAccessService.MutateCustomerUserAccess", + "shortName": "MutateCampaignGroups", + "fullName": "google.ads.googleads.v15.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v15/customers/{customer_id=*}/campaignGroups:mutate" } ] } ] }, { - "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v14.services.CustomizerAttributeService", + "shortName": "CampaignLabelService", + "fullName": "google.ads.googleads.v15.services.CampaignLabelService", "methods": [ { - "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v14.services.CustomizerAttributeService.MutateCustomizerAttributes", + "shortName": "MutateCampaignLabels", + "fullName": "google.ads.googleads.v15.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/customizerAttributes:mutate" + "path": "/v15/customers/{customer_id=*}/campaignLabels:mutate" } ] } ] }, { - "shortName": "ExperimentArmService", - "fullName": "google.ads.googleads.v14.services.ExperimentArmService", + "shortName": "CampaignLifecycleService", + "fullName": "google.ads.googleads.v15.services.CampaignLifecycleService", "methods": [ { - "shortName": "MutateExperimentArms", - "fullName": "google.ads.googleads.v14.services.ExperimentArmService.MutateExperimentArms", + "shortName": "ConfigureCampaignLifecycleGoals", + "fullName": "google.ads.googleads.v15.services.CampaignLifecycleService.ConfigureCampaignLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/experimentArms:mutate" + "path": "/v15/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" } ] } ] }, { - "shortName": "ExperimentService", - "fullName": "google.ads.googleads.v14.services.ExperimentService", + "shortName": "CampaignService", + "fullName": "google.ads.googleads.v15.services.CampaignService", "methods": [ { - "shortName": "EndExperiment", - "fullName": "google.ads.googleads.v14.services.ExperimentService.EndExperiment", + "shortName": "MutateCampaigns", + "fullName": "google.ads.googleads.v15.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{experiment=customers/*/experiments/*}:endExperiment" + "path": "/v15/customers/{customer_id=*}/campaigns:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignSharedSetService", + "fullName": "google.ads.googleads.v15.services.CampaignSharedSetService", + "methods": [ { - "shortName": "GraduateExperiment", - "fullName": "google.ads.googleads.v14.services.ExperimentService.GraduateExperiment", + "shortName": "MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v15.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{experiment=customers/*/experiments/*}:graduateExperiment" + "path": "/v15/customers/{customer_id=*}/campaignSharedSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionActionService", + "fullName": "google.ads.googleads.v15.services.ConversionActionService", + "methods": [ { - "shortName": "ListExperimentAsyncErrors", - "fullName": "google.ads.googleads.v14.services.ExperimentService.ListExperimentAsyncErrors", + "shortName": "MutateConversionActions", + "fullName": "google.ads.googleads.v15.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/conversionActions:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService", + "methods": [ { - "shortName": "MutateExperiments", - "fullName": "google.ads.googleads.v14.services.ExperimentService.MutateExperiments", + "shortName": "UploadConversionAdjustments", + "fullName": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/experiments:mutate" + "path": "/v15/customers/{customer_id=*}:uploadConversionAdjustments" } ] - }, + } + ] + }, + { + "shortName": "ConversionCustomVariableService", + "fullName": "google.ads.googleads.v15.services.ConversionCustomVariableService", + "methods": [ { - "shortName": "PromoteExperiment", - "fullName": "google.ads.googleads.v14.services.ExperimentService.PromoteExperiment", + "shortName": "MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v15.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/experiments/*}:promoteExperiment" + "path": "/v15/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService", + "methods": [ { - "shortName": "ScheduleExperiment", - "fullName": "google.ads.googleads.v14.services.ExperimentService.ScheduleExperiment", + "shortName": "MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/experiments/*}:scheduleExperiment" + "path": "/v15/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } ] }, { - "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v14.services.ExtensionFeedItemService", + "shortName": "ConversionUploadService", + "fullName": "google.ads.googleads.v15.services.ConversionUploadService", "methods": [ { - "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v14.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "shortName": "UploadCallConversions", + "fullName": "google.ads.googleads.v15.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v15/customers/{customer_id=*}:uploadCallConversions" } ] - } - ] - }, - { - "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v14.services.FeedItemService", - "methods": [ + }, { - "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v14.services.FeedItemService.MutateFeedItems", + "shortName": "UploadClickConversions", + "fullName": "google.ads.googleads.v15.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/feedItems:mutate" + "path": "/v15/customers/{customer_id=*}:uploadClickConversions" } ] } ] }, { - "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v14.services.FeedItemSetLinkService", + "shortName": "ConversionValueRuleService", + "fullName": "google.ads.googleads.v15.services.ConversionValueRuleService", "methods": [ { - "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v14.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "shortName": "MutateConversionValueRules", + "fullName": "google.ads.googleads.v15.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v15/customers/{customer_id=*}/conversionValueRules:mutate" } ] } ] }, { - "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v14.services.FeedItemSetService", + "shortName": "ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v15.services.ConversionValueRuleSetService", "methods": [ { - "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v14.services.FeedItemSetService.MutateFeedItemSets", + "shortName": "MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v15.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v15/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } ] }, { - "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v14.services.FeedItemTargetService", + "shortName": "CustomAudienceService", + "fullName": "google.ads.googleads.v15.services.CustomAudienceService", "methods": [ { - "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v14.services.FeedItemTargetService.MutateFeedItemTargets", + "shortName": "MutateCustomAudiences", + "fullName": "google.ads.googleads.v15.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v15/customers/{customer_id=*}/customAudiences:mutate" } ] } ] }, { - "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v14.services.FeedMappingService", + "shortName": "CustomConversionGoalService", + "fullName": "google.ads.googleads.v15.services.CustomConversionGoalService", "methods": [ { - "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v14.services.FeedMappingService.MutateFeedMappings", + "shortName": "MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v15.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v15/customers/{customer_id=*}/customConversionGoals:mutate" } ] } ] }, { - "shortName": "FeedService", - "fullName": "google.ads.googleads.v14.services.FeedService", + "shortName": "CustomInterestService", + "fullName": "google.ads.googleads.v15.services.CustomInterestService", "methods": [ { - "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v14.services.FeedService.MutateFeeds", + "shortName": "MutateCustomInterests", + "fullName": "google.ads.googleads.v15.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/feeds:mutate" + "path": "/v15/customers/{customer_id=*}/customInterests:mutate" } ] } ] }, { - "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v14.services.GeoTargetConstantService", + "shortName": "CustomerAssetService", + "fullName": "google.ads.googleads.v15.services.CustomerAssetService", "methods": [ { - "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v14.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "shortName": "MutateCustomerAssets", + "fullName": "google.ads.googleads.v15.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/geoTargetConstants:suggest" + "path": "/v15/customers/{customer_id=*}/customerAssets:mutate" } ] } ] }, { - "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v14.services.GoogleAdsFieldService", + "shortName": "CustomerAssetSetService", + "fullName": "google.ads.googleads.v15.services.CustomerAssetSetService", "methods": [ { - "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v14.services.GoogleAdsFieldService.GetGoogleAdsField", + "shortName": "MutateCustomerAssetSets", + "fullName": "google.ads.googleads.v15.services.CustomerAssetSetService.MutateCustomerAssetSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/{resource_name=googleAdsFields/*}" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/customerAssetSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerClientLinkService", + "fullName": "google.ads.googleads.v15.services.CustomerClientLinkService", + "methods": [ { - "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v14.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "shortName": "MutateCustomerClientLink", + "fullName": "google.ads.googleads.v15.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/googleAdsFields:search" + "path": "/v15/customers/{customer_id=*}/customerClientLinks:mutate" } ] } ] }, { - "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v14.services.GoogleAdsService", + "shortName": "CustomerConversionGoalService", + "fullName": "google.ads.googleads.v15.services.CustomerConversionGoalService", "methods": [ { - "shortName": "Mutate", - "fullName": "google.ads.googleads.v14.services.GoogleAdsService.Mutate", + "shortName": "MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v15.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/googleAds:mutate" + "path": "/v15/customers/{customer_id=*}/customerConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerCustomizerService", + "fullName": "google.ads.googleads.v15.services.CustomerCustomizerService", + "methods": [ { - "shortName": "Search", - "fullName": "google.ads.googleads.v14.services.GoogleAdsService.Search", + "shortName": "MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v15.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/googleAds:search" + "path": "/v15/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v15.services.CustomerExtensionSettingService", + "methods": [ { - "shortName": "SearchStream", - "fullName": "google.ads.googleads.v14.services.GoogleAdsService.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v15.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v15/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] } ] }, { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v14.services.InvoiceService", + "shortName": "CustomerFeedService", + "fullName": "google.ads.googleads.v15.services.CustomerFeedService", "methods": [ { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v14.services.InvoiceService.ListInvoices", + "shortName": "MutateCustomerFeeds", + "fullName": "google.ads.googleads.v15.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/customers/{customer_id=*}/invoices" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/customerFeeds:mutate" } ] } ] }, { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService", + "shortName": "CustomerLabelService", + "fullName": "google.ads.googleads.v15.services.CustomerLabelService", "methods": [ { - "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "shortName": "MutateCustomerLabels", + "fullName": "google.ads.googleads.v15.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v15/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v14.services.KeywordPlanAdGroupService", + "shortName": "CustomerLifecycleService", + "fullName": "google.ads.googleads.v15.services.CustomerLifecycleService", "methods": [ { - "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v14.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "shortName": "ConfigureCustomerLifecycleGoals", + "fullName": "google.ads.googleads.v15.services.CustomerLifecycleService.ConfigureCustomerLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v15/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" } ] } ] }, { - "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService", + "shortName": "CustomerManagerLinkService", + "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService", "methods": [ { - "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "shortName": "MoveManagerLink", + "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService.MoveManagerLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + } + ] + }, + { + "shortName": "MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v15/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } ] }, { - "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v14.services.KeywordPlanCampaignService", + "shortName": "CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v15.services.CustomerNegativeCriterionService", "methods": [ { - "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v14.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "shortName": "MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v15.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v15/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } ] }, { - "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v14.services.KeywordPlanIdeaService", + "shortName": "CustomerService", + "fullName": "google.ads.googleads.v15.services.CustomerService", "methods": [ { - "shortName": "GenerateAdGroupThemes", - "fullName": "google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateAdGroupThemes", + "shortName": "CreateCustomerClient", + "fullName": "google.ads.googleads.v15.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateAdGroupThemes" + "path": "/v15/customers/{customer_id=*}:createCustomerClient" } ] }, { - "shortName": "GenerateKeywordForecastMetrics", - "fullName": "google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.googleads.v15.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateKeywordForecastMetrics" + "httpMethod": "GET", + "path": "/v15/customers:listAccessibleCustomers" } ] }, { - "shortName": "GenerateKeywordHistoricalMetrics", - "fullName": "google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "shortName": "MutateCustomer", + "fullName": "google.ads.googleads.v15.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + "path": "/v15/customers/{customer_id=*}:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerSkAdNetworkConversionValueSchemaService", + "fullName": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService", + "methods": [ { - "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", + "fullName": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v15/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" } ] } ] }, { - "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v14.services.KeywordPlanService", + "shortName": "CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService", "methods": [ { - "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v14.services.KeywordPlanService.MutateKeywordPlans", + "shortName": "MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v15/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } ] }, { - "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v14.services.KeywordThemeConstantService", + "shortName": "CustomerUserAccessService", + "fullName": "google.ads.googleads.v15.services.CustomerUserAccessService", "methods": [ { - "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v14.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "shortName": "MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v15.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/keywordThemeConstants:suggest" + "path": "/v15/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } ] }, { - "shortName": "LabelService", - "fullName": "google.ads.googleads.v14.services.LabelService", + "shortName": "CustomizerAttributeService", + "fullName": "google.ads.googleads.v15.services.CustomizerAttributeService", "methods": [ { - "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v14.services.LabelService.MutateLabels", + "shortName": "MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v15.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/labels:mutate" + "path": "/v15/customers/{customer_id=*}/customizerAttributes:mutate" } ] } ] }, { - "shortName": "MediaFileService", - "fullName": "google.ads.googleads.v14.services.MediaFileService", + "shortName": "ExperimentArmService", + "fullName": "google.ads.googleads.v15.services.ExperimentArmService", "methods": [ { - "shortName": "MutateMediaFiles", - "fullName": "google.ads.googleads.v14.services.MediaFileService.MutateMediaFiles", + "shortName": "MutateExperimentArms", + "fullName": "google.ads.googleads.v15.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/mediaFiles:mutate" + "path": "/v15/customers/{customer_id=*}/experimentArms:mutate" } ] } ] }, { - "shortName": "MerchantCenterLinkService", - "fullName": "google.ads.googleads.v14.services.MerchantCenterLinkService", + "shortName": "ExperimentService", + "fullName": "google.ads.googleads.v15.services.ExperimentService", "methods": [ { - "shortName": "GetMerchantCenterLink", - "fullName": "google.ads.googleads.v14.services.MerchantCenterLinkService.GetMerchantCenterLink", + "shortName": "EndExperiment", + "fullName": "google.ads.googleads.v15.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/{resource_name=customers/*/merchantCenterLinks/*}" + "httpMethod": "POST", + "path": "/v15/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { - "shortName": "ListMerchantCenterLinks", - "fullName": "google.ads.googleads.v14.services.MerchantCenterLinkService.ListMerchantCenterLinks", + "shortName": "GraduateExperiment", + "fullName": "google.ads.googleads.v15.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/customers/{customer_id=*}/merchantCenterLinks" + "httpMethod": "POST", + "path": "/v15/{experiment=customers/*/experiments/*}:graduateExperiment" } ] }, { - "shortName": "MutateMerchantCenterLink", - "fullName": "google.ads.googleads.v14.services.MerchantCenterLinkService.MutateMerchantCenterLink", + "shortName": "ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v15.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/merchantCenterLinks:mutate" + "httpMethod": "GET", + "path": "/v15/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] - } - ] - }, - { - "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v14.services.OfflineUserDataJobService", - "methods": [ + }, { - "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v14.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "shortName": "MutateExperiments", + "fullName": "google.ads.googleads.v15.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v15/customers/{customer_id=*}/experiments:mutate" } ] }, { - "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v14.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "shortName": "PromoteExperiment", + "fullName": "google.ads.googleads.v15.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v15/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { - "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v14.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "shortName": "ScheduleExperiment", + "fullName": "google.ads.googleads.v15.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v15/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } ] }, { - "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v14.services.PaymentsAccountService", + "shortName": "ExtensionFeedItemService", + "fullName": "google.ads.googleads.v15.services.ExtensionFeedItemService", "methods": [ { - "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v14.services.PaymentsAccountService.ListPaymentsAccounts", + "shortName": "MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v15.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v14/customers/{customer_id=*}/paymentsAccounts" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } ] }, { - "shortName": "ProductLinkService", - "fullName": "google.ads.googleads.v14.services.ProductLinkService", + "shortName": "FeedItemService", + "fullName": "google.ads.googleads.v15.services.FeedItemService", "methods": [ { - "shortName": "CreateProductLink", - "fullName": "google.ads.googleads.v14.services.ProductLinkService.CreateProductLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/productLinks:create" - } - ] - }, - { - "shortName": "RemoveProductLink", - "fullName": "google.ads.googleads.v14.services.ProductLinkService.RemoveProductLink", + "shortName": "MutateFeedItems", + "fullName": "google.ads.googleads.v15.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/productLinks:remove" + "path": "/v15/customers/{customer_id=*}/feedItems:mutate" } ] } ] }, { - "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v14.services.ReachPlanService", + "shortName": "FeedItemSetLinkService", + "fullName": "google.ads.googleads.v15.services.FeedItemSetLinkService", "methods": [ { - "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v14.services.ReachPlanService.GenerateReachForecast", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:generateReachForecast" - } - ] - }, - { - "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v14:listPlannableLocations" - } - ] - }, - { - "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts", + "shortName": "MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v15.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14:listPlannableProducts" + "path": "/v15/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } ] }, { - "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v14.services.RecommendationService", + "shortName": "FeedItemSetService", + "fullName": "google.ads.googleads.v15.services.FeedItemSetService", "methods": [ { - "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v14.services.RecommendationService.ApplyRecommendation", + "shortName": "MutateFeedItemSets", + "fullName": "google.ads.googleads.v15.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/recommendations:apply" + "path": "/v15/customers/{customer_id=*}/feedItemSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedItemTargetService", + "fullName": "google.ads.googleads.v15.services.FeedItemTargetService", + "methods": [ { - "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v14.services.RecommendationService.DismissRecommendation", + "shortName": "MutateFeedItemTargets", + "fullName": "google.ads.googleads.v15.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v15/customers/{customer_id=*}/feedItemTargets:mutate" } ] } ] }, { - "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v14.services.RemarketingActionService", + "shortName": "FeedMappingService", + "fullName": "google.ads.googleads.v15.services.FeedMappingService", "methods": [ { - "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v14.services.RemarketingActionService.MutateRemarketingActions", + "shortName": "MutateFeedMappings", + "fullName": "google.ads.googleads.v15.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v15/customers/{customer_id=*}/feedMappings:mutate" } ] } ] }, { - "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v14.services.SharedCriterionService", + "shortName": "FeedService", + "fullName": "google.ads.googleads.v15.services.FeedService", "methods": [ { - "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v14.services.SharedCriterionService.MutateSharedCriteria", + "shortName": "MutateFeeds", + "fullName": "google.ads.googleads.v15.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v15/customers/{customer_id=*}/feeds:mutate" } ] } ] }, { - "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v14.services.SharedSetService", + "shortName": "GeoTargetConstantService", + "fullName": "google.ads.googleads.v15.services.GeoTargetConstantService", "methods": [ { - "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v14.services.SharedSetService.MutateSharedSets", + "shortName": "SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v15.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v15/geoTargetConstants:suggest" } ] } ] }, { - "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSettingService", + "shortName": "GoogleAdsFieldService", + "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService", "methods": [ { - "shortName": "GetSmartCampaignStatus", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSettingService.GetSmartCampaignStatus", + "shortName": "GetGoogleAdsField", + "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v14/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + "path": "/v15/{resource_name=googleAdsFields/*}" } ] }, { - "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "shortName": "SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v15/googleAdsFields:search" } ] } ] }, { - "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSuggestService", + "shortName": "GoogleAdsService", + "fullName": "google.ads.googleads.v15.services.GoogleAdsService", "methods": [ { - "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "shortName": "Mutate", + "fullName": "google.ads.googleads.v15.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:suggestKeywordThemes" + "path": "/v15/customers/{customer_id=*}/googleAds:mutate" } ] }, { - "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "shortName": "Search", + "fullName": "google.ads.googleads.v15.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v15/customers/{customer_id=*}/googleAds:search" } ] }, { - "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", - "mode": "UNARY", + "shortName": "SearchStream", + "fullName": "google.ads.googleads.v15.services.GoogleAdsService.SearchStream", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v15/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService", + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v15.services.InvoiceService", "methods": [ { - "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v15.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v14/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "httpMethod": "GET", + "path": "/v15/customers/{customer_id=*}/invoices" } ] } ] }, { - "shortName": "TravelAssetSuggestionService", - "fullName": "google.ads.googleads.v14.services.TravelAssetSuggestionService", + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService", "methods": [ { - "shortName": "SuggestTravelAssets", - "fullName": "google.ads.googleads.v14.services.TravelAssetSuggestionService.SuggestTravelAssets", + "shortName": "MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:suggestTravelAssets" + "path": "/v15/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } ] }, { - "shortName": "UserDataService", - "fullName": "google.ads.googleads.v14.services.UserDataService", + "shortName": "KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupService", "methods": [ { - "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v14.services.UserDataService.UploadUserData", + "shortName": "MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}:uploadUserData" + "path": "/v15/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } ] }, { - "shortName": "UserListService", - "fullName": "google.ads.googleads.v14.services.UserListService", + "shortName": "KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService", "methods": [ { - "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v14.services.UserListService.MutateUserLists", + "shortName": "MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v14/customers/{customer_id=*}/userLists:mutate" + "path": "/v15/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] } ] - } - ], - "configFile": "googleads_v14.yaml", - "serviceConfigApiNames": [ - "google.ads.googleads.v14.services.AccountBudgetProposalService", - "google.ads.googleads.v14.services.AccountLinkService", - "google.ads.googleads.v14.services.AdGroupAdLabelService", - "google.ads.googleads.v14.services.AdGroupAdService", - "google.ads.googleads.v14.services.AdGroupAssetService", - "google.ads.googleads.v14.services.AdGroupAssetSetService", - "google.ads.googleads.v14.services.AdGroupBidModifierService", - "google.ads.googleads.v14.services.AdGroupCriterionCustomizerService", - "google.ads.googleads.v14.services.AdGroupCriterionLabelService", - "google.ads.googleads.v14.services.AdGroupCriterionService", - "google.ads.googleads.v14.services.AdGroupCustomizerService", - "google.ads.googleads.v14.services.AdGroupExtensionSettingService", - "google.ads.googleads.v14.services.AdGroupFeedService", - "google.ads.googleads.v14.services.AdGroupLabelService", - "google.ads.googleads.v14.services.AdGroupService", - "google.ads.googleads.v14.services.AdParameterService", - "google.ads.googleads.v14.services.AdService", - "google.ads.googleads.v14.services.AssetGroupAssetService", - "google.ads.googleads.v14.services.AssetGroupListingGroupFilterService", - "google.ads.googleads.v14.services.AssetGroupService", - "google.ads.googleads.v14.services.AssetGroupSignalService", - "google.ads.googleads.v14.services.AssetService", - "google.ads.googleads.v14.services.AssetSetAssetService", - "google.ads.googleads.v14.services.AssetSetService", - "google.ads.googleads.v14.services.AudienceInsightsService", - "google.ads.googleads.v14.services.AudienceService", - "google.ads.googleads.v14.services.BatchJobService", - "google.ads.googleads.v14.services.BiddingDataExclusionService", - "google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService", - "google.ads.googleads.v14.services.BiddingStrategyService", - "google.ads.googleads.v14.services.BillingSetupService", - "google.ads.googleads.v14.services.CampaignAssetService", - "google.ads.googleads.v14.services.CampaignAssetSetService", - "google.ads.googleads.v14.services.CampaignBidModifierService", - "google.ads.googleads.v14.services.CampaignBudgetService", - "google.ads.googleads.v14.services.CampaignConversionGoalService", - "google.ads.googleads.v14.services.CampaignCriterionService", - "google.ads.googleads.v14.services.CampaignCustomizerService", - "google.ads.googleads.v14.services.CampaignDraftService", - "google.ads.googleads.v14.services.CampaignExtensionSettingService", - "google.ads.googleads.v14.services.CampaignFeedService", - "google.ads.googleads.v14.services.CampaignGroupService", - "google.ads.googleads.v14.services.CampaignLabelService", - "google.ads.googleads.v14.services.CampaignService", - "google.ads.googleads.v14.services.CampaignSharedSetService", - "google.ads.googleads.v14.services.ConversionActionService", - "google.ads.googleads.v14.services.ConversionAdjustmentUploadService", - "google.ads.googleads.v14.services.ConversionCustomVariableService", - "google.ads.googleads.v14.services.ConversionGoalCampaignConfigService", - "google.ads.googleads.v14.services.ConversionUploadService", - "google.ads.googleads.v14.services.ConversionValueRuleService", - "google.ads.googleads.v14.services.ConversionValueRuleSetService", - "google.ads.googleads.v14.services.CustomAudienceService", - "google.ads.googleads.v14.services.CustomConversionGoalService", - "google.ads.googleads.v14.services.CustomInterestService", - "google.ads.googleads.v14.services.CustomerAssetService", - "google.ads.googleads.v14.services.CustomerAssetSetService", - "google.ads.googleads.v14.services.CustomerClientLinkService", - "google.ads.googleads.v14.services.CustomerConversionGoalService", - "google.ads.googleads.v14.services.CustomerCustomizerService", - "google.ads.googleads.v14.services.CustomerExtensionSettingService", - "google.ads.googleads.v14.services.CustomerFeedService", - "google.ads.googleads.v14.services.CustomerLabelService", - "google.ads.googleads.v14.services.CustomerManagerLinkService", - "google.ads.googleads.v14.services.CustomerNegativeCriterionService", - "google.ads.googleads.v14.services.CustomerService", - "google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService", - "google.ads.googleads.v14.services.CustomerUserAccessInvitationService", - "google.ads.googleads.v14.services.CustomerUserAccessService", - "google.ads.googleads.v14.services.CustomizerAttributeService", - "google.ads.googleads.v14.services.ExperimentArmService", - "google.ads.googleads.v14.services.ExperimentService", - "google.ads.googleads.v14.services.ExtensionFeedItemService", - "google.ads.googleads.v14.services.FeedItemService", - "google.ads.googleads.v14.services.FeedItemSetLinkService", - "google.ads.googleads.v14.services.FeedItemSetService", - "google.ads.googleads.v14.services.FeedItemTargetService", - "google.ads.googleads.v14.services.FeedMappingService", - "google.ads.googleads.v14.services.FeedService", - "google.ads.googleads.v14.services.GeoTargetConstantService", - "google.ads.googleads.v14.services.GoogleAdsFieldService", - "google.ads.googleads.v14.services.GoogleAdsService", - "google.ads.googleads.v14.services.InvoiceService", - "google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService", - "google.ads.googleads.v14.services.KeywordPlanAdGroupService", - "google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService", - "google.ads.googleads.v14.services.KeywordPlanCampaignService", - "google.ads.googleads.v14.services.KeywordPlanIdeaService", - "google.ads.googleads.v14.services.KeywordPlanService", - "google.ads.googleads.v14.services.KeywordThemeConstantService", - "google.ads.googleads.v14.services.LabelService", - "google.ads.googleads.v14.services.MediaFileService", - "google.ads.googleads.v14.services.MerchantCenterLinkService", - "google.ads.googleads.v14.services.OfflineUserDataJobService", - "google.ads.googleads.v14.services.PaymentsAccountService", - "google.ads.googleads.v14.services.ProductLinkService", - "google.ads.googleads.v14.services.ReachPlanService", - "google.ads.googleads.v14.services.RecommendationService", - "google.ads.googleads.v14.services.RemarketingActionService", - "google.ads.googleads.v14.services.SharedCriterionService", - "google.ads.googleads.v14.services.SharedSetService", - "google.ads.googleads.v14.services.SmartCampaignSettingService", - "google.ads.googleads.v14.services.SmartCampaignSuggestService", - "google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService", - "google.ads.googleads.v14.services.TravelAssetSuggestionService", - "google.ads.googleads.v14.services.UserDataService", - "google.ads.googleads.v14.services.UserListService" - ], - "nameInServiceConfig": "googleads.googleapis.com" - }, - { - "id": "google.ads.googleads.v15", - "directory": "google/ads/googleads/v15", - "version": "v15", - "majorVersion": "v15", - "hostName": "googleads.googleapis.com", - "title": "Google Ads API", - "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", - "importDirectories": [ - "google/ads/googleads/v15/common", - "google/ads/googleads/v15/enums", - "google/ads/googleads/v15/errors", - "google/ads/googleads/v15/resources", - "google/ads/googleads/v15/services", - "google/api", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Ads.GoogleAds.V15.Common": 38, - "Google.Ads.GoogleAds.V15.Enums": 338, - "Google.Ads.GoogleAds.V15.Errors": 151, - "Google.Ads.GoogleAds.V15.Resources": 176, - "Google.Ads.GoogleAds.V15.Services": 110 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common": 38, - "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums": 338, - "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors": 151, - "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources": 176, - "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services": 110 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 813 - } - }, - "java_package": { - "valueCounts": { - "com.google.ads.googleads.v15.common": 38, - "com.google.ads.googleads.v15.enums": 338, - "com.google.ads.googleads.v15.errors": 151, - "com.google.ads.googleads.v15.resources": 176, - "com.google.ads.googleads.v15.services": 110 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GAA": 813 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Ads\\GoogleAds\\V15\\Common": 38, - "Google\\Ads\\GoogleAds\\V15\\Enums": 338, - "Google\\Ads\\GoogleAds\\V15\\Errors": 151, - "Google\\Ads\\GoogleAds\\V15\\Resources": 176, - "Google\\Ads\\GoogleAds\\V15\\Services": 110 - } }, - "ruby_package": { - "valueCounts": { - "Google::Ads::GoogleAds::V15::Common": 38, - "Google::Ads::GoogleAds::V15::Enums": 338, - "Google::Ads::GoogleAds::V15::Errors": 151, - "Google::Ads::GoogleAds::V15::Resources": 176, - "Google::Ads::GoogleAds::V15::Services": 110 - } - } - }, - "services": [ { - "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v15.services.AccountBudgetProposalService", + "shortName": "KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignService", "methods": [ { - "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v15.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "shortName": "MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v15/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] } ] }, { - "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v15.services.AccountLinkService", + "shortName": "KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService", "methods": [ { - "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v15.services.AccountLinkService.CreateAccountLink", + "shortName": "GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/accountLinks:create" + "path": "/v15/customers/{customer_id=*}:generateAdGroupThemes" } ] }, { - "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v15.services.AccountLinkService.MutateAccountLink", + "shortName": "GenerateKeywordForecastMetrics", + "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v15/customers/{customer_id=*}:generateKeywordForecastMetrics" } ] - } - ] - }, - { - "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v15.services.AdGroupAdLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v15.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "shortName": "GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v15/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] - } - ] - }, - { - "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v15.services.AdGroupAdService", - "methods": [ + }, { - "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v15.services.AdGroupAdService.MutateAdGroupAds", + "shortName": "GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v15/customers/{customer_id=*}:generateKeywordIdeas" } ] } ] }, { - "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetService", + "shortName": "KeywordPlanService", + "fullName": "google.ads.googleads.v15.services.KeywordPlanService", "methods": [ { - "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetService.MutateAdGroupAssets", + "shortName": "MutateKeywordPlans", + "fullName": "google.ads.googleads.v15.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v15/customers/{customer_id=*}/keywordPlans:mutate" } ] } ] }, { - "shortName": "AdGroupAssetSetService", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetSetService", + "shortName": "KeywordThemeConstantService", + "fullName": "google.ads.googleads.v15.services.KeywordThemeConstantService", "methods": [ { - "shortName": "MutateAdGroupAssetSets", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetSetService.MutateAdGroupAssetSets", + "shortName": "SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v15.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAssetSets:mutate" + "path": "/v15/keywordThemeConstants:suggest" } ] } ] }, { - "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v15.services.AdGroupBidModifierService", + "shortName": "LabelService", + "fullName": "google.ads.googleads.v15.services.LabelService", "methods": [ { - "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v15.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "shortName": "MutateLabels", + "fullName": "google.ads.googleads.v15.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v15/customers/{customer_id=*}/labels:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService", + "shortName": "OfflineUserDataJobService", + "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService", "methods": [ { - "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "shortName": "AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "path": "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "shortName": "CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v15/customers/{customer_id=*}/offlineUserDataJobs:create" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionService.MutateAdGroupCriteria", + "shortName": "RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } ] }, { - "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v15.services.AdGroupCustomizerService", + "shortName": "PaymentsAccountService", + "fullName": "google.ads.googleads.v15.services.PaymentsAccountService", "methods": [ { - "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v15.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "shortName": "ListPaymentsAccounts", + "fullName": "google.ads.googleads.v15.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupCustomizers:mutate" + "httpMethod": "GET", + "path": "/v15/customers/{customer_id=*}/paymentsAccounts" } ] } ] }, { - "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v15.services.AdGroupExtensionSettingService", + "shortName": "ProductLinkInvitationService", + "fullName": "google.ads.googleads.v15.services.ProductLinkInvitationService", "methods": [ { - "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v15.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "shortName": "UpdateProductLinkInvitation", + "fullName": "google.ads.googleads.v15.services.ProductLinkInvitationService.UpdateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v15/customers/{customer_id=*}/productLinkInvitations:update" } ] } ] }, { - "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v15.services.AdGroupFeedService", + "shortName": "ProductLinkService", + "fullName": "google.ads.googleads.v15.services.ProductLinkService", "methods": [ { - "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v15.services.AdGroupFeedService.MutateAdGroupFeeds", + "shortName": "CreateProductLink", + "fullName": "google.ads.googleads.v15.services.ProductLinkService.CreateProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v15/customers/{customer_id=*}/productLinks:create" } ] - } - ] - }, - { - "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v15.services.AdGroupLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v15.services.AdGroupLabelService.MutateAdGroupLabels", + "shortName": "RemoveProductLink", + "fullName": "google.ads.googleads.v15.services.ProductLinkService.RemoveProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v15/customers/{customer_id=*}/productLinks:remove" } ] } ] }, { - "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v15.services.AdGroupService", + "shortName": "ReachPlanService", + "fullName": "google.ads.googleads.v15.services.ReachPlanService", "methods": [ { - "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v15.services.AdGroupService.MutateAdGroups", + "shortName": "GenerateReachForecast", + "fullName": "google.ads.googleads.v15.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroups:mutate" + "path": "/v15/customers/{customer_id=*}:generateReachForecast" } ] - } - ] - }, - { - "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v15.services.AdParameterService", - "methods": [ + }, { - "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v15.services.AdParameterService.MutateAdParameters", + "shortName": "ListPlannableLocations", + "fullName": "google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adParameters:mutate" + "path": "/v15:listPlannableLocations" + } + ] + }, + { + "shortName": "ListPlannableProducts", + "fullName": "google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v15:listPlannableProducts" } ] } ] }, { - "shortName": "AdService", - "fullName": "google.ads.googleads.v15.services.AdService", + "shortName": "RecommendationService", + "fullName": "google.ads.googleads.v15.services.RecommendationService", "methods": [ { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v15.services.AdService.GetAd", + "shortName": "ApplyRecommendation", + "fullName": "google.ads.googleads.v15.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/ads/*}" + "httpMethod": "POST", + "path": "/v15/customers/{customer_id=*}/recommendations:apply" } ] }, { - "shortName": "MutateAds", - "fullName": "google.ads.googleads.v15.services.AdService.MutateAds", + "shortName": "DismissRecommendation", + "fullName": "google.ads.googleads.v15.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/ads:mutate" + "path": "/v15/customers/{customer_id=*}/recommendations:dismiss" } ] } ] }, { - "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v15.services.AssetGroupAssetService", + "shortName": "RecommendationSubscriptionService", + "fullName": "google.ads.googleads.v15.services.RecommendationSubscriptionService", "methods": [ { - "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v15.services.AssetGroupAssetService.MutateAssetGroupAssets", + "shortName": "MutateRecommendationSubscription", + "fullName": "google.ads.googleads.v15.services.RecommendationSubscriptionService.MutateRecommendationSubscription", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroupAssets:mutate" + "path": "/v15/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" } ] } ] }, { - "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService", + "shortName": "RemarketingActionService", + "fullName": "google.ads.googleads.v15.services.RemarketingActionService", "methods": [ { - "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "shortName": "MutateRemarketingActions", + "fullName": "google.ads.googleads.v15.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "path": "/v15/customers/{customer_id=*}/remarketingActions:mutate" } ] } ] }, { - "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v15.services.AssetGroupService", + "shortName": "SharedCriterionService", + "fullName": "google.ads.googleads.v15.services.SharedCriterionService", "methods": [ { - "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v15.services.AssetGroupService.MutateAssetGroups", + "shortName": "MutateSharedCriteria", + "fullName": "google.ads.googleads.v15.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroups:mutate" + "path": "/v15/customers/{customer_id=*}/sharedCriteria:mutate" } ] } ] }, { - "shortName": "AssetGroupSignalService", - "fullName": "google.ads.googleads.v15.services.AssetGroupSignalService", + "shortName": "SharedSetService", + "fullName": "google.ads.googleads.v15.services.SharedSetService", "methods": [ { - "shortName": "MutateAssetGroupSignals", - "fullName": "google.ads.googleads.v15.services.AssetGroupSignalService.MutateAssetGroupSignals", + "shortName": "MutateSharedSets", + "fullName": "google.ads.googleads.v15.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroupSignals:mutate" + "path": "/v15/customers/{customer_id=*}/sharedSets:mutate" } ] } ] }, { - "shortName": "AssetService", - "fullName": "google.ads.googleads.v15.services.AssetService", + "shortName": "SmartCampaignSettingService", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService", "methods": [ { - "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v15.services.AssetService.MutateAssets", + "shortName": "GetSmartCampaignStatus", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService.GetSmartCampaignStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assets:mutate" + "httpMethod": "GET", + "path": "/v15/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" } ] - } - ] - }, - { - "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v15.services.AssetSetAssetService", - "methods": [ + }, { - "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v15.services.AssetSetAssetService.MutateAssetSetAssets", + "shortName": "MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetSetAssets:mutate" + "path": "/v15/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } ] }, { - "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v15.services.AssetSetService", + "shortName": "SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService", "methods": [ { - "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v15.services.AssetSetService.MutateAssetSets", + "shortName": "SuggestKeywordThemes", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetSets:mutate" + "path": "/v15/customers/{customer_id=*}:suggestKeywordThemes" } ] - } - ] - }, - { - "shortName": "AudienceInsightsService", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService", - "methods": [ + }, { - "shortName": "GenerateAudienceCompositionInsights", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateAudienceCompositionInsights", + "shortName": "SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateAudienceCompositionInsights" + "path": "/v15/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { - "shortName": "GenerateInsightsFinderReport", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateInsightsFinderReport", + "shortName": "SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateInsightsFinderReport" + "path": "/v15/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] - }, + } + ] + }, + { + "shortName": "ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService", + "methods": [ { - "shortName": "GenerateSuggestedTargetingInsights", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", + "shortName": "RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateSuggestedTargetingInsights" + "path": "/v15/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] - }, + } + ] + }, + { + "shortName": "TravelAssetSuggestionService", + "fullName": "google.ads.googleads.v15.services.TravelAssetSuggestionService", + "methods": [ { - "shortName": "ListAudienceInsightsAttributes", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "shortName": "SuggestTravelAssets", + "fullName": "google.ads.googleads.v15.services.TravelAssetSuggestionService.SuggestTravelAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:searchAudienceInsightsAttributes" + "path": "/v15/customers/{customer_id=*}:suggestTravelAssets" } ] - }, + } + ] + }, + { + "shortName": "UserDataService", + "fullName": "google.ads.googleads.v15.services.UserDataService", + "methods": [ { - "shortName": "ListInsightsEligibleDates", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.ListInsightsEligibleDates", + "shortName": "UploadUserData", + "fullName": "google.ads.googleads.v15.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/audienceInsights:listInsightsEligibleDates" + "path": "/v15/customers/{customer_id=*}:uploadUserData" } ] } ] }, { - "shortName": "AudienceService", - "fullName": "google.ads.googleads.v15.services.AudienceService", + "shortName": "UserListService", + "fullName": "google.ads.googleads.v15.services.UserListService", "methods": [ { - "shortName": "MutateAudiences", - "fullName": "google.ads.googleads.v15.services.AudienceService.MutateAudiences", + "shortName": "MutateUserLists", + "fullName": "google.ads.googleads.v15.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/audiences:mutate" + "path": "/v15/customers/{customer_id=*}/userLists:mutate" } ] } ] + } + ], + "configFile": "googleads_v15.yaml", + "serviceConfigApiNames": [ + "google.ads.googleads.v15.services.AccountBudgetProposalService", + "google.ads.googleads.v15.services.AccountLinkService", + "google.ads.googleads.v15.services.AdGroupAdLabelService", + "google.ads.googleads.v15.services.AdGroupAdService", + "google.ads.googleads.v15.services.AdGroupAssetService", + "google.ads.googleads.v15.services.AdGroupAssetSetService", + "google.ads.googleads.v15.services.AdGroupBidModifierService", + "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v15.services.AdGroupCriterionLabelService", + "google.ads.googleads.v15.services.AdGroupCriterionService", + "google.ads.googleads.v15.services.AdGroupCustomizerService", + "google.ads.googleads.v15.services.AdGroupExtensionSettingService", + "google.ads.googleads.v15.services.AdGroupFeedService", + "google.ads.googleads.v15.services.AdGroupLabelService", + "google.ads.googleads.v15.services.AdGroupService", + "google.ads.googleads.v15.services.AdParameterService", + "google.ads.googleads.v15.services.AdService", + "google.ads.googleads.v15.services.AssetGroupAssetService", + "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v15.services.AssetGroupService", + "google.ads.googleads.v15.services.AssetGroupSignalService", + "google.ads.googleads.v15.services.AssetService", + "google.ads.googleads.v15.services.AssetSetAssetService", + "google.ads.googleads.v15.services.AssetSetService", + "google.ads.googleads.v15.services.AudienceInsightsService", + "google.ads.googleads.v15.services.AudienceService", + "google.ads.googleads.v15.services.BatchJobService", + "google.ads.googleads.v15.services.BiddingDataExclusionService", + "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v15.services.BiddingStrategyService", + "google.ads.googleads.v15.services.BillingSetupService", + "google.ads.googleads.v15.services.BrandSuggestionService", + "google.ads.googleads.v15.services.CampaignAssetService", + "google.ads.googleads.v15.services.CampaignAssetSetService", + "google.ads.googleads.v15.services.CampaignBidModifierService", + "google.ads.googleads.v15.services.CampaignBudgetService", + "google.ads.googleads.v15.services.CampaignConversionGoalService", + "google.ads.googleads.v15.services.CampaignCriterionService", + "google.ads.googleads.v15.services.CampaignCustomizerService", + "google.ads.googleads.v15.services.CampaignDraftService", + "google.ads.googleads.v15.services.CampaignExtensionSettingService", + "google.ads.googleads.v15.services.CampaignFeedService", + "google.ads.googleads.v15.services.CampaignGroupService", + "google.ads.googleads.v15.services.CampaignLabelService", + "google.ads.googleads.v15.services.CampaignLifecycleService", + "google.ads.googleads.v15.services.CampaignService", + "google.ads.googleads.v15.services.CampaignSharedSetService", + "google.ads.googleads.v15.services.ConversionActionService", + "google.ads.googleads.v15.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v15.services.ConversionCustomVariableService", + "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v15.services.ConversionUploadService", + "google.ads.googleads.v15.services.ConversionValueRuleService", + "google.ads.googleads.v15.services.ConversionValueRuleSetService", + "google.ads.googleads.v15.services.CustomAudienceService", + "google.ads.googleads.v15.services.CustomConversionGoalService", + "google.ads.googleads.v15.services.CustomInterestService", + "google.ads.googleads.v15.services.CustomerAssetService", + "google.ads.googleads.v15.services.CustomerAssetSetService", + "google.ads.googleads.v15.services.CustomerClientLinkService", + "google.ads.googleads.v15.services.CustomerConversionGoalService", + "google.ads.googleads.v15.services.CustomerCustomizerService", + "google.ads.googleads.v15.services.CustomerExtensionSettingService", + "google.ads.googleads.v15.services.CustomerFeedService", + "google.ads.googleads.v15.services.CustomerLabelService", + "google.ads.googleads.v15.services.CustomerLifecycleService", + "google.ads.googleads.v15.services.CustomerManagerLinkService", + "google.ads.googleads.v15.services.CustomerNegativeCriterionService", + "google.ads.googleads.v15.services.CustomerService", + "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService", + "google.ads.googleads.v15.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v15.services.CustomerUserAccessService", + "google.ads.googleads.v15.services.CustomizerAttributeService", + "google.ads.googleads.v15.services.ExperimentArmService", + "google.ads.googleads.v15.services.ExperimentService", + "google.ads.googleads.v15.services.ExtensionFeedItemService", + "google.ads.googleads.v15.services.FeedItemService", + "google.ads.googleads.v15.services.FeedItemSetLinkService", + "google.ads.googleads.v15.services.FeedItemSetService", + "google.ads.googleads.v15.services.FeedItemTargetService", + "google.ads.googleads.v15.services.FeedMappingService", + "google.ads.googleads.v15.services.FeedService", + "google.ads.googleads.v15.services.GeoTargetConstantService", + "google.ads.googleads.v15.services.GoogleAdsFieldService", + "google.ads.googleads.v15.services.GoogleAdsService", + "google.ads.googleads.v15.services.InvoiceService", + "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v15.services.KeywordPlanAdGroupService", + "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v15.services.KeywordPlanCampaignService", + "google.ads.googleads.v15.services.KeywordPlanIdeaService", + "google.ads.googleads.v15.services.KeywordPlanService", + "google.ads.googleads.v15.services.KeywordThemeConstantService", + "google.ads.googleads.v15.services.LabelService", + "google.ads.googleads.v15.services.OfflineUserDataJobService", + "google.ads.googleads.v15.services.PaymentsAccountService", + "google.ads.googleads.v15.services.ProductLinkInvitationService", + "google.ads.googleads.v15.services.ProductLinkService", + "google.ads.googleads.v15.services.ReachPlanService", + "google.ads.googleads.v15.services.RecommendationService", + "google.ads.googleads.v15.services.RecommendationSubscriptionService", + "google.ads.googleads.v15.services.RemarketingActionService", + "google.ads.googleads.v15.services.SharedCriterionService", + "google.ads.googleads.v15.services.SharedSetService", + "google.ads.googleads.v15.services.SmartCampaignSettingService", + "google.ads.googleads.v15.services.SmartCampaignSuggestService", + "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v15.services.TravelAssetSuggestionService", + "google.ads.googleads.v15.services.UserDataService", + "google.ads.googleads.v15.services.UserListService" + ], + "nameInServiceConfig": "googleads.googleapis.com" + }, + { + "id": "google.ads.googleads.v16", + "directory": "google/ads/googleads/v16", + "version": "v16", + "majorVersion": "v16", + "hostName": "googleads.googleapis.com", + "title": "Google Ads API", + "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", + "importDirectories": [ + "google/ads/googleads/v16/common", + "google/ads/googleads/v16/enums", + "google/ads/googleads/v16/errors", + "google/ads/googleads/v16/resources", + "google/ads/googleads/v16/services", + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Ads.GoogleAds.V16.Common": 38, + "Google.Ads.GoogleAds.V16.Enums": 350, + "Google.Ads.GoogleAds.V16.Errors": 153, + "Google.Ads.GoogleAds.V16.Resources": 177, + "Google.Ads.GoogleAds.V16.Services": 111 + } }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/ads/googleads/v16/common;common": 38, + "google.golang.org/genproto/googleapis/ads/googleads/v16/enums;enums": 350, + "google.golang.org/genproto/googleapis/ads/googleads/v16/errors;errors": 153, + "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources": 177, + "google.golang.org/genproto/googleapis/ads/googleads/v16/services;services": 111 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 829 + } + }, + "java_package": { + "valueCounts": { + "com.google.ads.googleads.v16.common": 38, + "com.google.ads.googleads.v16.enums": 350, + "com.google.ads.googleads.v16.errors": 153, + "com.google.ads.googleads.v16.resources": 177, + "com.google.ads.googleads.v16.services": 111 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GAA": 829 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Ads\\GoogleAds\\V16\\Common": 38, + "Google\\Ads\\GoogleAds\\V16\\Enums": 350, + "Google\\Ads\\GoogleAds\\V16\\Errors": 153, + "Google\\Ads\\GoogleAds\\V16\\Resources": 177, + "Google\\Ads\\GoogleAds\\V16\\Services": 111 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Ads::GoogleAds::V16::Common": 38, + "Google::Ads::GoogleAds::V16::Enums": 350, + "Google::Ads::GoogleAds::V16::Errors": 153, + "Google::Ads::GoogleAds::V16::Resources": 177, + "Google::Ads::GoogleAds::V16::Services": 111 + } + } + }, + "services": [ { - "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v15.services.BatchJobService", + "shortName": "AccountBudgetProposalService", + "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService", "methods": [ { - "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v15.services.BatchJobService.AddBatchJobOperations", + "shortName": "MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/batchJobs/*}:addOperations" + "path": "/v16/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] - }, + } + ] + }, + { + "shortName": "AccountLinkService", + "fullName": "google.ads.googleads.v16.services.AccountLinkService", + "methods": [ { - "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v15.services.BatchJobService.ListBatchJobResults", + "shortName": "CreateAccountLink", + "fullName": "google.ads.googleads.v16.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/batchJobs/*}:listResults" + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/accountLinks:create" } ] }, { - "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v15.services.BatchJobService.MutateBatchJob", + "shortName": "MutateAccountLink", + "fullName": "google.ads.googleads.v16.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v16/customers/{customer_id=*}/accountLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupAdLabelService", + "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService", + "methods": [ { - "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v15.services.BatchJobService.RunBatchJob", + "shortName": "MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v16/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } ] }, { - "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v15.services.BiddingDataExclusionService", + "shortName": "AdGroupAdService", + "fullName": "google.ads.googleads.v16.services.AdGroupAdService", "methods": [ { - "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v15.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "shortName": "MutateAdGroupAds", + "fullName": "google.ads.googleads.v16.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAds:mutate" } ] } ] }, { - "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService", + "shortName": "AdGroupAssetService", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetService", "methods": [ { - "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "shortName": "MutateAdGroupAssets", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAssets:mutate" } ] } ] }, { - "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v15.services.BiddingStrategyService", + "shortName": "AdGroupAssetSetService", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService", "methods": [ { - "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v15.services.BiddingStrategyService.MutateBiddingStrategies", + "shortName": "MutateAdGroupAssetSets", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService.MutateAdGroupAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAssetSets:mutate" } ] } ] }, { - "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v15.services.BillingSetupService", + "shortName": "AdGroupBidModifierService", + "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService", "methods": [ { - "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v15.services.BillingSetupService.MutateBillingSetup", + "shortName": "MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } ] }, { - "shortName": "BrandSuggestionService", - "fullName": "google.ads.googleads.v15.services.BrandSuggestionService", + "shortName": "AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", "methods": [ { - "shortName": "SuggestBrands", - "fullName": "google.ads.googleads.v15.services.BrandSuggestionService.SuggestBrands", + "shortName": "MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestBrands" + "path": "/v16/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } ] }, { - "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v15.services.CampaignAssetService", + "shortName": "AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService", "methods": [ { - "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v15.services.CampaignAssetService.MutateCampaignAssets", + "shortName": "MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } ] }, { - "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v15.services.CampaignAssetSetService", + "shortName": "AdGroupCriterionService", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService", "methods": [ { - "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v15.services.CampaignAssetSetService.MutateCampaignAssetSets", + "shortName": "MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } ] }, { - "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v15.services.CampaignBidModifierService", + "shortName": "AdGroupCustomizerService", + "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService", "methods": [ { - "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v15.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "shortName": "MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } ] }, { - "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v15.services.CampaignBudgetService", + "shortName": "AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService", "methods": [ { - "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v15.services.CampaignBudgetService.MutateCampaignBudgets", + "shortName": "MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } ] }, { - "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v15.services.CampaignConversionGoalService", + "shortName": "AdGroupFeedService", + "fullName": "google.ads.googleads.v16.services.AdGroupFeedService", "methods": [ { - "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v15.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "shortName": "MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v16.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignConversionGoals:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } ] }, { - "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v15.services.CampaignCriterionService", + "shortName": "AdGroupLabelService", + "fullName": "google.ads.googleads.v16.services.AdGroupLabelService", "methods": [ { - "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v15.services.CampaignCriterionService.MutateCampaignCriteria", + "shortName": "MutateAdGroupLabels", + "fullName": "google.ads.googleads.v16.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupLabels:mutate" } ] } ] }, { - "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v15.services.CampaignCustomizerService", + "shortName": "AdGroupService", + "fullName": "google.ads.googleads.v16.services.AdGroupService", "methods": [ { - "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v15.services.CampaignCustomizerService.MutateCampaignCustomizers", + "shortName": "MutateAdGroups", + "fullName": "google.ads.googleads.v16.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v16/customers/{customer_id=*}/adGroups:mutate" } ] } ] }, { - "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService", + "shortName": "AdParameterService", + "fullName": "google.ads.googleads.v16.services.AdParameterService", "methods": [ { - "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "shortName": "MutateAdParameters", + "fullName": "google.ads.googleads.v16.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/adParameters:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdService", + "fullName": "google.ads.googleads.v16.services.AdService", + "methods": [ { - "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService.MutateCampaignDrafts", + "shortName": "GetAd", + "fullName": "google.ads.googleads.v16.services.AdService.GetAd", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignDrafts:mutate" + "httpMethod": "GET", + "path": "/v16/{resource_name=customers/*/ads/*}" } ] }, { - "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService.PromoteCampaignDraft", + "shortName": "MutateAds", + "fullName": "google.ads.googleads.v16.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v16/customers/{customer_id=*}/ads:mutate" } ] } ] }, { - "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v15.services.CampaignExtensionSettingService", + "shortName": "AssetGroupAssetService", + "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService", "methods": [ { - "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v15.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "shortName": "MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } ] }, { - "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v15.services.CampaignFeedService", + "shortName": "AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", "methods": [ { - "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v15.services.CampaignFeedService.MutateCampaignFeeds", + "shortName": "MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } ] }, { - "shortName": "CampaignGroupService", - "fullName": "google.ads.googleads.v15.services.CampaignGroupService", + "shortName": "AssetGroupService", + "fullName": "google.ads.googleads.v16.services.AssetGroupService", "methods": [ { - "shortName": "MutateCampaignGroups", - "fullName": "google.ads.googleads.v15.services.CampaignGroupService.MutateCampaignGroups", + "shortName": "MutateAssetGroups", + "fullName": "google.ads.googleads.v16.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignGroups:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroups:mutate" } ] } ] }, { - "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v15.services.CampaignLabelService", + "shortName": "AssetGroupSignalService", + "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService", "methods": [ { - "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v15.services.CampaignLabelService.MutateCampaignLabels", + "shortName": "MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } ] }, { - "shortName": "CampaignLifecycleService", - "fullName": "google.ads.googleads.v15.services.CampaignLifecycleService", + "shortName": "AssetService", + "fullName": "google.ads.googleads.v16.services.AssetService", "methods": [ { - "shortName": "ConfigureCampaignLifecycleGoals", - "fullName": "google.ads.googleads.v15.services.CampaignLifecycleService.ConfigureCampaignLifecycleGoals", + "shortName": "MutateAssets", + "fullName": "google.ads.googleads.v16.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + "path": "/v16/customers/{customer_id=*}/assets:mutate" } ] } ] }, { - "shortName": "CampaignService", - "fullName": "google.ads.googleads.v15.services.CampaignService", + "shortName": "AssetSetAssetService", + "fullName": "google.ads.googleads.v16.services.AssetSetAssetService", "methods": [ { - "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v15.services.CampaignService.MutateCampaigns", + "shortName": "MutateAssetSetAssets", + "fullName": "google.ads.googleads.v16.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaigns:mutate" + "path": "/v16/customers/{customer_id=*}/assetSetAssets:mutate" } ] } ] }, { - "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v15.services.CampaignSharedSetService", + "shortName": "AssetSetService", + "fullName": "google.ads.googleads.v16.services.AssetSetService", "methods": [ { - "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v15.services.CampaignSharedSetService.MutateCampaignSharedSets", + "shortName": "MutateAssetSets", + "fullName": "google.ads.googleads.v16.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v16/customers/{customer_id=*}/assetSets:mutate" } ] } ] }, { - "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v15.services.ConversionActionService", + "shortName": "AudienceInsightsService", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService", "methods": [ { - "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v15.services.ConversionActionService.MutateConversionActions", + "shortName": "GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v16/customers/{customer_id=*}:generateAudienceCompositionInsights" } ] - } - ] - }, - { - "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService", - "methods": [ + }, { - "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "shortName": "GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v16/customers/{customer_id=*}:generateInsightsFinderReport" } ] - } - ] - }, - { - "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v15.services.ConversionCustomVariableService", - "methods": [ + }, { - "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v15.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "shortName": "GenerateSuggestedTargetingInsights", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v16/customers/{customer_id=*}:generateSuggestedTargetingInsights" + } + ] + }, + { + "shortName": "ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}:searchAudienceInsightsAttributes" + } + ] + }, + { + "shortName": "ListInsightsEligibleDates", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListInsightsEligibleDates", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/audienceInsights:listInsightsEligibleDates" } ] } ] }, { - "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService", + "shortName": "AudienceService", + "fullName": "google.ads.googleads.v16.services.AudienceService", "methods": [ { - "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "shortName": "MutateAudiences", + "fullName": "google.ads.googleads.v16.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "path": "/v16/customers/{customer_id=*}/audiences:mutate" } ] } ] }, { - "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v15.services.ConversionUploadService", + "shortName": "BatchJobService", + "fullName": "google.ads.googleads.v16.services.BatchJobService", "methods": [ { - "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v15.services.ConversionUploadService.UploadCallConversions", + "shortName": "AddBatchJobOperations", + "fullName": "google.ads.googleads.v16.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadCallConversions" + "path": "/v16/{resource_name=customers/*/batchJobs/*}:addOperations" } ] }, { - "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v15.services.ConversionUploadService.UploadClickConversions", + "shortName": "ListBatchJobResults", + "fullName": "google.ads.googleads.v16.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadClickConversions" + "httpMethod": "GET", + "path": "/v16/{resource_name=customers/*/batchJobs/*}:listResults" } ] - } - ] - }, - { - "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleService", - "methods": [ + }, { - "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleService.MutateConversionValueRules", + "shortName": "MutateBatchJob", + "fullName": "google.ads.googleads.v16.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v16/customers/{customer_id=*}/batchJobs:mutate" } ] - } - ] - }, - { - "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleSetService", - "methods": [ + }, { - "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "shortName": "RunBatchJob", + "fullName": "google.ads.googleads.v16.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v16/{resource_name=customers/*/batchJobs/*}:run" } ] } ] }, { - "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v15.services.CustomAudienceService", + "shortName": "BiddingDataExclusionService", + "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService", "methods": [ { - "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v15.services.CustomAudienceService.MutateCustomAudiences", + "shortName": "MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v16/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } ] }, { - "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v15.services.CustomConversionGoalService", + "shortName": "BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", "methods": [ { - "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v15.services.CustomConversionGoalService.MutateCustomConversionGoals", + "shortName": "MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customConversionGoals:mutate" + "path": "/v16/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } ] }, { - "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v15.services.CustomInterestService", + "shortName": "BiddingStrategyService", + "fullName": "google.ads.googleads.v16.services.BiddingStrategyService", "methods": [ { - "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v15.services.CustomInterestService.MutateCustomInterests", + "shortName": "MutateBiddingStrategies", + "fullName": "google.ads.googleads.v16.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customInterests:mutate" + "path": "/v16/customers/{customer_id=*}/biddingStrategies:mutate" } ] } ] }, { - "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v15.services.CustomerAssetService", + "shortName": "BillingSetupService", + "fullName": "google.ads.googleads.v16.services.BillingSetupService", "methods": [ { - "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v15.services.CustomerAssetService.MutateCustomerAssets", + "shortName": "MutateBillingSetup", + "fullName": "google.ads.googleads.v16.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v16/customers/{customer_id=*}/billingSetups:mutate" } ] } ] }, { - "shortName": "CustomerAssetSetService", - "fullName": "google.ads.googleads.v15.services.CustomerAssetSetService", + "shortName": "BrandSuggestionService", + "fullName": "google.ads.googleads.v16.services.BrandSuggestionService", "methods": [ { - "shortName": "MutateCustomerAssetSets", - "fullName": "google.ads.googleads.v15.services.CustomerAssetSetService.MutateCustomerAssetSets", + "shortName": "SuggestBrands", + "fullName": "google.ads.googleads.v16.services.BrandSuggestionService.SuggestBrands", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerAssetSets:mutate" + "path": "/v16/customers/{customer_id=*}:suggestBrands" } ] } ] }, { - "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v15.services.CustomerClientLinkService", + "shortName": "CampaignAssetService", + "fullName": "google.ads.googleads.v16.services.CampaignAssetService", "methods": [ { - "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v15.services.CustomerClientLinkService.MutateCustomerClientLink", + "shortName": "MutateCampaignAssets", + "fullName": "google.ads.googleads.v16.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v16/customers/{customer_id=*}/campaignAssets:mutate" } ] } ] }, { - "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v15.services.CustomerConversionGoalService", + "shortName": "CampaignAssetSetService", + "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService", "methods": [ { - "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v15.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "shortName": "MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v16/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } ] }, { - "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v15.services.CustomerCustomizerService", + "shortName": "CampaignBidModifierService", + "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService", "methods": [ { - "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v15.services.CustomerCustomizerService.MutateCustomerCustomizers", + "shortName": "MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/CustomerCustomizers:mutate" + "path": "/v16/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } ] }, { - "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v15.services.CustomerExtensionSettingService", + "shortName": "CampaignBudgetService", + "fullName": "google.ads.googleads.v16.services.CampaignBudgetService", "methods": [ { - "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v15.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "shortName": "MutateCampaignBudgets", + "fullName": "google.ads.googleads.v16.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v16/customers/{customer_id=*}/campaignBudgets:mutate" } ] } ] }, { - "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v15.services.CustomerFeedService", + "shortName": "CampaignConversionGoalService", + "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService", "methods": [ { - "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v15.services.CustomerFeedService.MutateCustomerFeeds", + "shortName": "MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v16/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } ] }, { - "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v15.services.CustomerLabelService", + "shortName": "CampaignCriterionService", + "fullName": "google.ads.googleads.v16.services.CampaignCriterionService", "methods": [ { - "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v15.services.CustomerLabelService.MutateCustomerLabels", + "shortName": "MutateCampaignCriteria", + "fullName": "google.ads.googleads.v16.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v16/customers/{customer_id=*}/campaignCriteria:mutate" } ] } ] }, { - "shortName": "CustomerLifecycleService", - "fullName": "google.ads.googleads.v15.services.CustomerLifecycleService", + "shortName": "CampaignCustomizerService", + "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService", "methods": [ { - "shortName": "ConfigureCustomerLifecycleGoals", - "fullName": "google.ads.googleads.v15.services.CustomerLifecycleService.ConfigureCustomerLifecycleGoals", + "shortName": "MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + "path": "/v16/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } ] }, { - "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService", + "shortName": "CampaignDraftService", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService", "methods": [ { - "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService.MoveManagerLink", + "shortName": "ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "httpMethod": "GET", + "path": "/v16/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { - "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "shortName": "MutateCampaignDrafts", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v16/customers/{customer_id=*}/campaignDrafts:mutate" } ] - } - ] - }, - { - "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v15.services.CustomerNegativeCriterionService", - "methods": [ + }, { - "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v15.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "shortName": "PromoteCampaignDraft", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v16/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.googleads.v15.services.CustomerService", + "shortName": "CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService", "methods": [ { - "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v15.services.CustomerService.CreateCustomerClient", + "shortName": "MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:createCustomerClient" - } - ] - }, - { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v15.services.CustomerService.ListAccessibleCustomers", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v15/customers:listAccessibleCustomers" + "path": "/v16/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignFeedService", + "fullName": "google.ads.googleads.v16.services.CampaignFeedService", + "methods": [ { - "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v15.services.CustomerService.MutateCustomer", + "shortName": "MutateCampaignFeeds", + "fullName": "google.ads.googleads.v16.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:mutate" + "path": "/v16/customers/{customer_id=*}/campaignFeeds:mutate" } ] } ] }, { - "shortName": "CustomerSkAdNetworkConversionValueSchemaService", - "fullName": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService", + "shortName": "CampaignGroupService", + "fullName": "google.ads.googleads.v16.services.CampaignGroupService", "methods": [ { - "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", - "fullName": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", + "shortName": "MutateCampaignGroups", + "fullName": "google.ads.googleads.v16.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + "path": "/v16/customers/{customer_id=*}/campaignGroups:mutate" } ] } ] }, { - "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService", + "shortName": "CampaignLabelService", + "fullName": "google.ads.googleads.v16.services.CampaignLabelService", "methods": [ { - "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "shortName": "MutateCampaignLabels", + "fullName": "google.ads.googleads.v16.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v16/customers/{customer_id=*}/campaignLabels:mutate" } ] } ] }, { - "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessService", + "shortName": "CampaignLifecycleGoalService", + "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService", "methods": [ { - "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessService.MutateCustomerUserAccess", + "shortName": "ConfigureCampaignLifecycleGoals", + "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v16/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" } ] } ] }, { - "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v15.services.CustomizerAttributeService", + "shortName": "CampaignService", + "fullName": "google.ads.googleads.v16.services.CampaignService", "methods": [ { - "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v15.services.CustomizerAttributeService.MutateCustomizerAttributes", + "shortName": "MutateCampaigns", + "fullName": "google.ads.googleads.v16.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customizerAttributes:mutate" + "path": "/v16/customers/{customer_id=*}/campaigns:mutate" } ] } ] }, { - "shortName": "ExperimentArmService", - "fullName": "google.ads.googleads.v15.services.ExperimentArmService", + "shortName": "CampaignSharedSetService", + "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService", "methods": [ { - "shortName": "MutateExperimentArms", - "fullName": "google.ads.googleads.v15.services.ExperimentArmService.MutateExperimentArms", + "shortName": "MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/experimentArms:mutate" + "path": "/v16/customers/{customer_id=*}/campaignSharedSets:mutate" } ] } ] }, { - "shortName": "ExperimentService", - "fullName": "google.ads.googleads.v15.services.ExperimentService", + "shortName": "ConversionActionService", + "fullName": "google.ads.googleads.v16.services.ConversionActionService", "methods": [ { - "shortName": "EndExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.EndExperiment", + "shortName": "MutateConversionActions", + "fullName": "google.ads.googleads.v16.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{experiment=customers/*/experiments/*}:endExperiment" + "path": "/v16/customers/{customer_id=*}/conversionActions:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", + "methods": [ { - "shortName": "GraduateExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.GraduateExperiment", + "shortName": "UploadConversionAdjustments", + "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{experiment=customers/*/experiments/*}:graduateExperiment" + "path": "/v16/customers/{customer_id=*}:uploadConversionAdjustments" } ] - }, + } + ] + }, + { + "shortName": "ConversionCustomVariableService", + "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService", + "methods": [ { - "shortName": "ListExperimentAsyncErrors", - "fullName": "google.ads.googleads.v15.services.ExperimentService.ListExperimentAsyncErrors", + "shortName": "MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", + "methods": [ { - "shortName": "MutateExperiments", - "fullName": "google.ads.googleads.v15.services.ExperimentService.MutateExperiments", + "shortName": "MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/experiments:mutate" + "path": "/v16/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionUploadService", + "fullName": "google.ads.googleads.v16.services.ConversionUploadService", + "methods": [ { - "shortName": "PromoteExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.PromoteExperiment", + "shortName": "UploadCallConversions", + "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/experiments/*}:promoteExperiment" + "path": "/v16/customers/{customer_id=*}:uploadCallConversions" } ] }, { - "shortName": "ScheduleExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.ScheduleExperiment", + "shortName": "UploadClickConversions", + "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/experiments/*}:scheduleExperiment" + "path": "/v16/customers/{customer_id=*}:uploadClickConversions" } ] } ] }, { - "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v15.services.ExtensionFeedItemService", + "shortName": "ConversionValueRuleService", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService", "methods": [ { - "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v15.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "shortName": "MutateConversionValueRules", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v16/customers/{customer_id=*}/conversionValueRules:mutate" } ] } ] }, { - "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v15.services.FeedItemService", + "shortName": "ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService", "methods": [ { - "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v15.services.FeedItemService.MutateFeedItems", + "shortName": "MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItems:mutate" + "path": "/v16/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } ] }, { - "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v15.services.FeedItemSetLinkService", + "shortName": "CustomAudienceService", + "fullName": "google.ads.googleads.v16.services.CustomAudienceService", "methods": [ { - "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v15.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "shortName": "MutateCustomAudiences", + "fullName": "google.ads.googleads.v16.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v16/customers/{customer_id=*}/customAudiences:mutate" } ] } ] }, { - "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v15.services.FeedItemSetService", - "methods": [ + "shortName": "CustomConversionGoalService", + "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService", + "methods": [ { - "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v15.services.FeedItemSetService.MutateFeedItemSets", + "shortName": "MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v16/customers/{customer_id=*}/customConversionGoals:mutate" } ] } ] }, { - "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v15.services.FeedItemTargetService", + "shortName": "CustomInterestService", + "fullName": "google.ads.googleads.v16.services.CustomInterestService", "methods": [ { - "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v15.services.FeedItemTargetService.MutateFeedItemTargets", + "shortName": "MutateCustomInterests", + "fullName": "google.ads.googleads.v16.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v16/customers/{customer_id=*}/customInterests:mutate" } ] } ] }, { - "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v15.services.FeedMappingService", + "shortName": "CustomerAssetService", + "fullName": "google.ads.googleads.v16.services.CustomerAssetService", "methods": [ { - "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v15.services.FeedMappingService.MutateFeedMappings", + "shortName": "MutateCustomerAssets", + "fullName": "google.ads.googleads.v16.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v16/customers/{customer_id=*}/customerAssets:mutate" } ] } ] }, { - "shortName": "FeedService", - "fullName": "google.ads.googleads.v15.services.FeedService", + "shortName": "CustomerAssetSetService", + "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService", "methods": [ { - "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v15.services.FeedService.MutateFeeds", + "shortName": "MutateCustomerAssetSets", + "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService.MutateCustomerAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feeds:mutate" + "path": "/v16/customers/{customer_id=*}/customerAssetSets:mutate" } ] } ] }, { - "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v15.services.GeoTargetConstantService", + "shortName": "CustomerClientLinkService", + "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService", "methods": [ { - "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v15.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "shortName": "MutateCustomerClientLink", + "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/geoTargetConstants:suggest" + "path": "/v16/customers/{customer_id=*}/customerClientLinks:mutate" } ] } ] }, { - "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService", + "shortName": "CustomerConversionGoalService", + "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService", "methods": [ { - "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService.GetGoogleAdsField", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v15/{resource_name=googleAdsFields/*}" - } - ] - }, - { - "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "shortName": "MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/googleAdsFields:search" + "path": "/v16/customers/{customer_id=*}/customerConversionGoals:mutate" } ] } ] }, { - "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService", + "shortName": "CustomerCustomizerService", + "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService", "methods": [ { - "shortName": "Mutate", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService.Mutate", + "shortName": "MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/googleAds:mutate" + "path": "/v16/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService", + "methods": [ { - "shortName": "Search", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService.Search", + "shortName": "MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/googleAds:search" + "path": "/v16/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerFeedService", + "fullName": "google.ads.googleads.v16.services.CustomerFeedService", + "methods": [ { - "shortName": "SearchStream", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "MutateCustomerFeeds", + "fullName": "google.ads.googleads.v16.services.CustomerFeedService.MutateCustomerFeeds", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v16/customers/{customer_id=*}/customerFeeds:mutate" } ] } ] }, { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v15.services.InvoiceService", + "shortName": "CustomerLabelService", + "fullName": "google.ads.googleads.v16.services.CustomerLabelService", "methods": [ { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v15.services.InvoiceService.ListInvoices", + "shortName": "MutateCustomerLabels", + "fullName": "google.ads.googleads.v16.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v15/customers/{customer_id=*}/invoices" + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService", + "shortName": "CustomerLifecycleGoalService", + "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService", "methods": [ { - "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "shortName": "ConfigureCustomerLifecycleGoals", + "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v16/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" } ] } ] }, { - "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupService", + "shortName": "CustomerManagerLinkService", + "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService", "methods": [ { - "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "shortName": "MoveManagerLink", + "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v16/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] - } - ] - }, - { - "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService", - "methods": [ + }, { - "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "shortName": "MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v16/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } ] }, { - "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignService", + "shortName": "CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService", "methods": [ { - "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "shortName": "MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v16/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } ] }, { - "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService", + "shortName": "CustomerService", + "fullName": "google.ads.googleads.v16.services.CustomerService", "methods": [ { - "shortName": "GenerateAdGroupThemes", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateAdGroupThemes", + "shortName": "CreateCustomerClient", + "fullName": "google.ads.googleads.v16.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateAdGroupThemes" + "path": "/v16/customers/{customer_id=*}:createCustomerClient" } ] }, { - "shortName": "GenerateKeywordForecastMetrics", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.googleads.v16.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateKeywordForecastMetrics" + "httpMethod": "GET", + "path": "/v16/customers:listAccessibleCustomers" } ] }, { - "shortName": "GenerateKeywordHistoricalMetrics", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "shortName": "MutateCustomer", + "fullName": "google.ads.googleads.v16.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + "path": "/v16/customers/{customer_id=*}:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerSkAdNetworkConversionValueSchemaService", + "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", + "methods": [ { - "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", + "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v16/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" } ] } ] }, { - "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanService", + "shortName": "CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", "methods": [ { - "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v15.services.KeywordPlanService.MutateKeywordPlans", + "shortName": "MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v16/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } ] }, { - "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v15.services.KeywordThemeConstantService", + "shortName": "CustomerUserAccessService", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService", "methods": [ { - "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v15.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "shortName": "MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/keywordThemeConstants:suggest" + "path": "/v16/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } ] }, { - "shortName": "LabelService", - "fullName": "google.ads.googleads.v15.services.LabelService", + "shortName": "CustomizerAttributeService", + "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService", "methods": [ { - "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v15.services.LabelService.MutateLabels", + "shortName": "MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/labels:mutate" + "path": "/v16/customers/{customer_id=*}/customizerAttributes:mutate" } ] } ] }, { - "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService", + "shortName": "ExperimentArmService", + "fullName": "google.ads.googleads.v16.services.ExperimentArmService", "methods": [ { - "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "shortName": "MutateExperimentArms", + "fullName": "google.ads.googleads.v16.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v16/customers/{customer_id=*}/experimentArms:mutate" } ] - }, + } + ] + }, + { + "shortName": "ExperimentService", + "fullName": "google.ads.googleads.v16.services.ExperimentService", + "methods": [ { - "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "shortName": "EndExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v16/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { - "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "shortName": "GraduateExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v16/{experiment=customers/*/experiments/*}:graduateExperiment" } ] - } - ] - }, - { - "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v15.services.PaymentsAccountService", - "methods": [ + }, { - "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v15.services.PaymentsAccountService.ListPaymentsAccounts", + "shortName": "ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v16.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/customers/{customer_id=*}/paymentsAccounts" + "path": "/v16/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] - } - ] - }, - { - "shortName": "ProductLinkInvitationService", - "fullName": "google.ads.googleads.v15.services.ProductLinkInvitationService", - "methods": [ + }, { - "shortName": "UpdateProductLinkInvitation", - "fullName": "google.ads.googleads.v15.services.ProductLinkInvitationService.UpdateProductLinkInvitation", + "shortName": "MutateExperiments", + "fullName": "google.ads.googleads.v16.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/productLinkInvitations:update" + "path": "/v16/customers/{customer_id=*}/experiments:mutate" } ] - } - ] - }, - { - "shortName": "ProductLinkService", - "fullName": "google.ads.googleads.v15.services.ProductLinkService", - "methods": [ + }, { - "shortName": "CreateProductLink", - "fullName": "google.ads.googleads.v15.services.ProductLinkService.CreateProductLink", + "shortName": "PromoteExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/productLinks:create" + "path": "/v16/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { - "shortName": "RemoveProductLink", - "fullName": "google.ads.googleads.v15.services.ProductLinkService.RemoveProductLink", + "shortName": "ScheduleExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/productLinks:remove" + "path": "/v16/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } ] }, { - "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v15.services.ReachPlanService", + "shortName": "ExtensionFeedItemService", + "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService", "methods": [ { - "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v15.services.ReachPlanService.GenerateReachForecast", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateReachForecast" - } - ] - }, - { - "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations", + "shortName": "MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15:listPlannableLocations" + "path": "/v16/customers/{customer_id=*}/extensionFeedItems:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedItemService", + "fullName": "google.ads.googleads.v16.services.FeedItemService", + "methods": [ { - "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts", + "shortName": "MutateFeedItems", + "fullName": "google.ads.googleads.v16.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15:listPlannableProducts" + "path": "/v16/customers/{customer_id=*}/feedItems:mutate" } ] } ] }, { - "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v15.services.RecommendationService", + "shortName": "FeedItemSetLinkService", + "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService", "methods": [ { - "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v15.services.RecommendationService.ApplyRecommendation", + "shortName": "MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/recommendations:apply" + "path": "/v16/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedItemSetService", + "fullName": "google.ads.googleads.v16.services.FeedItemSetService", + "methods": [ { - "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v15.services.RecommendationService.DismissRecommendation", + "shortName": "MutateFeedItemSets", + "fullName": "google.ads.googleads.v16.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v16/customers/{customer_id=*}/feedItemSets:mutate" } ] } ] }, { - "shortName": "RecommendationSubscriptionService", - "fullName": "google.ads.googleads.v15.services.RecommendationSubscriptionService", + "shortName": "FeedItemTargetService", + "fullName": "google.ads.googleads.v16.services.FeedItemTargetService", "methods": [ { - "shortName": "MutateRecommendationSubscription", - "fullName": "google.ads.googleads.v15.services.RecommendationSubscriptionService.MutateRecommendationSubscription", + "shortName": "MutateFeedItemTargets", + "fullName": "google.ads.googleads.v16.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + "path": "/v16/customers/{customer_id=*}/feedItemTargets:mutate" } ] } ] }, { - "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v15.services.RemarketingActionService", + "shortName": "FeedMappingService", + "fullName": "google.ads.googleads.v16.services.FeedMappingService", "methods": [ { - "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v15.services.RemarketingActionService.MutateRemarketingActions", + "shortName": "MutateFeedMappings", + "fullName": "google.ads.googleads.v16.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v16/customers/{customer_id=*}/feedMappings:mutate" } ] } ] }, { - "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v15.services.SharedCriterionService", + "shortName": "FeedService", + "fullName": "google.ads.googleads.v16.services.FeedService", "methods": [ { - "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v15.services.SharedCriterionService.MutateSharedCriteria", + "shortName": "MutateFeeds", + "fullName": "google.ads.googleads.v16.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v16/customers/{customer_id=*}/feeds:mutate" } ] } ] }, { - "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v15.services.SharedSetService", + "shortName": "GeoTargetConstantService", + "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService", "methods": [ { - "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v15.services.SharedSetService.MutateSharedSets", + "shortName": "SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v16/geoTargetConstants:suggest" } ] } ] }, { - "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService", + "shortName": "GoogleAdsFieldService", + "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService", "methods": [ { - "shortName": "GetSmartCampaignStatus", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService.GetSmartCampaignStatus", + "shortName": "GetGoogleAdsField", + "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + "path": "/v16/{resource_name=googleAdsFields/*}" } ] }, { - "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "shortName": "SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v16/googleAdsFields:search" } ] } ] }, { - "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService", + "shortName": "GoogleAdsService", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService", "methods": [ { - "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "shortName": "Mutate", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestKeywordThemes" + "path": "/v16/customers/{customer_id=*}/googleAds:mutate" } ] }, { - "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "shortName": "Search", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v16/customers/{customer_id=*}/googleAds:search" } ] }, { - "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", - "mode": "UNARY", + "shortName": "SearchStream", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService.SearchStream", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v16/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService", + "shortName": "IdentityVerificationService", + "fullName": "google.ads.googleads.v16.services.IdentityVerificationService", "methods": [ { - "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "shortName": "GetIdentityVerification", + "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.GetIdentityVerification", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v16/customers/{customer_id=*}/getIdentityVerification" + } + ] + }, + { + "shortName": "StartIdentityVerification", + "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.StartIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v16/customers/{customer_id=*}:startIdentityVerification" } ] } ] }, { - "shortName": "TravelAssetSuggestionService", - "fullName": "google.ads.googleads.v15.services.TravelAssetSuggestionService", + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v16.services.InvoiceService", "methods": [ { - "shortName": "SuggestTravelAssets", - "fullName": "google.ads.googleads.v15.services.TravelAssetSuggestionService.SuggestTravelAssets", + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v16.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestTravelAssets" + "httpMethod": "GET", + "path": "/v16/customers/{customer_id=*}/invoices" } ] } ] }, { - "shortName": "UserDataService", - "fullName": "google.ads.googleads.v15.services.UserDataService", + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", "methods": [ { - "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v15.services.UserDataService.UploadUserData", + "shortName": "MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadUserData" + "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } ] }, { - "shortName": "UserListService", - "fullName": "google.ads.googleads.v15.services.UserListService", + "shortName": "KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService", "methods": [ { - "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v15.services.UserListService.MutateUserLists", + "shortName": "MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/userLists:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } ] - } - ], - "configFile": "googleads_v15.yaml", - "serviceConfigApiNames": [ - "google.ads.googleads.v15.services.AccountBudgetProposalService", - "google.ads.googleads.v15.services.AccountLinkService", - "google.ads.googleads.v15.services.AdGroupAdLabelService", - "google.ads.googleads.v15.services.AdGroupAdService", - "google.ads.googleads.v15.services.AdGroupAssetService", - "google.ads.googleads.v15.services.AdGroupAssetSetService", - "google.ads.googleads.v15.services.AdGroupBidModifierService", - "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService", - "google.ads.googleads.v15.services.AdGroupCriterionLabelService", - "google.ads.googleads.v15.services.AdGroupCriterionService", - "google.ads.googleads.v15.services.AdGroupCustomizerService", - "google.ads.googleads.v15.services.AdGroupExtensionSettingService", - "google.ads.googleads.v15.services.AdGroupFeedService", - "google.ads.googleads.v15.services.AdGroupLabelService", - "google.ads.googleads.v15.services.AdGroupService", - "google.ads.googleads.v15.services.AdParameterService", - "google.ads.googleads.v15.services.AdService", - "google.ads.googleads.v15.services.AssetGroupAssetService", - "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService", - "google.ads.googleads.v15.services.AssetGroupService", - "google.ads.googleads.v15.services.AssetGroupSignalService", - "google.ads.googleads.v15.services.AssetService", - "google.ads.googleads.v15.services.AssetSetAssetService", - "google.ads.googleads.v15.services.AssetSetService", - "google.ads.googleads.v15.services.AudienceInsightsService", - "google.ads.googleads.v15.services.AudienceService", - "google.ads.googleads.v15.services.BatchJobService", - "google.ads.googleads.v15.services.BiddingDataExclusionService", - "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService", - "google.ads.googleads.v15.services.BiddingStrategyService", - "google.ads.googleads.v15.services.BillingSetupService", - "google.ads.googleads.v15.services.BrandSuggestionService", - "google.ads.googleads.v15.services.CampaignAssetService", - "google.ads.googleads.v15.services.CampaignAssetSetService", - "google.ads.googleads.v15.services.CampaignBidModifierService", - "google.ads.googleads.v15.services.CampaignBudgetService", - "google.ads.googleads.v15.services.CampaignConversionGoalService", - "google.ads.googleads.v15.services.CampaignCriterionService", - "google.ads.googleads.v15.services.CampaignCustomizerService", - "google.ads.googleads.v15.services.CampaignDraftService", - "google.ads.googleads.v15.services.CampaignExtensionSettingService", - "google.ads.googleads.v15.services.CampaignFeedService", - "google.ads.googleads.v15.services.CampaignGroupService", - "google.ads.googleads.v15.services.CampaignLabelService", - "google.ads.googleads.v15.services.CampaignLifecycleService", - "google.ads.googleads.v15.services.CampaignService", - "google.ads.googleads.v15.services.CampaignSharedSetService", - "google.ads.googleads.v15.services.ConversionActionService", - "google.ads.googleads.v15.services.ConversionAdjustmentUploadService", - "google.ads.googleads.v15.services.ConversionCustomVariableService", - "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService", - "google.ads.googleads.v15.services.ConversionUploadService", - "google.ads.googleads.v15.services.ConversionValueRuleService", - "google.ads.googleads.v15.services.ConversionValueRuleSetService", - "google.ads.googleads.v15.services.CustomAudienceService", - "google.ads.googleads.v15.services.CustomConversionGoalService", - "google.ads.googleads.v15.services.CustomInterestService", - "google.ads.googleads.v15.services.CustomerAssetService", - "google.ads.googleads.v15.services.CustomerAssetSetService", - "google.ads.googleads.v15.services.CustomerClientLinkService", - "google.ads.googleads.v15.services.CustomerConversionGoalService", - "google.ads.googleads.v15.services.CustomerCustomizerService", - "google.ads.googleads.v15.services.CustomerExtensionSettingService", - "google.ads.googleads.v15.services.CustomerFeedService", - "google.ads.googleads.v15.services.CustomerLabelService", - "google.ads.googleads.v15.services.CustomerLifecycleService", - "google.ads.googleads.v15.services.CustomerManagerLinkService", - "google.ads.googleads.v15.services.CustomerNegativeCriterionService", - "google.ads.googleads.v15.services.CustomerService", - "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService", - "google.ads.googleads.v15.services.CustomerUserAccessInvitationService", - "google.ads.googleads.v15.services.CustomerUserAccessService", - "google.ads.googleads.v15.services.CustomizerAttributeService", - "google.ads.googleads.v15.services.ExperimentArmService", - "google.ads.googleads.v15.services.ExperimentService", - "google.ads.googleads.v15.services.ExtensionFeedItemService", - "google.ads.googleads.v15.services.FeedItemService", - "google.ads.googleads.v15.services.FeedItemSetLinkService", - "google.ads.googleads.v15.services.FeedItemSetService", - "google.ads.googleads.v15.services.FeedItemTargetService", - "google.ads.googleads.v15.services.FeedMappingService", - "google.ads.googleads.v15.services.FeedService", - "google.ads.googleads.v15.services.GeoTargetConstantService", - "google.ads.googleads.v15.services.GoogleAdsFieldService", - "google.ads.googleads.v15.services.GoogleAdsService", - "google.ads.googleads.v15.services.InvoiceService", - "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService", - "google.ads.googleads.v15.services.KeywordPlanAdGroupService", - "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService", - "google.ads.googleads.v15.services.KeywordPlanCampaignService", - "google.ads.googleads.v15.services.KeywordPlanIdeaService", - "google.ads.googleads.v15.services.KeywordPlanService", - "google.ads.googleads.v15.services.KeywordThemeConstantService", - "google.ads.googleads.v15.services.LabelService", - "google.ads.googleads.v15.services.OfflineUserDataJobService", - "google.ads.googleads.v15.services.PaymentsAccountService", - "google.ads.googleads.v15.services.ProductLinkInvitationService", - "google.ads.googleads.v15.services.ProductLinkService", - "google.ads.googleads.v15.services.ReachPlanService", - "google.ads.googleads.v15.services.RecommendationService", - "google.ads.googleads.v15.services.RecommendationSubscriptionService", - "google.ads.googleads.v15.services.RemarketingActionService", - "google.ads.googleads.v15.services.SharedCriterionService", - "google.ads.googleads.v15.services.SharedSetService", - "google.ads.googleads.v15.services.SmartCampaignSettingService", - "google.ads.googleads.v15.services.SmartCampaignSuggestService", - "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService", - "google.ads.googleads.v15.services.TravelAssetSuggestionService", - "google.ads.googleads.v15.services.UserDataService", - "google.ads.googleads.v15.services.UserListService" - ], - "nameInServiceConfig": "googleads.googleapis.com" - }, - { - "id": "google.ads.googleads.v16", - "directory": "google/ads/googleads/v16", - "version": "v16", - "majorVersion": "v16", - "hostName": "googleads.googleapis.com", - "title": "Google Ads API", - "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", - "importDirectories": [ - "google/ads/googleads/v16/common", - "google/ads/googleads/v16/enums", - "google/ads/googleads/v16/errors", - "google/ads/googleads/v16/resources", - "google/ads/googleads/v16/services", - "google/api", - "google/longrunning", - "google/protobuf", - "google/rpc" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Ads.GoogleAds.V16.Common": 38, - "Google.Ads.GoogleAds.V16.Enums": 348, - "Google.Ads.GoogleAds.V16.Errors": 152, - "Google.Ads.GoogleAds.V16.Resources": 177, - "Google.Ads.GoogleAds.V16.Services": 111 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v16/common;common": 38, - "google.golang.org/genproto/googleapis/ads/googleads/v16/enums;enums": 348, - "google.golang.org/genproto/googleapis/ads/googleads/v16/errors;errors": 152, - "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources": 177, - "google.golang.org/genproto/googleapis/ads/googleads/v16/services;services": 111 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 826 - } - }, - "java_package": { - "valueCounts": { - "com.google.ads.googleads.v16.common": 38, - "com.google.ads.googleads.v16.enums": 348, - "com.google.ads.googleads.v16.errors": 152, - "com.google.ads.googleads.v16.resources": 177, - "com.google.ads.googleads.v16.services": 111 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GAA": 826 - } }, - "php_namespace": { - "valueCounts": { - "Google\\Ads\\GoogleAds\\V16\\Common": 38, - "Google\\Ads\\GoogleAds\\V16\\Enums": 348, - "Google\\Ads\\GoogleAds\\V16\\Errors": 152, - "Google\\Ads\\GoogleAds\\V16\\Resources": 177, - "Google\\Ads\\GoogleAds\\V16\\Services": 111 - } + { + "shortName": "KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", + "methods": [ + { + "shortName": "MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + } + ] + } + ] }, - "ruby_package": { - "valueCounts": { - "Google::Ads::GoogleAds::V16::Common": 38, - "Google::Ads::GoogleAds::V16::Enums": 348, - "Google::Ads::GoogleAds::V16::Errors": 152, - "Google::Ads::GoogleAds::V16::Resources": 177, - "Google::Ads::GoogleAds::V16::Services": 111 - } - } - }, - "services": [ { - "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService", + "shortName": "KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService", "methods": [ { - "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "shortName": "MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] } ] }, { - "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v16.services.AccountLinkService", + "shortName": "KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService", "methods": [ { - "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v16.services.AccountLinkService.CreateAccountLink", + "shortName": "GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/accountLinks:create" + "path": "/v16/customers/{customer_id=*}:generateAdGroupThemes" } ] }, { - "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v16.services.AccountLinkService.MutateAccountLink", + "shortName": "GenerateKeywordForecastMetrics", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v16/customers/{customer_id=*}:generateKeywordForecastMetrics" } ] - } - ] - }, - { - "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "shortName": "GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v16/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] - } - ] - }, - { - "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v16.services.AdGroupAdService", - "methods": [ + }, { - "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v16.services.AdGroupAdService.MutateAdGroupAds", + "shortName": "GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v16/customers/{customer_id=*}:generateKeywordIdeas" } ] } ] }, { - "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetService", + "shortName": "KeywordPlanService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanService", "methods": [ { - "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetService.MutateAdGroupAssets", + "shortName": "MutateKeywordPlans", + "fullName": "google.ads.googleads.v16.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlans:mutate" } ] } ] }, { - "shortName": "AdGroupAssetSetService", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService", + "shortName": "KeywordThemeConstantService", + "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService", "methods": [ { - "shortName": "MutateAdGroupAssetSets", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService.MutateAdGroupAssetSets", + "shortName": "SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAssetSets:mutate" + "path": "/v16/keywordThemeConstants:suggest" } ] } ] }, { - "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService", + "shortName": "LabelService", + "fullName": "google.ads.googleads.v16.services.LabelService", "methods": [ { - "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "shortName": "MutateLabels", + "fullName": "google.ads.googleads.v16.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v16/customers/{customer_id=*}/labels:mutate" } ] } ] }, { - "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", + "shortName": "OfflineUserDataJobService", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService", "methods": [ { - "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "shortName": "AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "shortName": "CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v16/customers/{customer_id=*}/offlineUserDataJobs:create" } ] - } - ] - }, - { - "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService", - "methods": [ + }, { - "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService.MutateAdGroupCriteria", + "shortName": "RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } ] }, { - "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService", + "shortName": "PaymentsAccountService", + "fullName": "google.ads.googleads.v16.services.PaymentsAccountService", "methods": [ { - "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "shortName": "ListPaymentsAccounts", + "fullName": "google.ads.googleads.v16.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupCustomizers:mutate" + "httpMethod": "GET", + "path": "/v16/customers/{customer_id=*}/paymentsAccounts" } ] } ] }, { - "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService", + "shortName": "ProductLinkInvitationService", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService", "methods": [ { - "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "shortName": "CreateProductLinkInvitation", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.CreateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v16/customers/{customer_id=*}/productLinkInvitations:create" } ] - } - ] - }, - { - "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v16.services.AdGroupFeedService", - "methods": [ + }, { - "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v16.services.AdGroupFeedService.MutateAdGroupFeeds", + "shortName": "RemoveProductLinkInvitation", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.RemoveProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v16/customers/{customer_id=*}/productLinkInvitations:remove" } ] - } - ] - }, - { - "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v16.services.AdGroupLabelService", - "methods": [ + }, { - "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v16.services.AdGroupLabelService.MutateAdGroupLabels", + "shortName": "UpdateProductLinkInvitation", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.UpdateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v16/customers/{customer_id=*}/productLinkInvitations:update" } ] } ] }, { - "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v16.services.AdGroupService", + "shortName": "ProductLinkService", + "fullName": "google.ads.googleads.v16.services.ProductLinkService", "methods": [ { - "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v16.services.AdGroupService.MutateAdGroups", + "shortName": "CreateProductLink", + "fullName": "google.ads.googleads.v16.services.ProductLinkService.CreateProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroups:mutate" + "path": "/v16/customers/{customer_id=*}/productLinks:create" } ] - } - ] - }, - { - "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v16.services.AdParameterService", - "methods": [ + }, { - "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v16.services.AdParameterService.MutateAdParameters", + "shortName": "RemoveProductLink", + "fullName": "google.ads.googleads.v16.services.ProductLinkService.RemoveProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adParameters:mutate" + "path": "/v16/customers/{customer_id=*}/productLinks:remove" } ] } ] }, { - "shortName": "AdService", - "fullName": "google.ads.googleads.v16.services.AdService", + "shortName": "ReachPlanService", + "fullName": "google.ads.googleads.v16.services.ReachPlanService", "methods": [ { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v16.services.AdService.GetAd", + "shortName": "GenerateReachForecast", + "fullName": "google.ads.googleads.v16.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/ads/*}" + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}:generateReachForecast" } ] }, { - "shortName": "MutateAds", - "fullName": "google.ads.googleads.v16.services.AdService.MutateAds", + "shortName": "ListPlannableLocations", + "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/ads:mutate" + "path": "/v16:listPlannableLocations" } ] - } - ] - }, - { - "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService", - "methods": [ + }, { - "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService.MutateAssetGroupAssets", + "shortName": "ListPlannableProducts", + "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroupAssets:mutate" + "path": "/v16:listPlannableProducts" } ] } ] }, { - "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", + "shortName": "RecommendationService", + "fullName": "google.ads.googleads.v16.services.RecommendationService", "methods": [ { - "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "shortName": "ApplyRecommendation", + "fullName": "google.ads.googleads.v16.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "path": "/v16/customers/{customer_id=*}/recommendations:apply" } ] - } - ] - }, - { - "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v16.services.AssetGroupService", - "methods": [ + }, { - "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v16.services.AssetGroupService.MutateAssetGroups", + "shortName": "DismissRecommendation", + "fullName": "google.ads.googleads.v16.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroups:mutate" + "path": "/v16/customers/{customer_id=*}/recommendations:dismiss" + } + ] + }, + { + "shortName": "GenerateRecommendations", + "fullName": "google.ads.googleads.v16.services.RecommendationService.GenerateRecommendations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/recommendations:generate" } ] } ] }, { - "shortName": "AssetGroupSignalService", - "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService", + "shortName": "RecommendationSubscriptionService", + "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService", "methods": [ { - "shortName": "MutateAssetGroupSignals", - "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService.MutateAssetGroupSignals", + "shortName": "MutateRecommendationSubscription", + "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService.MutateRecommendationSubscription", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroupSignals:mutate" + "path": "/v16/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" } ] } ] }, { - "shortName": "AssetService", - "fullName": "google.ads.googleads.v16.services.AssetService", + "shortName": "RemarketingActionService", + "fullName": "google.ads.googleads.v16.services.RemarketingActionService", "methods": [ { - "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v16.services.AssetService.MutateAssets", + "shortName": "MutateRemarketingActions", + "fullName": "google.ads.googleads.v16.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assets:mutate" + "path": "/v16/customers/{customer_id=*}/remarketingActions:mutate" } ] } ] }, { - "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v16.services.AssetSetAssetService", + "shortName": "SharedCriterionService", + "fullName": "google.ads.googleads.v16.services.SharedCriterionService", "methods": [ { - "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v16.services.AssetSetAssetService.MutateAssetSetAssets", + "shortName": "MutateSharedCriteria", + "fullName": "google.ads.googleads.v16.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetSetAssets:mutate" + "path": "/v16/customers/{customer_id=*}/sharedCriteria:mutate" } ] } ] }, { - "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v16.services.AssetSetService", + "shortName": "SharedSetService", + "fullName": "google.ads.googleads.v16.services.SharedSetService", "methods": [ { - "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v16.services.AssetSetService.MutateAssetSets", + "shortName": "MutateSharedSets", + "fullName": "google.ads.googleads.v16.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetSets:mutate" + "path": "/v16/customers/{customer_id=*}/sharedSets:mutate" } ] } ] }, { - "shortName": "AudienceInsightsService", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService", + "shortName": "SmartCampaignSettingService", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService", "methods": [ { - "shortName": "GenerateAudienceCompositionInsights", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateAudienceCompositionInsights", + "shortName": "GetSmartCampaignStatus", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.GetSmartCampaignStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateAudienceCompositionInsights" + "httpMethod": "GET", + "path": "/v16/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" } ] }, { - "shortName": "GenerateInsightsFinderReport", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateInsightsFinderReport", + "shortName": "MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateInsightsFinderReport" + "path": "/v16/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] - }, - { - "shortName": "GenerateSuggestedTargetingInsights", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", + } + ] + }, + { + "shortName": "SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService", + "methods": [ + { + "shortName": "SuggestKeywordThemes", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateSuggestedTargetingInsights" + "path": "/v16/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { - "shortName": "ListAudienceInsightsAttributes", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "shortName": "SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:searchAudienceInsightsAttributes" + "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { - "shortName": "ListInsightsEligibleDates", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListInsightsEligibleDates", + "shortName": "SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/audienceInsights:listInsightsEligibleDates" + "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] } ] }, { - "shortName": "AudienceService", - "fullName": "google.ads.googleads.v16.services.AudienceService", + "shortName": "ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", "methods": [ { - "shortName": "MutateAudiences", - "fullName": "google.ads.googleads.v16.services.AudienceService.MutateAudiences", + "shortName": "RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/audiences:mutate" + "path": "/v16/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } ] }, { - "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v16.services.BatchJobService", + "shortName": "TravelAssetSuggestionService", + "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService", "methods": [ { - "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v16.services.BatchJobService.AddBatchJobOperations", + "shortName": "SuggestTravelAssets", + "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService.SuggestTravelAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/batchJobs/*}:addOperations" - } - ] - }, - { - "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v16.services.BatchJobService.ListBatchJobResults", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v16/customers/{customer_id=*}:suggestTravelAssets" } ] - }, + } + ] + }, + { + "shortName": "UserDataService", + "fullName": "google.ads.googleads.v16.services.UserDataService", + "methods": [ { - "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v16.services.BatchJobService.MutateBatchJob", + "shortName": "UploadUserData", + "fullName": "google.ads.googleads.v16.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v16/customers/{customer_id=*}:uploadUserData" } ] - }, + } + ] + }, + { + "shortName": "UserListService", + "fullName": "google.ads.googleads.v16.services.UserListService", + "methods": [ { - "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v16.services.BatchJobService.RunBatchJob", + "shortName": "MutateUserLists", + "fullName": "google.ads.googleads.v16.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v16/customers/{customer_id=*}/userLists:mutate" } ] } ] + } + ], + "configFile": "googleads_v16.yaml", + "serviceConfigApiNames": [ + "google.ads.googleads.v16.services.AccountBudgetProposalService", + "google.ads.googleads.v16.services.AccountLinkService", + "google.ads.googleads.v16.services.AdGroupAdLabelService", + "google.ads.googleads.v16.services.AdGroupAdService", + "google.ads.googleads.v16.services.AdGroupAssetService", + "google.ads.googleads.v16.services.AdGroupAssetSetService", + "google.ads.googleads.v16.services.AdGroupBidModifierService", + "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v16.services.AdGroupCriterionLabelService", + "google.ads.googleads.v16.services.AdGroupCriterionService", + "google.ads.googleads.v16.services.AdGroupCustomizerService", + "google.ads.googleads.v16.services.AdGroupExtensionSettingService", + "google.ads.googleads.v16.services.AdGroupFeedService", + "google.ads.googleads.v16.services.AdGroupLabelService", + "google.ads.googleads.v16.services.AdGroupService", + "google.ads.googleads.v16.services.AdParameterService", + "google.ads.googleads.v16.services.AdService", + "google.ads.googleads.v16.services.AssetGroupAssetService", + "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v16.services.AssetGroupService", + "google.ads.googleads.v16.services.AssetGroupSignalService", + "google.ads.googleads.v16.services.AssetService", + "google.ads.googleads.v16.services.AssetSetAssetService", + "google.ads.googleads.v16.services.AssetSetService", + "google.ads.googleads.v16.services.AudienceInsightsService", + "google.ads.googleads.v16.services.AudienceService", + "google.ads.googleads.v16.services.BatchJobService", + "google.ads.googleads.v16.services.BiddingDataExclusionService", + "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v16.services.BiddingStrategyService", + "google.ads.googleads.v16.services.BillingSetupService", + "google.ads.googleads.v16.services.BrandSuggestionService", + "google.ads.googleads.v16.services.CampaignAssetService", + "google.ads.googleads.v16.services.CampaignAssetSetService", + "google.ads.googleads.v16.services.CampaignBidModifierService", + "google.ads.googleads.v16.services.CampaignBudgetService", + "google.ads.googleads.v16.services.CampaignConversionGoalService", + "google.ads.googleads.v16.services.CampaignCriterionService", + "google.ads.googleads.v16.services.CampaignCustomizerService", + "google.ads.googleads.v16.services.CampaignDraftService", + "google.ads.googleads.v16.services.CampaignExtensionSettingService", + "google.ads.googleads.v16.services.CampaignFeedService", + "google.ads.googleads.v16.services.CampaignGroupService", + "google.ads.googleads.v16.services.CampaignLabelService", + "google.ads.googleads.v16.services.CampaignLifecycleGoalService", + "google.ads.googleads.v16.services.CampaignService", + "google.ads.googleads.v16.services.CampaignSharedSetService", + "google.ads.googleads.v16.services.ConversionActionService", + "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v16.services.ConversionCustomVariableService", + "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v16.services.ConversionUploadService", + "google.ads.googleads.v16.services.ConversionValueRuleService", + "google.ads.googleads.v16.services.ConversionValueRuleSetService", + "google.ads.googleads.v16.services.CustomAudienceService", + "google.ads.googleads.v16.services.CustomConversionGoalService", + "google.ads.googleads.v16.services.CustomInterestService", + "google.ads.googleads.v16.services.CustomerAssetService", + "google.ads.googleads.v16.services.CustomerAssetSetService", + "google.ads.googleads.v16.services.CustomerClientLinkService", + "google.ads.googleads.v16.services.CustomerConversionGoalService", + "google.ads.googleads.v16.services.CustomerCustomizerService", + "google.ads.googleads.v16.services.CustomerExtensionSettingService", + "google.ads.googleads.v16.services.CustomerFeedService", + "google.ads.googleads.v16.services.CustomerLabelService", + "google.ads.googleads.v16.services.CustomerLifecycleGoalService", + "google.ads.googleads.v16.services.CustomerManagerLinkService", + "google.ads.googleads.v16.services.CustomerNegativeCriterionService", + "google.ads.googleads.v16.services.CustomerService", + "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", + "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v16.services.CustomerUserAccessService", + "google.ads.googleads.v16.services.CustomizerAttributeService", + "google.ads.googleads.v16.services.ExperimentArmService", + "google.ads.googleads.v16.services.ExperimentService", + "google.ads.googleads.v16.services.ExtensionFeedItemService", + "google.ads.googleads.v16.services.FeedItemService", + "google.ads.googleads.v16.services.FeedItemSetLinkService", + "google.ads.googleads.v16.services.FeedItemSetService", + "google.ads.googleads.v16.services.FeedItemTargetService", + "google.ads.googleads.v16.services.FeedMappingService", + "google.ads.googleads.v16.services.FeedService", + "google.ads.googleads.v16.services.GeoTargetConstantService", + "google.ads.googleads.v16.services.GoogleAdsFieldService", + "google.ads.googleads.v16.services.GoogleAdsService", + "google.ads.googleads.v16.services.IdentityVerificationService", + "google.ads.googleads.v16.services.InvoiceService", + "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v16.services.KeywordPlanAdGroupService", + "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v16.services.KeywordPlanCampaignService", + "google.ads.googleads.v16.services.KeywordPlanIdeaService", + "google.ads.googleads.v16.services.KeywordPlanService", + "google.ads.googleads.v16.services.KeywordThemeConstantService", + "google.ads.googleads.v16.services.LabelService", + "google.ads.googleads.v16.services.OfflineUserDataJobService", + "google.ads.googleads.v16.services.PaymentsAccountService", + "google.ads.googleads.v16.services.ProductLinkInvitationService", + "google.ads.googleads.v16.services.ProductLinkService", + "google.ads.googleads.v16.services.ReachPlanService", + "google.ads.googleads.v16.services.RecommendationService", + "google.ads.googleads.v16.services.RecommendationSubscriptionService", + "google.ads.googleads.v16.services.RemarketingActionService", + "google.ads.googleads.v16.services.SharedCriterionService", + "google.ads.googleads.v16.services.SharedSetService", + "google.ads.googleads.v16.services.SmartCampaignSettingService", + "google.ads.googleads.v16.services.SmartCampaignSuggestService", + "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v16.services.TravelAssetSuggestionService", + "google.ads.googleads.v16.services.UserDataService", + "google.ads.googleads.v16.services.UserListService" + ], + "nameInServiceConfig": "googleads.googleapis.com" + }, + { + "id": "google.ads.googleads.v17", + "directory": "google/ads/googleads/v17", + "version": "v17", + "majorVersion": "v17", + "hostName": "googleads.googleapis.com", + "title": "Google Ads API", + "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", + "importDirectories": [ + "google/ads/googleads/v17/common", + "google/ads/googleads/v17/enums", + "google/ads/googleads/v17/errors", + "google/ads/googleads/v17/resources", + "google/ads/googleads/v17/services", + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Ads.GoogleAds.V17.Common": 38, + "Google.Ads.GoogleAds.V17.Enums": 357, + "Google.Ads.GoogleAds.V17.Errors": 155, + "Google.Ads.GoogleAds.V17.Resources": 181, + "Google.Ads.GoogleAds.V17.Services": 113 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common": 38, + "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums": 357, + "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors": 155, + "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources": 181, + "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services": 113 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 844 + } }, + "java_package": { + "valueCounts": { + "com.google.ads.googleads.v17.common": 38, + "com.google.ads.googleads.v17.enums": 357, + "com.google.ads.googleads.v17.errors": 155, + "com.google.ads.googleads.v17.resources": 181, + "com.google.ads.googleads.v17.services": 113 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GAA": 844 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Ads\\GoogleAds\\V17\\Common": 38, + "Google\\Ads\\GoogleAds\\V17\\Enums": 357, + "Google\\Ads\\GoogleAds\\V17\\Errors": 155, + "Google\\Ads\\GoogleAds\\V17\\Resources": 181, + "Google\\Ads\\GoogleAds\\V17\\Services": 113 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Ads::GoogleAds::V17::Common": 38, + "Google::Ads::GoogleAds::V17::Enums": 357, + "Google::Ads::GoogleAds::V17::Errors": 155, + "Google::Ads::GoogleAds::V17::Resources": 181, + "Google::Ads::GoogleAds::V17::Services": 113 + } + } + }, + "services": [ { - "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService", + "shortName": "AccountBudgetProposalService", + "fullName": "google.ads.googleads.v17.services.AccountBudgetProposalService", "methods": [ { - "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "shortName": "MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v17.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v17/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } ] }, { - "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", + "shortName": "AccountLinkService", + "fullName": "google.ads.googleads.v17.services.AccountLinkService", "methods": [ { - "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "shortName": "CreateAccountLink", + "fullName": "google.ads.googleads.v17.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v17/customers/{customer_id=*}/accountLinks:create" } ] - } - ] - }, - { - "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v16.services.BiddingStrategyService", - "methods": [ + }, { - "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v16.services.BiddingStrategyService.MutateBiddingStrategies", + "shortName": "MutateAccountLink", + "fullName": "google.ads.googleads.v17.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v17/customers/{customer_id=*}/accountLinks:mutate" } ] } ] }, { - "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v16.services.BillingSetupService", + "shortName": "AdGroupAdLabelService", + "fullName": "google.ads.googleads.v17.services.AdGroupAdLabelService", "methods": [ { - "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v16.services.BillingSetupService.MutateBillingSetup", + "shortName": "MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v17.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } ] }, { - "shortName": "BrandSuggestionService", - "fullName": "google.ads.googleads.v16.services.BrandSuggestionService", + "shortName": "AdGroupAdService", + "fullName": "google.ads.googleads.v17.services.AdGroupAdService", "methods": [ { - "shortName": "SuggestBrands", - "fullName": "google.ads.googleads.v16.services.BrandSuggestionService.SuggestBrands", + "shortName": "MutateAdGroupAds", + "fullName": "google.ads.googleads.v17.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestBrands" + "path": "/v17/customers/{customer_id=*}/adGroupAds:mutate" } ] } ] }, { - "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v16.services.CampaignAssetService", + "shortName": "AdGroupAssetService", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetService", "methods": [ { - "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v16.services.CampaignAssetService.MutateCampaignAssets", + "shortName": "MutateAdGroupAssets", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAssets:mutate" } ] } ] }, { - "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService", + "shortName": "AdGroupAssetSetService", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetSetService", "methods": [ { - "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService.MutateCampaignAssetSets", + "shortName": "MutateAdGroupAssetSets", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetSetService.MutateAdGroupAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAssetSets:mutate" } ] } ] }, { - "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService", + "shortName": "AdGroupBidModifierService", + "fullName": "google.ads.googleads.v17.services.AdGroupBidModifierService", "methods": [ { - "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "shortName": "MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v17.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } ] }, { - "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v16.services.CampaignBudgetService", + "shortName": "AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService", "methods": [ { - "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v16.services.CampaignBudgetService.MutateCampaignBudgets", + "shortName": "MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v17/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } ] }, { - "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService", + "shortName": "AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionLabelService", "methods": [ { - "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "shortName": "MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignConversionGoals:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } ] }, { - "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v16.services.CampaignCriterionService", + "shortName": "AdGroupCriterionService", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionService", "methods": [ { - "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v16.services.CampaignCriterionService.MutateCampaignCriteria", + "shortName": "MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } ] }, { - "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService", + "shortName": "AdGroupCustomizerService", + "fullName": "google.ads.googleads.v17.services.AdGroupCustomizerService", "methods": [ { - "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService.MutateCampaignCustomizers", + "shortName": "MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v17.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } ] }, { - "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService", + "shortName": "AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v17.services.AdGroupExtensionSettingService", "methods": [ { - "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService.ListCampaignDraftAsyncErrors", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" - } - ] - }, - { - "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService.MutateCampaignDrafts", + "shortName": "MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v17.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] - }, + } + ] + }, + { + "shortName": "AdGroupFeedService", + "fullName": "google.ads.googleads.v17.services.AdGroupFeedService", + "methods": [ { - "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService.PromoteCampaignDraft", + "shortName": "MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v17.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v17/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } ] }, { - "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService", + "shortName": "AdGroupLabelService", + "fullName": "google.ads.googleads.v17.services.AdGroupLabelService", "methods": [ { - "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "shortName": "MutateAdGroupLabels", + "fullName": "google.ads.googleads.v17.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupLabels:mutate" } ] } ] }, { - "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v16.services.CampaignFeedService", + "shortName": "AdGroupService", + "fullName": "google.ads.googleads.v17.services.AdGroupService", "methods": [ { - "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v16.services.CampaignFeedService.MutateCampaignFeeds", + "shortName": "MutateAdGroups", + "fullName": "google.ads.googleads.v17.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v17/customers/{customer_id=*}/adGroups:mutate" } ] } ] }, { - "shortName": "CampaignGroupService", - "fullName": "google.ads.googleads.v16.services.CampaignGroupService", + "shortName": "AdParameterService", + "fullName": "google.ads.googleads.v17.services.AdParameterService", "methods": [ { - "shortName": "MutateCampaignGroups", - "fullName": "google.ads.googleads.v16.services.CampaignGroupService.MutateCampaignGroups", + "shortName": "MutateAdParameters", + "fullName": "google.ads.googleads.v17.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignGroups:mutate" + "path": "/v17/customers/{customer_id=*}/adParameters:mutate" } ] } ] }, { - "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v16.services.CampaignLabelService", + "shortName": "AdService", + "fullName": "google.ads.googleads.v17.services.AdService", "methods": [ { - "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v16.services.CampaignLabelService.MutateCampaignLabels", + "shortName": "MutateAds", + "fullName": "google.ads.googleads.v17.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v17/customers/{customer_id=*}/ads:mutate" } ] } ] }, { - "shortName": "CampaignLifecycleGoalService", - "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService", + "shortName": "AssetGroupAssetService", + "fullName": "google.ads.googleads.v17.services.AssetGroupAssetService", "methods": [ { - "shortName": "ConfigureCampaignLifecycleGoals", - "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", + "shortName": "MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v17.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + "path": "/v17/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } ] }, { - "shortName": "CampaignService", - "fullName": "google.ads.googleads.v16.services.CampaignService", + "shortName": "AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService", "methods": [ { - "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v16.services.CampaignService.MutateCampaigns", + "shortName": "MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaigns:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } ] }, { - "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService", + "shortName": "AssetGroupService", + "fullName": "google.ads.googleads.v17.services.AssetGroupService", "methods": [ { - "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService.MutateCampaignSharedSets", + "shortName": "MutateAssetGroups", + "fullName": "google.ads.googleads.v17.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroups:mutate" } ] } ] }, { - "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v16.services.ConversionActionService", + "shortName": "AssetGroupSignalService", + "fullName": "google.ads.googleads.v17.services.AssetGroupSignalService", "methods": [ { - "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v16.services.ConversionActionService.MutateConversionActions", + "shortName": "MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v17.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } ] }, { - "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", + "shortName": "AssetService", + "fullName": "google.ads.googleads.v17.services.AssetService", "methods": [ { - "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "shortName": "MutateAssets", + "fullName": "google.ads.googleads.v17.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v17/customers/{customer_id=*}/assets:mutate" } ] } ] }, { - "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService", + "shortName": "AssetSetAssetService", + "fullName": "google.ads.googleads.v17.services.AssetSetAssetService", "methods": [ { - "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "shortName": "MutateAssetSetAssets", + "fullName": "google.ads.googleads.v17.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v17/customers/{customer_id=*}/assetSetAssets:mutate" } ] } ] }, { - "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", + "shortName": "AssetSetService", + "fullName": "google.ads.googleads.v17.services.AssetSetService", "methods": [ { - "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "shortName": "MutateAssetSets", + "fullName": "google.ads.googleads.v17.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "path": "/v17/customers/{customer_id=*}/assetSets:mutate" } ] } ] }, { - "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v16.services.ConversionUploadService", + "shortName": "AudienceInsightsService", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService", "methods": [ { - "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadCallConversions", + "shortName": "GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadCallConversions" + "path": "/v17/customers/{customer_id=*}:generateAudienceCompositionInsights" } ] }, { - "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadClickConversions", + "shortName": "GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadClickConversions" + "path": "/v17/customers/{customer_id=*}:generateInsightsFinderReport" } ] - } - ] - }, - { - "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService", - "methods": [ + }, { - "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService.MutateConversionValueRules", + "shortName": "GenerateSuggestedTargetingInsights", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v17/customers/{customer_id=*}:generateSuggestedTargetingInsights" } ] - } - ] - }, - { - "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService", - "methods": [ + }, { - "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "shortName": "ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.ListAudienceInsightsAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v17/customers/{customer_id=*}:searchAudienceInsightsAttributes" } ] - } - ] - }, - { - "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v16.services.CustomAudienceService", - "methods": [ + }, { - "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v16.services.CustomAudienceService.MutateCustomAudiences", + "shortName": "ListInsightsEligibleDates", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.ListInsightsEligibleDates", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v17/audienceInsights:listInsightsEligibleDates" } ] } ] }, { - "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService", + "shortName": "AudienceService", + "fullName": "google.ads.googleads.v17.services.AudienceService", "methods": [ { - "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService.MutateCustomConversionGoals", + "shortName": "MutateAudiences", + "fullName": "google.ads.googleads.v17.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customConversionGoals:mutate" + "path": "/v17/customers/{customer_id=*}/audiences:mutate" } ] } ] }, { - "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v16.services.CustomInterestService", + "shortName": "BatchJobService", + "fullName": "google.ads.googleads.v17.services.BatchJobService", "methods": [ { - "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v16.services.CustomInterestService.MutateCustomInterests", + "shortName": "AddBatchJobOperations", + "fullName": "google.ads.googleads.v17.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customInterests:mutate" + "path": "/v17/{resource_name=customers/*/batchJobs/*}:addOperations" } ] - } - ] - }, - { - "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v16.services.CustomerAssetService", - "methods": [ + }, { - "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v16.services.CustomerAssetService.MutateCustomerAssets", + "shortName": "ListBatchJobResults", + "fullName": "google.ads.googleads.v17.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerAssets:mutate" + "httpMethod": "GET", + "path": "/v17/{resource_name=customers/*/batchJobs/*}:listResults" + } + ] + }, + { + "shortName": "MutateBatchJob", + "fullName": "google.ads.googleads.v17.services.BatchJobService.MutateBatchJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/batchJobs:mutate" + } + ] + }, + { + "shortName": "RunBatchJob", + "fullName": "google.ads.googleads.v17.services.BatchJobService.RunBatchJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/{resource_name=customers/*/batchJobs/*}:run" } ] } ] }, { - "shortName": "CustomerAssetSetService", - "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService", + "shortName": "BiddingDataExclusionService", + "fullName": "google.ads.googleads.v17.services.BiddingDataExclusionService", "methods": [ { - "shortName": "MutateCustomerAssetSets", - "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService.MutateCustomerAssetSets", + "shortName": "MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v17.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerAssetSets:mutate" + "path": "/v17/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } ] }, { - "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService", + "shortName": "BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService", "methods": [ { - "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService.MutateCustomerClientLink", + "shortName": "MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v17/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } ] }, { - "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService", + "shortName": "BiddingStrategyService", + "fullName": "google.ads.googleads.v17.services.BiddingStrategyService", "methods": [ { - "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "shortName": "MutateBiddingStrategies", + "fullName": "google.ads.googleads.v17.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v17/customers/{customer_id=*}/biddingStrategies:mutate" } ] } ] }, { - "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService", + "shortName": "BillingSetupService", + "fullName": "google.ads.googleads.v17.services.BillingSetupService", "methods": [ { - "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService.MutateCustomerCustomizers", + "shortName": "MutateBillingSetup", + "fullName": "google.ads.googleads.v17.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/CustomerCustomizers:mutate" + "path": "/v17/customers/{customer_id=*}/billingSetups:mutate" } ] } ] }, { - "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService", + "shortName": "BrandSuggestionService", + "fullName": "google.ads.googleads.v17.services.BrandSuggestionService", "methods": [ { - "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "shortName": "SuggestBrands", + "fullName": "google.ads.googleads.v17.services.BrandSuggestionService.SuggestBrands", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v17/customers/{customer_id=*}:suggestBrands" } ] } ] }, { - "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v16.services.CustomerFeedService", + "shortName": "CampaignAssetService", + "fullName": "google.ads.googleads.v17.services.CampaignAssetService", "methods": [ { - "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v16.services.CustomerFeedService.MutateCustomerFeeds", + "shortName": "MutateCampaignAssets", + "fullName": "google.ads.googleads.v17.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v17/customers/{customer_id=*}/campaignAssets:mutate" } ] } ] }, { - "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v16.services.CustomerLabelService", + "shortName": "CampaignAssetSetService", + "fullName": "google.ads.googleads.v17.services.CampaignAssetSetService", "methods": [ { - "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v16.services.CustomerLabelService.MutateCustomerLabels", + "shortName": "MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v17.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v17/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } ] }, { - "shortName": "CustomerLifecycleGoalService", - "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService", + "shortName": "CampaignBidModifierService", + "fullName": "google.ads.googleads.v17.services.CampaignBidModifierService", "methods": [ { - "shortName": "ConfigureCustomerLifecycleGoals", - "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", + "shortName": "MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v17.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + "path": "/v17/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } ] }, { - "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService", + "shortName": "CampaignBudgetService", + "fullName": "google.ads.googleads.v17.services.CampaignBudgetService", "methods": [ { - "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MoveManagerLink", + "shortName": "MutateCampaignBudgets", + "fullName": "google.ads.googleads.v17.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "path": "/v17/customers/{customer_id=*}/campaignBudgets:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignConversionGoalService", + "fullName": "google.ads.googleads.v17.services.CampaignConversionGoalService", + "methods": [ { - "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "shortName": "MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v17.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v17/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } ] }, { - "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService", + "shortName": "CampaignCriterionService", + "fullName": "google.ads.googleads.v17.services.CampaignCriterionService", "methods": [ { - "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "shortName": "MutateCampaignCriteria", + "fullName": "google.ads.googleads.v17.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/campaignCriteria:mutate" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.googleads.v16.services.CustomerService", + "shortName": "CampaignCustomizerService", + "fullName": "google.ads.googleads.v17.services.CampaignCustomizerService", "methods": [ { - "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v16.services.CustomerService.CreateCustomerClient", + "shortName": "MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v17.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:createCustomerClient" + "path": "/v17/customers/{customer_id=*}/campaignCustomizers:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignDraftService", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService", + "methods": [ { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v16.services.CustomerService.ListAccessibleCustomers", + "shortName": "ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/customers:listAccessibleCustomers" + "path": "/v17/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { - "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v16.services.CustomerService.MutateCustomer", + "shortName": "MutateCampaignDrafts", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:mutate" + "path": "/v17/customers/{customer_id=*}/campaignDrafts:mutate" } ] - } - ] - }, - { - "shortName": "CustomerSkAdNetworkConversionValueSchemaService", - "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", - "methods": [ + }, { - "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", - "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", + "shortName": "PromoteCampaignDraft", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + "path": "/v17/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } ] }, { - "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", + "shortName": "CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v17.services.CampaignExtensionSettingService", "methods": [ { - "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "shortName": "MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v17.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v17/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } ] }, { - "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService", + "shortName": "CampaignFeedService", + "fullName": "google.ads.googleads.v17.services.CampaignFeedService", "methods": [ { - "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService.MutateCustomerUserAccess", + "shortName": "MutateCampaignFeeds", + "fullName": "google.ads.googleads.v17.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v17/customers/{customer_id=*}/campaignFeeds:mutate" } ] } ] }, { - "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService", + "shortName": "CampaignGroupService", + "fullName": "google.ads.googleads.v17.services.CampaignGroupService", "methods": [ { - "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService.MutateCustomizerAttributes", + "shortName": "MutateCampaignGroups", + "fullName": "google.ads.googleads.v17.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customizerAttributes:mutate" + "path": "/v17/customers/{customer_id=*}/campaignGroups:mutate" } ] } ] }, { - "shortName": "ExperimentArmService", - "fullName": "google.ads.googleads.v16.services.ExperimentArmService", + "shortName": "CampaignLabelService", + "fullName": "google.ads.googleads.v17.services.CampaignLabelService", "methods": [ { - "shortName": "MutateExperimentArms", - "fullName": "google.ads.googleads.v16.services.ExperimentArmService.MutateExperimentArms", + "shortName": "MutateCampaignLabels", + "fullName": "google.ads.googleads.v17.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/experimentArms:mutate" + "path": "/v17/customers/{customer_id=*}/campaignLabels:mutate" } ] } ] }, { - "shortName": "ExperimentService", - "fullName": "google.ads.googleads.v16.services.ExperimentService", + "shortName": "CampaignLifecycleGoalService", + "fullName": "google.ads.googleads.v17.services.CampaignLifecycleGoalService", "methods": [ { - "shortName": "EndExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.EndExperiment", + "shortName": "ConfigureCampaignLifecycleGoals", + "fullName": "google.ads.googleads.v17.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{experiment=customers/*/experiments/*}:endExperiment" + "path": "/v17/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" } ] - }, + } + ] + }, + { + "shortName": "CampaignService", + "fullName": "google.ads.googleads.v17.services.CampaignService", + "methods": [ { - "shortName": "GraduateExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.GraduateExperiment", + "shortName": "MutateCampaigns", + "fullName": "google.ads.googleads.v17.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{experiment=customers/*/experiments/*}:graduateExperiment" + "path": "/v17/customers/{customer_id=*}/campaigns:mutate" } ] - }, + } + ] + }, + { + "shortName": "CampaignSharedSetService", + "fullName": "google.ads.googleads.v17.services.CampaignSharedSetService", + "methods": [ { - "shortName": "ListExperimentAsyncErrors", - "fullName": "google.ads.googleads.v16.services.ExperimentService.ListExperimentAsyncErrors", + "shortName": "MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v17.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/campaignSharedSets:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionActionService", + "fullName": "google.ads.googleads.v17.services.ConversionActionService", + "methods": [ { - "shortName": "MutateExperiments", - "fullName": "google.ads.googleads.v16.services.ExperimentService.MutateExperiments", + "shortName": "MutateConversionActions", + "fullName": "google.ads.googleads.v17.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/experiments:mutate" + "path": "/v17/customers/{customer_id=*}/conversionActions:mutate" } ] - }, + } + ] + }, + { + "shortName": "ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService", + "methods": [ { - "shortName": "PromoteExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.PromoteExperiment", + "shortName": "UploadConversionAdjustments", + "fullName": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/experiments/*}:promoteExperiment" + "path": "/v17/customers/{customer_id=*}:uploadConversionAdjustments" } ] - }, + } + ] + }, + { + "shortName": "ConversionCustomVariableService", + "fullName": "google.ads.googleads.v17.services.ConversionCustomVariableService", + "methods": [ { - "shortName": "ScheduleExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.ScheduleExperiment", + "shortName": "MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v17.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/experiments/*}:scheduleExperiment" + "path": "/v17/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] } ] }, { - "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService", + "shortName": "ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService", "methods": [ { - "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "shortName": "MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v17/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } ] }, { - "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v16.services.FeedItemService", + "shortName": "ConversionUploadService", + "fullName": "google.ads.googleads.v17.services.ConversionUploadService", "methods": [ { - "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v16.services.FeedItemService.MutateFeedItems", + "shortName": "UploadCallConversions", + "fullName": "google.ads.googleads.v17.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItems:mutate" + "path": "/v17/customers/{customer_id=*}:uploadCallConversions" } ] - } - ] - }, - { - "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService", - "methods": [ + }, { - "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "shortName": "UploadClickConversions", + "fullName": "google.ads.googleads.v17.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v17/customers/{customer_id=*}:uploadClickConversions" } ] } ] }, { - "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v16.services.FeedItemSetService", + "shortName": "ConversionValueRuleService", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleService", "methods": [ { - "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v16.services.FeedItemSetService.MutateFeedItemSets", + "shortName": "MutateConversionValueRules", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v17/customers/{customer_id=*}/conversionValueRules:mutate" } ] } ] }, { - "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v16.services.FeedItemTargetService", + "shortName": "ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleSetService", "methods": [ { - "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v16.services.FeedItemTargetService.MutateFeedItemTargets", + "shortName": "MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v17/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } ] }, { - "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v16.services.FeedMappingService", + "shortName": "CustomAudienceService", + "fullName": "google.ads.googleads.v17.services.CustomAudienceService", "methods": [ { - "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v16.services.FeedMappingService.MutateFeedMappings", + "shortName": "MutateCustomAudiences", + "fullName": "google.ads.googleads.v17.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v17/customers/{customer_id=*}/customAudiences:mutate" } ] } ] }, { - "shortName": "FeedService", - "fullName": "google.ads.googleads.v16.services.FeedService", + "shortName": "CustomConversionGoalService", + "fullName": "google.ads.googleads.v17.services.CustomConversionGoalService", "methods": [ { - "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v16.services.FeedService.MutateFeeds", + "shortName": "MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v17.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feeds:mutate" + "path": "/v17/customers/{customer_id=*}/customConversionGoals:mutate" } ] } ] }, { - "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService", + "shortName": "CustomInterestService", + "fullName": "google.ads.googleads.v17.services.CustomInterestService", "methods": [ { - "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "shortName": "MutateCustomInterests", + "fullName": "google.ads.googleads.v17.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/geoTargetConstants:suggest" + "path": "/v17/customers/{customer_id=*}/customInterests:mutate" } ] } ] }, { - "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService", + "shortName": "CustomerAssetService", + "fullName": "google.ads.googleads.v17.services.CustomerAssetService", "methods": [ { - "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.GetGoogleAdsField", + "shortName": "MutateCustomerAssets", + "fullName": "google.ads.googleads.v17.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v16/{resource_name=googleAdsFields/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/customerAssets:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerAssetSetService", + "fullName": "google.ads.googleads.v17.services.CustomerAssetSetService", + "methods": [ { - "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "shortName": "MutateCustomerAssetSets", + "fullName": "google.ads.googleads.v17.services.CustomerAssetSetService.MutateCustomerAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/googleAdsFields:search" + "path": "/v17/customers/{customer_id=*}/customerAssetSets:mutate" } ] } ] }, { - "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService", + "shortName": "CustomerClientLinkService", + "fullName": "google.ads.googleads.v17.services.CustomerClientLinkService", "methods": [ { - "shortName": "Mutate", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Mutate", + "shortName": "MutateCustomerClientLink", + "fullName": "google.ads.googleads.v17.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/googleAds:mutate" + "path": "/v17/customers/{customer_id=*}/customerClientLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerConversionGoalService", + "fullName": "google.ads.googleads.v17.services.CustomerConversionGoalService", + "methods": [ { - "shortName": "Search", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Search", + "shortName": "MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v17.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/googleAds:search" + "path": "/v17/customers/{customer_id=*}/customerConversionGoals:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerCustomizerService", + "fullName": "google.ads.googleads.v17.services.CustomerCustomizerService", + "methods": [ { - "shortName": "SearchStream", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v17.services.CustomerCustomizerService.MutateCustomerCustomizers", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v17/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] } ] }, { - "shortName": "IdentityVerificationService", - "fullName": "google.ads.googleads.v16.services.IdentityVerificationService", + "shortName": "CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v17.services.CustomerExtensionSettingService", "methods": [ { - "shortName": "GetIdentityVerification", - "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.GetIdentityVerification", + "shortName": "MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v17.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v16/customers/{customer_id=*}/getIdentityVerification" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerFeedService", + "fullName": "google.ads.googleads.v17.services.CustomerFeedService", + "methods": [ { - "shortName": "StartIdentityVerification", - "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.StartIdentityVerification", + "shortName": "MutateCustomerFeeds", + "fullName": "google.ads.googleads.v17.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:startIdentityVerification" + "path": "/v17/customers/{customer_id=*}/customerFeeds:mutate" } ] } ] }, { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v16.services.InvoiceService", + "shortName": "CustomerLabelService", + "fullName": "google.ads.googleads.v17.services.CustomerLabelService", "methods": [ { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v16.services.InvoiceService.ListInvoices", + "shortName": "MutateCustomerLabels", + "fullName": "google.ads.googleads.v17.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v16/customers/{customer_id=*}/invoices" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", + "shortName": "CustomerLifecycleGoalService", + "fullName": "google.ads.googleads.v17.services.CustomerLifecycleGoalService", "methods": [ { - "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "shortName": "ConfigureCustomerLifecycleGoals", + "fullName": "google.ads.googleads.v17.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v17/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" } ] } ] }, { - "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService", + "shortName": "CustomerManagerLinkService", + "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService", "methods": [ { - "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "shortName": "MoveManagerLink", + "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v17/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] - } - ] - }, - { - "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", - "methods": [ + }, { - "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "shortName": "MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v17/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } ] }, { - "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService", + "shortName": "CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v17.services.CustomerNegativeCriterionService", "methods": [ { - "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "shortName": "MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v17.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v17/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } ] }, { - "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService", + "shortName": "CustomerService", + "fullName": "google.ads.googleads.v17.services.CustomerService", "methods": [ { - "shortName": "GenerateAdGroupThemes", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateAdGroupThemes", + "shortName": "CreateCustomerClient", + "fullName": "google.ads.googleads.v17.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateAdGroupThemes" + "path": "/v17/customers/{customer_id=*}:createCustomerClient" } ] }, { - "shortName": "GenerateKeywordForecastMetrics", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.googleads.v17.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateKeywordForecastMetrics" + "httpMethod": "GET", + "path": "/v17/customers:listAccessibleCustomers" } ] }, { - "shortName": "GenerateKeywordHistoricalMetrics", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "shortName": "MutateCustomer", + "fullName": "google.ads.googleads.v17.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + "path": "/v17/customers/{customer_id=*}:mutate" } ] - }, + } + ] + }, + { + "shortName": "CustomerSkAdNetworkConversionValueSchemaService", + "fullName": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService", + "methods": [ { - "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", + "fullName": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v17/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" } ] } ] }, { - "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanService", + "shortName": "CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService", "methods": [ { - "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v16.services.KeywordPlanService.MutateKeywordPlans", + "shortName": "MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v17/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } ] }, { - "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService", + "shortName": "CustomerUserAccessService", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessService", "methods": [ { - "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "shortName": "MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/keywordThemeConstants:suggest" + "path": "/v17/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } ] }, { - "shortName": "LabelService", - "fullName": "google.ads.googleads.v16.services.LabelService", + "shortName": "CustomizerAttributeService", + "fullName": "google.ads.googleads.v17.services.CustomizerAttributeService", "methods": [ { - "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v16.services.LabelService.MutateLabels", + "shortName": "MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v17.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/labels:mutate" + "path": "/v17/customers/{customer_id=*}/customizerAttributes:mutate" } ] } ] }, { - "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService", + "shortName": "ExperimentArmService", + "fullName": "google.ads.googleads.v17.services.ExperimentArmService", "methods": [ { - "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "shortName": "MutateExperimentArms", + "fullName": "google.ads.googleads.v17.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v17/customers/{customer_id=*}/experimentArms:mutate" } ] - }, + } + ] + }, + { + "shortName": "ExperimentService", + "fullName": "google.ads.googleads.v17.services.ExperimentService", + "methods": [ { - "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "shortName": "EndExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v17/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { - "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "shortName": "GraduateExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v17/{experiment=customers/*/experiments/*}:graduateExperiment" } ] - } - ] - }, - { - "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v16.services.PaymentsAccountService", - "methods": [ + }, { - "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v16.services.PaymentsAccountService.ListPaymentsAccounts", + "shortName": "ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v17.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/customers/{customer_id=*}/paymentsAccounts" + "path": "/v17/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] - } - ] - }, - { - "shortName": "ProductLinkInvitationService", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService", - "methods": [ + }, { - "shortName": "CreateProductLinkInvitation", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.CreateProductLinkInvitation", + "shortName": "MutateExperiments", + "fullName": "google.ads.googleads.v17.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinkInvitations:create" + "path": "/v17/customers/{customer_id=*}/experiments:mutate" } ] }, { - "shortName": "RemoveProductLinkInvitation", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.RemoveProductLinkInvitation", + "shortName": "PromoteExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinkInvitations:remove" + "path": "/v17/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { - "shortName": "UpdateProductLinkInvitation", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.UpdateProductLinkInvitation", + "shortName": "ScheduleExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinkInvitations:update" + "path": "/v17/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } ] }, { - "shortName": "ProductLinkService", - "fullName": "google.ads.googleads.v16.services.ProductLinkService", + "shortName": "ExtensionFeedItemService", + "fullName": "google.ads.googleads.v17.services.ExtensionFeedItemService", "methods": [ { - "shortName": "CreateProductLink", - "fullName": "google.ads.googleads.v16.services.ProductLinkService.CreateProductLink", + "shortName": "MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v17.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinks:create" - } - ] - }, - { - "shortName": "RemoveProductLink", - "fullName": "google.ads.googleads.v16.services.ProductLinkService.RemoveProductLink", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinks:remove" + "path": "/v17/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } ] }, { - "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v16.services.ReachPlanService", + "shortName": "FeedItemService", + "fullName": "google.ads.googleads.v17.services.FeedItemService", "methods": [ { - "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v16.services.ReachPlanService.GenerateReachForecast", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateReachForecast" - } - ] - }, - { - "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableLocations", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v16:listPlannableLocations" - } - ] - }, - { - "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableProducts", + "shortName": "MutateFeedItems", + "fullName": "google.ads.googleads.v17.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16:listPlannableProducts" + "path": "/v17/customers/{customer_id=*}/feedItems:mutate" } ] } ] }, { - "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v16.services.RecommendationService", + "shortName": "FeedItemSetLinkService", + "fullName": "google.ads.googleads.v17.services.FeedItemSetLinkService", "methods": [ { - "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v16.services.RecommendationService.ApplyRecommendation", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendations:apply" - } - ] - }, - { - "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v16.services.RecommendationService.DismissRecommendation", + "shortName": "MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v17.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v17/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] - }, + } + ] + }, + { + "shortName": "FeedItemSetService", + "fullName": "google.ads.googleads.v17.services.FeedItemSetService", + "methods": [ { - "shortName": "GenerateRecommendations", - "fullName": "google.ads.googleads.v16.services.RecommendationService.GenerateRecommendations", + "shortName": "MutateFeedItemSets", + "fullName": "google.ads.googleads.v17.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendations:generate" + "path": "/v17/customers/{customer_id=*}/feedItemSets:mutate" } ] } ] }, { - "shortName": "RecommendationSubscriptionService", - "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService", + "shortName": "FeedItemTargetService", + "fullName": "google.ads.googleads.v17.services.FeedItemTargetService", "methods": [ { - "shortName": "MutateRecommendationSubscription", - "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService.MutateRecommendationSubscription", + "shortName": "MutateFeedItemTargets", + "fullName": "google.ads.googleads.v17.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + "path": "/v17/customers/{customer_id=*}/feedItemTargets:mutate" } ] } ] }, { - "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v16.services.RemarketingActionService", + "shortName": "FeedMappingService", + "fullName": "google.ads.googleads.v17.services.FeedMappingService", "methods": [ { - "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v16.services.RemarketingActionService.MutateRemarketingActions", + "shortName": "MutateFeedMappings", + "fullName": "google.ads.googleads.v17.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v17/customers/{customer_id=*}/feedMappings:mutate" } ] } ] }, { - "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v16.services.SharedCriterionService", + "shortName": "FeedService", + "fullName": "google.ads.googleads.v17.services.FeedService", "methods": [ { - "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v16.services.SharedCriterionService.MutateSharedCriteria", + "shortName": "MutateFeeds", + "fullName": "google.ads.googleads.v17.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/feeds:mutate" } ] } ] }, { - "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v16.services.SharedSetService", + "shortName": "GeoTargetConstantService", + "fullName": "google.ads.googleads.v17.services.GeoTargetConstantService", "methods": [ { - "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v16.services.SharedSetService.MutateSharedSets", + "shortName": "SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v17.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v17/geoTargetConstants:suggest" } ] } ] }, { - "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService", + "shortName": "GoogleAdsFieldService", + "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService", "methods": [ { - "shortName": "GetSmartCampaignStatus", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.GetSmartCampaignStatus", + "shortName": "GetGoogleAdsField", + "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + "path": "/v17/{resource_name=googleAdsFields/*}" } ] }, { - "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "shortName": "SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v17/googleAdsFields:search" } ] } ] }, { - "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService", + "shortName": "GoogleAdsService", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService", "methods": [ { - "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "shortName": "Mutate", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestKeywordThemes" + "path": "/v17/customers/{customer_id=*}/googleAds:mutate" } ] }, { - "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "shortName": "Search", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v17/customers/{customer_id=*}/googleAds:search" } ] }, { - "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", - "mode": "UNARY", + "shortName": "SearchStream", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService.SearchStream", + "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v17/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", + "shortName": "IdentityVerificationService", + "fullName": "google.ads.googleads.v17.services.IdentityVerificationService", "methods": [ { - "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "shortName": "GetIdentityVerification", + "fullName": "google.ads.googleads.v17.services.IdentityVerificationService.GetIdentityVerification", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v17/customers/{customer_id=*}/getIdentityVerification" + } + ] + }, + { + "shortName": "StartIdentityVerification", + "fullName": "google.ads.googleads.v17.services.IdentityVerificationService.StartIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v17/customers/{customer_id=*}:startIdentityVerification" } ] } ] }, { - "shortName": "TravelAssetSuggestionService", - "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService", + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v17.services.InvoiceService", "methods": [ { - "shortName": "SuggestTravelAssets", - "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService.SuggestTravelAssets", + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v17.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestTravelAssets" + "httpMethod": "GET", + "path": "/v17/customers/{customer_id=*}/invoices" } ] } ] }, { - "shortName": "UserDataService", - "fullName": "google.ads.googleads.v16.services.UserDataService", + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService", "methods": [ { - "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v16.services.UserDataService.UploadUserData", + "shortName": "MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadUserData" + "path": "/v17/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } ] }, { - "shortName": "UserListService", - "fullName": "google.ads.googleads.v16.services.UserListService", + "shortName": "KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupService", "methods": [ { - "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v16.services.UserListService.MutateUserLists", + "shortName": "MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/userLists:mutate" + "path": "/v17/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } ] - } - ], - "configFile": "googleads_v16.yaml", - "serviceConfigApiNames": [ - "google.ads.googleads.v16.services.AccountBudgetProposalService", - "google.ads.googleads.v16.services.AccountLinkService", - "google.ads.googleads.v16.services.AdGroupAdLabelService", - "google.ads.googleads.v16.services.AdGroupAdService", - "google.ads.googleads.v16.services.AdGroupAssetService", - "google.ads.googleads.v16.services.AdGroupAssetSetService", - "google.ads.googleads.v16.services.AdGroupBidModifierService", - "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", - "google.ads.googleads.v16.services.AdGroupCriterionLabelService", - "google.ads.googleads.v16.services.AdGroupCriterionService", - "google.ads.googleads.v16.services.AdGroupCustomizerService", - "google.ads.googleads.v16.services.AdGroupExtensionSettingService", - "google.ads.googleads.v16.services.AdGroupFeedService", - "google.ads.googleads.v16.services.AdGroupLabelService", - "google.ads.googleads.v16.services.AdGroupService", - "google.ads.googleads.v16.services.AdParameterService", - "google.ads.googleads.v16.services.AdService", - "google.ads.googleads.v16.services.AssetGroupAssetService", - "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", - "google.ads.googleads.v16.services.AssetGroupService", - "google.ads.googleads.v16.services.AssetGroupSignalService", - "google.ads.googleads.v16.services.AssetService", - "google.ads.googleads.v16.services.AssetSetAssetService", - "google.ads.googleads.v16.services.AssetSetService", - "google.ads.googleads.v16.services.AudienceInsightsService", - "google.ads.googleads.v16.services.AudienceService", - "google.ads.googleads.v16.services.BatchJobService", - "google.ads.googleads.v16.services.BiddingDataExclusionService", - "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", - "google.ads.googleads.v16.services.BiddingStrategyService", - "google.ads.googleads.v16.services.BillingSetupService", - "google.ads.googleads.v16.services.BrandSuggestionService", - "google.ads.googleads.v16.services.CampaignAssetService", - "google.ads.googleads.v16.services.CampaignAssetSetService", - "google.ads.googleads.v16.services.CampaignBidModifierService", - "google.ads.googleads.v16.services.CampaignBudgetService", - "google.ads.googleads.v16.services.CampaignConversionGoalService", - "google.ads.googleads.v16.services.CampaignCriterionService", - "google.ads.googleads.v16.services.CampaignCustomizerService", - "google.ads.googleads.v16.services.CampaignDraftService", - "google.ads.googleads.v16.services.CampaignExtensionSettingService", - "google.ads.googleads.v16.services.CampaignFeedService", - "google.ads.googleads.v16.services.CampaignGroupService", - "google.ads.googleads.v16.services.CampaignLabelService", - "google.ads.googleads.v16.services.CampaignLifecycleGoalService", - "google.ads.googleads.v16.services.CampaignService", - "google.ads.googleads.v16.services.CampaignSharedSetService", - "google.ads.googleads.v16.services.ConversionActionService", - "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", - "google.ads.googleads.v16.services.ConversionCustomVariableService", - "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", - "google.ads.googleads.v16.services.ConversionUploadService", - "google.ads.googleads.v16.services.ConversionValueRuleService", - "google.ads.googleads.v16.services.ConversionValueRuleSetService", - "google.ads.googleads.v16.services.CustomAudienceService", - "google.ads.googleads.v16.services.CustomConversionGoalService", - "google.ads.googleads.v16.services.CustomInterestService", - "google.ads.googleads.v16.services.CustomerAssetService", - "google.ads.googleads.v16.services.CustomerAssetSetService", - "google.ads.googleads.v16.services.CustomerClientLinkService", - "google.ads.googleads.v16.services.CustomerConversionGoalService", - "google.ads.googleads.v16.services.CustomerCustomizerService", - "google.ads.googleads.v16.services.CustomerExtensionSettingService", - "google.ads.googleads.v16.services.CustomerFeedService", - "google.ads.googleads.v16.services.CustomerLabelService", - "google.ads.googleads.v16.services.CustomerLifecycleGoalService", - "google.ads.googleads.v16.services.CustomerManagerLinkService", - "google.ads.googleads.v16.services.CustomerNegativeCriterionService", - "google.ads.googleads.v16.services.CustomerService", - "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", - "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", - "google.ads.googleads.v16.services.CustomerUserAccessService", - "google.ads.googleads.v16.services.CustomizerAttributeService", - "google.ads.googleads.v16.services.ExperimentArmService", - "google.ads.googleads.v16.services.ExperimentService", - "google.ads.googleads.v16.services.ExtensionFeedItemService", - "google.ads.googleads.v16.services.FeedItemService", - "google.ads.googleads.v16.services.FeedItemSetLinkService", - "google.ads.googleads.v16.services.FeedItemSetService", - "google.ads.googleads.v16.services.FeedItemTargetService", - "google.ads.googleads.v16.services.FeedMappingService", - "google.ads.googleads.v16.services.FeedService", - "google.ads.googleads.v16.services.GeoTargetConstantService", - "google.ads.googleads.v16.services.GoogleAdsFieldService", - "google.ads.googleads.v16.services.GoogleAdsService", - "google.ads.googleads.v16.services.IdentityVerificationService", - "google.ads.googleads.v16.services.InvoiceService", - "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", - "google.ads.googleads.v16.services.KeywordPlanAdGroupService", - "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", - "google.ads.googleads.v16.services.KeywordPlanCampaignService", - "google.ads.googleads.v16.services.KeywordPlanIdeaService", - "google.ads.googleads.v16.services.KeywordPlanService", - "google.ads.googleads.v16.services.KeywordThemeConstantService", - "google.ads.googleads.v16.services.LabelService", - "google.ads.googleads.v16.services.OfflineUserDataJobService", - "google.ads.googleads.v16.services.PaymentsAccountService", - "google.ads.googleads.v16.services.ProductLinkInvitationService", - "google.ads.googleads.v16.services.ProductLinkService", - "google.ads.googleads.v16.services.ReachPlanService", - "google.ads.googleads.v16.services.RecommendationService", - "google.ads.googleads.v16.services.RecommendationSubscriptionService", - "google.ads.googleads.v16.services.RemarketingActionService", - "google.ads.googleads.v16.services.SharedCriterionService", - "google.ads.googleads.v16.services.SharedSetService", - "google.ads.googleads.v16.services.SmartCampaignSettingService", - "google.ads.googleads.v16.services.SmartCampaignSuggestService", - "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", - "google.ads.googleads.v16.services.TravelAssetSuggestionService", - "google.ads.googleads.v16.services.UserDataService", - "google.ads.googleads.v16.services.UserListService" - ], - "nameInServiceConfig": "googleads.googleapis.com" - }, - { - "id": "google.ads.searchads360.v0", - "directory": "google/ads/searchads360/v0", - "version": "v0", - "majorVersion": "v0", - "hostName": "searchads360.googleapis.com", - "title": "Search Ads 360 Reporting API", - "description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.", - "importDirectories": [ - "google/ads/searchads360/v0/common", - "google/ads/searchads360/v0/enums", - "google/ads/searchads360/v0/resources", - "google/api", - "google/protobuf" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Ads.SearchAds360.V0.Common": 13, - "Google.Ads.SearchAds360.V0.Enums": 90, - "Google.Ads.SearchAds360.V0.Resources": 53, - "Google.Ads.SearchAds360.V0.Services": 4 - } - }, - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common": 13, - "google.golang.org/genproto/googleapis/ads/searchads360/v0/enums;enums": 90, - "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources": 53, - "google.golang.org/genproto/googleapis/ads/searchads360/v0/services;services": 4 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 160 - } - }, - "java_package": { - "valueCounts": { - "com.google.ads.searchads360.v0.common": 13, - "com.google.ads.searchads360.v0.enums": 90, - "com.google.ads.searchads360.v0.resources": 53, - "com.google.ads.searchads360.v0.services": 4 - } - }, - "objc_class_prefix": { - "valueCounts": { - "GASA360": 160 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Ads\\SearchAds360\\V0\\Common": 13, - "Google\\Ads\\SearchAds360\\V0\\Enums": 90, - "Google\\Ads\\SearchAds360\\V0\\Resources": 53, - "Google\\Ads\\SearchAds360\\V0\\Services": 4 - } }, - "ruby_package": { - "valueCounts": { - "Google::Ads::SearchAds360::V0::Common": 13, - "Google::Ads::SearchAds360::V0::Enums": 90, - "Google::Ads::SearchAds360::V0::Resources": 53, - "Google::Ads::SearchAds360::V0::Services": 4 - } - } - }, - "services": [ { - "shortName": "CustomColumnService", - "fullName": "google.ads.searchads360.v0.services.CustomColumnService", + "shortName": "KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService", "methods": [ { - "shortName": "GetCustomColumn", - "fullName": "google.ads.searchads360.v0.services.CustomColumnService.GetCustomColumn", + "shortName": "MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v0/{resource_name=customers/*/customColumns/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignService", + "methods": [ { - "shortName": "ListCustomColumns", - "fullName": "google.ads.searchads360.v0.services.CustomColumnService.ListCustomColumns", + "shortName": "MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v0/customers/{customer_id=*}/customColumns" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] } ] }, { - "shortName": "CustomerService", - "fullName": "google.ads.searchads360.v0.services.CustomerService", + "shortName": "KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService", "methods": [ { - "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.searchads360.v0.services.CustomerService.ListAccessibleCustomers", + "shortName": "GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v0/customers:listAccessibleCustomers" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:generateAdGroupThemes" } ] - } - ] - }, - { - "shortName": "SearchAds360FieldService", - "fullName": "google.ads.searchads360.v0.services.SearchAds360FieldService", - "methods": [ + }, { - "shortName": "GetSearchAds360Field", - "fullName": "google.ads.searchads360.v0.services.SearchAds360FieldService.GetSearchAds360Field", + "shortName": "GenerateKeywordForecastMetrics", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v0/{resource_name=searchAds360Fields/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:generateKeywordForecastMetrics" } ] }, { - "shortName": "SearchSearchAds360Fields", - "fullName": "google.ads.searchads360.v0.services.SearchAds360FieldService.SearchSearchAds360Fields", + "shortName": "GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v0/searchAds360Fields:search" + "path": "/v17/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + } + ] + }, + { + "shortName": "GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:generateKeywordIdeas" } ] } ] }, { - "shortName": "SearchAds360Service", - "fullName": "google.ads.searchads360.v0.services.SearchAds360Service", + "shortName": "KeywordPlanService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanService", "methods": [ { - "shortName": "Search", - "fullName": "google.ads.searchads360.v0.services.SearchAds360Service.Search", + "shortName": "MutateKeywordPlans", + "fullName": "google.ads.googleads.v17.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v0/customers/{customer_id=*}/searchAds360:search" + "path": "/v17/customers/{customer_id=*}/keywordPlans:mutate" } ] - }, + } + ] + }, + { + "shortName": "KeywordThemeConstantService", + "fullName": "google.ads.googleads.v17.services.KeywordThemeConstantService", + "methods": [ { - "shortName": "SearchStream", - "fullName": "google.ads.searchads360.v0.services.SearchAds360Service.SearchStream", - "mode": "SERVER_STREAMING", + "shortName": "SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v17.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v0/customers/{customer_id=*}/searchAds360:searchStream" + "path": "/v17/keywordThemeConstants:suggest" } ] } ] - } - ], - "configFile": "searchads360_v0.yaml", - "serviceConfigApiNames": [ - "google.ads.searchads360.v0.services.CustomColumnService", - "google.ads.searchads360.v0.services.CustomerService", - "google.ads.searchads360.v0.services.SearchAds360FieldService", - "google.ads.searchads360.v0.services.SearchAds360Service" - ], - "nameInServiceConfig": "searchads360.googleapis.com" - }, - { - "id": "google.ai.generativelanguage.v1", - "directory": "google/ai/generativelanguage/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "generativelanguage.googleapis.com", - "title": "Generative Language API", - "description": "The Gemini API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model in the world, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more.", - "importDirectories": [ - "google/ai/generativelanguage/v1", - "google/api" - ], - "options": { - "go_package": { - "valueCounts": { - "cloud.google.com/go/ai/generativelanguage/apiv1/generativelanguagepb;generativelanguagepb": 6 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 6 - } }, - "java_package": { - "valueCounts": { - "com.google.ai.generativelanguage.v1": 6 - } - } - }, - "services": [ { - "shortName": "GenerativeService", - "fullName": "google.ai.generativelanguage.v1.GenerativeService", + "shortName": "LabelService", + "fullName": "google.ads.googleads.v17.services.LabelService", "methods": [ { - "shortName": "BatchEmbedContents", - "fullName": "google.ai.generativelanguage.v1.GenerativeService.BatchEmbedContents", + "shortName": "MutateLabels", + "fullName": "google.ads.googleads.v17.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{model=models/*}:batchEmbedContents" + "path": "/v17/customers/{customer_id=*}/labels:mutate" } ] - }, + } + ] + }, + { + "shortName": "LocalServicesLeadService", + "fullName": "google.ads.googleads.v17.services.LocalServicesLeadService", + "methods": [ { - "shortName": "CountTokens", - "fullName": "google.ai.generativelanguage.v1.GenerativeService.CountTokens", + "shortName": "AppendLeadConversation", + "fullName": "google.ads.googleads.v17.services.LocalServicesLeadService.AppendLeadConversation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{model=models/*}:countTokens" + "path": "/v17/customers/{customer_id=*}/localServices:appendLeadConversation" } ] - }, + } + ] + }, + { + "shortName": "OfflineUserDataJobService", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService", + "methods": [ { - "shortName": "EmbedContent", - "fullName": "google.ai.generativelanguage.v1.GenerativeService.EmbedContent", + "shortName": "AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{model=models/*}:embedContent" + "path": "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] }, { - "shortName": "GenerateContent", - "fullName": "google.ai.generativelanguage.v1.GenerativeService.GenerateContent", + "shortName": "CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{model=models/*}:generateContent" + "path": "/v17/customers/{customer_id=*}/offlineUserDataJobs:create" } ] }, { - "shortName": "StreamGenerateContent", - "fullName": "google.ai.generativelanguage.v1.GenerativeService.StreamGenerateContent", - "mode": "SERVER_STREAMING", + "shortName": "RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{model=models/*}:streamGenerateContent" + "path": "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } ] }, { - "shortName": "ModelService", - "fullName": "google.ai.generativelanguage.v1.ModelService", + "shortName": "PaymentsAccountService", + "fullName": "google.ads.googleads.v17.services.PaymentsAccountService", "methods": [ { - "shortName": "GetModel", - "fullName": "google.ai.generativelanguage.v1.ModelService.GetModel", + "shortName": "ListPaymentsAccounts", + "fullName": "google.ads.googleads.v17.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=models/*}" + "path": "/v17/customers/{customer_id=*}/paymentsAccounts" } ] - }, + } + ] + }, + { + "shortName": "ProductLinkInvitationService", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService", + "methods": [ { - "shortName": "ListModels", - "fullName": "google.ai.generativelanguage.v1.ModelService.ListModels", + "shortName": "CreateProductLinkInvitation", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.CreateProductLinkInvitation", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/models" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/productLinkInvitations:create" } ] - } - ] - } - ], - "configFile": "generativelanguage_v1.yaml", - "serviceConfigApiNames": [ - "google.ai.generativelanguage.v1.GenerativeService", - "google.ai.generativelanguage.v1.ModelService", - "google.longrunning.Operations" - ], - "nameInServiceConfig": "generativelanguage.googleapis.com" - }, - { - "id": "google.ai.generativelanguage.v1beta", - "directory": "google/ai/generativelanguage/v1beta", - "version": "v1beta", - "majorVersion": "v1", - "hostName": "generativelanguage.googleapis.com", - "title": "Generative Language API", - "description": "The Gemini API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model in the world, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more.", - "importDirectories": [ - "google/ai/generativelanguage/v1beta", - "google/api", - "google/longrunning", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb": 13 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 13 - } - }, - "java_package": { - "valueCounts": { - "com.google.ai.generativelanguage.v1beta": 13 - } - } - }, - "services": [ - { - "shortName": "DiscussService", - "fullName": "google.ai.generativelanguage.v1beta.DiscussService", - "methods": [ + }, { - "shortName": "CountMessageTokens", - "fullName": "google.ai.generativelanguage.v1beta.DiscussService.CountMessageTokens", + "shortName": "RemoveProductLinkInvitation", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.RemoveProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:countMessageTokens" + "path": "/v17/customers/{customer_id=*}/productLinkInvitations:remove" } ] }, { - "shortName": "GenerateMessage", - "fullName": "google.ai.generativelanguage.v1beta.DiscussService.GenerateMessage", + "shortName": "UpdateProductLinkInvitation", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.UpdateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:generateMessage" + "path": "/v17/customers/{customer_id=*}/productLinkInvitations:update" } ] } ] }, { - "shortName": "GenerativeService", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService", + "shortName": "ProductLinkService", + "fullName": "google.ads.googleads.v17.services.ProductLinkService", "methods": [ { - "shortName": "BatchEmbedContents", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.BatchEmbedContents", + "shortName": "CreateProductLink", + "fullName": "google.ads.googleads.v17.services.ProductLinkService.CreateProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:batchEmbedContents" + "path": "/v17/customers/{customer_id=*}/productLinks:create" } ] }, { - "shortName": "CountTokens", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.CountTokens", + "shortName": "RemoveProductLink", + "fullName": "google.ads.googleads.v17.services.ProductLinkService.RemoveProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:countTokens" + "path": "/v17/customers/{customer_id=*}/productLinks:remove" } ] - }, + } + ] + }, + { + "shortName": "ReachPlanService", + "fullName": "google.ads.googleads.v17.services.ReachPlanService", + "methods": [ { - "shortName": "EmbedContent", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.EmbedContent", + "shortName": "GenerateReachForecast", + "fullName": "google.ads.googleads.v17.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:embedContent" + "path": "/v17/customers/{customer_id=*}:generateReachForecast" } ] }, { - "shortName": "GenerateAnswer", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.GenerateAnswer", + "shortName": "ListPlannableLocations", + "fullName": "google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:generateAnswer" + "path": "/v17:listPlannableLocations" } ] }, { - "shortName": "GenerateContent", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.GenerateContent", + "shortName": "ListPlannableProducts", + "fullName": "google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:generateContent" - } - ] - }, - { - "shortName": "StreamGenerateContent", - "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.StreamGenerateContent", - "mode": "SERVER_STREAMING", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:streamGenerateContent" + "path": "/v17:listPlannableProducts" } ] } ] }, { - "shortName": "ModelService", - "fullName": "google.ai.generativelanguage.v1beta.ModelService", + "shortName": "RecommendationService", + "fullName": "google.ads.googleads.v17.services.RecommendationService", "methods": [ { - "shortName": "CreateTunedModel", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.CreateTunedModel", + "shortName": "ApplyRecommendation", + "fullName": "google.ads.googleads.v17.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/tunedModels" + "path": "/v17/customers/{customer_id=*}/recommendations:apply" } ] }, { - "shortName": "DeleteTunedModel", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.DeleteTunedModel", + "shortName": "DismissRecommendation", + "fullName": "google.ads.googleads.v17.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta/{name=tunedModels/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/recommendations:dismiss" } ] }, { - "shortName": "GetModel", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.GetModel", + "shortName": "GenerateRecommendations", + "fullName": "google.ads.googleads.v17.services.RecommendationService.GenerateRecommendations", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=models/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/recommendations:generate" } ] - }, + } + ] + }, + { + "shortName": "RecommendationSubscriptionService", + "fullName": "google.ads.googleads.v17.services.RecommendationSubscriptionService", + "methods": [ { - "shortName": "GetTunedModel", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.GetTunedModel", + "shortName": "MutateRecommendationSubscription", + "fullName": "google.ads.googleads.v17.services.RecommendationSubscriptionService.MutateRecommendationSubscription", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=tunedModels/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" } ] - }, + } + ] + }, + { + "shortName": "RemarketingActionService", + "fullName": "google.ads.googleads.v17.services.RemarketingActionService", + "methods": [ { - "shortName": "ListModels", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.ListModels", + "shortName": "MutateRemarketingActions", + "fullName": "google.ads.googleads.v17.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/models" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/remarketingActions:mutate" } ] - }, + } + ] + }, + { + "shortName": "SharedCriterionService", + "fullName": "google.ads.googleads.v17.services.SharedCriterionService", + "methods": [ { - "shortName": "ListTunedModels", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.ListTunedModels", + "shortName": "MutateSharedCriteria", + "fullName": "google.ads.googleads.v17.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/tunedModels" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/sharedCriteria:mutate" } ] - }, + } + ] + }, + { + "shortName": "SharedSetService", + "fullName": "google.ads.googleads.v17.services.SharedSetService", + "methods": [ { - "shortName": "UpdateTunedModel", - "fullName": "google.ai.generativelanguage.v1beta.ModelService.UpdateTunedModel", + "shortName": "MutateSharedSets", + "fullName": "google.ads.googleads.v17.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta/{tuned_model.name=tunedModels/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/sharedSets:mutate" } ] } ] }, { - "shortName": "PermissionService", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService", + "shortName": "SmartCampaignSettingService", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService", "methods": [ { - "shortName": "CreatePermission", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService.CreatePermission", + "shortName": "GetSmartCampaignStatus", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService.GetSmartCampaignStatus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{parent=tunedModels/*}/permissions" - }, - { - "httpMethod": "POST", - "path": "/v1beta/{parent=corpora/*}/permissions" + "httpMethod": "GET", + "path": "/v17/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" } ] }, { - "shortName": "DeletePermission", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService.DeletePermission", + "shortName": "MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta/{name=tunedModels/*/permissions/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1beta/{name=corpora/*/permissions/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] - }, + } + ] + }, + { + "shortName": "SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService", + "methods": [ { - "shortName": "GetPermission", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService.GetPermission", + "shortName": "SuggestKeywordThemes", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=tunedModels/*/permissions/*}" - }, - { - "httpMethod": "GET", - "path": "/v1beta/{name=corpora/*/permissions/*}" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { - "shortName": "ListPermissions", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService.ListPermissions", + "shortName": "SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{parent=tunedModels/*}/permissions" - }, - { - "httpMethod": "GET", - "path": "/v1beta/{parent=corpora/*}/permissions" + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { - "shortName": "TransferOwnership", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService.TransferOwnership", + "shortName": "SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{name=tunedModels/*}:transferOwnership" + "path": "/v17/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] - }, + } + ] + }, + { + "shortName": "ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService", + "methods": [ { - "shortName": "UpdatePermission", - "fullName": "google.ai.generativelanguage.v1beta.PermissionService.UpdatePermission", + "shortName": "RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta/{permission.name=tunedModels/*/permissions/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1beta/{permission.name=corpora/*/permissions/*}" + "httpMethod": "POST", + "path": "/v17/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } ] }, { - "shortName": "RetrieverService", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService", + "shortName": "TravelAssetSuggestionService", + "fullName": "google.ads.googleads.v17.services.TravelAssetSuggestionService", "methods": [ { - "shortName": "BatchCreateChunks", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.BatchCreateChunks", + "shortName": "SuggestTravelAssets", + "fullName": "google.ads.googleads.v17.services.TravelAssetSuggestionService.SuggestTravelAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{parent=corpora/*/documents/*}/chunks:batchCreate" + "path": "/v17/customers/{customer_id=*}:suggestTravelAssets" } ] - }, + } + ] + }, + { + "shortName": "UserDataService", + "fullName": "google.ads.googleads.v17.services.UserDataService", + "methods": [ { - "shortName": "BatchDeleteChunks", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.BatchDeleteChunks", + "shortName": "UploadUserData", + "fullName": "google.ads.googleads.v17.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{parent=corpora/*/documents/*}/chunks:batchDelete" + "path": "/v17/customers/{customer_id=*}:uploadUserData" } ] - }, + } + ] + }, + { + "shortName": "UserListCustomerTypeService", + "fullName": "google.ads.googleads.v17.services.UserListCustomerTypeService", + "methods": [ { - "shortName": "BatchUpdateChunks", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.BatchUpdateChunks", + "shortName": "MutateUserListCustomerTypes", + "fullName": "google.ads.googleads.v17.services.UserListCustomerTypeService.MutateUserListCustomerTypes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{parent=corpora/*/documents/*}/chunks:batchUpdate" + "path": "/v17/customers/{customer_id=*}/userListCustomerTypes:mutate" } ] - }, + } + ] + }, + { + "shortName": "UserListService", + "fullName": "google.ads.googleads.v17.services.UserListService", + "methods": [ { - "shortName": "CreateChunk", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.CreateChunk", + "shortName": "MutateUserLists", + "fullName": "google.ads.googleads.v17.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{parent=corpora/*/documents/*}/chunks" + "path": "/v17/customers/{customer_id=*}/userLists:mutate" } ] - }, + } + ] + } + ], + "configFile": "googleads_v17.yaml", + "serviceConfigApiNames": [ + "google.ads.googleads.v17.services.AccountBudgetProposalService", + "google.ads.googleads.v17.services.AccountLinkService", + "google.ads.googleads.v17.services.AdGroupAdLabelService", + "google.ads.googleads.v17.services.AdGroupAdService", + "google.ads.googleads.v17.services.AdGroupAssetService", + "google.ads.googleads.v17.services.AdGroupAssetSetService", + "google.ads.googleads.v17.services.AdGroupBidModifierService", + "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v17.services.AdGroupCriterionLabelService", + "google.ads.googleads.v17.services.AdGroupCriterionService", + "google.ads.googleads.v17.services.AdGroupCustomizerService", + "google.ads.googleads.v17.services.AdGroupExtensionSettingService", + "google.ads.googleads.v17.services.AdGroupFeedService", + "google.ads.googleads.v17.services.AdGroupLabelService", + "google.ads.googleads.v17.services.AdGroupService", + "google.ads.googleads.v17.services.AdParameterService", + "google.ads.googleads.v17.services.AdService", + "google.ads.googleads.v17.services.AssetGroupAssetService", + "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v17.services.AssetGroupService", + "google.ads.googleads.v17.services.AssetGroupSignalService", + "google.ads.googleads.v17.services.AssetService", + "google.ads.googleads.v17.services.AssetSetAssetService", + "google.ads.googleads.v17.services.AssetSetService", + "google.ads.googleads.v17.services.AudienceInsightsService", + "google.ads.googleads.v17.services.AudienceService", + "google.ads.googleads.v17.services.BatchJobService", + "google.ads.googleads.v17.services.BiddingDataExclusionService", + "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v17.services.BiddingStrategyService", + "google.ads.googleads.v17.services.BillingSetupService", + "google.ads.googleads.v17.services.BrandSuggestionService", + "google.ads.googleads.v17.services.CampaignAssetService", + "google.ads.googleads.v17.services.CampaignAssetSetService", + "google.ads.googleads.v17.services.CampaignBidModifierService", + "google.ads.googleads.v17.services.CampaignBudgetService", + "google.ads.googleads.v17.services.CampaignConversionGoalService", + "google.ads.googleads.v17.services.CampaignCriterionService", + "google.ads.googleads.v17.services.CampaignCustomizerService", + "google.ads.googleads.v17.services.CampaignDraftService", + "google.ads.googleads.v17.services.CampaignExtensionSettingService", + "google.ads.googleads.v17.services.CampaignFeedService", + "google.ads.googleads.v17.services.CampaignGroupService", + "google.ads.googleads.v17.services.CampaignLabelService", + "google.ads.googleads.v17.services.CampaignLifecycleGoalService", + "google.ads.googleads.v17.services.CampaignService", + "google.ads.googleads.v17.services.CampaignSharedSetService", + "google.ads.googleads.v17.services.ConversionActionService", + "google.ads.googleads.v17.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v17.services.ConversionCustomVariableService", + "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v17.services.ConversionUploadService", + "google.ads.googleads.v17.services.ConversionValueRuleService", + "google.ads.googleads.v17.services.ConversionValueRuleSetService", + "google.ads.googleads.v17.services.CustomAudienceService", + "google.ads.googleads.v17.services.CustomConversionGoalService", + "google.ads.googleads.v17.services.CustomInterestService", + "google.ads.googleads.v17.services.CustomerAssetService", + "google.ads.googleads.v17.services.CustomerAssetSetService", + "google.ads.googleads.v17.services.CustomerClientLinkService", + "google.ads.googleads.v17.services.CustomerConversionGoalService", + "google.ads.googleads.v17.services.CustomerCustomizerService", + "google.ads.googleads.v17.services.CustomerExtensionSettingService", + "google.ads.googleads.v17.services.CustomerFeedService", + "google.ads.googleads.v17.services.CustomerLabelService", + "google.ads.googleads.v17.services.CustomerLifecycleGoalService", + "google.ads.googleads.v17.services.CustomerManagerLinkService", + "google.ads.googleads.v17.services.CustomerNegativeCriterionService", + "google.ads.googleads.v17.services.CustomerService", + "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService", + "google.ads.googleads.v17.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v17.services.CustomerUserAccessService", + "google.ads.googleads.v17.services.CustomizerAttributeService", + "google.ads.googleads.v17.services.ExperimentArmService", + "google.ads.googleads.v17.services.ExperimentService", + "google.ads.googleads.v17.services.ExtensionFeedItemService", + "google.ads.googleads.v17.services.FeedItemService", + "google.ads.googleads.v17.services.FeedItemSetLinkService", + "google.ads.googleads.v17.services.FeedItemSetService", + "google.ads.googleads.v17.services.FeedItemTargetService", + "google.ads.googleads.v17.services.FeedMappingService", + "google.ads.googleads.v17.services.FeedService", + "google.ads.googleads.v17.services.GeoTargetConstantService", + "google.ads.googleads.v17.services.GoogleAdsFieldService", + "google.ads.googleads.v17.services.GoogleAdsService", + "google.ads.googleads.v17.services.IdentityVerificationService", + "google.ads.googleads.v17.services.InvoiceService", + "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v17.services.KeywordPlanAdGroupService", + "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v17.services.KeywordPlanCampaignService", + "google.ads.googleads.v17.services.KeywordPlanIdeaService", + "google.ads.googleads.v17.services.KeywordPlanService", + "google.ads.googleads.v17.services.KeywordThemeConstantService", + "google.ads.googleads.v17.services.LabelService", + "google.ads.googleads.v17.services.LocalServicesLeadService", + "google.ads.googleads.v17.services.OfflineUserDataJobService", + "google.ads.googleads.v17.services.PaymentsAccountService", + "google.ads.googleads.v17.services.ProductLinkInvitationService", + "google.ads.googleads.v17.services.ProductLinkService", + "google.ads.googleads.v17.services.ReachPlanService", + "google.ads.googleads.v17.services.RecommendationService", + "google.ads.googleads.v17.services.RecommendationSubscriptionService", + "google.ads.googleads.v17.services.RemarketingActionService", + "google.ads.googleads.v17.services.SharedCriterionService", + "google.ads.googleads.v17.services.SharedSetService", + "google.ads.googleads.v17.services.SmartCampaignSettingService", + "google.ads.googleads.v17.services.SmartCampaignSuggestService", + "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v17.services.TravelAssetSuggestionService", + "google.ads.googleads.v17.services.UserDataService", + "google.ads.googleads.v17.services.UserListCustomerTypeService", + "google.ads.googleads.v17.services.UserListService" + ], + "nameInServiceConfig": "googleads.googleapis.com" + }, + { + "id": "google.ads.searchads360.v0", + "directory": "google/ads/searchads360/v0", + "version": "v0", + "majorVersion": "v0", + "hostName": "searchads360.googleapis.com", + "title": "Search Ads 360 Reporting API", + "description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.", + "importDirectories": [ + "google/ads/searchads360/v0/common", + "google/ads/searchads360/v0/enums", + "google/ads/searchads360/v0/errors", + "google/ads/searchads360/v0/resources", + "google/api", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Ads.SearchAds360.V0.Common": 13, + "Google.Ads.SearchAds360.V0.Enums": 90, + "Google.Ads.SearchAds360.V0.Errors": 14, + "Google.Ads.SearchAds360.V0.Resources": 54, + "Google.Ads.SearchAds360.V0.Services": 4 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common": 13, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/enums;enums": 90, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors": 14, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources": 54, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/services;services": 4 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 175 + } + }, + "java_package": { + "valueCounts": { + "com.google.ads.searchads360.v0.common": 13, + "com.google.ads.searchads360.v0.enums": 90, + "com.google.ads.searchads360.v0.errors": 14, + "com.google.ads.searchads360.v0.resources": 54, + "com.google.ads.searchads360.v0.services": 4 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GASA360": 175 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Ads\\SearchAds360\\V0\\Common": 13, + "Google\\Ads\\SearchAds360\\V0\\Enums": 90, + "Google\\Ads\\SearchAds360\\V0\\Errors": 14, + "Google\\Ads\\SearchAds360\\V0\\Resources": 54, + "Google\\Ads\\SearchAds360\\V0\\Services": 4 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Ads::SearchAds360::V0::Common": 13, + "Google::Ads::SearchAds360::V0::Enums": 90, + "Google::Ads::SearchAds360::V0::Errors": 14, + "Google::Ads::SearchAds360::V0::Resources": 54, + "Google::Ads::SearchAds360::V0::Services": 4 + } + } + }, + "services": [ + { + "shortName": "CustomColumnService", + "fullName": "google.ads.searchads360.v0.services.CustomColumnService", + "methods": [ { - "shortName": "CreateCorpus", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.CreateCorpus", + "shortName": "GetCustomColumn", + "fullName": "google.ads.searchads360.v0.services.CustomColumnService.GetCustomColumn", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/corpora" + "httpMethod": "GET", + "path": "/v0/{resource_name=customers/*/customColumns/*}" } ] }, { - "shortName": "CreateDocument", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.CreateDocument", + "shortName": "ListCustomColumns", + "fullName": "google.ads.searchads360.v0.services.CustomColumnService.ListCustomColumns", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{parent=corpora/*}/documents" + "httpMethod": "GET", + "path": "/v0/customers/{customer_id=*}/customColumns" } ] - }, + } + ] + }, + { + "shortName": "CustomerService", + "fullName": "google.ads.searchads360.v0.services.CustomerService", + "methods": [ { - "shortName": "DeleteChunk", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.DeleteChunk", + "shortName": "ListAccessibleCustomers", + "fullName": "google.ads.searchads360.v0.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta/{name=corpora/*/documents/*/chunks/*}" + "httpMethod": "GET", + "path": "/v0/customers:listAccessibleCustomers" } ] - }, + } + ] + }, + { + "shortName": "SearchAds360FieldService", + "fullName": "google.ads.searchads360.v0.services.SearchAds360FieldService", + "methods": [ { - "shortName": "DeleteCorpus", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.DeleteCorpus", + "shortName": "GetSearchAds360Field", + "fullName": "google.ads.searchads360.v0.services.SearchAds360FieldService.GetSearchAds360Field", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta/{name=corpora/*}" + "httpMethod": "GET", + "path": "/v0/{resource_name=searchAds360Fields/*}" } ] }, { - "shortName": "DeleteDocument", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.DeleteDocument", + "shortName": "SearchSearchAds360Fields", + "fullName": "google.ads.searchads360.v0.services.SearchAds360FieldService.SearchSearchAds360Fields", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1beta/{name=corpora/*/documents/*}" + "httpMethod": "POST", + "path": "/v0/searchAds360Fields:search" } ] - }, + } + ] + }, + { + "shortName": "SearchAds360Service", + "fullName": "google.ads.searchads360.v0.services.SearchAds360Service", + "methods": [ { - "shortName": "GetChunk", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.GetChunk", + "shortName": "Search", + "fullName": "google.ads.searchads360.v0.services.SearchAds360Service.Search", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=corpora/*/documents/*/chunks/*}" + "httpMethod": "POST", + "path": "/v0/customers/{customer_id=*}/searchAds360:search" } ] }, { - "shortName": "GetCorpus", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.GetCorpus", - "mode": "UNARY", + "shortName": "SearchStream", + "fullName": "google.ads.searchads360.v0.services.SearchAds360Service.SearchStream", + "mode": "SERVER_STREAMING", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=corpora/*}" + "httpMethod": "POST", + "path": "/v0/customers/{customer_id=*}/searchAds360:searchStream" } ] - }, + } + ] + } + ], + "configFile": "searchads360_v0.yaml", + "serviceConfigApiNames": [ + "google.ads.searchads360.v0.services.CustomColumnService", + "google.ads.searchads360.v0.services.CustomerService", + "google.ads.searchads360.v0.services.SearchAds360FieldService", + "google.ads.searchads360.v0.services.SearchAds360Service" + ], + "nameInServiceConfig": "searchads360.googleapis.com" + }, + { + "id": "google.ai.generativelanguage.v1", + "directory": "google/ai/generativelanguage/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "generativelanguage.googleapis.com", + "title": "Generative Language API", + "description": "The Gemini API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information including language, images, audio, video, and code. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more.", + "importDirectories": [ + "google/ai/generativelanguage/v1", + "google/api" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/ai/generativelanguage/apiv1/generativelanguagepb;generativelanguagepb": 6 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 6 + } + }, + "java_package": { + "valueCounts": { + "com.google.ai.generativelanguage.v1": 6 + } + } + }, + "services": [ + { + "shortName": "GenerativeService", + "fullName": "google.ai.generativelanguage.v1.GenerativeService", + "methods": [ { - "shortName": "GetDocument", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.GetDocument", + "shortName": "BatchEmbedContents", + "fullName": "google.ai.generativelanguage.v1.GenerativeService.BatchEmbedContents", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{name=corpora/*/documents/*}" + "httpMethod": "POST", + "path": "/v1/{model=models/*}:batchEmbedContents" } ] }, { - "shortName": "ListChunks", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.ListChunks", + "shortName": "CountTokens", + "fullName": "google.ai.generativelanguage.v1.GenerativeService.CountTokens", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/{parent=corpora/*/documents/*}/chunks" + "httpMethod": "POST", + "path": "/v1/{model=models/*}:countTokens" } ] }, { - "shortName": "ListCorpora", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.ListCorpora", + "shortName": "EmbedContent", + "fullName": "google.ai.generativelanguage.v1.GenerativeService.EmbedContent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1beta/corpora" + "httpMethod": "POST", + "path": "/v1/{model=models/*}:embedContent" } ] }, { - "shortName": "ListDocuments", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.ListDocuments", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1beta/{parent=corpora/*}/documents" - } - ] - }, - { - "shortName": "QueryCorpus", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.QueryCorpus", + "shortName": "GenerateContent", + "fullName": "google.ai.generativelanguage.v1.GenerativeService.GenerateContent", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{name=corpora/*}:query" - } - ] - }, - { - "shortName": "QueryDocument", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.QueryDocument", - "mode": "UNARY", - "bindings": [ + "path": "/v1/{model=models/*}:generateContent" + }, { "httpMethod": "POST", - "path": "/v1beta/{name=corpora/*/documents/*}:query" + "path": "/v1/{model=tunedModels/*}:generateContent" } ] }, { - "shortName": "UpdateChunk", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.UpdateChunk", - "mode": "UNARY", + "shortName": "StreamGenerateContent", + "fullName": "google.ai.generativelanguage.v1.GenerativeService.StreamGenerateContent", + "mode": "SERVER_STREAMING", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta/{chunk.name=corpora/*/documents/*/chunks/*}" + "httpMethod": "POST", + "path": "/v1/{model=models/*}:streamGenerateContent" } ] - }, + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.ai.generativelanguage.v1.ModelService", + "methods": [ { - "shortName": "UpdateCorpus", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.UpdateCorpus", + "shortName": "GetModel", + "fullName": "google.ai.generativelanguage.v1.ModelService.GetModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta/{corpus.name=corpora/*}" + "httpMethod": "GET", + "path": "/v1/{name=models/*}" } ] }, { - "shortName": "UpdateDocument", - "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.UpdateDocument", + "shortName": "ListModels", + "fullName": "google.ai.generativelanguage.v1.ModelService.ListModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1beta/{document.name=corpora/*/documents/*}" + "httpMethod": "GET", + "path": "/v1/models" } ] } ] + } + ], + "configFile": "generativelanguage_v1.yaml", + "serviceConfigApiNames": [ + "google.ai.generativelanguage.v1.GenerativeService", + "google.ai.generativelanguage.v1.ModelService", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "generativelanguage.googleapis.com" + }, + { + "id": "google.ai.generativelanguage.v1beta", + "directory": "google/ai/generativelanguage/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "generativelanguage.googleapis.com", + "title": "Generative Language API", + "description": "The Gemini API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information including language, images, audio, video, and code. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more.", + "importDirectories": [ + "google/ai/generativelanguage/v1beta", + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb": 17 + } }, + "java_multiple_files": { + "valueCounts": { + "true": 17 + } + }, + "java_package": { + "valueCounts": { + "com.google.ai.generativelanguage.v1beta": 17 + } + } + }, + "services": [ { - "shortName": "TextService", - "fullName": "google.ai.generativelanguage.v1beta.TextService", + "shortName": "CacheService", + "fullName": "google.ai.generativelanguage.v1beta.CacheService", "methods": [ { - "shortName": "BatchEmbedText", - "fullName": "google.ai.generativelanguage.v1beta.TextService.BatchEmbedText", + "shortName": "CreateCachedContent", + "fullName": "google.ai.generativelanguage.v1beta.CacheService.CreateCachedContent", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:batchEmbedText" + "path": "/v1beta/cachedContents" } ] }, { - "shortName": "CountTextTokens", - "fullName": "google.ai.generativelanguage.v1beta.TextService.CountTextTokens", + "shortName": "DeleteCachedContent", + "fullName": "google.ai.generativelanguage.v1beta.CacheService.DeleteCachedContent", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:countTextTokens" + "httpMethod": "DELETE", + "path": "/v1beta/{name=cachedContents/*}" } ] }, { - "shortName": "EmbedText", - "fullName": "google.ai.generativelanguage.v1beta.TextService.EmbedText", + "shortName": "GetCachedContent", + "fullName": "google.ai.generativelanguage.v1beta.CacheService.GetCachedContent", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:embedText" + "httpMethod": "GET", + "path": "/v1beta/{name=cachedContents/*}" } ] }, { - "shortName": "GenerateText", - "fullName": "google.ai.generativelanguage.v1beta.TextService.GenerateText", + "shortName": "ListCachedContents", + "fullName": "google.ai.generativelanguage.v1beta.CacheService.ListCachedContents", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{model=models/*}:generateText" - }, + "httpMethod": "GET", + "path": "/v1beta/cachedContents" + } + ] + }, + { + "shortName": "UpdateCachedContent", + "fullName": "google.ai.generativelanguage.v1beta.CacheService.UpdateCachedContent", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "POST", - "path": "/v1beta/{model=tunedModels/*}:generateText" + "httpMethod": "PATCH", + "path": "/v1beta/{cached_content.name=cachedContents/*}" } ] } ] - } - ], - "configFile": "generativelanguage_v1beta.yaml", - "serviceConfigApiNames": [ - "google.ai.generativelanguage.v1beta.DiscussService", - "google.ai.generativelanguage.v1beta.GenerativeService", - "google.ai.generativelanguage.v1beta.ModelService", - "google.ai.generativelanguage.v1beta.PermissionService", - "google.ai.generativelanguage.v1beta.RetrieverService", - "google.ai.generativelanguage.v1beta.TextService", - "google.longrunning.Operations" - ], - "nameInServiceConfig": "generativelanguage.googleapis.com" - }, - { - "id": "google.ai.generativelanguage.v1beta2", - "directory": "google/ai/generativelanguage/v1beta2", - "version": "v1beta2", - "majorVersion": "v1", - "hostName": "generativelanguage.googleapis.com", - "title": "Generative Language API", - "description": "The PaLM API allows developers to build generative AI applications using the PaLM model. Large Language Models (LLMs) are a powerful, versatile type of machine learning model that enables computers to comprehend and generate natural language through a series of prompts. The PaLM API is based on Google's next generation LLM, PaLM. It excels at a variety of different tasks like code generation, reasoning, and writing. You can use the PaLM API to build generative AI applications for use cases like content generation, dialogue agents, summarization and classification systems, and more.", - "importDirectories": [ - "google/ai/generativelanguage/v1beta2", - "google/api" - ], - "options": { - "go_package": { - "valueCounts": { - "cloud.google.com/go/ai/generativelanguage/apiv1beta2/generativelanguagepb;generativelanguagepb": 6 - } }, - "java_multiple_files": { - "valueCounts": { - "true": 6 - } - }, - "java_package": { - "valueCounts": { - "com.google.ai.generativelanguage.v1beta2": 6 - } - } - }, - "services": [ { "shortName": "DiscussService", - "fullName": "google.ai.generativelanguage.v1beta2.DiscussService", + "fullName": "google.ai.generativelanguage.v1beta.DiscussService", "methods": [ { "shortName": "CountMessageTokens", - "fullName": "google.ai.generativelanguage.v1beta2.DiscussService.CountMessageTokens", + "fullName": "google.ai.generativelanguage.v1beta.DiscussService.CountMessageTokens", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{model=models/*}:countMessageTokens" + "path": "/v1beta/{model=models/*}:countMessageTokens" } ] }, { "shortName": "GenerateMessage", - "fullName": "google.ai.generativelanguage.v1beta2.DiscussService.GenerateMessage", + "fullName": "google.ai.generativelanguage.v1beta.DiscussService.GenerateMessage", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{model=models/*}:generateMessage" + "path": "/v1beta/{model=models/*}:generateMessage" } ] } ] }, { - "shortName": "ModelService", - "fullName": "google.ai.generativelanguage.v1beta2.ModelService", + "shortName": "FileService", + "fullName": "google.ai.generativelanguage.v1beta.FileService", "methods": [ { - "shortName": "GetModel", - "fullName": "google.ai.generativelanguage.v1beta2.ModelService.GetModel", + "shortName": "CreateFile", + "fullName": "google.ai.generativelanguage.v1beta.FileService.CreateFile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/files" + } + ] + }, + { + "shortName": "DeleteFile", + "fullName": "google.ai.generativelanguage.v1beta.FileService.DeleteFile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=files/*}" + } + ] + }, + { + "shortName": "GetFile", + "fullName": "google.ai.generativelanguage.v1beta.FileService.GetFile", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta2/{name=models/*}" + "path": "/v1beta/{name=files/*}" } ] }, { - "shortName": "ListModels", - "fullName": "google.ai.generativelanguage.v1beta2.ModelService.ListModels", + "shortName": "ListFiles", + "fullName": "google.ai.generativelanguage.v1beta.FileService.ListFiles", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta2/models" + "path": "/v1beta/files" } ] } ] }, { - "shortName": "TextService", - "fullName": "google.ai.generativelanguage.v1beta2.TextService", + "shortName": "GenerativeService", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService", "methods": [ { - "shortName": "EmbedText", - "fullName": "google.ai.generativelanguage.v1beta2.TextService.EmbedText", + "shortName": "BatchEmbedContents", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.BatchEmbedContents", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{model=models/*}:embedText" + "path": "/v1beta/{model=models/*}:batchEmbedContents" } ] }, { - "shortName": "GenerateText", - "fullName": "google.ai.generativelanguage.v1beta2.TextService.GenerateText", + "shortName": "CountTokens", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.CountTokens", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta2/{model=models/*}:generateText" + "path": "/v1beta/{model=models/*}:countTokens" } ] - } - ] - } - ], - "configFile": "generativelanguage_v1beta2.yaml", - "serviceConfigApiNames": [ - "google.ai.generativelanguage.v1beta2.DiscussService", - "google.ai.generativelanguage.v1beta2.ModelService", - "google.ai.generativelanguage.v1beta2.TextService" - ], - "nameInServiceConfig": "generativelanguage.googleapis.com" - }, - { - "id": "google.ai.generativelanguage.v1beta3", - "directory": "google/ai/generativelanguage/v1beta3", - "version": "v1beta3", - "majorVersion": "v1", - "hostName": "generativelanguage.googleapis.com", - "title": "Generative Language API", - "description": "The PaLM API allows developers to build generative AI applications using the PaLM model. Large Language Models (LLMs) are a powerful, versatile type of machine learning model that enables computers to comprehend and generate natural language through a series of prompts. The PaLM API is based on Google's next generation LLM, PaLM. It excels at a variety of different tasks like code generation, reasoning, and writing. You can use the PaLM API to build generative AI applications for use cases like content generation, dialogue agents, summarization and classification systems, and more.", - "importDirectories": [ - "google/ai/generativelanguage/v1beta3", - "google/api", - "google/longrunning", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "cloud.google.com/go/ai/generativelanguage/apiv1beta3/generativelanguagepb;generativelanguagepb": 9 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 9 - } - }, - "java_package": { - "valueCounts": { - "com.google.ai.generativelanguage.v1beta3": 9 - } - } - }, - "services": [ - { - "shortName": "DiscussService", - "fullName": "google.ai.generativelanguage.v1beta3.DiscussService", - "methods": [ + }, { - "shortName": "CountMessageTokens", - "fullName": "google.ai.generativelanguage.v1beta3.DiscussService.CountMessageTokens", + "shortName": "EmbedContent", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.EmbedContent", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{model=models/*}:countMessageTokens" + "path": "/v1beta/{model=models/*}:embedContent" } ] }, { - "shortName": "GenerateMessage", - "fullName": "google.ai.generativelanguage.v1beta3.DiscussService.GenerateMessage", + "shortName": "GenerateAnswer", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.GenerateAnswer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{model=models/*}:generateMessage" + "path": "/v1beta/{model=models/*}:generateAnswer" + } + ] + }, + { + "shortName": "GenerateContent", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.GenerateContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{model=models/*}:generateContent" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{model=tunedModels/*}:generateContent" + } + ] + }, + { + "shortName": "StreamGenerateContent", + "fullName": "google.ai.generativelanguage.v1beta.GenerativeService.StreamGenerateContent", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{model=models/*}:streamGenerateContent" } ] } @@ -8666,82 +8798,82 @@ }, { "shortName": "ModelService", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService", + "fullName": "google.ai.generativelanguage.v1beta.ModelService", "methods": [ { "shortName": "CreateTunedModel", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.CreateTunedModel", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.CreateTunedModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/tunedModels" + "path": "/v1beta/tunedModels" } ] }, { "shortName": "DeleteTunedModel", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.DeleteTunedModel", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.DeleteTunedModel", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta3/{name=tunedModels/*}" + "path": "/v1beta/{name=tunedModels/*}" } ] }, { "shortName": "GetModel", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.GetModel", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.GetModel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/{name=models/*}" + "path": "/v1beta/{name=models/*}" } ] }, { "shortName": "GetTunedModel", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.GetTunedModel", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.GetTunedModel", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/{name=tunedModels/*}" + "path": "/v1beta/{name=tunedModels/*}" } ] }, { "shortName": "ListModels", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.ListModels", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.ListModels", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/models" + "path": "/v1beta/models" } ] }, { "shortName": "ListTunedModels", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.ListTunedModels", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.ListTunedModels", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/tunedModels" + "path": "/v1beta/tunedModels" } ] }, { "shortName": "UpdateTunedModel", - "fullName": "google.ai.generativelanguage.v1beta3.ModelService.UpdateTunedModel", + "fullName": "google.ai.generativelanguage.v1beta.ModelService.UpdateTunedModel", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta3/{tuned_model.name=tunedModels/*}" + "path": "/v1beta/{tuned_model.name=tunedModels/*}" } ] } @@ -8749,1393 +8881,2046 @@ }, { "shortName": "PermissionService", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService", "methods": [ { "shortName": "CreatePermission", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.CreatePermission", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService.CreatePermission", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{parent=tunedModels/*}/permissions" + "path": "/v1beta/{parent=tunedModels/*}/permissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=corpora/*}/permissions" } ] }, { "shortName": "DeletePermission", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.DeletePermission", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService.DeletePermission", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta3/{name=tunedModels/*/permissions/*}" + "path": "/v1beta/{name=tunedModels/*/permissions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=corpora/*/permissions/*}" } ] }, { "shortName": "GetPermission", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.GetPermission", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService.GetPermission", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/{name=tunedModels/*/permissions/*}" + "path": "/v1beta/{name=tunedModels/*/permissions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=corpora/*/permissions/*}" } ] }, { "shortName": "ListPermissions", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.ListPermissions", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService.ListPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta3/{parent=tunedModels/*}/permissions" + "path": "/v1beta/{parent=tunedModels/*}/permissions" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=corpora/*}/permissions" } ] }, { "shortName": "TransferOwnership", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.TransferOwnership", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService.TransferOwnership", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{name=tunedModels/*}:transferOwnership" + "path": "/v1beta/{name=tunedModels/*}:transferOwnership" } ] }, { "shortName": "UpdatePermission", - "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.UpdatePermission", + "fullName": "google.ai.generativelanguage.v1beta.PermissionService.UpdatePermission", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta3/{permission.name=tunedModels/*/permissions/*}" + "path": "/v1beta/{permission.name=tunedModels/*/permissions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta/{permission.name=corpora/*/permissions/*}" } ] } ] }, { - "shortName": "TextService", - "fullName": "google.ai.generativelanguage.v1beta3.TextService", + "shortName": "RetrieverService", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService", "methods": [ { - "shortName": "BatchEmbedText", - "fullName": "google.ai.generativelanguage.v1beta3.TextService.BatchEmbedText", + "shortName": "BatchCreateChunks", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.BatchCreateChunks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{model=models/*}:batchEmbedText" + "path": "/v1beta/{parent=corpora/*/documents/*}/chunks:batchCreate" } ] }, { - "shortName": "CountTextTokens", - "fullName": "google.ai.generativelanguage.v1beta3.TextService.CountTextTokens", + "shortName": "BatchDeleteChunks", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.BatchDeleteChunks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{model=models/*}:countTextTokens" + "path": "/v1beta/{parent=corpora/*/documents/*}/chunks:batchDelete" } ] }, { - "shortName": "EmbedText", - "fullName": "google.ai.generativelanguage.v1beta3.TextService.EmbedText", + "shortName": "BatchUpdateChunks", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.BatchUpdateChunks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{model=models/*}:embedText" + "path": "/v1beta/{parent=corpora/*/documents/*}/chunks:batchUpdate" } ] }, { - "shortName": "GenerateText", - "fullName": "google.ai.generativelanguage.v1beta3.TextService.GenerateText", + "shortName": "CreateChunk", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.CreateChunk", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta3/{model=models/*}:generateText" - }, - { - "httpMethod": "POST", - "path": "/v1beta3/{model=tunedModels/*}:generateText" + "path": "/v1beta/{parent=corpora/*/documents/*}/chunks" } ] - } - ] - } - ], - "configFile": "generativelanguage_v1beta3.yaml", - "serviceConfigApiNames": [ - "google.ai.generativelanguage.v1beta3.DiscussService", - "google.ai.generativelanguage.v1beta3.ModelService", - "google.ai.generativelanguage.v1beta3.PermissionService", - "google.ai.generativelanguage.v1beta3.TextService", - "google.longrunning.Operations" - ], - "nameInServiceConfig": "generativelanguage.googleapis.com" - }, - { - "id": "google.analytics.admin.v1alpha", - "directory": "google/analytics/admin/v1alpha", - "version": "v1alpha", - "majorVersion": "v1", - "hostName": "analyticsadmin.googleapis.com", - "title": "Google Analytics Admin API", - "description": "Manage properties in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning.", - "importDirectories": [ - "google/analytics/admin/v1alpha", - "google/api", - "google/protobuf" - ], - "options": { - "go_package": { - "valueCounts": { - "cloud.google.com/go/analytics/admin/apiv1alpha/adminpb;adminpb": 8 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 8 - } - }, - "java_package": { - "valueCounts": { - "com.google.analytics.admin.v1alpha": 8 - } - } - }, - "services": [ - { - "shortName": "AnalyticsAdminService", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService", - "methods": [ + }, { - "shortName": "AcknowledgeUserDataCollection", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.AcknowledgeUserDataCollection", + "shortName": "CreateCorpus", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.CreateCorpus", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{property=properties/*}:acknowledgeUserDataCollection" + "path": "/v1beta/corpora" } ] }, { - "shortName": "ApproveDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ApproveDisplayVideo360AdvertiserLinkProposal", + "shortName": "CreateDocument", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.CreateDocument", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:approve" + "path": "/v1beta/{parent=corpora/*}/documents" } ] }, { - "shortName": "ArchiveAudience", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveAudience", + "shortName": "DeleteChunk", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.DeleteChunk", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/audiences/*}:archive" + "httpMethod": "DELETE", + "path": "/v1beta/{name=corpora/*/documents/*/chunks/*}" } ] }, { - "shortName": "ArchiveCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomDimension", + "shortName": "DeleteCorpus", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.DeleteCorpus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/customDimensions/*}:archive" + "httpMethod": "DELETE", + "path": "/v1beta/{name=corpora/*}" } ] }, { - "shortName": "ArchiveCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomMetric", + "shortName": "DeleteDocument", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.DeleteDocument", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/customMetrics/*}:archive" + "httpMethod": "DELETE", + "path": "/v1beta/{name=corpora/*/documents/*}" } ] }, { - "shortName": "BatchCreateAccessBindings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchCreateAccessBindings", + "shortName": "GetChunk", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.GetChunk", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchCreate" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/accessBindings:batchCreate" + "httpMethod": "GET", + "path": "/v1beta/{name=corpora/*/documents/*/chunks/*}" } ] }, { - "shortName": "BatchDeleteAccessBindings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchDeleteAccessBindings", + "shortName": "GetCorpus", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.GetCorpus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchDelete" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/accessBindings:batchDelete" + "httpMethod": "GET", + "path": "/v1beta/{name=corpora/*}" } ] }, { - "shortName": "BatchGetAccessBindings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchGetAccessBindings", + "shortName": "GetDocument", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.GetDocument", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchGet" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/accessBindings:batchGet" + "path": "/v1beta/{name=corpora/*/documents/*}" } ] }, { - "shortName": "BatchUpdateAccessBindings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchUpdateAccessBindings", + "shortName": "ListChunks", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.ListChunks", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchUpdate" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/accessBindings:batchUpdate" + "httpMethod": "GET", + "path": "/v1beta/{parent=corpora/*/documents/*}/chunks" } ] }, { - "shortName": "CancelDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CancelDisplayVideo360AdvertiserLinkProposal", + "shortName": "ListCorpora", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.ListCorpora", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:cancel" + "httpMethod": "GET", + "path": "/v1beta/corpora" } ] }, { - "shortName": "CreateAccessBinding", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAccessBinding", + "shortName": "ListDocuments", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.ListDocuments", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=accounts/*}/accessBindings" - }, - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/accessBindings" + "httpMethod": "GET", + "path": "/v1beta/{parent=corpora/*}/documents" } ] }, { - "shortName": "CreateAdSenseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAdSenseLink", + "shortName": "QueryCorpus", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.QueryCorpus", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/adSenseLinks" + "path": "/v1beta/{name=corpora/*}:query" } ] }, { - "shortName": "CreateAudience", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAudience", + "shortName": "QueryDocument", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.QueryDocument", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/audiences" + "path": "/v1beta/{name=corpora/*/documents/*}:query" } ] }, { - "shortName": "CreateCalculatedMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCalculatedMetric", + "shortName": "UpdateChunk", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.UpdateChunk", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/calculatedMetrics" + "httpMethod": "PATCH", + "path": "/v1beta/{chunk.name=corpora/*/documents/*/chunks/*}" } ] }, { - "shortName": "CreateChannelGroup", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateChannelGroup", + "shortName": "UpdateCorpus", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.UpdateCorpus", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/channelGroups" + "httpMethod": "PATCH", + "path": "/v1beta/{corpus.name=corpora/*}" } ] }, { - "shortName": "CreateConnectedSiteTag", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateConnectedSiteTag", + "shortName": "UpdateDocument", + "fullName": "google.ai.generativelanguage.v1beta.RetrieverService.UpdateDocument", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/properties:createConnectedSiteTag" + "httpMethod": "PATCH", + "path": "/v1beta/{document.name=corpora/*/documents/*}" } ] - }, + } + ] + }, + { + "shortName": "TextService", + "fullName": "google.ai.generativelanguage.v1beta.TextService", + "methods": [ { - "shortName": "CreateConversionEvent", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateConversionEvent", + "shortName": "BatchEmbedText", + "fullName": "google.ai.generativelanguage.v1beta.TextService.BatchEmbedText", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/conversionEvents" + "path": "/v1beta/{model=models/*}:batchEmbedText" } ] }, { - "shortName": "CreateCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomDimension", + "shortName": "CountTextTokens", + "fullName": "google.ai.generativelanguage.v1beta.TextService.CountTextTokens", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/customDimensions" + "path": "/v1beta/{model=models/*}:countTextTokens" } ] }, { - "shortName": "CreateCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomMetric", + "shortName": "EmbedText", + "fullName": "google.ai.generativelanguage.v1beta.TextService.EmbedText", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/customMetrics" + "path": "/v1beta/{model=models/*}:embedText" } ] }, { - "shortName": "CreateDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDataStream", + "shortName": "GenerateText", + "fullName": "google.ai.generativelanguage.v1beta.TextService.GenerateText", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/dataStreams" + "path": "/v1beta/{model=models/*}:generateText" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{model=tunedModels/*}:generateText" } ] - }, + } + ] + } + ], + "configFile": "generativelanguage_v1beta.yaml", + "serviceConfigApiNames": [ + "google.ai.generativelanguage.v1beta.CacheService", + "google.ai.generativelanguage.v1beta.DiscussService", + "google.ai.generativelanguage.v1beta.FileService", + "google.ai.generativelanguage.v1beta.GenerativeService", + "google.ai.generativelanguage.v1beta.ModelService", + "google.ai.generativelanguage.v1beta.PermissionService", + "google.ai.generativelanguage.v1beta.RetrieverService", + "google.ai.generativelanguage.v1beta.TextService", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "generativelanguage.googleapis.com" + }, + { + "id": "google.ai.generativelanguage.v1beta2", + "directory": "google/ai/generativelanguage/v1beta2", + "version": "v1beta2", + "majorVersion": "v1", + "hostName": "generativelanguage.googleapis.com", + "title": "Generative Language API", + "description": "The PaLM API allows developers to build generative AI applications using the PaLM model. Large Language Models (LLMs) are a powerful, versatile type of machine learning model that enables computers to comprehend and generate natural language through a series of prompts. The PaLM API is based on Google's next generation LLM, PaLM. It excels at a variety of different tasks like code generation, reasoning, and writing. You can use the PaLM API to build generative AI applications for use cases like content generation, dialogue agents, summarization and classification systems, and more.", + "importDirectories": [ + "google/ai/generativelanguage/v1beta2", + "google/api" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/ai/generativelanguage/apiv1beta2/generativelanguagepb;generativelanguagepb": 6 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 6 + } + }, + "java_package": { + "valueCounts": { + "com.google.ai.generativelanguage.v1beta2": 6 + } + } + }, + "services": [ + { + "shortName": "DiscussService", + "fullName": "google.ai.generativelanguage.v1beta2.DiscussService", + "methods": [ { - "shortName": "CreateDisplayVideo360AdvertiserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLink", + "shortName": "CountMessageTokens", + "fullName": "google.ai.generativelanguage.v1beta2.DiscussService.CountMessageTokens", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" + "path": "/v1beta2/{model=models/*}:countMessageTokens" } ] }, { - "shortName": "CreateDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLinkProposal", + "shortName": "GenerateMessage", + "fullName": "google.ai.generativelanguage.v1beta2.DiscussService.GenerateMessage", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" + "path": "/v1beta2/{model=models/*}:generateMessage" } ] - }, + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.ai.generativelanguage.v1beta2.ModelService", + "methods": [ { - "shortName": "CreateEventCreateRule", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateEventCreateRule", + "shortName": "GetModel", + "fullName": "google.ai.generativelanguage.v1beta2.ModelService.GetModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventCreateRules" + "httpMethod": "GET", + "path": "/v1beta2/{name=models/*}" } ] }, { - "shortName": "CreateExpandedDataSet", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateExpandedDataSet", + "shortName": "ListModels", + "fullName": "google.ai.generativelanguage.v1beta2.ModelService.ListModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/expandedDataSets" + "httpMethod": "GET", + "path": "/v1beta2/models" } ] - }, + } + ] + }, + { + "shortName": "TextService", + "fullName": "google.ai.generativelanguage.v1beta2.TextService", + "methods": [ { - "shortName": "CreateFirebaseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateFirebaseLink", + "shortName": "EmbedText", + "fullName": "google.ai.generativelanguage.v1beta2.TextService.EmbedText", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/firebaseLinks" + "path": "/v1beta2/{model=models/*}:embedText" } ] }, { - "shortName": "CreateGoogleAdsLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateGoogleAdsLink", + "shortName": "GenerateText", + "fullName": "google.ai.generativelanguage.v1beta2.TextService.GenerateText", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" + "path": "/v1beta2/{model=models/*}:generateText" } ] - }, + } + ] + } + ], + "configFile": "generativelanguage_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.ai.generativelanguage.v1beta2.DiscussService", + "google.ai.generativelanguage.v1beta2.ModelService", + "google.ai.generativelanguage.v1beta2.TextService" + ], + "nameInServiceConfig": "generativelanguage.googleapis.com" + }, + { + "id": "google.ai.generativelanguage.v1beta3", + "directory": "google/ai/generativelanguage/v1beta3", + "version": "v1beta3", + "majorVersion": "v1", + "hostName": "generativelanguage.googleapis.com", + "title": "Generative Language API", + "description": "The PaLM API allows developers to build generative AI applications using the PaLM model. Large Language Models (LLMs) are a powerful, versatile type of machine learning model that enables computers to comprehend and generate natural language through a series of prompts. The PaLM API is based on Google's next generation LLM, PaLM. It excels at a variety of different tasks like code generation, reasoning, and writing. You can use the PaLM API to build generative AI applications for use cases like content generation, dialogue agents, summarization and classification systems, and more.", + "importDirectories": [ + "google/ai/generativelanguage/v1beta3", + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/ai/generativelanguage/apiv1beta3/generativelanguagepb;generativelanguagepb": 9 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 9 + } + }, + "java_package": { + "valueCounts": { + "com.google.ai.generativelanguage.v1beta3": 9 + } + } + }, + "services": [ + { + "shortName": "DiscussService", + "fullName": "google.ai.generativelanguage.v1beta3.DiscussService", + "methods": [ { - "shortName": "CreateMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateMeasurementProtocolSecret", + "shortName": "CountMessageTokens", + "fullName": "google.ai.generativelanguage.v1beta3.DiscussService.CountMessageTokens", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" + "path": "/v1beta3/{model=models/*}:countMessageTokens" } ] }, { - "shortName": "CreateProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateProperty", + "shortName": "GenerateMessage", + "fullName": "google.ai.generativelanguage.v1beta3.DiscussService.GenerateMessage", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/properties" + "path": "/v1beta3/{model=models/*}:generateMessage" } ] - }, + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService", + "methods": [ { - "shortName": "CreateRollupProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateRollupProperty", + "shortName": "CreateTunedModel", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.CreateTunedModel", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/properties:createRollupProperty" + "path": "/v1beta3/tunedModels" } ] }, { - "shortName": "CreateRollupPropertySourceLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateRollupPropertySourceLink", + "shortName": "DeleteTunedModel", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.DeleteTunedModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/rollupPropertySourceLinks" + "httpMethod": "DELETE", + "path": "/v1beta3/{name=tunedModels/*}" } ] }, { - "shortName": "CreateSKAdNetworkConversionValueSchema", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSKAdNetworkConversionValueSchema", + "shortName": "GetModel", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.GetModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*/dataStreams/*}/sKAdNetworkConversionValueSchema" + "httpMethod": "GET", + "path": "/v1beta3/{name=models/*}" } ] }, { - "shortName": "CreateSearchAds360Link", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSearchAds360Link", + "shortName": "GetTunedModel", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.GetTunedModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/searchAds360Links" + "httpMethod": "GET", + "path": "/v1beta3/{name=tunedModels/*}" } ] }, { - "shortName": "CreateSubproperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSubproperty", + "shortName": "ListModels", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.ListModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/properties:createSubproperty" + "httpMethod": "GET", + "path": "/v1beta3/models" } ] }, { - "shortName": "CreateSubpropertyEventFilter", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSubpropertyEventFilter", + "shortName": "ListTunedModels", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.ListTunedModels", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/{parent=properties/*}/subpropertyEventFilters" + "httpMethod": "GET", + "path": "/v1beta3/tunedModels" } ] }, { - "shortName": "DeleteAccessBinding", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAccessBinding", + "shortName": "UpdateTunedModel", + "fullName": "google.ai.generativelanguage.v1beta3.ModelService.UpdateTunedModel", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=accounts/*/accessBindings/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/accessBindings/*}" + "httpMethod": "PATCH", + "path": "/v1beta3/{tuned_model.name=tunedModels/*}" } ] - }, + } + ] + }, + { + "shortName": "PermissionService", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService", + "methods": [ { - "shortName": "DeleteAccount", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAccount", + "shortName": "CreatePermission", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.CreatePermission", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=accounts/*}" + "httpMethod": "POST", + "path": "/v1beta3/{parent=tunedModels/*}/permissions" } ] }, { - "shortName": "DeleteAdSenseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAdSenseLink", + "shortName": "DeletePermission", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.DeletePermission", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/adSenseLinks/*}" + "path": "/v1beta3/{name=tunedModels/*/permissions/*}" } ] }, { - "shortName": "DeleteCalculatedMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteCalculatedMetric", + "shortName": "GetPermission", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.GetPermission", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/calculatedMetrics/*}" + "httpMethod": "GET", + "path": "/v1beta3/{name=tunedModels/*/permissions/*}" } ] }, { - "shortName": "DeleteChannelGroup", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteChannelGroup", + "shortName": "ListPermissions", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.ListPermissions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/channelGroups/*}" + "httpMethod": "GET", + "path": "/v1beta3/{parent=tunedModels/*}/permissions" } ] }, { - "shortName": "DeleteConnectedSiteTag", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteConnectedSiteTag", + "shortName": "TransferOwnership", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.TransferOwnership", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/properties:deleteConnectedSiteTag" + "path": "/v1beta3/{name=tunedModels/*}:transferOwnership" } ] }, { - "shortName": "DeleteConversionEvent", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteConversionEvent", + "shortName": "UpdatePermission", + "fullName": "google.ai.generativelanguage.v1beta3.PermissionService.UpdatePermission", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/conversionEvents/*}" + "httpMethod": "PATCH", + "path": "/v1beta3/{permission.name=tunedModels/*/permissions/*}" } ] - }, + } + ] + }, + { + "shortName": "TextService", + "fullName": "google.ai.generativelanguage.v1beta3.TextService", + "methods": [ { - "shortName": "DeleteDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDataStream", + "shortName": "BatchEmbedText", + "fullName": "google.ai.generativelanguage.v1beta3.TextService.BatchEmbedText", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/dataStreams/*}" + "httpMethod": "POST", + "path": "/v1beta3/{model=models/*}:batchEmbedText" } ] }, { - "shortName": "DeleteDisplayVideo360AdvertiserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLink", + "shortName": "CountTextTokens", + "fullName": "google.ai.generativelanguage.v1beta3.TextService.CountTextTokens", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" + "httpMethod": "POST", + "path": "/v1beta3/{model=models/*}:countTextTokens" } ] }, { - "shortName": "DeleteDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLinkProposal", + "shortName": "EmbedText", + "fullName": "google.ai.generativelanguage.v1beta3.TextService.EmbedText", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" + "httpMethod": "POST", + "path": "/v1beta3/{model=models/*}:embedText" } ] }, { - "shortName": "DeleteEventCreateRule", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteEventCreateRule", + "shortName": "GenerateText", + "fullName": "google.ai.generativelanguage.v1beta3.TextService.GenerateText", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/dataStreams/*/eventCreateRules/*}" + "httpMethod": "POST", + "path": "/v1beta3/{model=models/*}:generateText" + }, + { + "httpMethod": "POST", + "path": "/v1beta3/{model=tunedModels/*}:generateText" } ] - }, + } + ] + } + ], + "configFile": "generativelanguage_v1beta3.yaml", + "serviceConfigApiNames": [ + "google.ai.generativelanguage.v1beta3.DiscussService", + "google.ai.generativelanguage.v1beta3.ModelService", + "google.ai.generativelanguage.v1beta3.PermissionService", + "google.ai.generativelanguage.v1beta3.TextService", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "generativelanguage.googleapis.com" + }, + { + "id": "google.analytics.admin.v1alpha", + "directory": "google/analytics/admin/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "analyticsadmin.googleapis.com", + "title": "Google Analytics Admin API", + "description": "Manage properties in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning.", + "importDirectories": [ + "google/analytics/admin/v1alpha", + "google/api", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/analytics/admin/apiv1alpha/adminpb;adminpb": 8 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 8 + } + }, + "java_package": { + "valueCounts": { + "com.google.analytics.admin.v1alpha": 8 + } + } + }, + "services": [ + { + "shortName": "AnalyticsAdminService", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "methods": [ { - "shortName": "DeleteExpandedDataSet", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteExpandedDataSet", + "shortName": "AcknowledgeUserDataCollection", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.AcknowledgeUserDataCollection", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/expandedDataSets/*}" + "httpMethod": "POST", + "path": "/v1alpha/{property=properties/*}:acknowledgeUserDataCollection" } ] }, { - "shortName": "DeleteFirebaseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteFirebaseLink", + "shortName": "ApproveDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ApproveDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/firebaseLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:approve" } ] }, { - "shortName": "DeleteGoogleAdsLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteGoogleAdsLink", + "shortName": "ArchiveAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveAudience", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/googleAdsLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/audiences/*}:archive" } ] }, { - "shortName": "DeleteMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteMeasurementProtocolSecret", + "shortName": "ArchiveCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomDimension", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/customDimensions/*}:archive" } ] }, { - "shortName": "DeleteProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteProperty", + "shortName": "ArchiveCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ArchiveCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*}" + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/customMetrics/*}:archive" } ] }, { - "shortName": "DeleteRollupPropertySourceLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteRollupPropertySourceLink", + "shortName": "BatchCreateAccessBindings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchCreateAccessBindings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/rollupPropertySourceLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/accessBindings:batchCreate" } ] }, { - "shortName": "DeleteSKAdNetworkConversionValueSchema", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteSKAdNetworkConversionValueSchema", + "shortName": "BatchDeleteAccessBindings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchDeleteAccessBindings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/dataStreams/*/sKAdNetworkConversionValueSchema/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchDelete" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/accessBindings:batchDelete" } ] }, { - "shortName": "DeleteSearchAds360Link", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteSearchAds360Link", + "shortName": "BatchGetAccessBindings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchGetAccessBindings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/searchAds360Links/*}" + "httpMethod": "GET", + "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchGet" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/accessBindings:batchGet" } ] }, { - "shortName": "DeleteSubpropertyEventFilter", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteSubpropertyEventFilter", + "shortName": "BatchUpdateAccessBindings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.BatchUpdateAccessBindings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=properties/*/subpropertyEventFilters/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=accounts/*}/accessBindings:batchUpdate" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/accessBindings:batchUpdate" } ] }, { - "shortName": "FetchAutomatedGa4ConfigurationOptOut", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.FetchAutomatedGa4ConfigurationOptOut", + "shortName": "CancelDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CancelDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1alpha/properties:fetchAutomatedGa4ConfigurationOptOut" + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}:cancel" } ] }, { - "shortName": "FetchConnectedGa4Property", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.FetchConnectedGa4Property", + "shortName": "CreateAccessBinding", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAccessBinding", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/properties:fetchConnectedGa4Property" + "httpMethod": "POST", + "path": "/v1alpha/{parent=accounts/*}/accessBindings" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/accessBindings" } ] }, { - "shortName": "GetAccessBinding", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccessBinding", + "shortName": "CreateAdSenseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAdSenseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=accounts/*/accessBindings/*}" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/accessBindings/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/adSenseLinks" } ] }, { - "shortName": "GetAccount", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccount", + "shortName": "CreateAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateAudience", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=accounts/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/audiences" } ] }, { - "shortName": "GetAdSenseLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAdSenseLink", + "shortName": "CreateCalculatedMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCalculatedMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/adSenseLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/calculatedMetrics" } ] }, { - "shortName": "GetAttributionSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAttributionSettings", + "shortName": "CreateChannelGroup", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateChannelGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/attributionSettings}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/channelGroups" } ] }, { - "shortName": "GetAudience", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAudience", + "shortName": "CreateConnectedSiteTag", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateConnectedSiteTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/audiences/*}" + "httpMethod": "POST", + "path": "/v1alpha/properties:createConnectedSiteTag" } ] }, { - "shortName": "GetBigQueryLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetBigQueryLink", + "shortName": "CreateConversionEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/bigQueryLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/conversionEvents" } ] }, { - "shortName": "GetCalculatedMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCalculatedMetric", + "shortName": "CreateCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomDimension", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/calculatedMetrics/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/customDimensions" } ] }, { - "shortName": "GetChannelGroup", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetChannelGroup", + "shortName": "CreateCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCustomMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/channelGroups/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/customMetrics" } ] }, { - "shortName": "GetConversionEvent", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetConversionEvent", + "shortName": "CreateDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/conversionEvents/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/dataStreams" } ] }, { - "shortName": "GetCustomDimension", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomDimension", + "shortName": "CreateDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/customDimensions/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" } ] }, { - "shortName": "GetCustomMetric", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomMetric", + "shortName": "CreateDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/customMetrics/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" } ] }, { - "shortName": "GetDataRedactionSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRedactionSettings", + "shortName": "CreateEventCreateRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateEventCreateRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*/dataRedactionSettings}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventCreateRules" } ] }, { - "shortName": "GetDataRetentionSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRetentionSettings", + "shortName": "CreateExpandedDataSet", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateExpandedDataSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataRetentionSettings}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/expandedDataSets" } ] }, { - "shortName": "GetDataSharingSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataSharingSettings", + "shortName": "CreateFirebaseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateFirebaseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=accounts/*/dataSharingSettings}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/firebaseLinks" } ] }, { - "shortName": "GetDataStream", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataStream", + "shortName": "CreateGoogleAdsLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" } ] }, { - "shortName": "GetDisplayVideo360AdvertiserLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLink", + "shortName": "CreateMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" } ] }, { - "shortName": "GetDisplayVideo360AdvertiserLinkProposal", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLinkProposal", + "shortName": "CreateProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" + "httpMethod": "POST", + "path": "/v1alpha/properties" } ] }, { - "shortName": "GetEnhancedMeasurementSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetEnhancedMeasurementSettings", + "shortName": "CreateRollupProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateRollupProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*/enhancedMeasurementSettings}" + "httpMethod": "POST", + "path": "/v1alpha/properties:createRollupProperty" } ] }, { - "shortName": "GetEventCreateRule", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetEventCreateRule", + "shortName": "CreateRollupPropertySourceLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateRollupPropertySourceLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*/eventCreateRules/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/rollupPropertySourceLinks" } ] }, { - "shortName": "GetExpandedDataSet", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetExpandedDataSet", + "shortName": "CreateSKAdNetworkConversionValueSchema", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSKAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/expandedDataSets/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/sKAdNetworkConversionValueSchema" } ] }, { - "shortName": "GetGlobalSiteTag", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGlobalSiteTag", + "shortName": "CreateSearchAds360Link", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSearchAds360Link", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*/globalSiteTag}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/searchAds360Links" } ] }, { - "shortName": "GetGoogleSignalsSettings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGoogleSignalsSettings", + "shortName": "CreateSubproperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSubproperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/googleSignalsSettings}" + "httpMethod": "POST", + "path": "/v1alpha/properties:createSubproperty" } ] }, { - "shortName": "GetMeasurementProtocolSecret", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret", + "shortName": "CreateSubpropertyEventFilter", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSubpropertyEventFilter", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/subpropertyEventFilters" } ] }, { - "shortName": "GetProperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetProperty", + "shortName": "DeleteAccessBinding", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAccessBinding", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=accounts/*/accessBindings/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/accessBindings/*}" } ] }, { - "shortName": "GetRollupPropertySourceLink", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetRollupPropertySourceLink", + "shortName": "DeleteAccount", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAccount", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/rollupPropertySourceLinks/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=accounts/*}" } ] }, { - "shortName": "GetSKAdNetworkConversionValueSchema", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetSKAdNetworkConversionValueSchema", + "shortName": "DeleteAdSenseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteAdSenseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/dataStreams/*/sKAdNetworkConversionValueSchema/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/adSenseLinks/*}" } ] }, { - "shortName": "GetSearchAds360Link", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetSearchAds360Link", + "shortName": "DeleteCalculatedMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteCalculatedMetric", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/searchAds360Links/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/calculatedMetrics/*}" } ] }, { - "shortName": "GetSubpropertyEventFilter", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetSubpropertyEventFilter", + "shortName": "DeleteChannelGroup", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteChannelGroup", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{name=properties/*/subpropertyEventFilters/*}" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/channelGroups/*}" } ] }, { - "shortName": "ListAccessBindings", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccessBindings", + "shortName": "DeleteConnectedSiteTag", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteConnectedSiteTag", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=accounts/*}/accessBindings" - }, - { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/accessBindings" + "httpMethod": "POST", + "path": "/v1alpha/properties:deleteConnectedSiteTag" } ] }, { - "shortName": "ListAccountSummaries", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccountSummaries", + "shortName": "DeleteConversionEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteConversionEvent", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/accountSummaries" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/conversionEvents/*}" } ] }, { - "shortName": "ListAccounts", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccounts", + "shortName": "DeleteDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDataStream", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/accounts" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*}" } ] }, { - "shortName": "ListAdSenseLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAdSenseLinks", + "shortName": "DeleteDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/adSenseLinks" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" } ] }, { - "shortName": "ListAudiences", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAudiences", + "shortName": "DeleteDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteDisplayVideo360AdvertiserLinkProposal", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/audiences" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" } ] }, { - "shortName": "ListBigQueryLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListBigQueryLinks", + "shortName": "DeleteEventCreateRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteEventCreateRule", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/bigQueryLinks" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*/eventCreateRules/*}" } ] }, { - "shortName": "ListCalculatedMetrics", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCalculatedMetrics", + "shortName": "DeleteExpandedDataSet", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteExpandedDataSet", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/calculatedMetrics" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/expandedDataSets/*}" } ] }, { - "shortName": "ListChannelGroups", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListChannelGroups", + "shortName": "DeleteFirebaseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteFirebaseLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/channelGroups" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/firebaseLinks/*}" } ] }, { - "shortName": "ListConnectedSiteTags", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListConnectedSiteTags", + "shortName": "DeleteGoogleAdsLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteGoogleAdsLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1alpha/properties:listConnectedSiteTags" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/googleAdsLinks/*}" } ] }, { - "shortName": "ListConversionEvents", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListConversionEvents", + "shortName": "DeleteMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteMeasurementProtocolSecret", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/conversionEvents" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" } ] }, { - "shortName": "ListCustomDimensions", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomDimensions", + "shortName": "DeleteProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteProperty", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/customDimensions" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*}" } ] }, { - "shortName": "ListCustomMetrics", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomMetrics", + "shortName": "DeleteRollupPropertySourceLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteRollupPropertySourceLink", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/customMetrics" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/rollupPropertySourceLinks/*}" } ] }, { - "shortName": "ListDataStreams", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDataStreams", + "shortName": "DeleteSKAdNetworkConversionValueSchema", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteSKAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/dataStreams" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*/sKAdNetworkConversionValueSchema/*}" } ] }, { - "shortName": "ListDisplayVideo360AdvertiserLinkProposals", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinkProposals", + "shortName": "DeleteSearchAds360Link", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteSearchAds360Link", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/searchAds360Links/*}" } ] }, { - "shortName": "ListDisplayVideo360AdvertiserLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinks", + "shortName": "DeleteSubpropertyEventFilter", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteSubpropertyEventFilter", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/subpropertyEventFilters/*}" } ] }, { - "shortName": "ListEventCreateRules", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListEventCreateRules", + "shortName": "FetchAutomatedGa4ConfigurationOptOut", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.FetchAutomatedGa4ConfigurationOptOut", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventCreateRules" + "httpMethod": "POST", + "path": "/v1alpha/properties:fetchAutomatedGa4ConfigurationOptOut" } ] }, { - "shortName": "ListExpandedDataSets", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListExpandedDataSets", + "shortName": "FetchConnectedGa4Property", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.FetchConnectedGa4Property", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/expandedDataSets" + "path": "/v1alpha/properties:fetchConnectedGa4Property" } ] }, { - "shortName": "ListFirebaseLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListFirebaseLinks", + "shortName": "GetAccessBinding", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccessBinding", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/firebaseLinks" + "path": "/v1alpha/{name=accounts/*/accessBindings/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/accessBindings/*}" } ] }, { - "shortName": "ListGoogleAdsLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListGoogleAdsLinks", + "shortName": "GetAccount", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" + "path": "/v1alpha/{name=accounts/*}" } ] }, { - "shortName": "ListMeasurementProtocolSecrets", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets", + "shortName": "GetAdSenseLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAdSenseLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" + "path": "/v1alpha/{name=properties/*/adSenseLinks/*}" } ] }, { - "shortName": "ListProperties", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListProperties", + "shortName": "GetAttributionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAttributionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/properties" + "path": "/v1alpha/{name=properties/*/attributionSettings}" } ] }, { - "shortName": "ListRollupPropertySourceLinks", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListRollupPropertySourceLinks", + "shortName": "GetAudience", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetAudience", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/rollupPropertySourceLinks" + "path": "/v1alpha/{name=properties/*/audiences/*}" } ] }, { - "shortName": "ListSKAdNetworkConversionValueSchemas", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListSKAdNetworkConversionValueSchemas", + "shortName": "GetBigQueryLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetBigQueryLink", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*/dataStreams/*}/sKAdNetworkConversionValueSchema" + "path": "/v1alpha/{name=properties/*/bigQueryLinks/*}" } ] }, { - "shortName": "ListSearchAds360Links", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListSearchAds360Links", + "shortName": "GetCalculatedMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCalculatedMetric", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/searchAds360Links" + "path": "/v1alpha/{name=properties/*/calculatedMetrics/*}" + } + ] + }, + { + "shortName": "GetChannelGroup", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetChannelGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/channelGroups/*}" + } + ] + }, + { + "shortName": "GetConversionEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetConversionEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/conversionEvents/*}" + } + ] + }, + { + "shortName": "GetCustomDimension", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomDimension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/customDimensions/*}" + } + ] + }, + { + "shortName": "GetCustomMetric", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetCustomMetric", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/customMetrics/*}" + } + ] + }, + { + "shortName": "GetDataRedactionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRedactionSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/dataRedactionSettings}" + } + ] + }, + { + "shortName": "GetDataRetentionSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataRetentionSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataRetentionSettings}" + } + ] + }, + { + "shortName": "GetDataSharingSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataSharingSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=accounts/*/dataSharingSettings}" + } + ] + }, + { + "shortName": "GetDataStream", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataStream", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*}" + } + ] + }, + { + "shortName": "GetDisplayVideo360AdvertiserLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinks/*}" + } + ] + }, + { + "shortName": "GetDisplayVideo360AdvertiserLinkProposal", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetDisplayVideo360AdvertiserLinkProposal", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/displayVideo360AdvertiserLinkProposals/*}" + } + ] + }, + { + "shortName": "GetEnhancedMeasurementSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetEnhancedMeasurementSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/enhancedMeasurementSettings}" + } + ] + }, + { + "shortName": "GetEventCreateRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetEventCreateRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/eventCreateRules/*}" + } + ] + }, + { + "shortName": "GetExpandedDataSet", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetExpandedDataSet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/expandedDataSets/*}" + } + ] + }, + { + "shortName": "GetGlobalSiteTag", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGlobalSiteTag", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/globalSiteTag}" + } + ] + }, + { + "shortName": "GetGoogleSignalsSettings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetGoogleSignalsSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/googleSignalsSettings}" + } + ] + }, + { + "shortName": "GetMeasurementProtocolSecret", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}" + } + ] + }, + { + "shortName": "GetProperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetProperty", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*}" + } + ] + }, + { + "shortName": "GetRollupPropertySourceLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetRollupPropertySourceLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/rollupPropertySourceLinks/*}" + } + ] + }, + { + "shortName": "GetSKAdNetworkConversionValueSchema", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetSKAdNetworkConversionValueSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/sKAdNetworkConversionValueSchema/*}" + } + ] + }, + { + "shortName": "GetSearchAds360Link", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetSearchAds360Link", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/searchAds360Links/*}" + } + ] + }, + { + "shortName": "GetSubpropertyEventFilter", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetSubpropertyEventFilter", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/subpropertyEventFilters/*}" + } + ] + }, + { + "shortName": "ListAccessBindings", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccessBindings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=accounts/*}/accessBindings" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/accessBindings" + } + ] + }, + { + "shortName": "ListAccountSummaries", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccountSummaries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/accountSummaries" + } + ] + }, + { + "shortName": "ListAccounts", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccounts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/accounts" + } + ] + }, + { + "shortName": "ListAdSenseLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAdSenseLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/adSenseLinks" + } + ] + }, + { + "shortName": "ListAudiences", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListAudiences", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/audiences" + } + ] + }, + { + "shortName": "ListBigQueryLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListBigQueryLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/bigQueryLinks" + } + ] + }, + { + "shortName": "ListCalculatedMetrics", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCalculatedMetrics", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/calculatedMetrics" + } + ] + }, + { + "shortName": "ListChannelGroups", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListChannelGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/channelGroups" + } + ] + }, + { + "shortName": "ListConnectedSiteTags", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListConnectedSiteTags", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/properties:listConnectedSiteTags" + } + ] + }, + { + "shortName": "ListConversionEvents", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListConversionEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/conversionEvents" + } + ] + }, + { + "shortName": "ListCustomDimensions", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomDimensions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/customDimensions" + } + ] + }, + { + "shortName": "ListCustomMetrics", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListCustomMetrics", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/customMetrics" + } + ] + }, + { + "shortName": "ListDataStreams", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDataStreams", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/dataStreams" + } + ] + }, + { + "shortName": "ListDisplayVideo360AdvertiserLinkProposals", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinkProposals", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinkProposals" + } + ] + }, + { + "shortName": "ListDisplayVideo360AdvertiserLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListDisplayVideo360AdvertiserLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/displayVideo360AdvertiserLinks" + } + ] + }, + { + "shortName": "ListEventCreateRules", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListEventCreateRules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventCreateRules" + } + ] + }, + { + "shortName": "ListExpandedDataSets", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListExpandedDataSets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/expandedDataSets" + } + ] + }, + { + "shortName": "ListFirebaseLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListFirebaseLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/firebaseLinks" + } + ] + }, + { + "shortName": "ListGoogleAdsLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListGoogleAdsLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/googleAdsLinks" + } + ] + }, + { + "shortName": "ListMeasurementProtocolSecrets", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets" + } + ] + }, + { + "shortName": "ListProperties", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListProperties", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/properties" + } + ] + }, + { + "shortName": "ListRollupPropertySourceLinks", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListRollupPropertySourceLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/rollupPropertySourceLinks" + } + ] + }, + { + "shortName": "ListSKAdNetworkConversionValueSchemas", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListSKAdNetworkConversionValueSchemas", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/sKAdNetworkConversionValueSchema" + } + ] + }, + { + "shortName": "ListSearchAds360Links", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListSearchAds360Links", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/searchAds360Links" } ] }, @@ -11109,6 +11894,17 @@ } ] }, + { + "shortName": "CreateReportTask", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.CreateReportTask", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/reportTasks" + } + ] + }, { "shortName": "GetAudienceList", "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.GetAudienceList", @@ -11132,19 +11928,30 @@ ] }, { - "shortName": "ListAudienceLists", - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.ListAudienceLists", + "shortName": "GetReportTask", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.GetReportTask", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=properties/*}/audienceLists" + "path": "/v1alpha/{name=properties/*/reportTasks/*}" } ] }, { - "shortName": "ListRecurringAudienceLists", - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.ListRecurringAudienceLists", + "shortName": "ListAudienceLists", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.ListAudienceLists", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/audienceLists" + } + ] + }, + { + "shortName": "ListRecurringAudienceLists", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.ListRecurringAudienceLists", "mode": "UNARY", "bindings": [ { @@ -11153,6 +11960,17 @@ } ] }, + { + "shortName": "ListReportTasks", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.ListReportTasks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/reportTasks" + } + ] + }, { "shortName": "QueryAudienceList", "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.QueryAudienceList", @@ -11164,6 +11982,17 @@ } ] }, + { + "shortName": "QueryReportTask", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.QueryReportTask", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{name=properties/*/reportTasks/*}:query" + } + ] + }, { "shortName": "RunFunnelReport", "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport", @@ -13920,101 +14749,6 @@ ], "nameInServiceConfig": "workspaceevents.googleapis.com" }, - { - "id": "google.apps.market.v2", - "directory": "google/apps/market/v2", - "version": "v2", - "majorVersion": "v2", - "hostName": "appsmarket.googleapis.com", - "title": "Google Workspace Marketplace API", - "description": "Lets your Google Workspace Marketplace applications integrate with Google's licensing and billing services.", - "importDirectories": [ - "google/api", - "google/apps/market/v2" - ], - "options": { - "go_package": { - "valueCounts": { - "google.golang.org/genproto/googleapis/ccc/hosted/marketplace/v2;marketplace": 2 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 2 - } - }, - "java_package": { - "valueCounts": { - "com.google.ccc.hosted.marketplace.v2": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Apps\\Market\\V2": 2 - } - } - }, - "services": [ - { - "shortName": "CustomerLicenseService", - "fullName": "ccc.hosted.marketplace.v2.CustomerLicenseService", - "methods": [ - { - "shortName": "Get", - "fullName": "ccc.hosted.marketplace.v2.CustomerLicenseService.Get", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/appsmarket/v2/customerLicense/{application_id}/{customer_id}" - } - ] - } - ] - }, - { - "shortName": "LicenseNotificationService", - "fullName": "ccc.hosted.marketplace.v2.LicenseNotificationService", - "methods": [ - { - "shortName": "List", - "fullName": "ccc.hosted.marketplace.v2.LicenseNotificationService.List", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/appsmarket/v2/licenseNotification/{application_id}" - } - ] - } - ] - }, - { - "shortName": "UserLicenseService", - "fullName": "ccc.hosted.marketplace.v2.UserLicenseService", - "methods": [ - { - "shortName": "Get", - "fullName": "ccc.hosted.marketplace.v2.UserLicenseService.Get", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/appsmarket/v2/userLicense/{application_id}/{user_id}" - } - ] - } - ] - } - ], - "configFile": "appsmarket_v2.yaml", - "serviceConfigApiNames": [ - "ccc.hosted.marketplace.v2.CustomerLicenseService", - "ccc.hosted.marketplace.v2.LicenseNotificationService", - "ccc.hosted.marketplace.v2.UserLicenseService" - ], - "nameInServiceConfig": "appsmarket.googleapis.com" - }, { "id": "google.apps.meet.v2", "directory": "google/apps/meet/v2", @@ -14693,32 +15427,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Bigtable.Admin.V2": 5 + "Google.Cloud.Bigtable.Admin.V2": 6 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin": 5 + "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.bigtable.admin.v2": 5 + "com.google.bigtable.admin.v2": 6 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Bigtable\\Admin\\V2": 5 + "Google\\Cloud\\Bigtable\\Admin\\V2": 6 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Bigtable::Admin::V2": 5 + "Google::Cloud::Bigtable::Admin::V2": 6 } } }, @@ -14986,6 +15720,17 @@ } ] }, + { + "shortName": "CreateAuthorizedView", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateAuthorizedView", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/instances/*/tables/*}/authorizedViews" + } + ] + }, { "shortName": "CreateBackup", "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup", @@ -15019,6 +15764,17 @@ } ] }, + { + "shortName": "DeleteAuthorizedView", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteAuthorizedView", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/instances/*/tables/*/authorizedViews/*}" + } + ] + }, { "shortName": "DeleteBackup", "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.DeleteBackup", @@ -15074,6 +15830,17 @@ } ] }, + { + "shortName": "GetAuthorizedView", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetAuthorizedView", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/instances/*/tables/*/authorizedViews/*}" + } + ] + }, { "shortName": "GetBackup", "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.GetBackup", @@ -15122,6 +15889,17 @@ } ] }, + { + "shortName": "ListAuthorizedViews", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/instances/*/tables/*}/authorizedViews" + } + ] + }, { "shortName": "ListBackups", "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.ListBackups", @@ -15229,6 +16007,17 @@ } ] }, + { + "shortName": "UpdateAuthorizedView", + "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.UpdateAuthorizedView", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{authorized_view.name=projects/*/instances/*/tables/*/authorizedViews/*}" + } + ] + }, { "shortName": "UpdateBackup", "fullName": "google.bigtable.admin.v2.BigtableTableAdmin.UpdateBackup", @@ -15268,42 +16057,43 @@ "majorVersion": "v2", "hostName": "bigtable.googleapis.com", "title": "Cloud Bigtable API", - "description": "API for reading and writing the contents of Bigtables associated with a cloud project.", + "description": "API for reading and writing the contents of Bigtable tables associated with a Google Cloud project.", "importDirectories": [ "google/api", "google/bigtable/v2", "google/protobuf", - "google/rpc" + "google/rpc", + "google/type" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Bigtable.V2": 5 + "Google.Cloud.Bigtable.V2": 6 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/bigtable/v2;bigtable": 5 + "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.bigtable.v2": 5 + "com.google.bigtable.v2": 6 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Bigtable\\V2": 5 + "Google\\Cloud\\Bigtable\\V2": 6 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Bigtable::V2": 5 + "Google::Cloud::Bigtable::V2": 6 } } }, @@ -15320,6 +16110,21 @@ { "httpMethod": "POST", "path": "/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow" + }, + { + "httpMethod": "POST", + "path": "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:checkAndMutateRow" + } + ] + }, + { + "shortName": "ExecuteQuery", + "fullName": "google.bigtable.v2.Bigtable.ExecuteQuery", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{instance_name=projects/*/instances/*}:executeQuery" } ] }, @@ -15342,6 +16147,10 @@ { "httpMethod": "POST", "path": "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow" + }, + { + "httpMethod": "POST", + "path": "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRow" } ] }, @@ -15353,6 +16162,10 @@ { "httpMethod": "POST", "path": "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows" + }, + { + "httpMethod": "POST", + "path": "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRows" } ] }, @@ -15386,6 +16199,10 @@ { "httpMethod": "POST", "path": "/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow" + }, + { + "httpMethod": "POST", + "path": "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readModifyWriteRow" } ] }, @@ -15397,6 +16214,10 @@ { "httpMethod": "POST", "path": "/v2/{table_name=projects/*/instances/*/tables/*}:readRows" + }, + { + "httpMethod": "POST", + "path": "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readRows" } ] }, @@ -15408,6 +16229,10 @@ { "httpMethod": "GET", "path": "/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys" + }, + { + "httpMethod": "GET", + "path": "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:sampleRowKeys" } ] } @@ -15438,32 +16263,38 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Chat.V1": 17 + "Google.Apps.Chat.V1": 21 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/chat/apiv1/chatpb;chatpb": 17 + "cloud.google.com/go/chat/apiv1/chatpb;chatpb": 21 } }, "java_multiple_files": { "valueCounts": { - "true": 17 + "true": 21 } }, "java_package": { "valueCounts": { - "com.google.chat.v1": 17 + "com.google.chat.v1": 21 + } + }, + "objc_class_prefix": { + "valueCounts": { + "": 1, + "DYNAPIProto": 20 } }, "php_namespace": { "valueCounts": { - "Google\\Chat\\V1": 17 + "Google\\Apps\\Chat\\V1": 21 } }, "ruby_package": { "valueCounts": { - "Google::Chat::V1": 17 + "Google::Apps::Chat::V1": 21 } } }, @@ -15626,6 +16457,39 @@ } ] }, + { + "shortName": "GetSpaceEvent", + "fullName": "google.chat.v1.ChatService.GetSpaceEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=spaces/*/spaceEvents/*}" + } + ] + }, + { + "shortName": "GetSpaceReadState", + "fullName": "google.chat.v1.ChatService.GetSpaceReadState", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=users/*/spaces/*/spaceReadState}" + } + ] + }, + { + "shortName": "GetThreadReadState", + "fullName": "google.chat.v1.ChatService.GetThreadReadState", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=users/*/spaces/*/threads/*/threadReadState}" + } + ] + }, { "shortName": "ListMemberships", "fullName": "google.chat.v1.ChatService.ListMemberships", @@ -15659,6 +16523,17 @@ } ] }, + { + "shortName": "ListSpaceEvents", + "fullName": "google.chat.v1.ChatService.ListSpaceEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=spaces/*}/spaceEvents" + } + ] + }, { "shortName": "ListSpaces", "fullName": "google.chat.v1.ChatService.ListSpaces", @@ -15681,6 +16556,17 @@ } ] }, + { + "shortName": "UpdateMembership", + "fullName": "google.chat.v1.ChatService.UpdateMembership", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{membership.name=spaces/*/members/*}" + } + ] + }, { "shortName": "UpdateMessage", "fullName": "google.chat.v1.ChatService.UpdateMessage", @@ -15707,6 +16593,17 @@ } ] }, + { + "shortName": "UpdateSpaceReadState", + "fullName": "google.chat.v1.ChatService.UpdateSpaceReadState", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{space_read_state.name=users/*/spaces/*/spaceReadState}" + } + ] + }, { "shortName": "UploadAttachment", "fullName": "google.chat.v1.ChatService.UploadAttachment", @@ -16192,6 +17089,10 @@ { "httpMethod": "GET", "path": "/v1/{name=organizations/*/locations/*/settings}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/settings}" } ] }, @@ -16218,6 +17119,10 @@ { "httpMethod": "PATCH", "path": "/v1/{settings.name=organizations/*/locations/*/settings}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{settings.name=projects/*/locations/*/settings}" } ] } @@ -16250,7 +17155,7 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.AIPlatform.V1": 96, + "Google.Cloud.AIPlatform.V1": 106, "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance": 9, "Google.Cloud.AIPlatform.V1.Schema.Predict.Params": 6, "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction": 10, @@ -16259,7 +17164,7 @@ }, "go_package": { "valueCounts": { - "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb": 96, + "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb": 106, "cloud.google.com/go/aiplatform/apiv1/schema/predict/instance/instancepb;instancepb": 9, "cloud.google.com/go/aiplatform/apiv1/schema/predict/params/paramspb;paramspb": 6, "cloud.google.com/go/aiplatform/apiv1/schema/predict/prediction/predictionpb;predictionpb": 10, @@ -16268,12 +17173,12 @@ }, "java_multiple_files": { "valueCounts": { - "true": 132 + "true": 142 } }, "java_package": { "valueCounts": { - "com.google.cloud.aiplatform.v1": 96, + "com.google.cloud.aiplatform.v1": 106, "com.google.cloud.aiplatform.v1.schema.predict.instance": 9, "com.google.cloud.aiplatform.v1.schema.predict.params": 6, "com.google.cloud.aiplatform.v1.schema.predict.prediction": 10, @@ -16282,7 +17187,7 @@ }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\AIPlatform\\V1": 96, + "Google\\Cloud\\AIPlatform\\V1": 106, "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance": 9, "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params": 6, "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction": 10, @@ -16291,7 +17196,7 @@ }, "ruby_package": { "valueCounts": { - "Google::Cloud::AIPlatform::V1": 95, + "Google::Cloud::AIPlatform::V1": 105, "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance": 9, "Google::Cloud::AIPlatform::V1::Schema::Predict::Params": 6, "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction": 10, @@ -16502,6 +17407,17 @@ "path": "/v1/{dataset.name=projects/*/locations/*/datasets/*}" } ] + }, + { + "shortName": "UpdateDatasetVersion", + "fullName": "google.cloud.aiplatform.v1.DatasetService.UpdateDatasetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" + } + ] } ] }, @@ -16563,6 +17479,17 @@ "path": "/v1/{deployment_resource_pool=projects/*/locations/*/deploymentResourcePools/*}:queryDeployedModels" } ] + }, + { + "shortName": "UpdateDeploymentResourcePool", + "fullName": "google.cloud.aiplatform.v1.DeploymentResourcePoolService.UpdateDeploymentResourcePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{deployment_resource_pool.name=projects/*/locations/*/deploymentResourcePools/*}" + } + ] } ] }, @@ -17229,6 +18156,56 @@ } ] }, + { + "shortName": "GenAiTuningService", + "fullName": "google.cloud.aiplatform.v1.GenAiTuningService", + "methods": [ + { + "shortName": "CancelTuningJob", + "fullName": "google.cloud.aiplatform.v1.GenAiTuningService.CancelTuningJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/tuningJobs/*}:cancel" + } + ] + }, + { + "shortName": "CreateTuningJob", + "fullName": "google.cloud.aiplatform.v1.GenAiTuningService.CreateTuningJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/tuningJobs" + } + ] + }, + { + "shortName": "GetTuningJob", + "fullName": "google.cloud.aiplatform.v1.GenAiTuningService.GetTuningJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/tuningJobs/*}" + } + ] + }, + { + "shortName": "ListTuningJobs", + "fullName": "google.cloud.aiplatform.v1.GenAiTuningService.ListTuningJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/tuningJobs" + } + ] + } + ] + }, { "shortName": "IndexEndpointService", "fullName": "google.cloud.aiplatform.v1.IndexEndpointService", @@ -18468,10 +19445,231 @@ } ] }, + { + "shortName": "NotebookService", + "fullName": "google.cloud.aiplatform.v1.NotebookService", + "methods": [ + { + "shortName": "AssignNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1.NotebookService.AssignNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/notebookRuntimes:assign" + } + ] + }, + { + "shortName": "CreateNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1.NotebookService.CreateNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + } + ] + }, + { + "shortName": "DeleteNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1.NotebookService.DeleteNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/notebookRuntimes/*}" + } + ] + }, + { + "shortName": "DeleteNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1.NotebookService.DeleteNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + } + ] + }, + { + "shortName": "GetNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1.NotebookService.GetNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/notebookRuntimes/*}" + } + ] + }, + { + "shortName": "GetNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1.NotebookService.GetNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + } + ] + }, + { + "shortName": "ListNotebookRuntimeTemplates", + "fullName": "google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimeTemplates", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + } + ] + }, + { + "shortName": "ListNotebookRuntimes", + "fullName": "google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/notebookRuntimes" + } + ] + }, + { + "shortName": "StartNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1.NotebookService.StartNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/notebookRuntimes/*}:start" + } + ] + }, + { + "shortName": "UpdateNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1.NotebookService.UpdateNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{notebook_runtime_template.name=projects/*/locations/*/notebookRuntimeTemplates/*}" + } + ] + }, + { + "shortName": "UpgradeNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1.NotebookService.UpgradeNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/notebookRuntimes/*}:upgrade" + } + ] + } + ] + }, + { + "shortName": "PersistentResourceService", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService", + "methods": [ + { + "shortName": "CreatePersistentResource", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService.CreatePersistentResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/persistentResources" + } + ] + }, + { + "shortName": "DeletePersistentResource", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService.DeletePersistentResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/persistentResources/*}" + } + ] + }, + { + "shortName": "GetPersistentResource", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService.GetPersistentResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/persistentResources/*}" + } + ] + }, + { + "shortName": "ListPersistentResources", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService.ListPersistentResources", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/persistentResources" + } + ] + }, + { + "shortName": "RebootPersistentResource", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService.RebootPersistentResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/persistentResources/*}:reboot" + } + ] + }, + { + "shortName": "UpdatePersistentResource", + "fullName": "google.cloud.aiplatform.v1.PersistentResourceService.UpdatePersistentResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{persistent_resource.name=projects/*/locations/*/persistentResources/*}" + } + ] + } + ] + }, { "shortName": "PipelineService", "fullName": "google.cloud.aiplatform.v1.PipelineService", "methods": [ + { + "shortName": "BatchCancelPipelineJobs", + "fullName": "google.cloud.aiplatform.v1.PipelineService.BatchCancelPipelineJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/pipelineJobs:batchCancel" + } + ] + }, + { + "shortName": "BatchDeletePipelineJobs", + "fullName": "google.cloud.aiplatform.v1.PipelineService.BatchDeletePipelineJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/pipelineJobs:batchDelete" + } + ] + }, { "shortName": "CancelPipelineJob", "fullName": "google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob", @@ -19395,6 +20593,7 @@ "google.cloud.aiplatform.v1.FeatureRegistryService", "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService", "google.cloud.aiplatform.v1.FeaturestoreService", + "google.cloud.aiplatform.v1.GenAiTuningService", "google.cloud.aiplatform.v1.IndexEndpointService", "google.cloud.aiplatform.v1.IndexService", "google.cloud.aiplatform.v1.JobService", @@ -19404,6 +20603,8 @@ "google.cloud.aiplatform.v1.MigrationService", "google.cloud.aiplatform.v1.ModelGardenService", "google.cloud.aiplatform.v1.ModelService", + "google.cloud.aiplatform.v1.NotebookService", + "google.cloud.aiplatform.v1.PersistentResourceService", "google.cloud.aiplatform.v1.PipelineService", "google.cloud.aiplatform.v1.PredictionService", "google.cloud.aiplatform.v1.ScheduleService", @@ -19438,7 +20639,7 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.AIPlatform.V1Beta1": 98, + "Google.Cloud.AIPlatform.V1Beta1": 125, "Google.Cloud.AIPlatform.V1Beta1.Schema": 6, "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance": 9, "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params": 6, @@ -19448,7 +20649,7 @@ }, "go_package": { "valueCounts": { - "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb": 98, + "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb": 125, "cloud.google.com/go/aiplatform/apiv1beta1/schema/predict/instance/instancepb;instancepb": 9, "cloud.google.com/go/aiplatform/apiv1beta1/schema/predict/params/paramspb;paramspb": 6, "cloud.google.com/go/aiplatform/apiv1beta1/schema/predict/prediction/predictionpb;predictionpb": 11, @@ -19458,12 +20659,12 @@ }, "java_multiple_files": { "valueCounts": { - "true": 142 + "true": 169 } }, "java_package": { "valueCounts": { - "com.google.cloud.aiplatform.v1beta1": 98, + "com.google.cloud.aiplatform.v1beta1": 125, "com.google.cloud.aiplatform.v1beta1.schema": 6, "com.google.cloud.aiplatform.v1beta1.schema.predict.instance": 9, "com.google.cloud.aiplatform.v1beta1.schema.predict.params": 6, @@ -19473,7 +20674,7 @@ }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\AIPlatform\\V1beta1": 98, + "Google\\Cloud\\AIPlatform\\V1beta1": 125, "Google\\Cloud\\AIPlatform\\V1beta1\\Schema": 6, "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance": 9, "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params": 6, @@ -19483,7 +20684,7 @@ }, "ruby_package": { "valueCounts": { - "Google::Cloud::AIPlatform::V1beta1": 97, + "Google::Cloud::AIPlatform::V1beta1": 124, "Google::Cloud::AIPlatform::V1beta1::Schema": 6, "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance": 9, "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params": 6, @@ -19695,6 +20896,17 @@ "path": "/v1beta1/{dataset.name=projects/*/locations/*/datasets/*}" } ] + }, + { + "shortName": "UpdateDatasetVersion", + "fullName": "google.cloud.aiplatform.v1beta1.DatasetService.UpdateDatasetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" + } + ] } ] }, @@ -19756,6 +20968,17 @@ "path": "/v1beta1/{deployment_resource_pool=projects/*/locations/*/deploymentResourcePools/*}:queryDeployedModels" } ] + }, + { + "shortName": "UpdateDeploymentResourcePool", + "fullName": "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService.UpdateDeploymentResourcePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{deployment_resource_pool.name=projects/*/locations/*/deploymentResourcePools/*}" + } + ] } ] }, @@ -19853,6 +21076,112 @@ } ] }, + { + "shortName": "EvaluationService", + "fullName": "google.cloud.aiplatform.v1beta1.EvaluationService", + "methods": [ + { + "shortName": "EvaluateInstances", + "fullName": "google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateInstances", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{location=projects/*/locations/*}:evaluateInstances" + } + ] + } + ] + }, + { + "shortName": "ExtensionExecutionService", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionExecutionService", + "methods": [ + { + "shortName": "ExecuteExtension", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionExecutionService.ExecuteExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/extensions/*}:execute" + } + ] + }, + { + "shortName": "QueryExtension", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionExecutionService.QueryExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/extensions/*}:query" + } + ] + } + ] + }, + { + "shortName": "ExtensionRegistryService", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionRegistryService", + "methods": [ + { + "shortName": "DeleteExtension", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionRegistryService.DeleteExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/extensions/*}" + } + ] + }, + { + "shortName": "GetExtension", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionRegistryService.GetExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/extensions/*}" + } + ] + }, + { + "shortName": "ImportExtension", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionRegistryService.ImportExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/extensions:import" + } + ] + }, + { + "shortName": "ListExtensions", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionRegistryService.ListExtensions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/extensions" + } + ] + }, + { + "shortName": "UpdateExtension", + "fullName": "google.cloud.aiplatform.v1beta1.ExtensionRegistryService.UpdateExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{extension.name=projects/*/locations/*/extensions/*}" + } + ] + } + ] + }, { "shortName": "FeatureOnlineStoreAdminService", "fullName": "google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService", @@ -20027,6 +21356,17 @@ "path": "/v1beta1/{feature_view=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:searchNearestEntities" } ] + }, + { + "shortName": "StreamingFetchFeatureValues", + "fullName": "google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.StreamingFetchFeatureValues", + "mode": "BIDIRECTIONAL_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{feature_view=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:streamingFetchFeatureValues" + } + ] } ] }, @@ -20422,6 +21762,117 @@ } ] }, + { + "shortName": "GenAiCacheService", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiCacheService", + "methods": [ + { + "shortName": "CreateCachedContent", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiCacheService.CreateCachedContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/cachedContents" + } + ] + }, + { + "shortName": "DeleteCachedContent", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiCacheService.DeleteCachedContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/cachedContents/*}" + } + ] + }, + { + "shortName": "GetCachedContent", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiCacheService.GetCachedContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/cachedContents/*}" + } + ] + }, + { + "shortName": "ListCachedContents", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiCacheService.ListCachedContents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/cachedContents" + } + ] + }, + { + "shortName": "UpdateCachedContent", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiCacheService.UpdateCachedContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{cached_content.name=projects/*/locations/*/cachedContents/*}" + } + ] + } + ] + }, + { + "shortName": "GenAiTuningService", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiTuningService", + "methods": [ + { + "shortName": "CancelTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiTuningService.CancelTuningJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/tuningJobs/*}:cancel" + } + ] + }, + { + "shortName": "CreateTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiTuningService.CreateTuningJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/tuningJobs" + } + ] + }, + { + "shortName": "GetTuningJob", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiTuningService.GetTuningJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/tuningJobs/*}" + } + ] + }, + { + "shortName": "ListTuningJobs", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiTuningService.ListTuningJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/tuningJobs" + } + ] + } + ] + }, { "shortName": "IndexEndpointService", "fullName": "google.cloud.aiplatform.v1beta1.IndexEndpointService", @@ -21453,6 +22904,133 @@ } ] }, + { + "shortName": "ModelMonitoringService", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService", + "methods": [ + { + "shortName": "CreateModelMonitor", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.CreateModelMonitor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/modelMonitors" + } + ] + }, + { + "shortName": "CreateModelMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.CreateModelMonitoringJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/modelMonitors/*}/modelMonitoringJobs" + } + ] + }, + { + "shortName": "DeleteModelMonitor", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.DeleteModelMonitor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/modelMonitors/*}" + } + ] + }, + { + "shortName": "DeleteModelMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.DeleteModelMonitoringJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/modelMonitors/*/modelMonitoringJobs/*}" + } + ] + }, + { + "shortName": "GetModelMonitor", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.GetModelMonitor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/modelMonitors/*}" + } + ] + }, + { + "shortName": "GetModelMonitoringJob", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.GetModelMonitoringJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/modelMonitors/*/modelMonitoringJobs/*}" + } + ] + }, + { + "shortName": "ListModelMonitoringJobs", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.ListModelMonitoringJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/modelMonitors/*}/modelMonitoringJobs" + } + ] + }, + { + "shortName": "ListModelMonitors", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.ListModelMonitors", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/modelMonitors" + } + ] + }, + { + "shortName": "SearchModelMonitoringAlerts", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringAlerts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{model_monitor=projects/*/locations/*/modelMonitors/*}:searchModelMonitoringAlerts" + } + ] + }, + { + "shortName": "SearchModelMonitoringStats", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringStats", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{model_monitor=projects/*/locations/*/modelMonitors/*}:searchModelMonitoringStats" + } + ] + }, + { + "shortName": "UpdateModelMonitor", + "fullName": "google.cloud.aiplatform.v1beta1.ModelMonitoringService.UpdateModelMonitor", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{model_monitor.name=projects/*/locations/*/modelMonitors/*}" + } + ] + } + ] + }, { "shortName": "ModelService", "fullName": "google.cloud.aiplatform.v1beta1.ModelService", @@ -21657,6 +23235,177 @@ } ] }, + { + "shortName": "NotebookService", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService", + "methods": [ + { + "shortName": "AssignNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.AssignNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimes:assign" + } + ] + }, + { + "shortName": "CreateNotebookExecutionJob", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.CreateNotebookExecutionJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/notebookExecutionJobs" + } + ] + }, + { + "shortName": "CreateNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.CreateNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + } + ] + }, + { + "shortName": "DeleteNotebookExecutionJob", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.DeleteNotebookExecutionJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + } + ] + }, + { + "shortName": "DeleteNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.DeleteNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}" + } + ] + }, + { + "shortName": "DeleteNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.DeleteNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + } + ] + }, + { + "shortName": "GetNotebookExecutionJob", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.GetNotebookExecutionJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + } + ] + }, + { + "shortName": "GetNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.GetNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}" + } + ] + }, + { + "shortName": "GetNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.GetNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + } + ] + }, + { + "shortName": "ListNotebookExecutionJobs", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookExecutionJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/notebookExecutionJobs" + } + ] + }, + { + "shortName": "ListNotebookRuntimeTemplates", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimeTemplates", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + } + ] + }, + { + "shortName": "ListNotebookRuntimes", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimes" + } + ] + }, + { + "shortName": "StartNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.StartNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}:start" + } + ] + }, + { + "shortName": "UpdateNotebookRuntimeTemplate", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.UpdateNotebookRuntimeTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{notebook_runtime_template.name=projects/*/locations/*/notebookRuntimeTemplates/*}" + } + ] + }, + { + "shortName": "UpgradeNotebookRuntime", + "fullName": "google.cloud.aiplatform.v1beta1.NotebookService.UpgradeNotebookRuntime", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}:upgrade" + } + ] + } + ] + }, { "shortName": "PersistentResourceService", "fullName": "google.cloud.aiplatform.v1beta1.PersistentResourceService", @@ -21705,6 +23454,17 @@ } ] }, + { + "shortName": "RebootPersistentResource", + "fullName": "google.cloud.aiplatform.v1beta1.PersistentResourceService.RebootPersistentResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/persistentResources/*}:reboot" + } + ] + }, { "shortName": "UpdatePersistentResource", "fullName": "google.cloud.aiplatform.v1beta1.PersistentResourceService.UpdatePersistentResource", @@ -21860,6 +23620,17 @@ "shortName": "PredictionService", "fullName": "google.cloud.aiplatform.v1beta1.PredictionService", "methods": [ + { + "shortName": "ChatCompletions", + "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.ChatCompletions", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}/chat/completions" + } + ] + }, { "shortName": "CountTokens", "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.CountTokens", @@ -21993,6 +23764,21 @@ } ] }, + { + "shortName": "StreamRawPredict", + "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.StreamRawPredict", + "mode": "SERVER_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:streamRawPredict" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=projects/*/locations/*/publishers/*/models/*}:streamRawPredict" + } + ] + }, { "shortName": "StreamingPredict", "fullName": "google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict", @@ -22005,6 +23791,84 @@ } ] }, + { + "shortName": "ReasoningEngineExecutionService", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineExecutionService", + "methods": [ + { + "shortName": "QueryReasoningEngine", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineExecutionService.QueryReasoningEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}:query" + } + ] + } + ] + }, + { + "shortName": "ReasoningEngineService", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineService", + "methods": [ + { + "shortName": "CreateReasoningEngine", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineService.CreateReasoningEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/reasoningEngines" + } + ] + }, + { + "shortName": "DeleteReasoningEngine", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineService.DeleteReasoningEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}" + } + ] + }, + { + "shortName": "GetReasoningEngine", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineService.GetReasoningEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}" + } + ] + }, + { + "shortName": "ListReasoningEngines", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineService.ListReasoningEngines", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/reasoningEngines" + } + ] + }, + { + "shortName": "UpdateReasoningEngine", + "fullName": "google.cloud.aiplatform.v1beta1.ReasoningEngineService.UpdateReasoningEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{reasoning_engine.name=projects/*/locations/*/reasoningEngines/*}" + } + ] + } + ] + }, { "shortName": "ScheduleService", "fullName": "google.cloud.aiplatform.v1beta1.ScheduleService", @@ -22485,6 +24349,128 @@ } ] }, + { + "shortName": "VertexRagDataService", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService", + "methods": [ + { + "shortName": "CreateRagCorpus", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.CreateRagCorpus", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/ragCorpora" + } + ] + }, + { + "shortName": "DeleteRagCorpus", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.DeleteRagCorpus", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/ragCorpora/*}" + } + ] + }, + { + "shortName": "DeleteRagFile", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.DeleteRagFile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*}" + } + ] + }, + { + "shortName": "GetRagCorpus", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.GetRagCorpus", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/ragCorpora/*}" + } + ] + }, + { + "shortName": "GetRagFile", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.GetRagFile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*}" + } + ] + }, + { + "shortName": "ImportRagFiles", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/ragCorpora/*}/ragFiles:import" + } + ] + }, + { + "shortName": "ListRagCorpora", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagCorpora", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/ragCorpora" + } + ] + }, + { + "shortName": "ListRagFiles", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagFiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/ragCorpora/*}/ragFiles" + } + ] + }, + { + "shortName": "UploadRagFile", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.UploadRagFile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/ragCorpora/*}/ragFiles:upload" + } + ] + } + ] + }, + { + "shortName": "VertexRagService", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagService", + "methods": [ + { + "shortName": "RetrieveContexts", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagService.RetrieveContexts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}:retrieveContexts" + } + ] + } + ] + }, { "shortName": "VizierService", "fullName": "google.cloud.aiplatform.v1beta1.VizierService", @@ -22662,11 +24648,16 @@ "google.cloud.aiplatform.v1beta1.DatasetService", "google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService", "google.cloud.aiplatform.v1beta1.EndpointService", + "google.cloud.aiplatform.v1beta1.EvaluationService", + "google.cloud.aiplatform.v1beta1.ExtensionExecutionService", + "google.cloud.aiplatform.v1beta1.ExtensionRegistryService", "google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService", "google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService", "google.cloud.aiplatform.v1beta1.FeatureRegistryService", "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService", "google.cloud.aiplatform.v1beta1.FeaturestoreService", + "google.cloud.aiplatform.v1beta1.GenAiCacheService", + "google.cloud.aiplatform.v1beta1.GenAiTuningService", "google.cloud.aiplatform.v1beta1.IndexEndpointService", "google.cloud.aiplatform.v1beta1.IndexService", "google.cloud.aiplatform.v1beta1.JobService", @@ -22675,13 +24666,19 @@ "google.cloud.aiplatform.v1beta1.MetadataService", "google.cloud.aiplatform.v1beta1.MigrationService", "google.cloud.aiplatform.v1beta1.ModelGardenService", + "google.cloud.aiplatform.v1beta1.ModelMonitoringService", "google.cloud.aiplatform.v1beta1.ModelService", + "google.cloud.aiplatform.v1beta1.NotebookService", "google.cloud.aiplatform.v1beta1.PersistentResourceService", "google.cloud.aiplatform.v1beta1.PipelineService", "google.cloud.aiplatform.v1beta1.PredictionService", + "google.cloud.aiplatform.v1beta1.ReasoningEngineExecutionService", + "google.cloud.aiplatform.v1beta1.ReasoningEngineService", "google.cloud.aiplatform.v1beta1.ScheduleService", "google.cloud.aiplatform.v1beta1.SpecialistPoolService", "google.cloud.aiplatform.v1beta1.TensorboardService", + "google.cloud.aiplatform.v1beta1.VertexRagDataService", + "google.cloud.aiplatform.v1beta1.VertexRagService", "google.cloud.aiplatform.v1beta1.VizierService", "google.cloud.location.Locations", "google.iam.v1.IAMPolicy", @@ -24958,6 +26955,366 @@ ], "nameInServiceConfig": "apigeeregistry.googleapis.com" }, + { + "id": "google.cloud.apphub.v1", + "directory": "google/cloud/apphub/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "apphub.googleapis.com", + "title": "App Hub API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/apphub/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.AppHub.V1": 6 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb": 6 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 6 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.apphub.v1": 6 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\AppHub\\V1": 6 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::AppHub::V1": 6 + } + } + }, + "services": [ + { + "shortName": "AppHub", + "fullName": "google.cloud.apphub.v1.AppHub", + "methods": [ + { + "shortName": "CreateApplication", + "fullName": "google.cloud.apphub.v1.AppHub.CreateApplication", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/applications" + } + ] + }, + { + "shortName": "CreateService", + "fullName": "google.cloud.apphub.v1.AppHub.CreateService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/applications/*}/services" + } + ] + }, + { + "shortName": "CreateServiceProjectAttachment", + "fullName": "google.cloud.apphub.v1.AppHub.CreateServiceProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/serviceProjectAttachments" + } + ] + }, + { + "shortName": "CreateWorkload", + "fullName": "google.cloud.apphub.v1.AppHub.CreateWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/applications/*}/workloads" + } + ] + }, + { + "shortName": "DeleteApplication", + "fullName": "google.cloud.apphub.v1.AppHub.DeleteApplication", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/applications/*}" + } + ] + }, + { + "shortName": "DeleteService", + "fullName": "google.cloud.apphub.v1.AppHub.DeleteService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/applications/*/services/*}" + } + ] + }, + { + "shortName": "DeleteServiceProjectAttachment", + "fullName": "google.cloud.apphub.v1.AppHub.DeleteServiceProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/serviceProjectAttachments/*}" + } + ] + }, + { + "shortName": "DeleteWorkload", + "fullName": "google.cloud.apphub.v1.AppHub.DeleteWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/applications/*/workloads/*}" + } + ] + }, + { + "shortName": "DetachServiceProjectAttachment", + "fullName": "google.cloud.apphub.v1.AppHub.DetachServiceProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*}:detachServiceProjectAttachment" + } + ] + }, + { + "shortName": "GetApplication", + "fullName": "google.cloud.apphub.v1.AppHub.GetApplication", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/applications/*}" + } + ] + }, + { + "shortName": "GetDiscoveredService", + "fullName": "google.cloud.apphub.v1.AppHub.GetDiscoveredService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/discoveredServices/*}" + } + ] + }, + { + "shortName": "GetDiscoveredWorkload", + "fullName": "google.cloud.apphub.v1.AppHub.GetDiscoveredWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/discoveredWorkloads/*}" + } + ] + }, + { + "shortName": "GetService", + "fullName": "google.cloud.apphub.v1.AppHub.GetService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/applications/*/services/*}" + } + ] + }, + { + "shortName": "GetServiceProjectAttachment", + "fullName": "google.cloud.apphub.v1.AppHub.GetServiceProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/serviceProjectAttachments/*}" + } + ] + }, + { + "shortName": "GetWorkload", + "fullName": "google.cloud.apphub.v1.AppHub.GetWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/applications/*/workloads/*}" + } + ] + }, + { + "shortName": "ListApplications", + "fullName": "google.cloud.apphub.v1.AppHub.ListApplications", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/applications" + } + ] + }, + { + "shortName": "ListDiscoveredServices", + "fullName": "google.cloud.apphub.v1.AppHub.ListDiscoveredServices", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/discoveredServices" + } + ] + }, + { + "shortName": "ListDiscoveredWorkloads", + "fullName": "google.cloud.apphub.v1.AppHub.ListDiscoveredWorkloads", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/discoveredWorkloads" + } + ] + }, + { + "shortName": "ListServiceProjectAttachments", + "fullName": "google.cloud.apphub.v1.AppHub.ListServiceProjectAttachments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/serviceProjectAttachments" + } + ] + }, + { + "shortName": "ListServices", + "fullName": "google.cloud.apphub.v1.AppHub.ListServices", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/applications/*}/services" + } + ] + }, + { + "shortName": "ListWorkloads", + "fullName": "google.cloud.apphub.v1.AppHub.ListWorkloads", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/applications/*}/workloads" + } + ] + }, + { + "shortName": "LookupDiscoveredService", + "fullName": "google.cloud.apphub.v1.AppHub.LookupDiscoveredService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/discoveredServices:lookup" + } + ] + }, + { + "shortName": "LookupDiscoveredWorkload", + "fullName": "google.cloud.apphub.v1.AppHub.LookupDiscoveredWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/discoveredWorkloads:lookup" + } + ] + }, + { + "shortName": "LookupServiceProjectAttachment", + "fullName": "google.cloud.apphub.v1.AppHub.LookupServiceProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*}:lookupServiceProjectAttachment" + } + ] + }, + { + "shortName": "UpdateApplication", + "fullName": "google.cloud.apphub.v1.AppHub.UpdateApplication", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{application.name=projects/*/locations/*/applications/*}" + } + ] + }, + { + "shortName": "UpdateService", + "fullName": "google.cloud.apphub.v1.AppHub.UpdateService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{service.name=projects/*/locations/*/applications/*/services/*}" + } + ] + }, + { + "shortName": "UpdateWorkload", + "fullName": "google.cloud.apphub.v1.AppHub.UpdateWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{workload.name=projects/*/locations/*/applications/*/workloads/*}" + } + ] + } + ] + } + ], + "configFile": "apphub_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.apphub.v1.AppHub", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "apphub.googleapis.com" + }, { "id": "google.cloud.asset.v1", "directory": "google/cloud/asset/v1", @@ -26525,6 +28882,112 @@ ], "nameInServiceConfig": "automl.googleapis.com" }, + { + "id": "google.cloud.backupdr.v1", + "directory": "google/cloud/backupdr/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "backupdr.googleapis.com", + "title": "Backup and DR Service API", + "description": "", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BackupDR.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.backupdr.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BackupDR\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BackupDR::V1": 1 + } + } + }, + "services": [ + { + "shortName": "BackupDR", + "fullName": "google.cloud.backupdr.v1.BackupDR", + "methods": [ + { + "shortName": "CreateManagementServer", + "fullName": "google.cloud.backupdr.v1.BackupDR.CreateManagementServer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/managementServers" + } + ] + }, + { + "shortName": "DeleteManagementServer", + "fullName": "google.cloud.backupdr.v1.BackupDR.DeleteManagementServer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/managementServers/*}" + } + ] + }, + { + "shortName": "GetManagementServer", + "fullName": "google.cloud.backupdr.v1.BackupDR.GetManagementServer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/managementServers/*}" + } + ] + }, + { + "shortName": "ListManagementServers", + "fullName": "google.cloud.backupdr.v1.BackupDR.ListManagementServers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/managementServers" + } + ] + } + ] + } + ], + "configFile": "backupdr_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.backupdr.v1.BackupDR", + "google.cloud.location.Locations", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "backupdr.googleapis.com" + }, { "id": "google.cloud.baremetalsolution.v2", "directory": "google/cloud/baremetalsolution/v2", @@ -27079,7 +29542,7 @@ "majorVersion": "v1", "hostName": "batch.googleapis.com", "title": "Batch API", - "description": "An API to manage the running of batch resources on Google Cloud Platform.", + "description": "An API to manage the running of Batch resources on Google Cloud Platform.", "importDirectories": [ "google/api", "google/cloud/batch/v1", @@ -27212,47 +29675,48 @@ "majorVersion": "v1", "hostName": "batch.googleapis.com", "title": "Batch API", - "description": "An API to manage the running of batch resources on Google Cloud Platform.", + "description": "An API to manage the running of Batch resources on Google Cloud Platform.", "importDirectories": [ "google/api", "google/cloud/batch/v1alpha", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Batch.V1Alpha": 4 + "Google.Cloud.Batch.V1Alpha": 6 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/batch/apiv1alpha/batchpb;batchpb": 4 + "cloud.google.com/go/batch/apiv1alpha/batchpb;batchpb": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 4 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.cloud.batch.v1alpha": 4 + "com.google.cloud.batch.v1alpha": 6 } }, "objc_class_prefix": { "valueCounts": { - "GCB": 4 + "GCB": 6 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Batch\\V1alpha": 4 + "Google\\Cloud\\Batch\\V1alpha": 6 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Batch::V1alpha": 4 + "Google::Cloud::Batch::V1alpha": 6 } } }, @@ -27272,6 +29736,17 @@ } ] }, + { + "shortName": "CreateResourceAllowance", + "fullName": "google.cloud.batch.v1alpha.BatchService.CreateResourceAllowance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/resourceAllowances" + } + ] + }, { "shortName": "DeleteJob", "fullName": "google.cloud.batch.v1alpha.BatchService.DeleteJob", @@ -27283,6 +29758,17 @@ } ] }, + { + "shortName": "DeleteResourceAllowance", + "fullName": "google.cloud.batch.v1alpha.BatchService.DeleteResourceAllowance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/resourceAllowances/*}" + } + ] + }, { "shortName": "GetJob", "fullName": "google.cloud.batch.v1alpha.BatchService.GetJob", @@ -27294,6 +29780,17 @@ } ] }, + { + "shortName": "GetResourceAllowance", + "fullName": "google.cloud.batch.v1alpha.BatchService.GetResourceAllowance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/resourceAllowances/*}" + } + ] + }, { "shortName": "GetTask", "fullName": "google.cloud.batch.v1alpha.BatchService.GetTask", @@ -27316,6 +29813,17 @@ } ] }, + { + "shortName": "ListResourceAllowances", + "fullName": "google.cloud.batch.v1alpha.BatchService.ListResourceAllowances", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/resourceAllowances" + } + ] + }, { "shortName": "ListTasks", "fullName": "google.cloud.batch.v1alpha.BatchService.ListTasks", @@ -27326,6 +29834,28 @@ "path": "/v1alpha/{parent=projects/*/locations/*/jobs/*/taskGroups/*}/tasks" } ] + }, + { + "shortName": "UpdateJob", + "fullName": "google.cloud.batch.v1alpha.BatchService.UpdateJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{job.name=projects/*/locations/*/jobs/*}" + } + ] + }, + { + "shortName": "UpdateResourceAllowance", + "fullName": "google.cloud.batch.v1alpha.BatchService.UpdateResourceAllowance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{resource_allowance.name=projects/*/locations/*/resourceAllowances/*}" + } + ] } ] } @@ -28053,6 +30583,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/subscriptions/*}:getIamPolicy" } ] }, @@ -28171,6 +30705,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/subscriptions/*}:setIamPolicy" } ] }, @@ -29855,27 +32393,27 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BigQuery.Migration.V2": 5 + "Google.Cloud.BigQuery.Migration.V2": 8 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb": 5 + "cloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb": 8 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 8 } }, "java_package": { "valueCounts": { - "com.google.cloud.bigquery.migration.v2": 5 + "com.google.cloud.bigquery.migration.v2": 8 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BigQuery\\Migration\\V2": 5 + "Google\\Cloud\\BigQuery\\Migration\\V2": 8 } } }, @@ -30815,6 +33353,439 @@ ], "nameInServiceConfig": "bigquerystorage.googleapis.com" }, + { + "id": "google.cloud.bigquery.v2", + "directory": "google/cloud/bigquery/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "bigquery.googleapis.com", + "title": "BigQuery API", + "description": "A data platform for customers to create, manage, share and query data.", + "importDirectories": [ + "google/api", + "google/cloud/bigquery/v2", + "google/protobuf" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb": 44 + } + }, + "java_multiple_files": { + "valueCounts": { + "": 29, + "true": 15 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.v2": 44 + } + } + }, + "services": [ + { + "shortName": "DatasetService", + "fullName": "google.cloud.bigquery.v2.DatasetService", + "methods": [ + { + "shortName": "DeleteDataset", + "fullName": "google.cloud.bigquery.v2.DatasetService.DeleteDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + } + ] + }, + { + "shortName": "GetDataset", + "fullName": "google.cloud.bigquery.v2.DatasetService.GetDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + } + ] + }, + { + "shortName": "InsertDataset", + "fullName": "google.cloud.bigquery.v2.DatasetService.InsertDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/datasets" + } + ] + }, + { + "shortName": "ListDatasets", + "fullName": "google.cloud.bigquery.v2.DatasetService.ListDatasets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets" + } + ] + }, + { + "shortName": "PatchDataset", + "fullName": "google.cloud.bigquery.v2.DatasetService.PatchDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + } + ] + }, + { + "shortName": "UndeleteDataset", + "fullName": "google.cloud.bigquery.v2.DatasetService.UndeleteDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}:undelete" + } + ] + }, + { + "shortName": "UpdateDataset", + "fullName": "google.cloud.bigquery.v2.DatasetService.UpdateDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + } + ] + } + ] + }, + { + "shortName": "JobService", + "fullName": "google.cloud.bigquery.v2.JobService", + "methods": [ + { + "shortName": "CancelJob", + "fullName": "google.cloud.bigquery.v2.JobService.CancelJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/jobs/{job_id=*}/cancel" + } + ] + }, + { + "shortName": "DeleteJob", + "fullName": "google.cloud.bigquery.v2.JobService.DeleteJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/bigquery/v2/projects/{project_id=*}/jobs/{job_id=*}/delete" + } + ] + }, + { + "shortName": "GetJob", + "fullName": "google.cloud.bigquery.v2.JobService.GetJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/jobs/{job_id=*}" + } + ] + }, + { + "shortName": "GetQueryResults", + "fullName": "google.cloud.bigquery.v2.JobService.GetQueryResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/queries/{job_id=*}" + } + ] + }, + { + "shortName": "InsertJob", + "fullName": "google.cloud.bigquery.v2.JobService.InsertJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/jobs" + } + ] + }, + { + "shortName": "ListJobs", + "fullName": "google.cloud.bigquery.v2.JobService.ListJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/jobs" + } + ] + }, + { + "shortName": "Query", + "fullName": "google.cloud.bigquery.v2.JobService.Query", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/queries" + } + ] + } + ] + }, + { + "shortName": "ModelService", + "fullName": "google.cloud.bigquery.v2.ModelService", + "methods": [ + { + "shortName": "DeleteModel", + "fullName": "google.cloud.bigquery.v2.ModelService.DeleteModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + } + ] + }, + { + "shortName": "GetModel", + "fullName": "google.cloud.bigquery.v2.ModelService.GetModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + } + ] + }, + { + "shortName": "ListModels", + "fullName": "google.cloud.bigquery.v2.ModelService.ListModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models" + } + ] + }, + { + "shortName": "PatchModel", + "fullName": "google.cloud.bigquery.v2.ModelService.PatchModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + } + ] + } + ] + }, + { + "shortName": "ProjectService", + "fullName": "google.cloud.bigquery.v2.ProjectService", + "methods": [ + { + "shortName": "GetServiceAccount", + "fullName": "google.cloud.bigquery.v2.ProjectService.GetServiceAccount", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/serviceAccount" + } + ] + } + ] + }, + { + "shortName": "RoutineService", + "fullName": "google.cloud.bigquery.v2.RoutineService", + "methods": [ + { + "shortName": "DeleteRoutine", + "fullName": "google.cloud.bigquery.v2.RoutineService.DeleteRoutine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines/{routine_id=*}" + } + ] + }, + { + "shortName": "GetRoutine", + "fullName": "google.cloud.bigquery.v2.RoutineService.GetRoutine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines/{routine_id=*}" + } + ] + }, + { + "shortName": "InsertRoutine", + "fullName": "google.cloud.bigquery.v2.RoutineService.InsertRoutine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines" + } + ] + }, + { + "shortName": "ListRoutines", + "fullName": "google.cloud.bigquery.v2.RoutineService.ListRoutines", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines" + } + ] + }, + { + "shortName": "PatchRoutine", + "fullName": "google.cloud.bigquery.v2.RoutineService.PatchRoutine", + "mode": "UNARY" + }, + { + "shortName": "UpdateRoutine", + "fullName": "google.cloud.bigquery.v2.RoutineService.UpdateRoutine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines/{routine_id=*}" + } + ] + } + ] + }, + { + "shortName": "RowAccessPolicyService", + "fullName": "google.cloud.bigquery.v2.RowAccessPolicyService", + "methods": [ + { + "shortName": "ListRowAccessPolicies", + "fullName": "google.cloud.bigquery.v2.RowAccessPolicyService.ListRowAccessPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}/rowAccessPolicies" + } + ] + } + ] + }, + { + "shortName": "TableService", + "fullName": "google.cloud.bigquery.v2.TableService", + "methods": [ + { + "shortName": "DeleteTable", + "fullName": "google.cloud.bigquery.v2.TableService.DeleteTable", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + } + ] + }, + { + "shortName": "GetTable", + "fullName": "google.cloud.bigquery.v2.TableService.GetTable", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + } + ] + }, + { + "shortName": "InsertTable", + "fullName": "google.cloud.bigquery.v2.TableService.InsertTable", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables" + } + ] + }, + { + "shortName": "ListTables", + "fullName": "google.cloud.bigquery.v2.TableService.ListTables", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables" + } + ] + }, + { + "shortName": "PatchTable", + "fullName": "google.cloud.bigquery.v2.TableService.PatchTable", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + } + ] + }, + { + "shortName": "UpdateTable", + "fullName": "google.cloud.bigquery.v2.TableService.UpdateTable", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + } + ] + } + ] + } + ], + "configFile": "bigquery_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.v2.DatasetService", + "google.cloud.bigquery.v2.JobService", + "google.cloud.bigquery.v2.ModelService", + "google.cloud.bigquery.v2.ProjectService", + "google.cloud.bigquery.v2.RoutineService", + "google.cloud.bigquery.v2.RowAccessPolicyService", + "google.cloud.bigquery.v2.TableService" + ], + "nameInServiceConfig": "bigquery.googleapis.com" + }, { "id": "google.cloud.billing.budgets.v1", "directory": "google/cloud/billing/budgets/v1", @@ -31579,6 +34550,122 @@ ], "nameInServiceConfig": "binaryauthorization.googleapis.com" }, + { + "id": "google.cloud.blockchainnodeengine.v1", + "directory": "google/cloud/blockchainnodeengine/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "blockchainnodeengine.googleapis.com", + "title": "Blockchain Node Engine API", + "description": "", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BlockchainNodeEngine.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/blockchainnodeengine/apiv1/blockchainnodeenginepb;blockchainnodeenginepb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.blockchainnodeengine.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BlockchainNodeEngine\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::BlockchainNodeEngine::V1": 1 + } + } + }, + "services": [ + { + "shortName": "BlockchainNodeEngine", + "fullName": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", + "methods": [ + { + "shortName": "CreateBlockchainNode", + "fullName": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine.CreateBlockchainNode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/blockchainNodes" + } + ] + }, + { + "shortName": "DeleteBlockchainNode", + "fullName": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine.DeleteBlockchainNode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/blockchainNodes/*}" + } + ] + }, + { + "shortName": "GetBlockchainNode", + "fullName": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine.GetBlockchainNode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/blockchainNodes/*}" + } + ] + }, + { + "shortName": "ListBlockchainNodes", + "fullName": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine.ListBlockchainNodes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/blockchainNodes" + } + ] + }, + { + "shortName": "UpdateBlockchainNode", + "fullName": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine.UpdateBlockchainNode", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{blockchain_node.name=projects/*/locations/*/blockchainNodes/*}" + } + ] + } + ] + } + ], + "configFile": "blockchainnodeengine_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "blockchainnodeengine.googleapis.com" + }, { "id": "google.cloud.certificatemanager.v1", "directory": "google/cloud/certificatemanager/v1", @@ -31596,32 +34683,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.CertificateManager.V1": 2 + "Google.Cloud.CertificateManager.V1": 3 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/certificatemanager/apiv1/certificatemanagerpb;certificatemanagerpb": 2 + "cloud.google.com/go/certificatemanager/apiv1/certificatemanagerpb;certificatemanagerpb": 3 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 3 } }, "java_package": { "valueCounts": { - "com.google.cloud.certificatemanager.v1": 2 + "com.google.cloud.certificatemanager.v1": 3 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\CertificateManager\\V1": 2 + "Google\\Cloud\\CertificateManager\\V1": 3 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::CertificateManager::V1": 2 + "Google::Cloud::CertificateManager::V1": 3 } } }, @@ -31685,6 +34772,17 @@ } ] }, + { + "shortName": "CreateTrustConfig", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.CreateTrustConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/trustConfigs" + } + ] + }, { "shortName": "DeleteCertificate", "fullName": "google.cloud.certificatemanager.v1.CertificateManager.DeleteCertificate", @@ -31740,6 +34838,17 @@ } ] }, + { + "shortName": "DeleteTrustConfig", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.DeleteTrustConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/trustConfigs/*}" + } + ] + }, { "shortName": "GetCertificate", "fullName": "google.cloud.certificatemanager.v1.CertificateManager.GetCertificate", @@ -31795,6 +34904,17 @@ } ] }, + { + "shortName": "GetTrustConfig", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.GetTrustConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/trustConfigs/*}" + } + ] + }, { "shortName": "ListCertificateIssuanceConfigs", "fullName": "google.cloud.certificatemanager.v1.CertificateManager.ListCertificateIssuanceConfigs", @@ -31850,6 +34970,17 @@ } ] }, + { + "shortName": "ListTrustConfigs", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.ListTrustConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/trustConfigs" + } + ] + }, { "shortName": "UpdateCertificate", "fullName": "google.cloud.certificatemanager.v1.CertificateManager.UpdateCertificate", @@ -31893,6 +35024,17 @@ "path": "/v1/{dns_authorization.name=projects/*/locations/*/dnsAuthorizations/*}" } ] + }, + { + "shortName": "UpdateTrustConfig", + "fullName": "google.cloud.certificatemanager.v1.CertificateManager.UpdateTrustConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{trust_config.name=projects/*/locations/*/trustConfigs/*}" + } + ] } ] } @@ -32555,6 +35697,183 @@ ], "nameInServiceConfig": "cloudchannel.googleapis.com" }, + { + "id": "google.cloud.cloudcontrolspartner.v1", + "directory": "google/cloud/cloudcontrolspartner/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "cloudcontrolspartner.googleapis.com", + "title": "Cloud Controls Partner API", + "description": "Provides insights about your customers and their Assured Workloads based on your Sovereign Controls by Partners offering.", + "importDirectories": [ + "google/api", + "google/cloud/cloudcontrolspartner/v1", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.CloudControlsPartner.V1": 10 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb": 10 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 10 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.cloudcontrolspartner.v1": 10 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\CloudControlsPartner\\V1": 10 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::CloudControlsPartner::V1": 10 + } + } + }, + "services": [ + { + "shortName": "CloudControlsPartnerCore", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", + "methods": [ + { + "shortName": "GetCustomer", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.GetCustomer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/customers/*}" + } + ] + }, + { + "shortName": "GetEkmConnections", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.GetEkmConnections", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/customers/*/workloads/*/ekmConnections}" + } + ] + }, + { + "shortName": "GetPartner", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.GetPartner", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/partner}" + } + ] + }, + { + "shortName": "GetPartnerPermissions", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.GetPartnerPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/customers/*/workloads/*/partnerPermissions}" + } + ] + }, + { + "shortName": "GetWorkload", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.GetWorkload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/customers/*/workloads/*}" + } + ] + }, + { + "shortName": "ListAccessApprovalRequests", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.ListAccessApprovalRequests", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*/customers/*/workloads/*}/accessApprovalRequests" + } + ] + }, + { + "shortName": "ListCustomers", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.ListCustomers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/customers" + } + ] + }, + { + "shortName": "ListWorkloads", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.ListWorkloads", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*/customers/*}/workloads" + } + ] + } + ] + }, + { + "shortName": "CloudControlsPartnerMonitoring", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring", + "methods": [ + { + "shortName": "GetViolation", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring.GetViolation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/customers/*/workloads/*/violations/*}" + } + ] + }, + { + "shortName": "ListViolations", + "fullName": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring.ListViolations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*/customers/*/workloads/*}/violations" + } + ] + } + ] + } + ], + "configFile": "cloudcontrolspartner_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", + "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring" + ], + "nameInServiceConfig": "cloudcontrolspartner.googleapis.com" + }, { "id": "google.cloud.cloudcontrolspartner.v1beta", "directory": "google/cloud/cloudcontrolspartner/v1beta", @@ -35302,6 +38621,67 @@ } ] }, + { + "shortName": "InstanceGroupManagerResizeRequests", + "fullName": "google.cloud.compute.v1.InstanceGroupManagerResizeRequests", + "methods": [ + { + "shortName": "Cancel", + "fullName": "google.cloud.compute.v1.InstanceGroupManagerResizeRequests.Cancel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}/cancel" + } + ] + }, + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.InstanceGroupManagerResizeRequests.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}" + } + ] + }, + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InstanceGroupManagerResizeRequests.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.InstanceGroupManagerResizeRequests.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.InstanceGroupManagerResizeRequests.List", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests" + } + ] + } + ] + }, { "shortName": "InstanceGroupManagers", "fullName": "google.cloud.compute.v1.InstanceGroupManagers", @@ -35633,6 +39013,34 @@ } ] }, + { + "shortName": "InstanceSettingsService", + "fullName": "google.cloud.compute.v1.InstanceSettingsService", + "methods": [ + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InstanceSettingsService.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceSettings" + } + ] + }, + { + "shortName": "Patch", + "fullName": "google.cloud.compute.v1.InstanceSettingsService.Patch", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/instanceSettings" + } + ] + } + ] + }, { "shortName": "InstanceTemplates", "fullName": "google.cloud.compute.v1.InstanceTemplates", @@ -36261,6 +39669,111 @@ } ] }, + { + "shortName": "InstantSnapshots", + "fullName": "google.cloud.compute.v1.InstantSnapshots", + "methods": [ + { + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.InstantSnapshots.AggregatedList", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/instantSnapshots" + } + ] + }, + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.InstantSnapshots.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}" + } + ] + }, + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.InstantSnapshots.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.InstantSnapshots.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.InstantSnapshots.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.InstantSnapshots.List", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.InstantSnapshots.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy" + } + ] + }, + { + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.InstantSnapshots.SetLabels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.InstantSnapshots.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions" + } + ] + } + ] + }, { "shortName": "InterconnectAttachments", "fullName": "google.cloud.compute.v1.InterconnectAttachments", @@ -37421,6 +40934,17 @@ } ] }, + { + "shortName": "PerformMaintenance", + "fullName": "google.cloud.compute.v1.NodeGroups.PerformMaintenance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/performMaintenance" + } + ] + }, { "shortName": "SetIamPolicy", "fullName": "google.cloud.compute.v1.NodeGroups.SetIamPolicy", @@ -37797,6 +41321,17 @@ } ] }, + { + "shortName": "SetCloudArmorTier", + "fullName": "google.cloud.compute.v1.Projects.SetCloudArmorTier", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/setCloudArmorTier" + } + ] + }, { "shortName": "SetCommonInstanceMetadata", "fullName": "google.cloud.compute.v1.Projects.SetCommonInstanceMetadata", @@ -38966,6 +42501,100 @@ } ] }, + { + "shortName": "RegionInstantSnapshots", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots", + "methods": [ + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}" + } + ] + }, + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.List", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy" + } + ] + }, + { + "shortName": "SetLabels", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.SetLabels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.RegionInstantSnapshots.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions" + } + ] + } + ] + }, { "shortName": "RegionNetworkEndpointGroups", "fullName": "google.cloud.compute.v1.RegionNetworkEndpointGroups", @@ -40798,6 +44427,161 @@ } ] }, + { + "shortName": "StoragePoolTypes", + "fullName": "google.cloud.compute.v1.StoragePoolTypes", + "methods": [ + { + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.StoragePoolTypes.AggregatedList", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/storagePoolTypes" + } + ] + }, + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.StoragePoolTypes.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePoolTypes/{storage_pool_type}" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.StoragePoolTypes.List", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePoolTypes" + } + ] + } + ] + }, + { + "shortName": "StoragePools", + "fullName": "google.cloud.compute.v1.StoragePools", + "methods": [ + { + "shortName": "AggregatedList", + "fullName": "google.cloud.compute.v1.StoragePools.AggregatedList", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/aggregated/storagePools" + } + ] + }, + { + "shortName": "Delete", + "fullName": "google.cloud.compute.v1.StoragePools.Delete", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}" + } + ] + }, + { + "shortName": "Get", + "fullName": "google.cloud.compute.v1.StoragePools.Get", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.compute.v1.StoragePools.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy" + } + ] + }, + { + "shortName": "Insert", + "fullName": "google.cloud.compute.v1.StoragePools.Insert", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools" + } + ] + }, + { + "shortName": "List", + "fullName": "google.cloud.compute.v1.StoragePools.List", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools" + } + ] + }, + { + "shortName": "ListDisks", + "fullName": "google.cloud.compute.v1.StoragePools.ListDisks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}/listDisks" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.compute.v1.StoragePools.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.compute.v1.StoragePools.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions" + } + ] + }, + { + "shortName": "Update", + "fullName": "google.cloud.compute.v1.StoragePools.Update", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}" + } + ] + } + ] + }, { "shortName": "Subnetworks", "fullName": "google.cloud.compute.v1.Subnetworks", @@ -42600,6 +46384,17 @@ } ] }, + { + "shortName": "GetTerraformVersion", + "fullName": "google.cloud.config.v1.Config.GetTerraformVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/terraformVersions/*}" + } + ] + }, { "shortName": "ImportStatefile", "fullName": "google.cloud.config.v1.Config.ImportStatefile", @@ -42655,6 +46450,17 @@ } ] }, + { + "shortName": "ListTerraformVersions", + "fullName": "google.cloud.config.v1.Config.ListTerraformVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/terraformVersions" + } + ] + }, { "shortName": "LockDeployment", "fullName": "google.cloud.config.v1.Config.LockDeployment", @@ -47256,23 +51062,289 @@ "google/protobuf" ], "options": { + "csharp_namespace": { + "valueCounts": { + "": 13, + "Google.Cloud.Dataplex.V1": 1 + } + }, "go_package": { "valueCounts": { - "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb": 13 + "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb": 14 } }, "java_multiple_files": { "valueCounts": { - "true": 13 + "true": 14 } }, "java_package": { "valueCounts": { - "com.google.cloud.dataplex.v1": 13 + "com.google.cloud.dataplex.v1": 14 + } + }, + "php_namespace": { + "valueCounts": { + "": 13, + "Google\\Cloud\\Dataplex\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "": 13, + "Google::Cloud::Dataplex::V1": 1 } } }, "services": [ + { + "shortName": "CatalogService", + "fullName": "google.cloud.dataplex.v1.CatalogService", + "methods": [ + { + "shortName": "CreateAspectType", + "fullName": "google.cloud.dataplex.v1.CatalogService.CreateAspectType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/aspectTypes" + } + ] + }, + { + "shortName": "CreateEntry", + "fullName": "google.cloud.dataplex.v1.CatalogService.CreateEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" + } + ] + }, + { + "shortName": "CreateEntryGroup", + "fullName": "google.cloud.dataplex.v1.CatalogService.CreateEntryGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/entryGroups" + } + ] + }, + { + "shortName": "CreateEntryType", + "fullName": "google.cloud.dataplex.v1.CatalogService.CreateEntryType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/entryTypes" + } + ] + }, + { + "shortName": "DeleteAspectType", + "fullName": "google.cloud.dataplex.v1.CatalogService.DeleteAspectType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/aspectTypes/*}" + } + ] + }, + { + "shortName": "DeleteEntry", + "fullName": "google.cloud.dataplex.v1.CatalogService.DeleteEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}" + } + ] + }, + { + "shortName": "DeleteEntryGroup", + "fullName": "google.cloud.dataplex.v1.CatalogService.DeleteEntryGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*}" + } + ] + }, + { + "shortName": "DeleteEntryType", + "fullName": "google.cloud.dataplex.v1.CatalogService.DeleteEntryType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entryTypes/*}" + } + ] + }, + { + "shortName": "GetAspectType", + "fullName": "google.cloud.dataplex.v1.CatalogService.GetAspectType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/aspectTypes/*}" + } + ] + }, + { + "shortName": "GetEntry", + "fullName": "google.cloud.dataplex.v1.CatalogService.GetEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}" + } + ] + }, + { + "shortName": "GetEntryGroup", + "fullName": "google.cloud.dataplex.v1.CatalogService.GetEntryGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entryGroups/*}" + } + ] + }, + { + "shortName": "GetEntryType", + "fullName": "google.cloud.dataplex.v1.CatalogService.GetEntryType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entryTypes/*}" + } + ] + }, + { + "shortName": "ListAspectTypes", + "fullName": "google.cloud.dataplex.v1.CatalogService.ListAspectTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/aspectTypes" + } + ] + }, + { + "shortName": "ListEntries", + "fullName": "google.cloud.dataplex.v1.CatalogService.ListEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" + } + ] + }, + { + "shortName": "ListEntryGroups", + "fullName": "google.cloud.dataplex.v1.CatalogService.ListEntryGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/entryGroups" + } + ] + }, + { + "shortName": "ListEntryTypes", + "fullName": "google.cloud.dataplex.v1.CatalogService.ListEntryTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/entryTypes" + } + ] + }, + { + "shortName": "LookupEntry", + "fullName": "google.cloud.dataplex.v1.CatalogService.LookupEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*}:lookupEntry" + } + ] + }, + { + "shortName": "SearchEntries", + "fullName": "google.cloud.dataplex.v1.CatalogService.SearchEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*}:searchEntries" + } + ] + }, + { + "shortName": "UpdateAspectType", + "fullName": "google.cloud.dataplex.v1.CatalogService.UpdateAspectType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}" + } + ] + }, + { + "shortName": "UpdateEntry", + "fullName": "google.cloud.dataplex.v1.CatalogService.UpdateEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}" + } + ] + }, + { + "shortName": "UpdateEntryGroup", + "fullName": "google.cloud.dataplex.v1.CatalogService.UpdateEntryGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}" + } + ] + }, + { + "shortName": "UpdateEntryType", + "fullName": "google.cloud.dataplex.v1.CatalogService.UpdateEntryType", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}" + } + ] + } + ] + }, { "shortName": "ContentService", "fullName": "google.cloud.dataplex.v1.ContentService", @@ -47425,6 +51497,21 @@ } ] }, + { + "shortName": "GenerateDataQualityRules", + "fullName": "google.cloud.dataplex.v1.DataScanService.GenerateDataQualityRules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/dataScans/*}:generateDataQualityRules" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:generateDataQualityRules" + } + ] + }, { "shortName": "GetDataScan", "fullName": "google.cloud.dataplex.v1.DataScanService.GetDataScan", @@ -48141,6 +52228,7 @@ ], "configFile": "dataplex_v1.yaml", "serviceConfigApiNames": [ + "google.cloud.dataplex.v1.CatalogService", "google.cloud.dataplex.v1.ContentService", "google.cloud.dataplex.v1.DataScanService", "google.cloud.dataplex.v1.DataTaxonomyService", @@ -50032,6 +54120,226 @@ ], "nameInServiceConfig": "clouddeploy.googleapis.com" }, + { + "id": "google.cloud.developerconnect.v1", + "directory": "google/cloud/developerconnect/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "developerconnect.googleapis.com", + "title": "Developer Connect API", + "description": "Connect third-party source code management to Google", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.DeveloperConnect.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/developerconnect/apiv1/developerconnectpb;developerconnectpb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.developerconnect.v1": 1 + } + }, + "objc_class_prefix": { + "valueCounts": { + "DeveloperConnect": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\DeveloperConnect\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::DeveloperConnect::V1": 1 + } + } + }, + "services": [ + { + "shortName": "DeveloperConnect", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect", + "methods": [ + { + "shortName": "CreateConnection", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.CreateConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/connections" + } + ] + }, + { + "shortName": "CreateGitRepositoryLink", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.CreateGitRepositoryLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/connections/*}/gitRepositoryLinks" + } + ] + }, + { + "shortName": "DeleteConnection", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.DeleteConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/connections/*}" + } + ] + }, + { + "shortName": "DeleteGitRepositoryLink", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.DeleteGitRepositoryLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/connections/*/gitRepositoryLinks/*}" + } + ] + }, + { + "shortName": "FetchGitHubInstallations", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.FetchGitHubInstallations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{connection=projects/*/locations/*/connections/*}:fetchGitHubInstallations" + } + ] + }, + { + "shortName": "FetchGitRefs", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.FetchGitRefs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchGitRefs" + } + ] + }, + { + "shortName": "FetchLinkableGitRepositories", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.FetchLinkableGitRepositories", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{connection=projects/*/locations/*/connections/*}:fetchLinkableGitRepositories" + } + ] + }, + { + "shortName": "FetchReadToken", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.FetchReadToken", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchReadToken" + } + ] + }, + { + "shortName": "FetchReadWriteToken", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.FetchReadWriteToken", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchReadWriteToken" + } + ] + }, + { + "shortName": "GetConnection", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.GetConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/connections/*}" + } + ] + }, + { + "shortName": "GetGitRepositoryLink", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.GetGitRepositoryLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/connections/*/gitRepositoryLinks/*}" + } + ] + }, + { + "shortName": "ListConnections", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.ListConnections", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/connections" + } + ] + }, + { + "shortName": "ListGitRepositoryLinks", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.ListGitRepositoryLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/connections/*}/gitRepositoryLinks" + } + ] + }, + { + "shortName": "UpdateConnection", + "fullName": "google.cloud.developerconnect.v1.DeveloperConnect.UpdateConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{connection.name=projects/*/locations/*/connections/*}" + } + ] + } + ] + } + ], + "configFile": "developerconnect_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.developerconnect.v1.DeveloperConnect", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "developerconnect.googleapis.com" + }, { "id": "google.cloud.dialogflow.cx.v3", "directory": "google/cloud/dialogflow/cx/v3", @@ -51492,38 +55800,38 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 33 + "true": 34 } }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Dialogflow.Cx.V3Beta1": 33 + "Google.Cloud.Dialogflow.Cx.V3Beta1": 34 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/dialogflow/cx/apiv3beta1/cxpb;cxpb": 33 + "cloud.google.com/go/dialogflow/cx/apiv3beta1/cxpb;cxpb": 34 } }, "java_multiple_files": { "valueCounts": { - "true": 33 + "true": 34 } }, "java_package": { "valueCounts": { - "com.google.cloud.dialogflow.cx.v3beta1": 33 + "com.google.cloud.dialogflow.cx.v3beta1": 34 } }, "objc_class_prefix": { "valueCounts": { - "DF": 33 + "DF": 34 } }, "ruby_package": { "valueCounts": { "": 3, - "Google::Cloud::Dialogflow::CX::V3beta1": 30 + "Google::Cloud::Dialogflow::CX::V3beta1": 31 } } }, @@ -51683,6 +55991,45 @@ } ] }, + { + "shortName": "ConversationHistory", + "fullName": "google.cloud.dialogflow.cx.v3beta1.ConversationHistory", + "methods": [ + { + "shortName": "DeleteConversation", + "fullName": "google.cloud.dialogflow.cx.v3beta1.ConversationHistory.DeleteConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/conversations/*}" + } + ] + }, + { + "shortName": "GetConversation", + "fullName": "google.cloud.dialogflow.cx.v3beta1.ConversationHistory.GetConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{name=projects/*/locations/*/agents/*/conversations/*}" + } + ] + }, + { + "shortName": "ListConversations", + "fullName": "google.cloud.dialogflow.cx.v3beta1.ConversationHistory.ListConversations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3beta1/{parent=projects/*/locations/*/agents/*}/conversations" + } + ] + } + ] + }, { "shortName": "Deployments", "fullName": "google.cloud.dialogflow.cx.v3beta1.Deployments", @@ -53133,6 +57480,7 @@ "serviceConfigApiNames": [ "google.cloud.dialogflow.cx.v3beta1.Agents", "google.cloud.dialogflow.cx.v3beta1.Changelogs", + "google.cloud.dialogflow.cx.v3beta1.ConversationHistory", "google.cloud.dialogflow.cx.v3beta1.Deployments", "google.cloud.dialogflow.cx.v3beta1.EntityTypes", "google.cloud.dialogflow.cx.v3beta1.Environments", @@ -56750,37 +61098,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DiscoveryEngine.V1": 20 + "Google.Cloud.DiscoveryEngine.V1": 32 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb": 20 + "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb": 32 } }, "java_multiple_files": { "valueCounts": { - "true": 20 + "true": 32 } }, "java_package": { "valueCounts": { - "com.google.cloud.discoveryengine.v1": 20 + "com.google.cloud.discoveryengine.v1": 32 } }, "objc_class_prefix": { "valueCounts": { - "DISCOVERYENGINE": 20 + "DISCOVERYENGINE": 32 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DiscoveryEngine\\V1": 20 + "Google\\Cloud\\DiscoveryEngine\\V1": 32 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DiscoveryEngine::V1": 20 + "Google::Cloud::DiscoveryEngine::V1": 32 } } }, @@ -56804,6 +61152,21 @@ } ] }, + { + "shortName": "ImportCompletionSuggestions", + "fullName": "google.cloud.discoveryengine.v1.CompletionService.ImportCompletionSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:import" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:import" + } + ] + }, { "shortName": "ImportSuggestionDenyListEntries", "fullName": "google.cloud.discoveryengine.v1.CompletionService.ImportSuggestionDenyListEntries", @@ -56819,6 +61182,21 @@ } ] }, + { + "shortName": "PurgeCompletionSuggestions", + "fullName": "google.cloud.discoveryengine.v1.CompletionService.PurgeCompletionSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:purge" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:purge" + } + ] + }, { "shortName": "PurgeSuggestionDenyListEntries", "fullName": "google.cloud.discoveryengine.v1.CompletionService.PurgeSuggestionDenyListEntries", @@ -56836,10 +61214,130 @@ } ] }, + { + "shortName": "ControlService", + "fullName": "google.cloud.discoveryengine.v1.ControlService", + "methods": [ + { + "shortName": "CreateControl", + "fullName": "google.cloud.discoveryengine.v1.ControlService.CreateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/controls" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + ] + }, + { + "shortName": "DeleteControl", + "fullName": "google.cloud.discoveryengine.v1.ControlService.DeleteControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + }, + { + "shortName": "GetControl", + "fullName": "google.cloud.discoveryengine.v1.ControlService.GetControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + }, + { + "shortName": "ListControls", + "fullName": "google.cloud.discoveryengine.v1.ControlService.ListControls", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/controls" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + ] + }, + { + "shortName": "UpdateControl", + "fullName": "google.cloud.discoveryengine.v1.ControlService.UpdateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{control.name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{control.name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{control.name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + } + ] + }, { "shortName": "ConversationalSearchService", "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService", "methods": [ + { + "shortName": "AnswerQuery", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.AnswerQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:answer" + }, + { + "httpMethod": "POST", + "path": "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:answer" + }, + { + "httpMethod": "POST", + "path": "/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:answer" + } + ] + }, { "shortName": "ConverseConversation", "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.ConverseConversation", @@ -56878,6 +61376,25 @@ } ] }, + { + "shortName": "CreateSession", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.CreateSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/sessions" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + ] + }, { "shortName": "DeleteConversation", "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.DeleteConversation", @@ -56897,6 +61414,44 @@ } ] }, + { + "shortName": "DeleteSession", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.DeleteSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] + }, + { + "shortName": "GetAnswer", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.GetAnswer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*/answers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*/answers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/answers/*}" + } + ] + }, { "shortName": "GetConversation", "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.GetConversation", @@ -56916,6 +61471,25 @@ } ] }, + { + "shortName": "GetSession", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.GetSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] + }, { "shortName": "ListConversations", "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.ListConversations", @@ -56935,6 +61509,25 @@ } ] }, + { + "shortName": "ListSessions", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.ListSessions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/sessions" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + ] + }, { "shortName": "UpdateConversation", "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.UpdateConversation", @@ -56953,6 +61546,25 @@ "path": "/v1/{conversation.name=projects/*/locations/*/collections/*/engines/*/conversations/*}" } ] + }, + { + "shortName": "UpdateSession", + "fullName": "google.cloud.discoveryengine.v1.ConversationalSearchService.UpdateSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{session.name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] } ] }, @@ -57209,6 +61821,82 @@ } ] }, + { + "shortName": "GroundedGenerationService", + "fullName": "google.cloud.discoveryengine.v1.GroundedGenerationService", + "methods": [ + { + "shortName": "CheckGrounding", + "fullName": "google.cloud.discoveryengine.v1.GroundedGenerationService.CheckGrounding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" + } + ] + } + ] + }, + { + "shortName": "ProjectService", + "fullName": "google.cloud.discoveryengine.v1.ProjectService", + "methods": [ + { + "shortName": "ProvisionProject", + "fullName": "google.cloud.discoveryengine.v1.ProjectService.ProvisionProject", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*}:provision" + } + ] + } + ] + }, + { + "shortName": "RankService", + "fullName": "google.cloud.discoveryengine.v1.RankService", + "methods": [ + { + "shortName": "Rank", + "fullName": "google.cloud.discoveryengine.v1.RankService.Rank", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{ranking_config=projects/*/locations/*/rankingConfigs/*}:rank" + } + ] + } + ] + }, + { + "shortName": "RecommendationService", + "fullName": "google.cloud.discoveryengine.v1.RecommendationService", + "methods": [ + { + "shortName": "Recommend", + "fullName": "google.cloud.discoveryengine.v1.RecommendationService.Recommend", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:recommend" + }, + { + "httpMethod": "POST", + "path": "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:recommend" + }, + { + "httpMethod": "POST", + "path": "/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:recommend" + } + ] + } + ] + }, { "shortName": "SchemaService", "fullName": "google.cloud.discoveryengine.v1.SchemaService", @@ -57509,6 +62197,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/userEvents:collect" } ] }, @@ -57539,6 +62231,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/userEvents:write" } ] } @@ -57548,10 +62244,15 @@ "configFile": "discoveryengine_v1.yaml", "serviceConfigApiNames": [ "google.cloud.discoveryengine.v1.CompletionService", + "google.cloud.discoveryengine.v1.ControlService", "google.cloud.discoveryengine.v1.ConversationalSearchService", "google.cloud.discoveryengine.v1.DataStoreService", "google.cloud.discoveryengine.v1.DocumentService", "google.cloud.discoveryengine.v1.EngineService", + "google.cloud.discoveryengine.v1.GroundedGenerationService", + "google.cloud.discoveryengine.v1.ProjectService", + "google.cloud.discoveryengine.v1.RankService", + "google.cloud.discoveryengine.v1.RecommendationService", "google.cloud.discoveryengine.v1.SchemaService", "google.cloud.discoveryengine.v1.SearchService", "google.cloud.discoveryengine.v1.SiteSearchEngineService", @@ -57580,41 +62281,105 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DiscoveryEngine.V1Alpha": 21 + "Google.Cloud.DiscoveryEngine.V1Alpha": 40 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb": 21 + "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb": 40 } }, "java_multiple_files": { "valueCounts": { - "true": 21 + "true": 40 } }, "java_package": { "valueCounts": { - "com.google.cloud.discoveryengine.v1alpha": 21 + "com.google.cloud.discoveryengine.v1alpha": 40 } }, "objc_class_prefix": { "valueCounts": { - "DISCOVERYENGINE": 21 + "DISCOVERYENGINE": 40 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DiscoveryEngine\\V1alpha": 21 + "Google\\Cloud\\DiscoveryEngine\\V1alpha": 40 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DiscoveryEngine::V1alpha": 21 + "Google::Cloud::DiscoveryEngine::V1alpha": 40 } } }, "services": [ + { + "shortName": "AclConfigService", + "fullName": "google.cloud.discoveryengine.v1alpha.AclConfigService", + "methods": [ + { + "shortName": "GetAclConfig", + "fullName": "google.cloud.discoveryengine.v1alpha.AclConfigService.GetAclConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/aclConfig}" + } + ] + }, + { + "shortName": "UpdateAclConfig", + "fullName": "google.cloud.discoveryengine.v1alpha.AclConfigService.UpdateAclConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{acl_config.name=projects/*/locations/*/aclConfig}" + } + ] + } + ] + }, + { + "shortName": "ChunkService", + "fullName": "google.cloud.discoveryengine.v1alpha.ChunkService", + "methods": [ + { + "shortName": "GetChunk", + "fullName": "google.cloud.discoveryengine.v1alpha.ChunkService.GetChunk", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*/chunks/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*/chunks/*}" + } + ] + }, + { + "shortName": "ListChunks", + "fullName": "google.cloud.discoveryengine.v1alpha.ChunkService.ListChunks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*/branches/*/documents/*}/chunks" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}/chunks" + } + ] + } + ] + }, { "shortName": "CompletionService", "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService", @@ -57633,6 +62398,137 @@ "path": "/v1alpha/{data_store=projects/*/locations/*/collections/*/dataStores/*}:completeQuery" } ] + }, + { + "shortName": "ImportSuggestionDenyListEntries", + "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService.ImportSuggestionDenyListEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/suggestionDenyListEntries:import" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/suggestionDenyListEntries:import" + } + ] + }, + { + "shortName": "PurgeSuggestionDenyListEntries", + "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService.PurgeSuggestionDenyListEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/suggestionDenyListEntries:purge" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/**}/suggestionDenyListEntries:purge" + } + ] + } + ] + }, + { + "shortName": "ControlService", + "fullName": "google.cloud.discoveryengine.v1alpha.ControlService", + "methods": [ + { + "shortName": "CreateControl", + "fullName": "google.cloud.discoveryengine.v1alpha.ControlService.CreateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/controls" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + ] + }, + { + "shortName": "DeleteControl", + "fullName": "google.cloud.discoveryengine.v1alpha.ControlService.DeleteControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + }, + { + "shortName": "GetControl", + "fullName": "google.cloud.discoveryengine.v1alpha.ControlService.GetControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + }, + { + "shortName": "ListControls", + "fullName": "google.cloud.discoveryengine.v1alpha.ControlService.ListControls", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/controls" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + ] + }, + { + "shortName": "UpdateControl", + "fullName": "google.cloud.discoveryengine.v1alpha.ControlService.UpdateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{control.name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{control.name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{control.name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] } ] }, @@ -57640,6 +62536,25 @@ "shortName": "ConversationalSearchService", "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService", "methods": [ + { + "shortName": "AnswerQuery", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.AnswerQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:answer" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:answer" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:answer" + } + ] + }, { "shortName": "ConverseConversation", "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.ConverseConversation", @@ -57678,6 +62593,25 @@ } ] }, + { + "shortName": "CreateSession", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.CreateSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/sessions" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + ] + }, { "shortName": "DeleteConversation", "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.DeleteConversation", @@ -57697,6 +62631,44 @@ } ] }, + { + "shortName": "DeleteSession", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.DeleteSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] + }, + { + "shortName": "GetAnswer", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetAnswer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/sessions/*/answers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*/answers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/answers/*}" + } + ] + }, { "shortName": "GetConversation", "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetConversation", @@ -57716,6 +62688,25 @@ } ] }, + { + "shortName": "GetSession", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] + }, { "shortName": "ListConversations", "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.ListConversations", @@ -57735,6 +62726,25 @@ } ] }, + { + "shortName": "ListSessions", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.ListSessions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/sessions" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + ] + }, { "shortName": "UpdateConversation", "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.UpdateConversation", @@ -57753,6 +62763,25 @@ "path": "/v1alpha/{conversation.name=projects/*/locations/*/collections/*/engines/*/conversations/*}" } ] + }, + { + "shortName": "UpdateSession", + "fullName": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService.UpdateSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{session.name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] } ] }, @@ -57805,6 +62834,21 @@ } ] }, + { + "shortName": "GetDocumentProcessingConfig", + "fullName": "google.cloud.discoveryengine.v1alpha.DataStoreService.GetDocumentProcessingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/documentProcessingConfig}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig}" + } + ] + }, { "shortName": "ListDataStores", "fullName": "google.cloud.discoveryengine.v1alpha.DataStoreService.ListDataStores", @@ -57834,6 +62878,21 @@ "path": "/v1alpha/{data_store.name=projects/*/locations/*/collections/*/dataStores/*}" } ] + }, + { + "shortName": "UpdateDocumentProcessingConfig", + "fullName": "google.cloud.discoveryengine.v1alpha.DataStoreService.UpdateDocumentProcessingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{document_processing_config.name=projects/*/locations/*/dataStores/*/documentProcessingConfig}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{document_processing_config.name=projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig}" + } + ] } ] }, @@ -57886,6 +62945,21 @@ } ] }, + { + "shortName": "GetProcessedDocument", + "fullName": "google.cloud.discoveryengine.v1alpha.DocumentService.GetProcessedDocument", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}:getProcessedDocument" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}:getProcessedDocument" + } + ] + }, { "shortName": "ImportDocuments", "fullName": "google.cloud.discoveryengine.v1alpha.DocumentService.ImportDocuments", @@ -58042,6 +63116,96 @@ } ] }, + { + "shortName": "EstimateBillingService", + "fullName": "google.cloud.discoveryengine.v1alpha.EstimateBillingService", + "methods": [ + { + "shortName": "EstimateDataSize", + "fullName": "google.cloud.discoveryengine.v1alpha.EstimateBillingService.EstimateDataSize", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{location=projects/*/locations/*}:estimateDataSize" + } + ] + } + ] + }, + { + "shortName": "GroundedGenerationService", + "fullName": "google.cloud.discoveryengine.v1alpha.GroundedGenerationService", + "methods": [ + { + "shortName": "CheckGrounding", + "fullName": "google.cloud.discoveryengine.v1alpha.GroundedGenerationService.CheckGrounding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" + } + ] + } + ] + }, + { + "shortName": "ProjectService", + "fullName": "google.cloud.discoveryengine.v1alpha.ProjectService", + "methods": [ + { + "shortName": "GetProject", + "fullName": "google.cloud.discoveryengine.v1alpha.ProjectService.GetProject", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*}" + } + ] + }, + { + "shortName": "ProvisionProject", + "fullName": "google.cloud.discoveryengine.v1alpha.ProjectService.ProvisionProject", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{name=projects/*}:provision" + } + ] + }, + { + "shortName": "ReportConsentChange", + "fullName": "google.cloud.discoveryengine.v1alpha.ProjectService.ReportConsentChange", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{project=projects/*}:reportConsentChange" + } + ] + } + ] + }, + { + "shortName": "RankService", + "fullName": "google.cloud.discoveryengine.v1alpha.RankService", + "methods": [ + { + "shortName": "Rank", + "fullName": "google.cloud.discoveryengine.v1alpha.RankService.Rank", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{ranking_config=projects/*/locations/*/rankingConfigs/*}:rank" + } + ] + } + ] + }, { "shortName": "RecommendationService", "fullName": "google.cloud.discoveryengine.v1alpha.RecommendationService", @@ -58177,6 +63341,17 @@ "shortName": "SearchTuningService", "fullName": "google.cloud.discoveryengine.v1alpha.SearchTuningService", "methods": [ + { + "shortName": "ListCustomModels", + "fullName": "google.cloud.discoveryengine.v1alpha.SearchTuningService.ListCustomModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{data_store=projects/*/locations/*/collections/*/dataStores/*}/customModels" + } + ] + }, { "shortName": "TrainCustomModel", "fullName": "google.cloud.discoveryengine.v1alpha.SearchTuningService.TrainCustomModel", @@ -58190,6 +63365,69 @@ } ] }, + { + "shortName": "ServingConfigService", + "fullName": "google.cloud.discoveryengine.v1alpha.ServingConfigService", + "methods": [ + { + "shortName": "GetServingConfig", + "fullName": "google.cloud.discoveryengine.v1alpha.ServingConfigService.GetServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/dataStores/*/servingConfigs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}" + } + ] + }, + { + "shortName": "ListServingConfigs", + "fullName": "google.cloud.discoveryengine.v1alpha.ServingConfigService.ListServingConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/servingConfigs" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/servingConfigs" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/servingConfigs" + } + ] + }, + { + "shortName": "UpdateServingConfig", + "fullName": "google.cloud.discoveryengine.v1alpha.ServingConfigService.UpdateServingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{serving_config.name=projects/*/locations/*/dataStores/*/servingConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{serving_config.name=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1alpha/{serving_config.name=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}" + } + ] + } + ] + }, { "shortName": "SiteSearchEngineService", "fullName": "google.cloud.discoveryengine.v1alpha.SiteSearchEngineService", @@ -58429,6 +63667,10 @@ { "httpMethod": "POST", "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/userEvents:write" } ] } @@ -58437,15 +63679,23 @@ ], "configFile": "discoveryengine_v1alpha.yaml", "serviceConfigApiNames": [ + "google.cloud.discoveryengine.v1alpha.AclConfigService", + "google.cloud.discoveryengine.v1alpha.ChunkService", "google.cloud.discoveryengine.v1alpha.CompletionService", + "google.cloud.discoveryengine.v1alpha.ControlService", "google.cloud.discoveryengine.v1alpha.ConversationalSearchService", "google.cloud.discoveryengine.v1alpha.DataStoreService", "google.cloud.discoveryengine.v1alpha.DocumentService", "google.cloud.discoveryengine.v1alpha.EngineService", + "google.cloud.discoveryengine.v1alpha.EstimateBillingService", + "google.cloud.discoveryengine.v1alpha.GroundedGenerationService", + "google.cloud.discoveryengine.v1alpha.ProjectService", + "google.cloud.discoveryengine.v1alpha.RankService", "google.cloud.discoveryengine.v1alpha.RecommendationService", "google.cloud.discoveryengine.v1alpha.SchemaService", "google.cloud.discoveryengine.v1alpha.SearchService", "google.cloud.discoveryengine.v1alpha.SearchTuningService", + "google.cloud.discoveryengine.v1alpha.ServingConfigService", "google.cloud.discoveryengine.v1alpha.SiteSearchEngineService", "google.cloud.discoveryengine.v1alpha.UserEventService", "google.cloud.location.Locations", @@ -58472,37 +63722,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DiscoveryEngine.V1Beta": 23 + "Google.Cloud.DiscoveryEngine.V1Beta": 35 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb": 23 + "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb": 35 } }, "java_multiple_files": { "valueCounts": { - "true": 23 + "true": 35 } }, "java_package": { "valueCounts": { - "com.google.cloud.discoveryengine.v1beta": 23 + "com.google.cloud.discoveryengine.v1beta": 35 } }, "objc_class_prefix": { "valueCounts": { - "DISCOVERYENGINE": 23 + "DISCOVERYENGINE": 35 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DiscoveryEngine\\V1beta": 23 + "Google\\Cloud\\DiscoveryEngine\\V1beta": 35 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DiscoveryEngine::V1beta": 23 + "Google::Cloud::DiscoveryEngine::V1beta": 35 } } }, @@ -58558,10 +63808,130 @@ } ] }, + { + "shortName": "ControlService", + "fullName": "google.cloud.discoveryengine.v1beta.ControlService", + "methods": [ + { + "shortName": "CreateControl", + "fullName": "google.cloud.discoveryengine.v1beta.ControlService.CreateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/controls" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + ] + }, + { + "shortName": "DeleteControl", + "fullName": "google.cloud.discoveryengine.v1beta.ControlService.DeleteControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + }, + { + "shortName": "GetControl", + "fullName": "google.cloud.discoveryengine.v1beta.ControlService.GetControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + }, + { + "shortName": "ListControls", + "fullName": "google.cloud.discoveryengine.v1beta.ControlService.ListControls", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/controls" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + ] + }, + { + "shortName": "UpdateControl", + "fullName": "google.cloud.discoveryengine.v1beta.ControlService.UpdateControl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{control.name=projects/*/locations/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta/{control.name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta/{control.name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + ] + } + ] + }, { "shortName": "ConversationalSearchService", "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService", "methods": [ + { + "shortName": "AnswerQuery", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:answer" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:answer" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:answer" + } + ] + }, { "shortName": "ConverseConversation", "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.ConverseConversation", @@ -58600,6 +63970,25 @@ } ] }, + { + "shortName": "CreateSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/sessions" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + ] + }, { "shortName": "DeleteConversation", "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteConversation", @@ -58619,6 +64008,44 @@ } ] }, + { + "shortName": "DeleteSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] + }, + { + "shortName": "GetAnswer", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/sessions/*/answers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*/answers/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/answers/*}" + } + ] + }, { "shortName": "GetConversation", "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetConversation", @@ -58638,6 +64065,25 @@ } ] }, + { + "shortName": "GetSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] + }, { "shortName": "ListConversations", "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListConversations", @@ -58657,6 +64103,25 @@ } ] }, + { + "shortName": "ListSessions", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListSessions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/sessions" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + ] + }, { "shortName": "UpdateConversation", "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateConversation", @@ -58675,6 +64140,25 @@ "path": "/v1beta/{conversation.name=projects/*/locations/*/collections/*/engines/*/conversations/*}" } ] + }, + { + "shortName": "UpdateSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateSession", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{session.name=projects/*/locations/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + ] } ] }, @@ -58918,6 +64402,39 @@ } ] }, + { + "shortName": "PauseEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService.PauseEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*}:pause" + } + ] + }, + { + "shortName": "ResumeEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService.ResumeEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*}:resume" + } + ] + }, + { + "shortName": "TuneEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService.TuneEngine", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/locations/*/collections/*/engines/*}:tune" + } + ] + }, { "shortName": "UpdateEngine", "fullName": "google.cloud.discoveryengine.v1beta.EngineService.UpdateEngine", @@ -58931,6 +64448,57 @@ } ] }, + { + "shortName": "GroundedGenerationService", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationService", + "methods": [ + { + "shortName": "CheckGrounding", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" + } + ] + } + ] + }, + { + "shortName": "ProjectService", + "fullName": "google.cloud.discoveryengine.v1beta.ProjectService", + "methods": [ + { + "shortName": "ProvisionProject", + "fullName": "google.cloud.discoveryengine.v1beta.ProjectService.ProvisionProject", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*}:provision" + } + ] + } + ] + }, + { + "shortName": "RankService", + "fullName": "google.cloud.discoveryengine.v1beta.RankService", + "methods": [ + { + "shortName": "Rank", + "fullName": "google.cloud.discoveryengine.v1beta.RankService.Rank", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{ranking_config=projects/*/locations/*/rankingConfigs/*}:rank" + } + ] + } + ] + }, { "shortName": "RecommendationService", "fullName": "google.cloud.discoveryengine.v1beta.RecommendationService", @@ -59062,6 +64630,34 @@ } ] }, + { + "shortName": "SearchTuningService", + "fullName": "google.cloud.discoveryengine.v1beta.SearchTuningService", + "methods": [ + { + "shortName": "ListCustomModels", + "fullName": "google.cloud.discoveryengine.v1beta.SearchTuningService.ListCustomModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{data_store=projects/*/locations/*/collections/*/dataStores/*}/customModels" + } + ] + }, + { + "shortName": "TrainCustomModel", + "fullName": "google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{data_store=projects/*/locations/*/collections/*/dataStores/*}:trainCustomModel" + } + ] + } + ] + }, { "shortName": "ServingConfigService", "fullName": "google.cloud.discoveryengine.v1beta.ServingConfigService", @@ -59349,6 +64945,10 @@ { "httpMethod": "POST", "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*}/userEvents:write" } ] } @@ -59358,13 +64958,18 @@ "configFile": "discoveryengine_v1beta.yaml", "serviceConfigApiNames": [ "google.cloud.discoveryengine.v1beta.CompletionService", + "google.cloud.discoveryengine.v1beta.ControlService", "google.cloud.discoveryengine.v1beta.ConversationalSearchService", "google.cloud.discoveryengine.v1beta.DataStoreService", "google.cloud.discoveryengine.v1beta.DocumentService", "google.cloud.discoveryengine.v1beta.EngineService", + "google.cloud.discoveryengine.v1beta.GroundedGenerationService", + "google.cloud.discoveryengine.v1beta.ProjectService", + "google.cloud.discoveryengine.v1beta.RankService", "google.cloud.discoveryengine.v1beta.RecommendationService", "google.cloud.discoveryengine.v1beta.SchemaService", "google.cloud.discoveryengine.v1beta.SearchService", + "google.cloud.discoveryengine.v1beta.SearchTuningService", "google.cloud.discoveryengine.v1beta.ServingConfigService", "google.cloud.discoveryengine.v1beta.SiteSearchEngineService", "google.cloud.discoveryengine.v1beta.UserEventService", @@ -60836,6 +66441,11 @@ "google/rpc" ], "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.EdgeContainer.V1": 2 + } + }, "go_package": { "valueCounts": { "cloud.google.com/go/edgecontainer/apiv1/edgecontainerpb;edgecontainerpb": 2 @@ -60850,6 +66460,16 @@ "valueCounts": { "com.google.cloud.edgecontainer.v1": 2 } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\EdgeContainer\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::EdgeContainer::V1": 2 + } } }, "services": [ @@ -60934,6 +66554,17 @@ } ] }, + { + "shortName": "GenerateOfflineCredential", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GenerateOfflineCredential", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{cluster=projects/*/locations/*/clusters/*}:generateOfflineCredential" + } + ] + }, { "shortName": "GetCluster", "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetCluster", @@ -60967,6 +66598,17 @@ } ] }, + { + "shortName": "GetServerConfig", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetServerConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*}/serverConfig" + } + ] + }, { "shortName": "GetVpnConnection", "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.GetVpnConnection", @@ -61043,6 +66685,17 @@ "path": "/v1/{node_pool.name=projects/*/locations/*/clusters/*/nodePools/*}" } ] + }, + { + "shortName": "UpgradeCluster", + "fullName": "google.cloud.edgecontainer.v1.EdgeContainer.UpgradeCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/clusters/*}:upgrade" + } + ] } ] } @@ -63239,6 +68892,432 @@ ], "nameInServiceConfig": "cloudfunctions.googleapis.com" }, + { + "id": "google.cloud.gdchardwaremanagement.v1alpha", + "directory": "google/cloud/gdchardwaremanagement/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "gdchardwaremanagement.googleapis.com", + "title": "GDC Hardware Management API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/gdchardwaremanagement/v1alpha", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.GdcHardwareManagement.V1Alpha": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/gdchardwaremanagement/apiv1alpha/gdchardwaremanagementpb;gdchardwaremanagementpb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.gdchardwaremanagement.v1alpha": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\GdcHardwareManagement\\V1alpha": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::GDCHardwareManagement::V1alpha": 2 + } + } + }, + "services": [ + { + "shortName": "GDCHardwareManagement", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", + "methods": [ + { + "shortName": "CreateComment", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.CreateComment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/orders/*}/comments" + } + ] + }, + { + "shortName": "CreateHardware", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.CreateHardware", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/hardware" + } + ] + }, + { + "shortName": "CreateHardwareGroup", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.CreateHardwareGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/orders/*}/hardwareGroups" + } + ] + }, + { + "shortName": "CreateOrder", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.CreateOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/orders" + } + ] + }, + { + "shortName": "CreateSite", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.CreateSite", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/sites" + } + ] + }, + { + "shortName": "CreateZone", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.CreateZone", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/zones" + } + ] + }, + { + "shortName": "DeleteHardware", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.DeleteHardware", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/hardware/*}" + } + ] + }, + { + "shortName": "DeleteHardwareGroup", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.DeleteHardwareGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*/hardwareGroups/*}" + } + ] + }, + { + "shortName": "DeleteOrder", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.DeleteOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*}" + } + ] + }, + { + "shortName": "DeleteZone", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.DeleteZone", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/zones/*}" + } + ] + }, + { + "shortName": "GetChangeLogEntry", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetChangeLogEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*/changeLogEntries/*}" + } + ] + }, + { + "shortName": "GetComment", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetComment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*/comments/*}" + } + ] + }, + { + "shortName": "GetHardware", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetHardware", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/hardware/*}" + } + ] + }, + { + "shortName": "GetHardwareGroup", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetHardwareGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*/hardwareGroups/*}" + } + ] + }, + { + "shortName": "GetOrder", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*}" + } + ] + }, + { + "shortName": "GetSite", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetSite", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/sites/*}" + } + ] + }, + { + "shortName": "GetSku", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetSku", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/skus/*}" + } + ] + }, + { + "shortName": "GetZone", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.GetZone", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/zones/*}" + } + ] + }, + { + "shortName": "ListChangeLogEntries", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListChangeLogEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/orders/*}/changeLogEntries" + } + ] + }, + { + "shortName": "ListComments", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListComments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/orders/*}/comments" + } + ] + }, + { + "shortName": "ListHardware", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListHardware", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/hardware" + } + ] + }, + { + "shortName": "ListHardwareGroups", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListHardwareGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/orders/*}/hardwareGroups" + } + ] + }, + { + "shortName": "ListOrders", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListOrders", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/orders" + } + ] + }, + { + "shortName": "ListSites", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListSites", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/sites" + } + ] + }, + { + "shortName": "ListSkus", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListSkus", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/skus" + } + ] + }, + { + "shortName": "ListZones", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.ListZones", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/zones" + } + ] + }, + { + "shortName": "SignalZoneState", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.SignalZoneState", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{name=projects/*/locations/*/zones/*}:signal" + } + ] + }, + { + "shortName": "SubmitOrder", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.SubmitOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*}:submit" + } + ] + }, + { + "shortName": "UpdateHardware", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.UpdateHardware", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{hardware.name=projects/*/locations/*/hardware/*}" + } + ] + }, + { + "shortName": "UpdateHardwareGroup", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.UpdateHardwareGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{hardware_group.name=projects/*/locations/*/orders/*/hardwareGroups/*}" + } + ] + }, + { + "shortName": "UpdateOrder", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.UpdateOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{order.name=projects/*/locations/*/orders/*}" + } + ] + }, + { + "shortName": "UpdateSite", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.UpdateSite", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{site.name=projects/*/locations/*/sites/*}" + } + ] + }, + { + "shortName": "UpdateZone", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.UpdateZone", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{zone.name=projects/*/locations/*/zones/*}" + } + ] + } + ] + } + ], + "configFile": "gdchardwaremanagement_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "gdchardwaremanagement.googleapis.com" + }, { "id": "google.cloud.gkebackup.v1", "directory": "google/cloud/gkebackup/v1", @@ -63251,7 +69330,8 @@ "google/api", "google/cloud/gkebackup/v1", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "csharp_namespace": { @@ -63389,6 +69469,17 @@ } ] }, + { + "shortName": "GetBackupIndexDownloadUrl", + "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetBackupIndexDownloadUrl", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{backup=projects/*/locations/*/backupPlans/*/backups/*}:getBackupIndexDownloadUrl" + } + ] + }, { "shortName": "GetBackupPlan", "fullName": "google.cloud.gkebackup.v1.BackupForGKE.GetBackupPlan", @@ -64136,6 +70227,7 @@ "description": "", "importDirectories": [ "google/api", + "google/cloud/gkehub/servicemesh/v1beta", "google/cloud/gkehub/v1beta", "google/cloud/gkehub/v1beta/configmanagement", "google/cloud/gkehub/v1beta/metering", @@ -66106,41 +72198,123 @@ "importDirectories": [ "google/api", "google/cloud/kms/v1", + "google/longrunning", "google/protobuf" ], "options": { "cc_enable_arenas": { "valueCounts": { + "": 2, "true": 3 } }, "csharp_namespace": { "valueCounts": { + "": 2, "Google.Cloud.Kms.V1": 3 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/kms/apiv1/kmspb;kmspb": 3 + "cloud.google.com/go/kms/apiv1/kmspb;kmspb": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.cloud.kms.v1": 3 + "com.google.cloud.kms.v1": 5 } }, "php_namespace": { "valueCounts": { + "": 2, "Google\\Cloud\\Kms\\V1": 3 } } }, "services": [ + { + "shortName": "Autokey", + "fullName": "google.cloud.kms.v1.Autokey", + "methods": [ + { + "shortName": "CreateKeyHandle", + "fullName": "google.cloud.kms.v1.Autokey.CreateKeyHandle", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/keyHandles" + } + ] + }, + { + "shortName": "GetKeyHandle", + "fullName": "google.cloud.kms.v1.Autokey.GetKeyHandle", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/keyHandles/*}" + } + ] + }, + { + "shortName": "ListKeyHandles", + "fullName": "google.cloud.kms.v1.Autokey.ListKeyHandles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/keyHandles" + } + ] + } + ] + }, + { + "shortName": "AutokeyAdmin", + "fullName": "google.cloud.kms.v1.AutokeyAdmin", + "methods": [ + { + "shortName": "GetAutokeyConfig", + "fullName": "google.cloud.kms.v1.AutokeyAdmin.GetAutokeyConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/autokeyConfig}" + } + ] + }, + { + "shortName": "ShowEffectiveAutokeyConfig", + "fullName": "google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}:showEffectiveAutokeyConfig" + } + ] + }, + { + "shortName": "UpdateAutokeyConfig", + "fullName": "google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{autokey_config.name=folders/*/autokeyConfig}" + } + ] + } + ] + }, { "shortName": "EkmService", "fullName": "google.cloud.kms.v1.EkmService", @@ -66541,6 +72715,8 @@ ], "configFile": "cloudkms_v1.yaml", "serviceConfigApiNames": [ + "google.cloud.kms.v1.Autokey", + "google.cloud.kms.v1.AutokeyAdmin", "google.cloud.kms.v1.EkmService", "google.cloud.kms.v1.KeyManagementService", "google.cloud.location.Locations", @@ -67391,6 +73567,222 @@ ], "nameInServiceConfig": "managedidentities.googleapis.com" }, + { + "id": "google.cloud.managedkafka.v1", + "directory": "google/cloud/managedkafka/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "managedkafka.googleapis.com", + "title": "Apache Kafka for BigQuery API", + "description": "Manage Apache Kafka clusters and resources.", + "importDirectories": [ + "google/api", + "google/cloud/managedkafka/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ManagedKafka.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/managedkafka/apiv1/managedkafkapb;managedkafkapb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.managedkafka.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ManagedKafka\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ManagedKafka::V1": 2 + } + } + }, + "services": [ + { + "shortName": "ManagedKafka", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka", + "methods": [ + { + "shortName": "CreateCluster", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.CreateCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/clusters" + } + ] + }, + { + "shortName": "CreateTopic", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.CreateTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/clusters/*}/topics" + } + ] + }, + { + "shortName": "DeleteCluster", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.DeleteCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clusters/*}" + } + ] + }, + { + "shortName": "DeleteConsumerGroup", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.DeleteConsumerGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}" + } + ] + }, + { + "shortName": "DeleteTopic", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.DeleteTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/clusters/*/topics/*}" + } + ] + }, + { + "shortName": "GetCluster", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.GetCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clusters/*}" + } + ] + }, + { + "shortName": "GetConsumerGroup", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.GetConsumerGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}" + } + ] + }, + { + "shortName": "GetTopic", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.GetTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clusters/*/topics/*}" + } + ] + }, + { + "shortName": "ListClusters", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.ListClusters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/clusters" + } + ] + }, + { + "shortName": "ListConsumerGroups", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.ListConsumerGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/clusters/*}/consumerGroups" + } + ] + }, + { + "shortName": "ListTopics", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.ListTopics", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/clusters/*}/topics" + } + ] + }, + { + "shortName": "UpdateCluster", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.UpdateCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{cluster.name=projects/*/locations/*/clusters/*}" + } + ] + }, + { + "shortName": "UpdateConsumerGroup", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.UpdateConsumerGroup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{consumer_group.name=projects/*/locations/*/clusters/*/consumerGroups/*}" + } + ] + }, + { + "shortName": "UpdateTopic", + "fullName": "google.cloud.managedkafka.v1.ManagedKafka.UpdateTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{topic.name=projects/*/locations/*/clusters/*/topics/*}" + } + ] + } + ] + } + ], + "configFile": "managedkafka_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.managedkafka.v1.ManagedKafka", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "managedkafka.googleapis.com" + }, { "id": "google.cloud.mediatranslation.v1alpha1", "directory": "google/cloud/mediatranslation/v1alpha1", @@ -70583,7 +76975,10 @@ ], "configFile": "networkmanagement_v1.yaml", "serviceConfigApiNames": [ - "google.cloud.networkmanagement.v1.ReachabilityService" + "google.cloud.location.Locations", + "google.cloud.networkmanagement.v1.ReachabilityService", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" ], "nameInServiceConfig": "networkmanagement.googleapis.com" }, @@ -70710,7 +77105,10 @@ ], "configFile": "networkmanagement_v1beta1.yaml", "serviceConfigApiNames": [ - "google.cloud.networkmanagement.v1beta1.ReachabilityService" + "google.cloud.location.Locations", + "google.cloud.networkmanagement.v1beta1.ReachabilityService", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" ], "nameInServiceConfig": "networkmanagement.googleapis.com" }, @@ -71187,36 +77585,152 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.NetworkServices.V1": 10 + "Google.Cloud.NetworkServices.V1": 11 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/networkservices/apiv1/networkservicespb;networkservicespb": 10 + "cloud.google.com/go/networkservices/apiv1/networkservicespb;networkservicespb": 11 } }, "java_multiple_files": { "valueCounts": { - "true": 10 + "true": 11 } }, "java_package": { "valueCounts": { - "com.google.cloud.networkservices.v1": 10 + "com.google.cloud.networkservices.v1": 11 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\NetworkServices\\V1": 10 + "Google\\Cloud\\NetworkServices\\V1": 11 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::NetworkServices::V1": 10 + "Google::Cloud::NetworkServices::V1": 11 } } }, "services": [ + { + "shortName": "DepService", + "fullName": "google.cloud.networkservices.v1.DepService", + "methods": [ + { + "shortName": "CreateLbRouteExtension", + "fullName": "google.cloud.networkservices.v1.DepService.CreateLbRouteExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/lbRouteExtensions" + } + ] + }, + { + "shortName": "CreateLbTrafficExtension", + "fullName": "google.cloud.networkservices.v1.DepService.CreateLbTrafficExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/lbTrafficExtensions" + } + ] + }, + { + "shortName": "DeleteLbRouteExtension", + "fullName": "google.cloud.networkservices.v1.DepService.DeleteLbRouteExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lbRouteExtensions/*}" + } + ] + }, + { + "shortName": "DeleteLbTrafficExtension", + "fullName": "google.cloud.networkservices.v1.DepService.DeleteLbTrafficExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/lbTrafficExtensions/*}" + } + ] + }, + { + "shortName": "GetLbRouteExtension", + "fullName": "google.cloud.networkservices.v1.DepService.GetLbRouteExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lbRouteExtensions/*}" + } + ] + }, + { + "shortName": "GetLbTrafficExtension", + "fullName": "google.cloud.networkservices.v1.DepService.GetLbTrafficExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/lbTrafficExtensions/*}" + } + ] + }, + { + "shortName": "ListLbRouteExtensions", + "fullName": "google.cloud.networkservices.v1.DepService.ListLbRouteExtensions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/lbRouteExtensions" + } + ] + }, + { + "shortName": "ListLbTrafficExtensions", + "fullName": "google.cloud.networkservices.v1.DepService.ListLbTrafficExtensions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/lbTrafficExtensions" + } + ] + }, + { + "shortName": "UpdateLbRouteExtension", + "fullName": "google.cloud.networkservices.v1.DepService.UpdateLbRouteExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{lb_route_extension.name=projects/*/locations/*/lbRouteExtensions/*}" + } + ] + }, + { + "shortName": "UpdateLbTrafficExtension", + "fullName": "google.cloud.networkservices.v1.DepService.UpdateLbTrafficExtension", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{lb_traffic_extension.name=projects/*/locations/*/lbTrafficExtensions/*}" + } + ] + } + ] + }, { "shortName": "NetworkServices", "fullName": "google.cloud.networkservices.v1.NetworkServices", @@ -71656,6 +78170,7 @@ "configFile": "networkservices_v1.yaml", "serviceConfigApiNames": [ "google.cloud.location.Locations", + "google.cloud.networkservices.v1.DepService", "google.cloud.networkservices.v1.NetworkServices", "google.iam.v1.IAMPolicy", "google.longrunning.Operations" @@ -75234,6 +81749,17 @@ } ] }, + { + "shortName": "ExportData", + "fullName": "google.cloud.parallelstore.v1beta.Parallelstore.ExportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/locations/*/instances/*}:exportData" + } + ] + }, { "shortName": "GetInstance", "fullName": "google.cloud.parallelstore.v1beta.Parallelstore.GetInstance", @@ -75245,6 +81771,17 @@ } ] }, + { + "shortName": "ImportData", + "fullName": "google.cloud.parallelstore.v1beta.Parallelstore.ImportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{name=projects/*/locations/*/instances/*}:importData" + } + ] + }, { "shortName": "ListInstances", "fullName": "google.cloud.parallelstore.v1beta.Parallelstore.ListInstances", @@ -76268,6 +82805,334 @@ ], "nameInServiceConfig": "cloudprivatecatalog.googleapis.com" }, + { + "id": "google.cloud.privilegedaccessmanager.v1", + "directory": "google/cloud/privilegedaccessmanager/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "privilegedaccessmanager.googleapis.com", + "title": "Privileged Access Manager API", + "description": "Privileged Access Manager (PAM) helps you on your journey towards least privilege and helps mitigate risks tied to privileged access misuse or abuse. PAM allows you to shift from always-on standing privileges towards on-demand access with just-in-time, time-bound, and approval-based access elevations. PAM allows IAM administrators to create entitlements that can grant just-in-time, temporary access to any resource scope. Requesters can explore eligible entitlements and request the access needed for their task. Approvers are notified when approvals await their decision. Streamlined workflows facilitated by using PAM can support various use cases, including emergency access for incident responders, time-boxed access for developers for critical deployment or maintenance, temporary access for operators for data ingestion and audits, JIT access to service accounts for automated tasks, and more.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.PrivilegedAccessManager.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/privilegedaccessmanager/apiv1/privilegedaccessmanagerpb;privilegedaccessmanagerpb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.privilegedaccessmanager.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\PrivilegedAccessManager\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::PrivilegedAccessManager::V1": 1 + } + } + }, + "services": [ + { + "shortName": "PrivilegedAccessManager", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager", + "methods": [ + { + "shortName": "ApproveGrant", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.ApproveGrant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}:approve" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}:approve" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}:approve" + } + ] + }, + { + "shortName": "CheckOnboardingStatus", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.CheckOnboardingStatus", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}:checkOnboardingStatus" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}:checkOnboardingStatus" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}:checkOnboardingStatus" + } + ] + }, + { + "shortName": "CreateEntitlement", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.CreateEntitlement", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/entitlements" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/entitlements" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*}/entitlements" + } + ] + }, + { + "shortName": "CreateGrant", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.CreateGrant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/entitlements/*}/grants" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*/entitlements/*}/grants" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*/entitlements/*}/grants" + } + ] + }, + { + "shortName": "DeleteEntitlement", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.DeleteEntitlement", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/entitlements/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/locations/*/entitlements/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/locations/*/entitlements/*}" + } + ] + }, + { + "shortName": "DenyGrant", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.DenyGrant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}:deny" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}:deny" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}:deny" + } + ] + }, + { + "shortName": "GetEntitlement", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.GetEntitlement", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entitlements/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/entitlements/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/entitlements/*}" + } + ] + }, + { + "shortName": "GetGrant", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.GetGrant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}" + } + ] + }, + { + "shortName": "ListEntitlements", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.ListEntitlements", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/entitlements" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/entitlements" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/entitlements" + } + ] + }, + { + "shortName": "ListGrants", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.ListGrants", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/entitlements/*}/grants" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*/entitlements/*}/grants" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*/entitlements/*}/grants" + } + ] + }, + { + "shortName": "RevokeGrant", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.RevokeGrant", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}:revoke" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}:revoke" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}:revoke" + } + ] + }, + { + "shortName": "SearchEntitlements", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.SearchEntitlements", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/entitlements:search" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/entitlements:search" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/entitlements:search" + } + ] + }, + { + "shortName": "SearchGrants", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.SearchGrants", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/entitlements/*}/grants:search" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*/entitlements/*}/grants:search" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*/entitlements/*}/grants:search" + } + ] + }, + { + "shortName": "UpdateEntitlement", + "fullName": "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.UpdateEntitlement", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{entitlement.name=projects/*/locations/*/entitlements/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{entitlement.name=organizations/*/locations/*/entitlements/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{entitlement.name=folders/*/locations/*/entitlements/*}" + } + ] + } + ] + } + ], + "configFile": "privilegedaccessmanager_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "privilegedaccessmanager.googleapis.com" + }, { "id": "google.cloud.pubsublite.v1", "directory": "google/cloud/pubsublite/v1", @@ -78232,6 +85097,17 @@ } ] }, + { + "shortName": "GetClusterCertificateAuthority", + "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.GetClusterCertificateAuthority", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/clusters/*/certificateAuthority}" + } + ] + }, { "shortName": "ListClusters", "fullName": "google.cloud.redis.cluster.v1.CloudRedisCluster.ListClusters", @@ -78293,6 +85169,11 @@ "valueCounts": { "com.google.cloud.redis.cluster.v1beta1": 1 } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Redis::Cluster::V1beta1": 1 + } } }, "services": [ @@ -78333,6 +85214,17 @@ } ] }, + { + "shortName": "GetClusterCertificateAuthority", + "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.GetClusterCertificateAuthority", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/clusters/*/certificateAuthority}" + } + ] + }, { "shortName": "ListClusters", "fullName": "google.cloud.redis.cluster.v1beta1.CloudRedisCluster.ListClusters", @@ -79676,8 +86568,8 @@ "version": "v2", "majorVersion": "v2", "hostName": "retail.googleapis.com", - "title": "Retail API", - "description": "Cloud Retail service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.", + "title": "Vertex AI Search for Retail API", + "description": "Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications.", "importDirectories": [ "google/api", "google/cloud/retail/v2", @@ -80153,6 +87045,17 @@ } ] }, + { + "shortName": "PurgeProducts", + "fullName": "google.cloud.retail.v2.ProductService.PurgeProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge" + } + ] + }, { "shortName": "RemoveFulfillmentPlaces", "fullName": "google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces", @@ -80388,8 +87291,8 @@ "version": "v2alpha", "majorVersion": "v2", "hostName": "retail.googleapis.com", - "title": "Retail API", - "description": "Cloud Retail service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.", + "title": "Vertex AI Search for Retail API", + "description": "Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications.", "importDirectories": [ "google/api", "google/cloud/retail/v2alpha", @@ -80401,37 +87304,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2Alpha": 23 + "Google.Cloud.Retail.V2Alpha": 27 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb": 23 + "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb": 27 } }, "java_multiple_files": { "valueCounts": { - "true": 23 + "true": 27 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2alpha": 23 + "com.google.cloud.retail.v2alpha": 27 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 23 + "RETAIL": 27 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2alpha": 23 + "Google\\Cloud\\Retail\\V2alpha": 27 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2alpha": 23 + "Google::Cloud::Retail::V2alpha": 27 } } }, @@ -80453,6 +87356,34 @@ } ] }, + { + "shortName": "BranchService", + "fullName": "google.cloud.retail.v2alpha.BranchService", + "methods": [ + { + "shortName": "GetBranch", + "fullName": "google.cloud.retail.v2alpha.BranchService.GetBranch", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/locations/*/catalogs/*/branches/*}" + } + ] + }, + { + "shortName": "ListBranches", + "fullName": "google.cloud.retail.v2alpha.BranchService.ListBranches", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/branches" + } + ] + } + ] + }, { "shortName": "CatalogService", "fullName": "google.cloud.retail.v2alpha.CatalogService", @@ -80972,6 +87903,100 @@ } ] }, + { + "shortName": "ProjectService", + "fullName": "google.cloud.retail.v2alpha.ProjectService", + "methods": [ + { + "shortName": "AcceptTerms", + "fullName": "google.cloud.retail.v2alpha.ProjectService.AcceptTerms", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{project=projects/*/retailProject}:acceptTerms" + } + ] + }, + { + "shortName": "EnrollSolution", + "fullName": "google.cloud.retail.v2alpha.ProjectService.EnrollSolution", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{project=projects/*}:enrollSolution" + } + ] + }, + { + "shortName": "GetAlertConfig", + "fullName": "google.cloud.retail.v2alpha.ProjectService.GetAlertConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/alertConfig}" + } + ] + }, + { + "shortName": "GetLoggingConfig", + "fullName": "google.cloud.retail.v2alpha.ProjectService.GetLoggingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/loggingConfig}" + } + ] + }, + { + "shortName": "GetProject", + "fullName": "google.cloud.retail.v2alpha.ProjectService.GetProject", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{name=projects/*/retailProject}" + } + ] + }, + { + "shortName": "ListEnrolledSolutions", + "fullName": "google.cloud.retail.v2alpha.ProjectService.ListEnrolledSolutions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*}:enrolledSolutions" + } + ] + }, + { + "shortName": "UpdateAlertConfig", + "fullName": "google.cloud.retail.v2alpha.ProjectService.UpdateAlertConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{alert_config.name=projects/*/alertConfig}" + } + ] + }, + { + "shortName": "UpdateLoggingConfig", + "fullName": "google.cloud.retail.v2alpha.ProjectService.UpdateLoggingConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{logging_config.name=projects/*/loggingConfig}" + } + ] + } + ] + }, { "shortName": "SearchService", "fullName": "google.cloud.retail.v2alpha.SearchService", @@ -81142,6 +88167,7 @@ "serviceConfigApiNames": [ "google.cloud.location.Locations", "google.cloud.retail.v2alpha.AnalyticsService", + "google.cloud.retail.v2alpha.BranchService", "google.cloud.retail.v2alpha.CatalogService", "google.cloud.retail.v2alpha.CompletionService", "google.cloud.retail.v2alpha.ControlService", @@ -81149,6 +88175,7 @@ "google.cloud.retail.v2alpha.ModelService", "google.cloud.retail.v2alpha.PredictionService", "google.cloud.retail.v2alpha.ProductService", + "google.cloud.retail.v2alpha.ProjectService", "google.cloud.retail.v2alpha.SearchService", "google.cloud.retail.v2alpha.ServingConfigService", "google.cloud.retail.v2alpha.UserEventService", @@ -81162,8 +88189,8 @@ "version": "v2beta", "majorVersion": "v2", "hostName": "retail.googleapis.com", - "title": "Retail API", - "description": "Cloud Retail service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.", + "title": "Vertex AI Search for Retail API", + "description": "Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications.", "importDirectories": [ "google/api", "google/cloud/retail/v2beta", @@ -81650,6 +88677,17 @@ } ] }, + { + "shortName": "PurgeProducts", + "fullName": "google.cloud.retail.v2beta.ProductService.PurgeProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge" + } + ] + }, { "shortName": "RemoveFulfillmentPlaces", "fullName": "google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces", @@ -81898,17 +88936,17 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/run/apiv2/runpb;runpb": 12 + "cloud.google.com/go/run/apiv2/runpb;runpb": 13 } }, "java_multiple_files": { "valueCounts": { - "true": 12 + "true": 13 } }, "java_package": { "valueCounts": { - "com.google.cloud.run.v2": 12 + "com.google.cloud.run.v2": 13 } } }, @@ -82591,6 +89629,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/secrets/*/versions/*}:access" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:access" } ] }, @@ -82602,6 +89644,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*/secrets/*}:addVersion" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/secrets/*}:addVersion" } ] }, @@ -82613,6 +89659,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*}/secrets" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/secrets" } ] }, @@ -82624,6 +89674,10 @@ { "httpMethod": "DELETE", "path": "/v1/{name=projects/*/secrets/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/secrets/*}" } ] }, @@ -82635,6 +89689,10 @@ { "httpMethod": "POST", "path": "/v1/{name=projects/*/secrets/*/versions/*}:destroy" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:destroy" } ] }, @@ -82646,6 +89704,10 @@ { "httpMethod": "POST", "path": "/v1/{name=projects/*/secrets/*/versions/*}:disable" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:disable" } ] }, @@ -82657,6 +89719,10 @@ { "httpMethod": "POST", "path": "/v1/{name=projects/*/secrets/*/versions/*}:enable" + }, + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:enable" } ] }, @@ -82668,6 +89734,10 @@ { "httpMethod": "GET", "path": "/v1/{resource=projects/*/secrets/*}:getIamPolicy" + }, + { + "httpMethod": "GET", + "path": "/v1/{resource=projects/*/locations/*/secrets/*}:getIamPolicy" } ] }, @@ -82679,6 +89749,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/secrets/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/secrets/*}" } ] }, @@ -82690,6 +89764,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/secrets/*/versions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/secrets/*/versions/*}" } ] }, @@ -82701,6 +89779,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*/secrets/*}/versions" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/secrets/*}/versions" } ] }, @@ -82712,6 +89794,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*}/secrets" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/secrets" } ] }, @@ -82723,6 +89809,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/secrets/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/secrets/*}:setIamPolicy" } ] }, @@ -82734,6 +89824,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/secrets/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/locations/*/secrets/*}:testIamPermissions" } ] }, @@ -82745,6 +89839,10 @@ { "httpMethod": "PATCH", "path": "/v1/{secret.name=projects/*/secrets/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{secret.name=projects/*/locations/*/secrets/*}" } ] } @@ -82753,10 +89851,307 @@ ], "configFile": "secretmanager_v1.yaml", "serviceConfigApiNames": [ + "google.cloud.location.Locations", "google.cloud.secretmanager.v1.SecretManagerService" ], "nameInServiceConfig": "secretmanager.googleapis.com" }, + { + "id": "google.cloud.secretmanager.v1beta2", + "directory": "google/cloud/secretmanager/v1beta2", + "version": "v1beta2", + "majorVersion": "v1", + "hostName": "secretmanager.googleapis.com", + "title": "Secret Manager API", + "description": "Stores sensitive data such as API keys, passwords, and certificates. Provides convenience while improving security.", + "importDirectories": [ + "google/api", + "google/cloud/secretmanager/v1beta2", + "google/iam/v1", + "google/protobuf" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 2 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.SecretManager.V1Beta2": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/secretmanager/apiv1beta2/secretmanagerpb;secretmanagerpb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.secretmanager.v1beta2": 2 + } + }, + "objc_class_prefix": { + "valueCounts": { + "GSM": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\SecretManager\\V1beta2": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::SecretManager::V1beta2": 2 + } + } + }, + "services": [ + { + "shortName": "SecretManagerService", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "methods": [ + { + "shortName": "AccessSecretVersion", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.AccessSecretVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta2/{name=projects/*/secrets/*/versions/*}:access" + }, + { + "httpMethod": "GET", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:access" + } + ] + }, + { + "shortName": "AddSecretVersion", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.AddSecretVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*/secrets/*}:addVersion" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*/locations/*/secrets/*}:addVersion" + } + ] + }, + { + "shortName": "CreateSecret", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.CreateSecret", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*}/secrets" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{parent=projects/*/locations/*}/secrets" + } + ] + }, + { + "shortName": "DeleteSecret", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.DeleteSecret", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta2/{name=projects/*/secrets/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*}" + } + ] + }, + { + "shortName": "DestroySecretVersion", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.DestroySecretVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/secrets/*/versions/*}:destroy" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:destroy" + } + ] + }, + { + "shortName": "DisableSecretVersion", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.DisableSecretVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/secrets/*/versions/*}:disable" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:disable" + } + ] + }, + { + "shortName": "EnableSecretVersion", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.EnableSecretVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/secrets/*/versions/*}:enable" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:enable" + } + ] + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta2/{resource=projects/*/secrets/*}:getIamPolicy" + }, + { + "httpMethod": "GET", + "path": "/v1beta2/{resource=projects/*/locations/*/secrets/*}:getIamPolicy" + } + ] + }, + { + "shortName": "GetSecret", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.GetSecret", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta2/{name=projects/*/secrets/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*}" + } + ] + }, + { + "shortName": "GetSecretVersion", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.GetSecretVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta2/{name=projects/*/secrets/*/versions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}" + } + ] + }, + { + "shortName": "ListSecretVersions", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.ListSecretVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta2/{parent=projects/*/secrets/*}/versions" + }, + { + "httpMethod": "GET", + "path": "/v1beta2/{parent=projects/*/locations/*/secrets/*}/versions" + } + ] + }, + { + "shortName": "ListSecrets", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.ListSecrets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta2/{parent=projects/*}/secrets" + }, + { + "httpMethod": "GET", + "path": "/v1beta2/{parent=projects/*/locations/*}/secrets" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{resource=projects/*/secrets/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{resource=projects/*/locations/*/secrets/*}:setIamPolicy" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/{resource=projects/*/secrets/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta2/{resource=projects/*/locations/*/secrets/*}:testIamPermissions" + } + ] + }, + { + "shortName": "UpdateSecret", + "fullName": "google.cloud.secretmanager.v1beta2.SecretManagerService.UpdateSecret", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta2/{secret.name=projects/*/secrets/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta2/{secret.name=projects/*/locations/*/secrets/*}" + } + ] + } + ] + } + ], + "configFile": "secretmanager_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.secretmanager.v1beta2.SecretManagerService" + ], + "nameInServiceConfig": "secretmanager.googleapis.com" + }, { "id": "google.cloud.secrets.v1beta1", "directory": "google/cloud/secrets/v1beta1", @@ -83849,6 +91244,80 @@ ], "nameInServiceConfig": "privateca.googleapis.com" }, + { + "id": "google.cloud.security.publicca.v1", + "directory": "google/cloud/security/publicca/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "publicca.googleapis.com", + "title": "Public Certificate Authority API", + "description": "The Public Certificate Authority API may be used to create and manage ACME external account binding keys associated with Google Trust Services' publicly trusted certificate authority.", + "importDirectories": [ + "google/api", + "google/cloud/security/publicca/v1" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 2 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Security.PublicCA.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/security/publicca/apiv1/publiccapb;publiccapb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.security.publicca.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Security\\PublicCA\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Security::PublicCA::V1": 2 + } + } + }, + "services": [ + { + "shortName": "PublicCertificateAuthorityService", + "fullName": "google.cloud.security.publicca.v1.PublicCertificateAuthorityService", + "methods": [ + { + "shortName": "CreateExternalAccountKey", + "fullName": "google.cloud.security.publicca.v1.PublicCertificateAuthorityService.CreateExternalAccountKey", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/externalAccountKeys" + } + ] + } + ] + } + ], + "configFile": "publicca_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.security.publicca.v1.PublicCertificateAuthorityService" + ], + "nameInServiceConfig": "publicca.googleapis.com" + }, { "id": "google.cloud.security.publicca.v1beta1", "directory": "google/cloud/security/publicca/v1beta1", @@ -84310,32 +91779,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.SecurityCenter.V1": 40 + "Google.Cloud.SecurityCenter.V1": 53 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb": 40 + "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb": 53 } }, "java_multiple_files": { "valueCounts": { - "true": 40 + "true": 53 } }, "java_package": { "valueCounts": { - "com.google.cloud.securitycenter.v1": 40 + "com.google.cloud.securitycenter.v1": 53 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\SecurityCenter\\V1": 40 + "Google\\Cloud\\SecurityCenter\\V1": 53 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::SecurityCenter::V1": 40 + "Google::Cloud::SecurityCenter::V1": 53 } } }, @@ -84344,6 +91813,17 @@ "shortName": "SecurityCenter", "fullName": "google.cloud.securitycenter.v1.SecurityCenter", "methods": [ + { + "shortName": "BatchCreateResourceValueConfigs", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.BatchCreateResourceValueConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*}/resourceValueConfigs:batchCreate" + } + ] + }, { "shortName": "BulkMuteFindings", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.BulkMuteFindings", @@ -84382,6 +91862,25 @@ } ] }, + { + "shortName": "CreateEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.CreateEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/eventThreatDetectionSettings}/customModules" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/eventThreatDetectionSettings}/customModules" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/eventThreatDetectionSettings}/customModules" + } + ] + }, { "shortName": "CreateFinding", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.CreateFinding", @@ -84402,13 +91901,25 @@ "httpMethod": "POST", "path": "/v1/{parent=organizations/*}/muteConfigs" }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/muteConfigs" + }, { "httpMethod": "POST", "path": "/v1/{parent=folders/*}/muteConfigs" }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*}/muteConfigs" + }, { "httpMethod": "POST", "path": "/v1/{parent=projects/*}/muteConfigs" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/muteConfigs" } ] }, @@ -84480,6 +91991,25 @@ } ] }, + { + "shortName": "DeleteEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.DeleteEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/eventThreatDetectionSettings/customModules/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/eventThreatDetectionSettings/customModules/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/eventThreatDetectionSettings/customModules/*}" + } + ] + }, { "shortName": "DeleteMuteConfig", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.DeleteMuteConfig", @@ -84496,6 +92026,18 @@ { "httpMethod": "DELETE", "path": "/v1/{name=projects/*/muteConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/muteConfigs/*}" } ] }, @@ -84518,6 +92060,17 @@ } ] }, + { + "shortName": "DeleteResourceValueConfig", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.DeleteResourceValueConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/resourceValueConfigs/*}" + } + ] + }, { "shortName": "DeleteSecurityHealthAnalyticsCustomModule", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.DeleteSecurityHealthAnalyticsCustomModule", @@ -84556,6 +92109,25 @@ } ] }, + { + "shortName": "GetEffectiveEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetEffectiveEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/eventThreatDetectionSettings/effectiveCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/eventThreatDetectionSettings/effectiveCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/eventThreatDetectionSettings/effectiveCustomModules/*}" + } + ] + }, { "shortName": "GetEffectiveSecurityHealthAnalyticsCustomModule", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetEffectiveSecurityHealthAnalyticsCustomModule", @@ -84575,6 +92147,25 @@ } ] }, + { + "shortName": "GetEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/eventThreatDetectionSettings/customModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/eventThreatDetectionSettings/customModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/eventThreatDetectionSettings/customModules/*}" + } + ] + }, { "shortName": "GetIamPolicy", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetIamPolicy", @@ -84602,6 +92193,18 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/muteConfigs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/muteConfigs/*}" } ] }, @@ -84635,6 +92238,17 @@ } ] }, + { + "shortName": "GetResourceValueConfig", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetResourceValueConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/resourceValueConfigs/*}" + } + ] + }, { "shortName": "GetSecurityHealthAnalyticsCustomModule", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetSecurityHealthAnalyticsCustomModule", @@ -84654,6 +92268,17 @@ } ] }, + { + "shortName": "GetSimulation", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetSimulation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/simulations/*}" + } + ] + }, { "shortName": "GetSource", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetSource", @@ -84665,6 +92290,17 @@ } ] }, + { + "shortName": "GetValuedResource", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GetValuedResource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/simulations/*/valuedResources/*}" + } + ] + }, { "shortName": "GroupAssets", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.GroupAssets", @@ -84722,6 +92358,25 @@ } ] }, + { + "shortName": "ListAttackPaths", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListAttackPaths", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/simulations/*}/attackPaths" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/simulations/*/valuedResources/*}/attackPaths" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/simulations/*/attackExposureResults/*}/attackPaths" + } + ] + }, { "shortName": "ListBigQueryExports", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListBigQueryExports", @@ -84741,6 +92396,25 @@ } ] }, + { + "shortName": "ListDescendantEventThreatDetectionCustomModules", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListDescendantEventThreatDetectionCustomModules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/eventThreatDetectionSettings}/customModules:listDescendant" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/eventThreatDetectionSettings}/customModules:listDescendant" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/eventThreatDetectionSettings}/customModules:listDescendant" + } + ] + }, { "shortName": "ListDescendantSecurityHealthAnalyticsCustomModules", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListDescendantSecurityHealthAnalyticsCustomModules", @@ -84760,6 +92434,25 @@ } ] }, + { + "shortName": "ListEffectiveEventThreatDetectionCustomModules", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListEffectiveEventThreatDetectionCustomModules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/eventThreatDetectionSettings}/effectiveCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/eventThreatDetectionSettings}/effectiveCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/eventThreatDetectionSettings}/effectiveCustomModules" + } + ] + }, { "shortName": "ListEffectiveSecurityHealthAnalyticsCustomModules", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListEffectiveSecurityHealthAnalyticsCustomModules", @@ -84779,6 +92472,25 @@ } ] }, + { + "shortName": "ListEventThreatDetectionCustomModules", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListEventThreatDetectionCustomModules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/eventThreatDetectionSettings}/customModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/eventThreatDetectionSettings}/customModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/eventThreatDetectionSettings}/customModules" + } + ] + }, { "shortName": "ListFindings", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListFindings", @@ -84814,6 +92526,18 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*}/muteConfigs" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*/muteConfigs}" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*/muteConfigs}" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/muteConfigs}" } ] }, @@ -84836,6 +92560,17 @@ } ] }, + { + "shortName": "ListResourceValueConfigs", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListResourceValueConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*}/resourceValueConfigs" + } + ] + }, { "shortName": "ListSecurityHealthAnalyticsCustomModules", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListSecurityHealthAnalyticsCustomModules", @@ -84874,6 +92609,21 @@ } ] }, + { + "shortName": "ListValuedResources", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ListValuedResources", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/simulations/*}/valuedResources" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/simulations/*/attackExposureResults/*}/valuedResources" + } + ] + }, { "shortName": "RunAssetDiscovery", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.RunAssetDiscovery", @@ -84983,6 +92733,25 @@ } ] }, + { + "shortName": "UpdateEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.UpdateEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{event_threat_detection_custom_module.name=organizations/*/eventThreatDetectionSettings/customModules/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{event_threat_detection_custom_module.name=folders/*/eventThreatDetectionSettings/customModules/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{event_threat_detection_custom_module.name=projects/*/eventThreatDetectionSettings/customModules/*}" + } + ] + }, { "shortName": "UpdateExternalSystem", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.UpdateExternalSystem", @@ -85037,6 +92806,18 @@ { "httpMethod": "PATCH", "path": "/v1/{mute_config.name=projects/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{mute_config.name=organizations/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{mute_config.name=folders/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{mute_config.name=projects/*/locations/*/muteConfigs/*}" } ] }, @@ -85070,6 +92851,17 @@ } ] }, + { + "shortName": "UpdateResourceValueConfig", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.UpdateResourceValueConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{resource_value_config.name=organizations/*/resourceValueConfigs/*}" + } + ] + }, { "shortName": "UpdateSecurityHealthAnalyticsCustomModule", "fullName": "google.cloud.securitycenter.v1.SecurityCenter.UpdateSecurityHealthAnalyticsCustomModule", @@ -85130,6 +92922,25 @@ "path": "/v1/{source.name=organizations/*/sources/*}" } ] + }, + { + "shortName": "ValidateEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycenter.v1.SecurityCenter.ValidateEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/eventThreatDetectionSettings}:validateCustomModule" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/eventThreatDetectionSettings}:validateCustomModule" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/eventThreatDetectionSettings}:validateCustomModule" + } + ] } ] } @@ -85781,934 +93592,1611 @@ "nameInServiceConfig": "securitycenter.googleapis.com" }, { - "id": "google.cloud.securitycentermanagement.v1", - "directory": "google/cloud/securitycentermanagement/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "securitycentermanagement.googleapis.com", - "title": "Security Center Management API", - "description": "Management API for Security Command Center, a built-in security and risk management solution for Google Cloud. Use this API to programmatically update the settings and configuration of Security Command Center.", + "id": "google.cloud.securitycenter.v2", + "directory": "google/cloud/securitycenter/v2", + "version": "v2", + "majorVersion": "v2", + "hostName": "securitycenter.googleapis.com", + "title": "Security Command Center API", + "description": "Security Command Center API provides access to temporal views of assets and findings within an organization.", "importDirectories": [ "google/api", + "google/cloud/securitycenter/v2", "google/iam/v1", - "google/protobuf", - "google/rpc", - "google/type" + "google/longrunning", + "google/protobuf" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.SecurityCenterManagement.V1": 1 + "Google.Cloud.SecurityCenter.V2": 44 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/securitycentermanagement/apiv1/securitycentermanagementpb;securitycentermanagementpb": 1 + "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb": 44 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 44 } }, "java_package": { "valueCounts": { - "com.google.cloud.securitycentermanagement.v1": 1 + "com.google.cloud.securitycenter.v2": 44 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\SecurityCenterManagement\\V1": 1 + "Google\\Cloud\\SecurityCenter\\V2": 44 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::SecurityCenterManagement::V1": 1 + "Google::Cloud::SecurityCenter::V2": 44 } } }, "services": [ { - "shortName": "SecurityCenterManagement", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement", + "shortName": "SecurityCenter", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter", "methods": [ { - "shortName": "CreateEventThreatDetectionCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.CreateEventThreatDetectionCustomModule", + "shortName": "BatchCreateResourceValueConfigs", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.BatchCreateResourceValueConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules" + "path": "/v2/{parent=organizations/*}/resourceValueConfigs:batchCreate" }, { "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules" + "path": "/v2/{parent=organizations/*/locations/*}/resourceValueConfigs:batchCreate" } ] }, { - "shortName": "CreateSecurityHealthAnalyticsCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.CreateSecurityHealthAnalyticsCustomModule", + "shortName": "BulkMuteFindings", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.BulkMuteFindings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules" + "path": "/v2/{parent=organizations/*}/findings:bulkMute" }, { "httpMethod": "POST", - "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules" + "path": "/v2/{parent=organizations/*/locations/*}/findings:bulkMute" }, { "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules" + "path": "/v2/{parent=folders/*}/findings:bulkMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=folders/*/locations/*}/findings:bulkMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/findings:bulkMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/findings:bulkMute" } ] }, { - "shortName": "DeleteEventThreatDetectionCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.DeleteEventThreatDetectionCustomModule", + "shortName": "CreateBigQueryExport", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.CreateBigQueryExport", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*/locations/*}/bigQueryExports" }, { - "httpMethod": "DELETE", - "path": "/v1/{name=folders/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=folders/*/locations/*}/bigQueryExports" }, { - "httpMethod": "DELETE", - "path": "/v1/{name=organizations/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/bigQueryExports" } ] }, { - "shortName": "DeleteSecurityHealthAnalyticsCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.DeleteSecurityHealthAnalyticsCustomModule", + "shortName": "CreateFinding", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.CreateFinding", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/securityHealthAnalyticsCustomModules/*}" - }, - { - "httpMethod": "DELETE", - "path": "/v1/{name=folders/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*/sources/*/locations/*}/findings" }, { - "httpMethod": "DELETE", - "path": "/v1/{name=organizations/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*/sources/*}/findings" } ] }, { - "shortName": "GetEffectiveEventThreatDetectionCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetEffectiveEventThreatDetectionCustomModule", + "shortName": "CreateMuteConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.CreateMuteConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/effectiveEventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*/locations/*}/muteConfigs" }, { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/locations/*/effectiveEventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=folders/*/locations/*}/muteConfigs" }, { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/effectiveEventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/muteConfigs" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*}/muteConfigs" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=folders/*}/muteConfigs" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/muteConfigs" } ] }, { - "shortName": "GetEffectiveSecurityHealthAnalyticsCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetEffectiveSecurityHealthAnalyticsCustomModule", + "shortName": "CreateNotificationConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.CreateNotificationConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/effectiveSecurityHealthAnalyticsCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*/locations/*}/notificationConfigs" }, { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/locations/*/effectiveSecurityHealthAnalyticsCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=folders/*/locations/*}/notificationConfigs" }, { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/effectiveSecurityHealthAnalyticsCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/notificationConfigs" } ] }, { - "shortName": "GetEventThreatDetectionCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetEventThreatDetectionCustomModule", + "shortName": "CreateSource", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.CreateSource", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*}/sources" + } + ] + }, + { + "shortName": "DeleteBigQueryExport", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.DeleteBigQueryExport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/bigQueryExports/*}" }, { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=folders/*/locations/*/bigQueryExports/*}" }, { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/bigQueryExports/*}" } ] }, { - "shortName": "GetSecurityHealthAnalyticsCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetSecurityHealthAnalyticsCustomModule", + "shortName": "DeleteMuteConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.DeleteMuteConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/muteConfigs/*}" }, { - "httpMethod": "GET", - "path": "/v1/{name=folders/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/muteConfigs/*}" }, { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "DELETE", + "path": "/v2/{name=folders/*/muteConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=folders/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/muteConfigs/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/muteConfigs/*}" } ] }, { - "shortName": "ListDescendantEventThreatDetectionCustomModules", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListDescendantEventThreatDetectionCustomModules", + "shortName": "DeleteNotificationConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.DeleteNotificationConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules:listDescendant" + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/notificationConfigs/*}" }, { - "httpMethod": "GET", - "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules:listDescendant" + "httpMethod": "DELETE", + "path": "/v2/{name=folders/*/locations/*/notificationConfigs/*}" }, { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules:listDescendant" + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/notificationConfigs/*}" } ] }, { - "shortName": "ListDescendantSecurityHealthAnalyticsCustomModules", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListDescendantSecurityHealthAnalyticsCustomModules", + "shortName": "DeleteResourceValueConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.DeleteResourceValueConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules:listDescendant" - }, - { - "httpMethod": "GET", - "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules:listDescendant" + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/resourceValueConfigs/*}" }, { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules:listDescendant" + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/resourceValueConfigs/*}" } ] }, { - "shortName": "ListEffectiveEventThreatDetectionCustomModules", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListEffectiveEventThreatDetectionCustomModules", + "shortName": "GetBigQueryExport", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetBigQueryExport", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/effectiveEventThreatDetectionCustomModules" + "path": "/v2/{name=organizations/*/locations/*/bigQueryExports/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=folders/*/locations/*}/effectiveEventThreatDetectionCustomModules" + "path": "/v2/{name=folders/*/locations/*/bigQueryExports/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/effectiveEventThreatDetectionCustomModules" + "path": "/v2/{name=projects/*/locations/*/bigQueryExports/*}" } ] }, { - "shortName": "ListEffectiveSecurityHealthAnalyticsCustomModules", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListEffectiveSecurityHealthAnalyticsCustomModules", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{resource=organizations/*/sources/*}:getIamPolicy" + } + ] + }, + { + "shortName": "GetMuteConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetMuteConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/effectiveSecurityHealthAnalyticsCustomModules" + "path": "/v2/{name=organizations/*/muteConfigs/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=folders/*/locations/*}/effectiveSecurityHealthAnalyticsCustomModules" + "path": "/v2/{name=organizations/*/locations/*/muteConfigs/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/effectiveSecurityHealthAnalyticsCustomModules" - } - ] - }, - { - "shortName": "ListEventThreatDetectionCustomModules", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListEventThreatDetectionCustomModules", - "mode": "UNARY", - "bindings": [ + "path": "/v2/{name=folders/*/muteConfigs/*}" + }, { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules" + "path": "/v2/{name=folders/*/locations/*/muteConfigs/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules" + "path": "/v2/{name=projects/*/muteConfigs/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules" + "path": "/v2/{name=projects/*/locations/*/muteConfigs/*}" } ] }, { - "shortName": "ListSecurityHealthAnalyticsCustomModules", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListSecurityHealthAnalyticsCustomModules", + "shortName": "GetNotificationConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetNotificationConfig", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules" + "path": "/v2/{name=organizations/*/locations/*/notificationConfigs/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules" + "path": "/v2/{name=folders/*/locations/*/notificationConfigs/*}" }, { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules" + "path": "/v2/{name=projects/*/locations/*/notificationConfigs/*}" } ] }, { - "shortName": "SimulateSecurityHealthAnalyticsCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.SimulateSecurityHealthAnalyticsCustomModule", + "shortName": "GetResourceValueConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetResourceValueConfig", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules:simulate" - }, - { - "httpMethod": "POST", - "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules:simulate" + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/resourceValueConfigs/*}" }, { - "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules:simulate" + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/resourceValueConfigs/*}" } ] }, { - "shortName": "UpdateEventThreatDetectionCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.UpdateEventThreatDetectionCustomModule", + "shortName": "GetSimulation", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetSimulation", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{event_threat_detection_custom_module.name=projects/*/locations/*/eventThreatDetectionCustomModules/*}" - }, - { - "httpMethod": "PATCH", - "path": "/v1/{event_threat_detection_custom_module.name=folders/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/simulations/*}" }, { - "httpMethod": "PATCH", - "path": "/v1/{event_threat_detection_custom_module.name=organizations/*/locations/*/eventThreatDetectionCustomModules/*}" + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/simulations/*}" } ] }, { - "shortName": "UpdateSecurityHealthAnalyticsCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.UpdateSecurityHealthAnalyticsCustomModule", + "shortName": "GetSource", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetSource", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{security_health_analytics_custom_module.name=projects/*/locations/*/securityHealthAnalyticsCustomModules/*}" - }, + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/sources/*}" + } + ] + }, + { + "shortName": "GetValuedResource", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GetValuedResource", + "mode": "UNARY", + "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{security_health_analytics_custom_module.name=folders/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/simulations/*/valuedResources/*}" }, { - "httpMethod": "PATCH", - "path": "/v1/{security_health_analytics_custom_module.name=organizations/*/locations/*/securityHealthAnalyticsCustomModules/*}" + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/simulations/*/valuedResources/*}" } ] }, { - "shortName": "ValidateEventThreatDetectionCustomModule", - "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ValidateEventThreatDetectionCustomModule", + "shortName": "GroupFindings", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.GroupFindings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules:validate" + "path": "/v2/{parent=organizations/*/sources/*}/findings:group" }, { "httpMethod": "POST", - "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules:validate" + "path": "/v2/{parent=organizations/*/sources/*/locations/*}/findings:group" }, { "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules:validate" - } - ] - } - ] - } - ], - "configFile": "securitycentermanagement_v1.yaml", - "serviceConfigApiNames": [ - "google.cloud.location.Locations", - "google.cloud.securitycentermanagement.v1.SecurityCenterManagement" - ], - "nameInServiceConfig": "securitycentermanagement.googleapis.com" - }, - { - "id": "google.cloud.securityposture.v1", - "directory": "google/cloud/securityposture/v1", - "version": "v1", - "majorVersion": "v1", - "hostName": "securityposture.googleapis.com", - "title": "Security Posture API", - "description": "Security Posture is a comprehensive framework of policy sets that empowers organizations to define, assess early, deploy, and monitor their security measures in a unified way and helps simplify governance and reduces administrative toil.", - "importDirectories": [ - "google/api", - "google/cloud/securityposture/v1", - "google/longrunning", - "google/protobuf", - "google/type" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "": 4, - "Google.Cloud.Securityposture.V1": 1 - } - }, - "go_package": { - "valueCounts": { - "cloud.google.com/go/securityposture/apiv1/securityposturepb;securityposturepb": 5 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 5 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.securityposture.v1": 5 - } - }, - "php_namespace": { - "valueCounts": { - "": 4, - "Google\\Cloud\\Securityposture\\V1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "": 4, - "Google::Cloud::Securityposture::V1": 1 - } - } - }, - "services": [ - { - "shortName": "SecurityPosture", - "fullName": "google.cloud.securityposture.v1.SecurityPosture", - "methods": [ - { - "shortName": "CreatePosture", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.CreatePosture", - "mode": "UNARY", - "bindings": [ + "path": "/v2/{parent=folders/*/sources/*}/findings:group" + }, { "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/postures" + "path": "/v2/{parent=folders/*/sources/*/locations/*}/findings:group" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/sources/*}/findings:group" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/sources/*/locations/*}/findings:group" } ] }, { - "shortName": "CreatePostureDeployment", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.CreatePostureDeployment", + "shortName": "ListAttackPaths", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListAttackPaths", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/postureDeployments" + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/simulations/*}/attackPaths" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/simulations/*/valuedResources/*}/attackPaths" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*/simulations/*/valuedResources/*}/attackPaths" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/simulations/*/attackExposureResults/*}/attackPaths" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*/simulations/*/attackExposureResults/*}/attackPaths" } ] }, { - "shortName": "DeletePosture", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.DeletePosture", + "shortName": "ListBigQueryExports", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListBigQueryExports", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=organizations/*/locations/*/postures/*}" + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/bigQueryExports" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*/locations/*}/bigQueryExports" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/bigQueryExports" } ] }, { - "shortName": "DeletePostureDeployment", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.DeletePostureDeployment", + "shortName": "ListFindings", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListFindings", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=organizations/*/locations/*/postureDeployments/*}" + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/sources/*}/findings" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/sources/*/locations/*}/findings" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*/sources/*}/findings" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*/sources/*/locations/*}/findings" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/sources/*}/findings" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/sources/*/locations/*}/findings" } ] }, { - "shortName": "ExtractPosture", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.ExtractPosture", + "shortName": "ListMuteConfigs", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListMuteConfigs", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=organizations/*/locations/*}/postures:extract" + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*}/muteConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/muteConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*}/muteConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*/locations/*}/muteConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/muteConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/muteConfigs" } ] }, { - "shortName": "GetPosture", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.GetPosture", + "shortName": "ListNotificationConfigs", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListNotificationConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/postures/*}" + "path": "/v2/{parent=organizations/*/locations/*}/notificationConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*/locations/*}/notificationConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/notificationConfigs" } ] }, { - "shortName": "GetPostureDeployment", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.GetPostureDeployment", + "shortName": "ListResourceValueConfigs", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListResourceValueConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/postureDeployments/*}" + "path": "/v2/{parent=organizations/*}/resourceValueConfigs" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/resourceValueConfigs" } ] }, { - "shortName": "GetPostureTemplate", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.GetPostureTemplate", + "shortName": "ListSources", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListSources", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/postureTemplates/*}" + "path": "/v2/{parent=organizations/*}/sources" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=folders/*}/sources" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/sources" } ] }, { - "shortName": "ListPostureDeployments", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostureDeployments", + "shortName": "ListValuedResources", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.ListValuedResources", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/postureDeployments" + "path": "/v2/{parent=organizations/*/simulations/*}/valuedResources" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/simulations/*/attackExposureResults/*}/valuedResources" } ] }, { - "shortName": "ListPostureRevisions", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostureRevisions", + "shortName": "SetFindingState", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.SetFindingState", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/postures/*}:listRevisions" + "httpMethod": "POST", + "path": "/v2/{name=organizations/*/sources/*/findings/*}:setState" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=organizations/*/sources/*/locations/*/findings/*}:setState" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=folders/*/sources/*/findings/*}:setState" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=folders/*/sources/*/locations/*/findings/*}:setState" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/sources/*/findings/*}:setState" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/sources/*/locations/*/findings/*}:setState" } ] }, { - "shortName": "ListPostureTemplates", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostureTemplates", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.SetIamPolicy", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/postureTemplates" + "httpMethod": "POST", + "path": "/v2/{resource=organizations/*/sources/*}:setIamPolicy" } ] }, { - "shortName": "ListPostures", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostures", + "shortName": "SetMute", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.SetMute", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/postures" + "httpMethod": "POST", + "path": "/v2/{name=organizations/*/sources/*/findings/*}:setMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=organizations/*/sources/*/locations/*/findings/*}:setMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=folders/*/sources/*/findings/*}:setMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=folders/*/sources/*/locations/*/findings/*}:setMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/sources/*/findings/*}:setMute" + }, + { + "httpMethod": "POST", + "path": "/v2/{name=projects/*/sources/*/locations/*/findings/*}:setMute" } ] }, { - "shortName": "UpdatePosture", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.UpdatePosture", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{resource=organizations/*/sources/*}:testIamPermissions" + } + ] + }, + { + "shortName": "UpdateBigQueryExport", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateBigQueryExport", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{posture.name=organizations/*/locations/*/postures/*}" + "path": "/v2/{big_query_export.name=organizations/*/locations/*/bigQueryExports/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{big_query_export.name=folders/*/locations/*/bigQueryExports/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{big_query_export.name=projects/*/locations/*/bigQueryExports/*}" } ] }, { - "shortName": "UpdatePostureDeployment", - "fullName": "google.cloud.securityposture.v1.SecurityPosture.UpdatePostureDeployment", + "shortName": "UpdateExternalSystem", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateExternalSystem", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{posture_deployment.name=organizations/*/locations/*/postureDeployments/*}" + "path": "/v2/{external_system.name=organizations/*/sources/*/findings/*/externalSystems/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{external_system.name=organizations/*/sources/*/locations/*/findings/*/externalSystems/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{external_system.name=folders/*/sources/*/findings/*/externalSystems/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{external_system.name=folders/*/sources/*/locations/*/findings/*/externalSystems/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{external_system.name=projects/*/sources/*/findings/*/externalSystems/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{external_system.name=projects/*/sources/*/locations/*/findings/*/externalSystems/*}" + } + ] + }, + { + "shortName": "UpdateFinding", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateFinding", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{finding.name=organizations/*/sources/*/findings/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{finding.name=organizations/*/sources/*/locations/*/findings/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{finding.name=folders/*/sources/*/findings/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{finding.name=folders/*/sources/*/locations/*/findings/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{finding.name=projects/*/sources/*/findings/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{finding.name=projects/*/sources/*/locations/*/findings/*}" + } + ] + }, + { + "shortName": "UpdateMuteConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateMuteConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{mute_config.name=organizations/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{mute_config.name=organizations/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{mute_config.name=folders/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{mute_config.name=folders/*/locations/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{mute_config.name=projects/*/muteConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{mute_config.name=projects/*/locations/*/muteConfigs/*}" + } + ] + }, + { + "shortName": "UpdateNotificationConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateNotificationConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{notification_config.name=organizations/*/locations/*/notificationConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{notification_config.name=folders/*/locations/*/notificationConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{notification_config.name=projects/*/locations/*/notificationConfigs/*}" + } + ] + }, + { + "shortName": "UpdateResourceValueConfig", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateResourceValueConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{resource_value_config.name=organizations/*/resourceValueConfigs/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{resource_value_config.name=organizations/*/locations/*/resourceValueConfigs/*}" + } + ] + }, + { + "shortName": "UpdateSecurityMarks", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateSecurityMarks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=organizations/*/sources/*/findings/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=organizations/*/assets/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=organizations/*/sources/*/locations/*/findings/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=folders/*/sources/*/findings/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=folders/*/assets/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=folders/*/sources/*/locations/*/findings/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=projects/*/sources/*/findings/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=projects/*/assets/*/securityMarks}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{security_marks.name=projects/*/sources/*/locations/*/findings/*/securityMarks}" + } + ] + }, + { + "shortName": "UpdateSource", + "fullName": "google.cloud.securitycenter.v2.SecurityCenter.UpdateSource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{source.name=organizations/*/sources/*}" } ] } ] } ], - "configFile": "securityposture_v1.yaml", + "configFile": "securitycenter_v2.yaml", "serviceConfigApiNames": [ - "google.cloud.location.Locations", - "google.cloud.securityposture.v1.SecurityPosture", + "google.cloud.securitycenter.v2.SecurityCenter", "google.longrunning.Operations" ], - "nameInServiceConfig": "securityposture.googleapis.com" + "nameInServiceConfig": "securitycenter.googleapis.com" }, { - "id": "google.cloud.servicedirectory.v1", - "directory": "google/cloud/servicedirectory/v1", + "id": "google.cloud.securitycentermanagement.v1", + "directory": "google/cloud/securitycentermanagement/v1", "version": "v1", "majorVersion": "v1", - "hostName": "servicedirectory.googleapis.com", - "title": "Service Directory API", - "description": "Service Directory is a platform for discovering, publishing, and connecting services.", + "hostName": "securitycentermanagement.googleapis.com", + "title": "Security Center Management API", + "description": "Management API for Security Command Center, a built-in security and risk management solution for Google Cloud. Use this API to programmatically update the settings and configuration of Security Command Center.", "importDirectories": [ "google/api", - "google/cloud/servicedirectory/v1", "google/iam/v1", - "google/protobuf" + "google/protobuf", + "google/rpc", + "google/type" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 5 - } - }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.ServiceDirectory.V1": 5 + "Google.Cloud.SecurityCenterManagement.V1": 1 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb;servicedirectorypb": 5 + "cloud.google.com/go/securitycentermanagement/apiv1/securitycentermanagementpb;securitycentermanagementpb": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.cloud.servicedirectory.v1": 5 + "com.google.cloud.securitycentermanagement.v1": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\ServiceDirectory\\V1": 5 + "Google\\Cloud\\SecurityCenterManagement\\V1": 1 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::ServiceDirectory::V1": 5 + "Google::Cloud::SecurityCenterManagement::V1": 1 } } }, "services": [ { - "shortName": "LookupService", - "fullName": "google.cloud.servicedirectory.v1.LookupService", + "shortName": "SecurityCenterManagement", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement", "methods": [ { - "shortName": "ResolveService", - "fullName": "google.cloud.servicedirectory.v1.LookupService.ResolveService", + "shortName": "CreateEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.CreateEventThreatDetectionCustomModule", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*}:resolve" + "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules" } ] - } - ] - }, - { - "shortName": "RegistrationService", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService", - "methods": [ + }, { - "shortName": "CreateEndpoint", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.CreateEndpoint", + "shortName": "CreateSecurityHealthAnalyticsCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.CreateSecurityHealthAnalyticsCustomModule", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" + "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules" } ] }, { - "shortName": "CreateNamespace", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.CreateNamespace", + "shortName": "DeleteEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.DeleteEventThreatDetectionCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*}/namespaces" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/eventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/locations/*/eventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/locations/*/eventThreatDetectionCustomModules/*}" } ] }, { - "shortName": "CreateService", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.CreateService", + "shortName": "DeleteSecurityHealthAnalyticsCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.DeleteSecurityHealthAnalyticsCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*/locations/*/namespaces/*}/services" + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/securityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=folders/*/locations/*/securityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/locations/*/securityHealthAnalyticsCustomModules/*}" } ] }, { - "shortName": "DeleteEndpoint", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.DeleteEndpoint", + "shortName": "GetEffectiveEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetEffectiveEventThreatDetectionCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/effectiveEventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/effectiveEventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/effectiveEventThreatDetectionCustomModules/*}" } ] }, { - "shortName": "DeleteNamespace", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.DeleteNamespace", + "shortName": "GetEffectiveSecurityHealthAnalyticsCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetEffectiveSecurityHealthAnalyticsCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/namespaces/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/effectiveSecurityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/effectiveSecurityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/effectiveSecurityHealthAnalyticsCustomModules/*}" } ] }, { - "shortName": "DeleteService", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.DeleteService", + "shortName": "GetEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetEventThreatDetectionCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*}" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/eventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/eventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/eventThreatDetectionCustomModules/*}" } ] }, { - "shortName": "GetEndpoint", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetEndpoint", + "shortName": "GetSecurityCenterService", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetSecurityCenterService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + "path": "/v1/{name=projects/*/locations/*/securityCenterServices/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/securityCenterServices/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/securityCenterServices/*}" } ] }, { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetIamPolicy", + "shortName": "GetSecurityHealthAnalyticsCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.GetSecurityHealthAnalyticsCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/namespaces/*}:getIamPolicy" + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/securityHealthAnalyticsCustomModules/*}" }, { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:getIamPolicy" + "httpMethod": "GET", + "path": "/v1/{name=folders/*/locations/*/securityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/securityHealthAnalyticsCustomModules/*}" } ] }, { - "shortName": "GetNamespace", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetNamespace", + "shortName": "ListDescendantEventThreatDetectionCustomModules", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListDescendantEventThreatDetectionCustomModules", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/namespaces/*}" + "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules:listDescendant" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules:listDescendant" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules:listDescendant" } ] }, { - "shortName": "GetService", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetService", + "shortName": "ListDescendantSecurityHealthAnalyticsCustomModules", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListDescendantSecurityHealthAnalyticsCustomModules", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*}" + "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules:listDescendant" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules:listDescendant" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules:listDescendant" } ] }, { - "shortName": "ListEndpoints", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.ListEndpoints", + "shortName": "ListEffectiveEventThreatDetectionCustomModules", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListEffectiveEventThreatDetectionCustomModules", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" + "path": "/v1/{parent=projects/*/locations/*}/effectiveEventThreatDetectionCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/effectiveEventThreatDetectionCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/effectiveEventThreatDetectionCustomModules" } ] }, { - "shortName": "ListNamespaces", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.ListNamespaces", + "shortName": "ListEffectiveSecurityHealthAnalyticsCustomModules", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListEffectiveSecurityHealthAnalyticsCustomModules", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/namespaces" + "path": "/v1/{parent=projects/*/locations/*}/effectiveSecurityHealthAnalyticsCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/effectiveSecurityHealthAnalyticsCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/effectiveSecurityHealthAnalyticsCustomModules" } ] }, { - "shortName": "ListServices", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.ListServices", + "shortName": "ListEventThreatDetectionCustomModules", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListEventThreatDetectionCustomModules", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*/namespaces/*}/services" + "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules" } ] }, { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.SetIamPolicy", + "shortName": "ListSecurityCenterServices", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListSecurityCenterServices", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/namespaces/*}:setIamPolicy" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/securityCenterServices" }, { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:setIamPolicy" + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/securityCenterServices" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/securityCenterServices" } ] }, { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.TestIamPermissions", + "shortName": "ListSecurityHealthAnalyticsCustomModules", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ListSecurityHealthAnalyticsCustomModules", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/namespaces/*}:testIamPermissions" + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules" }, { - "httpMethod": "POST", - "path": "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:testIamPermissions" + "httpMethod": "GET", + "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules" } ] }, { - "shortName": "UpdateEndpoint", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.UpdateEndpoint", + "shortName": "SimulateSecurityHealthAnalyticsCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.SimulateSecurityHealthAnalyticsCustomModule", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{endpoint.name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/securityHealthAnalyticsCustomModules:simulate" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*}/securityHealthAnalyticsCustomModules:simulate" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/securityHealthAnalyticsCustomModules:simulate" } ] }, { - "shortName": "UpdateNamespace", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.UpdateNamespace", + "shortName": "UpdateEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.UpdateEventThreatDetectionCustomModule", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{namespace.name=projects/*/locations/*/namespaces/*}" + "path": "/v1/{event_threat_detection_custom_module.name=projects/*/locations/*/eventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{event_threat_detection_custom_module.name=folders/*/locations/*/eventThreatDetectionCustomModules/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{event_threat_detection_custom_module.name=organizations/*/locations/*/eventThreatDetectionCustomModules/*}" } ] }, { - "shortName": "UpdateService", - "fullName": "google.cloud.servicedirectory.v1.RegistrationService.UpdateService", + "shortName": "UpdateSecurityCenterService", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.UpdateSecurityCenterService", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{service.name=projects/*/locations/*/namespaces/*/services/*}" + "path": "/v1/{security_center_service.name=projects/*/locations/*/securityCenterServices/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{security_center_service.name=folders/*/locations/*/securityCenterServices/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{security_center_service.name=organizations/*/locations/*/securityCenterServices/*}" + } + ] + }, + { + "shortName": "UpdateSecurityHealthAnalyticsCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.UpdateSecurityHealthAnalyticsCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{security_health_analytics_custom_module.name=projects/*/locations/*/securityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{security_health_analytics_custom_module.name=folders/*/locations/*/securityHealthAnalyticsCustomModules/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{security_health_analytics_custom_module.name=organizations/*/locations/*/securityHealthAnalyticsCustomModules/*}" + } + ] + }, + { + "shortName": "ValidateEventThreatDetectionCustomModule", + "fullName": "google.cloud.securitycentermanagement.v1.SecurityCenterManagement.ValidateEventThreatDetectionCustomModule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/eventThreatDetectionCustomModules:validate" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=folders/*/locations/*}/eventThreatDetectionCustomModules:validate" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/eventThreatDetectionCustomModules:validate" } ] } ] } ], - "configFile": "servicedirectory_v1.yaml", + "configFile": "securitycentermanagement_v1.yaml", "serviceConfigApiNames": [ "google.cloud.location.Locations", - "google.cloud.servicedirectory.v1.LookupService", - "google.cloud.servicedirectory.v1.RegistrationService" + "google.cloud.securitycentermanagement.v1.SecurityCenterManagement" ], - "nameInServiceConfig": "servicedirectory.googleapis.com" + "nameInServiceConfig": "securitycentermanagement.googleapis.com" }, { - "id": "google.cloud.servicedirectory.v1beta1", - "directory": "google/cloud/servicedirectory/v1beta1", - "version": "v1beta1", + "id": "google.cloud.securityposture.v1", + "directory": "google/cloud/securityposture/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "securityposture.googleapis.com", + "title": "Security Posture API", + "description": "Security Posture is a comprehensive framework of policy sets that empowers organizations to define, assess early, deploy, and monitor their security measures in a unified way and helps simplify governance and reduces administrative toil.", + "importDirectories": [ + "google/api", + "google/cloud/securityposture/v1", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "": 4, + "Google.Cloud.Securityposture.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/securityposture/apiv1/securityposturepb;securityposturepb": 5 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 5 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.securityposture.v1": 5 + } + }, + "php_namespace": { + "valueCounts": { + "": 4, + "Google\\Cloud\\Securityposture\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "": 4, + "Google::Cloud::Securityposture::V1": 1 + } + } + }, + "services": [ + { + "shortName": "SecurityPosture", + "fullName": "google.cloud.securityposture.v1.SecurityPosture", + "methods": [ + { + "shortName": "CreatePosture", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.CreatePosture", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/postures" + } + ] + }, + { + "shortName": "CreatePostureDeployment", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.CreatePostureDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/postureDeployments" + } + ] + }, + { + "shortName": "DeletePosture", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.DeletePosture", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/locations/*/postures/*}" + } + ] + }, + { + "shortName": "DeletePostureDeployment", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.DeletePostureDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=organizations/*/locations/*/postureDeployments/*}" + } + ] + }, + { + "shortName": "ExtractPosture", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.ExtractPosture", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=organizations/*/locations/*}/postures:extract" + } + ] + }, + { + "shortName": "GetPosture", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.GetPosture", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/postures/*}" + } + ] + }, + { + "shortName": "GetPostureDeployment", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.GetPostureDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/postureDeployments/*}" + } + ] + }, + { + "shortName": "GetPostureTemplate", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.GetPostureTemplate", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/postureTemplates/*}" + } + ] + }, + { + "shortName": "ListPostureDeployments", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostureDeployments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/postureDeployments" + } + ] + }, + { + "shortName": "ListPostureRevisions", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostureRevisions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/postures/*}:listRevisions" + } + ] + }, + { + "shortName": "ListPostureTemplates", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostureTemplates", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/postureTemplates" + } + ] + }, + { + "shortName": "ListPostures", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.ListPostures", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/postures" + } + ] + }, + { + "shortName": "UpdatePosture", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.UpdatePosture", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{posture.name=organizations/*/locations/*/postures/*}" + } + ] + }, + { + "shortName": "UpdatePostureDeployment", + "fullName": "google.cloud.securityposture.v1.SecurityPosture.UpdatePostureDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{posture_deployment.name=organizations/*/locations/*/postureDeployments/*}" + } + ] + } + ] + } + ], + "configFile": "securityposture_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.securityposture.v1.SecurityPosture", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "securityposture.googleapis.com" + }, + { + "id": "google.cloud.servicedirectory.v1", + "directory": "google/cloud/servicedirectory/v1", + "version": "v1", "majorVersion": "v1", "hostName": "servicedirectory.googleapis.com", "title": "Service Directory API", "description": "Service Directory is a platform for discovering, publishing, and connecting services.", "importDirectories": [ "google/api", - "google/cloud/servicedirectory/v1beta1", + "google/cloud/servicedirectory/v1", "google/iam/v1", "google/protobuf" ], @@ -86720,12 +95208,12 @@ }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.ServiceDirectory.V1Beta1": 5 + "Google.Cloud.ServiceDirectory.V1": 5 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/servicedirectory/apiv1beta1/servicedirectorypb;servicedirectorypb": 5 + "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb;servicedirectorypb": 5 } }, "java_multiple_files": { @@ -86735,33 +95223,33 @@ }, "java_package": { "valueCounts": { - "com.google.cloud.servicedirectory.v1beta1": 5 + "com.google.cloud.servicedirectory.v1": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\ServiceDirectory\\V1beta1": 5 + "Google\\Cloud\\ServiceDirectory\\V1": 5 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::ServiceDirectory::V1beta1": 5 + "Google::Cloud::ServiceDirectory::V1": 5 } } }, "services": [ { "shortName": "LookupService", - "fullName": "google.cloud.servicedirectory.v1beta1.LookupService", + "fullName": "google.cloud.servicedirectory.v1.LookupService", "methods": [ { "shortName": "ResolveService", - "fullName": "google.cloud.servicedirectory.v1beta1.LookupService.ResolveService", + "fullName": "google.cloud.servicedirectory.v1.LookupService.ResolveService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*}:resolve" + "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*}:resolve" } ] } @@ -86769,364 +95257,658 @@ }, { "shortName": "RegistrationService", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService", "methods": [ { "shortName": "CreateEndpoint", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.CreateEndpoint", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.CreateEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" + "path": "/v1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" } ] }, { "shortName": "CreateNamespace", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.CreateNamespace", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.CreateNamespace", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*}/namespaces" + "path": "/v1/{parent=projects/*/locations/*}/namespaces" } ] }, { "shortName": "CreateService", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.CreateService", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.CreateService", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*}/services" + "path": "/v1/{parent=projects/*/locations/*/namespaces/*}/services" } ] }, { "shortName": "DeleteEndpoint", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.DeleteEndpoint", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.DeleteEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" } ] }, { "shortName": "DeleteNamespace", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.DeleteNamespace", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.DeleteNamespace", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*}" + "path": "/v1/{name=projects/*/locations/*/namespaces/*}" } ] }, { "shortName": "DeleteService", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.DeleteService", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.DeleteService", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*}" + "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*}" } ] }, { "shortName": "GetEndpoint", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetEndpoint", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" } ] }, { "shortName": "GetIamPolicy", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetIamPolicy", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*}:getIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/services/*}:getIamPolicy" + "path": "/v1/{resource=projects/*/locations/*/namespaces/*}:getIamPolicy" }, { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/workloads/*}:getIamPolicy" + "path": "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:getIamPolicy" } ] }, { "shortName": "GetNamespace", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetNamespace", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetNamespace", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*}" + "path": "/v1/{name=projects/*/locations/*/namespaces/*}" } ] }, { "shortName": "GetService", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetService", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.GetService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*}" + "path": "/v1/{name=projects/*/locations/*/namespaces/*/services/*}" } ] }, { "shortName": "ListEndpoints", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.ListEndpoints", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.ListEndpoints", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" + "path": "/v1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" } ] }, { "shortName": "ListNamespaces", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.ListNamespaces", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.ListNamespaces", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*}/namespaces" + "path": "/v1/{parent=projects/*/locations/*}/namespaces" } ] }, { "shortName": "ListServices", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.ListServices", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.ListServices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*}/services" + "path": "/v1/{parent=projects/*/locations/*/namespaces/*}/services" } ] }, { "shortName": "SetIamPolicy", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.SetIamPolicy", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.SetIamPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*}:setIamPolicy" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/services/*}:setIamPolicy" + "path": "/v1/{resource=projects/*/locations/*/namespaces/*}:setIamPolicy" }, { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/workloads/*}:setIamPolicy" + "path": "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:setIamPolicy" } ] }, { "shortName": "TestIamPermissions", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.TestIamPermissions", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.TestIamPermissions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*}:testIamPermissions" - }, - { - "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/services/*}:testIamPermissions" + "path": "/v1/{resource=projects/*/locations/*/namespaces/*}:testIamPermissions" }, { "httpMethod": "POST", - "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/workloads/*}:testIamPermissions" + "path": "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:testIamPermissions" } ] }, { "shortName": "UpdateEndpoint", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.UpdateEndpoint", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.UpdateEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{endpoint.name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + "path": "/v1/{endpoint.name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" } ] }, { "shortName": "UpdateNamespace", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.UpdateNamespace", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.UpdateNamespace", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{namespace.name=projects/*/locations/*/namespaces/*}" + "path": "/v1/{namespace.name=projects/*/locations/*/namespaces/*}" } ] }, { "shortName": "UpdateService", - "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.UpdateService", + "fullName": "google.cloud.servicedirectory.v1.RegistrationService.UpdateService", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1beta1/{service.name=projects/*/locations/*/namespaces/*/services/*}" + "path": "/v1/{service.name=projects/*/locations/*/namespaces/*/services/*}" } ] } ] } ], - "configFile": "servicedirectory_v1beta1.yaml", + "configFile": "servicedirectory_v1.yaml", "serviceConfigApiNames": [ "google.cloud.location.Locations", - "google.cloud.servicedirectory.v1beta1.LookupService", - "google.cloud.servicedirectory.v1beta1.RegistrationService" + "google.cloud.servicedirectory.v1.LookupService", + "google.cloud.servicedirectory.v1.RegistrationService" ], "nameInServiceConfig": "servicedirectory.googleapis.com" }, { - "id": "google.cloud.servicehealth.v1", - "directory": "google/cloud/servicehealth/v1", - "version": "v1", + "id": "google.cloud.servicedirectory.v1beta1", + "directory": "google/cloud/servicedirectory/v1beta1", + "version": "v1beta1", "majorVersion": "v1", - "hostName": "servicehealth.googleapis.com", - "title": "Service Health API", - "description": "Personalized Service Health helps you gain visibility into disruptive events impacting Google Cloud products.", + "hostName": "servicedirectory.googleapis.com", + "title": "Service Directory API", + "description": "Service Directory is a platform for discovering, publishing, and connecting services.", "importDirectories": [ "google/api", - "google/cloud/servicehealth/v1", + "google/cloud/servicedirectory/v1beta1", + "google/iam/v1", "google/protobuf" ], "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 5 + } + }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.ServiceHealth.V1": 2 + "Google.Cloud.ServiceDirectory.V1Beta1": 5 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/servicehealth/apiv1/servicehealthpb;servicehealthpb": 2 + "cloud.google.com/go/servicedirectory/apiv1beta1/servicedirectorypb;servicedirectorypb": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.cloud.servicehealth.v1": 2 + "com.google.cloud.servicedirectory.v1beta1": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\ServiceHealth\\V1": 2 + "Google\\Cloud\\ServiceDirectory\\V1beta1": 5 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::ServiceHealth::V1": 2 + "Google::Cloud::ServiceDirectory::V1beta1": 5 } } }, "services": [ { - "shortName": "ServiceHealth", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth", + "shortName": "LookupService", + "fullName": "google.cloud.servicedirectory.v1beta1.LookupService", "methods": [ { - "shortName": "GetEvent", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth.GetEvent", + "shortName": "ResolveService", + "fullName": "google.cloud.servicedirectory.v1beta1.LookupService.ResolveService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/locations/*/events/*}" + "httpMethod": "POST", + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*}:resolve" + } + ] + } + ] + }, + { + "shortName": "RegistrationService", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService", + "methods": [ + { + "shortName": "CreateEndpoint", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.CreateEndpoint", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" } ] }, { - "shortName": "GetOrganizationEvent", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth.GetOrganizationEvent", + "shortName": "CreateNamespace", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.CreateNamespace", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/organizationEvents/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/namespaces" } ] }, { - "shortName": "GetOrganizationImpact", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth.GetOrganizationImpact", + "shortName": "CreateService", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.CreateService", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=organizations/*/locations/*/organizationImpacts/*}" + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*}/services" } ] }, { - "shortName": "ListEvents", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth.ListEvents", + "shortName": "DeleteEndpoint", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.DeleteEndpoint", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=projects/*/locations/*}/events" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" } ] }, { - "shortName": "ListOrganizationEvents", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth.ListOrganizationEvents", + "shortName": "DeleteNamespace", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.DeleteNamespace", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/organizationEvents" + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*}" } ] }, { - "shortName": "ListOrganizationImpacts", - "fullName": "google.cloud.servicehealth.v1.ServiceHealth.ListOrganizationImpacts", + "shortName": "DeleteService", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.DeleteService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*}" + } + ] + }, + { + "shortName": "GetEndpoint", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetEndpoint", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=organizations/*/locations/*}/organizationImpacts" + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" } ] - } - ] - } - ], - "configFile": "servicehealth_v1.yaml", - "serviceConfigApiNames": [ - "google.cloud.location.Locations", - "google.cloud.servicehealth.v1.ServiceHealth" + }, + { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/services/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/workloads/*}:getIamPolicy" + } + ] + }, + { + "shortName": "GetNamespace", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetNamespace", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*}" + } + ] + }, + { + "shortName": "GetService", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.GetService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/namespaces/*/services/*}" + } + ] + }, + { + "shortName": "ListEndpoints", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.ListEndpoints", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" + } + ] + }, + { + "shortName": "ListNamespaces", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.ListNamespaces", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/namespaces" + } + ] + }, + { + "shortName": "ListServices", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.ListServices", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*/namespaces/*}/services" + } + ] + }, + { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.SetIamPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/services/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/workloads/*}:setIamPolicy" + } + ] + }, + { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.TestIamPermissions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/services/*}:testIamPermissions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{resource=projects/*/locations/*/namespaces/*/workloads/*}:testIamPermissions" + } + ] + }, + { + "shortName": "UpdateEndpoint", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.UpdateEndpoint", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{endpoint.name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" + } + ] + }, + { + "shortName": "UpdateNamespace", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.UpdateNamespace", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{namespace.name=projects/*/locations/*/namespaces/*}" + } + ] + }, + { + "shortName": "UpdateService", + "fullName": "google.cloud.servicedirectory.v1beta1.RegistrationService.UpdateService", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{service.name=projects/*/locations/*/namespaces/*/services/*}" + } + ] + } + ] + } + ], + "configFile": "servicedirectory_v1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.servicedirectory.v1beta1.LookupService", + "google.cloud.servicedirectory.v1beta1.RegistrationService" + ], + "nameInServiceConfig": "servicedirectory.googleapis.com" + }, + { + "id": "google.cloud.servicehealth.v1", + "directory": "google/cloud/servicehealth/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "servicehealth.googleapis.com", + "title": "Service Health API", + "description": "Personalized Service Health helps you gain visibility into disruptive events impacting Google Cloud products.", + "importDirectories": [ + "google/api", + "google/cloud/servicehealth/v1", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ServiceHealth.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/servicehealth/apiv1/servicehealthpb;servicehealthpb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.servicehealth.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ServiceHealth\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ServiceHealth::V1": 2 + } + } + }, + "services": [ + { + "shortName": "ServiceHealth", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth", + "methods": [ + { + "shortName": "GetEvent", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth.GetEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/events/*}" + } + ] + }, + { + "shortName": "GetOrganizationEvent", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth.GetOrganizationEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/organizationEvents/*}" + } + ] + }, + { + "shortName": "GetOrganizationImpact", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth.GetOrganizationImpact", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=organizations/*/locations/*/organizationImpacts/*}" + } + ] + }, + { + "shortName": "ListEvents", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth.ListEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/events" + } + ] + }, + { + "shortName": "ListOrganizationEvents", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth.ListOrganizationEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/organizationEvents" + } + ] + }, + { + "shortName": "ListOrganizationImpacts", + "fullName": "google.cloud.servicehealth.v1.ServiceHealth.ListOrganizationImpacts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=organizations/*/locations/*}/organizationImpacts" + } + ] + } + ] + } + ], + "configFile": "servicehealth_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.servicehealth.v1.ServiceHealth" ], "nameInServiceConfig": "servicehealth.googleapis.com" }, @@ -88144,6 +96926,17 @@ "shortName": "SqlInstancesService", "fullName": "google.cloud.sql.v1.SqlInstancesService", "methods": [ + { + "shortName": "AcquireSsrsLease", + "fullName": "google.cloud.sql.v1.SqlInstancesService.AcquireSsrsLease", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/projects/{project}/instances/{instance}/acquireSsrsLease" + } + ] + }, { "shortName": "AddServerCa", "fullName": "google.cloud.sql.v1.SqlInstancesService.AddServerCa", @@ -88353,6 +97146,17 @@ } ] }, + { + "shortName": "ReleaseSsrsLease", + "fullName": "google.cloud.sql.v1.SqlInstancesService.ReleaseSsrsLease", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/projects/{project}/instances/{instance}/releaseSsrsLease" + } + ] + }, { "shortName": "RescheduleMaintenance", "fullName": "google.cloud.sql.v1.SqlInstancesService.RescheduleMaintenance", @@ -88892,6 +97696,17 @@ "shortName": "SqlInstancesService", "fullName": "google.cloud.sql.v1beta4.SqlInstancesService", "methods": [ + { + "shortName": "AcquireSsrsLease", + "fullName": "google.cloud.sql.v1beta4.SqlInstancesService.AcquireSsrsLease", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/sql/v1beta4/projects/{project}/instances/{instance}/acquireSsrsLease" + } + ] + }, { "shortName": "AddServerCa", "fullName": "google.cloud.sql.v1beta4.SqlInstancesService.AddServerCa", @@ -89101,6 +97916,17 @@ } ] }, + { + "shortName": "ReleaseSsrsLease", + "fullName": "google.cloud.sql.v1beta4.SqlInstancesService.ReleaseSsrsLease", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/sql/v1beta4/projects/{project}/instances/{instance}/releaseSsrsLease" + } + ] + }, { "shortName": "RescheduleMaintenance", "fullName": "google.cloud.sql.v1beta4.SqlInstancesService.RescheduleMaintenance", @@ -93709,6 +102535,17 @@ } ] }, + { + "shortName": "CreateClip", + "fullName": "google.cloud.video.livestream.v1.LivestreamService.CreateClip", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/channels/*}/clips" + } + ] + }, { "shortName": "CreateEvent", "fullName": "google.cloud.video.livestream.v1.LivestreamService.CreateEvent", @@ -93753,6 +102590,17 @@ } ] }, + { + "shortName": "DeleteClip", + "fullName": "google.cloud.video.livestream.v1.LivestreamService.DeleteClip", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/channels/*/clips/*}" + } + ] + }, { "shortName": "DeleteEvent", "fullName": "google.cloud.video.livestream.v1.LivestreamService.DeleteEvent", @@ -93797,6 +102645,17 @@ } ] }, + { + "shortName": "GetClip", + "fullName": "google.cloud.video.livestream.v1.LivestreamService.GetClip", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/channels/*/clips/*}" + } + ] + }, { "shortName": "GetEvent", "fullName": "google.cloud.video.livestream.v1.LivestreamService.GetEvent", @@ -93852,6 +102711,17 @@ } ] }, + { + "shortName": "ListClips", + "fullName": "google.cloud.video.livestream.v1.LivestreamService.ListClips", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/channels/*}/clips" + } + ] + }, { "shortName": "ListEvents", "fullName": "google.cloud.video.livestream.v1.LivestreamService.ListEvents", @@ -93957,17 +102827,17 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/video/stitcher/apiv1/stitcherpb;stitcherpb": 9 + "cloud.google.com/go/video/stitcher/apiv1/stitcherpb;stitcherpb": 11 } }, "java_multiple_files": { "valueCounts": { - "true": 9 + "true": 11 } }, "java_package": { "valueCounts": { - "com.google.cloud.video.stitcher.v1": 9 + "com.google.cloud.video.stitcher.v1": 11 } } }, @@ -94020,6 +102890,17 @@ } ] }, + { + "shortName": "CreateVodConfig", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.CreateVodConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/vodConfigs" + } + ] + }, { "shortName": "CreateVodSession", "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.CreateVodSession", @@ -94064,6 +102945,17 @@ } ] }, + { + "shortName": "DeleteVodConfig", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.DeleteVodConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/vodConfigs/*}" + } + ] + }, { "shortName": "GetCdnKey", "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetCdnKey", @@ -94130,6 +103022,17 @@ } ] }, + { + "shortName": "GetVodConfig", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetVodConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/vodConfigs/*}" + } + ] + }, { "shortName": "GetVodSession", "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.GetVodSession", @@ -94207,6 +103110,17 @@ } ] }, + { + "shortName": "ListVodConfigs", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListVodConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/vodConfigs" + } + ] + }, { "shortName": "ListVodStitchDetails", "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.ListVodStitchDetails", @@ -94229,6 +103143,17 @@ } ] }, + { + "shortName": "UpdateLiveConfig", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.UpdateLiveConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{live_config.name=projects/*/locations/*/liveConfigs/*}" + } + ] + }, { "shortName": "UpdateSlate", "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.UpdateSlate", @@ -94239,6 +103164,17 @@ "path": "/v1/{slate.name=projects/*/locations/*/slates/*}" } ] + }, + { + "shortName": "UpdateVodConfig", + "fullName": "google.cloud.video.stitcher.v1.VideoStitcherService.UpdateVodConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{vod_config.name=projects/*/locations/*/vodConfigs/*}" + } + ] } ] } @@ -94472,6 +103408,219 @@ ], "nameInServiceConfig": "videointelligence.googleapis.com" }, + { + "id": "google.cloud.videointelligence.v1beta2", + "directory": "google/cloud/videointelligence/v1beta2", + "version": "v1beta2", + "majorVersion": "v1", + "hostName": "videointelligence.googleapis.com", + "title": "Google Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.VideoIntelligence.V1Beta2": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/videointelligence/apiv1beta2/videointelligencepb;videointelligencepb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.videointelligence.v1beta2": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\VideoIntelligence\\V1beta2": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::VideoIntelligence::V1beta2": 1 + } + } + }, + "services": [ + { + "shortName": "VideoIntelligenceService", + "fullName": "google.cloud.videointelligence.v1beta2.VideoIntelligenceService", + "methods": [ + { + "shortName": "AnnotateVideo", + "fullName": "google.cloud.videointelligence.v1beta2.VideoIntelligenceService.AnnotateVideo", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta2/videos:annotate" + } + ] + } + ] + } + ], + "configFile": "videointelligence_v1beta2.yaml", + "serviceConfigApiNames": [ + "google.cloud.videointelligence.v1beta2.VideoIntelligenceService" + ], + "nameInServiceConfig": "videointelligence.googleapis.com" + }, + { + "id": "google.cloud.videointelligence.v1p1beta1", + "directory": "google/cloud/videointelligence/v1p1beta1", + "version": "v1p1beta1", + "majorVersion": "v1", + "hostName": "videointelligence.googleapis.com", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.VideoIntelligence.V1P1Beta1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/videointelligence/apiv1p1beta1/videointelligencepb;videointelligencepb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.videointelligence.v1p1beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\VideoIntelligence\\V1p1beta1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::VideoIntelligence::V1p1beta1": 1 + } + } + }, + "services": [ + { + "shortName": "VideoIntelligenceService", + "fullName": "google.cloud.videointelligence.v1p1beta1.VideoIntelligenceService", + "methods": [ + { + "shortName": "AnnotateVideo", + "fullName": "google.cloud.videointelligence.v1p1beta1.VideoIntelligenceService.AnnotateVideo", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1p1beta1/videos:annotate" + } + ] + } + ] + } + ], + "configFile": "videointelligence_v1p1beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.videointelligence.v1p1beta1.VideoIntelligenceService" + ], + "nameInServiceConfig": "videointelligence.googleapis.com" + }, + { + "id": "google.cloud.videointelligence.v1p2beta1", + "directory": "google/cloud/videointelligence/v1p2beta1", + "version": "v1p2beta1", + "majorVersion": "v1", + "hostName": "videointelligence.googleapis.com", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf", + "google/rpc" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.VideoIntelligence.V1P2Beta1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/videointelligence/apiv1p2beta1/videointelligencepb;videointelligencepb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.videointelligence.v1p2beta1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\VideoIntelligence\\V1p2beta1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::VideoIntelligence::V1p2beta1": 1 + } + } + }, + "services": [ + { + "shortName": "VideoIntelligenceService", + "fullName": "google.cloud.videointelligence.v1p2beta1.VideoIntelligenceService", + "methods": [ + { + "shortName": "AnnotateVideo", + "fullName": "google.cloud.videointelligence.v1p2beta1.VideoIntelligenceService.AnnotateVideo", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1p2beta1/videos:annotate" + } + ] + } + ] + } + ], + "configFile": "videointelligence_v1p2beta1.yaml", + "serviceConfigApiNames": [ + "google.cloud.videointelligence.v1p2beta1.VideoIntelligenceService" + ], + "nameInServiceConfig": "videointelligence.googleapis.com" + }, { "id": "google.cloud.videointelligence.v1p3beta1", "directory": "google/cloud/videointelligence/v1p3beta1", @@ -103140,32 +112289,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Datastore.V1": 4 + "Google.Cloud.Datastore.V1": 5 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/datastore/v1;datastore": 4 + "cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 4 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.datastore.v1": 4 + "com.google.datastore.v1": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Datastore\\V1": 4 + "Google\\Cloud\\Datastore\\V1": 5 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Datastore::V1": 4 + "Google::Cloud::Datastore::V1": 5 } } }, @@ -104478,6 +113627,7 @@ "description": "Creates and manages builds on Google Cloud Platform.", "importDirectories": [ "google/api", + "google/devtools/cloudbuild/v2", "google/longrunning", "google/protobuf" ], @@ -105297,7 +114447,7 @@ }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1;containeranalysis": 1 + "cloud.google.com/go/containeranalysis/apiv1/containeranalysispb;containeranalysispb": 1 } }, "java_multiple_files": { @@ -106518,42 +115668,43 @@ "google/api", "google/firestore/admin/v1", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Firestore.Admin.V1": 6 + "Google.Cloud.Firestore.Admin.V1": 8 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/firestore/apiv1/admin/adminpb;adminpb": 6 + "cloud.google.com/go/firestore/apiv1/admin/adminpb;adminpb": 8 } }, "java_multiple_files": { "valueCounts": { - "true": 6 + "true": 8 } }, "java_package": { "valueCounts": { - "com.google.firestore.admin.v1": 6 + "com.google.firestore.admin.v1": 8 } }, "objc_class_prefix": { "valueCounts": { - "GCFS": 6 + "GCFS": 8 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Firestore\\Admin\\V1": 6 + "Google\\Cloud\\Firestore\\Admin\\V1": 8 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Firestore::Admin::V1": 6 + "Google::Cloud::Firestore::Admin::V1": 8 } } }, @@ -106562,6 +115713,28 @@ "shortName": "FirestoreAdmin", "fullName": "google.firestore.admin.v1.FirestoreAdmin", "methods": [ + { + "shortName": "BulkDeleteDocuments", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/databases/*}:bulkDeleteDocuments" + } + ] + }, + { + "shortName": "CreateBackupSchedule", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/databases/*}/backupSchedules" + } + ] + }, { "shortName": "CreateDatabase", "fullName": "google.firestore.admin.v1.FirestoreAdmin.CreateDatabase", @@ -106584,6 +115757,28 @@ } ] }, + { + "shortName": "DeleteBackup", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.DeleteBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "DeleteBackupSchedule", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/databases/*/backupSchedules/*}" + } + ] + }, { "shortName": "DeleteDatabase", "fullName": "google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase", @@ -106617,6 +115812,28 @@ } ] }, + { + "shortName": "GetBackup", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.GetBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backups/*}" + } + ] + }, + { + "shortName": "GetBackupSchedule", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/databases/*/backupSchedules/*}" + } + ] + }, { "shortName": "GetDatabase", "fullName": "google.firestore.admin.v1.FirestoreAdmin.GetDatabase", @@ -106661,6 +115878,28 @@ } ] }, + { + "shortName": "ListBackupSchedules", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/databases/*}/backupSchedules" + } + ] + }, + { + "shortName": "ListBackups", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.ListBackups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/backups" + } + ] + }, { "shortName": "ListDatabases", "fullName": "google.firestore.admin.v1.FirestoreAdmin.ListDatabases", @@ -106694,6 +115933,28 @@ } ] }, + { + "shortName": "RestoreDatabase", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.RestoreDatabase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/databases:restore" + } + ] + }, + { + "shortName": "UpdateBackupSchedule", + "fullName": "google.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{backup_schedule.name=projects/*/databases/*/backupSchedules/*}" + } + ] + }, { "shortName": "UpdateDatabase", "fullName": "google.firestore.admin.v1.FirestoreAdmin.UpdateDatabase", @@ -106745,38 +116006,38 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Firestore.V1": 7 + "Google.Cloud.Firestore.V1": 8 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb": 7 + "cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb": 8 } }, "java_multiple_files": { "valueCounts": { - "true": 7 + "true": 8 } }, "java_package": { "valueCounts": { - "com.google.firestore.v1": 7 + "com.google.firestore.v1": 8 } }, "objc_class_prefix": { "valueCounts": { "": 1, - "GCFS": 6 + "GCFS": 7 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Firestore\\V1": 7 + "Google\\Cloud\\Firestore\\V1": 8 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Firestore::V1": 7 + "Google::Cloud::Firestore::V1": 8 } } }, @@ -110289,6 +119550,16 @@ "valueCounts": { "CFED": 6 } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\FleetEngine\\Delivery\\V1": 6 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Maps::FleetEngine::Delivery::V1": 6 + } } }, "services": [ @@ -110384,17 +119655,6 @@ } ] }, - { - "shortName": "SearchTasks", - "fullName": "maps.fleetengine.delivery.v1.DeliveryService.SearchTasks", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{parent=providers/*}/tasks:search" - } - ] - }, { "shortName": "UpdateDeliveryVehicle", "fullName": "maps.fleetengine.delivery.v1.DeliveryService.UpdateDeliveryVehicle", @@ -110466,6 +119726,16 @@ "valueCounts": { "CFE": 7 } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\FleetEngine\\V1": 7 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Maps::FleetEngine::V1": 7 + } } }, "services": [ @@ -110567,17 +119837,6 @@ } ] }, - { - "shortName": "SearchFuzzedVehicles", - "fullName": "maps.fleetengine.v1.VehicleService.SearchFuzzedVehicles", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1/{parent=providers/*}/vehicles:searchFuzzed" - } - ] - }, { "shortName": "SearchVehicles", "fullName": "maps.fleetengine.v1.VehicleService.SearchVehicles", @@ -110610,17 +119869,6 @@ "path": "/v1/{name=providers/*/vehicles/*}:updateAttributes" } ] - }, - { - "shortName": "UpdateVehicleLocation", - "fullName": "maps.fleetengine.v1.VehicleService.UpdateVehicleLocation", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PUT", - "path": "/v1/{name=providers/*/vehicles/*}:updateLocation" - } - ] } ] } @@ -110643,7 +119891,8 @@ "importDirectories": [ "google/api", "google/maps/mapsplatformdatasets/v1", - "google/protobuf" + "google/protobuf", + "google/rpc" ], "options": { "cc_enable_arenas": { @@ -110711,187 +119960,55 @@ ] }, { - "shortName": "GetDataset", - "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.GetDataset", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/datasets/*}" - } - ] - }, - { - "shortName": "ListDatasets", - "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.ListDatasets", + "shortName": "FetchDatasetErrors", + "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.FetchDatasetErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/datasets" - } - ] - }, - { - "shortName": "UpdateDatasetMetadata", - "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.UpdateDatasetMetadata", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1/{dataset.name=projects/*/datasets/*}" - } - ] - } - ] - } - ], - "configFile": "mapsplatformdatasets_v1.yaml", - "serviceConfigApiNames": [ - "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets" - ], - "nameInServiceConfig": "mapsplatformdatasets.googleapis.com" - }, - { - "id": "google.maps.mapsplatformdatasets.v1alpha", - "directory": "google/maps/mapsplatformdatasets/v1alpha", - "version": "v1alpha", - "majorVersion": "v1", - "hostName": "mapsplatformdatasets.googleapis.com", - "title": "Maps Platform Datasets API", - "description": "The Maps Platform Datasets API enables developers to ingest geospatially-tied datasets that they can use to enrich their experience of Maps Platform solutions (e.g. styling, routing).", - "importDirectories": [ - "google/api", - "google/maps/mapsplatformdatasets/v1alpha", - "google/protobuf" - ], - "options": { - "cc_enable_arenas": { - "valueCounts": { - "": 3, - "true": 1 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Maps.MapsPlatformDatasets.V1Alpha": 4 - } - }, - "go_package": { - "valueCounts": { - "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha/mapsplatformdatasetspb;mapsplatformdatasetspb": 4 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 4 - } - }, - "java_package": { - "valueCounts": { - "com.google.maps.mapsplatformdatasets.v1alpha": 4 - } - }, - "objc_class_prefix": { - "valueCounts": { - "": 3, - "MDV1A": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Maps\\MapsPlatformDatasets\\V1alpha": 4 - } - } - }, - "services": [ - { - "shortName": "MapsPlatformDatasetsV1Alpha", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "methods": [ - { - "shortName": "CreateDataset", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.CreateDataset", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1alpha/{parent=projects/*}/datasets" - } - ] - }, - { - "shortName": "DeleteDataset", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.DeleteDataset", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=projects/*/datasets/*}" - } - ] - }, - { - "shortName": "DeleteDatasetVersion", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.DeleteDatasetVersion", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1alpha/{name=projects/*/datasets/*}:deleteVersion" + "path": "/v1/{dataset=projects/*/datasets/*}:fetchDatasetErrors" } ] }, { "shortName": "GetDataset", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.GetDataset", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1alpha/{name=projects/*/datasets/*}" - } - ] - }, - { - "shortName": "ListDatasetVersions", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.ListDatasetVersions", + "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.GetDataset", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{name=projects/*/datasets/*}:listVersions" + "path": "/v1/{name=projects/*/datasets/*}" } ] }, { "shortName": "ListDatasets", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.ListDatasets", + "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.ListDatasets", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1alpha/{parent=projects/*}/datasets" + "path": "/v1/{parent=projects/*}/datasets" } ] }, { "shortName": "UpdateDatasetMetadata", - "fullName": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.UpdateDatasetMetadata", + "fullName": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.UpdateDatasetMetadata", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1alpha/{dataset.name=projects/*/datasets/*}" + "path": "/v1/{dataset.name=projects/*/datasets/*}" } ] } ] } ], - "configFile": "mapsplatformdatasets_v1alpha.yaml", + "configFile": "mapsplatformdatasets_v1.yaml", "serviceConfigApiNames": [ - "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha" + "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets" ], "nameInServiceConfig": "mapsplatformdatasets.googleapis.com" }, @@ -110913,37 +120030,37 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 8 + "true": 11 } }, "csharp_namespace": { "valueCounts": { - "Google.Maps.Places.V1": 8 + "Google.Maps.Places.V1": 11 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/maps/places/apiv1/placespb;placespb": 8 + "cloud.google.com/go/maps/places/apiv1/placespb;placespb": 11 } }, "java_multiple_files": { "valueCounts": { - "true": 8 + "true": 11 } }, "java_package": { "valueCounts": { - "com.google.maps.places.v1": 8 + "com.google.maps.places.v1": 11 } }, "objc_class_prefix": { "valueCounts": { - "GMPSV1": 8 + "GMPSV1": 11 } }, "php_namespace": { "valueCounts": { - "Google\\Maps\\Places\\V1": 8 + "Google\\Maps\\Places\\V1": 11 } } }, @@ -111208,7 +120325,7 @@ "majorVersion": "v1", "hostName": "roads.googleapis.com", "title": "Roads API", - "description": "Snap GPS points to roads to identify the roads a vehicle was traveling along, making up for GPS error.", + "description": "Fetch Google roads using a viewport, road ID, or latitude/longitude coordinates.", "importDirectories": [ "google/api", "google/protobuf", @@ -111255,6 +120372,97 @@ ], "nameInServiceConfig": "roads.googleapis.com" }, + { + "id": "google.maps.routeoptimization.v1", + "directory": "google/maps/routeoptimization/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "routeoptimization.googleapis.com", + "title": "Route Optimization API", + "description": "Route Optimization API.", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Maps.RouteOptimization.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/maps/routeoptimization/apiv1/routeoptimizationpb;routeoptimizationpb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.maps.routeoptimization.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\RouteOptimization\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Maps::RouteOptimization::V1": 1 + } + } + }, + "services": [ + { + "shortName": "RouteOptimization", + "fullName": "google.maps.routeoptimization.v1.RouteOptimization", + "methods": [ + { + "shortName": "BatchOptimizeTours", + "fullName": "google.maps.routeoptimization.v1.RouteOptimization.BatchOptimizeTours", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}:batchOptimizeTours" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}:batchOptimizeTours" + } + ] + }, + { + "shortName": "OptimizeTours", + "fullName": "google.maps.routeoptimization.v1.RouteOptimization.OptimizeTours", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}:optimizeTours" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}:optimizeTours" + } + ] + } + ] + } + ], + "configFile": "routeoptimization_v1.yaml", + "serviceConfigApiNames": [ + "google.longrunning.Operations", + "google.maps.routeoptimization.v1.RouteOptimization" + ], + "nameInServiceConfig": "routeoptimization.googleapis.com" + }, { "id": "google.maps.routes.v1", "directory": "google/maps/routes/v1", @@ -111656,6 +120864,120 @@ ], "nameInServiceConfig": "solar.googleapis.com" }, + { + "id": "google.marketingplatform.admin.v1alpha", + "directory": "google/marketingplatform/admin/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "marketingplatformadmin.googleapis.com", + "title": "Google Marketing Platform Admin API", + "description": "The Google Marketing Platform Admin API allows for programmatic access to the Google Marketing Platform configuration data. You can use the Google Marketing Platform Admin API to manage links between your Google Marketing Platform organization and Google Analytics accounts, and to set the service level of your GA4 properties.", + "importDirectories": [ + "google/api", + "google/marketingplatform/admin/v1alpha", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Marketingplatform.Admin.V1Alpha": 2 + } + }, + "go_package": { + "valueCounts": { + "google.golang.org/genproto/googleapis/marketingplatform/admin/v1alpha;admin": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.marketingplatform.admin.v1alpha": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Marketingplatform\\Admin\\V1alpha": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Marketingplatform::AdminService::V1alpha": 2 + } + } + }, + "services": [ + { + "shortName": "MarketingplatformAdminService", + "fullName": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService", + "methods": [ + { + "shortName": "CreateAnalyticsAccountLink", + "fullName": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.CreateAnalyticsAccountLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=organizations/*}/analyticsAccountLinks" + } + ] + }, + { + "shortName": "DeleteAnalyticsAccountLink", + "fullName": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.DeleteAnalyticsAccountLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=organizations/*/analyticsAccountLinks/*}" + } + ] + }, + { + "shortName": "GetOrganization", + "fullName": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.GetOrganization", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=organizations/*}" + } + ] + }, + { + "shortName": "ListAnalyticsAccountLinks", + "fullName": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.ListAnalyticsAccountLinks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=organizations/*}/analyticsAccountLinks" + } + ] + }, + { + "shortName": "SetPropertyServiceLevel", + "fullName": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.SetPropertyServiceLevel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{analytics_account_link=organizations/*/analyticsAccountLinks/*}:setPropertyServiceLevel" + } + ] + } + ] + } + ], + "configFile": "marketingplatformadmin_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService" + ], + "nameInServiceConfig": "marketingplatformadmin.googleapis.com" + }, { "id": "google.monitoring.dashboard.v1", "directory": "google/monitoring/dashboard/v1", @@ -111912,6 +121234,12 @@ "com.google.monitoring.v3": 19 } }, + "objc_class_prefix": { + "valueCounts": { + "": 18, + "GMON": 1 + } + }, "php_namespace": { "valueCounts": { "Google\\Cloud\\Monitoring\\V3": 19 @@ -112544,6 +121872,7 @@ ], "configFile": "monitoring.yaml", "serviceConfigApiNames": [ + "google.longrunning.Operations", "google.monitoring.v3.AlertPolicyService", "google.monitoring.v3.GroupService", "google.monitoring.v3.MetricService", @@ -112725,8 +122054,8 @@ "version": "v2", "majorVersion": "v2", "hostName": "dlp.googleapis.com", - "title": "Cloud Data Loss Prevention (DLP)", - "description": "Provides methods for detection, risk analysis, and de-identification of privacy-sensitive fragments in text, images, and Google Cloud Platform storage repositories.", + "title": "Sensitive Data Protection (DLP)", + "description": "Discover and protect your sensitive data. A fully managed service designed to help you discover, classify, and protect your valuable data assets with ease.", "importDirectories": [ "google/api", "google/privacy/dlp/v2", @@ -112801,6 +122130,17 @@ } ] }, + { + "shortName": "CreateConnection", + "fullName": "google.privacy.dlp.v2.DlpService.CreateConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/connections" + } + ] + }, { "shortName": "CreateDeidentifyTemplate", "fullName": "google.privacy.dlp.v2.DlpService.CreateDeidentifyTemplate", @@ -112934,6 +122274,17 @@ } ] }, + { + "shortName": "DeleteConnection", + "fullName": "google.privacy.dlp.v2.DlpService.DeleteConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/connections/*}" + } + ] + }, { "shortName": "DeleteDeidentifyTemplate", "fullName": "google.privacy.dlp.v2.DlpService.DeleteDeidentifyTemplate", @@ -112987,6 +122338,21 @@ } ] }, + { + "shortName": "DeleteFileStoreDataProfile", + "fullName": "google.privacy.dlp.v2.DlpService.DeleteFileStoreDataProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}" + } + ] + }, { "shortName": "DeleteInspectTemplate", "fullName": "google.privacy.dlp.v2.DlpService.DeleteInspectTemplate", @@ -113052,6 +122418,21 @@ } ] }, + { + "shortName": "DeleteTableDataProfile", + "fullName": "google.privacy.dlp.v2.DlpService.DeleteTableDataProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/tableDataProfiles/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/tableDataProfiles/*}" + } + ] + }, { "shortName": "FinishDlpJob", "fullName": "google.privacy.dlp.v2.DlpService.FinishDlpJob", @@ -113063,6 +122444,32 @@ } ] }, + { + "shortName": "GetColumnDataProfile", + "fullName": "google.privacy.dlp.v2.DlpService.GetColumnDataProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/columnDataProfiles/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/columnDataProfiles/*}" + } + ] + }, + { + "shortName": "GetConnection", + "fullName": "google.privacy.dlp.v2.DlpService.GetConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/connections/*}" + } + ] + }, { "shortName": "GetDeidentifyTemplate", "fullName": "google.privacy.dlp.v2.DlpService.GetDeidentifyTemplate", @@ -113116,6 +122523,21 @@ } ] }, + { + "shortName": "GetFileStoreDataProfile", + "fullName": "google.privacy.dlp.v2.DlpService.GetFileStoreDataProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}" + } + ] + }, { "shortName": "GetInspectTemplate", "fullName": "google.privacy.dlp.v2.DlpService.GetInspectTemplate", @@ -113158,6 +122580,21 @@ } ] }, + { + "shortName": "GetProjectDataProfile", + "fullName": "google.privacy.dlp.v2.DlpService.GetProjectDataProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/projectDataProfiles/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/projectDataProfiles/*}" + } + ] + }, { "shortName": "GetStoredInfoType", "fullName": "google.privacy.dlp.v2.DlpService.GetStoredInfoType", @@ -113181,6 +122618,21 @@ } ] }, + { + "shortName": "GetTableDataProfile", + "fullName": "google.privacy.dlp.v2.DlpService.GetTableDataProfile", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/tableDataProfiles/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/tableDataProfiles/*}" + } + ] + }, { "shortName": "HybridInspectDlpJob", "fullName": "google.privacy.dlp.v2.DlpService.HybridInspectDlpJob", @@ -113218,6 +122670,32 @@ } ] }, + { + "shortName": "ListColumnDataProfiles", + "fullName": "google.privacy.dlp.v2.DlpService.ListColumnDataProfiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/columnDataProfiles" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/columnDataProfiles" + } + ] + }, + { + "shortName": "ListConnections", + "fullName": "google.privacy.dlp.v2.DlpService.ListConnections", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/connections" + } + ] + }, { "shortName": "ListDeidentifyTemplates", "fullName": "google.privacy.dlp.v2.DlpService.ListDeidentifyTemplates", @@ -113275,6 +122753,21 @@ } ] }, + { + "shortName": "ListFileStoreDataProfiles", + "fullName": "google.privacy.dlp.v2.DlpService.ListFileStoreDataProfiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/fileStoreDataProfiles" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles" + } + ] + }, { "shortName": "ListInfoTypes", "fullName": "google.privacy.dlp.v2.DlpService.ListInfoTypes", @@ -113332,6 +122825,21 @@ } ] }, + { + "shortName": "ListProjectDataProfiles", + "fullName": "google.privacy.dlp.v2.DlpService.ListProjectDataProfiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/projectDataProfiles" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/projectDataProfiles" + } + ] + }, { "shortName": "ListStoredInfoTypes", "fullName": "google.privacy.dlp.v2.DlpService.ListStoredInfoTypes", @@ -113355,6 +122863,21 @@ } ] }, + { + "shortName": "ListTableDataProfiles", + "fullName": "google.privacy.dlp.v2.DlpService.ListTableDataProfiles", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/tableDataProfiles" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/tableDataProfiles" + } + ] + }, { "shortName": "RedactImage", "fullName": "google.privacy.dlp.v2.DlpService.RedactImage", @@ -113385,6 +122908,32 @@ } ] }, + { + "shortName": "SearchConnections", + "fullName": "google.privacy.dlp.v2.DlpService.SearchConnections", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/connections:search" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/connections:search" + } + ] + }, + { + "shortName": "UpdateConnection", + "fullName": "google.privacy.dlp.v2.DlpService.UpdateConnection", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{name=projects/*/locations/*/connections/*}" + } + ] + }, { "shortName": "UpdateDeidentifyTemplate", "fullName": "google.privacy.dlp.v2.DlpService.UpdateDeidentifyTemplate", @@ -113483,680 +123032,1525 @@ "path": "/v2/{name=projects/*/storedInfoTypes/*}" }, { - "httpMethod": "PATCH", - "path": "/v2/{name=projects/*/locations/*/storedInfoTypes/*}" + "httpMethod": "PATCH", + "path": "/v2/{name=projects/*/locations/*/storedInfoTypes/*}" + } + ] + } + ] + } + ], + "configFile": "dlp_v2.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.privacy.dlp.v2.DlpService" + ], + "nameInServiceConfig": "dlp.googleapis.com" + }, + { + "id": "google.pubsub.v1", + "directory": "google/pubsub/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "pubsub.googleapis.com", + "title": "Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/pubsub/v1" + ], + "options": { + "cc_enable_arenas": { + "valueCounts": { + "true": 2 + } + }, + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.PubSub.V1": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/pubsub/apiv1/pubsubpb;pubsubpb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.pubsub.v1": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\PubSub\\V1": 2 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::PubSub::V1": 2 + } + } + }, + "services": [ + { + "shortName": "Publisher", + "fullName": "google.pubsub.v1.Publisher", + "methods": [ + { + "shortName": "CreateTopic", + "fullName": "google.pubsub.v1.Publisher.CreateTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v1/{name=projects/*/topics/*}" + } + ] + }, + { + "shortName": "DeleteTopic", + "fullName": "google.pubsub.v1.Publisher.DeleteTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{topic=projects/*/topics/*}" + } + ] + }, + { + "shortName": "DetachSubscription", + "fullName": "google.pubsub.v1.Publisher.DetachSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{subscription=projects/*/subscriptions/*}:detach" + } + ] + }, + { + "shortName": "GetTopic", + "fullName": "google.pubsub.v1.Publisher.GetTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{topic=projects/*/topics/*}" + } + ] + }, + { + "shortName": "ListTopicSnapshots", + "fullName": "google.pubsub.v1.Publisher.ListTopicSnapshots", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{topic=projects/*/topics/*}/snapshots" + } + ] + }, + { + "shortName": "ListTopicSubscriptions", + "fullName": "google.pubsub.v1.Publisher.ListTopicSubscriptions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{topic=projects/*/topics/*}/subscriptions" + } + ] + }, + { + "shortName": "ListTopics", + "fullName": "google.pubsub.v1.Publisher.ListTopics", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{project=projects/*}/topics" + } + ] + }, + { + "shortName": "Publish", + "fullName": "google.pubsub.v1.Publisher.Publish", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{topic=projects/*/topics/*}:publish" + } + ] + }, + { + "shortName": "UpdateTopic", + "fullName": "google.pubsub.v1.Publisher.UpdateTopic", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{topic.name=projects/*/topics/*}" + } + ] + } + ] + }, + { + "shortName": "SchemaService", + "fullName": "google.pubsub.v1.SchemaService", + "methods": [ + { + "shortName": "CommitSchema", + "fullName": "google.pubsub.v1.SchemaService.CommitSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/schemas/*}:commit" + } + ] + }, + { + "shortName": "CreateSchema", + "fullName": "google.pubsub.v1.SchemaService.CreateSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/schemas" + } + ] + }, + { + "shortName": "DeleteSchema", + "fullName": "google.pubsub.v1.SchemaService.DeleteSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/schemas/*}" + } + ] + }, + { + "shortName": "DeleteSchemaRevision", + "fullName": "google.pubsub.v1.SchemaService.DeleteSchemaRevision", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/schemas/*}:deleteRevision" + } + ] + }, + { + "shortName": "GetSchema", + "fullName": "google.pubsub.v1.SchemaService.GetSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/schemas/*}" + } + ] + }, + { + "shortName": "ListSchemaRevisions", + "fullName": "google.pubsub.v1.SchemaService.ListSchemaRevisions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/schemas/*}:listRevisions" + } + ] + }, + { + "shortName": "ListSchemas", + "fullName": "google.pubsub.v1.SchemaService.ListSchemas", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*}/schemas" + } + ] + }, + { + "shortName": "RollbackSchema", + "fullName": "google.pubsub.v1.SchemaService.RollbackSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/schemas/*}:rollback" + } + ] + }, + { + "shortName": "ValidateMessage", + "fullName": "google.pubsub.v1.SchemaService.ValidateMessage", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/schemas:validateMessage" + } + ] + }, + { + "shortName": "ValidateSchema", + "fullName": "google.pubsub.v1.SchemaService.ValidateSchema", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*}/schemas:validate" + } + ] + } + ] + }, + { + "shortName": "Subscriber", + "fullName": "google.pubsub.v1.Subscriber", + "methods": [ + { + "shortName": "Acknowledge", + "fullName": "google.pubsub.v1.Subscriber.Acknowledge", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{subscription=projects/*/subscriptions/*}:acknowledge" + } + ] + }, + { + "shortName": "CreateSnapshot", + "fullName": "google.pubsub.v1.Subscriber.CreateSnapshot", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v1/{name=projects/*/snapshots/*}" + } + ] + }, + { + "shortName": "CreateSubscription", + "fullName": "google.pubsub.v1.Subscriber.CreateSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PUT", + "path": "/v1/{name=projects/*/subscriptions/*}" + } + ] + }, + { + "shortName": "DeleteSnapshot", + "fullName": "google.pubsub.v1.Subscriber.DeleteSnapshot", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{snapshot=projects/*/snapshots/*}" + } + ] + }, + { + "shortName": "DeleteSubscription", + "fullName": "google.pubsub.v1.Subscriber.DeleteSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{subscription=projects/*/subscriptions/*}" + } + ] + }, + { + "shortName": "GetSnapshot", + "fullName": "google.pubsub.v1.Subscriber.GetSnapshot", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{snapshot=projects/*/snapshots/*}" + } + ] + }, + { + "shortName": "GetSubscription", + "fullName": "google.pubsub.v1.Subscriber.GetSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{subscription=projects/*/subscriptions/*}" + } + ] + }, + { + "shortName": "ListSnapshots", + "fullName": "google.pubsub.v1.Subscriber.ListSnapshots", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{project=projects/*}/snapshots" + } + ] + }, + { + "shortName": "ListSubscriptions", + "fullName": "google.pubsub.v1.Subscriber.ListSubscriptions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{project=projects/*}/subscriptions" + } + ] + }, + { + "shortName": "ModifyAckDeadline", + "fullName": "google.pubsub.v1.Subscriber.ModifyAckDeadline", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{subscription=projects/*/subscriptions/*}:modifyAckDeadline" + } + ] + }, + { + "shortName": "ModifyPushConfig", + "fullName": "google.pubsub.v1.Subscriber.ModifyPushConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{subscription=projects/*/subscriptions/*}:modifyPushConfig" + } + ] + }, + { + "shortName": "Pull", + "fullName": "google.pubsub.v1.Subscriber.Pull", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{subscription=projects/*/subscriptions/*}:pull" + } + ] + }, + { + "shortName": "Seek", + "fullName": "google.pubsub.v1.Subscriber.Seek", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{subscription=projects/*/subscriptions/*}:seek" + } + ] + }, + { + "shortName": "StreamingPull", + "fullName": "google.pubsub.v1.Subscriber.StreamingPull", + "mode": "BIDIRECTIONAL_STREAMING" + }, + { + "shortName": "UpdateSnapshot", + "fullName": "google.pubsub.v1.Subscriber.UpdateSnapshot", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{snapshot.name=projects/*/snapshots/*}" + } + ] + }, + { + "shortName": "UpdateSubscription", + "fullName": "google.pubsub.v1.Subscriber.UpdateSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{subscription.name=projects/*/subscriptions/*}" + } + ] + } + ] + } + ], + "configFile": "pubsub_v1.yaml", + "serviceConfigApiNames": [ + "google.iam.v1.IAMPolicy", + "google.pubsub.v1.Publisher", + "google.pubsub.v1.SchemaService", + "google.pubsub.v1.Subscriber" + ], + "nameInServiceConfig": "pubsub.googleapis.com" + }, + { + "id": "google.shopping.css.v1", + "directory": "google/shopping/css/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "css.googleapis.com", + "title": "CSS API", + "description": "Programmatically manage your Comparison Shopping Service (CSS) account data at scale.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/shopping/css/v1", + "google/shopping/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Shopping.Css.V1": 5 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/css/apiv1/csspb;csspb": 5 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 5 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.css.v1": 5 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Shopping\\Css\\V1": 5 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Shopping::Css::V1": 5 + } + } + }, + "services": [ + { + "shortName": "AccountLabelsService", + "fullName": "google.shopping.css.v1.AccountLabelsService", + "methods": [ + { + "shortName": "CreateAccountLabel", + "fullName": "google.shopping.css.v1.AccountLabelsService.CreateAccountLabel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}/labels" + } + ] + }, + { + "shortName": "DeleteAccountLabel", + "fullName": "google.shopping.css.v1.AccountLabelsService.DeleteAccountLabel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=accounts/*/labels/*}" + } + ] + }, + { + "shortName": "ListAccountLabels", + "fullName": "google.shopping.css.v1.AccountLabelsService.ListAccountLabels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*}/labels" + } + ] + }, + { + "shortName": "UpdateAccountLabel", + "fullName": "google.shopping.css.v1.AccountLabelsService.UpdateAccountLabel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{account_label.name=accounts/*/labels/*}" + } + ] + } + ] + }, + { + "shortName": "AccountsService", + "fullName": "google.shopping.css.v1.AccountsService", + "methods": [ + { + "shortName": "GetAccount", + "fullName": "google.shopping.css.v1.AccountsService.GetAccount", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=accounts/*}" + } + ] + }, + { + "shortName": "ListChildAccounts", + "fullName": "google.shopping.css.v1.AccountsService.ListChildAccounts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*}:listChildAccounts" + } + ] + }, + { + "shortName": "UpdateLabels", + "fullName": "google.shopping.css.v1.AccountsService.UpdateLabels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=accounts/*}:updateLabels" + } + ] + } + ] + }, + { + "shortName": "CssProductInputsService", + "fullName": "google.shopping.css.v1.CssProductInputsService", + "methods": [ + { + "shortName": "DeleteCssProductInput", + "fullName": "google.shopping.css.v1.CssProductInputsService.DeleteCssProductInput", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=accounts/*/cssProductInputs/*}" + } + ] + }, + { + "shortName": "InsertCssProductInput", + "fullName": "google.shopping.css.v1.CssProductInputsService.InsertCssProductInput", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=accounts/*}/cssProductInputs:insert" + } + ] + } + ] + }, + { + "shortName": "CssProductsService", + "fullName": "google.shopping.css.v1.CssProductsService", + "methods": [ + { + "shortName": "GetCssProduct", + "fullName": "google.shopping.css.v1.CssProductsService.GetCssProduct", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=accounts/*/cssProducts/*}" + } + ] + }, + { + "shortName": "ListCssProducts", + "fullName": "google.shopping.css.v1.CssProductsService.ListCssProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=accounts/*}/cssProducts" } ] } ] } ], - "configFile": "dlp_v2.yaml", + "configFile": "css_v1.yaml", "serviceConfigApiNames": [ - "google.cloud.location.Locations", - "google.privacy.dlp.v2.DlpService" + "google.shopping.css.v1.AccountLabelsService", + "google.shopping.css.v1.AccountsService", + "google.shopping.css.v1.CssProductInputsService", + "google.shopping.css.v1.CssProductsService" ], - "nameInServiceConfig": "dlp.googleapis.com" + "nameInServiceConfig": "css.googleapis.com" }, { - "id": "google.pubsub.v1", - "directory": "google/pubsub/v1", - "version": "v1", + "id": "google.shopping.merchant.accounts.v1beta", + "directory": "google/shopping/merchant/accounts/v1beta", + "version": "v1beta", "majorVersion": "v1", - "hostName": "pubsub.googleapis.com", - "title": "Cloud Pub/Sub API", - "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", "importDirectories": [ "google/api", "google/protobuf", - "google/pubsub/v1" + "google/shopping/merchant/accounts/v1beta", + "google/shopping/type", + "google/type" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 2 - } - }, - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.PubSub.V1": 2 - } - }, "go_package": { "valueCounts": { - "cloud.google.com/go/pubsub/apiv1/pubsubpb;pubsubpb": 2 + "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb": 19 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 19 } }, "java_package": { "valueCounts": { - "com.google.pubsub.v1": 2 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\PubSub\\V1": 2 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::PubSub::V1": 2 + "com.google.shopping.merchant.accounts.v1beta": 19 } } }, "services": [ { - "shortName": "Publisher", - "fullName": "google.pubsub.v1.Publisher", + "shortName": "AccountIssueService", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountIssueService", "methods": [ { - "shortName": "CreateTopic", - "fullName": "google.pubsub.v1.Publisher.CreateTopic", + "shortName": "ListAccountIssues", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountIssueService.ListAccountIssues", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1/{name=projects/*/topics/*}" + "httpMethod": "GET", + "path": "/accounts/v1beta/{parent=accounts/*}/issues" + } + ] + } + ] + }, + { + "shortName": "AccountTaxService", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountTaxService", + "methods": [ + { + "shortName": "GetAccountTax", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountTaxService.GetAccountTax", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/accounttax/*}" } ] }, { - "shortName": "DeleteTopic", - "fullName": "google.pubsub.v1.Publisher.DeleteTopic", + "shortName": "ListAccountTax", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountTaxService.ListAccountTax", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{topic=projects/*/topics/*}" + "httpMethod": "GET", + "path": "/accounts/v1beta/{parent=accounts/*}/accounttax" } ] }, { - "shortName": "DetachSubscription", - "fullName": "google.pubsub.v1.Publisher.DetachSubscription", + "shortName": "UpdateAccountTax", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountTaxService.UpdateAccountTax", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{account_tax.name=accounts/*/accounttax/*}" + } + ] + } + ] + }, + { + "shortName": "AccountsService", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService", + "methods": [ + { + "shortName": "CreateAndConfigureAccount", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService.CreateAndConfigureAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{subscription=projects/*/subscriptions/*}:detach" + "path": "/accounts/v1beta/accounts:createAndConfigure" } ] }, { - "shortName": "GetTopic", - "fullName": "google.pubsub.v1.Publisher.GetTopic", + "shortName": "DeleteAccount", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService.DeleteAccount", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/accounts/v1beta/{name=accounts/*}" + } + ] + }, + { + "shortName": "GetAccount", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService.GetAccount", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{topic=projects/*/topics/*}" + "path": "/accounts/v1beta/{name=accounts/*}" } ] }, { - "shortName": "ListTopicSnapshots", - "fullName": "google.pubsub.v1.Publisher.ListTopicSnapshots", + "shortName": "ListAccounts", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService.ListAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{topic=projects/*/topics/*}/snapshots" + "path": "/accounts/v1beta/accounts" } ] }, { - "shortName": "ListTopicSubscriptions", - "fullName": "google.pubsub.v1.Publisher.ListTopicSubscriptions", + "shortName": "ListSubAccounts", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService.ListSubAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{topic=projects/*/topics/*}/subscriptions" + "path": "/accounts/v1beta/{provider=accounts/*}:listSubaccounts" } ] }, { - "shortName": "ListTopics", - "fullName": "google.pubsub.v1.Publisher.ListTopics", + "shortName": "UpdateAccount", + "fullName": "google.shopping.merchant.accounts.v1beta.AccountsService.UpdateAccount", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{account.name=accounts/*}" + } + ] + } + ] + }, + { + "shortName": "BusinessIdentityService", + "fullName": "google.shopping.merchant.accounts.v1beta.BusinessIdentityService", + "methods": [ + { + "shortName": "GetBusinessIdentity", + "fullName": "google.shopping.merchant.accounts.v1beta.BusinessIdentityService.GetBusinessIdentity", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{project=projects/*}/topics" + "path": "/accounts/v1beta/{name=accounts/*/businessIdentity}" } ] }, { - "shortName": "Publish", - "fullName": "google.pubsub.v1.Publisher.Publish", + "shortName": "UpdateBusinessIdentity", + "fullName": "google.shopping.merchant.accounts.v1beta.BusinessIdentityService.UpdateBusinessIdentity", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{topic=projects/*/topics/*}:publish" + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{business_identity.name=accounts/*/businessIdentity}" + } + ] + } + ] + }, + { + "shortName": "BusinessInfoService", + "fullName": "google.shopping.merchant.accounts.v1beta.BusinessInfoService", + "methods": [ + { + "shortName": "GetBusinessInfo", + "fullName": "google.shopping.merchant.accounts.v1beta.BusinessInfoService.GetBusinessInfo", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/businessInfo}" } ] }, { - "shortName": "UpdateTopic", - "fullName": "google.pubsub.v1.Publisher.UpdateTopic", + "shortName": "UpdateBusinessInfo", + "fullName": "google.shopping.merchant.accounts.v1beta.BusinessInfoService.UpdateBusinessInfo", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{topic.name=projects/*/topics/*}" + "path": "/accounts/v1beta/{business_info.name=accounts/*/businessInfo}" } ] } ] }, { - "shortName": "SchemaService", - "fullName": "google.pubsub.v1.SchemaService", + "shortName": "EmailPreferencesService", + "fullName": "google.shopping.merchant.accounts.v1beta.EmailPreferencesService", "methods": [ { - "shortName": "CommitSchema", - "fullName": "google.pubsub.v1.SchemaService.CommitSchema", + "shortName": "GetEmailPreferences", + "fullName": "google.shopping.merchant.accounts.v1beta.EmailPreferencesService.GetEmailPreferences", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=projects/*/schemas/*}:commit" + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/users/*/emailPreferences}" } ] }, { - "shortName": "CreateSchema", - "fullName": "google.pubsub.v1.SchemaService.CreateSchema", + "shortName": "UpdateEmailPreferences", + "fullName": "google.shopping.merchant.accounts.v1beta.EmailPreferencesService.UpdateEmailPreferences", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{email_preferences.name=accounts/*/users/*/emailPreferences}" + } + ] + } + ] + }, + { + "shortName": "HomepageService", + "fullName": "google.shopping.merchant.accounts.v1beta.HomepageService", + "methods": [ + { + "shortName": "ClaimHomepage", + "fullName": "google.shopping.merchant.accounts.v1beta.HomepageService.ClaimHomepage", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/schemas" + "path": "/accounts/v1beta/{name=accounts/*/homepage}:claim" } ] }, { - "shortName": "DeleteSchema", - "fullName": "google.pubsub.v1.SchemaService.DeleteSchema", + "shortName": "GetHomepage", + "fullName": "google.shopping.merchant.accounts.v1beta.HomepageService.GetHomepage", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/schemas/*}" + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/homepage}" } ] }, { - "shortName": "DeleteSchemaRevision", - "fullName": "google.pubsub.v1.SchemaService.DeleteSchemaRevision", + "shortName": "UnclaimHomepage", + "fullName": "google.shopping.merchant.accounts.v1beta.HomepageService.UnclaimHomepage", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{name=projects/*/schemas/*}:deleteRevision" + "httpMethod": "POST", + "path": "/accounts/v1beta/{name=accounts/*/homepage}:unclaim" } ] }, { - "shortName": "GetSchema", - "fullName": "google.pubsub.v1.SchemaService.GetSchema", + "shortName": "UpdateHomepage", + "fullName": "google.shopping.merchant.accounts.v1beta.HomepageService.UpdateHomepage", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=projects/*/schemas/*}" + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{homepage.name=accounts/*/homepage}" } ] - }, + } + ] + }, + { + "shortName": "OnlineReturnPolicyService", + "fullName": "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService", + "methods": [ { - "shortName": "ListSchemaRevisions", - "fullName": "google.pubsub.v1.SchemaService.ListSchemaRevisions", + "shortName": "GetOnlineReturnPolicy", + "fullName": "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService.GetOnlineReturnPolicy", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=projects/*/schemas/*}:listRevisions" + "path": "/accounts/v1beta/{name=accounts/*/onlineReturnPolicies/*}" } ] }, { - "shortName": "ListSchemas", - "fullName": "google.pubsub.v1.SchemaService.ListSchemas", + "shortName": "ListOnlineReturnPolicies", + "fullName": "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService.ListOnlineReturnPolicies", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=projects/*}/schemas" + "path": "/accounts/v1beta/{parent=accounts/*}/onlineReturnPolicies" } ] - }, + } + ] + }, + { + "shortName": "ProgramsService", + "fullName": "google.shopping.merchant.accounts.v1beta.ProgramsService", + "methods": [ { - "shortName": "RollbackSchema", - "fullName": "google.pubsub.v1.SchemaService.RollbackSchema", + "shortName": "DisableProgram", + "fullName": "google.shopping.merchant.accounts.v1beta.ProgramsService.DisableProgram", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{name=projects/*/schemas/*}:rollback" + "path": "/accounts/v1beta/{name=accounts/*/programs/*}:disable" } ] }, { - "shortName": "ValidateMessage", - "fullName": "google.pubsub.v1.SchemaService.ValidateMessage", + "shortName": "EnableProgram", + "fullName": "google.shopping.merchant.accounts.v1beta.ProgramsService.EnableProgram", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/schemas:validateMessage" + "path": "/accounts/v1beta/{name=accounts/*/programs/*}:enable" } ] }, { - "shortName": "ValidateSchema", - "fullName": "google.pubsub.v1.SchemaService.ValidateSchema", + "shortName": "GetProgram", + "fullName": "google.shopping.merchant.accounts.v1beta.ProgramsService.GetProgram", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{parent=projects/*}/schemas:validate" + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/programs/*}" + } + ] + }, + { + "shortName": "ListPrograms", + "fullName": "google.shopping.merchant.accounts.v1beta.ProgramsService.ListPrograms", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/accounts/v1beta/{parent=accounts/*}/programs" } ] } ] }, { - "shortName": "Subscriber", - "fullName": "google.pubsub.v1.Subscriber", + "shortName": "RegionsService", + "fullName": "google.shopping.merchant.accounts.v1beta.RegionsService", "methods": [ { - "shortName": "Acknowledge", - "fullName": "google.pubsub.v1.Subscriber.Acknowledge", + "shortName": "CreateRegion", + "fullName": "google.shopping.merchant.accounts.v1beta.RegionsService.CreateRegion", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{subscription=projects/*/subscriptions/*}:acknowledge" + "path": "/accounts/v1beta/{parent=accounts/*}/regions" } ] }, { - "shortName": "CreateSnapshot", - "fullName": "google.pubsub.v1.Subscriber.CreateSnapshot", + "shortName": "DeleteRegion", + "fullName": "google.shopping.merchant.accounts.v1beta.RegionsService.DeleteRegion", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1/{name=projects/*/snapshots/*}" + "httpMethod": "DELETE", + "path": "/accounts/v1beta/{name=accounts/*/regions/*}" } ] }, { - "shortName": "CreateSubscription", - "fullName": "google.pubsub.v1.Subscriber.CreateSubscription", + "shortName": "GetRegion", + "fullName": "google.shopping.merchant.accounts.v1beta.RegionsService.GetRegion", "mode": "UNARY", "bindings": [ { - "httpMethod": "PUT", - "path": "/v1/{name=projects/*/subscriptions/*}" + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/regions/*}" } ] }, { - "shortName": "DeleteSnapshot", - "fullName": "google.pubsub.v1.Subscriber.DeleteSnapshot", + "shortName": "ListRegions", + "fullName": "google.shopping.merchant.accounts.v1beta.RegionsService.ListRegions", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{snapshot=projects/*/snapshots/*}" + "httpMethod": "GET", + "path": "/accounts/v1beta/{parent=accounts/*}/regions" } ] }, { - "shortName": "DeleteSubscription", - "fullName": "google.pubsub.v1.Subscriber.DeleteSubscription", + "shortName": "UpdateRegion", + "fullName": "google.shopping.merchant.accounts.v1beta.RegionsService.UpdateRegion", "mode": "UNARY", "bindings": [ { - "httpMethod": "DELETE", - "path": "/v1/{subscription=projects/*/subscriptions/*}" + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{region.name=accounts/*/regions/*}" } ] - }, + } + ] + }, + { + "shortName": "ShippingSettingsService", + "fullName": "google.shopping.merchant.accounts.v1beta.ShippingSettingsService", + "methods": [ { - "shortName": "GetSnapshot", - "fullName": "google.pubsub.v1.Subscriber.GetSnapshot", + "shortName": "GetShippingSettings", + "fullName": "google.shopping.merchant.accounts.v1beta.ShippingSettingsService.GetShippingSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{snapshot=projects/*/snapshots/*}" + "path": "/accounts/v1beta/{name=accounts/*/shippingSettings}" } ] }, { - "shortName": "GetSubscription", - "fullName": "google.pubsub.v1.Subscriber.GetSubscription", + "shortName": "InsertShippingSettings", + "fullName": "google.shopping.merchant.accounts.v1beta.ShippingSettingsService.InsertShippingSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/accounts/v1beta/{parent=accounts/*}/shippingSettings:insert" + } + ] + } + ] + }, + { + "shortName": "TermsOfServiceAgreementStateService", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService", + "methods": [ + { + "shortName": "GetTermsOfServiceAgreementState", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService.GetTermsOfServiceAgreementState", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{subscription=projects/*/subscriptions/*}" + "path": "/accounts/v1beta/{name=accounts/*/termsOfServiceAgreementStates/*}" } ] }, { - "shortName": "ListSnapshots", - "fullName": "google.pubsub.v1.Subscriber.ListSnapshots", + "shortName": "RetrieveForApplicationTermsOfServiceAgreementState", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService.RetrieveForApplicationTermsOfServiceAgreementState", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{project=projects/*}/snapshots" + "path": "/accounts/v1beta/{parent=accounts/*}/termsOfServiceAgreementStates:retrieveForApplication" } ] - }, + } + ] + }, + { + "shortName": "TermsOfServiceService", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService", + "methods": [ { - "shortName": "ListSubscriptions", - "fullName": "google.pubsub.v1.Subscriber.ListSubscriptions", + "shortName": "AcceptTermsOfService", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService.AcceptTermsOfService", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{project=projects/*}/subscriptions" + "path": "/accounts/v1beta/{name=termsOfService/*}:accept" } ] }, { - "shortName": "ModifyAckDeadline", - "fullName": "google.pubsub.v1.Subscriber.ModifyAckDeadline", + "shortName": "GetTermsOfService", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService.GetTermsOfService", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{subscription=projects/*/subscriptions/*}:modifyAckDeadline" + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=termsOfService/*}" } ] }, { - "shortName": "ModifyPushConfig", - "fullName": "google.pubsub.v1.Subscriber.ModifyPushConfig", + "shortName": "RetrieveLatestTermsOfService", + "fullName": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService.RetrieveLatestTermsOfService", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{subscription=projects/*/subscriptions/*}:modifyPushConfig" + "httpMethod": "GET", + "path": "/accounts/v1beta/termsOfService:retrieveLatest" } ] - }, + } + ] + }, + { + "shortName": "UserService", + "fullName": "google.shopping.merchant.accounts.v1beta.UserService", + "methods": [ { - "shortName": "Pull", - "fullName": "google.pubsub.v1.Subscriber.Pull", + "shortName": "CreateUser", + "fullName": "google.shopping.merchant.accounts.v1beta.UserService.CreateUser", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{subscription=projects/*/subscriptions/*}:pull" + "path": "/accounts/v1beta/{parent=accounts/*}/users" } ] }, { - "shortName": "Seek", - "fullName": "google.pubsub.v1.Subscriber.Seek", + "shortName": "DeleteUser", + "fullName": "google.shopping.merchant.accounts.v1beta.UserService.DeleteUser", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{subscription=projects/*/subscriptions/*}:seek" + "httpMethod": "DELETE", + "path": "/accounts/v1beta/{name=accounts/*/users/*}" } ] }, { - "shortName": "StreamingPull", - "fullName": "google.pubsub.v1.Subscriber.StreamingPull", - "mode": "BIDIRECTIONAL_STREAMING" + "shortName": "GetUser", + "fullName": "google.shopping.merchant.accounts.v1beta.UserService.GetUser", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/users/*}" + } + ] }, { - "shortName": "UpdateSnapshot", - "fullName": "google.pubsub.v1.Subscriber.UpdateSnapshot", + "shortName": "ListUsers", + "fullName": "google.shopping.merchant.accounts.v1beta.UserService.ListUsers", "mode": "UNARY", "bindings": [ { - "httpMethod": "PATCH", - "path": "/v1/{snapshot.name=projects/*/snapshots/*}" + "httpMethod": "GET", + "path": "/accounts/v1beta/{parent=accounts/*}/users" } ] }, { - "shortName": "UpdateSubscription", - "fullName": "google.pubsub.v1.Subscriber.UpdateSubscription", + "shortName": "UpdateUser", + "fullName": "google.shopping.merchant.accounts.v1beta.UserService.UpdateUser", "mode": "UNARY", "bindings": [ { "httpMethod": "PATCH", - "path": "/v1/{subscription.name=projects/*/subscriptions/*}" + "path": "/accounts/v1beta/{user.name=accounts/*/users/*}" } ] } ] } ], - "configFile": "pubsub_v1.yaml", + "configFile": "merchantapi_v1beta.yaml", "serviceConfigApiNames": [ - "google.iam.v1.IAMPolicy", - "google.pubsub.v1.Publisher", - "google.pubsub.v1.SchemaService", - "google.pubsub.v1.Subscriber" + "google.shopping.merchant.accounts.v1beta.AccountIssueService", + "google.shopping.merchant.accounts.v1beta.AccountTaxService", + "google.shopping.merchant.accounts.v1beta.AccountsService", + "google.shopping.merchant.accounts.v1beta.BusinessIdentityService", + "google.shopping.merchant.accounts.v1beta.BusinessInfoService", + "google.shopping.merchant.accounts.v1beta.EmailPreferencesService", + "google.shopping.merchant.accounts.v1beta.HomepageService", + "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService", + "google.shopping.merchant.accounts.v1beta.ProgramsService", + "google.shopping.merchant.accounts.v1beta.RegionsService", + "google.shopping.merchant.accounts.v1beta.ShippingSettingsService", + "google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService", + "google.shopping.merchant.accounts.v1beta.TermsOfServiceService", + "google.shopping.merchant.accounts.v1beta.UserService" ], - "nameInServiceConfig": "pubsub.googleapis.com" + "nameInServiceConfig": "merchantapi.googleapis.com" }, { - "id": "google.shopping.css.v1", - "directory": "google/shopping/css/v1", - "version": "v1", + "id": "google.shopping.merchant.conversions.v1beta", + "directory": "google/shopping/merchant/conversions/v1beta", + "version": "v1beta", "majorVersion": "v1", - "hostName": "css.googleapis.com", - "title": "CSS API", - "description": "Programmatically manage your Comparison Shopping Service (CSS) account data at scale.", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", "importDirectories": [ "google/api", - "google/protobuf", - "google/shopping/css/v1", - "google/shopping/type" + "google/protobuf" ], "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Shopping.Css.V1": 5 - } - }, "go_package": { "valueCounts": { - "cloud.google.com/go/shopping/css/apiv1/csspb;csspb": 5 + "cloud.google.com/go/shopping/merchant/conversions/apiv1beta/conversionspb;conversionspb": 1 } }, "java_multiple_files": { "valueCounts": { - "true": 5 + "true": 1 } }, "java_package": { "valueCounts": { - "com.google.shopping.css.v1": 5 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Shopping\\Css\\V1": 5 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Shopping::Css::V1": 5 + "com.google.shopping.merchant.conversions.v1beta": 1 } } }, "services": [ { - "shortName": "AccountLabelsService", - "fullName": "google.shopping.css.v1.AccountLabelsService", + "shortName": "ConversionSourcesService", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService", "methods": [ { - "shortName": "CreateAccountLabel", - "fullName": "google.shopping.css.v1.AccountLabelsService.CreateAccountLabel", + "shortName": "CreateConversionSource", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService.CreateConversionSource", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}/labels" + "path": "/conversions/v1beta/{parent=accounts/*}/conversionSources" } ] }, { - "shortName": "DeleteAccountLabel", - "fullName": "google.shopping.css.v1.AccountLabelsService.DeleteAccountLabel", + "shortName": "DeleteConversionSource", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService.DeleteConversionSource", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=accounts/*/labels/*}" + "path": "/conversions/v1beta/{name=accounts/*/conversionSources/*}" } ] }, { - "shortName": "ListAccountLabels", - "fullName": "google.shopping.css.v1.AccountLabelsService.ListAccountLabels", + "shortName": "GetConversionSource", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService.GetConversionSource", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=accounts/*}/labels" + "path": "/conversions/v1beta/{name=accounts/*/conversionSources/*}" } ] }, { - "shortName": "UpdateAccountLabel", - "fullName": "google.shopping.css.v1.AccountLabelsService.UpdateAccountLabel", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1/{account_label.name=accounts/*/labels/*}" - } - ] - } - ] - }, - { - "shortName": "AccountsService", - "fullName": "google.shopping.css.v1.AccountsService", - "methods": [ - { - "shortName": "GetAccount", - "fullName": "google.shopping.css.v1.AccountsService.GetAccount", + "shortName": "ListConversionSources", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService.ListConversionSources", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=accounts/*}" + "path": "/conversions/v1beta/{parent=accounts/*}/conversionSources" } ] }, { - "shortName": "ListChildAccounts", - "fullName": "google.shopping.css.v1.AccountsService.ListChildAccounts", + "shortName": "UndeleteConversionSource", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService.UndeleteConversionSource", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=accounts/*}:listChildAccounts" + "httpMethod": "POST", + "path": "/conversions/v1beta/{name=accounts/*/conversionSources/*}:undelete" } ] }, { - "shortName": "UpdateLabels", - "fullName": "google.shopping.css.v1.AccountsService.UpdateLabels", + "shortName": "UpdateConversionSource", + "fullName": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService.UpdateConversionSource", "mode": "UNARY", "bindings": [ { - "httpMethod": "POST", - "path": "/v1/{name=accounts/*}:updateLabels" + "httpMethod": "PATCH", + "path": "/conversions/v1beta/{conversion_source.name=accounts/*/conversionSources/*}" } ] } ] + } + ], + "configFile": "merchantapi_v1beta.yaml", + "serviceConfigApiNames": [ + "google.shopping.merchant.conversions.v1beta.ConversionSourcesService" + ], + "nameInServiceConfig": "merchantapi.googleapis.com" + }, + { + "id": "google.shopping.merchant.datasources.v1beta", + "directory": "google/shopping/merchant/datasources/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/shopping/merchant/datasources/v1beta", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Shopping.Merchant.DataSources.V1Beta": 3 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.merchant.datasources.v1beta": 3 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Shopping\\Merchant\\DataSources\\V1beta": 3 + } }, + "ruby_package": { + "valueCounts": { + "Google::Shopping::Merchant::DataSources::V1beta": 3 + } + } + }, + "services": [ { - "shortName": "CssProductInputsService", - "fullName": "google.shopping.css.v1.CssProductInputsService", + "shortName": "DataSourcesService", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService", "methods": [ { - "shortName": "DeleteCssProductInput", - "fullName": "google.shopping.css.v1.CssProductInputsService.DeleteCssProductInput", + "shortName": "CreateDataSource", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService.CreateDataSource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/datasources/v1beta/{parent=accounts/*}/dataSources" + } + ] + }, + { + "shortName": "DeleteDataSource", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService.DeleteDataSource", "mode": "UNARY", "bindings": [ { "httpMethod": "DELETE", - "path": "/v1/{name=accounts/*/cssProductInputs/*}" + "path": "/datasources/v1beta/{name=accounts/*/dataSources/*}" } ] }, { - "shortName": "InsertCssProductInput", - "fullName": "google.shopping.css.v1.CssProductInputsService.InsertCssProductInput", + "shortName": "FetchDataSource", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService.FetchDataSource", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{parent=accounts/*}/cssProductInputs:insert" + "path": "/datasources/v1beta/{name=accounts/*/dataSources/*}:fetch" } ] - } - ] - }, - { - "shortName": "CssProductsService", - "fullName": "google.shopping.css.v1.CssProductsService", - "methods": [ + }, { - "shortName": "GetCssProduct", - "fullName": "google.shopping.css.v1.CssProductsService.GetCssProduct", + "shortName": "GetDataSource", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService.GetDataSource", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=accounts/*/cssProducts/*}" + "path": "/datasources/v1beta/{name=accounts/*/dataSources/*}" } ] }, { - "shortName": "ListCssProducts", - "fullName": "google.shopping.css.v1.CssProductsService.ListCssProducts", + "shortName": "ListDataSources", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService.ListDataSources", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=accounts/*}/cssProducts" + "path": "/datasources/v1beta/{parent=accounts/*}/dataSources" + } + ] + }, + { + "shortName": "UpdateDataSource", + "fullName": "google.shopping.merchant.datasources.v1beta.DataSourcesService.UpdateDataSource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/datasources/v1beta/{data_source.name=accounts/*/dataSources/*}" } ] } ] } ], - "configFile": "css_v1.yaml", + "configFile": "merchantapi_v1beta.yaml", "serviceConfigApiNames": [ - "google.shopping.css.v1.AccountLabelsService", - "google.shopping.css.v1.AccountsService", - "google.shopping.css.v1.CssProductInputsService", - "google.shopping.css.v1.CssProductsService" + "google.shopping.merchant.datasources.v1beta.DataSourcesService" ], - "nameInServiceConfig": "css.googleapis.com" + "nameInServiceConfig": "merchantapi.googleapis.com" }, { "id": "google.shopping.merchant.inventories.v1beta", @@ -114276,6 +124670,458 @@ ], "nameInServiceConfig": "merchantapi.googleapis.com" }, + { + "id": "google.shopping.merchant.lfp.v1beta", + "directory": "google/shopping/merchant/lfp/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/shopping/type" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.merchant.lfp.v1beta": 3 + } + } + }, + "services": [ + { + "shortName": "LfpInventoryService", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpInventoryService", + "methods": [ + { + "shortName": "InsertLfpInventory", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpInventoryService.InsertLfpInventory", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/lfp/v1beta/{parent=accounts/*}/lfpInventories:insert" + } + ] + } + ] + }, + { + "shortName": "LfpSaleService", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpSaleService", + "methods": [ + { + "shortName": "InsertLfpSale", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpSaleService.InsertLfpSale", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/lfp/v1beta/{parent=accounts/*}/lfpSales:insert" + } + ] + } + ] + }, + { + "shortName": "LfpStoreService", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpStoreService", + "methods": [ + { + "shortName": "DeleteLfpStore", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpStoreService.DeleteLfpStore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/lfp/v1beta/{name=accounts/*/lfpStores/*}" + } + ] + }, + { + "shortName": "GetLfpStore", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpStoreService.GetLfpStore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/lfp/v1beta/{name=accounts/*/lfpStores/*}" + } + ] + }, + { + "shortName": "InsertLfpStore", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpStoreService.InsertLfpStore", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/lfp/v1beta/{parent=accounts/*}/lfpStores:insert" + } + ] + }, + { + "shortName": "ListLfpStores", + "fullName": "google.shopping.merchant.lfp.v1beta.LfpStoreService.ListLfpStores", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/lfp/v1beta/{parent=accounts/*}/lfpStores" + } + ] + } + ] + } + ], + "configFile": "merchantapi_v1beta.yaml", + "serviceConfigApiNames": [ + "google.shopping.merchant.lfp.v1beta.LfpInventoryService", + "google.shopping.merchant.lfp.v1beta.LfpSaleService", + "google.shopping.merchant.lfp.v1beta.LfpStoreService" + ], + "nameInServiceConfig": "merchantapi.googleapis.com" + }, + { + "id": "google.shopping.merchant.notifications.v1beta", + "directory": "google/shopping/merchant/notifications/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/shopping/type" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/merchant/notifications/apiv1beta/notificationspb;notificationspb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.merchant.notifications.v1beta": 1 + } + } + }, + "services": [ + { + "shortName": "NotificationsApiService", + "fullName": "google.shopping.merchant.notifications.v1beta.NotificationsApiService", + "methods": [ + { + "shortName": "CreateNotificationSubscription", + "fullName": "google.shopping.merchant.notifications.v1beta.NotificationsApiService.CreateNotificationSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/notifications/v1beta/{parent=accounts/*}/notificationsubscriptions" + } + ] + }, + { + "shortName": "DeleteNotificationSubscription", + "fullName": "google.shopping.merchant.notifications.v1beta.NotificationsApiService.DeleteNotificationSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/notifications/v1beta/{name=accounts/*/notificationsubscriptions/*}" + } + ] + }, + { + "shortName": "GetNotificationSubscription", + "fullName": "google.shopping.merchant.notifications.v1beta.NotificationsApiService.GetNotificationSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/notifications/v1beta/{name=accounts/*/notificationsubscriptions/*}" + } + ] + }, + { + "shortName": "ListNotificationSubscriptions", + "fullName": "google.shopping.merchant.notifications.v1beta.NotificationsApiService.ListNotificationSubscriptions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/notifications/v1beta/{parent=accounts/*}/notificationsubscriptions" + } + ] + }, + { + "shortName": "UpdateNotificationSubscription", + "fullName": "google.shopping.merchant.notifications.v1beta.NotificationsApiService.UpdateNotificationSubscription", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/notifications/v1beta/{notification_subscription.name=accounts/*/notificationsubscriptions/*}" + } + ] + } + ] + } + ], + "configFile": "merchantapi_v1beta.yaml", + "serviceConfigApiNames": [ + "google.shopping.merchant.notifications.v1beta.NotificationsApiService" + ], + "nameInServiceConfig": "merchantapi.googleapis.com" + }, + { + "id": "google.shopping.merchant.products.v1beta", + "directory": "google/shopping/merchant/products/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/shopping/merchant/products/v1beta", + "google/shopping/type", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspb": 3 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 3 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.merchant.products.v1beta": 3 + } + } + }, + "services": [ + { + "shortName": "ProductInputsService", + "fullName": "google.shopping.merchant.products.v1beta.ProductInputsService", + "methods": [ + { + "shortName": "DeleteProductInput", + "fullName": "google.shopping.merchant.products.v1beta.ProductInputsService.DeleteProductInput", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/products/v1beta/{name=accounts/*/productInputs/*}" + } + ] + }, + { + "shortName": "InsertProductInput", + "fullName": "google.shopping.merchant.products.v1beta.ProductInputsService.InsertProductInput", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/products/v1beta/{parent=accounts/*}/productInputs:insert" + } + ] + } + ] + }, + { + "shortName": "ProductsService", + "fullName": "google.shopping.merchant.products.v1beta.ProductsService", + "methods": [ + { + "shortName": "GetProduct", + "fullName": "google.shopping.merchant.products.v1beta.ProductsService.GetProduct", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/products/v1beta/{name=accounts/*/products/*}" + } + ] + }, + { + "shortName": "ListProducts", + "fullName": "google.shopping.merchant.products.v1beta.ProductsService.ListProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/products/v1beta/{parent=accounts/*}/products" + } + ] + } + ] + } + ], + "configFile": "merchantapi_v1beta.yaml", + "serviceConfigApiNames": [ + "google.shopping.merchant.products.v1beta.ProductInputsService", + "google.shopping.merchant.products.v1beta.ProductsService" + ], + "nameInServiceConfig": "merchantapi.googleapis.com" + }, + { + "id": "google.shopping.merchant.promotions.v1beta", + "directory": "google/shopping/merchant/promotions/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", + "importDirectories": [ + "google/api", + "google/protobuf", + "google/shopping/merchant/promotions/v1beta", + "google/shopping/type", + "google/type" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/merchant/promotions/apiv1beta/promotionspb;promotionspb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.merchant.promotions.v1beta": 2 + } + } + }, + "services": [ + { + "shortName": "PromotionsService", + "fullName": "google.shopping.merchant.promotions.v1beta.PromotionsService", + "methods": [ + { + "shortName": "GetPromotion", + "fullName": "google.shopping.merchant.promotions.v1beta.PromotionsService.GetPromotion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/promotions/v1beta/{name=accounts/*/promotions/*}" + } + ] + }, + { + "shortName": "InsertPromotion", + "fullName": "google.shopping.merchant.promotions.v1beta.PromotionsService.InsertPromotion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/promotions/v1beta/{parent=accounts/*}/promotions:insert" + } + ] + }, + { + "shortName": "ListPromotions", + "fullName": "google.shopping.merchant.promotions.v1beta.PromotionsService.ListPromotions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/promotions/v1beta/{parent=accounts/*}/promotions" + } + ] + } + ] + } + ], + "configFile": "merchantapi_v1beta.yaml", + "serviceConfigApiNames": [ + "google.shopping.merchant.promotions.v1beta.PromotionsService" + ], + "nameInServiceConfig": "merchantapi.googleapis.com" + }, + { + "id": "google.shopping.merchant.quota.v1beta", + "directory": "google/shopping/merchant/quota/v1beta", + "version": "v1beta", + "majorVersion": "v1", + "hostName": "merchantapi.googleapis.com", + "title": "Merchant API", + "description": "Programmatically manage your Merchant Center accounts.", + "importDirectories": [ + "google/api" + ], + "options": { + "go_package": { + "valueCounts": { + "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb;quotapb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.shopping.merchant.quota.v1beta": 1 + } + } + }, + "services": [ + { + "shortName": "QuotaService", + "fullName": "google.shopping.merchant.quota.v1beta.QuotaService", + "methods": [ + { + "shortName": "ListQuotaGroups", + "fullName": "google.shopping.merchant.quota.v1beta.QuotaService.ListQuotaGroups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/quota/v1beta/{parent=accounts/*}/quotas" + } + ] + } + ] + } + ], + "configFile": "merchantapi_v1beta.yaml", + "serviceConfigApiNames": [ + "google.shopping.merchant.quota.v1beta.QuotaService" + ], + "nameInServiceConfig": "merchantapi.googleapis.com" + }, { "id": "google.shopping.merchant.reports.v1beta", "directory": "google/shopping/merchant/reports/v1beta", @@ -114351,32 +125197,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Spanner.Admin.Database.V1": 3 + "Google.Cloud.Spanner.Admin.Database.V1": 4 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/spanner/admin/database/apiv1/databasepb;databasepb": 3 + "cloud.google.com/go/spanner/admin/database/apiv1/databasepb;databasepb": 4 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 4 } }, "java_package": { "valueCounts": { - "com.google.spanner.admin.database.v1": 3 + "com.google.spanner.admin.database.v1": 4 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Spanner\\Admin\\Database\\V1": 3 + "Google\\Cloud\\Spanner\\Admin\\Database\\V1": 4 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Spanner::Admin::Database::V1": 3 + "Google::Cloud::Spanner::Admin::Database::V1": 4 } } }, @@ -114407,6 +125253,17 @@ } ] }, + { + "shortName": "CreateBackupSchedule", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.CreateBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/instances/*/databases/*}/backupSchedules" + } + ] + }, { "shortName": "CreateDatabase", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase", @@ -114429,6 +125286,17 @@ } ] }, + { + "shortName": "DeleteBackupSchedule", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/instances/*/databases/*/backupSchedules/*}" + } + ] + }, { "shortName": "DropDatabase", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase", @@ -114451,6 +125319,17 @@ } ] }, + { + "shortName": "GetBackupSchedule", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.GetBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/instances/*/databases/*/backupSchedules/*}" + } + ] + }, { "shortName": "GetDatabase", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase", @@ -114485,6 +125364,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/instances/*/backups/*}:getIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/instances/*/databases/*/backupSchedules/*}:getIamPolicy" } ] }, @@ -114499,6 +125382,17 @@ } ] }, + { + "shortName": "ListBackupSchedules", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.ListBackupSchedules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/instances/*/databases/*}/backupSchedules" + } + ] + }, { "shortName": "ListBackups", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.ListBackups", @@ -114566,6 +125460,10 @@ { "httpMethod": "POST", "path": "/v1/{resource=projects/*/instances/*/backups/*}:setIamPolicy" + }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/instances/*/databases/*/backupSchedules/*}:setIamPolicy" } ] }, @@ -114582,6 +125480,10 @@ "httpMethod": "POST", "path": "/v1/{resource=projects/*/instances/*/backups/*}:testIamPermissions" }, + { + "httpMethod": "POST", + "path": "/v1/{resource=projects/*/instances/*/databases/*/backupSchedules/*}:testIamPermissions" + }, { "httpMethod": "POST", "path": "/v1/{resource=projects/*/instances/*/databases/*/databaseRoles/*}:testIamPermissions" @@ -114599,6 +125501,17 @@ } ] }, + { + "shortName": "UpdateBackupSchedule", + "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackupSchedule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{backup_schedule.name=projects/*/instances/*/databases/*/backupSchedules/*}" + } + ] + }, { "shortName": "UpdateDatabase", "fullName": "google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabase", @@ -114705,6 +125618,17 @@ } ] }, + { + "shortName": "CreateInstancePartition", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.CreateInstancePartition", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/instances/*}/instancePartitions" + } + ] + }, { "shortName": "DeleteInstance", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstance", @@ -114727,6 +125651,17 @@ } ] }, + { + "shortName": "DeleteInstancePartition", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstancePartition", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/instances/*/instancePartitions/*}" + } + ] + }, { "shortName": "GetIamPolicy", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.GetIamPolicy", @@ -114760,6 +125695,17 @@ } ] }, + { + "shortName": "GetInstancePartition", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.GetInstancePartition", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/instances/*/instancePartitions/*}" + } + ] + }, { "shortName": "ListInstanceConfigOperations", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations", @@ -114782,6 +125728,28 @@ } ] }, + { + "shortName": "ListInstancePartitionOperations", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitionOperations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/instances/*}/instancePartitionOperations" + } + ] + }, + { + "shortName": "ListInstancePartitions", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/instances/*}/instancePartitions" + } + ] + }, { "shortName": "ListInstances", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.ListInstances", @@ -114836,6 +125804,17 @@ "path": "/v1/{instance_config.name=projects/*/instanceConfigs/*}" } ] + }, + { + "shortName": "UpdateInstancePartition", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstancePartition", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{instance_partition.name=projects/*/instances/*/instancePartitions/*}" + } + ] } ] } @@ -115147,17 +126126,22 @@ "version": "v2", "majorVersion": "v2", "hostName": "storage.googleapis.com", - "title": "Cloud Storage API", - "description": "Lets you store and retrieve potentially-large, immutable data objects.", + "title": "Storage Control API", + "description": "The Storage Control API lets you perform metadata-specific, control plane, and long-running operations. The Storage Control API creates one space to perform metadata-specific, control plane, and long-running operations apart from the Storage API. Separating these operations from the Storage API improves API standardization and lets you run faster releases.", "importDirectories": [ "google/api", "google/longrunning", "google/protobuf" ], "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Storage.Control.V2": 1 + } + }, "go_package": { "valueCounts": { - "cloud.google.com/go/storage/control/apiv2/storagecontrolpb;storagecontrolpb": 1 + "cloud.google.com/go/storage/control/apiv2/controlpb;controlpb": 1 } }, "java_multiple_files": { @@ -115169,6 +126153,16 @@ "valueCounts": { "com.google.storage.control.v2": 1 } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Storage\\Control\\V2": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Storage::Control::V2": 1 + } } }, "services": [ @@ -115181,16 +126175,31 @@ "fullName": "google.storage.control.v2.StorageControl.CreateFolder", "mode": "UNARY" }, + { + "shortName": "CreateManagedFolder", + "fullName": "google.storage.control.v2.StorageControl.CreateManagedFolder", + "mode": "UNARY" + }, { "shortName": "DeleteFolder", "fullName": "google.storage.control.v2.StorageControl.DeleteFolder", "mode": "UNARY" }, + { + "shortName": "DeleteManagedFolder", + "fullName": "google.storage.control.v2.StorageControl.DeleteManagedFolder", + "mode": "UNARY" + }, { "shortName": "GetFolder", "fullName": "google.storage.control.v2.StorageControl.GetFolder", "mode": "UNARY" }, + { + "shortName": "GetManagedFolder", + "fullName": "google.storage.control.v2.StorageControl.GetManagedFolder", + "mode": "UNARY" + }, { "shortName": "GetStorageLayout", "fullName": "google.storage.control.v2.StorageControl.GetStorageLayout", @@ -115201,6 +126210,11 @@ "fullName": "google.storage.control.v2.StorageControl.ListFolders", "mode": "UNARY" }, + { + "shortName": "ListManagedFolders", + "fullName": "google.storage.control.v2.StorageControl.ListManagedFolders", + "mode": "UNARY" + }, { "shortName": "RenameFolder", "fullName": "google.storage.control.v2.StorageControl.RenameFolder", @@ -115646,7 +126660,7 @@ "majorVersion": "v1", "hostName": "streetviewpublish.googleapis.com", "title": "Street View Publish API", - "description": "The Street View Publish API allows your application to publish 360 photos to Google Maps, along with image metadata that specifies the position, orientation, and connectivity of each photo. With this API, any app can offer an interface for positioning, connecting, and uploading user-generated Street View images.", + "description": "Publishes 360 photos to Google Maps, along with position, orientation, and connectivity metadata. Apps can offer an interface for positioning, connecting, and uploading user-generated Street View images.", "importDirectories": [ "google/api", "google/longrunning", @@ -115658,7 +126672,7 @@ "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/streetview/publish/v1;publish": 3 + "cloud.google.com/go/streetview/publish/apiv1/publishpb;publishpb": 3 } }, "java_package": { @@ -115829,7 +126843,7 @@ ] } ], - "configFile": "streetview_publish.yaml", + "configFile": "streetviewpublish.yaml", "serviceConfigApiNames": [ "google.streetview.publish.v1.StreetViewPublishService" ], @@ -115906,22 +126920,22 @@ "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/grafeas/v1;grafeas": 20 + "google.golang.org/genproto/googleapis/grafeas/v1;grafeas": 21 } }, "java_multiple_files": { "valueCounts": { - "true": 20 + "true": 21 } }, "java_package": { "valueCounts": { - "io.grafeas.v1": 20 + "io.grafeas.v1": 21 } }, "objc_class_prefix": { "valueCounts": { - "GRA": 20 + "GRA": 21 } } }, @@ -116004,6 +127018,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/notes/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/notes/*}" } ] }, @@ -116015,6 +127033,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/occurrences/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/occurrences/*}" } ] }, @@ -116026,6 +127048,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/occurrences/*}/notes" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/occurrences/*}/notes" } ] }, @@ -116037,6 +127063,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/notes/*}/occurrences" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/notes/*}/occurrences" } ] }, @@ -116048,6 +127078,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*}/notes" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/notes" } ] }, @@ -116059,6 +127093,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*}/occurrences" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/occurrences" } ] }, diff --git a/third_party/googleapis/gapic/metadata/gapic_metadata.proto b/third_party/googleapis/gapic/metadata/gapic_metadata.proto index 16090ede0..ef11917bf 100644 --- a/third_party/googleapis/gapic/metadata/gapic_metadata.proto +++ b/third_party/googleapis/gapic/metadata/gapic_metadata.proto @@ -25,8 +25,8 @@ option java_package = "com.google.gapic.metadata"; option php_namespace = "Google\\Gapic\\Metadata"; option ruby_package = "Google::Gapic::Metadata"; -// Metadata about a GAPIC library for a specific combination of API, version, and -// computer language. +// Metadata about a GAPIC library for a specific combination of API, version, +// and computer language. message GapicMetadata { // Schema version of this proto. Current value: 1.0 string schema = 1; @@ -74,7 +74,7 @@ message GapicMetadata { // than one library_client method for each RPC. RPCs with no // library_client methods need not be included. // - // The key name is the name of the RPC as defined and formated in + // The key name is the name of the RPC as defined and formatted in // the proto file. map rpcs = 2; } @@ -88,5 +88,4 @@ message GapicMetadata { // source code. repeated string methods = 1; } - } diff --git a/third_party/googleapis/google/actions/sdk/v2/account_linking.proto b/third_party/googleapis/google/actions/sdk/v2/account_linking.proto index b33299ff1..3d9958734 100644 --- a/third_party/googleapis/google/actions/sdk/v2/account_linking.proto +++ b/third_party/googleapis/google/actions/sdk/v2/account_linking.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/account_linking_secret.proto b/third_party/googleapis/google/actions/sdk/v2/account_linking_secret.proto index d0162412b..93b659980 100644 --- a/third_party/googleapis/google/actions/sdk/v2/account_linking_secret.proto +++ b/third_party/googleapis/google/actions/sdk/v2/account_linking_secret.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/action.proto b/third_party/googleapis/google/actions/sdk/v2/action.proto index 99ebb1157..2bbfb8bfe 100644 --- a/third_party/googleapis/google/actions/sdk/v2/action.proto +++ b/third_party/googleapis/google/actions/sdk/v2/action.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/actions_sdk.proto b/third_party/googleapis/google/actions/sdk/v2/actions_sdk.proto index a145b2213..c5c5c3eac 100644 --- a/third_party/googleapis/google/actions/sdk/v2/actions_sdk.proto +++ b/third_party/googleapis/google/actions/sdk/v2/actions_sdk.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/actions_testing.proto b/third_party/googleapis/google/actions/sdk/v2/actions_testing.proto index 9de13ea05..29a640a4a 100644 --- a/third_party/googleapis/google/actions/sdk/v2/actions_testing.proto +++ b/third_party/googleapis/google/actions/sdk/v2/actions_testing.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/config_file.proto b/third_party/googleapis/google/actions/sdk/v2/config_file.proto index 5fd2dae50..f40a06e06 100644 --- a/third_party/googleapis/google/actions/sdk/v2/config_file.proto +++ b/third_party/googleapis/google/actions/sdk/v2/config_file.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/intent.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/intent.proto index e2e8bec08..666cf0660 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/intent.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/canvas.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/canvas.proto index b99099b93..349ac9176 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/canvas.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/canvas.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/card.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/card.proto index df4ce0e57..1093798d7 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/card.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/card.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/collection.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/collection.proto index 8666fced4..0f9927d73 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/collection.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/collection.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/content.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/content.proto index 4eeeb0a68..281d8f294 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/content.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/content.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/image.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/image.proto index 1ede5d4fd..fa74da18b 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/image.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/image.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/link.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/link.proto index a3efc812d..c09158105 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/link.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/link.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/list.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/list.proto index 901dd107b..a7058c739 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/list.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/list.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/media.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/media.proto index 49e3d26d0..ecdd603d2 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/media.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/media.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/table.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/table.proto index 8e07efbcd..7a8c50517 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/table.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/content/table.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/prompt.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/prompt.proto index a3ce25ac5..9a107aacc 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/simple.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/simple.proto index 4feda0607..b71f285bb 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/simple.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/simple.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/suggestion.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/suggestion.proto index 228c39986..219d09fbc 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/suggestion.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/prompt/suggestion.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/conversation/scene.proto b/third_party/googleapis/google/actions/sdk/v2/conversation/scene.proto index c042eba79..2b932c93e 100644 --- a/third_party/googleapis/google/actions/sdk/v2/conversation/scene.proto +++ b/third_party/googleapis/google/actions/sdk/v2/conversation/scene.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/data_file.proto b/third_party/googleapis/google/actions/sdk/v2/data_file.proto index 5617bd2b3..fcf17399a 100644 --- a/third_party/googleapis/google/actions/sdk/v2/data_file.proto +++ b/third_party/googleapis/google/actions/sdk/v2/data_file.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/event_logs.proto b/third_party/googleapis/google/actions/sdk/v2/event_logs.proto index 33e002ffd..8e50287c1 100644 --- a/third_party/googleapis/google/actions/sdk/v2/event_logs.proto +++ b/third_party/googleapis/google/actions/sdk/v2/event_logs.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/files.proto b/third_party/googleapis/google/actions/sdk/v2/files.proto index 529b25ed0..236dbac69 100644 --- a/third_party/googleapis/google/actions/sdk/v2/files.proto +++ b/third_party/googleapis/google/actions/sdk/v2/files.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/conditional_event.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/conditional_event.proto index 35cb48687..435ac082b 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/conditional_event.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/conditional_event.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/entity_set.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/entity_set.proto index 2ec47cd90..3e7ae2794 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/entity_set.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/entity_set.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/event_handler.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/event_handler.proto index 99d011533..8f2990507 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/event_handler.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/event_handler.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/global_intent_event.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/global_intent_event.proto index e825f3bf6..664fbb74a 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/global_intent_event.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/global_intent_event.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent.proto index 8ed8d0401..b17a76769 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent_event.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent_event.proto index f765a86a5..29b67bc6f 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent_event.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/intent_event.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto index ca6e5645d..0499675ff 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_canvas_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_card_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_card_prompt.proto index 17d59e2b5..264c8e907 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_card_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_card_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_browse_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_browse_prompt.proto index a2c8b9e95..428642ba8 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_browse_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_browse_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_prompt.proto index cfb9fa8ff..fc80884a9 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_collection_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_content_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_content_prompt.proto index 0d253895b..533048bb0 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_content_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_content_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_image_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_image_prompt.proto index 34d6e7422..4028ad5b2 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_image_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_image_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_link_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_link_prompt.proto index 258b72442..1cc90853d 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_link_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_link_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_list_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_list_prompt.proto index 6869a69f4..11de60f90 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_list_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_list_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_media_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_media_prompt.proto index 4c6d43d79..00b9d6b99 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_media_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_media_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_table_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_table_prompt.proto index 1e67ddd07..c3e70eb26 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_table_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/content/static_table_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_prompt.proto index f842e920a..893c4b1a3 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_simple_prompt.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_simple_prompt.proto index 0d21f9741..5b312577a 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_simple_prompt.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/static_simple_prompt.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/suggestion.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/suggestion.proto index bd8416154..f355d73b4 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/suggestion.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/suggestion.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/surface_capabilities.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/surface_capabilities.proto index 4c7d02999..98dec04ee 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/surface_capabilities.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/prompt/surface_capabilities.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/scene.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/scene.proto index e8c4b4b94..034430688 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/scene.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/scene.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/slot.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/slot.proto index 114fe4a24..a4f5c7655 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/slot.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/slot.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/class_reference.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/class_reference.proto index f06fead32..3102f646f 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/class_reference.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/class_reference.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/entity_display.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/entity_display.proto index 92a66481b..2576e7480 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/entity_display.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/entity_display.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/free_text_type.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/free_text_type.proto index dee041b38..6ea743bf3 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/free_text_type.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/free_text_type.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/regular_expression_type.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/regular_expression_type.proto index 718a46c19..d9fe3417f 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/regular_expression_type.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/regular_expression_type.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/synonym_type.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/synonym_type.proto index a64bba07c..e1a80c6ad 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/synonym_type.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/synonym_type.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/type.proto b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/type.proto index 80140bb35..19a5416db 100644 --- a/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/type.proto +++ b/third_party/googleapis/google/actions/sdk/v2/interactionmodel/type/type.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/localized_settings.proto b/third_party/googleapis/google/actions/sdk/v2/localized_settings.proto index 7a1f44c9d..253245ae7 100644 --- a/third_party/googleapis/google/actions/sdk/v2/localized_settings.proto +++ b/third_party/googleapis/google/actions/sdk/v2/localized_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/manifest.proto b/third_party/googleapis/google/actions/sdk/v2/manifest.proto index 2bfd70b8d..eca7d75a8 100644 --- a/third_party/googleapis/google/actions/sdk/v2/manifest.proto +++ b/third_party/googleapis/google/actions/sdk/v2/manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/release_channel.proto b/third_party/googleapis/google/actions/sdk/v2/release_channel.proto index 20c62428b..9fb5f8e9c 100644 --- a/third_party/googleapis/google/actions/sdk/v2/release_channel.proto +++ b/third_party/googleapis/google/actions/sdk/v2/release_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/settings.proto b/third_party/googleapis/google/actions/sdk/v2/settings.proto index 94835b2df..9cb41efeb 100644 --- a/third_party/googleapis/google/actions/sdk/v2/settings.proto +++ b/third_party/googleapis/google/actions/sdk/v2/settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/surface.proto b/third_party/googleapis/google/actions/sdk/v2/surface.proto index a68276a91..425bc2053 100644 --- a/third_party/googleapis/google/actions/sdk/v2/surface.proto +++ b/third_party/googleapis/google/actions/sdk/v2/surface.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/theme_customization.proto b/third_party/googleapis/google/actions/sdk/v2/theme_customization.proto index dc7623c30..0d96336b4 100644 --- a/third_party/googleapis/google/actions/sdk/v2/theme_customization.proto +++ b/third_party/googleapis/google/actions/sdk/v2/theme_customization.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/validation_results.proto b/third_party/googleapis/google/actions/sdk/v2/validation_results.proto index 08993c1a9..18dc26a1a 100644 --- a/third_party/googleapis/google/actions/sdk/v2/validation_results.proto +++ b/third_party/googleapis/google/actions/sdk/v2/validation_results.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/version.proto b/third_party/googleapis/google/actions/sdk/v2/version.proto index 3df6f6dd9..c8c7938d0 100644 --- a/third_party/googleapis/google/actions/sdk/v2/version.proto +++ b/third_party/googleapis/google/actions/sdk/v2/version.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/sdk/v2/webhook.proto b/third_party/googleapis/google/actions/sdk/v2/webhook.proto index 23f5bad9c..69c159a07 100644 --- a/third_party/googleapis/google/actions/sdk/v2/webhook.proto +++ b/third_party/googleapis/google/actions/sdk/v2/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/type/date_range.proto b/third_party/googleapis/google/actions/type/date_range.proto index 20860f47c..7e9d4c62e 100644 --- a/third_party/googleapis/google/actions/type/date_range.proto +++ b/third_party/googleapis/google/actions/type/date_range.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/actions/type/datetime_range.proto b/third_party/googleapis/google/actions/type/datetime_range.proto index 6702c2bc4..0e99172da 100644 --- a/third_party/googleapis/google/actions/type/datetime_range.proto +++ b/third_party/googleapis/google/actions/type/datetime_range.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ads/admanager/v1/BUILD.bazel b/third_party/googleapis/google/ads/admanager/v1/BUILD.bazel new file mode 100644 index 000000000..6812be2e1 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/BUILD.bazel @@ -0,0 +1,420 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( + name = "admanager_proto", + srcs = [ + "ad_partner_declaration.proto", + "ad_partner_service.proto", + "ad_unit_enums.proto", + "ad_unit_service.proto", + "ad_unit_size.proto", + "admanager_error.proto", + "applied_label.proto", + "company_credit_status_enum.proto", + "company_service.proto", + "company_type_enum.proto", + "computed_status_enum.proto", + "contact_service.proto", + "creative_placeholder.proto", + "creative_service.proto", + "custom_field_enums.proto", + "custom_field_service.proto", + "custom_targeting_key_enums.proto", + "custom_targeting_key_service.proto", + "custom_targeting_value_enums.proto", + "custom_targeting_value_service.proto", + "environment_type_enum.proto", + "frequency_cap.proto", + "goal.proto", + "label_service.proto", + "line_item_enums.proto", + "line_item_service.proto", + "network_service.proto", + "order_service.proto", + "placement_enums.proto", + "placement_service.proto", + "report_service.proto", + "role_service.proto", + "size.proto", + "team_service.proto", + "user_service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "//google/type:money_proto", + "@com_google_protobuf//:any_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "admanager_proto_with_info", + deps = [ + ":admanager_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_proto_library", +) + +java_proto_library( + name = "admanager_java_proto", + deps = [":admanager_proto"], +) + +java_gapic_library( + name = "admanager_java_gapic", + srcs = [":admanager_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "admanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + test_deps = [ + ], + transport = "rest", + deps = [ + ":admanager_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "admanager_java_gapic_test_suite", + test_classes = [ + "com.google.ads.admanager.v1.AdPartnerServiceClientTest", + "com.google.ads.admanager.v1.AdUnitServiceClientTest", + "com.google.ads.admanager.v1.CompanyServiceClientTest", + "com.google.ads.admanager.v1.ContactServiceClientTest", + "com.google.ads.admanager.v1.CreativeServiceClientTest", + "com.google.ads.admanager.v1.CustomFieldServiceClientTest", + "com.google.ads.admanager.v1.CustomTargetingKeyServiceClientTest", + "com.google.ads.admanager.v1.CustomTargetingValueServiceClientTest", + "com.google.ads.admanager.v1.LabelServiceClientTest", + "com.google.ads.admanager.v1.LineItemServiceClientTest", + "com.google.ads.admanager.v1.NetworkServiceClientTest", + "com.google.ads.admanager.v1.OrderServiceClientTest", + "com.google.ads.admanager.v1.PlacementServiceClientTest", + "com.google.ads.admanager.v1.ReportServiceClientTest", + "com.google.ads.admanager.v1.RoleServiceClientTest", + "com.google.ads.admanager.v1.TeamServiceClientTest", + "com.google.ads.admanager.v1.UserServiceClientTest", + ], + runtime_deps = [":admanager_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-ads-admanager-v1-java", + include_samples = True, + transport = "rest", + deps = [ + ":admanager_java_gapic", + ":admanager_java_proto", + ":admanager_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "admanager_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/ads/admanager/v1", + protos = [":admanager_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:money_go_proto", + ], +) + +go_gapic_library( + name = "admanager_go_gapic", + srcs = [":admanager_proto_with_info"], + grpc_service_config = "admanager_grpc_service_config.json", + importpath = "google.golang.org/google/ads/admanager/v1;admanager", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + transport = "rest", + deps = [ + ":admanager_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:any_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-ads-admanager-v1-go", + deps = [ + ":admanager_go_gapic", + ":admanager_go_gapic_srcjar-metadata.srcjar", + ":admanager_go_gapic_srcjar-snippets.srcjar", + ":admanager_go_gapic_srcjar-test.srcjar", + ":admanager_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "admanager_py_gapic", + srcs = [":admanager_proto"], + grpc_service_config = "admanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + transport = "rest", + deps = [ + ], +) + +py_test( + name = "admanager_py_gapic_test", + srcs = [ + "admanager_py_gapic_pytest.py", + "admanager_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":admanager_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "ads-admanager-v1-py", + deps = [ + ":admanager_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "admanager_php_proto", + deps = [":admanager_proto"], +) + +php_gapic_library( + name = "admanager_php_gapic", + srcs = [":admanager_proto_with_info"], + grpc_service_config = "admanager_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + transport = "rest", + deps = [ + ":admanager_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-ads-admanager-v1-php", + deps = [ + ":admanager_php_gapic", + ":admanager_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "admanager_nodejs_gapic", + package_name = "@google-ads/admanager", + src = ":admanager_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "admanager_grpc_service_config.json", + package = "google.ads.admanager.v1", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + transport = "rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "ads-admanager-v1-nodejs", + deps = [ + ":admanager_nodejs_gapic", + ":admanager_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "admanager_ruby_proto", + deps = [":admanager_proto"], +) + +ruby_grpc_library( + name = "admanager_ruby_grpc", + srcs = [":admanager_proto"], + deps = [":admanager_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "admanager_ruby_gapic", + srcs = [":admanager_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-ads-admanager-v1"], + grpc_service_config = "admanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + transport = "rest", + deps = [ + ":admanager_ruby_grpc", + ":admanager_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-ads-admanager-v1-ruby", + deps = [ + ":admanager_ruby_gapic", + ":admanager_ruby_grpc", + ":admanager_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "admanager_csharp_proto", + deps = [":admanager_proto"], +) + +csharp_grpc_library( + name = "admanager_csharp_grpc", + srcs = [":admanager_proto"], + deps = [":admanager_csharp_proto"], +) + +csharp_gapic_library( + name = "admanager_csharp_gapic", + srcs = [":admanager_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "admanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "admanager_v1.yaml", + transport = "rest", + deps = [ + ":admanager_csharp_grpc", + ":admanager_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-ads-admanager-v1-csharp", + deps = [ + ":admanager_csharp_gapic", + ":admanager_csharp_grpc", + ":admanager_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "admanager_cc_proto", + deps = [":admanager_proto"], +) + +cc_grpc_library( + name = "admanager_cc_grpc", + srcs = [":admanager_proto"], + grpc_only = True, + deps = [":admanager_cc_proto"], +) diff --git a/third_party/googleapis/google/ads/admanager/v1/ad_partner_declaration.proto b/third_party/googleapis/google/ads/admanager/v1/ad_partner_declaration.proto new file mode 100644 index 000000000..e4d4de364 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/ad_partner_declaration.proto @@ -0,0 +1,57 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdPartnerDeclarationProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Represents a set of declarations about what (if any) ad partners +// are associated with a given creative. This can be set at the network level, +// as a default for all creatives, or overridden for a particular creative. +message AdPartnerDeclaration { + // They type of declaration. + DeclarationTypeEnum.DeclarationType type = 1; + + // The resource names of AdPartners being declared. + // Format: "networks/{network_code}/adPartners/{ad_partner_id}" + repeated string ad_partners = 2 [(google.api.resource_reference) = { + type: "admanager.googleapis.com/AdPartner" + }]; +} + +// Wrapper message for +// [DeclarationTypeEnum][google.ads.admanager.v1.DeclarationTypeEnum]. +message DeclarationTypeEnum { + // The declaration about third party data usage on the associated entity. + enum DeclarationType { + // Default value. This value is unused. + DECLARATION_TYPE_UNSPECIFIED = 0; + + // No ad technology providers to declare. + NONE = 1; + + // There are are ad technology providers to declare on this entity. + DECLARED = 2; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/ad_partner_service.proto b/third_party/googleapis/google/ads/admanager/v1/ad_partner_service.proto new file mode 100644 index 000000000..119d29b66 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/ad_partner_service.proto @@ -0,0 +1,139 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdPartnerServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling AdPartner objects. +service AdPartnerService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a AdPartner object. + rpc GetAdPartner(GetAdPartnerRequest) returns (AdPartner) { + option (google.api.http) = { + get: "/v1/{name=networks/*/adPartners/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of AdPartner objects. + rpc ListAdPartners(ListAdPartnersRequest) returns (ListAdPartnersResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/adPartners" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The AdPartner resource. +message AdPartner { + option (google.api.resource) = { + type: "admanager.googleapis.com/AdPartner" + pattern: "networks/{network_code}/adPartners/{ad_partner}" + plural: "adPartners" + singular: "adPartner" + }; + + // Identifier. The resource name of the AdPartner. + // Format: `networks/{network_code}/adPartners/{ad_partner_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Request object for GetAdPartner method. +message GetAdPartnerRequest { + // Required. The resource name of the AdPartner. + // Format: `networks/{network_code}/adPartners/{ad_partner_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdPartner" + } + ]; +} + +// Request object for ListAdPartners method. +message ListAdPartnersRequest { + // Required. The parent, which owns this collection of AdPartners. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of AdPartners to return. The service may + // return fewer than this value. If unspecified, at most 50 AdPartners will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListAdPartners` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAdPartners` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListAdPartnersRequest containing matching AdPartner +// resources. +message ListAdPartnersResponse { + // The AdPartner from the specified network. + repeated AdPartner ad_partners = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of AdPartners. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/ad_unit_enums.proto b/third_party/googleapis/google/ads/admanager/v1/ad_unit_enums.proto new file mode 100644 index 000000000..8435db2bd --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/ad_unit_enums.proto @@ -0,0 +1,42 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdUnitEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [AppliedAdsenseEnabled][google.ads.admanager.v1.AppliedAdsenseEnabledEnum.AppliedAdsenseEnabled] +message AppliedAdsenseEnabledEnum { + // Specifies if serving ads from the AdSense content network is enabled. + enum AppliedAdsenseEnabled { + // No adsense enabled setting applied directly; value will be inherited from + // parent or system default. + APPLIED_ADSENSE_ENABLED_UNSPECIFIED = 0; + + // Serving ads from AdSense content network is enabled. + TRUE = 1; + + // Serving ads from AdSense content network is disabled. + FALSE = 2; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/ad_unit_service.proto b/third_party/googleapis/google/ads/admanager/v1/ad_unit_service.proto new file mode 100644 index 000000000..0f98cca70 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/ad_unit_service.proto @@ -0,0 +1,352 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/ad_unit_enums.proto"; +import "google/ads/admanager/v1/ad_unit_size.proto"; +import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/frequency_cap.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdUnitServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling AdUnit objects. +service AdUnitService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve an AdUnit object. + rpc GetAdUnit(GetAdUnitRequest) returns (AdUnit) { + option (google.api.http) = { + get: "/v1/{name=networks/*/adUnits/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of AdUnit objects. + rpc ListAdUnits(ListAdUnitsRequest) returns (ListAdUnitsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/adUnits" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The AdUnit resource. +message AdUnit { + option (google.api.resource) = { + type: "admanager.googleapis.com/AdUnit" + pattern: "networks/{network_code}/adUnits/{ad_unit}" + plural: "adUnits" + singular: "adUnit" + }; + + // The status of an AdUnit. + enum Status { + // Default value. This value is unused. + STATUS_UNSPECIFIED = 0; + + // The ad unit is active, available for targeting, and serving. + ACTIVE = 1; + + // The ad unit will be visible in the UI, but ignored by serving. + INACTIVE = 2; + + // The ad unit will be hidden in the UI and ignored by serving. + ARCHIVED = 3; + } + + // Identifier. The resource name of the AdUnit. + // Format: `networks/{network_code}/adUnits/{ad_unit_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. AdUnit ID. + int64 ad_unit_id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The AdUnit's parent. Every ad unit has a parent except + // for the root ad unit, which is created by Google. Format: + // "networks/{network_code}/adUnits/{ad_unit_id}" + string parent_ad_unit = 10 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. The path to this AdUnit in the ad unit hierarchy represented + // as a list from the root to this ad unit's parent. For root ad units, this + // list is empty. + repeated AdUnitParent parent_path = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the ad unit. Its maximum length is 255 + // characters. + string display_name = 9 [(google.api.field_behavior) = REQUIRED]; + + // Immutable. A string used to uniquely identify the ad unit for the purposes + // of serving the ad. This attribute is optional and can be set during ad unit + // creation. If it is not provided, it will be assigned by Google based off of + // the ad unit ID. + string ad_unit_code = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The status of this ad unit. It defaults to ACTIVE. + Status status = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Non-empty default. The value to use for the HTML link's target attribute. + // This value will be interpreted as TOP if left blank. + TargetWindowEnum.TargetWindow target_window = 12 + [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; + + // Optional. The resource names of Teams directly applied to this AdUnit. + // Format: "networks/{network_code}/teams/{team_id}" + repeated string applied_teams = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The resource names of all Teams that this AdUnit is on as well + // as those inherited from parent AdUnits. Format: + // "networks/{network_code}/teams/{team_id}" + repeated string teams = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Optional. A description of the ad unit. The maximum length is 65,535 + // characters. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this field is set to true, then the AdUnit will not be + // implicitly targeted when its parent is. Traffickers must explicitly + // target such an AdUnit or else no line items will serve to it. This + // feature is only available for Ad Manager 360 accounts. + bool explicitly_targeted = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. This field is set to true if the ad unit has any children. + bool has_children = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant this AdUnit was last modified. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The sizes that can be served inside this ad unit. + repeated AdUnitSize ad_unit_sizes = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines what set top box video on demand channel this ad unit + // corresponds to in an external set top box ad campaign system. + string external_set_top_box_channel_id = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The duration after which an Ad Unit will automatically refresh. + // This is only valid for ad units in mobile apps. If not set, the ad unit + // will not refresh. + google.protobuf.Duration refresh_delay = 19 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ID of the CTV application that this ad unit is within. + int64 ctv_application_id = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The set of labels applied directly to this ad unit. + repeated AppliedLabel applied_labels = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Contains the set of labels applied directly to the ad unit as + // well as those inherited from the parent ad units. If a label has been + // negated, only the negated label is returned. This field is readonly and is + // assigned by Google. + repeated AppliedLabel effective_applied_labels = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The set of label frequency caps applied directly to this ad unit. + // There is a limit of 10 label frequency caps per ad unit. + repeated LabelFrequencyCap applied_label_frequency_caps = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The label frequency caps applied directly to the ad unit as + // well as those inherited from parent ad units. + repeated LabelFrequencyCap effective_label_frequency_caps = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The smart size mode for this ad unit. This attribute is optional + // and defaults to SmartSizeMode.NONE for fixed sizes. + SmartSizeModeEnum.SmartSizeMode smart_size_mode = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of AdSense enabled directly applied to this ad unit. + // This attribute is optional and if not specified this ad unit will inherit + // the value of effectiveAdsenseEnabled from its ancestors. + AppliedAdsenseEnabledEnum.AppliedAdsenseEnabled applied_adsense_enabled = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Specifies whether or not the AdUnit is enabled for serving ads + // from the AdSense content network. This attribute defaults to the ad unit's + // parent or ancestor's setting if one has been set. If no ancestor of the ad + // unit has set appliedAdsenseEnabled, the attribute is defaulted to true. + bool effective_adsense_enabled = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The summary of a parent AdUnit. +message AdUnitParent { + // Output only. The parent of the current AdUnit + // Format: `networks/{network_code}/adUnits/{ad_unit_id}` + string parent_ad_unit = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. The display name of the parent AdUnit. + string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A string used to uniquely identify the ad unit for the + // purposes of serving the ad. + string ad_unit_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Wrapper message for +// [TargetWindow][google.ads.admanager.v1.TargetWindowEnum.TargetWindow]. +message TargetWindowEnum { + // Corresponds to an HTML link's target attribute. + // See http://www.w3.org/TR/html401/present/frames.html#adef-target + enum TargetWindow { + // Default value. This value is unused. + TARGET_WINDOW_UNSPECIFIED = 0; + + // Specifies that the link should open in the full body of the page. + TOP = 1; + + // Specifies that the link should open in a new window. + BLANK = 2; + } +} + +// Frequency cap using a label. +message LabelFrequencyCap { + // The label to used for frequency capping. + // Format: "networks/{network_code}/labels/{label_id}" + string label = 1; + + // The frequency cap. + FrequencyCap frequency_cap = 2; +} + +// Wrapper message for +// [SmartSizeMode][google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode]. +message SmartSizeModeEnum { + // The smart size mode for this ad unit. This attribute is optional and + // defaults to SmartSizeMode.NONE for fixed sizes. + enum SmartSizeMode { + // Default value. This value is unused. + SMART_SIZE_MODE_UNSPECIFIED = 0; + + // Fixed size mode (default). + NONE = 1; + + // The height is fixed for the request, the width is a range. + SMART_BANNER = 2; + + // Height and width are ranges. + DYNAMIC_SIZE = 3; + } +} + +// Request object for GetAdUnit method. +message GetAdUnitRequest { + // Required. The resource name of the AdUnit. + // Format: `networks/{network_code}/adUnits/{ad_unit_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; +} + +// Request object for ListAdUnits method. +message ListAdUnitsRequest { + // Required. The parent, which owns this collection of AdUnits. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of AdUnits to return. The service may return + // fewer than this value. If unspecified, at most 50 ad units will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListAdUnits` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAdUnits` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListAdUnitsRequest containing matching AdUnit resources. +message ListAdUnitsResponse { + // The AdUnit from the specified network. + repeated AdUnit ad_units = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of AdUnits. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/ad_unit_size.proto b/third_party/googleapis/google/ads/admanager/v1/ad_unit_size.proto new file mode 100644 index 000000000..d56db53a0 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/ad_unit_size.proto @@ -0,0 +1,44 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/environment_type_enum.proto"; +import "google/ads/admanager/v1/size.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdUnitSizeProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Represents the size, environment, and companions of an ad in an ad unit. +message AdUnitSize { + // Required. The Size of the AdUnit. + Size size = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The EnvironmentType of the AdUnit + EnvironmentTypeEnum.EnvironmentType environment_type = 2 + [(google.api.field_behavior) = REQUIRED]; + + // The companions for this ad unit size. Companions are only valid if the + // environment is + // [VIDEO_PLAYER][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType]. + repeated Size companions = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/admanager_error.proto b/third_party/googleapis/google/ads/admanager/v1/admanager_error.proto new file mode 100644 index 000000000..29363e183 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/admanager_error.proto @@ -0,0 +1,52 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/protobuf/any.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdManagerErrorProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// / AdManagerError contains all the information required for processing a +// / particular error thrown by the AdManager API. +// / +// / At least one AdManagerError should be included in all error messages sent +// to / the client. +message AdManagerError { + // The unique identifying string for this error. + string error_code = 1; + + // A publisher appropriate explanation of this error. + string message = 2; + + // The field path that triggered this error. + string field_path = 3; + + // The value that triggered this error. + string trigger = 4; + + // The stack trace that accompanies this error. + string stack_trace = 5; + + // A list of messages that carry any additional error details. + repeated google.protobuf.Any details = 6; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/admanager_grpc_service_config.json b/third_party/googleapis/google/ads/admanager/v1/admanager_grpc_service_config.json new file mode 100644 index 000000000..9ffce904e --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/admanager_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.ads.admanager.v1.OrderService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/ads/admanager/v1/admanager_v1.yaml b/third_party/googleapis/google/ads/admanager/v1/admanager_v1.yaml new file mode 100644 index 000000000..46c0404b6 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/admanager_v1.yaml @@ -0,0 +1,61 @@ +type: google.api.Service +config_version: 3 +name: admanager.googleapis.com +title: Google Ad Manager API + +apis: +- name: google.ads.admanager.v1.AdPartnerService +- name: google.ads.admanager.v1.AdUnitService +- name: google.ads.admanager.v1.CompanyService +- name: google.ads.admanager.v1.ContactService +- name: google.ads.admanager.v1.CreativeService +- name: google.ads.admanager.v1.CustomFieldService +- name: google.ads.admanager.v1.CustomTargetingKeyService +- name: google.ads.admanager.v1.CustomTargetingValueService +- name: google.ads.admanager.v1.LabelService +- name: google.ads.admanager.v1.LineItemService +- name: google.ads.admanager.v1.NetworkService +- name: google.ads.admanager.v1.OrderService +- name: google.ads.admanager.v1.PlacementService +- name: google.ads.admanager.v1.ReportService +- name: google.ads.admanager.v1.RoleService +- name: google.ads.admanager.v1.TeamService +- name: google.ads.admanager.v1.UserService +- name: google.longrunning.Operations + +types: +- name: google.ads.admanager.v1.ExportSavedReportMetadata +- name: google.ads.admanager.v1.ExportSavedReportResponse +- name: google.ads.admanager.v1.Report + +documentation: + summary: 'Manage your Ad Manager inventory, run reports and more.' + overview: |- + The Ad Manager API enables an app to integrate with Google Ad Manager. + You can read Ad Manager data and run reports using the API. + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=networks/*/operations/reports/exports/*}' + additional_bindings: + - get: '/v1/{name=networks/*/operations/reports/runs/*}' + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1265187&template=1787490 + documentation_uri: https://developers.google.com/ad-manager/api/beta + api_short_name: admanager + github_label: 'api: admanager' + doc_tag_prefix: admanager + organization: ADS + library_settings: + - version: google.ads.admanager.v1 + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/ads/admanager/v1/applied_label.proto b/third_party/googleapis/google/ads/admanager/v1/applied_label.proto new file mode 100644 index 000000000..d0127e54a --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/applied_label.proto @@ -0,0 +1,41 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AppliedLabelProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Represents a Label that can be applied to an entity. +message AppliedLabel { + // Required. The label to be applied. + // Format: "networks/{network_code}/labels/{label_id}" + string label = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Label" } + ]; + + // Specifies whether or not to negate the effects of the label. + bool negated = 2; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/company_credit_status_enum.proto b/third_party/googleapis/google/ads/admanager/v1/company_credit_status_enum.proto new file mode 100644 index 000000000..3b194fd45 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/company_credit_status_enum.proto @@ -0,0 +1,97 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CompanyCreditStatusEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [CompanyCreditStatus][google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus] +message CompanyCreditStatusEnum { + // The credit status of a company. + // + // Credit statuses specify the credit-worthiness of a company and affect the + // ad serving of campaigns belonging to the company. + // + // In basic settings, only the + // [ACTIVE][google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus.ACTIVE] + // and + // [INACTIVE][google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus.INACTIVE] + // credit statuses are applicable. In advance settings, all credit statuses + // are applicable. + enum CompanyCreditStatus { + // No value specified + COMPANY_CREDIT_STATUS_UNSPECIFIED = 0; + + // The company's credit status is active. + // + // Line items belonging to the company can serve. + // + // This credit status is the default for basic settings and is available in + // both basic and advance settings. + ACTIVE = 1; + + // The company's credit status is inactive. + // + // Line items belonging to the company cannot be activated. However, line + // items that were activated before the credit status changed will remain + // active. New orders or line items belonging to the company cannot be + // created. + // + // Companies with this credit status will be hidden by default in company + // search results. + // + // This credit status is available in both basic and advance settings. + INACTIVE = 2; + + // The company's credit status is on hold. + // + // Line items belonging to the company cannot be activated. However, line + // items that were activated before the credit status changed will remain + // active. New orders or line items belonging to the company can be + // created. + // + // This credit status is the default in advance settings and is only + // available in advance settings. + ON_HOLD = 3; + + // The company's credit status is stopped. + // + // Line items belonging to the company cannot be activated. However, line + // items that were activated before the credit status changed will remain + // active. New orders or line items belonging to the company cannot be + // created. + // + // This credit status is only available in advance settings. + STOP = 4; + + // The company's credit status is blocked. + // + // All active line items belonging to the company will stop serving with + // immediate effect. Line items belonging to the company cannot be + // activated, and new orders or line items belonging to the company cannot + // be created. + // + // This credit status is only available in advance settings. + BLOCKED = 5; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/company_service.proto b/third_party/googleapis/google/ads/admanager/v1/company_service.proto new file mode 100644 index 000000000..aedb5eeee --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/company_service.proto @@ -0,0 +1,210 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/company_credit_status_enum.proto"; +import "google/ads/admanager/v1/company_type_enum.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CompanyServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling `Company` objects. +service CompanyService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a `Company` object. + rpc GetCompany(GetCompanyRequest) returns (Company) { + option (google.api.http) = { + get: "/v1/{name=networks/*/companies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `Company` objects. + rpc ListCompanies(ListCompaniesRequest) returns (ListCompaniesResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/companies" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The `Company` resource. +message Company { + option (google.api.resource) = { + type: "admanager.googleapis.com/Company" + pattern: "networks/{network_code}/companies/{company}" + plural: "companies" + singular: "company" + }; + + // Identifier. The resource name of the `Company`. + // Format: `networks/{network_code}/companies/{company_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Company` ID. + int64 company_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the `Company`. + // + // This value has a maximum length of 127 characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the `Company`. + CompanyTypeEnum.CompanyType type = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The address for the `Company`. + // + // This value has a maximum length of 1024 characters. + string address = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The email for the `Company`. + // + // This value has a maximum length of 128 characters. + string email = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The fax number for the `Company`. + // + // This value has a maximum length of 63 characters. + string fax = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The phone number for the `Company`. + // + // This value has a maximum length of 63 characters. + string phone = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The external ID for the `Company`. + // + // This value has a maximum length of 255 characters. + string external_id = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Comments about the `Company`. + // + // This value has a maximum length of 1024 characters. + string comment = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The credit status of this company. + // + // This attribute defaults to `ACTIVE` if basic settings are enabled and + // `ON_HOLD` if advance settings are enabled. + CompanyCreditStatusEnum.CompanyCreditStatus credit_status = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels that are directly applied to this company. + repeated AppliedLabel applied_labels = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The resource names of primary Contact of this company. + // Format: "networks/{network_code}/contacts/{contact_id}" + optional string primary_contact = 13 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; + + // Optional. The resource names of Teams that are directly associated with + // this company. Format: "networks/{network_code}/teams/{team_id}" + repeated string applied_teams = 14 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; +} + +// Request object for `GetCompany` method. +message GetCompanyRequest { + // Required. The resource name of the Company. + // Format: `networks/{network_code}/companies/{company_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Company" + } + ]; +} + +// Request object for `ListCompanies` method. +message ListCompaniesRequest { + // Required. The parent, which owns this collection of Companies. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `Companies` to return. The service may + // return fewer than this value. If unspecified, at most 50 `Companies` will + // be returned. The maximum value is 1000; values above 1000 will be coerced + // to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListCompanies` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCompanies` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListCompaniesRequest` containing matching `Company` +// resources. +message ListCompaniesResponse { + // The `Company` from the specified network. + repeated Company companies = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `Companies`. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/company_type_enum.proto b/third_party/googleapis/google/ads/admanager/v1/company_type_enum.proto new file mode 100644 index 000000000..3f621cffd --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/company_type_enum.proto @@ -0,0 +1,54 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CompanyTypeEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [CompanyType][google.ads.admanager.v1.CompanyTypeEnum.CompanyType] +message CompanyTypeEnum { + // The type of a company. + enum CompanyType { + // No value specified + COMPANY_TYPE_UNSPECIFIED = 0; + + // A business entity that purchases ad inventory. + ADVERTISER = 1; + + // A company representing the publisher's own advertiser for house ads. + HOUSE_ADVERTISER = 2; + + // An organization that manages ad accounts and offers services, such as ad + // creation, placement, and management to advertisers. + AGENCY = 3; + + // A company representing the publisher's own agency. + HOUSE_AGENCY = 4; + + // A company representing multiple advertisers and agencies. + AD_NETWORK = 5; + + // A third-party that measures creative viewability. + VIEWABILITY_PROVIDER = 6; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/computed_status_enum.proto b/third_party/googleapis/google/ads/admanager/v1/computed_status_enum.proto new file mode 100644 index 000000000..ad320edb2 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/computed_status_enum.proto @@ -0,0 +1,73 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "ComputedStatusEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [ComputedStatus][google.ads.admanager.v1.ComputedStatusEnum.ComputedStatus]. +message ComputedStatusEnum { + // Describes the computed LineItem status that is derived from the + // current state of the LineItem. + enum ComputedStatus { + // No value specified. + COMPUTED_STATUS_UNSPECIFIED = 0; + + // The LineItem has past its link LineItem#endDateTime with an auto + // extension, but hasn't met its goal. + DELIVERY_EXTENDED = 1; + + // The LineItem has begun serving. + DELIVERING = 2; + + // The LineItem has been activated and is ready to serve. + READY = 3; + + // The LineItem has been paused from serving. + PAUSED = 4; + + // The LineItem is inactive. It is either caused by missing creatives or + // the network disabling auto-activation. + INACTIVE = 5; + + // The LineItem has been paused and its reserved inventory has been + // released. The LineItem will not serve. + PAUSED_INVENTORY_RELEASED = 6; + + // The LineItem has been submitted for approval. + PENDING_APPROVAL = 7; + + // The LineItem has completed its run. + COMPLETED = 8; + + // The LineItem has been disapproved and is not eligible to serve. + DISAPPROVED = 9; + + // The LineItem is still being drafted. + DRAFT = 10; + + // The LineItem has been canceled and is no longer eligible to serve. + // This is a legacy status imported from Google Ad Manager orders. + CANCELED = 11; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/contact_service.proto b/third_party/googleapis/google/ads/admanager/v1/contact_service.proto new file mode 100644 index 000000000..0d60b5f4f --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/contact_service.proto @@ -0,0 +1,142 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "ContactServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling Contact objects. +service ContactService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a Contact object. + rpc GetContact(GetContactRequest) returns (Contact) { + option (google.api.http) = { + get: "/v1/{name=networks/*/contacts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of Contact objects. + rpc ListContacts(ListContactsRequest) returns (ListContactsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/contacts" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The Contact resource. +message Contact { + option (google.api.resource) = { + type: "admanager.googleapis.com/Contact" + pattern: "networks/{network_code}/contacts/{contact}" + plural: "contacts" + singular: "contact" + }; + + // Identifier. The resource name of the Contact. + // Format: `networks/{network_code}/contacts/{contact_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Contact` ID. + int64 contact_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request object for GetContact method. +message GetContactRequest { + // Required. The resource name of the Contact. + // Format: `networks/{network_code}/contacts/{contact_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; +} + +// Request object for ListContacts method. +message ListContactsRequest { + // Required. The parent, which owns this collection of Contacts. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of Contacts to return. The service may return + // fewer than this value. If unspecified, at most 50 contacts will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListContacts` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListContacts` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListContactsRequest containing matching Contact +// resources. +message ListContactsResponse { + // The Contact from the specified network. + repeated Contact contacts = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of Contacts. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/creative_placeholder.proto b/third_party/googleapis/google/ads/admanager/v1/creative_placeholder.proto new file mode 100644 index 000000000..871806cb7 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/creative_placeholder.proto @@ -0,0 +1,62 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/size.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CreativePlaceholderProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Describes a slot that a creative is expected to fill. This is used in +// forecasting and to validate that the correct creatives are associated with +// the line item. +message CreativePlaceholder { + // Required. The size that the creative is expected to have. + Size size = 1 [(google.api.field_behavior) = REQUIRED]; + + // The companions that the creative is expected to have. This attribute can + // only be set if the line item it belongs to has an + // [EnvironmentType][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType] + // of VIDEO_PLAYER or [roadblocking_type][LineItem.roadblocking_type] of + // CREATIVE_SET. + repeated Size companion_sizes = 2; + + // Expected number of creatives that will be uploaded corresponding to this + // creative placeholder. This estimate is used to improve the accuracy of + // forecasting; for example, if label frequency capping limits the number of + // times a creative may be served. + int32 expected_creative_count = 3; + + // Set of labels applied directly to this CreativePlaceholder. + repeated AppliedLabel applied_labels = 4; + + // Indicates if the expected creative of this placeholder has an AMP only + // variant. This is used to improve the accuracy of forecasting and has no + // effect on serving. + bool amp_only = 5; + + // The display name of the creative targeting that this CreativePlaceholder + // represents. + string creative_targeting_display_name = 6; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/creative_service.proto b/third_party/googleapis/google/ads/admanager/v1/creative_service.proto new file mode 100644 index 000000000..9f5bd8119 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/creative_service.proto @@ -0,0 +1,176 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/ad_partner_declaration.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CreativeServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling Creative objects. +service CreativeService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a Creative object. + rpc GetCreative(GetCreativeRequest) returns (Creative) { + option (google.api.http) = { + get: "/v1/{name=networks/*/creatives/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of Creative objects. + rpc ListCreatives(ListCreativesRequest) returns (ListCreativesResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/creatives" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The Creative resource. +message Creative { + option (google.api.resource) = { + type: "admanager.googleapis.com/Creative" + pattern: "networks/{network_code}/creatives/{creative}" + plural: "creatives" + singular: "creative" + }; + + // Identifier. The resource name of the Creative. + // Format: `networks/{network_code}/creatives/{creative_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Creative` ID. + int64 creative_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Display name of the `Creative`. This attribute has a maximum + // length of 255 characters. + string display_name = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource name of the Company, which is of type + // Company.Type.ADVERTISER, to which this Creative belongs. Format: + // "networks/{network_code}/companies/{company_id}" + string advertiser = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Company" + } + ]; + + // Output only. The instant this Creative was last modified. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the creative for previewing the media. + string preview_url = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. String representations of creative size. + // This field is temporarily available and will be deprecated when + // `Creative.size` becomes available. + string size_label = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The Ad Partners associated with this creative. + // This is distinct from any associated companies that Google may detect + // programmatically. + AdPartnerDeclaration ad_partner_declaration = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request object for GetCreative method. +message GetCreativeRequest { + // Required. The resource name of the Creative. + // Format: `networks/{network_code}/creatives/{creative_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Creative" + } + ]; +} + +// Request object for ListCreatives method. +message ListCreativesRequest { + // Required. The parent, which owns this collection of Creatives. + // Format: networks/{network_code} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of Creatives to return. The service may return + // fewer than this value. If unspecified, at most 50 creatives will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListCreatives` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCreatives` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListCreativesRequest containing matching Creative +// resources. +message ListCreativesResponse { + // The Creative from the specified network. + repeated Creative creatives = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of Creatives. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/custom_field_enums.proto b/third_party/googleapis/google/ads/admanager/v1/custom_field_enums.proto new file mode 100644 index 000000000..7e44aa5b5 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/custom_field_enums.proto @@ -0,0 +1,110 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomFieldEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [CustomFieldDataType][google.ads.admanager.v1.CustomFieldDataTypeEnum.CustomFieldDataType] +message CustomFieldDataTypeEnum { + // The data type for a CustomField. + enum CustomFieldDataType { + // No value specified + CUSTOM_FIELD_DATA_TYPE_UNSPECIFIED = 0; + + // A string field + // + // The max length is 255 characters. + STRING = 1; + + // A number field. + NUMBER = 2; + + // A "Yes" or "No" toggle field. + TOGGLE = 3; + + // A drop-down field. + DROP_DOWN = 4; + } +} + +// Wrapper message for +// [CustomFieldEntityType][google.ads.admanager.v1.CustomFieldEntityTypeEnum.CustomFieldEntityType] +message CustomFieldEntityTypeEnum { + // The types of entities that a CustomField can be applied to. + enum CustomFieldEntityType { + // No value specified + CUSTOM_FIELD_ENTITY_TYPE_UNSPECIFIED = 0; + + // The CustomField is applied to LineItems. + LINE_ITEM = 1; + + // The CustomField is applied to Orders. + ORDER = 2; + + // The CustomField is applied to Creatives. + CREATIVE = 3; + + // The CustomField is applied to Proposals. + PROPOSAL = 4; + + // The CustomField is applied to ProposalLineItems. + PROPOSAL_LINE_ITEM = 5; + } +} + +// Wrapper message for +// [CustomFieldStatus][google.ads.admanager.v1.CustomFieldStatusEnum.CustomFieldStatus] +message CustomFieldStatusEnum { + // The status of the CustomField. + enum CustomFieldStatus { + // No value specified + CUSTOM_FIELD_STATUS_UNSPECIFIED = 0; + + // The CustomField is active. + ACTIVE = 1; + + // The CustomField is inactive. + INACTIVE = 2; + } +} + +// Wrapper message for +// [CustomFieldVisibility][google.ads.admanager.v1.CustomFieldVisibilityEnum.CustomFieldVisibility] +message CustomFieldVisibilityEnum { + // The visibility level of a CustomField. + enum CustomFieldVisibility { + // No value specified + CUSTOM_FIELD_VISIBILITY_UNSPECIFIED = 0; + + // The CustomField is not visible in the UI and only visible through the + // API. + HIDDEN = 1; + + // The CustomField is visible in the UI and only editable through the API. + READ_ONLY = 2; + + // The CustomField is visible and editable in both the API and UI. + EDITABLE = 3; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/custom_field_service.proto b/third_party/googleapis/google/ads/admanager/v1/custom_field_service.proto new file mode 100644 index 000000000..964487e52 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/custom_field_service.proto @@ -0,0 +1,185 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/custom_field_enums.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomFieldServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling `CustomField` objects. +service CustomFieldService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a `CustomField` object. + rpc GetCustomField(GetCustomFieldRequest) returns (CustomField) { + option (google.api.http) = { + get: "/v1/{name=networks/*/customFields/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `CustomField` objects. + rpc ListCustomFields(ListCustomFieldsRequest) + returns (ListCustomFieldsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/customFields" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The `CustomField` resource. +message CustomField { + option (google.api.resource) = { + type: "admanager.googleapis.com/CustomField" + pattern: "networks/{network_code}/customFields/{custom_field}" + plural: "customFields" + singular: "customField" + }; + + // Identifier. The resource name of the `CustomField`. + // Format: `networks/{network_code}/customFields/{custom_field_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `CustomField` ID. + int64 custom_field_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the `CustomField`. + // + // This value has a maximum length of 127 characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the `CustomField`. + // + // This value has a maximum length of 511 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The status of the `CustomField`. + CustomFieldStatusEnum.CustomFieldStatus status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of entity the `CustomField` can be applied to. + CustomFieldEntityTypeEnum.CustomFieldEntityType entity_type = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The data type of the `CustomField`. + CustomFieldDataTypeEnum.CustomFieldDataType data_type = 8 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The visibility of the `CustomField`. + CustomFieldVisibilityEnum.CustomFieldVisibility visibility = 9 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The drop-down options for the `CustomField`. + // + // Only applicable for `CustomField` with the drop-down data type. + repeated CustomFieldOption options = 10 + [(google.api.field_behavior) = OPTIONAL]; +} + +// An option for a drop-down `CustomField`. +message CustomFieldOption { + // Output only. `CustomFieldOption` ID. + int64 custom_field_option_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the `CustomFieldOption`. + // + // This value has a maximum length of 127 characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request object for `GetCustomField` method. +message GetCustomFieldRequest { + // Required. The resource name of the CustomField. + // Format: `networks/{network_code}/customFields/{custom_field_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/CustomField" + } + ]; +} + +// Request object for `ListCustomFields` method. +message ListCustomFieldsRequest { + // Required. The parent, which owns this collection of CustomFields. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `CustomFields` to return. The service may + // return fewer than this value. If unspecified, at most 50 `CustomFields` + // will be returned. The maximum value is 1000; values above 1000 will be + // coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListCustomFields` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCustomFields` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at https://google.aip.dev/160 + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at https://google.aip.dev/132#ordering + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListCustomFieldsRequest` containing matching +// `CustomField` objects. +message ListCustomFieldsResponse { + // The `CustomField` objects from the specified network. + repeated CustomField custom_fields = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `CustomField` objects. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // [System Parameters](https://cloud.google.com/apis/docs/system-parameters). + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/custom_targeting_key_enums.proto b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_key_enums.proto new file mode 100644 index 000000000..a33be039e --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_key_enums.proto @@ -0,0 +1,76 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetingKeyEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [CustomTargetingKeyStatus][google.ads.admanager.v1.CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus] +message CustomTargetingKeyStatusEnum { + // Status of the custom targeting key. + enum CustomTargetingKeyStatus { + // Not specified value. + CUSTOM_TARGETING_KEY_STATUS_UNSPECIFIED = 0; + + // Custom targeting key is active. + ACTIVE = 1; + + // Custom targeting key is inactive. + INACTIVE = 2; + } +} + +// Wrapper message for +// [CustomTargetingKeyType][google.ads.admanager.v1.CustomTargetingKeyTypeEnum.CustomTargetingKeyType] +message CustomTargetingKeyTypeEnum { + // Type of the custom targeting key. + enum CustomTargetingKeyType { + // Not specified value. + CUSTOM_TARGETING_KEY_TYPE_UNSPECIFIED = 0; + + // Key with a fixed set of values. + PREDEFINED = 1; + + // Key without a fixed set of values + FREEFORM = 2; + } +} + +// Wrapper message for +// [CustomTargetingKeyReportableType][google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType] +message CustomTargetingKeyReportableTypeEnum { + // Reportable type of the custom targeting key. + enum CustomTargetingKeyReportableType { + // Not specified value. + CUSTOM_TARGETING_KEY_REPORTABLE_TYPE_UNSPECIFIED = 0; + + // Not available for reporting in the Ad Manager query tool. + OFF = 1; + + // Available for reporting in the Ad Manager query tool. + ON = 2; + + // Custom dimension available for reporting in the AdManager query tool. + CUSTOM_DIMENSION = 3; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/custom_targeting_key_service.proto b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_key_service.proto new file mode 100644 index 000000000..59e83ac68 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_key_service.proto @@ -0,0 +1,169 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/custom_targeting_key_enums.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetingKeyServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling `CustomTargetingKey` objects. +service CustomTargetingKeyService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a `CustomTargetingKey` object. + rpc GetCustomTargetingKey(GetCustomTargetingKeyRequest) + returns (CustomTargetingKey) { + option (google.api.http) = { + get: "/v1/{name=networks/*/customTargetingKeys/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `CustomTargetingKey` objects. + rpc ListCustomTargetingKeys(ListCustomTargetingKeysRequest) + returns (ListCustomTargetingKeysResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/customTargetingKeys" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The `CustomTargetingKey` resource. +message CustomTargetingKey { + option (google.api.resource) = { + type: "admanager.googleapis.com/CustomTargetingKey" + pattern: "networks/{network_code}/customTargetingKeys/{custom_targeting_key}" + plural: "customTargetingKeys" + singular: "customTargetingKey" + }; + + // Identifier. The resource name of the `CustomTargetingKey`. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `CustomTargetingKey` ID. + int64 custom_targeting_key_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Name of the key. Keys can contain up to 10 characters each. You + // can use alphanumeric characters and symbols other than the following: + // ", ', =, !, +, #, *, ~, ;, ^, (, ), <, >, [, ], the white space character. + string ad_tag_name = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Descriptive name for the `CustomTargetingKey`. + string display_name = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Indicates whether users will select from predefined values or + // create new targeting values, while specifying targeting criteria for a line + // item. + CustomTargetingKeyTypeEnum.CustomTargetingKeyType type = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Status of the `CustomTargetingKey`. + CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus status = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Reportable state of the `CustomTargetingKey`. + CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType + reportable_type = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Request object for `GetCustomTargetingKey` method. +message GetCustomTargetingKeyRequest { + // Required. The resource name of the CustomTargetingKey. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/CustomTargetingKey" + } + ]; +} + +// Request object for `ListCustomTargetingKeys` method. +message ListCustomTargetingKeysRequest { + // Required. The parent, which owns this collection of CustomTargetingKeys. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `CustomTargetingKeys` to return. The + // service may return fewer than this value. If unspecified, at most 50 + // `CustomTargetingKeys` will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListCustomTargetingKeys` + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCustomTargetingKeys` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListCustomTargetingKeysRequest` containing matching +// `CustomTargetingKey` objects. +message ListCustomTargetingKeysResponse { + // The `CustomTargetingKey` objects from the specified network. + repeated CustomTargetingKey custom_targeting_keys = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `CustomTargetingKey` objects. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/custom_targeting_value_enums.proto b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_value_enums.proto new file mode 100644 index 000000000..609e65ded --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_value_enums.proto @@ -0,0 +1,90 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetingValueEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [CustomTargetingValueStatus][google.ads.admanager.v1.CustomTargetingValueStatusEnum.CustomTargetingValueStatus] +message CustomTargetingValueStatusEnum { + // Status of the custom targeting value. + enum CustomTargetingValueStatus { + // Not specified value. + CUSTOM_TARGETING_VALUE_STATUS_UNSPECIFIED = 0; + + // Custom targeting value is active. + ACTIVE = 1; + + // Custom targeting value is inactive. + INACTIVE = 2; + } +} + +// Wrapper message for +// [CustomTargetingValueMatchType][google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType] +message CustomTargetingValueMatchTypeEnum { + // Match type of the custom targeting value. + enum CustomTargetingValueMatchType { + // Not specified value. + CUSTOM_TARGETING_VALUE_MATCH_TYPE_UNSPECIFIED = 0; + + // Used for exact matching. For example, the targeting value car=honda will + // only match to the ad request car=honda. + EXACT = 1; + + // Used for lenient matching when at least one of the words in the ad + // request matches the targeted value. The targeting value car=honda will + // match to ad requests containing the word honda. So ad requests car=honda + // or car=honda civic or car=buy honda or car=how much does a honda cost + // will all have the line item delivered. + // This match type can not be used within an audience segment rule. + BROAD = 2; + + // Used for 'starts with' matching when the first few characters in the ad + // request match all of the characters in the targeted value. The targeting + // value car=honda will match to ad requests car=honda or car=hondas for + // sale but not to car=I want a honda. + PREFIX = 3; + + // This is a combination of MatchType#BROAD and MatchType#PREFIX matching. + // The targeting value car=honda will match to ad requests that contain + // words that start with the characters in the targeted value, for example + // with car=civic hondas. + // This match type can not be used within an audience segment rule. + BROAD_PREFIX = 4; + + // Used for 'ends with' matching when the last characters in the ad request + // match all of the characters in the targeted value. The targeting value + // car=honda will match with ad requests car=honda or car=I want a honda but + // not to car=hondas for sale. + // This match type can not be used within line item targeting. + SUFFIX = 5; + + // Used for 'within' matching when the string in the ad request contains the + // string in the targeted value. The targeting value car=honda will match + // with ad requests car=honda, car=I want a honda, and also with car=hondas + // for sale, but not with car=misspelled hond a. This match type can not be + // used within line item targeting. + CONTAINS = 6; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/custom_targeting_value_service.proto b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_value_service.proto new file mode 100644 index 000000000..958bb0243 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/custom_targeting_value_service.proto @@ -0,0 +1,166 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/custom_targeting_value_enums.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetingValueServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling `CustomTargetingValue` objects. +service CustomTargetingValueService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a `CustomTargetingValue` object. + rpc GetCustomTargetingValue(GetCustomTargetingValueRequest) + returns (CustomTargetingValue) { + option (google.api.http) = { + get: "/v1/{name=networks/*/customTargetingKeys/*/customTargetingValues/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `CustomTargetingValue` objects. + rpc ListCustomTargetingValues(ListCustomTargetingValuesRequest) + returns (ListCustomTargetingValuesResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*/customTargetingKeys/*}/customTargetingValues" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The `CustomTargetingValue` resource. +message CustomTargetingValue { + option (google.api.resource) = { + type: "admanager.googleapis.com/CustomTargetingValue" + pattern: "networks/{network_code}/customTargetingKeys/{custom_targeting_key}/customTargetingValues/{custom_targeting_value}" + plural: "customTargetingValues" + singular: "customTargetingValue" + }; + + // Identifier. The resource name of the `CustomTargetingValue`. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}/customTargetingValues/{custom_targeting_value_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Immutable. Name of the `CustomTargetingValue`. Values can contain up to 40 + // characters each. You can use alphanumeric characters and symbols other than + // the following: ", ', =, !, +, #, *, ~, ;, ^, (, ), <, >, [, ]. Values are + // not data-specific; all values are treated as string. For example, instead + // of using "age>=18 AND <=34", try "18-34" + string ad_tag_name = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Descriptive name for the `CustomTargetingValue`. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The way in which the CustomTargetingValue.name strings will be + // matched. + CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType match_type = 6 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Status of the `CustomTargetingValue`. + CustomTargetingValueStatusEnum.CustomTargetingValueStatus status = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request object for `GetCustomTargetingValue` method. +message GetCustomTargetingValueRequest { + // Required. The resource name of the CustomTargetingValue. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}/customTargetingValues/{custom_targeting_value_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/CustomTargetingValue" + } + ]; +} + +// Request object for `ListCustomTargetingValues` method. +message ListCustomTargetingValuesRequest { + // Required. The parent, which owns this collection of CustomTargetingValues. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/CustomTargetingKey" + } + ]; + + // Optional. The maximum number of `CustomTargetingValues` to return. The + // service may return fewer than this value. If unspecified, at most 50 + // `CustomTargetingValues` will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous + // `ListCustomTargetingValues` call. Provide this to retrieve the subsequent + // page. + // + // When paginating, all other parameters provided to + // `ListCustomTargetingValues` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListCustomTargetingValuesRequest` containing matching +// `CustomTargetingValue` objects. +message ListCustomTargetingValuesResponse { + // The `CustomTargetingValue` objects from the specified network. + repeated CustomTargetingValue custom_targeting_values = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `CustomTargetingValue` objects. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/environment_type_enum.proto b/third_party/googleapis/google/ads/admanager/v1/environment_type_enum.proto new file mode 100644 index 000000000..5e31c0bfd --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/environment_type_enum.proto @@ -0,0 +1,41 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "EnvironmentTypeEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [EnvironmentType][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType]. +message EnvironmentTypeEnum { + // The different environments in which an ad can be shown. + enum EnvironmentType { + // No value specified + ENVIRONMENT_TYPE_UNSPECIFIED = 0; + + // A regular web browser. + BROWSER = 1; + + // Video players. + VIDEO_PLAYER = 2; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/frequency_cap.proto b/third_party/googleapis/google/ads/admanager/v1/frequency_cap.proto new file mode 100644 index 000000000..2a6c1defb --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/frequency_cap.proto @@ -0,0 +1,71 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "FrequencyCapProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Represents a Frequency Cap that can be applied to an entity. +message FrequencyCap { + // The maximum number of impressions for this frequency cap. + optional int64 max_impressions = 1; + + // The number of time units over which the frequency cap is effective. + optional int64 time_amount = 2; + + // The units of time of this frequency cap. + optional TimeUnitEnum.TimeUnit time_unit = 3; +} + +// Wrapper message for TimeUnit. +message TimeUnitEnum { + // Unit of time for the frequency cap. + enum TimeUnit { + // Default value. This value is unused. + TIME_UNIT_UNSPECIFIED = 0; + + // Minute + MINUTE = 1; + + // Hour + HOUR = 2; + + // Day + DAY = 3; + + // Week + WEEK = 4; + + // Month + MONTH = 5; + + // Lifetime + LIFETIME = 6; + + // Per pod of ads in a video stream. Only valid for entities in a + // VIDEO_PLAYER environment. + POD = 7; + + // Per video stream. Only valid for entities in a VIDEO_PLAYER environment. + STREAM = 8; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/goal.proto b/third_party/googleapis/google/ads/admanager/v1/goal.proto new file mode 100644 index 000000000..139f82dbc --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/goal.proto @@ -0,0 +1,162 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "GoalProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Defines the criteria a [LineItem][google.ads.admanager.v1.LineItem] needs to +// satisfy to meet its delivery +// goal. +message Goal { + // The type of the goal for the LineItem. It defines the period over which the + // goal should be reached. + GoalTypeEnum.GoalType goal_type = 1; + + // The type of the goal unit for the LineItem. + UnitTypeEnum.UnitType unit_type = 2; + + // If this is a primary goal, it represents the number or percentage of + // impressions or clicks that will be reserved. If the line item is of type + // [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP], + // it represents the percentage of available impressions reserved. If the line + // item is of type + // [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] + // or + // [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY], + // it represents the number of remaining impressions reserved. If the line + // item is of type + // [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] + // or + // [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE], + // it represents the percentage of remaining impressions reserved.

If this + // is an impression cap goal, it represents the number of impressions or + // conversions that the line item will stop serving at if reached. For valid + // line item types, see [LineItem.impressions_cap][]. + int64 units = 3; +} + +// Wrapper message for +// [GoalType][google.ads.admanager.v1.GoalTypeEnum.GoalType]. +message GoalTypeEnum { + // Specifies the type of the goal for a LineItem. + enum GoalType { + // Default value. This value is unused. + GOAL_TYPE_UNSPECIFIED = 0; + + // No goal is specified for the number of ads delivered. + // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] + // must be one of: + // + // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] + // * [LineItemTypeEnum.LineItemType.AD_EXCHANGE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.AD_EXCHANGE] + // * [LineItemTypeEnum.LineItemType.CLICK_TRACKING][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.CLICK_TRACKING] + NONE = 1; + + // There is a goal on the number of ads delivered for this line item during + // its entire lifetime. + // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] + // must be one of: + // + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] + // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] + // * [LineItemTypeEnum.LineItemType.ADSENSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADSENSE] + // * [LineItemTypeEnum.LineItemType.AD_EXCHANGE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.AD_EXCHANGE] + // * [LineItemTypeEnum.LineItemType.ADMOB][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADMOB] + // * [LineItemTypeEnum.LineItemType.CLICK_TRACKING][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.CLICK_TRACKING] + LIFETIME = 2; + + // There is a daily goal on the number of ads delivered for this line item. + // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] + // must be one of: + // + // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] + // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] + // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] + // * [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE] + // * [LineItemTypeEnum.LineItemType.ADSENSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADSENSE] + // * [LineItemTypeEnum.LineItemType.AD_EXCHANGE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.AD_EXCHANGE] + // * [LineItemTypeEnum.LineItemType.ADMOB][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADMOB] + // * [LineItemTypeEnum.LineItemType.BUMPER][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BUMPER] + DAILY = 3; + } +} + +// Wrapper message for +// [UnitType][google.ads.admanager.v1.UnitTypeEnum.UnitType]. +message UnitTypeEnum { + // Indicates the type of unit used for defining a reservation. The + // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] can differ + // from the UnitType - an ad can have an impression goal, but be billed by its + // click. Usually CostType and UnitType will refer to the same unit. + enum UnitType { + // Default value. This value is unused. + UNIT_TYPE_UNSPECIFIED = 0; + + // The number of impressions served by creatives associated with the line + // item. + IMPRESSIONS = 1; + + // The number of clicks reported by creatives associated with the line item. + // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] + // must be one of: + // + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] + // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] + CLICKS = 2; + + // The number of view-through Cost-Per-Action (CPA) conversions from + // creatives associated with the line item. This is only supported as + // secondary goal and the + // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] must be + // [CostTypeEnum.CostType.CPA][]. + CLICK_THROUGH_CPA_CONVERSIONS = 3; + + // The number of view-through Cost-Per-Action (CPA) conversions from + // creatives associated with the line item. This is only supported as + // secondary goal and the + // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] must be + // [CostTypeEnum.CostType.CPA}. + VIEW_THROUGH_CPA_CONVERSIONS = 4; + + // The number of total Cost-Per-Action (CPA) conversions from creatives + // associated with the line item. This is only supported as secondary goal + // and the [LineItem.cost_type} must be [CostTypeEnum.CostType.CPA}. + TOTAL_CPA_CONVERSIONS = 5; + + // The number of viewable impressions reported by creatives associated with + // the line item. The + // [LineItem.line_item_type][google.ads.admanager.v1.LineItem.line_item_type] + // must be + // [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD]. + VIEWABLE_IMPRESSIONS = 6; + + // The number of in-target impressions reported by third party measurements. + // The + // [LineItem.line_item_type][google.ads.admanager.v1.LineItem.line_item_type] + // must be + // [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD]. + IN_TARGET_IMPRESSIONS = 7; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/label_service.proto b/third_party/googleapis/google/ads/admanager/v1/label_service.proto new file mode 100644 index 000000000..b18b571c6 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/label_service.proto @@ -0,0 +1,136 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "LabelServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling Label objects. +service LabelService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a Label object. + rpc GetLabel(GetLabelRequest) returns (Label) { + option (google.api.http) = { + get: "/v1/{name=networks/*/labels/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of Label objects. + rpc ListLabels(ListLabelsRequest) returns (ListLabelsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/labels" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The Label resource. +message Label { + option (google.api.resource) = { + type: "admanager.googleapis.com/Label" + pattern: "networks/{network_code}/labels/{label}" + plural: "labels" + singular: "label" + }; + + // Identifier. The resource name of the Label. + // Format: `networks/{network_code}/labels/{label_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Request object for GetLabel method. +message GetLabelRequest { + // Required. The resource name of the Label. + // Format: `networks/{network_code}/labels/{label_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Label" } + ]; +} + +// Request object for ListLabels method. +message ListLabelsRequest { + // Required. The parent, which owns this collection of Labels. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of Labels to return. The service may return + // fewer than this value. If unspecified, at most 50 labels will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListLabels` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListLabels` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListLabelsRequest containing matching Label +// resources. +message ListLabelsResponse { + // The Label from the specified network. + repeated Label labels = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of Labels. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/line_item_enums.proto b/third_party/googleapis/google/ads/admanager/v1/line_item_enums.proto new file mode 100644 index 000000000..81e2f888c --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/line_item_enums.proto @@ -0,0 +1,241 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "LineItemEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [LineItemCostType][google.ads.admanager.v1.LineItemCostTypeEnum.LineItemCostType]. +message LineItemCostTypeEnum { + // Describes the LineItem actions that are billable. + enum LineItemCostType { + // Not specified value. + LINE_ITEM_COST_TYPE_UNSPECIFIED = 0; + + // Cost per action. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: + // + // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] + // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] + CPA = 1; + + // Cost per click. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: + // + // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] + // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] + // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] + // * [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE] + CPC = 2; + + // Cost per day. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: + // + // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] + // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] + CPD = 3; + + // Cost per mille (thousand) impressions. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: + // + // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] + // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] + // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] + // * [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE] + CPM = 4; + + // Cost per mille (thousand) Active View viewable impressions. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: + // + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + VCPM = 5; + + // Cost per millie (thousand) in-target impressions. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: + // + // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] + CPM_IN_TARGET = 6; + + // Cost for the entire flight of the deal. The line item + // [type][google.ads.admanager.v1.LineItem.line_item_type] must be must be + // one of: + // + // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] + CPF = 7; + } +} + +// Wrapper message for +// [CreativeRotationType][google.ads.admanager.v1.CreativeRotationTypeEnum.CreativeRotationType]. +message CreativeRotationTypeEnum { + // The strategy to use for displaying multiple + // [creatives][google.ads.admanager.v1.Creative] that are associated with a + // line item. + enum CreativeRotationType { + // Not specified value + CREATIVE_ROTATION_TYPE_UNSPECIFIED = 0; + + // Creatives are displayed approximately the same number of times over the + // duration of the line item. + EVENLY = 1; + + // Creatives are served approximately proportionally to their performance. + OPTIMIZED = 2; + + // Creatives are served approximately proportionally to their weights, set + // on the `LineItemCreativeAssociation`. + WEIGHTED = 3; + + // Creatives are served exactly in sequential order, aka Storyboarding. Set + // on the `LineItemCreativeAssociation`. + SEQUENTIAL = 4; + } +} + +// Wrapper message for +// [DeliveryRateType][google.ads.admanager.v1.DeliveryRateTypeEnum.DeliveryRateType]. +message DeliveryRateTypeEnum { + // Possible delivery rates for a line item. It dictates the manner in which + // the line item is served. + enum DeliveryRateType { + // Not specified value + DELIVERY_RATE_TYPE_UNSPECIFIED = 0; + + // Line items are served as evenly as possible across the number of days + // specified in a line item's [duration][LineItem.duration]. + EVENLY = 1; + + // Line items are served more aggressively in the beginning of the flight + // date. + FRONTLOADED = 2; + + // The booked impressions may delivered well before the + // [end_time][google.ads.admanager.v1.LineItem.end_time]. Other + // lower-priority or lower-value line items will be stopped from delivering + // until the line item meets the number of impressions or clicks it is + // booked for. + AS_FAST_AS_POSSIBLE = 3; + } +} + +// Wrapper message for +// [LineItemDiscountType][google.ads.admanager.v1.LineItemDiscountTypeEnum.LineItemDiscountType]. +message LineItemDiscountTypeEnum { + // Describes the possible discount types on the cost of booking a line item. + enum LineItemDiscountType { + // No value specified + LINE_ITEM_DISCOUNT_TYPE_UNSPECIFIED = 0; + + // An absolute value will be discounted from the line item's cost. + ABSOLUTE_VALUE = 1; + + // A percentage of the cost will be discounted for booking the line item. + PERCENTAGE = 2; + } +} + +// Wrapper message for +// [LineItemType][google.ads.admanager.v1.LineItemTypeEnum.LineItemType]. +message LineItemTypeEnum { + // Indicates the priority of a LineItem, determined by the way in which + // impressions are reserved to be served for it. + enum LineItemType { + // Not specified value. + LINE_ITEM_TYPE_UNSPECIFIED = 0; + + // The type of LineItem for which a percentage of all the impressions that + // are being sold are reserved. + SPONSORSHIP = 12; + + // The type of LineItem for which a fixed quantity of impressions or + // clicks are reserved. + STANDARD = 13; + + // The type of LineItem most commonly used to fill a site's unsold + // inventory if not contractually obligated to deliver a requested number + // of impressions. Uses daily percentage of unsold impressions or clicks. + NETWORK = 9; + + // The type of LineItem for which a fixed quantity of impressions or + // clicks will be delivered at a priority lower than the STANDARD type. + BULK = 4; + + // The type of LineItem most commonly used to fill a site's unsold + // inventory if not contractually obligated to deliver a requested number + // of impressions. Uses fixed quantity percentage of unsold impressions or + // clicks. + PRICE_PRIORITY = 11; + + // The type of LineItem typically used for ads that promote products and + // services chosen by the publisher. + HOUSE = 7; + + // Represents a legacy LineItem that has been migrated from the DFP + // system. + LEGACY_DFP = 8; + + // The type of LineItem used for ads that track ads being served + // externally of Ad Manager. + CLICK_TRACKING = 6; + + // A LineItem using dynamic allocation backed by AdSense. + ADSENSE = 2; + + // A LineItem using dynamic allocation backed by the Google Ad Exchange. + AD_EXCHANGE = 3; + + // Represents a non-monetizable video LineItem that targets one or more + // bumper positions, which are short house video messages used by + // publishers to separate content from ad breaks. + BUMPER = 5; + + // A LineItem using dynamic allocation backed by AdMob. + ADMOB = 1; + + // The type of LineItem for which there are no impressions reserved, and + // will serve for a second price bid. + PREFERRED_DEAL = 10; + } +} + +// Wrapper message for +// [ReservationStatus][google.ads.admanager.v1.ReservationStatusEnum.ReservationStatus]. +message ReservationStatusEnum { + // Defines the different reservation statuses of a line item. + enum ReservationStatus { + // No value specified + RESERVATION_STATUS_UNSPECIFIED = 0; + + // Indicates that inventory has been reserved for the line item. + RESERVED = 1; + + // Indicates that inventory has not been reserved for the line item. + UNRESERVED = 2; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/line_item_service.proto b/third_party/googleapis/google/ads/admanager/v1/line_item_service.proto new file mode 100644 index 000000000..2191e77e2 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/line_item_service.proto @@ -0,0 +1,338 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/computed_status_enum.proto"; +import "google/ads/admanager/v1/creative_placeholder.proto"; +import "google/ads/admanager/v1/environment_type_enum.proto"; +import "google/ads/admanager/v1/goal.proto"; +import "google/ads/admanager/v1/line_item_enums.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/money.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "LineItemServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling LineItem objects. +service LineItemService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a LineItem object. + rpc GetLineItem(GetLineItemRequest) returns (LineItem) { + option (google.api.http) = { + get: "/v1/{name=networks/*/orders/*/lineItems/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of LineItem objects. + rpc ListLineItems(ListLineItemsRequest) returns (ListLineItemsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*/orders/*}/lineItems" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The LineItem resource. +message LineItem { + option (google.api.resource) = { + type: "admanager.googleapis.com/LineItem" + pattern: "networks/{network_code}/orders/{order}/lineItems/{line_item}" + plural: "lineItems" + singular: "lineItem" + }; + + // Identifier. The resource name of the LineItem. + // Format: + // `networks/{network_code}/orders/{order_id}/lineItems/{line_item_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Display name of the LineItem. This attribute has a maximum length + // of 255 characters. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The archival status of the LineItem. + bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. This attribute is only applicable for certain + // [line item types][LineItemType] and acts as an "FYI" or note, which does + // not impact ad-serving or other backend systems. + // + // For [SPONSORSHIP][LineItemType.SPONSORSHIP] line items, this represents + // the minimum quantity, which is a lifetime impression volume goal for + // reporting purposes. + // + // For [STANDARD][LineItemType.STANDARD] line items, this represents the + // contracted quantity, which is the number of units specified in the contract + // that the advertiser has bought for this line item. This attribute is only + // available if you have this feature enabled on your network. + int64 contracted_units_bought = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The amount of money to spend per impression or click. + google.type.Money cost_per_unit = 15 [(google.api.field_behavior) = REQUIRED]; + + // Required. The method used for billing this line item. + LineItemCostTypeEnum.LineItemCostType cost_type = 19 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. The instant at which the LineItem was created. This attribute + // may be null for line items created before this feature was introduced. + google.protobuf.Timestamp create_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant at which the LineItem was last updated + google.protobuf.Timestamp update_time = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The strategy used for displaying multiple + // [creatives][google.ads.admanager.v1.Creative] that are associated with the + // line item. + CreativeRotationTypeEnum.CreativeRotationType creative_rotation_type = 22 + [(google.api.field_behavior) = REQUIRED]; + + // Non-empty default. The strategy for delivering ads over the duration of the + // line item. Defaults to [EVENLY][DeliveryRateType.EVENLY] or + // [FRONTLOADED][DeliveryRatetype.FRONTLOADED] depending on the network's + // configuration. + DeliveryRateTypeEnum.DeliveryRateType delivery_rate_type = 23 + [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; + + // Optional. The number here is either a percentage or an absolute value + // depending on the + // [discount_type][google.ads.admanager.v1.LineItem.discount_type]. If it is + // [PERCENTAGE][LineItemDiscountType.PERCENTAGE], then only non-fractional + // values are supported. + double discount = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Non-empty default. The type of discount applied to the line item. Defaults + // to [PERCENTAGE][LineItemDiscountType.PERCENTAGE]. + LineItemDiscountTypeEnum.LineItemDiscountType discount_type = 24 + [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; + + // Non-empty default. The environment that the line item is targeting. The + // default value is [BROWSER][EnvironmentType.BROWSER]. If this value is + // [VIDEO_PLAYER][EnvironmentType.VIDEO_PLAYER], then this line item can only + // target [AdUnits][google.ads.admanager.v1.AdUnit] that have `AdUnitSizes` + // whose `environment_type` is also `VIDEO_PLAYER`. + EnvironmentTypeEnum.EnvironmentType environment_type = 25 + [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; + + // Optional. Identifier for the LineItem that is meaningful to the publisher. + // This attribute has a maximum length of 255 characters. + string external_id = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Time at which the LineItem will begin serving. This attribute + // must be in the future when creating a LineItem. + google.protobuf.Timestamp start_time = 6 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Time at which the LineItem will stop serving. This attribute is + // ignored when + // [unlimited_end_time][google.ads.admanager.v1.LineItem.unlimited_end_time] + // is `true`. If specified, it must be after + // [start_time][google.ads.admanager.v1.LineItem.start_time]. This end time + // does not include + // [auto_extension_days][google.ads.admanager.v1.LineItem.auto_extension_days]. + google.protobuf.Timestamp end_time = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of days to allow a LineItem to deliver past its + // [end_time][google.ads.admanager.v1.LineItem.end_time]. A maximum of 7 days + // is allowed. This feature is only available for Ad Manager 360 accounts. + int32 auto_extension_days = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether the LineItem has an + // [end_time][google.ads.admanager.v1.LineItem.end_time]. This attribute can + // be set to `true` for only LineItems with + // [line_item_type][google.ads.admanager.v1.LineItem.line_item_type] + // [SPONSORSHIP][LineItemType.SPONSORSHIP], [NETWORK][LineItemType.NETWORK], + // [PRICE_PRIORITY][LineItemType.PRICE_PRIORITY] and + // [HOUSE][LineItemType.HOUSE]. + bool unlimited_end_time = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The application that last modified this line item. + string last_modified_by_app = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Determines the default priority of the LineItem for delivery. + // More information can be found on the [Ad Manager Help + // Center](https://support.google.com/dfp_premium/answer/177279). + LineItemTypeEnum.LineItemType line_item_type = 10 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Indicates if a line item is missing any + // [creatives][google.ads.admanager.v1.Creative] for the + // [creative_placeholders][google.ads.admanager.v1.LineItem.creative_placeholders] + // specified. + // + // [Creatives][google.ads.admanager.v1.Creative] can be considered missing for + // several reasons: + // + // * Not enough [creatives][google.ads.admanager.v1.Creative] of a certain + // size have been uploaded, + // as determined by + // [expectedCreativeCount][google.ads.admanager.v1.CreativePlaceholder.expected_creative_count]. + // For example a line item specifies 750x350, 400x200, but only a 750x350 + // was uploaded. Or line item specifies 750x350 with an expected count of 2, + // but only one was uploaded. + // * The [appliedLabels][Creative.applied_labels] of an associated + // [Creative][google.ads.admanager.v1.Creative] + // do not match the + // [effectiveAppliedLabels][CreativePlaceholder.effective_applied_labels] of + // the line item. For example if a line item specifies 750x350 with a foo + // applied label, but a 750x350 creative without an applied label was + // uploaded. + bool missing_creatives = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Provides any additional notes that may annotate LineItem. This + // field has a maximum length of 65,535 characters. + string notes = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Priority of the LineItem for delivery. Valid values range from 1 + // to 16. This field can only be changed by certain networks, otherwise a + // `PERMISSION_DENIED` error will occur. + // + // The following list shows the default, minimum, and maximum priority values + // for each [LineItemType][LineItemType]: formatted as `LineItemType`: default + // priority (minimum priority, maximum priority): + // + // * `SPONSORSHIP`: 4 (2,5) + // * `STANDARD`: 8 (6,10) + // * `NETWORK`: 12 (11, 14) + // * `BULK`: 12 (11, 14) + // * `PRICE_PRIORITY`: 12 (11, 14) + // * `HOUSE`: 16 (15, 16) + // * `CLICK_TRACKING`: 16 (1, 16) + // * `AD_EXCHANGE`: 12 (1, 16) + // * `ADSENSE`: 12 (1, 16) + // * `BUMPER`: 16 (15, 16) + int64 priority = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Describes whether or not inventory has been reserved for the + // line item. + ReservationStatusEnum.ReservationStatus reservation_status = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The web property code used for dynamic allocation line items. + // This web property is only required with line item types + // [AD_EXCHANGE][LineItemType.AD_EXCHANGE] and + // [ADSENSE][LineItemType.ADSENSE]. + string web_property_code = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Details about the creatives that are expected to serve through + // this LineItem. + repeated CreativePlaceholder creative_placeholders = 27 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. The status of the LineItem. + ComputedStatusEnum.ComputedStatus status = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The primary goal that this LineItem is associated with, which is + // used in its pacing and budgeting. + Goal primary_goal = 29 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The impression limit for the LineItem. This field is meaningful + // only if the + // [LineItem.line_item_type][google.ads.admanager.v1.LineItem.line_item_type] + // is [LineItemType.SPONSORSHIP][] and + // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] is + // [CostType.CPM][]. + Goal impression_limit = 30 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request object for GetLineItem method. +message GetLineItemRequest { + // Required. The resource name of the LineItem. + // Format: + // `networks/{network_code}/orders/{order_id}/lineItems/{line_item_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/LineItem" + } + ]; +} + +// Request object for ListLineItems method. +message ListLineItemsRequest { + // Required. The parent, which owns this collection of LineItems. + // Format: networks/{network_code}/orders/{order_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Order" } + ]; + + // Optional. The maximum number of LineItems to return. The service may return + // fewer than this value. If unspecified, at most 50 line items will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListLineItems` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListLineItems` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListLineItemsRequest containing matching LineItem +// resources. +message ListLineItemsResponse { + // The LineItem from the specified network. + repeated LineItem line_items = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of LineItems. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/network_service.proto b/third_party/googleapis/google/ads/admanager/v1/network_service.proto new file mode 100644 index 000000000..ef5868841 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/network_service.proto @@ -0,0 +1,106 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "NetworkServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling Network objects. +service NetworkService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a Network object. + rpc GetNetwork(GetNetworkRequest) returns (Network) { + option (google.api.http) = { + get: "/v1/{name=networks/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// The Network resource. +message Network { + option (google.api.resource) = { + type: "admanager.googleapis.com/Network" + pattern: "networks/{network_code}" + plural: "networks" + singular: "network" + }; + + // Identifier. The resource name of the Network. + // Format: networks/{network_code} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Display name for Network. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Network Code. + string network_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Property code. + string property_code = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time zone associated with the delivery of orders and + // reporting. + string time_zone = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Primary currency code, in ISO-4217 format. + string currency_code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Currency codes that can be used as an alternative to the primary + // currency code for trafficking Line Items. + repeated string secondary_currency_codes = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Top most [Ad Unit](google.ads.admanager.v1.AdUnit) to which + // descendant Ad Units can be added. + // Format: networks/{network_code}/adUnit/{ad_unit_id} + string effective_root_ad_unit = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. Whether this is a test network. + bool test_network = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Network ID. + int64 network_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request to get Network +message GetNetworkRequest { + // Required. Resource name of Network. + // Format: networks/{network_code} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/order_service.proto b/third_party/googleapis/google/ads/admanager/v1/order_service.proto new file mode 100644 index 000000000..c35534b98 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/order_service.proto @@ -0,0 +1,325 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/applied_label.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "OrderServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling `Order` objects. +service OrderService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve an Order object. + rpc GetOrder(GetOrderRequest) returns (Order) { + option (google.api.http) = { + get: "/v1/{name=networks/*/orders/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `Order` objects. + // + // Fields used for literal matching in filter string: + // * `order_id` + // * `display_name` + // * `external_order_id` + rpc ListOrders(ListOrdersRequest) returns (ListOrdersResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/orders" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The `Order` resource. +message Order { + option (google.api.resource) = { + type: "admanager.googleapis.com/Order" + pattern: "networks/{network_code}/orders/{order}" + plural: "orders" + singular: "order" + }; + + // The status of an Order. + enum Status { + // Default value. This value is unused. + STATUS_UNSPECIFIED = 0; + + // Indicates that the Order has just been created but no approval has been + // requested yet. + DRAFT = 2; + + // Indicates that a request for approval for the Order has been made. + PENDING_APPROVAL = 3; + + // Indicates that the Order has been approved and is ready to serve. + APPROVED = 4; + + // Indicates that the Order has been disapproved and is not eligible to + // serve. + DISAPPROVED = 5; + + // This is a legacy state. Paused status should be checked on LineItems + // within the order. + PAUSED = 6; + + // Indicates that the Order has been canceled and cannot serve. + CANCELED = 7; + + // Indicates that the Order has been deleted. + DELETED = 8; + } + + // Identifier. The resource name of the `Order`. + // Format: `networks/{network_code}/orders/{order_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Order ID. + int64 order_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the Order. This value is required to create + // an order and has a maximum length of 255 characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies whether or not the Order is a programmatic order. + bool programmatic = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource name of the User responsible for trafficking the + // Order. Format: "networks/{network_code}/users/{user_id}" + string trafficker = 23 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. The resource names of Contacts from the advertiser of this Order. + // Format: "networks/{network_code}/contacts/{contact_id}" + repeated string advertiser_contacts = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; + + // Required. The resource name of the Company, which is of type + // Company.Type.ADVERTISER, to which this order belongs. This attribute is + // required. Format: "networks/{network_code}/companies/{company_id}" + string advertiser = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Company" + } + ]; + + // Optional. The resource names of Contacts from the advertising Agency of + // this Order. Format: "networks/{network_code}/contacts/{contact_id}" + repeated string agency_contacts = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; + + // Optional. The resource name of the Company, which is of type + // Company.Type.AGENCY, with which this order is associated. Format: + // "networks/{network_code}/companies/{company_id}" + string agency = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Company" + } + ]; + + // Optional. The resource names of Teams directly applied to this Order. + // Format: "networks/{network_code}/teams/{team_id}" + repeated string applied_teams = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The resource names of Teams applied to this Order including + // inherited values. Format: "networks/{network_code}/teams/{team_id}" + repeated string effective_teams = 28 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The resource name of the User who created the Order on behalf + // of the advertiser. This value is assigned by Google. Format: + // "networks/{network_code}/users/{user_id}" + string creator = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Output only. The ISO 4217 3-letter currency code for the currency used by + // the Order. This value is the network's currency code. + string currency_code = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant at which the Order and its associated line items + // are eligible to begin serving. This attribute is derived from the line item + // of the order that has the earliest LineItem.start_time. + google.protobuf.Timestamp start_time = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant at which the Order and its associated line items + // stop being served. This attribute is derived from the line item of the + // order that has the latest LineItem.end_time. + google.protobuf.Timestamp end_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. An arbitrary ID to associate to the Order, which can be used as a + // key to an external system. + int64 external_order_id = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The archival status of the Order. + bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The application which modified this order. This attribute is + // assigned by Google. + string last_modified_by_app = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant this Order was last modified. + google.protobuf.Timestamp update_time = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Provides any additional notes that may annotate the Order. This + // attribute has a maximum length of 65,535 characters. + string notes = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The purchase order number for the Order. This value has a maximum + // length of 63 characters. + string po_number = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The status of the Order. + Status status = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The resource name of the User responsible for the sales of the + // Order. Format: "networks/{network_code}/users/{user_id}" + string salesperson = 21 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. The resource names of the secondary salespeople associated with + // the order. Format: "networks/{network_code}/users/{user_id}" + repeated string secondary_salespeople = 22 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. The resource names of the secondary traffickers associated with + // the order. Format: "networks/{network_code}/users/{user_id}" + repeated string secondary_traffickers = 24 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. The set of labels applied directly to this order. + repeated AppliedLabel applied_labels = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Contains the set of labels applied directly to the order as + // well as those inherited from the company that owns the order. If a label + // has been negated, only the negated label is returned. This field is + // assigned by Google. + repeated AppliedLabel effective_applied_labels = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request object for `GetOrder` method. +message GetOrderRequest { + // Required. The resource name of the Order. + // Format: `networks/{network_code}/orders/{order_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Order" } + ]; +} + +// Request object for `ListOrders` method. +message ListOrdersRequest { + // Required. The parent, which owns this collection of Orders. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `Orders` to return. The service may return + // fewer than this value. If unspecified, at most 50 `Orders` will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListOrders` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListOrders` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListOrdersRequest` containing matching `Order` +// resources. +message ListOrdersResponse { + // The `Order` from the specified network. + repeated Order orders = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `Orders`. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/placement_enums.proto b/third_party/googleapis/google/ads/admanager/v1/placement_enums.proto new file mode 100644 index 000000000..371d5adb0 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/placement_enums.proto @@ -0,0 +1,44 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "PlacementEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Wrapper message for +// [PlacementStatus][google.ads.admanager.v1.PlacementStatusEnum.PlacementStatus] +message PlacementStatusEnum { + // Status of the placement. + enum PlacementStatus { + // Not specified value. + PLACEMENT_STATUS_UNSPECIFIED = 0; + + // Stats are collected, user-visible. + ACTIVE = 1; + + // No stats collected, not user-visible. + INACTIVE = 2; + + // No stats collected, user-visible. + ARCHIVED = 3; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/placement_service.proto b/third_party/googleapis/google/ads/admanager/v1/placement_service.proto new file mode 100644 index 000000000..5e984020d --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/placement_service.proto @@ -0,0 +1,174 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/placement_enums.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "PlacementServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling `Placement` objects. +service PlacementService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a `Placement` object. + rpc GetPlacement(GetPlacementRequest) returns (Placement) { + option (google.api.http) = { + get: "/v1/{name=networks/*/placements/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `Placement` objects. + rpc ListPlacements(ListPlacementsRequest) returns (ListPlacementsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/placements" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The `Placement` resource. +message Placement { + option (google.api.resource) = { + type: "admanager.googleapis.com/Placement" + pattern: "networks/{network_code}/placements/{placement}" + plural: "placements" + singular: "placement" + }; + + // Identifier. The resource name of the `Placement`. + // Format: `networks/{network_code}/placements/{placement_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Placement` ID. + int64 placement_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the placement. Its maximum length is 255 + // characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A description of the Placement. This value is optional and its + // maximum length is 65,535 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A string used to uniquely identify the Placement for purposes + // of serving the ad. This attribute is read-only and is assigned by Google + // when a placement is created. + string placement_code = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the Placement. This attribute is read-only. + PlacementStatusEnum.PlacementStatus status = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The resource names of AdUnits that constitute the Placement. + // Format: "networks/{network_code}/adUnits/{ad_unit_id}" + repeated string targeted_ad_units = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. The instant this Placement was last modified. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request object for `GetPlacement` method. +message GetPlacementRequest { + // Required. The resource name of the Placement. + // Format: `networks/{network_code}/placements/{placement_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Placement" + } + ]; +} + +// Request object for `ListPlacements` method. +message ListPlacementsRequest { + // Required. The parent, which owns this collection of Placements. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `Placements` to return. The service may + // return fewer than this value. If unspecified, at most 50 `Placements` will + // be returned. The maximum value is 1000; values above 1000 will be coerced + // to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListPlacements` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListPlacements` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListPlacementsRequest` containing matching `Placement` +// objects. +message ListPlacementsResponse { + // The `Placement` objects from the specified network. + repeated Placement placements = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `Placement` objects. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/report_service.proto b/third_party/googleapis/google/ads/admanager/v1/report_service.proto new file mode 100644 index 000000000..2e05d9b10 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/report_service.proto @@ -0,0 +1,135 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "ReportServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for interacting with Reports. +service ReportService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // Initiates the execution and export of a report asynchronously. Users can + // get the report by polling this operation via + // OperationsService.GetOperation. + // Intervals of at least 2 seconds are recommended, with an exponential + // backoff. Once a report is complete, the operation will contain a + // ExportSavedReportResponse in its response field. + rpc ExportSavedReport(ExportSavedReportRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{report=networks/*/reports/*}:exportSavedReport" + body: "*" + }; + option (google.api.method_signature) = "report"; + option (google.longrunning.operation_info) = { + response_type: "ExportSavedReportResponse" + metadata_type: "ExportSavedReportMetadata" + }; + } +} + +// The Report resource. +message Report { + option (google.api.resource) = { + type: "admanager.googleapis.com/Report" + pattern: "networks/{network_code}/reports/{report}" + plural: "reports" + singular: "report" + }; + + // Identifier. The resource name of the Report. + // Report resource name have the form: + // `networks/{network_code}/reports/{report_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Request proto for the configuration of a report run. +message ExportSavedReportRequest { + // Supported file formats. + enum Format { + // Default value. This value is unused. + FORMAT_UNSPECIFIED = 0; + + // Comma separated values meant to be used by automated machine + // processing. + // + // Unlike other formats, the output is not localized and there is no + // totals row by default. + CSV_DUMP = 2; + + // The report file is generated as an Office Open XML spreadsheet designed + // for Excel 2007+. + XLSX = 5; + + // The report is generated as XML. + XML = 6; + } + + // The name of a particular saved report resource. + // + // A report will be run based on the specification of this saved report. + // It must have the format of + // "networks/{network_code}/reports/{report_id}" + string report = 1 [(google.api.resource_reference) = { + type: "admanager.googleapis.com/Report" + }]; + + // Required. The export format requested. + Format format = 2 [(google.api.field_behavior) = REQUIRED]; + + // Whether or not to include the report properties (e.g. network, user, date + // generated...) in the generated report. + bool include_report_properties = 3; + + // Whether or not to include the IDs if there are any (e.g. advertiser ID, + // order ID...) present in the report. + bool include_ids = 4; + + // Whether or not to include a row containing metric totals. + bool include_totals_row = 5; + + // The file name of report download. The file extension is determined by + // export_format and gzip_compressed. + // + // Defaults to "DFP Report" if not specified. + string file_name = 6; +} + +// The message stored in the google.longrunning.Operation.metadata field. +// Contains metadata regarding this execution. +message ExportSavedReportMetadata { + // The result generated in this report run. + int64 result_id = 1; +} + +// Message included in the longrunning Operation result.response field when +// the report completes successfully. +message ExportSavedReportResponse { + // The link to the exported file. + string download_url = 1; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/role_service.proto b/third_party/googleapis/google/ads/admanager/v1/role_service.proto new file mode 100644 index 000000000..b15e064db --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/role_service.proto @@ -0,0 +1,136 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "RoleServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling Role objects. +service RoleService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a Role object. + rpc GetRole(GetRoleRequest) returns (Role) { + option (google.api.http) = { + get: "/v1/{name=networks/*/roles/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of Role objects. + rpc ListRoles(ListRolesRequest) returns (ListRolesResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/roles" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The Role resource. +message Role { + option (google.api.resource) = { + type: "admanager.googleapis.com/Role" + pattern: "networks/{network_code}/roles/{role}" + plural: "roles" + singular: "role" + }; + + // Identifier. The resource name of the Role. + // Format: `networks/{network_code}/roles/{role_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Request object for GetRole method. +message GetRoleRequest { + // Required. The resource name of the Role. + // Format: `networks/{network_code}/roles/{role_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Role" } + ]; +} + +// Request object for ListRoles method. +message ListRolesRequest { + // Required. The parent, which owns this collection of Roles. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of Roles to return. The service may return + // fewer than this value. If unspecified, at most 50 roles will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListRoles` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListRoles` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListRolesRequest containing matching Role +// resources. +message ListRolesResponse { + // The Role from the specified network. + repeated Role roles = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of Roles. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/size.proto b/third_party/googleapis/google/ads/admanager/v1/size.proto new file mode 100644 index 000000000..9e3befcc5 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/size.proto @@ -0,0 +1,83 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "SizeProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Represents the dimensions of an AdUnit, LineItem, or Creative. +message Size { + // Required. The width of the [Creative](google.ads.admanager.v1.Creative), + // [AdUnit](google.ads.admanager.v1.AdUnit), or + // [LineItem](google.ads.admanager.v1.LineItem). + int32 width = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The height of the [Creative](google.ads.admanager.v1.Creative), + // [AdUnit](google.ads.admanager.v1.AdUnit), or + // [LineItem](google.ads.admanager.v1.LineItem). + int32 height = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The SizeType of the + // [Creative](google.ads.admanager.v1.Creative), + // [AdUnit](google.ads.admanager.v1.AdUnit), or + // [LineItem](google.ads.admanager.v1.LineItem). + SizeTypeEnum.SizeType size_type = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Wrapper message for +// [SizeType][google.ads.admanager.v1.SizeTypeEnum.SizeType]. +message SizeTypeEnum { + // The different Size types for an ad. + enum SizeType { + // Default value. This value is unused. + SIZE_TYPE_UNSPECIFIED = 0; + + // Dimension based size, an actual height and width in pixels. + PIXEL = 1; + + // Size is expressed as a ratio. For example, 4:1 could be + // met by a 100 x 25 sized image. + ASPECT_RATIO = 2; + + // Out-of-page (Interstitial) size that is not related to the slot it is + // served. This must be used with 1x1 size. + INTERSTITIAL = 3; + + // Size is ignored. This must be used with 1x1 + // size. + IGNORED = 4; + + // Native size, which is a function of the how the client renders the + // creative. This must be used with 1x1 size. + NATIVE = 5; + + // Fluid size. Automatically sizes the ad by filling the width of the + // enclosing column and adjusting the height as appropriate. This must be + // used with 1x1 size. + FLUID = 6; + + // Audio size. Used with audio ads. This must be used with 1x1 size. + AUDIO = 7; + } +} diff --git a/third_party/googleapis/google/ads/admanager/v1/team_service.proto b/third_party/googleapis/google/ads/admanager/v1/team_service.proto new file mode 100644 index 000000000..898f829e0 --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/team_service.proto @@ -0,0 +1,136 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "TeamServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling Team objects. +service TeamService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a Team object. + rpc GetTeam(GetTeamRequest) returns (Team) { + option (google.api.http) = { + get: "/v1/{name=networks/*/teams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of Team objects. + rpc ListTeams(ListTeamsRequest) returns (ListTeamsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/teams" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The Team resource. +message Team { + option (google.api.resource) = { + type: "admanager.googleapis.com/Team" + pattern: "networks/{network_code}/teams/{team}" + plural: "teams" + singular: "team" + }; + + // Identifier. The resource name of the Team. + // Format: `networks/{network_code}/teams/{team_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Request object for GetTeam method. +message GetTeamRequest { + // Required. The resource name of the Team. + // Format: `networks/{network_code}/teams/{team_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; +} + +// Request object for ListTeams method. +message ListTeamsRequest { + // Required. The parent, which owns this collection of Teams. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of Teams to return. The service may return + // fewer than this value. If unspecified, at most 50 teams will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListTeams` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListTeams` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListTeamsRequest containing matching Team +// resources. +message ListTeamsResponse { + // The Team from the specified network. + repeated Team teams = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of Teams. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/admanager/v1/user_service.proto b/third_party/googleapis/google/ads/admanager/v1/user_service.proto new file mode 100644 index 000000000..265472e6f --- /dev/null +++ b/third_party/googleapis/google/ads/admanager/v1/user_service.proto @@ -0,0 +1,171 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "UserServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; + +// Provides methods for handling User objects. +service UserService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a User object. + rpc GetUser(GetUserRequest) returns (User) { + option (google.api.http) = { + get: "/v1/{name=networks/*/users/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of User objects. + rpc ListUsers(ListUsersRequest) returns (ListUsersResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/users" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The User resource. +message User { + option (google.api.resource) = { + type: "admanager.googleapis.com/User" + pattern: "networks/{network_code}/users/{user}" + plural: "users" + singular: "user" + }; + + // Identifier. The resource name of the User. + // Format: `networks/{network_code}/users/{user_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `User` ID. + int64 user_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the User. It has a maximum length of 128 characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The email or login of the User. In order to create a new user, + // you must already have a Google Account. + string email = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique Role ID of the User. Roles that are created by Google + // will have negative IDs. + string role = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Role" } + ]; + + // Output only. Specifies whether or not the User is active. An inactive user + // cannot log in to the system or perform any operations. + bool active = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. An identifier for the User that is meaningful to the publisher. + // This attribute has a maximum length of 255 characters. + string external_id = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Whether the user is an OAuth2 service account user. + // Service account users can only be added through the UI. + bool service_account = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The IANA Time Zone Database time zone, e.g. "America/New_York", + // used in the orders and line items UI for this User. If not provided, the UI + // then defaults to using the Network's timezone. This setting only affects + // the UI for this user and does not affect the timezone of any dates and + // times returned in API responses. + string orders_ui_local_time_zone = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request object for GetUser method. +message GetUserRequest { + // Required. The resource name of the User. + // Format: `networks/{network_code}/users/{user_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; +} + +// Request object for ListUsers method. +message ListUsersRequest { + // Required. The parent, which owns this collection of Users. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of Users to return. The service may return + // fewer than this value. If unspecified, at most 50 users will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListUsers` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListUsers` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListUsersRequest containing matching User resources. +message ListUsersResponse { + // The User from the specified network. + repeated User users = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of Users. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/common/ad_asset.proto b/third_party/googleapis/google/ads/googleads/v14/common/ad_asset.proto deleted file mode 100644 index 265bc8324..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/common/ad_asset.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.common; - -import "google/ads/googleads/v14/common/asset_policy.proto"; -import "google/ads/googleads/v14/enums/asset_performance_label.proto"; -import "google/ads/googleads/v14/enums/served_asset_field_type.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AdAssetProto"; -option java_package = "com.google.ads.googleads.v14.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; - -// Proto file describing assets used inside an ad. - -// A text asset used inside an ad. -message AdTextAsset { - // Asset text. - optional string text = 4; - - // The pinned field of the asset. This restricts the asset to only serve - // within this field. Multiple assets can be pinned to the same field. An - // asset that is unpinned or pinned to a different field will not serve in a - // field where some other asset has been pinned. - google.ads.googleads.v14.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType - pinned_field = 2; - - // The performance label of this text asset. - google.ads.googleads.v14.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel - asset_performance_label = 5; - - // The policy summary of this text asset. - AdAssetPolicySummary policy_summary_info = 6; -} - -// An image asset used inside an ad. -message AdImageAsset { - // The Asset resource name of this image. - optional string asset = 2; -} - -// A video asset used inside an ad. -message AdVideoAsset { - // The Asset resource name of this video. - optional string asset = 2; -} - -// A media bundle asset used inside an ad. -message AdMediaBundleAsset { - // The Asset resource name of this media bundle. - optional string asset = 2; -} - -// A discovery carousel card asset used inside an ad. -message AdDiscoveryCarouselCardAsset { - // The Asset resource name of this discovery carousel card. - optional string asset = 1; -} - -// A call to action asset used inside an ad. -message AdCallToActionAsset { - // The Asset resource name of this call to action asset. - optional string asset = 1; -} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/content_label_type.proto b/third_party/googleapis/google/ads/googleads/v14/enums/content_label_type.proto deleted file mode 100644 index 52f5f6837..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/enums/content_label_type.proto +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.enums; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ContentLabelTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; - -// Proto file describing content label types. - -// Container for enum describing content label types in ContentLabel. -message ContentLabelTypeEnum { - // Enum listing the content label types supported by ContentLabel criterion. - enum ContentLabelType { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // Sexually suggestive content. - SEXUALLY_SUGGESTIVE = 2; - - // Below the fold placement. - BELOW_THE_FOLD = 3; - - // Parked domain. - PARKED_DOMAIN = 4; - - // Juvenile, gross & bizarre content. - JUVENILE = 6; - - // Profanity & rough language. - PROFANITY = 7; - - // Death & tragedy. - TRAGEDY = 8; - - // Video. - VIDEO = 9; - - // Content rating: G. - VIDEO_RATING_DV_G = 10; - - // Content rating: PG. - VIDEO_RATING_DV_PG = 11; - - // Content rating: T. - VIDEO_RATING_DV_T = 12; - - // Content rating: MA. - VIDEO_RATING_DV_MA = 13; - - // Content rating: not yet rated. - VIDEO_NOT_YET_RATED = 14; - - // Embedded video. - EMBEDDED_VIDEO = 15; - - // Live streaming video. - LIVE_STREAMING_VIDEO = 16; - - // Sensitive social issues. - SOCIAL_ISSUES = 17; - } -} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/merchant_center_link_status.proto b/third_party/googleapis/google/ads/googleads/v14/enums/merchant_center_link_status.proto deleted file mode 100644 index 1e791ca07..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/enums/merchant_center_link_status.proto +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.enums; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; - -// Proto file describing Merchant Center link statuses. - -// Container for enum describing possible statuses of a Google Merchant Center -// link. -message MerchantCenterLinkStatusEnum { - // Describes the possible statuses for a link between a Google Ads customer - // and a Google Merchant Center account. - enum MerchantCenterLinkStatus { - // Not specified. - UNSPECIFIED = 0; - - // Used for return value only. Represents value unknown in this version. - UNKNOWN = 1; - - // The link is enabled. - ENABLED = 2; - - // The link has no effect. It was proposed by the Merchant Center Account - // owner and hasn't been confirmed by the customer. - PENDING = 3; - } -} diff --git a/third_party/googleapis/google/ads/googleads/v14/googleads_gapic.yaml b/third_party/googleapis/google/ads/googleads/v14/googleads_gapic.yaml deleted file mode 100644 index 2814526e7..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/googleads_gapic.yaml +++ /dev/null @@ -1,26 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 2.0.0 -language_settings: - csharp: - package_name: Google.Ads.GoogleAds.V14.Services - go: - package_name: google.golang.org/google/ads/googleads/v14/services - java: - package_name: com.google.ads.googleads.v14.services - nodejs: - package_name: v14.services - php: - package_name: Google\Ads\GoogleAds\V14\Services - python: - package_name: google.ads.googleads_v14.gapic.services - ruby: - package_name: Google::Ads::Googleads::V14::Services -interfaces: -- name: google.ads.googleads.v14.services.OfflineUserDataJobService - methods: - - name: RunOfflineUserDataJob - long_running: - initial_poll_delay_millis: 300000 - max_poll_delay_millis: 3600000 - poll_delay_multiplier: 1.25 - total_poll_timeout_millis: 43200000 diff --git a/third_party/googleapis/google/ads/googleads/v14/googleads_grpc_service_config.json b/third_party/googleapis/google/ads/googleads/v14/googleads_grpc_service_config.json deleted file mode 100755 index 5f8d52d40..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/googleads_grpc_service_config.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.ads.googleads.v14.services.AccountBudgetProposalService" - }, - { - "service": "google.ads.googleads.v14.services.AccountLinkService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupAdLabelService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupAdService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupAssetService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupAssetSetService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupBidModifierService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupCriterionCustomizerService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupCriterionLabelService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupCriterionService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupCustomizerService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupExtensionSettingService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupFeedService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupLabelService" - }, - { - "service": "google.ads.googleads.v14.services.AdGroupService" - }, - { - "service": "google.ads.googleads.v14.services.AdParameterService" - }, - { - "service": "google.ads.googleads.v14.services.AdService" - }, - { - "service": "google.ads.googleads.v14.services.AssetGroupAssetService" - }, - { - "service": "google.ads.googleads.v14.services.AssetGroupListingGroupFilterService" - }, - { - "service": "google.ads.googleads.v14.services.AssetGroupService" - }, - { - "service": "google.ads.googleads.v14.services.AssetGroupSignalService" - }, - { - "service": "google.ads.googleads.v14.services.AssetService" - }, - { - "service": "google.ads.googleads.v14.services.AssetSetAssetService" - }, - { - "service": "google.ads.googleads.v14.services.AssetSetService" - }, - { - "service": "google.ads.googleads.v14.services.AudienceInsightsService" - }, - { - "service": "google.ads.googleads.v14.services.AudienceService" - }, - { - "service": "google.ads.googleads.v14.services.BatchJobService" - }, - { - "service": "google.ads.googleads.v14.services.BiddingDataExclusionService" - }, - { - "service": "google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService" - }, - { - "service": "google.ads.googleads.v14.services.BiddingStrategyService" - }, - { - "service": "google.ads.googleads.v14.services.BillingSetupService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignAssetService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignAssetSetService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignBidModifierService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignBudgetService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignConversionGoalService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignCriterionService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignCustomizerService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignDraftService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignExtensionSettingService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignFeedService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignGroupService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignLabelService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignService" - }, - { - "service": "google.ads.googleads.v14.services.CampaignSharedSetService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionActionService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionAdjustmentUploadService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionCustomVariableService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionGoalCampaignConfigService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionUploadService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionValueRuleService" - }, - { - "service": "google.ads.googleads.v14.services.ConversionValueRuleSetService" - }, - { - "service": "google.ads.googleads.v14.services.CustomAudienceService" - }, - { - "service": "google.ads.googleads.v14.services.CustomConversionGoalService" - }, - { - "service": "google.ads.googleads.v14.services.CustomInterestService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerAssetService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerAssetSetService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerClientLinkService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerConversionGoalService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerCustomizerService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerExtensionSettingService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerFeedService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerLabelService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerManagerLinkService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerNegativeCriterionService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerUserAccessInvitationService" - }, - { - "service": "google.ads.googleads.v14.services.CustomerUserAccessService" - }, - { - "service": "google.ads.googleads.v14.services.CustomizerAttributeService" - }, - { - "service": "google.ads.googleads.v14.services.ExperimentArmService" - }, - { - "service": "google.ads.googleads.v14.services.ExperimentService" - }, - { - "service": "google.ads.googleads.v14.services.ExtensionFeedItemService" - }, - { - "service": "google.ads.googleads.v14.services.FeedItemService" - }, - { - "service": "google.ads.googleads.v14.services.FeedItemSetLinkService" - }, - { - "service": "google.ads.googleads.v14.services.FeedItemSetService" - }, - { - "service": "google.ads.googleads.v14.services.FeedItemTargetService" - }, - { - "service": "google.ads.googleads.v14.services.FeedMappingService" - }, - { - "service": "google.ads.googleads.v14.services.FeedService" - }, - { - "service": "google.ads.googleads.v14.services.GeoTargetConstantService" - }, - { - "service": "google.ads.googleads.v14.services.GoogleAdsFieldService" - }, - { - "service": "google.ads.googleads.v14.services.GoogleAdsService" - }, - { - "service": "google.ads.googleads.v14.services.InvoiceService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordPlanAdGroupService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordPlanCampaignService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordPlanIdeaService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordPlanService" - }, - { - "service": "google.ads.googleads.v14.services.KeywordThemeConstantService" - }, - { - "service": "google.ads.googleads.v14.services.LabelService" - }, - { - "service": "google.ads.googleads.v14.services.MediaFileService" - }, - { - "service": "google.ads.googleads.v14.services.MerchantCenterLinkService" - }, - { - "service": "google.ads.googleads.v14.services.OfflineUserDataJobService" - }, - { - "service": "google.ads.googleads.v14.services.PaymentsAccountService" - }, - { - "service": "google.ads.googleads.v14.services.ProductLinkService" - }, - { - "service": "google.ads.googleads.v14.services.ReachPlanService" - }, - { - "service": "google.ads.googleads.v14.services.RecommendationService" - }, - { - "service": "google.ads.googleads.v14.services.RemarketingActionService" - }, - { - "service": "google.ads.googleads.v14.services.SharedCriterionService" - }, - { - "service": "google.ads.googleads.v14.services.SharedSetService" - }, - { - "service": "google.ads.googleads.v14.services.SmartCampaignSettingService" - }, - { - "service": "google.ads.googleads.v14.services.SmartCampaignSuggestService" - }, - { - "service": "google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService" - }, - { - "service": "google.ads.googleads.v14.services.TravelAssetSuggestionService" - }, - { - "service": "google.ads.googleads.v14.services.UserDataService" - }, - { - "service": "google.ads.googleads.v14.services.UserListService" - } - ], - "timeout": "14400s", - "retryPolicy": { - "initialBackoff": "5s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - } - ] -} diff --git a/third_party/googleapis/google/ads/googleads/v14/googleads_v14.yaml b/third_party/googleapis/google/ads/googleads/v14/googleads_v14.yaml deleted file mode 100644 index db7a2b2c0..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/googleads_v14.yaml +++ /dev/null @@ -1,849 +0,0 @@ -type: google.api.Service -config_version: 3 -name: googleads.googleapis.com -title: Google Ads API - -apis: -- name: google.ads.googleads.v14.services.AccountBudgetProposalService -- name: google.ads.googleads.v14.services.AccountLinkService -- name: google.ads.googleads.v14.services.AdGroupAdLabelService -- name: google.ads.googleads.v14.services.AdGroupAdService -- name: google.ads.googleads.v14.services.AdGroupAssetService -- name: google.ads.googleads.v14.services.AdGroupAssetSetService -- name: google.ads.googleads.v14.services.AdGroupBidModifierService -- name: google.ads.googleads.v14.services.AdGroupCriterionCustomizerService -- name: google.ads.googleads.v14.services.AdGroupCriterionLabelService -- name: google.ads.googleads.v14.services.AdGroupCriterionService -- name: google.ads.googleads.v14.services.AdGroupCustomizerService -- name: google.ads.googleads.v14.services.AdGroupExtensionSettingService -- name: google.ads.googleads.v14.services.AdGroupFeedService -- name: google.ads.googleads.v14.services.AdGroupLabelService -- name: google.ads.googleads.v14.services.AdGroupService -- name: google.ads.googleads.v14.services.AdParameterService -- name: google.ads.googleads.v14.services.AdService -- name: google.ads.googleads.v14.services.AssetGroupAssetService -- name: google.ads.googleads.v14.services.AssetGroupListingGroupFilterService -- name: google.ads.googleads.v14.services.AssetGroupService -- name: google.ads.googleads.v14.services.AssetGroupSignalService -- name: google.ads.googleads.v14.services.AssetService -- name: google.ads.googleads.v14.services.AssetSetAssetService -- name: google.ads.googleads.v14.services.AssetSetService -- name: google.ads.googleads.v14.services.AudienceInsightsService -- name: google.ads.googleads.v14.services.AudienceService -- name: google.ads.googleads.v14.services.BatchJobService -- name: google.ads.googleads.v14.services.BiddingDataExclusionService -- name: google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService -- name: google.ads.googleads.v14.services.BiddingStrategyService -- name: google.ads.googleads.v14.services.BillingSetupService -- name: google.ads.googleads.v14.services.CampaignAssetService -- name: google.ads.googleads.v14.services.CampaignAssetSetService -- name: google.ads.googleads.v14.services.CampaignBidModifierService -- name: google.ads.googleads.v14.services.CampaignBudgetService -- name: google.ads.googleads.v14.services.CampaignConversionGoalService -- name: google.ads.googleads.v14.services.CampaignCriterionService -- name: google.ads.googleads.v14.services.CampaignCustomizerService -- name: google.ads.googleads.v14.services.CampaignDraftService -- name: google.ads.googleads.v14.services.CampaignExtensionSettingService -- name: google.ads.googleads.v14.services.CampaignFeedService -- name: google.ads.googleads.v14.services.CampaignGroupService -- name: google.ads.googleads.v14.services.CampaignLabelService -- name: google.ads.googleads.v14.services.CampaignService -- name: google.ads.googleads.v14.services.CampaignSharedSetService -- name: google.ads.googleads.v14.services.ConversionActionService -- name: google.ads.googleads.v14.services.ConversionAdjustmentUploadService -- name: google.ads.googleads.v14.services.ConversionCustomVariableService -- name: google.ads.googleads.v14.services.ConversionGoalCampaignConfigService -- name: google.ads.googleads.v14.services.ConversionUploadService -- name: google.ads.googleads.v14.services.ConversionValueRuleService -- name: google.ads.googleads.v14.services.ConversionValueRuleSetService -- name: google.ads.googleads.v14.services.CustomAudienceService -- name: google.ads.googleads.v14.services.CustomConversionGoalService -- name: google.ads.googleads.v14.services.CustomInterestService -- name: google.ads.googleads.v14.services.CustomerAssetService -- name: google.ads.googleads.v14.services.CustomerAssetSetService -- name: google.ads.googleads.v14.services.CustomerClientLinkService -- name: google.ads.googleads.v14.services.CustomerConversionGoalService -- name: google.ads.googleads.v14.services.CustomerCustomizerService -- name: google.ads.googleads.v14.services.CustomerExtensionSettingService -- name: google.ads.googleads.v14.services.CustomerFeedService -- name: google.ads.googleads.v14.services.CustomerLabelService -- name: google.ads.googleads.v14.services.CustomerManagerLinkService -- name: google.ads.googleads.v14.services.CustomerNegativeCriterionService -- name: google.ads.googleads.v14.services.CustomerService -- name: google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService -- name: google.ads.googleads.v14.services.CustomerUserAccessInvitationService -- name: google.ads.googleads.v14.services.CustomerUserAccessService -- name: google.ads.googleads.v14.services.CustomizerAttributeService -- name: google.ads.googleads.v14.services.ExperimentArmService -- name: google.ads.googleads.v14.services.ExperimentService -- name: google.ads.googleads.v14.services.ExtensionFeedItemService -- name: google.ads.googleads.v14.services.FeedItemService -- name: google.ads.googleads.v14.services.FeedItemSetLinkService -- name: google.ads.googleads.v14.services.FeedItemSetService -- name: google.ads.googleads.v14.services.FeedItemTargetService -- name: google.ads.googleads.v14.services.FeedMappingService -- name: google.ads.googleads.v14.services.FeedService -- name: google.ads.googleads.v14.services.GeoTargetConstantService -- name: google.ads.googleads.v14.services.GoogleAdsFieldService -- name: google.ads.googleads.v14.services.GoogleAdsService -- name: google.ads.googleads.v14.services.InvoiceService -- name: google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService -- name: google.ads.googleads.v14.services.KeywordPlanAdGroupService -- name: google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService -- name: google.ads.googleads.v14.services.KeywordPlanCampaignService -- name: google.ads.googleads.v14.services.KeywordPlanIdeaService -- name: google.ads.googleads.v14.services.KeywordPlanService -- name: google.ads.googleads.v14.services.KeywordThemeConstantService -- name: google.ads.googleads.v14.services.LabelService -- name: google.ads.googleads.v14.services.MediaFileService -- name: google.ads.googleads.v14.services.MerchantCenterLinkService -- name: google.ads.googleads.v14.services.OfflineUserDataJobService -- name: google.ads.googleads.v14.services.PaymentsAccountService -- name: google.ads.googleads.v14.services.ProductLinkService -- name: google.ads.googleads.v14.services.ReachPlanService -- name: google.ads.googleads.v14.services.RecommendationService -- name: google.ads.googleads.v14.services.RemarketingActionService -- name: google.ads.googleads.v14.services.SharedCriterionService -- name: google.ads.googleads.v14.services.SharedSetService -- name: google.ads.googleads.v14.services.SmartCampaignSettingService -- name: google.ads.googleads.v14.services.SmartCampaignSuggestService -- name: google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService -- name: google.ads.googleads.v14.services.TravelAssetSuggestionService -- name: google.ads.googleads.v14.services.UserDataService -- name: google.ads.googleads.v14.services.UserListService - -types: -- name: google.ads.googleads.v14.errors.GoogleAdsFailure -- name: google.ads.googleads.v14.resources.BatchJob.BatchJobMetadata -- name: google.ads.googleads.v14.resources.OfflineUserDataJobMetadata -- name: google.ads.googleads.v14.services.PromoteExperimentMetadata -- name: google.ads.googleads.v14.services.ScheduleExperimentMetadata - -documentation: - summary: 'Manage your Google Ads accounts, campaigns, and reports with this API.' - overview: |- - The Google Ads API enables an app to integrate with the Google Ads - platform. You can efficiently retrieve and change your Google Ads data - using the API, making it ideal for managing large or complex accounts and - campaigns. - -backend: - rules: - - selector: google.ads.googleads.v14.services.AccountBudgetProposalService.MutateAccountBudgetProposal - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AccountLinkService.CreateAccountLink - deadline: 600.0 - - selector: google.ads.googleads.v14.services.AccountLinkService.MutateAccountLink - deadline: 600.0 - - selector: google.ads.googleads.v14.services.AdGroupAdLabelService.MutateAdGroupAdLabels - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupAdService.MutateAdGroupAds - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupAssetService.MutateAdGroupAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupAssetSetService.MutateAdGroupAssetSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupCriterionService.MutateAdGroupCriteria - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupCustomizerService.MutateAdGroupCustomizers - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupFeedService.MutateAdGroupFeeds - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupLabelService.MutateAdGroupLabels - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdGroupService.MutateAdGroups - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdParameterService.MutateAdParameters - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdService.GetAd - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AdService.MutateAds - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetGroupAssetService.MutateAssetGroupAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetGroupService.MutateAssetGroups - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetGroupSignalService.MutateAssetGroupSignals - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetService.MutateAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetSetAssetService.MutateAssetSetAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.AssetSetService.MutateAssetSets - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.AudienceInsightsService.*' - deadline: 600.0 - - selector: google.ads.googleads.v14.services.AudienceService.MutateAudiences - deadline: 600.0 - - selector: 'google.ads.googleads.v14.services.BatchJobService.*' - deadline: 60.0 - - selector: google.ads.googleads.v14.services.BiddingDataExclusionService.MutateBiddingDataExclusions - deadline: 60.0 - - selector: google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments - deadline: 60.0 - - selector: google.ads.googleads.v14.services.BiddingStrategyService.MutateBiddingStrategies - deadline: 60.0 - - selector: google.ads.googleads.v14.services.BillingSetupService.MutateBillingSetup - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignAssetService.MutateCampaignAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignAssetSetService.MutateCampaignAssetSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignBidModifierService.MutateCampaignBidModifiers - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignBudgetService.MutateCampaignBudgets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignConversionGoalService.MutateCampaignConversionGoals - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignCriterionService.MutateCampaignCriteria - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignCustomizerService.MutateCampaignCustomizers - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.CampaignDraftService.*' - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignFeedService.MutateCampaignFeeds - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignGroupService.MutateCampaignGroups - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignLabelService.MutateCampaignLabels - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignService.MutateCampaigns - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CampaignSharedSetService.MutateCampaignSharedSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ConversionActionService.MutateConversionActions - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - deadline: 600.0 - - selector: google.ads.googleads.v14.services.ConversionCustomVariableService.MutateConversionCustomVariables - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ConversionUploadService.UploadCallConversions - deadline: 600.0 - - selector: google.ads.googleads.v14.services.ConversionUploadService.UploadClickConversions - deadline: 600.0 - - selector: google.ads.googleads.v14.services.ConversionValueRuleService.MutateConversionValueRules - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ConversionValueRuleSetService.MutateConversionValueRuleSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomAudienceService.MutateCustomAudiences - deadline: 600.0 - - selector: google.ads.googleads.v14.services.CustomConversionGoalService.MutateCustomConversionGoals - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomInterestService.MutateCustomInterests - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerAssetService.MutateCustomerAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerAssetSetService.MutateCustomerAssetSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerClientLinkService.MutateCustomerClientLink - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerConversionGoalService.MutateCustomerConversionGoals - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerCustomizerService.MutateCustomerCustomizers - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerFeedService.MutateCustomerFeeds - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerLabelService.MutateCustomerLabels - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerManagerLinkService.MoveManagerLink - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerManagerLinkService.MutateCustomerManagerLink - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.CustomerService.*' - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema - deadline: 60.0 - - selector: google.ads.googleads.v14.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - deadline: 600.0 - - selector: google.ads.googleads.v14.services.CustomerUserAccessService.MutateCustomerUserAccess - deadline: 600.0 - - selector: google.ads.googleads.v14.services.CustomizerAttributeService.MutateCustomizerAttributes - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ExperimentArmService.MutateExperimentArms - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.ExperimentService.*' - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ExtensionFeedItemService.MutateExtensionFeedItems - deadline: 60.0 - - selector: google.ads.googleads.v14.services.FeedItemService.MutateFeedItems - deadline: 60.0 - - selector: google.ads.googleads.v14.services.FeedItemSetLinkService.MutateFeedItemSetLinks - deadline: 60.0 - - selector: google.ads.googleads.v14.services.FeedItemSetService.MutateFeedItemSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.FeedItemTargetService.MutateFeedItemTargets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.FeedMappingService.MutateFeedMappings - deadline: 60.0 - - selector: google.ads.googleads.v14.services.FeedService.MutateFeeds - deadline: 60.0 - - selector: google.ads.googleads.v14.services.GeoTargetConstantService.SuggestGeoTargetConstants - deadline: 60.0 - - selector: google.ads.googleads.v14.services.GoogleAdsFieldService.GetGoogleAdsField - deadline: 600.0 - - selector: google.ads.googleads.v14.services.GoogleAdsFieldService.SearchGoogleAdsFields - deadline: 600.0 - - selector: google.ads.googleads.v14.services.GoogleAdsService.Mutate - deadline: 600.0 - - selector: google.ads.googleads.v14.services.GoogleAdsService.Search - deadline: 14400.0 - - selector: google.ads.googleads.v14.services.GoogleAdsService.SearchStream - deadline: 14400.0 - - selector: google.ads.googleads.v14.services.InvoiceService.ListInvoices - deadline: 60.0 - - selector: google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - deadline: 60.0 - - selector: google.ads.googleads.v14.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - deadline: 60.0 - - selector: google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - deadline: 60.0 - - selector: google.ads.googleads.v14.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.KeywordPlanIdeaService.*' - deadline: 600.0 - - selector: google.ads.googleads.v14.services.KeywordPlanService.MutateKeywordPlans - deadline: 60.0 - - selector: google.ads.googleads.v14.services.KeywordThemeConstantService.SuggestKeywordThemeConstants - deadline: 60.0 - - selector: google.ads.googleads.v14.services.LabelService.MutateLabels - deadline: 60.0 - - selector: google.ads.googleads.v14.services.MediaFileService.MutateMediaFiles - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.MerchantCenterLinkService.*' - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.OfflineUserDataJobService.*' - deadline: 600.0 - - selector: google.ads.googleads.v14.services.PaymentsAccountService.ListPaymentsAccounts - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ProductLinkService.CreateProductLink - deadline: 600.0 - - selector: google.ads.googleads.v14.services.ProductLinkService.RemoveProductLink - deadline: 600.0 - - selector: 'google.ads.googleads.v14.services.ReachPlanService.*' - deadline: 600.0 - - selector: google.ads.googleads.v14.services.RecommendationService.ApplyRecommendation - deadline: 600.0 - - selector: google.ads.googleads.v14.services.RecommendationService.DismissRecommendation - deadline: 600.0 - - selector: google.ads.googleads.v14.services.RemarketingActionService.MutateRemarketingActions - deadline: 60.0 - - selector: google.ads.googleads.v14.services.SharedCriterionService.MutateSharedCriteria - deadline: 60.0 - - selector: google.ads.googleads.v14.services.SharedSetService.MutateSharedSets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.SmartCampaignSettingService.GetSmartCampaignStatus - deadline: 60.0 - - selector: google.ads.googleads.v14.services.SmartCampaignSettingService.MutateSmartCampaignSettings - deadline: 60.0 - - selector: 'google.ads.googleads.v14.services.SmartCampaignSuggestService.*' - deadline: 60.0 - - selector: google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - deadline: 600.0 - - selector: google.ads.googleads.v14.services.TravelAssetSuggestionService.SuggestTravelAssets - deadline: 60.0 - - selector: google.ads.googleads.v14.services.UserDataService.UploadUserData - deadline: 600.0 - - selector: google.ads.googleads.v14.services.UserListService.MutateUserLists - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - -http: - rules: - - selector: google.longrunning.Operations.CancelOperation - post: '/v14/{name=customers/*/operations/*}:cancel' - body: '*' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v14/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v14/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v14/{name=customers/*/operations}' - - selector: google.longrunning.Operations.WaitOperation - post: '/v14/{name=customers/*/operations/*}:wait' - body: '*' - -authentication: - rules: - - selector: google.ads.googleads.v14.services.AccountBudgetProposalService.MutateAccountBudgetProposal - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AccountLinkService.CreateAccountLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AccountLinkService.MutateAccountLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupAdLabelService.MutateAdGroupAdLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupAdService.MutateAdGroupAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupAssetService.MutateAdGroupAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupAssetSetService.MutateAdGroupAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupCriterionService.MutateAdGroupCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupCustomizerService.MutateAdGroupCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupFeedService.MutateAdGroupFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupLabelService.MutateAdGroupLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdGroupService.MutateAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdParameterService.MutateAdParameters - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdService.GetAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AdService.MutateAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetGroupAssetService.MutateAssetGroupAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetGroupService.MutateAssetGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetGroupSignalService.MutateAssetGroupSignals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetService.MutateAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetSetAssetService.MutateAssetSetAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AssetSetService.MutateAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.AudienceInsightsService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.AudienceService.MutateAudiences - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.BatchJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.BiddingDataExclusionService.MutateBiddingDataExclusions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.BiddingStrategyService.MutateBiddingStrategies - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.BillingSetupService.MutateBillingSetup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignAssetService.MutateCampaignAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignAssetSetService.MutateCampaignAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignBidModifierService.MutateCampaignBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignBudgetService.MutateCampaignBudgets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignConversionGoalService.MutateCampaignConversionGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignCriterionService.MutateCampaignCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignCustomizerService.MutateCampaignCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.CampaignDraftService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignFeedService.MutateCampaignFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignGroupService.MutateCampaignGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignLabelService.MutateCampaignLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignService.MutateCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CampaignSharedSetService.MutateCampaignSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionActionService.MutateConversionActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionCustomVariableService.MutateConversionCustomVariables - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionUploadService.UploadCallConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionUploadService.UploadClickConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionValueRuleService.MutateConversionValueRules - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ConversionValueRuleSetService.MutateConversionValueRuleSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomAudienceService.MutateCustomAudiences - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomConversionGoalService.MutateCustomConversionGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomInterestService.MutateCustomInterests - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerAssetService.MutateCustomerAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerAssetSetService.MutateCustomerAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerClientLinkService.MutateCustomerClientLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerConversionGoalService.MutateCustomerConversionGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerCustomizerService.MutateCustomerCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerFeedService.MutateCustomerFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerLabelService.MutateCustomerLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerManagerLinkService.MoveManagerLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerManagerLinkService.MutateCustomerManagerLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.CustomerService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomerUserAccessService.MutateCustomerUserAccess - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.CustomizerAttributeService.MutateCustomizerAttributes - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ExperimentArmService.MutateExperimentArms - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.ExperimentService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ExtensionFeedItemService.MutateExtensionFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.FeedItemService.MutateFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.FeedItemSetLinkService.MutateFeedItemSetLinks - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.FeedItemSetService.MutateFeedItemSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.FeedItemTargetService.MutateFeedItemTargets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.FeedMappingService.MutateFeedMappings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.FeedService.MutateFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.GeoTargetConstantService.SuggestGeoTargetConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.GoogleAdsFieldService.GetGoogleAdsField - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.GoogleAdsFieldService.SearchGoogleAdsFields - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.GoogleAdsService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.InvoiceService.ListInvoices - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.KeywordPlanIdeaService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.KeywordPlanService.MutateKeywordPlans - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.KeywordThemeConstantService.SuggestKeywordThemeConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.LabelService.MutateLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.MediaFileService.MutateMediaFiles - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.MerchantCenterLinkService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.OfflineUserDataJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.PaymentsAccountService.ListPaymentsAccounts - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ProductLinkService.CreateProductLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ProductLinkService.RemoveProductLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.ReachPlanService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.RecommendationService.ApplyRecommendation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.RecommendationService.DismissRecommendation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.RemarketingActionService.MutateRemarketingActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.SharedCriterionService.MutateSharedCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.SharedSetService.MutateSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.SmartCampaignSettingService.GetSmartCampaignStatus - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.SmartCampaignSettingService.MutateSmartCampaignSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v14.services.SmartCampaignSuggestService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.TravelAssetSuggestionService.SuggestTravelAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.UserDataService.UploadUserData - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v14.services.UserListService.MutateUserLists - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.longrunning.Operations.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/merchant_center_link.proto b/third_party/googleapis/google/ads/googleads/v14/resources/merchant_center_link.proto deleted file mode 100644 index 1d0321b25..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/resources/merchant_center_link.proto +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/enums/merchant_center_link_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; - -// Proto file describing the Merchant Center link resource. - -// A data sharing connection, proposed or in use, -// between a Google Ads Customer and a Merchant Center account. -message MerchantCenterLink { - option (google.api.resource) = { - type: "googleads.googleapis.com/MerchantCenterLink" - pattern: "customers/{customer_id}/merchantCenterLinks/{merchant_center_id}" - }; - - // Immutable. The resource name of the merchant center link. - // Merchant center link resource names have the form: - // - // `customers/{customer_id}/merchantCenterLinks/{merchant_center_id}` - string resource_name = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MerchantCenterLink" - } - ]; - - // Output only. The ID of the Merchant Center account. - // This field is readonly. - optional int64 id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The name of the Merchant Center account. - // This field is readonly. - optional string merchant_center_account_name = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The status of the link. - google.ads.googleads.v14.enums.MerchantCenterLinkStatusEnum - .MerchantCenterLinkStatus status = 5; -} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/product_bidding_category_constant.proto b/third_party/googleapis/google/ads/googleads/v14/resources/product_bidding_category_constant.proto deleted file mode 100644 index e3f77703c..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/resources/product_bidding_category_constant.proto +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/enums/product_bidding_category_level.proto"; -import "google/ads/googleads/v14/enums/product_bidding_category_status.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; -option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; - -// Proto file describing the ProductBiddingCategoryConstant resource. - -// A Product Bidding Category. -message ProductBiddingCategoryConstant { - option (google.api.resource) = { - type: "googleads.googleapis.com/ProductBiddingCategoryConstant" - pattern: "productBiddingCategoryConstants/{country_code}~{level}~{id}" - }; - - // Output only. The resource name of the product bidding category. - // Product bidding category resource names have the form: - // - // `productBiddingCategoryConstants/{country_code}~{level}~{id}` - string resource_name = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductBiddingCategoryConstant" - } - ]; - - // Output only. ID of the product bidding category. - // - // This ID is equivalent to the google_product_category ID as described in - // this article: https://support.google.com/merchants/answer/6324436. - optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Two-letter upper-case country code of the product bidding - // category. - optional string country_code = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Resource name of the parent product bidding category. - optional string product_bidding_category_constant_parent = 12 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductBiddingCategoryConstant" - } - ]; - - // Output only. Level of the product bidding category. - google.ads.googleads.v14.enums.ProductBiddingCategoryLevelEnum - .ProductBiddingCategoryLevel level = 5 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Status of the product bidding category. - google.ads.googleads.v14.enums.ProductBiddingCategoryStatusEnum - .ProductBiddingCategoryStatus status = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Language code of the product bidding category. - optional string language_code = 13 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Display value of the product bidding category localized - // according to language_code. - optional string localized_name = 14 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/media_file_service.proto b/third_party/googleapis/google/ads/googleads/v14/services/media_file_service.proto deleted file mode 100644 index 8a2c1e28c..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/services/media_file_service.proto +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.services; - -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/media_file.proto"; -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MediaFileServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; - -// Proto file describing the Media File service. - -// Service to manage media files. -service MediaFileService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Creates media files. Operation statuses are returned. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [DatabaseError]() - // [DistinctError]() - // [FieldError]() - // [HeaderError]() - // [IdError]() - // [ImageError]() - // [InternalError]() - // [MediaBundleError]() - // [MediaFileError]() - // [NewResourceCreationError]() - // [NotEmptyError]() - // [NullError]() - // [OperatorError]() - // [QuotaError]() - // [RangeError]() - // [RequestError]() - // [SizeLimitError]() - // [StringFormatError]() - // [StringLengthError]() - rpc MutateMediaFiles(MutateMediaFilesRequest) - returns (MutateMediaFilesResponse) { - option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/mediaFiles:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operations"; - } -} - -// Request message for -// [MediaFileService.MutateMediaFiles][google.ads.googleads.v14.services.MediaFileService.MutateMediaFiles] -message MutateMediaFilesRequest { - // Required. The ID of the customer whose media files are being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The list of operations to perform on individual media file. - repeated MediaFileOperation operations = 2 - [(google.api.field_behavior) = REQUIRED]; - - // If true, successful operations will be carried out and invalid - // operations will return errors. If false, all operations will be carried - // out in one transaction if and only if they are all valid. - // Default is false. - bool partial_failure = 3; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 4; - - // The response content type setting. Determines whether the mutable resource - // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType - response_content_type = 5; -} - -// A single operation to create media file. -message MediaFileOperation { - // The mutate operation. - oneof operation { - // Create operation: No resource name is expected for the new media file. - google.ads.googleads.v14.resources.MediaFile create = 1; - } -} - -// Response message for a media file mutate. -message MutateMediaFilesResponse { - // Errors that pertain to operation failures in the partial failure mode. - // Returned only when partial_failure = true and all errors occur inside the - // operations. If any errors occur outside the operations (for example, auth - // errors), we return an RPC level error. - google.rpc.Status partial_failure_error = 3; - - // All results for the mutate. - repeated MutateMediaFileResult results = 2; -} - -// The result for the media file mutate. -message MutateMediaFileResult { - // The resource name returned for successful operations. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/MediaFile" - }]; - - // The mutated media file with only mutable fields after mutate. The field - // will only be returned when response_content_type is set to - // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.MediaFile media_file = 2; -} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/merchant_center_link_service.proto b/third_party/googleapis/google/ads/googleads/v14/services/merchant_center_link_service.proto deleted file mode 100644 index f62d0fe94..000000000 --- a/third_party/googleapis/google/ads/googleads/v14/services/merchant_center_link_service.proto +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.ads.googleads.v14.services; - -import "google/ads/googleads/v14/resources/merchant_center_link.proto"; -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/field_mask.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; -option java_multiple_files = true; -option java_outer_classname = "MerchantCenterLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; - -// Proto file describing the MerchantCenterLink service. - -// This service allows management of links between Google Ads and Google -// Merchant Center. -service MerchantCenterLinkService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Returns Merchant Center links available for this customer. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc ListMerchantCenterLinks(ListMerchantCenterLinksRequest) - returns (ListMerchantCenterLinksResponse) { - option (google.api.http) = { - get: "/v14/customers/{customer_id=*}/merchantCenterLinks" - }; - option (google.api.method_signature) = "customer_id"; - } - - // Returns the Merchant Center link in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetMerchantCenterLink(GetMerchantCenterLinkRequest) - returns (google.ads.googleads.v14.resources.MerchantCenterLink) { - option (google.api.http) = { - get: "/v14/{resource_name=customers/*/merchantCenterLinks/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - - // Updates status or removes a Merchant Center link. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [FieldMaskError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc MutateMerchantCenterLink(MutateMerchantCenterLinkRequest) - returns (MutateMerchantCenterLinkResponse) { - option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/merchantCenterLinks:mutate" - body: "*" - }; - option (google.api.method_signature) = "customer_id,operation"; - } -} - -// Request message for -// [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v14.services.MerchantCenterLinkService.ListMerchantCenterLinks]. -message ListMerchantCenterLinksRequest { - // Required. The ID of the customer onto which to apply the Merchant Center - // link list operation. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for -// [MerchantCenterLinkService.ListMerchantCenterLinks][google.ads.googleads.v14.services.MerchantCenterLinkService.ListMerchantCenterLinks]. -message ListMerchantCenterLinksResponse { - // Merchant Center links available for the requested customer - repeated google.ads.googleads.v14.resources.MerchantCenterLink - merchant_center_links = 1; -} - -// Request message for -// [MerchantCenterLinkService.GetMerchantCenterLink][google.ads.googleads.v14.services.MerchantCenterLinkService.GetMerchantCenterLink]. -message GetMerchantCenterLinkRequest { - // Required. Resource name of the Merchant Center link. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/MerchantCenterLink" - } - ]; -} - -// Request message for -// [MerchantCenterLinkService.MutateMerchantCenterLink][google.ads.googleads.v14.services.MerchantCenterLinkService.MutateMerchantCenterLink]. -message MutateMerchantCenterLinkRequest { - // Required. The ID of the customer being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The operation to perform on the link - MerchantCenterLinkOperation operation = 2 - [(google.api.field_behavior) = REQUIRED]; - - // If true, the request is validated but not executed. Only errors are - // returned, not results. - bool validate_only = 3; -} - -// A single update on a Merchant Center link. -message MerchantCenterLinkOperation { - // FieldMask that determines which resource fields are modified in an update. - google.protobuf.FieldMask update_mask = 3; - - // The operation to perform - oneof operation { - // Update operation: The merchant center link is expected to have a valid - // resource name. - google.ads.googleads.v14.resources.MerchantCenterLink update = 1; - - // Remove operation: A resource name for the removed merchant center link is - // expected, in this format: - // - // `customers/{customer_id}/merchantCenterLinks/{merchant_center_id}` - string remove = 2 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/MerchantCenterLink" - }]; - } -} - -// Response message for Merchant Center link mutate. -message MutateMerchantCenterLinkResponse { - // Result for the mutate. - MutateMerchantCenterLinkResult result = 2; -} - -// The result for the Merchant Center link mutate. -message MutateMerchantCenterLinkResult { - // Returned for successful operations. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/MerchantCenterLink" - }]; -} diff --git a/third_party/googleapis/google/ads/googleads/v16/common/criteria.proto b/third_party/googleapis/google/ads/googleads/v16/common/criteria.proto index 4e245fc78..371dfd758 100644 --- a/third_party/googleapis/google/ads/googleads/v16/common/criteria.proto +++ b/third_party/googleapis/google/ads/googleads/v16/common/criteria.proto @@ -18,6 +18,8 @@ package google.ads.googleads.v16.common; import "google/ads/googleads/v16/enums/age_range_type.proto"; import "google/ads/googleads/v16/enums/app_payment_model_type.proto"; +import "google/ads/googleads/v16/enums/brand_request_rejection_reason.proto"; +import "google/ads/googleads/v16/enums/brand_state.proto"; import "google/ads/googleads/v16/enums/content_label_type.proto"; import "google/ads/googleads/v16/enums/day_of_week.proto"; import "google/ads/googleads/v16/enums/device.proto"; @@ -39,6 +41,7 @@ import "google/ads/googleads/v16/enums/product_type_level.proto"; import "google/ads/googleads/v16/enums/proximity_radius_units.proto"; import "google/ads/googleads/v16/enums/webpage_condition_operand.proto"; import "google/ads/googleads/v16/enums/webpage_condition_operator.proto"; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; option csharp_namespace = "Google.Ads.GoogleAds.V16.Common"; @@ -821,8 +824,23 @@ message SearchThemeInfo { // Represents a Brand Criterion used for targeting based on commercial knowledge // graph. message BrandInfo { + // Output only. A text representation of a brand. + optional string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The Commercial KG MID for the brand. optional string entity_id = 1; + + // Output only. The primary url of a brand. + optional string primary_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The rejection reason when a brand status is REJECTED. + optional google.ads.googleads.v16.enums.BrandRequestRejectionReasonEnum + .BrandRequestRejectionReason rejection_reason = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of a brand. + optional google.ads.googleads.v16.enums.BrandStateEnum.BrandState status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A Brand List Criterion is used to specify a list of brands. The list is diff --git a/third_party/googleapis/google/ads/googleads/v16/common/metrics.proto b/third_party/googleapis/google/ads/googleads/v16/common/metrics.proto index 887ac2add..d5846b81f 100644 --- a/third_party/googleapis/google/ads/googleads/v16/common/metrics.proto +++ b/third_party/googleapis/google/ads/googleads/v16/common/metrics.proto @@ -32,8 +32,8 @@ option ruby_package = "Google::Ads::GoogleAds::V16::Common"; // Metrics data. message Metrics { - // The percent of your ad impressions that are shown as the very first ad - // above the organic search results. + // Search absolute top impression share is the percentage of your Search ad + // impressions that are shown in the most prominent Search position. optional double absolute_top_impression_percentage = 183; // Average cost of viewable impressions (`active_view_impressions`). @@ -147,8 +147,8 @@ message Metrics { optional double all_conversions_from_store_website = 202; // This metric is part of the Auction Insights report, and tells how often - // the ads of another participant showed as the very first ad above the - // organic search results. + // the ads of another participant showed in the most prominent position on the + // search results page. // This percentage is computed only over the auctions that you appeared in // the page. // @@ -188,9 +188,9 @@ message Metrics { optional double auction_insight_search_position_above_rate = 262; // This metric is part of the Auction Insights report, and tells how often - // the ads of another participant showed above the organic search results. - // This percentage is computed only over the auctions that you appeared in - // the page. + // the ads of another participant showed adjacent to the top organic search + // results. This percentage is computed only over the auctions that you + // appeared in the page. // // This metric is not publicly available. optional double auction_insight_search_top_impression_percentage = 263; @@ -581,8 +581,8 @@ message Metrics { // for details. Any value below 0.1 is reported as 0.0999. optional double search_absolute_top_impression_share = 136; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to a low budget. Note: Search + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to a low budget. Note: Search // budget lost absolute top impression share is reported in the range of 0 to // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_budget_lost_absolute_top_impression_share = 137; @@ -593,7 +593,7 @@ message Metrics { // value above 0.9 is reported as 0.9001. optional double search_budget_lost_impression_share = 138; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to a low budget. Note: Search // budget lost top impression share is reported in the range of 0 to 0.9. Any // value above 0.9 is reported as 0.9001. @@ -619,8 +619,8 @@ message Metrics { // value below 0.1 is reported as 0.0999. optional double search_impression_share = 142; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to poor Ad Rank. + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to poor Ad Rank. // Note: Search rank lost absolute top impression share is reported in the // range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_absolute_top_impression_share = 143; @@ -631,17 +631,19 @@ message Metrics { // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_impression_share = 144; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to poor Ad Rank. // Note: Search rank lost top impression share is reported in the range of 0 // to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_top_impression_share = 145; - // The impressions you've received in the top location (anywhere above the - // organic search results) compared to the estimated number of impressions you - // were eligible to receive in the top location. + // The impressions you've received among the top ads compared to the estimated + // number of impressions you were eligible to receive among the top ads. // Note: Search top impression share is reported in the range of 0.1 to 1. Any // value below 0.1 is reported as 0.0999. + // + // Top ads are generally above the top organic results, although they may show + // below the top organic results on certain queries. optional double search_top_impression_share = 146; // Search volume range for a search term insight category. @@ -659,7 +661,7 @@ message Metrics { // campaigns that had traffic from portfolio bidding strategies or non-tROAS). optional double average_target_roas = 250; - // The percent of your ad impressions that are shown anywhere above the + // The percent of your ad impressions that are shown adjacent to the top // organic search results. optional double top_impression_percentage = 148; diff --git a/third_party/googleapis/google/ads/googleads/v16/enums/ad_group_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v16/enums/ad_group_primary_status_reason.proto index f112a0f2a..79763ed5b 100644 --- a/third_party/googleapis/google/ads/googleads/v16/enums/ad_group_primary_status_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v16/enums/ad_group_primary_status_reason.proto @@ -98,5 +98,9 @@ message AdGroupPrimaryStatusReasonEnum { // The AdGroup belongs to a Draft campaign. Contributes to // AdGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_DRAFT = 16; + + // Ad group has been paused due to prolonged low activity in serving. + // Contributes to AdGroupPrimaryStatus.PAUSED. + AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY = 19; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/enums/asset_field_type.proto b/third_party/googleapis/google/ads/googleads/v16/enums/asset_field_type.proto index 8a67e20bb..6b135af8c 100644 --- a/third_party/googleapis/google/ads/googleads/v16/enums/asset_field_type.proto +++ b/third_party/googleapis/google/ads/googleads/v16/enums/asset_field_type.proto @@ -119,5 +119,8 @@ message AssetFieldTypeEnum { // The asset is linked for use as a hotel property in a Performance Max for // travel goals campaign. HOTEL_PROPERTY = 28; + + // The asset is linked for use as a discovery carousel card. + DISCOVERY_CAROUSEL_CARD = 29; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/enums/brand_request_rejection_reason.proto b/third_party/googleapis/google/ads/googleads/v16/enums/brand_request_rejection_reason.proto new file mode 100644 index 000000000..3c967dadd --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v16/enums/brand_request_rejection_reason.proto @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v16.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V16.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BrandRequestRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v16.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V16::Enums"; + +// Proto file describing the brand request rejection reason for the criterion. + +// Container for enum describing rejection reasons for the customer brand +// requests. +message BrandRequestRejectionReasonEnum { + // Enumeration of different brand request rejection reasons. + enum BrandRequestRejectionReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Brand is already present in the commercial brand set. + EXISTING_BRAND = 2; + + // Brand is already present in the commercial brand set, but is a variant. + EXISTING_BRAND_VARIANT = 3; + + // Brand information is not correct (eg: URL and name don't match). + INCORRECT_INFORMATION = 4; + + // Not a valid brand as per Google policy. + NOT_A_BRAND = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v16/enums/criterion_type.proto b/third_party/googleapis/google/ads/googleads/v16/enums/criterion_type.proto index 64f7a1979..80da17a12 100644 --- a/third_party/googleapis/google/ads/googleads/v16/enums/criterion_type.proto +++ b/third_party/googleapis/google/ads/googleads/v16/enums/criterion_type.proto @@ -153,5 +153,8 @@ message CriterionTypeEnum { // Brand List BRAND_LIST = 40; + + // Life Event + LIFE_EVENT = 41; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_vertical.proto b/third_party/googleapis/google/ads/googleads/v16/enums/local_services_lead_credit_state.proto similarity index 55% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_vertical.proto rename to third_party/googleapis/google/ads/googleads/v16/enums/local_services_lead_credit_state.proto index eba9fb47e..addb614f8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_vertical.proto +++ b/third_party/googleapis/google/ads/googleads/v16/enums/local_services_lead_credit_state.proto @@ -14,31 +14,31 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v16.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V16.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/enums;enums"; option java_multiple_files = true; -option java_outer_classname = "ListingGroupFilterVerticalProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_outer_classname = "LocalServicesLeadCreditStateProto"; +option java_package = "com.google.ads.googleads.v16.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V16::Enums"; -// Proto file describing listing groups. - -// Container for enum describing the type of the vertical a listing group filter -// tree represents. -message ListingGroupFilterVerticalEnum { - // The type of the listing group filter vertical. - enum ListingGroupFilterVertical { +// Container for enum describing possible credit states of a lead. +message LocalServicesCreditStateEnum { + // Possible credit states of a lead. + enum CreditState { // Not specified. UNSPECIFIED = 0; // Used for return value only. Represents value unknown in this version. UNKNOWN = 1; - // Represents the shopping vertical. - SHOPPING = 2; + // Credit is pending. + PENDING = 2; + + // Credit request is complete. + CREDITED = 3; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/enums/resource_limit_type.proto b/third_party/googleapis/google/ads/googleads/v16/enums/resource_limit_type.proto index 432b195a3..17e8b7f1c 100644 --- a/third_party/googleapis/google/ads/googleads/v16/enums/resource_limit_type.proto +++ b/third_party/googleapis/google/ads/googleads/v16/enums/resource_limit_type.proto @@ -489,5 +489,8 @@ message ResourceLimitTypeEnum { // Maximum number of shared sets of brand type for an account. SHARED_SETS_PER_ACCOUNT_FOR_BRAND = 185; + + // Maximum number of lookalike lists per customer. + LOOKALIKE_USER_LISTS_PER_CUSTOMER = 186; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/enums/response_content_type.proto b/third_party/googleapis/google/ads/googleads/v16/enums/response_content_type.proto index 29b9e924d..a091fade1 100644 --- a/third_party/googleapis/google/ads/googleads/v16/enums/response_content_type.proto +++ b/third_party/googleapis/google/ads/googleads/v16/enums/response_content_type.proto @@ -37,8 +37,9 @@ message ResponseContentTypeEnum { // The mutate response will be the resource name. RESOURCE_NAME_ONLY = 1; - // The mutate response will be the resource name and the resource with - // all mutable fields. + // The mutate response will contain the resource name and the resource with + // mutable fields if possible. Otherwise, only the resource name will be + // returned. MUTABLE_RESOURCE = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/campaign_criterion_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/campaign_criterion_error.proto index be0a9e880..d358ba931 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/campaign_criterion_error.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/campaign_criterion_error.proto @@ -124,5 +124,12 @@ message CampaignCriterionErrorEnum { // exclusive targeting, broad match campaigns for inclusive targeting or // PMax generated campaigns. CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN = 26; + + // Campaigns that target all countries and territories are limited to a + // certain number of top-level location exclusions. If removing a criterion + // causes the campaign to target all countries and territories and the + // campaign has more top-level location exclusions than the limit allows, + // then this error is returned. + CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS = 27; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/campaign_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/campaign_error.proto index aa60cde22..5966dfb1e 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/campaign_error.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/campaign_error.proto @@ -299,5 +299,9 @@ message CampaignErrorEnum { // active Performance Max optimization automatically created assets // experiment. End the experiment to modify these settings. CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL = 88; + + // Dynamic text asset cannot be opted out when final URL expansion is opted + // in. + DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN = 89; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/customer_sk_ad_network_conversion_value_schema_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/customer_sk_ad_network_conversion_value_schema_error.proto index 8cd380d0f..e0bb1b9d4 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/customer_sk_ad_network_conversion_value_schema_error.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/customer_sk_ad_network_conversion_value_schema_error.proto @@ -49,5 +49,11 @@ message CustomerSkAdNetworkConversionValueSchemaErrorEnum { // The customer link id provided could not be found. LINK_CODE_NOT_FOUND = 5; + + // The SkAdNetwork event counter provided is invalid. + INVALID_EVENT_COUNTER = 7; + + // The SkAdNetwork event name provided is invalid. + INVALID_EVENT_NAME = 8; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/errors.proto b/third_party/googleapis/google/ads/googleads/v16/errors/errors.proto index 50d74615a..4e3a0db8d 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/errors.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/errors.proto @@ -169,6 +169,7 @@ import "google/ads/googleads/v16/errors/time_zone_error.proto"; import "google/ads/googleads/v16/errors/url_field_error.proto"; import "google/ads/googleads/v16/errors/user_data_error.proto"; import "google/ads/googleads/v16/errors/user_list_error.proto"; +import "google/ads/googleads/v16/errors/video_campaign_error.proto"; import "google/ads/googleads/v16/errors/youtube_video_registration_error.proto"; import "google/protobuf/duration.proto"; @@ -258,6 +259,9 @@ message ErrorCode { // An error with a Campaign mutate. CampaignErrorEnum.CampaignError campaign_error = 15; + // An error with a Video Campaign mutate. + VideoCampaignErrorEnum.VideoCampaignError video_campaign_error = 182; + // Indicates failure to properly authenticate user. AuthenticationErrorEnum.AuthenticationError authentication_error = 17; diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/experiment_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/experiment_error.proto index 8157088ae..a134ed7aa 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/experiment_error.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/experiment_error.proto @@ -129,5 +129,8 @@ message ExperimentErrorEnum { // experiment types: SEARCH_CUSTOM, DISPLAY_CUSTOM, // DISPLAY_AUTOMATED_BIDDING_STRATEGY, SEARCH_AUTOMATED_BIDDING_STRATEGY. CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE = 29; + + // Experiment length cannot be longer than max length. + INVALID_DURATION_FOR_AN_EXPERIMENT = 30; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/product_link_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/product_link_error.proto index 3f225368c..96a7637b1 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/product_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/product_link_error.proto @@ -46,5 +46,8 @@ message ProductLinkErrorEnum { // A link cannot be created because a pending link already exists. INVITATION_EXISTS = 4; + + // A link cannot be created because an active link already exists. + LINK_EXISTS = 5; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/product_link_invitation_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/product_link_invitation_error.proto index 83ec7284c..0ea8f9d10 100644 --- a/third_party/googleapis/google/ads/googleads/v16/errors/product_link_invitation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v16/errors/product_link_invitation_error.proto @@ -47,5 +47,8 @@ message ProductLinkInvitationErrorEnum { // access to the invited account. Use the ProductLinkService to directly // create an active link. NO_INVITATION_REQUIRED = 4; + + // The customer is not permitted to create the invitation. + CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION = 5; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/errors/video_campaign_error.proto b/third_party/googleapis/google/ads/googleads/v16/errors/video_campaign_error.proto new file mode 100644 index 000000000..e06c606d9 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v16/errors/video_campaign_error.proto @@ -0,0 +1,44 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v16.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V16.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "VideoCampaignErrorProto"; +option java_package = "com.google.ads.googleads.v16.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V16::Errors"; + +// Proto file describing video campaign errors. + +// Container for enum describing possible video campaign errors. +message VideoCampaignErrorEnum { + // Enum describing possible video campaign errors. + enum VideoCampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot modify the video campaign without reservation. + // See https://support.google.com/google-ads/answer/9547606. + MUTATE_REQUIRES_RESERVATION = 2; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/ad_group_criterion.proto b/third_party/googleapis/google/ads/googleads/v16/resources/ad_group_criterion.proto index 4f23b5822..c35bced71 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/ad_group_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/ad_group_criterion.proto @@ -39,6 +39,8 @@ option ruby_package = "Google::Ads::GoogleAds::V16::Resources"; // Proto file describing the ad group criterion resource. // An ad group criterion. +// The ad_group_criterion report only returns criteria that were explicitly +// added to the ad group. message AdGroupCriterion { option (google.api.resource) = { type: "googleads.googleapis.com/AdGroupCriterion" @@ -295,9 +297,6 @@ message AdGroupCriterion { [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. google.ads.googleads.v16.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/campaign.proto b/third_party/googleapis/google/ads/googleads/v16/resources/campaign.proto index fbe324baf..2a3c41361 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/campaign.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/campaign.proto @@ -524,7 +524,10 @@ message Campaign { repeated google.ads.googleads.v16.common.FrequencyCapEntry frequency_caps = 40; - // Output only. 3-Tier Brand Safety setting for the campaign. + // Output only. Brand Safety setting at the individual campaign level. Allows + // for selecting an inventory type to show your ads on content that is the + // right fit for your brand. See + // https://support.google.com/google-ads/answer/7515513. google.ads.googleads.v16.enums.BrandSafetySuitabilityEnum .BrandSafetySuitability video_brand_safety_suitability = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/campaign_criterion.proto b/third_party/googleapis/google/ads/googleads/v16/resources/campaign_criterion.proto index c85fab99f..1da73358d 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/campaign_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/campaign_criterion.proto @@ -134,9 +134,6 @@ message CampaignCriterion { [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. google.ads.googleads.v16.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/campaign_simulation.proto b/third_party/googleapis/google/ads/googleads/v16/resources/campaign_simulation.proto index 8714e4b16..42c85ba6f 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/campaign_simulation.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/campaign_simulation.proto @@ -47,6 +47,7 @@ option ruby_package = "Google::Ads::GoogleAds::V16::Resources"; // * SHOPPING - BUDGET - UNIFORM // * SHOPPING - TARGET_ROAS - UNIFORM // * MULTI_CHANNEL - TARGET_CPA - UNIFORM +// * MULTI_CHANNEL - TARGET_ROAS - UNIFORM // * DISCOVERY - TARGET_CPA - DEFAULT // * DISPLAY - TARGET_CPA - UNIFORM // * PERFORMANCE_MAX - TARGET_CPA - UNIFORM diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/conversion_value_rule.proto b/third_party/googleapis/google/ads/googleads/v16/resources/conversion_value_rule.proto index 9b6698d1c..2c9dc40fc 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/conversion_value_rule.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/conversion_value_rule.proto @@ -84,9 +84,6 @@ message ConversionValueRule { // Condition on Audience dimension. message ValueRuleAudienceCondition { // User Lists. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. repeated string user_lists = 1 [(google.api.resource_reference) = { type: "googleads.googleapis.com/UserList" }]; diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/customer.proto b/third_party/googleapis/google/ads/googleads/v16/resources/customer.proto index dfb16670d..e8b0132c9 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/customer.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/customer.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.ads.googleads.v16.resources; +import "google/ads/googleads/v16/enums/brand_safety_suitability.proto"; import "google/ads/googleads/v16/enums/conversion_tracking_status_enum.proto"; import "google/ads/googleads/v16/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; import "google/ads/googleads/v16/enums/customer_status.proto"; @@ -168,6 +169,14 @@ message Customer { // Output only. Settings for Local Services customer. LocalServicesSettings local_services_settings = 45 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Brand Safety setting at the account level. Allows for + // selecting an inventory type to show your ads on content that is the right + // fit for your brand. See + // https://support.google.com/google-ads/answer/7515513. + google.ads.googleads.v16.enums.BrandSafetySuitabilityEnum + .BrandSafetySuitability video_brand_safety_suitability = 46 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Call reporting setting for a customer. Only mutable in an `update` operation. diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/customer_negative_criterion.proto b/third_party/googleapis/google/ads/googleads/v16/resources/customer_negative_criterion.proto index 1b1c6c65c..6ea73627d 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/customer_negative_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/customer_negative_criterion.proto @@ -88,5 +88,9 @@ message CustomerNegativeCriterion { // Immutable. NegativeKeywordList. google.ads.googleads.v16.common.NegativeKeywordListInfo negative_keyword_list = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. IPBLock + google.ads.googleads.v16.common.IpBlockInfo ip_block = 12 + [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/customer_sk_ad_network_conversion_value_schema.proto b/third_party/googleapis/google/ads/googleads/v16/resources/customer_sk_ad_network_conversion_value_schema.proto index 1c6a3950b..09fca8945 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/customer_sk_ad_network_conversion_value_schema.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/customer_sk_ad_network_conversion_value_schema.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.ads.googleads.v16.resources; +import "google/ads/googleads/v16/enums/sk_ad_network_coarse_conversion_value.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; @@ -52,6 +53,54 @@ message CustomerSkAdNetworkConversionValueSchema { [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Mappings for each postback in multiple conversion windows. + message PostbackMapping { + // Output only. 0-based index that indicates the order of postback. Valid + // values are in the inclusive range [0,2]. + int32 postback_sequence_index = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion value mappings for all coarse grained + // conversion values. + CoarseGrainedConversionValueMappings + coarse_grained_conversion_value_mappings = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Event or conversion value used for locking conversion window. + oneof lock_window_trigger { + // Output only. Coarse grained conversion value that triggers conversion + // window lock. + google.ads.googleads.v16.enums.SkAdNetworkCoarseConversionValueEnum + .SkAdNetworkCoarseConversionValue + lock_window_coarse_conversion_value = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Fine grained conversion value that triggers conversion + // window lock. + int32 lock_window_fine_conversion_value = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Event name that triggers conversion window lock. + string lock_window_event = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + } + + // Mappings for coarse grained conversion values. + message CoarseGrainedConversionValueMappings { + // Output only. Mapping for "low" coarse conversion value. + ConversionValueMapping low_conversion_value_mapping = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mapping for "medium" coarse conversion value. + ConversionValueMapping medium_conversion_value_mapping = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mapping for "high" coarse conversion value. + ConversionValueMapping high_conversion_value_mapping = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Represents mapping from one conversion value to one or more conversion // events. message ConversionValueMapping { @@ -142,9 +191,18 @@ message CustomerSkAdNetworkConversionValueSchema { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Fine grained conversion value mappings. + // For SkAdNetwork versions >= 4.0 that support multiple conversion + // windows, fine grained conversion value mappings are only applicable to + // the first postback. repeated FineGrainedConversionValueMappings fine_grained_conversion_value_mappings = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Per-postback conversion value mappings for postbacks in + // multiple conversion windows. Only applicable for SkAdNetwork versions + // >= 4.0. + repeated PostbackMapping postback_mappings = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Output only. The resource name of the schema. diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/gender_view.proto b/third_party/googleapis/google/ads/googleads/v16/resources/gender_view.proto index 15559b888..fdcfaf6a8 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/gender_view.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/gender_view.proto @@ -31,6 +31,9 @@ option ruby_package = "Google::Ads::GoogleAds::V16::Resources"; // Proto file describing the gender view resource. // A gender view. +// The gender_view resource reflects the effective serving state, rather than +// what criteria were added. An ad group without gender criteria by default +// shows to all genders, so all genders appear in gender_view with stats. message GenderView { option (google.api.resource) = { type: "googleads.googleapis.com/GenderView" diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead.proto b/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead.proto index 9cf854a01..e538f3996 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.ads.googleads.v16.resources; +import "google/ads/googleads/v16/enums/local_services_lead_credit_state.proto"; import "google/ads/googleads/v16/enums/local_services_lead_status.proto"; import "google/ads/googleads/v16/enums/local_services_lead_type.proto"; import "google/api/field_behavior.proto"; @@ -94,6 +95,10 @@ message LocalServicesLead { // Output only. True if the advertiser was charged for the lead. bool lead_charged = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Credit details of the lead. + optional CreditDetails credit_details = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Fields containing consumer contact details. @@ -120,3 +125,16 @@ message Note { // Output only. Content of lead note. string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Represents the credit details of a lead. +message CreditDetails { + // Output only. Credit state of the lead. + google.ads.googleads.v16.enums.LocalServicesCreditStateEnum.CreditState + credit_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date time when the credit state of the lead was last + // updated. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's + // timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string credit_state_last_update_date_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead_conversation.proto b/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead_conversation.proto index 8cd107d57..f0d11e72e 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead_conversation.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/local_services_lead_conversation.proto @@ -105,4 +105,9 @@ message PhoneCallDetails { message MessageDetails { // Output only. Textual content of the message. string text = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL to the SMS or email attachments. These URLs can be used to + // download the contents of the attachment by using the developer token. + repeated string attachment_urls = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v16/resources/location_view.proto b/third_party/googleapis/google/ads/googleads/v16/resources/location_view.proto index c7b542607..919fd855d 100644 --- a/third_party/googleapis/google/ads/googleads/v16/resources/location_view.proto +++ b/third_party/googleapis/google/ads/googleads/v16/resources/location_view.proto @@ -30,8 +30,10 @@ option ruby_package = "Google::Ads::GoogleAds::V16::Resources"; // Proto file describing the location view resource. -// A location view summarizes the performance of campaigns by -// Location criteria. +// A location view summarizes the performance of campaigns by a Location +// criterion. +// If no Location criterion is set, no results are returned; instead, use +// geographic_view or user_location_view for visitor location data. message LocationView { option (google.api.resource) = { type: "googleads.googleapis.com/LocationView" diff --git a/third_party/googleapis/google/ads/googleads/v16/services/customer_sk_ad_network_conversion_value_schema_service.proto b/third_party/googleapis/google/ads/googleads/v16/services/customer_sk_ad_network_conversion_value_schema_service.proto index c60f9ba81..8c70b933b 100644 --- a/third_party/googleapis/google/ads/googleads/v16/services/customer_sk_ad_network_conversion_value_schema_service.proto +++ b/third_party/googleapis/google/ads/googleads/v16/services/customer_sk_ad_network_conversion_value_schema_service.proto @@ -19,7 +19,9 @@ package google.ads.googleads.v16.services; import "google/ads/googleads/v16/resources/customer_sk_ad_network_conversion_value_schema.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Ads.GoogleAds.V16.Services"; option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/services;services"; @@ -74,6 +76,11 @@ message MutateCustomerSkAdNetworkConversionValueSchemaRequest { // If true, the request is validated but not executed. Only errors are // returned, not results. bool validate_only = 3; + + // Optional. If true, enables returning warnings. Warnings return error + // messages and error codes without blocking the execution of the mutate + // operation. + bool enable_warnings = 4 [(google.api.field_behavior) = OPTIONAL]; } // The result for the CustomerSkAdNetworkConversionValueSchema mutate. @@ -91,4 +98,8 @@ message MutateCustomerSkAdNetworkConversionValueSchemaResult { message MutateCustomerSkAdNetworkConversionValueSchemaResponse { // All results for the mutate. MutateCustomerSkAdNetworkConversionValueSchemaResult result = 1; + + // Non blocking errors that provides schema validation failure details. + // Returned only when enable_warnings = true. + google.rpc.Status warning = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/BUILD.bazel b/third_party/googleapis/google/ads/googleads/v17/BUILD.bazel similarity index 73% rename from third_party/googleapis/google/ads/googleads/v14/BUILD.bazel rename to third_party/googleapis/google/ads/googleads/v17/BUILD.bazel index fbb172017..ff78ba468 100644 --- a/third_party/googleapis/google/ads/googleads/v14/BUILD.bazel +++ b/third_party/googleapis/google/ads/googleads/v17/BUILD.bazel @@ -26,11 +26,11 @@ proto_library( name = "googleads_proto", srcs = [], deps = [ - "//google/ads/googleads/v14/common:common_proto", - "//google/ads/googleads/v14/enums:enums_proto", - "//google/ads/googleads/v14/errors:errors_proto", - "//google/ads/googleads/v14/resources:resources_proto", - "//google/ads/googleads/v14/services:services_proto", + "//google/ads/googleads/v17/common:common_proto", + "//google/ads/googleads/v17/enums:enums_proto", + "//google/ads/googleads/v17/errors:errors_proto", + "//google/ads/googleads/v17/resources:resources_proto", + "//google/ads/googleads/v17/services:services_proto", ], ) @@ -58,13 +58,13 @@ java_gapic_library( ], gapic_yaml = "googleads_gapic.yaml", grpc_service_config = ":googleads_grpc_service_config.json", - service_yaml = "googleads_v14.yaml", + service_yaml = "googleads_v17.yaml", deps = [ - "//google/ads/googleads/v14/common:common_java_proto", - "//google/ads/googleads/v14/enums:enums_java_proto", - "//google/ads/googleads/v14/resources:resources_java_proto", - "//google/ads/googleads/v14/services:services_java_grpc", - "//google/ads/googleads/v14/services:services_java_proto", + "//google/ads/googleads/v17/common:common_java_proto", + "//google/ads/googleads/v17/enums:enums_java_proto", + "//google/ads/googleads/v17/resources:resources_java_proto", + "//google/ads/googleads/v17/services:services_java_grpc", + "//google/ads/googleads/v17/services:services_java_proto", ], ) @@ -73,7 +73,7 @@ java_gapic_library( java_gapic_test( name = "googleads_java_gapic_suite", test_classes = [ - "com.google.ads.googleads.v14.services.CampaignServiceClientTest", + "com.google.ads.googleads.v17.services.CampaignServiceClientTest", ], runtime_deps = [":googleads_java_gapic_test"], ) @@ -82,13 +82,13 @@ java_gapic_assembly_gradle_pkg( name = "googleads-java", deps = [ ":googleads_java_gapic", - "//google/ads/googleads/v14:googleads_proto", - "//google/ads/googleads/v14/common:common_java_proto", - "//google/ads/googleads/v14/enums:enums_java_proto", - "//google/ads/googleads/v14/errors:errors_java_proto", - "//google/ads/googleads/v14/resources:resources_java_proto", - "//google/ads/googleads/v14/services:services_java_grpc", - "//google/ads/googleads/v14/services:services_java_proto", + "//google/ads/googleads/v17:googleads_proto", + "//google/ads/googleads/v17/common:common_java_proto", + "//google/ads/googleads/v17/enums:enums_java_proto", + "//google/ads/googleads/v17/errors:errors_java_proto", + "//google/ads/googleads/v17/resources:resources_java_proto", + "//google/ads/googleads/v17/services:services_java_grpc", + "//google/ads/googleads/v17/services:services_java_proto", ], ) @@ -120,7 +120,7 @@ php_gapic_library( srcs = [":googleads_proto"], gapic_yaml = "googleads_gapic.yaml", grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v14.yaml", + service_yaml = "googleads_v17.yaml", generate_snippets = False, migration_mode = "NEW_SURFACE_ONLY", deps = [ @@ -153,9 +153,9 @@ csharp_gapic_library( ":googleads_proto_with_info", ], grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v14.yaml", + service_yaml = "googleads_v17.yaml", deps = [ - "//google/ads/googleads/v14/services:services_csharp_grpc", + "//google/ads/googleads/v17/services:services_csharp_grpc", ], ) @@ -163,12 +163,12 @@ csharp_gapic_assembly_pkg( name = "googleads-csharp", deps = [ ":googleads_csharp_gapic", - "//google/ads/googleads/v14/common:common_csharp_proto", - "//google/ads/googleads/v14/enums:enums_csharp_proto", - "//google/ads/googleads/v14/errors:errors_csharp_proto", - "//google/ads/googleads/v14/resources:resources_csharp_proto", - "//google/ads/googleads/v14/services:services_csharp_grpc", - "//google/ads/googleads/v14/services:services_csharp_proto", + "//google/ads/googleads/v17/common:common_csharp_proto", + "//google/ads/googleads/v17/enums:enums_csharp_proto", + "//google/ads/googleads/v17/errors:errors_csharp_proto", + "//google/ads/googleads/v17/resources:resources_csharp_proto", + "//google/ads/googleads/v17/services:services_csharp_grpc", + "//google/ads/googleads/v17/services:services_csharp_proto", ], ) @@ -190,19 +190,19 @@ ruby_ads_gapic_library( ":overrides.:namespace.Googleads=GoogleAds", ], grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v14.yaml", + service_yaml = "googleads_v17.yaml", ) ruby_gapic_assembly_pkg( name = "googleads-ruby", deps = [ ":googleads_ruby_gapic", - "//google/ads/googleads/v14/common:common_ruby_proto", - "//google/ads/googleads/v14/enums:enums_ruby_proto", - "//google/ads/googleads/v14/errors:errors_ruby_proto", - "//google/ads/googleads/v14/resources:resources_ruby_proto", - "//google/ads/googleads/v14/services:services_ruby_grpc", - "//google/ads/googleads/v14/services:services_ruby_proto", + "//google/ads/googleads/v17/common:common_ruby_proto", + "//google/ads/googleads/v17/enums:enums_ruby_proto", + "//google/ads/googleads/v17/errors:errors_ruby_proto", + "//google/ads/googleads/v17/resources:resources_ruby_proto", + "//google/ads/googleads/v17/services:services_ruby_grpc", + "//google/ads/googleads/v17/services:services_ruby_proto", ], ) @@ -218,7 +218,7 @@ load( py_gapic_library( name = "googleads_py_gapic", srcs = [":googleads_proto_with_info"], - service_yaml = "googleads_v14.yaml", + service_yaml = "googleads_v17.yaml", grpc_service_config = "googleads_grpc_service_config.json", opt_args = [ "old-naming", @@ -252,8 +252,8 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "googleads_grpc_service_config.json", main_service = "GoogleAdsService", - package = "google.ads.googleads.v14", - service_yaml = "googleads_v14.yaml", + package = "google.ads.googleads.v17", + service_yaml = "googleads_v17.yaml", deps = [], ) diff --git a/third_party/googleapis/google/ads/googleads/v14/common/BUILD.bazel b/third_party/googleapis/google/ads/googleads/v17/common/BUILD.bazel similarity index 98% rename from third_party/googleapis/google/ads/googleads/v14/common/BUILD.bazel rename to third_party/googleapis/google/ads/googleads/v17/common/BUILD.bazel index 105dff9e6..85cf4ff6b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/BUILD.bazel +++ b/third_party/googleapis/google/ads/googleads/v17/common/BUILD.bazel @@ -26,7 +26,7 @@ proto_library( name = "common_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v14/enums:enums_proto", + "//google/ads/googleads/v17/enums:enums_proto", "//google/api:annotations_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", diff --git a/third_party/googleapis/google/ads/googleads/v17/common/ad_asset.proto b/third_party/googleapis/google/ads/googleads/v17/common/ad_asset.proto new file mode 100644 index 000000000..48ed4e0a1 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/common/ad_asset.proto @@ -0,0 +1,114 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/common/asset_policy.proto"; +import "google/ads/googleads/v17/enums/asset_performance_label.proto"; +import "google/ads/googleads/v17/enums/served_asset_field_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdAssetProto"; +option java_package = "com.google.ads.googleads.v17.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; + +// Proto file describing assets used inside an ad. + +// A text asset used inside an ad. +message AdTextAsset { + // Asset text. + optional string text = 4; + + // The pinned field of the asset. This restricts the asset to only serve + // within this field. Multiple assets can be pinned to the same field. An + // asset that is unpinned or pinned to a different field will not serve in a + // field where some other asset has been pinned. + google.ads.googleads.v17.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType + pinned_field = 2; + + // The performance label of this text asset. + google.ads.googleads.v17.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel + asset_performance_label = 5; + + // The policy summary of this text asset. + AdAssetPolicySummary policy_summary_info = 6; +} + +// An image asset used inside an ad. +message AdImageAsset { + // The Asset resource name of this image. + optional string asset = 2; +} + +// A video asset used inside an ad. +message AdVideoAsset { + // The Asset resource name of this video. + optional string asset = 2; + + // Contains info fields for this AdVideoAsset. + optional AdVideoAssetInfo ad_video_asset_info = 4; +} + +// Contains info fields for AdVideoAssets. +message AdVideoAssetInfo { + // List of inventory preferences for this AdVideoAsset. This field can only be + // set for DiscoveryVideoResponsiveAd. The video assets with an inventory + // asset preference set will be preferred over other videos from the same ad + // during serving time. For example, consider this ad being served for a + // specific inventory. The server will first try to match an eligible video + // with a matching preference for that inventory. Videos with no preferences + // are chosen only when a video with matching preference and eligible for a + // given ad slot can be found. + optional AdVideoAssetInventoryPreferences + ad_video_asset_inventory_preferences = 1; +} + +// YouTube Video Asset inventory preferences. +message AdVideoAssetInventoryPreferences { + // When true, YouTube Video Asset with this inventory preference will be + // preferred when choosing a video to serve In Feed. + optional bool in_feed_preference = 1; + + // When true, YouTube Video Asset with this inventory preference will be + // preferred when choosing a video to serve In Stream. + optional bool in_stream_preference = 2; + + // When true, YouTube Video Asset with this inventory preference will be + // preferred when choosing a video to serve on YouTube Shorts. + optional bool shorts_preference = 3; +} + +// A media bundle asset used inside an ad. +message AdMediaBundleAsset { + // The Asset resource name of this media bundle. + optional string asset = 2; +} + +// A Demand Gen carousel card asset used inside an ad. +message AdDemandGenCarouselCardAsset { + // The Asset resource name of this discovery carousel card. + optional string asset = 1; +} + +// A call to action asset used inside an ad. +message AdCallToActionAsset { + // The Asset resource name of this call to action asset. + optional string asset = 1; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/common/ad_type_infos.proto b/third_party/googleapis/google/ads/googleads/v17/common/ad_type_infos.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/common/ad_type_infos.proto rename to third_party/googleapis/google/ads/googleads/v17/common/ad_type_infos.proto index 2545db2f3..601e01523 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/ad_type_infos.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/ad_type_infos.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/common/ad_asset.proto"; -import "google/ads/googleads/v14/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v14/enums/display_ad_format_setting.proto"; -import "google/ads/googleads/v14/enums/display_upload_product_type.proto"; -import "google/ads/googleads/v14/enums/legacy_app_install_ad_app_store.proto"; -import "google/ads/googleads/v14/enums/mime_type.proto"; -import "google/ads/googleads/v14/enums/video_thumbnail.proto"; +import "google/ads/googleads/v17/common/ad_asset.proto"; +import "google/ads/googleads/v17/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v17/enums/display_ad_format_setting.proto"; +import "google/ads/googleads/v17/enums/display_upload_product_type.proto"; +import "google/ads/googleads/v17/enums/legacy_app_install_ad_app_store.proto"; +import "google/ads/googleads/v17/enums/mime_type.proto"; +import "google/ads/googleads/v17/enums/video_thumbnail.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "AdTypeInfosProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file containing info messages for specific ad types. @@ -121,7 +121,7 @@ message ImageAdInfo { optional string preview_image_url = 20; // The mime type of the image. - google.ads.googleads.v14.enums.MimeTypeEnum.MimeType mime_type = 10; + google.ads.googleads.v17.enums.MimeTypeEnum.MimeType mime_type = 10; // The name of the image. If the image was created from a MediaFile, this is // the MediaFile's name. If the image was created from bytes, this is empty. @@ -132,8 +132,8 @@ message ImageAdInfo { // 1. An existing MediaFile resource. // 2. The raw image data as bytes. oneof image { - // The MediaFile resource to use for the image. - string media_file = 12; + // The image assets used for the ad. + AdImageAsset image_asset = 22; // Raw image data as bytes. bytes data = 13; @@ -212,7 +212,7 @@ message InFeedVideoAdInfo { string description2 = 3; // Video thumbnail image to use. - google.ads.googleads.v14.enums.VideoThumbnailEnum.VideoThumbnail thumbnail = + google.ads.googleads.v17.enums.VideoThumbnailEnum.VideoThumbnail thumbnail = 4; } @@ -242,9 +242,8 @@ message VideoAdInfo { // A video responsive ad. message VideoResponsiveAdInfo { - // List of text assets used for the short headline, for example, the "Call To - // Action" banner. Currently, only a single value for the short headline is - // supported. + // List of text assets used for the short headline. Currently, only a single + // value for the short headline is supported. repeated AdTextAsset headlines = 1; // List of text assets used for the long headline. @@ -350,7 +349,7 @@ message LegacyResponsiveDisplayAdInfo { optional string square_marketing_image = 27; // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v14.enums.DisplayAdFormatSettingEnum + google.ads.googleads.v17.enums.DisplayAdFormatSettingEnum .DisplayAdFormatSetting format_setting = 13; // Prefix before price. For example, 'as low as'. @@ -431,7 +430,7 @@ message LegacyAppInstallAdInfo { optional string app_id = 6; // The app store the mobile app is available in. - google.ads.googleads.v14.enums.LegacyAppInstallAdAppStoreEnum + google.ads.googleads.v17.enums.LegacyAppInstallAdAppStoreEnum .LegacyAppInstallAdAppStore app_store = 2; // The headline of the ad. @@ -513,7 +512,7 @@ message ResponsiveDisplayAdInfo { optional string promo_text = 23; // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v14.enums.DisplayAdFormatSettingEnum + google.ads.googleads.v17.enums.DisplayAdFormatSettingEnum .DisplayAdFormatSetting format_setting = 16; // Specification for various creative controls. @@ -564,7 +563,7 @@ message LocalAdInfo { // need to be included with the ad. message DisplayUploadAdInfo { // The product type of this ad. See comments on the enum for details. - google.ads.googleads.v14.enums.DisplayUploadProductTypeEnum + google.ads.googleads.v17.enums.DisplayUploadProductTypeEnum .DisplayUploadProductType display_upload_product_type = 1; // The asset data that makes up the ad. @@ -643,7 +642,7 @@ message CallAdInfo { // The call conversion behavior of this call ad. It can use its own call // conversion setting, inherit the account level setting, or be disabled. - google.ads.googleads.v14.enums.CallConversionReportingStateEnum + google.ads.googleads.v17.enums.CallConversionReportingStateEnum .CallConversionReportingState conversion_reporting_state = 10; // First part of text that can be appended to the URL in the ad. Optional. @@ -654,8 +653,8 @@ message CallAdInfo { string path2 = 14; } -// A discovery multi asset ad. -message DiscoveryMultiAssetAdInfo { +// A Demand Gen multi asset ad. +message DemandGenMultiAssetAdInfo { // Marketing image assets to be used in the ad. Valid image types are GIF, // JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must // be 1.91:1 (+-1%). Required if square_marketing_images is @@ -677,7 +676,7 @@ message DiscoveryMultiAssetAdInfo { // Logo image assets to be used in the ad. Valid image types are GIF, // JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be - // 1:1(+-1%). At least 1 and max 5 logo images can be specified. + // 1:1 (+-1%). At least 1 and max 5 logo images can be specified. repeated AdImageAsset logo_images = 4; // Headline text asset of the ad. Maximum display width is 30. At least 1 and @@ -698,13 +697,13 @@ message DiscoveryMultiAssetAdInfo { optional bool lead_form_only = 9; } -// A discovery carousel ad. -message DiscoveryCarouselAdInfo { +// A Demand Gen carousel ad. +message DemandGenCarouselAdInfo { // Required. The Advertiser/brand name. string business_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Logo image to be used in the ad. The minimum size is 128x128 and - // the aspect ratio must be 1:1(+-1%). + // the aspect ratio must be 1:1 (+-1%). AdImageAsset logo_image = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Headline of the ad. @@ -717,14 +716,13 @@ message DiscoveryCarouselAdInfo { string call_to_action_text = 5; // Required. Carousel cards that will display with the ad. Min 2 max 10. - repeated AdDiscoveryCarouselCardAsset carousel_cards = 6 + repeated AdDemandGenCarouselCardAsset carousel_cards = 6 [(google.api.field_behavior) = REQUIRED]; } -// A discovery video responsive ad. -message DiscoveryVideoResponsiveAdInfo { - // List of text assets used for the short headline, for example, the "Call To - // Action" banner. +// A Demand Gen video responsive ad. +message DemandGenVideoResponsiveAdInfo { + // List of text assets used for the short headline. repeated AdTextAsset headlines = 1; // List of text assets used for the long headline. @@ -737,7 +735,7 @@ message DiscoveryVideoResponsiveAdInfo { repeated AdVideoAsset videos = 4; // Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. - // The minimum size is 128x128 and the aspect ratio must be 1:1(+-1%). + // The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). repeated AdImageAsset logo_images = 5; // First part of text that appears in the ad with the displayed URL. @@ -752,3 +750,29 @@ message DiscoveryVideoResponsiveAdInfo { // Assets of type CallToActionAsset used for the "Call To Action" button. repeated AdCallToActionAsset call_to_actions = 9; } + +// A Demand Gen product ad. +message DemandGenProductAdInfo { + // Required. Text asset used for the short headline. + optional AdTextAsset headline = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Text asset used for the description. + optional AdTextAsset description = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Logo image to be used in the ad. Valid image types are GIF, JPEG, + // and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 + // (+-1%). + optional AdImageAsset logo_image = 3 [(google.api.field_behavior) = REQUIRED]; + + // First part of text that appears in the ad with the displayed URL. + string breadcrumb1 = 4; + + // Second part of text that appears in the ad with the displayed URL. + string breadcrumb2 = 5; + + // Required. The advertiser/brand name. + AdTextAsset business_name = 6 [(google.api.field_behavior) = REQUIRED]; + + // Asset of type CallToActionAsset used for the "Call To Action" button. + optional AdCallToActionAsset call_to_action = 7; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/common/asset_policy.proto b/third_party/googleapis/google/ads/googleads/v17/common/asset_policy.proto similarity index 70% rename from third_party/googleapis/google/ads/googleads/v14/common/asset_policy.proto rename to third_party/googleapis/google/ads/googleads/v17/common/asset_policy.proto index 8c36ab233..573165a27 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/asset_policy.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/asset_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/asset_offline_evaluation_error_reasons.proto"; -import "google/ads/googleads/v14/enums/policy_approval_status.proto"; -import "google/ads/googleads/v14/enums/policy_review_status.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/asset_offline_evaluation_error_reasons.proto"; +import "google/ads/googleads/v17/enums/policy_approval_status.proto"; +import "google/ads/googleads/v17/enums/policy_review_status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetPolicyProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing asset policies. @@ -40,12 +40,12 @@ message AdAssetPolicySummary { repeated PolicyTopicEntry policy_topic_entries = 1; // Where in the review process this asset. - google.ads.googleads.v14.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v17.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2; // The overall approval status of this asset, which is calculated based on // the status of its individual policy topic entries. - google.ads.googleads.v14.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v17.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; } @@ -58,11 +58,11 @@ message AdAssetPolicySummary { // evaluation errors which led to the asset being disapproved. message AssetLinkPrimaryStatusDetails { // Provides the reason of this PrimaryStatus. - optional google.ads.googleads.v14.enums.AssetLinkPrimaryStatusReasonEnum + optional google.ads.googleads.v17.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason reason = 1; // Provides the PrimaryStatus of this status detail. - optional google.ads.googleads.v14.enums.AssetLinkPrimaryStatusEnum + optional google.ads.googleads.v17.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus status = 2; // Provides the details associated with the asset link primary status. @@ -75,6 +75,6 @@ message AssetLinkPrimaryStatusDetails { // Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED message AssetDisapproved { // Provides the quality evaluation disapproval reason of an asset. - repeated google.ads.googleads.v14.enums.AssetOfflineEvaluationErrorReasonsEnum + repeated google.ads.googleads.v17.enums.AssetOfflineEvaluationErrorReasonsEnum .AssetOfflineEvaluationErrorReasons offline_evaluation_error_reasons = 1; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/asset_set_types.proto b/third_party/googleapis/google/ads/googleads/v17/common/asset_set_types.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/common/asset_set_types.proto rename to third_party/googleapis/google/ads/googleads/v17/common/asset_set_types.proto index 7cfcf0bb1..3dbdecfcf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/asset_set_types.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/asset_set_types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/chain_relationship_type.proto"; -import "google/ads/googleads/v14/enums/location_ownership_type.proto"; -import "google/ads/googleads/v14/enums/location_string_filter_type.proto"; +import "google/ads/googleads/v17/enums/chain_relationship_type.proto"; +import "google/ads/googleads/v17/enums/location_ownership_type.proto"; +import "google/ads/googleads/v17/enums/location_string_filter_type.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetSetTypesProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file containing info messages for specific asset set types. @@ -38,7 +38,7 @@ option ruby_package = "Google::Ads::GoogleAds::V14::Common"; message LocationSet { // Required. Immutable. Location Ownership Type (owned location or affiliate // location). - google.ads.googleads.v14.enums.LocationOwnershipTypeEnum.LocationOwnershipType + google.ads.googleads.v17.enums.LocationOwnershipTypeEnum.LocationOwnershipType location_ownership_type = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE @@ -106,7 +106,7 @@ message BusinessProfileLocationSet { message ChainSet { // Required. Immutable. Relationship type the specified chains have with this // advertiser. - google.ads.googleads.v14.enums.ChainRelationshipTypeEnum.ChainRelationshipType + google.ads.googleads.v17.enums.ChainRelationshipTypeEnum.ChainRelationshipType relationship_type = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE @@ -173,7 +173,7 @@ message BusinessProfileBusinessNameFilter { string business_name = 1; // The type of string matching to use when filtering with business_name. - google.ads.googleads.v14.enums.LocationStringFilterTypeEnum + google.ads.googleads.v17.enums.LocationStringFilterTypeEnum .LocationStringFilterType filter_type = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/asset_types.proto b/third_party/googleapis/google/ads/googleads/v17/common/asset_types.proto similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/common/asset_types.proto rename to third_party/googleapis/google/ads/googleads/v17/common/asset_types.proto index 442de2ba0..5a69aefc1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/asset_types.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/asset_types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,35 +14,35 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; - -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/feed_common.proto"; -import "google/ads/googleads/v14/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v14/enums/call_to_action_type.proto"; -import "google/ads/googleads/v14/enums/lead_form_call_to_action_type.proto"; -import "google/ads/googleads/v14/enums/lead_form_desired_intent.proto"; -import "google/ads/googleads/v14/enums/lead_form_field_user_input_type.proto"; -import "google/ads/googleads/v14/enums/lead_form_post_submit_call_to_action_type.proto"; -import "google/ads/googleads/v14/enums/location_ownership_type.proto"; -import "google/ads/googleads/v14/enums/mime_type.proto"; -import "google/ads/googleads/v14/enums/mobile_app_vendor.proto"; -import "google/ads/googleads/v14/enums/price_extension_price_qualifier.proto"; -import "google/ads/googleads/v14/enums/price_extension_price_unit.proto"; -import "google/ads/googleads/v14/enums/price_extension_type.proto"; -import "google/ads/googleads/v14/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v14/enums/promotion_extension_occasion.proto"; +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/feed_common.proto"; +import "google/ads/googleads/v17/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v17/enums/call_to_action_type.proto"; +import "google/ads/googleads/v17/enums/lead_form_call_to_action_type.proto"; +import "google/ads/googleads/v17/enums/lead_form_desired_intent.proto"; +import "google/ads/googleads/v17/enums/lead_form_field_user_input_type.proto"; +import "google/ads/googleads/v17/enums/lead_form_post_submit_call_to_action_type.proto"; +import "google/ads/googleads/v17/enums/location_ownership_type.proto"; +import "google/ads/googleads/v17/enums/mime_type.proto"; +import "google/ads/googleads/v17/enums/mobile_app_vendor.proto"; +import "google/ads/googleads/v17/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v17/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v17/enums/price_extension_type.proto"; +import "google/ads/googleads/v17/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v17/enums/promotion_extension_occasion.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetTypesProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file containing info messages for specific asset types. @@ -74,7 +74,7 @@ message ImageAsset { optional int64 file_size = 6; // MIME type of the image asset. - google.ads.googleads.v14.enums.MimeTypeEnum.MimeType mime_type = 3; + google.ads.googleads.v17.enums.MimeTypeEnum.MimeType mime_type = 3; // Metadata for this image at its original size. ImageDimension full_size = 4; @@ -104,7 +104,7 @@ message LeadFormAsset { string business_name = 10 [(google.api.field_behavior) = REQUIRED]; // Required. Pre-defined display text that encourages user to expand the form. - google.ads.googleads.v14.enums.LeadFormCallToActionTypeEnum + google.ads.googleads.v17.enums.LeadFormCallToActionTypeEnum .LeadFormCallToActionType call_to_action_type = 17 [(google.api.field_behavior) = REQUIRED]; @@ -147,16 +147,16 @@ message LeadFormAsset { // Pre-defined display text that encourages user action after the form is // submitted. - google.ads.googleads.v14.enums.LeadFormPostSubmitCallToActionTypeEnum + google.ads.googleads.v17.enums.LeadFormPostSubmitCallToActionTypeEnum .LeadFormPostSubmitCallToActionType post_submit_call_to_action_type = 19; - // Asset resource name of the background image. The minimum size is 600x314 - // and the aspect ratio must be 1.91:1 (+-1%). + // Asset resource name of the background image. + // The image dimensions must be exactly 1200x628. optional string background_image_asset = 20; // Chosen intent for the lead form, for example, more volume or more // qualified. - google.ads.googleads.v14.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent + google.ads.googleads.v17.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent desired_intent = 21; // Custom disclosure shown along with Google disclaimer on the lead form. @@ -168,7 +168,7 @@ message LeadFormAsset { message LeadFormField { // Describes the input type, which may be a predefined type such as "full // name" or a pre-vetted question like "What kind of vehicle do you have?". - google.ads.googleads.v14.enums.LeadFormFieldUserInputTypeEnum + google.ads.googleads.v17.enums.LeadFormFieldUserInputTypeEnum .LeadFormFieldUserInputType input_type = 1; // Defines answer configuration that this form field accepts. If oneof is not @@ -254,7 +254,7 @@ message PromotionAsset { string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; // A modifier for qualification of the discount. - google.ads.googleads.v14.enums.PromotionExtensionDiscountModifierEnum + google.ads.googleads.v17.enums.PromotionExtensionDiscountModifierEnum .PromotionExtensionDiscountModifier discount_modifier = 2; // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd @@ -268,7 +268,7 @@ message PromotionAsset { // The occasion the promotion was intended for. // If an occasion is set, the redemption window will need to fall within the // date range associated with the occasion. - google.ads.googleads.v14.enums.PromotionExtensionOccasionEnum + google.ads.googleads.v17.enums.PromotionExtensionOccasionEnum .PromotionExtensionOccasion occasion = 9; // The language of the promotion. @@ -447,7 +447,7 @@ message MobileAppAsset { string app_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The application store that distributes this specific app. - google.ads.googleads.v14.enums.MobileAppVendorEnum.MobileAppVendor app_store = + google.ads.googleads.v17.enums.MobileAppVendorEnum.MobileAppVendor app_store = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The visible text displayed when the link is rendered in an ad. @@ -486,7 +486,7 @@ message CallAsset { // Indicates whether this CallAsset should use its own call conversion // setting, follow the account level setting, or disable call conversion. - google.ads.googleads.v14.enums.CallConversionReportingStateEnum + google.ads.googleads.v17.enums.CallConversionReportingStateEnum .CallConversionReportingState call_conversion_reporting_state = 3; // The conversion action to attribute a call conversion to. If not set, the @@ -506,11 +506,11 @@ message CallAsset { // An asset representing a list of price offers. message PriceAsset { // Required. The type of the price asset. - google.ads.googleads.v14.enums.PriceExtensionTypeEnum.PriceExtensionType + google.ads.googleads.v17.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1 [(google.api.field_behavior) = REQUIRED]; // The price qualifier of the price asset. - google.ads.googleads.v14.enums.PriceExtensionPriceQualifierEnum + google.ads.googleads.v17.enums.PriceExtensionPriceQualifierEnum .PriceExtensionPriceQualifier price_qualifier = 2; // Required. The language of the price asset. @@ -536,7 +536,7 @@ message PriceOffering { Money price = 3 [(google.api.field_behavior) = REQUIRED]; // The price unit of the price offering. - google.ads.googleads.v14.enums.PriceExtensionPriceUnitEnum + google.ads.googleads.v17.enums.PriceExtensionPriceUnitEnum .PriceExtensionPriceUnit unit = 4; // Required. The final URL after all cross domain redirects. @@ -549,7 +549,7 @@ message PriceOffering { // A call to action asset. message CallToActionAsset { // Call to action. - google.ads.googleads.v14.enums.CallToActionTypeEnum.CallToActionType + google.ads.googleads.v17.enums.CallToActionTypeEnum.CallToActionType call_to_action = 1; } @@ -810,8 +810,8 @@ message DynamicFlightsAsset { string custom_mapping = 15; } -// A Discovery Carousel Card asset. -message DiscoveryCarouselCardAsset { +// A Demand Gen Carousel Card asset. +message DemandGenCarouselCardAsset { // Asset resource name of the associated 1.91:1 marketing image. This and/or // square marketing image asset is required. string marketing_image_asset = 1; @@ -1035,7 +1035,7 @@ message LocationAsset { // The type of location ownership. // If the type is BUSINESS_OWNER, it will be served as a location extension. // If the type is AFFILIATE, it will be served as an affiliate location. - google.ads.googleads.v14.enums.LocationOwnershipTypeEnum.LocationOwnershipType + google.ads.googleads.v17.enums.LocationOwnershipTypeEnum.LocationOwnershipType location_ownership_type = 3; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/asset_usage.proto b/third_party/googleapis/google/ads/googleads/v17/common/asset_usage.proto similarity index 68% rename from third_party/googleapis/google/ads/googleads/v14/common/asset_usage.proto rename to third_party/googleapis/google/ads/googleads/v17/common/asset_usage.proto index 125b959b7..24dd13191 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/asset_usage.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/asset_usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/served_asset_field_type.proto"; +import "google/ads/googleads/v17/enums/served_asset_field_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetUsageProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing asset usage. @@ -35,6 +35,6 @@ message AssetUsage { string asset = 1; // The served field type of the asset. - google.ads.googleads.v14.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType + google.ads.googleads.v17.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType served_asset_field_type = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/audiences.proto b/third_party/googleapis/google/ads/googleads/v17/common/audiences.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/common/audiences.proto rename to third_party/googleapis/google/ads/googleads/v17/common/audiences.proto index 2b315299c..e386050e3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/audiences.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/audiences.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/gender_type.proto"; -import "google/ads/googleads/v14/enums/income_range_type.proto"; -import "google/ads/googleads/v14/enums/parental_status_type.proto"; +import "google/ads/googleads/v17/enums/gender_type.proto"; +import "google/ads/googleads/v17/enums/income_range_type.proto"; +import "google/ads/googleads/v17/enums/parental_status_type.proto"; +import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "AudiencesProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Positive dimension specifying user's audience. message AudienceDimension { @@ -90,7 +91,7 @@ message AgeSegment { // Dimension specifying users by their gender. message GenderDimension { // Included gender demographic segments. - repeated google.ads.googleads.v14.enums.GenderTypeEnum.GenderType genders = 1; + repeated google.ads.googleads.v17.enums.GenderTypeEnum.GenderType genders = 1; // Include users whose gender is not determined. optional bool include_undetermined = 2; @@ -99,7 +100,7 @@ message GenderDimension { // Dimension specifying users by their household income. message HouseholdIncomeDimension { // Included household income demographic segments. - repeated google.ads.googleads.v14.enums.IncomeRangeTypeEnum.IncomeRangeType + repeated google.ads.googleads.v17.enums.IncomeRangeTypeEnum.IncomeRangeType income_ranges = 1; // Include users whose household income is not determined. @@ -110,7 +111,7 @@ message HouseholdIncomeDimension { message ParentalStatusDimension { // Included parental status demographic segments. repeated - google.ads.googleads.v14.enums.ParentalStatusTypeEnum.ParentalStatusType + google.ads.googleads.v17.enums.ParentalStatusTypeEnum.ParentalStatusType parental_statuses = 1; // Include users whose parental status is undetermined. @@ -146,9 +147,6 @@ message AudienceSegment { } // User list segment. -// The Similar Audiences sunset starts May 2023. Refer to -// https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html -// for other options. message UserListSegment { // The user list resource. optional string user_list = 1; @@ -163,13 +161,17 @@ message UserInterestSegment { // Live event segment. message LifeEventSegment { // The life event resource. - optional string life_event = 1; + optional string life_event = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/LifeEvent" + }]; } // Detailed demographic segment. message DetailedDemographicSegment { // The detailed demographic resource. - optional string detailed_demographic = 1; + optional string detailed_demographic = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailedDemographic" + }]; } // Custom audience segment. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/bidding.proto b/third_party/googleapis/google/ads/googleads/v17/common/bidding.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/common/bidding.proto rename to third_party/googleapis/google/ads/googleads/v17/common/bidding.proto index e1d4d5d7e..a2b3d8410 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/bidding.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/bidding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/target_frequency_time_unit.proto"; -import "google/ads/googleads/v14/enums/target_impression_share_location.proto"; +import "google/ads/googleads/v17/enums/target_frequency_time_unit.proto"; +import "google/ads/googleads/v17/enums/target_impression_share_location.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "BiddingProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing bidding schemes. @@ -144,7 +144,7 @@ message TargetCpmTargetFrequencyGoal { // Time window expressing the period over which you want to reach // the specified target_count. - google.ads.googleads.v14.enums.TargetFrequencyTimeUnitEnum + google.ads.googleads.v17.enums.TargetFrequencyTimeUnitEnum .TargetFrequencyTimeUnit time_unit = 2; } @@ -153,7 +153,7 @@ message TargetCpmTargetFrequencyGoal { // location). message TargetImpressionShare { // The targeted location on the search results page. - google.ads.googleads.v14.enums.TargetImpressionShareLocationEnum + google.ads.googleads.v17.enums.TargetImpressionShareLocationEnum .TargetImpressionShareLocation location = 1; // The chosen fraction of ads to be shown in the targeted location in micros. @@ -187,7 +187,7 @@ message TargetRoas { // An automated bid strategy that sets your bids to help get as many clicks // as possible within your budget. message TargetSpend { - // The spend target under which to maximize clicks. + // Deprecated: The spend target under which to maximize clicks. // A TargetSpend bidder will attempt to spend the smaller of this value // or the natural throttling spend amount. // If not specified, the budget is used as the spend target. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/click_location.proto b/third_party/googleapis/google/ads/googleads/v17/common/click_location.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/common/click_location.proto rename to third_party/googleapis/google/ads/googleads/v17/common/click_location.proto index a3f1c493d..a6f8e7fc1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/click_location.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/click_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "ClickLocationProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing a ClickLocation. diff --git a/third_party/googleapis/google/ads/googleads/v17/common/consent.proto b/third_party/googleapis/google/ads/googleads/v17/common/consent.proto new file mode 100644 index 000000000..a3d0efe2f --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/common/consent.proto @@ -0,0 +1,42 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/enums/consent_status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; +option java_multiple_files = true; +option java_outer_classname = "ConsentProto"; +option java_package = "com.google.ads.googleads.v17.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; + +// Proto file describing common consent proto messages. + +// Consent +message Consent { + // This represents consent for ad user data. + google.ads.googleads.v17.enums.ConsentStatusEnum.ConsentStatus ad_user_data = + 1; + + // This represents consent for ad personalization. + // This can only be set for OfflineUserDataJobService and UserDataService. + google.ads.googleads.v17.enums.ConsentStatusEnum.ConsentStatus + ad_personalization = 2; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/common/criteria.proto b/third_party/googleapis/google/ads/googleads/v17/common/criteria.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/common/criteria.proto rename to third_party/googleapis/google/ads/googleads/v17/common/criteria.proto index 11a446536..14fc9cf6a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/criteria.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/criteria.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,40 +14,44 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; - -import "google/ads/googleads/v14/enums/age_range_type.proto"; -import "google/ads/googleads/v14/enums/app_payment_model_type.proto"; -import "google/ads/googleads/v14/enums/content_label_type.proto"; -import "google/ads/googleads/v14/enums/day_of_week.proto"; -import "google/ads/googleads/v14/enums/device.proto"; -import "google/ads/googleads/v14/enums/gender_type.proto"; -import "google/ads/googleads/v14/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v14/enums/income_range_type.proto"; -import "google/ads/googleads/v14/enums/interaction_type.proto"; -import "google/ads/googleads/v14/enums/keyword_match_type.proto"; -import "google/ads/googleads/v14/enums/listing_group_type.proto"; -import "google/ads/googleads/v14/enums/location_group_radius_units.proto"; -import "google/ads/googleads/v14/enums/minute_of_hour.proto"; -import "google/ads/googleads/v14/enums/parental_status_type.proto"; -import "google/ads/googleads/v14/enums/product_bidding_category_level.proto"; -import "google/ads/googleads/v14/enums/product_channel.proto"; -import "google/ads/googleads/v14/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v14/enums/product_condition.proto"; -import "google/ads/googleads/v14/enums/product_custom_attribute_index.proto"; -import "google/ads/googleads/v14/enums/product_type_level.proto"; -import "google/ads/googleads/v14/enums/proximity_radius_units.proto"; -import "google/ads/googleads/v14/enums/webpage_condition_operand.proto"; -import "google/ads/googleads/v14/enums/webpage_condition_operator.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/enums/age_range_type.proto"; +import "google/ads/googleads/v17/enums/app_payment_model_type.proto"; +import "google/ads/googleads/v17/enums/brand_request_rejection_reason.proto"; +import "google/ads/googleads/v17/enums/brand_state.proto"; +import "google/ads/googleads/v17/enums/content_label_type.proto"; +import "google/ads/googleads/v17/enums/day_of_week.proto"; +import "google/ads/googleads/v17/enums/device.proto"; +import "google/ads/googleads/v17/enums/gender_type.proto"; +import "google/ads/googleads/v17/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v17/enums/income_range_type.proto"; +import "google/ads/googleads/v17/enums/interaction_type.proto"; +import "google/ads/googleads/v17/enums/keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/listing_group_type.proto"; +import "google/ads/googleads/v17/enums/location_group_radius_units.proto"; +import "google/ads/googleads/v17/enums/minute_of_hour.proto"; +import "google/ads/googleads/v17/enums/parental_status_type.proto"; +import "google/ads/googleads/v17/enums/product_category_level.proto"; +import "google/ads/googleads/v17/enums/product_channel.proto"; +import "google/ads/googleads/v17/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v17/enums/product_condition.proto"; +import "google/ads/googleads/v17/enums/product_custom_attribute_index.proto"; +import "google/ads/googleads/v17/enums/product_type_level.proto"; +import "google/ads/googleads/v17/enums/proximity_radius_units.proto"; +import "google/ads/googleads/v17/enums/webpage_condition_operand.proto"; +import "google/ads/googleads/v17/enums/webpage_condition_operator.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "CriteriaProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing criteria types. @@ -57,7 +61,7 @@ message KeywordInfo { optional string text = 3; // The match type of the keyword. - google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v17.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; } @@ -81,7 +85,10 @@ message NegativeKeywordListInfo { // A mobile app category criterion. message MobileAppCategoryInfo { // The mobile app category constant resource name. - optional string mobile_app_category_constant = 2; + optional string mobile_app_category_constant = 2 + [(google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileAppCategoryConstant" + }]; } // A mobile application criterion. @@ -116,13 +123,13 @@ message LocationInfo { // A device criterion. message DeviceInfo { // Type of the device. - google.ads.googleads.v14.enums.DeviceEnum.Device type = 1; + google.ads.googleads.v17.enums.DeviceEnum.Device type = 1; } // A listing group criterion. message ListingGroupInfo { // Type of the listing group. - google.ads.googleads.v14.enums.ListingGroupTypeEnum.ListingGroupType type = 1; + google.ads.googleads.v17.enums.ListingGroupTypeEnum.ListingGroupType type = 1; // Dimension value with which this listing group is refining its parent. // Undefined for the root group. @@ -168,8 +175,8 @@ message ListingDimensionInfo { // City the hotel is located in. HotelCityInfo hotel_city = 6; - // Bidding category of a product offer. - ProductBiddingCategoryInfo product_bidding_category = 13; + // Category of a product offer. + ProductCategoryInfo product_category = 24; // Brand of a product offer. ProductBrandInfo product_brand = 15; @@ -214,9 +221,15 @@ message ListingDimensionInfo { // Rating of the activity as a number 1 to 5, where 5 is the best. ActivityRatingInfo activity_rating = 22; - // Country the activity is in. + // The country where the travel activity is available. ActivityCountryInfo activity_country = 23; + // The state where the travel activity is available. + ActivityStateInfo activity_state = 25; + + // The city where the travel activity is available. + ActivityCityInfo activity_city = 26; + // Unknown dimension. Set when no other listing dimension is set. UnknownListingDimensionInfo unknown_listing_dimension = 14; } @@ -252,17 +265,17 @@ message HotelCityInfo { optional string city_criterion = 2; } -// Bidding category of a product offer. -message ProductBiddingCategoryInfo { - // ID of the product bidding category. +// Category of a product offer. +message ProductCategoryInfo { + // ID of the product category. // // This ID is equivalent to the google_product_category ID as described in // this article: https://support.google.com/merchants/answer/6324436 - optional int64 id = 4; + optional int64 category_id = 1; - // Level of the product bidding category. - google.ads.googleads.v14.enums.ProductBiddingCategoryLevelEnum - .ProductBiddingCategoryLevel level = 3; + // Level of the product category. + google.ads.googleads.v17.enums.ProductCategoryLevelEnum.ProductCategoryLevel + level = 2; } // Brand of the product. @@ -274,20 +287,20 @@ message ProductBrandInfo { // Locality of a product offer. message ProductChannelInfo { // Value of the locality. - google.ads.googleads.v14.enums.ProductChannelEnum.ProductChannel channel = 1; + google.ads.googleads.v17.enums.ProductChannelEnum.ProductChannel channel = 1; } // Availability of a product offer. message ProductChannelExclusivityInfo { // Value of the availability. - google.ads.googleads.v14.enums.ProductChannelExclusivityEnum + google.ads.googleads.v17.enums.ProductChannelExclusivityEnum .ProductChannelExclusivity channel_exclusivity = 1; } // Condition of a product offer. message ProductConditionInfo { // Value of the condition. - google.ads.googleads.v14.enums.ProductConditionEnum.ProductCondition + google.ads.googleads.v17.enums.ProductConditionEnum.ProductCondition condition = 1; } @@ -297,7 +310,7 @@ message ProductCustomAttributeInfo { optional string value = 3; // Indicates the index of the custom attribute. - google.ads.googleads.v14.enums.ProductCustomAttributeIndexEnum + google.ads.googleads.v17.enums.ProductCustomAttributeIndexEnum .ProductCustomAttributeIndex index = 2; } @@ -313,7 +326,7 @@ message ProductTypeInfo { optional string value = 3; // Level of the type. - google.ads.googleads.v14.enums.ProductTypeLevelEnum.ProductTypeLevel level = + google.ads.googleads.v17.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2; } @@ -351,7 +364,7 @@ message UnknownListingDimensionInfo {} // Criterion for hotel date selection (default dates versus user selected). message HotelDateSelectionTypeInfo { // Type of the hotel date selection - google.ads.googleads.v14.enums.HotelDateSelectionTypeEnum + google.ads.googleads.v17.enums.HotelDateSelectionTypeEnum .HotelDateSelectionType type = 1; } @@ -385,7 +398,7 @@ message HotelCheckInDateRangeInfo { // Criterion for day of the week the booking is for. message HotelCheckInDayInfo { // The day of the week. - google.ads.googleads.v14.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; + google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; } // Advertiser-specific activity ID. @@ -400,17 +413,31 @@ message ActivityRatingInfo { optional int64 value = 1; } -// Country the activity is in. +// The country where the travel activity is available. message ActivityCountryInfo { // String value of the activity country. The Geo Target Constant resource // name. optional string value = 1; } +// The state where the travel activity is available. +message ActivityStateInfo { + // String value of the activity state. The Geo Target Constant resource + // name. + optional string value = 1; +} + +// The city where the travel activity is available. +message ActivityCityInfo { + // String value of the activity city. The Geo Target Constant resource + // name. + optional string value = 1; +} + // Criterion for Interaction Type. message InteractionTypeInfo { // The interaction type. - google.ads.googleads.v14.enums.InteractionTypeEnum.InteractionType type = 1; + google.ads.googleads.v17.enums.InteractionTypeEnum.InteractionType type = 1; } // Represents an AdSchedule criterion. @@ -424,14 +451,14 @@ message AdScheduleInfo { // // This field is required for CREATE operations and is prohibited on UPDATE // operations. - google.ads.googleads.v14.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1; + google.ads.googleads.v17.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1; // Minutes after the end hour at which this schedule ends. The schedule is // exclusive of the end minute. // // This field is required for CREATE operations and is prohibited on UPDATE // operations. - google.ads.googleads.v14.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; + google.ads.googleads.v17.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; // Starting hour in 24 hour time. // This field must be between 0 and 23, inclusive. @@ -451,31 +478,31 @@ message AdScheduleInfo { // // This field is required for CREATE operations and is prohibited on UPDATE // operations. - google.ads.googleads.v14.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; + google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; } // An age range criterion. message AgeRangeInfo { // Type of the age range. - google.ads.googleads.v14.enums.AgeRangeTypeEnum.AgeRangeType type = 1; + google.ads.googleads.v17.enums.AgeRangeTypeEnum.AgeRangeType type = 1; } // A gender criterion. message GenderInfo { // Type of the gender. - google.ads.googleads.v14.enums.GenderTypeEnum.GenderType type = 1; + google.ads.googleads.v17.enums.GenderTypeEnum.GenderType type = 1; } // An income range criterion. message IncomeRangeInfo { // Type of the income range. - google.ads.googleads.v14.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; + google.ads.googleads.v17.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; } // A parental status criterion. message ParentalStatusInfo { // Type of the parental status. - google.ads.googleads.v14.enums.ParentalStatusTypeEnum.ParentalStatusType + google.ads.googleads.v17.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1; } @@ -514,7 +541,7 @@ message ProximityInfo { optional double radius = 5; // The unit of measurement of the radius. Default is KILOMETERS. - google.ads.googleads.v14.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits + google.ads.googleads.v17.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3; // Full address. @@ -561,7 +588,9 @@ message AddressInfo { // (for example, "Pets & Animals/Pets/Dogs"). message TopicInfo { // The Topic Constant resource name. - optional string topic_constant = 3; + optional string topic_constant = 3 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/TopicConstant" + }]; // The category to target or exclude. Each subsequent element in the array // describes a more specific sub-category. For example, @@ -589,13 +618,15 @@ message IpBlockInfo { // Content Label for category exclusion. message ContentLabelInfo { // Content label type, required for CREATE operations. - google.ads.googleads.v14.enums.ContentLabelTypeEnum.ContentLabelType type = 1; + google.ads.googleads.v17.enums.ContentLabelTypeEnum.ContentLabelType type = 1; } // Represents a Carrier Criterion. message CarrierInfo { // The Carrier constant resource name. - optional string carrier_constant = 2; + optional string carrier_constant = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CarrierConstant" + }]; } // Represents a particular interest-based topic to be targeted. @@ -637,11 +668,11 @@ message WebpageInfo { // Logical expression for targeting webpages of an advertiser's website. message WebpageConditionInfo { // Operand of webpage targeting condition. - google.ads.googleads.v14.enums.WebpageConditionOperandEnum + google.ads.googleads.v17.enums.WebpageConditionOperandEnum .WebpageConditionOperand operand = 1; // Operator of webpage targeting condition. - google.ads.googleads.v14.enums.WebpageConditionOperatorEnum + google.ads.googleads.v17.enums.WebpageConditionOperatorEnum .WebpageConditionOperator operator = 2; @@ -658,20 +689,26 @@ message WebpageSampleInfo { // Represents an operating system version to be targeted. message OperatingSystemVersionInfo { // The operating system version constant resource name. - optional string operating_system_version_constant = 2; + optional string operating_system_version_constant = 2 + [(google.api.resource_reference) = { + type: "googleads.googleapis.com/OperatingSystemVersionConstant" + }]; } // An app payment model criterion. message AppPaymentModelInfo { // Type of the app payment model. - google.ads.googleads.v14.enums.AppPaymentModelTypeEnum.AppPaymentModelType + google.ads.googleads.v17.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1; } // A mobile device criterion. message MobileDeviceInfo { // The mobile device constant resource name. - optional string mobile_device_constant = 2; + optional string mobile_device_constant = 2 + [(google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileDeviceConstant" + }]; } // A custom affinity criterion. @@ -706,7 +743,7 @@ message LocationGroupInfo { // Unit of the radius. Miles and meters are supported for geo target // constants. Milli miles and meters are supported for feed item sets and // asset sets. This is required and must be set in CREATE operations. - google.ads.googleads.v14.enums.LocationGroupRadiusUnitsEnum + google.ads.googleads.v17.enums.LocationGroupRadiusUnitsEnum .LocationGroupRadiusUnits radius_units = 4; // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, @@ -740,7 +777,9 @@ message CustomAudienceInfo { // A combined audience criterion. message CombinedAudienceInfo { // The CombinedAudience resource name. - string combined_audience = 1; + string combined_audience = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CombinedAudience" + }]; } // An audience criterion. @@ -756,7 +795,9 @@ message KeywordThemeInfo { oneof keyword_theme { // The resource name of a Smart Campaign keyword theme constant. // `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}` - string keyword_theme_constant = 1; + string keyword_theme_constant = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordThemeConstant" + }]; // Free-form text to be matched to a Smart Campaign keyword theme constant // on a best-effort basis. @@ -770,3 +811,42 @@ message LocalServiceIdInfo { // The criterion resource name. string service_id = 1; } + +// A Search Theme criterion only on Performance Max campaign. Represents a +// keyword-like advertiser input. +message SearchThemeInfo { + // Each Search Theme has a value of a simple string, like keywords. + // There are limits on overall length, allowed characters, and number + // of words. + string text = 1; +} + +// Represents a Brand Criterion used for targeting based on commercial knowledge +// graph. +message BrandInfo { + // Output only. A text representation of a brand. + optional string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The Commercial KG MID for the brand. + optional string entity_id = 1; + + // Output only. The primary url of a brand. + optional string primary_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The rejection reason when a brand status is REJECTED. + optional google.ads.googleads.v17.enums.BrandRequestRejectionReasonEnum + .BrandRequestRejectionReason rejection_reason = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of a brand. + optional google.ads.googleads.v17.enums.BrandStateEnum.BrandState status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A Brand List Criterion is used to specify a list of brands. The list is +// represented as a SharedSet id type BRAND_HINT. A criterion of this type can +// be either targeted or excluded. +message BrandListInfo { + // Shared set resource name of the brand list. + optional string shared_set = 1; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/common/criterion_category_availability.proto b/third_party/googleapis/google/ads/googleads/v17/common/criterion_category_availability.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/common/criterion_category_availability.proto rename to third_party/googleapis/google/ads/googleads/v17/common/criterion_category_availability.proto index 5aff8ea6a..db4ca4af7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/criterion_category_availability.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/criterion_category_availability.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v14/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v14/enums/criterion_category_channel_availability_mode.proto"; -import "google/ads/googleads/v14/enums/criterion_category_locale_availability_mode.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v17/enums/criterion_category_channel_availability_mode.proto"; +import "google/ads/googleads/v17/enums/criterion_category_locale_availability_mode.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "CriterionCategoryAvailabilityProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing criterion category availability information. @@ -50,15 +50,15 @@ message CriterionCategoryChannelAvailability { // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, // advertising_channel_sub_type, and include_default_channel_sub_type will all // be set). - google.ads.googleads.v14.enums.CriterionCategoryChannelAvailabilityModeEnum + google.ads.googleads.v17.enums.CriterionCategoryChannelAvailabilityModeEnum .CriterionCategoryChannelAvailabilityMode availability_mode = 1; // Channel type the category is available to. - google.ads.googleads.v14.enums.AdvertisingChannelTypeEnum + google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_type = 2; // Channel subtypes under the channel type the category is available to. - repeated google.ads.googleads.v14.enums.AdvertisingChannelSubTypeEnum + repeated google.ads.googleads.v17.enums.AdvertisingChannelSubTypeEnum .AdvertisingChannelSubType advertising_channel_sub_type = 3; // Whether default channel sub type is included. For example, @@ -74,7 +74,7 @@ message CriterionCategoryLocaleAvailability { // language will be empty), COUNTRY (only country will be set), LANGUAGE (only // language wil be set), COUNTRY_AND_LANGUAGE (both country and language will // be set). - google.ads.googleads.v14.enums.CriterionCategoryLocaleAvailabilityModeEnum + google.ads.googleads.v17.enums.CriterionCategoryLocaleAvailabilityModeEnum .CriterionCategoryLocaleAvailabilityMode availability_mode = 1; // The ISO-3166-1 alpha-2 country code associated with the category. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/custom_parameter.proto b/third_party/googleapis/google/ads/googleads/v17/common/custom_parameter.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/common/custom_parameter.proto rename to third_party/googleapis/google/ads/googleads/v17/common/custom_parameter.proto index 4e2e09be5..d9b83d81d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/custom_parameter.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/custom_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "CustomParameterProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing CustomParameter and operation diff --git a/third_party/googleapis/google/ads/googleads/v14/common/customizer_value.proto b/third_party/googleapis/google/ads/googleads/v17/common/customizer_value.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/common/customizer_value.proto rename to third_party/googleapis/google/ads/googleads/v17/common/customizer_value.proto index 2c46d4726..2cb446f8b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/customizer_value.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/customizer_value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/customizer_attribute_type.proto"; +import "google/ads/googleads/v17/enums/customizer_attribute_type.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "CustomizerValueProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing common customizer value proto messages. @@ -36,7 +36,7 @@ message CustomizerValue { // Required. The data type for the customizer value. It must match the // attribute type. The string_value content must match the constraints // associated with the type. - google.ads.googleads.v14.enums.CustomizerAttributeTypeEnum + google.ads.googleads.v17.enums.CustomizerAttributeTypeEnum .CustomizerAttributeType type = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/third_party/googleapis/google/ads/googleads/v14/common/dates.proto b/third_party/googleapis/google/ads/googleads/v17/common/dates.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/common/dates.proto rename to third_party/googleapis/google/ads/googleads/v17/common/dates.proto index e20890e61..f9ade152f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/dates.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/dates.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/month_of_year.proto"; +import "google/ads/googleads/v17/enums/month_of_year.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "DatesProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing date range message. @@ -54,5 +54,5 @@ message YearMonth { int64 year = 1; // The month of the year. (for example, FEBRUARY). - google.ads.googleads.v14.enums.MonthOfYearEnum.MonthOfYear month = 2; + google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear month = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/extensions.proto b/third_party/googleapis/google/ads/googleads/v17/common/extensions.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/common/extensions.proto rename to third_party/googleapis/google/ads/googleads/v17/common/extensions.proto index 2a7268aef..a78acea3b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/extensions.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/extensions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,28 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; - -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/common/feed_common.proto"; -import "google/ads/googleads/v14/enums/app_store.proto"; -import "google/ads/googleads/v14/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v14/enums/price_extension_price_qualifier.proto"; -import "google/ads/googleads/v14/enums/price_extension_price_unit.proto"; -import "google/ads/googleads/v14/enums/price_extension_type.proto"; -import "google/ads/googleads/v14/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v14/enums/promotion_extension_occasion.proto"; +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/common/feed_common.proto"; +import "google/ads/googleads/v17/enums/app_store.proto"; +import "google/ads/googleads/v17/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v17/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v17/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v17/enums/price_extension_type.proto"; +import "google/ads/googleads/v17/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v17/enums/promotion_extension_occasion.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "ExtensionsProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing extension types. @@ -52,7 +52,7 @@ message AppFeedItem { // The application store that the target application belongs to. // This field is required. - google.ads.googleads.v14.enums.AppStoreEnum.AppStore app_store = 3; + google.ads.googleads.v17.enums.AppStoreEnum.AppStore app_store = 3; // A list of possible final URLs after all cross domain redirects. // This list must not be empty. @@ -99,7 +99,7 @@ message CallFeedItem { // Enum value that indicates whether this call extension uses its own call // conversion setting (or just have call conversion disabled), or following // the account level setting. - google.ads.googleads.v14.enums.CallConversionReportingStateEnum + google.ads.googleads.v17.enums.CallConversionReportingStateEnum .CallConversionReportingState call_conversion_reporting_state = 6; } @@ -195,11 +195,11 @@ message TextMessageFeedItem { // Represents a Price extension. message PriceFeedItem { // Price extension type of this extension. - google.ads.googleads.v14.enums.PriceExtensionTypeEnum.PriceExtensionType + google.ads.googleads.v17.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1; // Price qualifier for all offers of this price extension. - google.ads.googleads.v14.enums.PriceExtensionPriceQualifierEnum + google.ads.googleads.v17.enums.PriceExtensionPriceQualifierEnum .PriceExtensionPriceQualifier price_qualifier = 2; // Tracking URL template for all offers of this price extension. @@ -227,7 +227,7 @@ message PriceOffer { Money price = 3; // Price unit for this offer. - google.ads.googleads.v14.enums.PriceExtensionPriceUnitEnum + google.ads.googleads.v17.enums.PriceExtensionPriceUnitEnum .PriceExtensionPriceUnit unit = 4; // A list of possible final URLs after all cross domain redirects. @@ -244,7 +244,7 @@ message PromotionFeedItem { optional string promotion_target = 16; // Enum that modifies the qualification of the discount. - google.ads.googleads.v14.enums.PromotionExtensionDiscountModifierEnum + google.ads.googleads.v17.enums.PromotionExtensionDiscountModifierEnum .PromotionExtensionDiscountModifier discount_modifier = 2; // Start date of when the promotion is eligible to be redeemed. @@ -256,7 +256,7 @@ message PromotionFeedItem { // The occasion the promotion was intended for. // If an occasion is set, the redemption window will need to fall within // the date range associated with the occasion. - google.ads.googleads.v14.enums.PromotionExtensionOccasionEnum + google.ads.googleads.v17.enums.PromotionExtensionOccasionEnum .PromotionExtensionOccasion occasion = 9; // A list of possible final URLs after all cross domain redirects. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/feed_common.proto b/third_party/googleapis/google/ads/googleads/v17/common/feed_common.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/common/feed_common.proto rename to third_party/googleapis/google/ads/googleads/v17/common/feed_common.proto index 2de460a33..6e7b1a000 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/feed_common.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/feed_common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "FeedCommonProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing common feed proto messages. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/feed_item_set_filter_type_infos.proto b/third_party/googleapis/google/ads/googleads/v17/common/feed_item_set_filter_type_infos.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/common/feed_item_set_filter_type_infos.proto rename to third_party/googleapis/google/ads/googleads/v17/common/feed_item_set_filter_type_infos.proto index 7b47020c6..a951334b3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/feed_item_set_filter_type_infos.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/feed_item_set_filter_type_infos.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/feed_item_set_string_filter_type.proto"; +import "google/ads/googleads/v17/enums/feed_item_set_string_filter_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetFilterTypeInfosProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Represents a filter on locations in a feed item set. // Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. @@ -44,7 +44,7 @@ message BusinessNameFilter { string business_name = 1; // The type of string matching to use when filtering with business_name. - google.ads.googleads.v14.enums.FeedItemSetStringFilterTypeEnum + google.ads.googleads.v17.enums.FeedItemSetStringFilterTypeEnum .FeedItemSetStringFilterType filter_type = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/final_app_url.proto b/third_party/googleapis/google/ads/googleads/v17/common/final_app_url.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/common/final_app_url.proto rename to third_party/googleapis/google/ads/googleads/v17/common/final_app_url.proto index b62543aa7..445279268 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/final_app_url.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/final_app_url.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/app_url_operating_system_type.proto"; +import "google/ads/googleads/v17/enums/app_url_operating_system_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "FinalAppUrlProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file FinalAppUrl type. // A URL for deep linking into an app for the given operating system. message FinalAppUrl { // The operating system targeted by this URL. Required. - google.ads.googleads.v14.enums.AppUrlOperatingSystemTypeEnum + google.ads.googleads.v17.enums.AppUrlOperatingSystemTypeEnum .AppUrlOperatingSystemType os_type = 1; // The app deep link URL. Deep links specify a location in an app that diff --git a/third_party/googleapis/google/ads/googleads/v14/common/frequency_cap.proto b/third_party/googleapis/google/ads/googleads/v17/common/frequency_cap.proto similarity index 71% rename from third_party/googleapis/google/ads/googleads/v14/common/frequency_cap.proto rename to third_party/googleapis/google/ads/googleads/v17/common/frequency_cap.proto index 8ebd8802f..70f249461 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/frequency_cap.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/frequency_cap.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/frequency_cap_event_type.proto"; -import "google/ads/googleads/v14/enums/frequency_cap_level.proto"; -import "google/ads/googleads/v14/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v17/enums/frequency_cap_event_type.proto"; +import "google/ads/googleads/v17/enums/frequency_cap_level.proto"; +import "google/ads/googleads/v17/enums/frequency_cap_time_unit.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing frequency caps. @@ -47,15 +47,15 @@ message FrequencyCapEntry { message FrequencyCapKey { // The level on which the cap is to be applied (for example, ad group ad, ad // group). The cap is applied to all the entities of this level. - google.ads.googleads.v14.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = + google.ads.googleads.v17.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1; // The type of event that the cap applies to (for example, impression). - google.ads.googleads.v14.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType + google.ads.googleads.v17.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3; // Unit of time the cap is defined at (for example, day, week). - google.ads.googleads.v14.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit + google.ads.googleads.v17.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2; // Number of time units the cap lasts. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/keyword_plan_common.proto b/third_party/googleapis/google/ads/googleads/v17/common/keyword_plan_common.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/common/keyword_plan_common.proto rename to third_party/googleapis/google/ads/googleads/v17/common/keyword_plan_common.proto index 71a3f3933..219b87fac 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/keyword_plan_common.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/keyword_plan_common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/enums/device.proto"; -import "google/ads/googleads/v14/enums/keyword_plan_aggregate_metric_type.proto"; -import "google/ads/googleads/v14/enums/keyword_plan_competition_level.proto"; -import "google/ads/googleads/v14/enums/keyword_plan_concept_group_type.proto"; -import "google/ads/googleads/v14/enums/month_of_year.proto"; +import "google/ads/googleads/v17/common/dates.proto"; +import "google/ads/googleads/v17/enums/device.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_aggregate_metric_type.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_competition_level.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_concept_group_type.proto"; +import "google/ads/googleads/v17/enums/month_of_year.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCommonProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing Keyword Planner messages. @@ -47,7 +47,7 @@ message KeywordPlanHistoricalMetrics { repeated MonthlySearchVolume monthly_search_volumes = 6; // The competition level for the query. - google.ads.googleads.v14.enums.KeywordPlanCompetitionLevelEnum + google.ads.googleads.v17.enums.KeywordPlanCompetitionLevelEnum .KeywordPlanCompetitionLevel competition = 2; // The competition index for the query in the range [0, 100]. @@ -87,7 +87,7 @@ message MonthlySearchVolume { optional int64 year = 4; // The month of the search volume. - google.ads.googleads.v14.enums.MonthOfYearEnum.MonthOfYear month = 2; + google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear month = 2; // Approximate number of searches for the month. // A null value indicates the search volume is unavailable for @@ -98,7 +98,7 @@ message MonthlySearchVolume { // The aggregate metrics specification of the request. message KeywordPlanAggregateMetrics { // The list of aggregate metrics to fetch data. - repeated google.ads.googleads.v14.enums.KeywordPlanAggregateMetricTypeEnum + repeated google.ads.googleads.v17.enums.KeywordPlanAggregateMetricTypeEnum .KeywordPlanAggregateMetricType aggregate_metric_types = 1; } @@ -116,7 +116,7 @@ message KeywordPlanAggregateMetricResults { // The total searches for the device type during the specified time period. message KeywordPlanDeviceSearches { // The device type. - google.ads.googleads.v14.enums.DeviceEnum.Device device = 1; + google.ads.googleads.v17.enums.DeviceEnum.Device device = 1; // The total searches for the device. optional int64 search_count = 2; @@ -143,6 +143,6 @@ message ConceptGroup { string name = 1; // The concept group type. - google.ads.googleads.v14.enums.KeywordPlanConceptGroupTypeEnum + google.ads.googleads.v17.enums.KeywordPlanConceptGroupTypeEnum .KeywordPlanConceptGroupType type = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v17/common/lifecycle_goals.proto b/third_party/googleapis/google/ads/googleads/v17/common/lifecycle_goals.proto new file mode 100644 index 000000000..a337d14cb --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/common/lifecycle_goals.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; +option java_multiple_files = true; +option java_outer_classname = "LifecycleGoalsProto"; +option java_package = "com.google.ads.googleads.v17.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; + +// Proto file describing lifecycle goal settings. + +// Lifecycle goal value settings. +message LifecycleGoalValueSettings { + // Value of the lifecycle goal. For example, for customer acquisition goal, + // value is the incremental conversion value for new customers who are not of + // high value. + optional double value = 1; + + // High lifetime value of the lifecycle goal. For example, for customer + // acquisition goal, high lifetime value is the incremental conversion value + // for new customers who are of high value. High lifetime value should be + // greater than value, if set. + // In current stage, high lifetime value feature is in beta and this field + // is read-only. + optional double high_lifetime_value = 2; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/common/local_services.proto b/third_party/googleapis/google/ads/googleads/v17/common/local_services.proto new file mode 100644 index 000000000..1ac7e28c6 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/common/local_services.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.common; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesProto"; +option java_package = "com.google.ads.googleads.v17.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; + +// Proto file containing info messages for local services related resources. + +// A Local Services Document with read only accessible data. +message LocalServicesDocumentReadOnly { + // URL to access an already uploaded Local Services document. + optional string document_url = 1; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/common/matching_function.proto b/third_party/googleapis/google/ads/googleads/v17/common/matching_function.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/common/matching_function.proto rename to third_party/googleapis/google/ads/googleads/v17/common/matching_function.proto index a75e28ebb..c59499dd5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/matching_function.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/matching_function.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/matching_function_context_type.proto"; -import "google/ads/googleads/v14/enums/matching_function_operator.proto"; +import "google/ads/googleads/v17/enums/matching_function_context_type.proto"; +import "google/ads/googleads/v17/enums/matching_function_operator.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "MatchingFunctionProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing a matching function. @@ -54,7 +54,7 @@ message MatchingFunction { optional string function_string = 5; // Operator for a function. - google.ads.googleads.v14.enums.MatchingFunctionOperatorEnum + google.ads.googleads.v17.enums.MatchingFunctionOperatorEnum .MatchingFunctionOperator operator = 4; @@ -106,7 +106,7 @@ message Operand { // An operand in a function referring to a value in the request context. message RequestContextOperand { // Type of value to be referred in the request context. - google.ads.googleads.v14.enums.MatchingFunctionContextTypeEnum + google.ads.googleads.v17.enums.MatchingFunctionContextTypeEnum .MatchingFunctionContextType context_type = 1; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/metric_goal.proto b/third_party/googleapis/google/ads/googleads/v17/common/metric_goal.proto similarity index 65% rename from third_party/googleapis/google/ads/googleads/v14/common/metric_goal.proto rename to third_party/googleapis/google/ads/googleads/v17/common/metric_goal.proto index 49197aa7a..ed438193c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/metric_goal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/metric_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/experiment_metric.proto"; -import "google/ads/googleads/v14/enums/experiment_metric_direction.proto"; +import "google/ads/googleads/v17/enums/experiment_metric.proto"; +import "google/ads/googleads/v17/enums/experiment_metric_direction.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "MetricGoalProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing experiment metric goal. @@ -34,11 +34,11 @@ option ruby_package = "Google::Ads::GoogleAds::V14::Common"; message MetricGoal { // The metric of the goal. For example, clicks, impressions, cost, // conversions, etc. - google.ads.googleads.v14.enums.ExperimentMetricEnum.ExperimentMetric metric = + google.ads.googleads.v17.enums.ExperimentMetricEnum.ExperimentMetric metric = 1; // The metric direction of the goal. For example, increase, decrease, no // change. - google.ads.googleads.v14.enums.ExperimentMetricDirectionEnum + google.ads.googleads.v17.enums.ExperimentMetricDirectionEnum .ExperimentMetricDirection direction = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/metrics.proto b/third_party/googleapis/google/ads/googleads/v17/common/metrics.proto similarity index 60% rename from third_party/googleapis/google/ads/googleads/v14/common/metrics.proto rename to third_party/googleapis/google/ads/googleads/v17/common/metrics.proto index 09c7255fa..7039080b9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/metrics.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/interaction_event_type.proto"; -import "google/ads/googleads/v14/enums/quality_score_bucket.proto"; +import "google/ads/googleads/v17/enums/interaction_event_type.proto"; +import "google/ads/googleads/v17/enums/quality_score_bucket.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "MetricsProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing metrics. // Metrics data. message Metrics { - // The percent of your ad impressions that are shown as the very first ad - // above the organic search results. + // Search absolute top impression share is the percentage of your Search ad + // impressions that are shown in the most prominent Search position. optional double absolute_top_impression_percentage = 183; // Average cost of viewable impressions (`active_view_impressions`). @@ -75,7 +75,7 @@ message Metrics { // values in date column means the conversion date. Details for the // by_conversion_date columns are available at // https://support.google.com/google-ads/answer/9549009. - double all_conversions_value_by_conversion_date = 240; + optional double all_conversions_value_by_conversion_date = 240; // All of new customers' lifetime conversion value. If you have set up // customer acquisition goal at either account level or campaign level, this @@ -95,7 +95,7 @@ message Metrics { // with date, the values in date column means the conversion date. Details for // the by_conversion_date columns are available at // https://support.google.com/google-ads/answer/9549009. - double all_conversions_by_conversion_date = 241; + optional double all_conversions_by_conversion_date = 241; // The value of all conversions divided by the total cost of ad interactions // (such as clicks for text ads or views for video ads). @@ -147,8 +147,8 @@ message Metrics { optional double all_conversions_from_store_website = 202; // This metric is part of the Auction Insights report, and tells how often - // the ads of another participant showed as the very first ad above the - // organic search results. + // the ads of another participant showed in the most prominent position on the + // search results page. // This percentage is computed only over the auctions that you appeared in // the page. // @@ -188,9 +188,9 @@ message Metrics { optional double auction_insight_search_position_above_rate = 262; // This metric is part of the Auction Insights report, and tells how often - // the ads of another participant showed above the organic search results. - // This percentage is computed only over the auctions that you appeared in - // the page. + // the ads of another participant showed adjacent to the top organic search + // results. This percentage is computed only over the auctions that you + // appeared in the page. // // This metric is not publicly available. optional double auction_insight_search_top_impression_percentage = 263; @@ -308,7 +308,7 @@ message Metrics { // column means the conversion date. Details for the by_conversion_date // columns are available at // https://support.google.com/google-ads/answer/9549009. - double conversions_value_by_conversion_date = 242; + optional double conversions_value_by_conversion_date = 242; // New customers' lifetime conversion value. If you have set up // customer acquisition goal at either account level or campaign level, this @@ -345,7 +345,7 @@ message Metrics { // column means the conversion date. Details for the by_conversion_date // columns are available at // https://support.google.com/google-ads/answer/9549009. - double conversions_by_conversion_date = 243; + optional double conversions_by_conversion_date = 243; // The sum of your cost-per-click (CPC) and cost-per-thousand impressions // (CPM) costs during this period. @@ -372,6 +372,9 @@ message Metrics { // Cross-device conversions are already included in all_conversions. optional double cross_device_conversions = 173; + // The sum of the value of cross-device conversions, in micros. + optional int64 cross_device_conversions_value_micros = 312; + // The number of clicks your ad receives (Clicks) divided by the number // of times your ad is shown (Impressions). optional double ctr = 174; @@ -443,18 +446,18 @@ message Metrics { optional int64 hotel_eligible_impressions = 215; // The creative historical quality score. - google.ads.googleads.v14.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v17.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; // The quality of historical landing page experience. - google.ads.googleads.v14.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v17.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; // The historical quality score. optional int64 historical_quality_score = 216; // The historical search predicted click through rate (CTR). - google.ads.googleads.v14.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v17.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; // The number of times the ad was forwarded to someone else as a message. @@ -488,7 +491,7 @@ message Metrics { optional int64 interactions = 223; // The types of payable and free interactions. - repeated google.ads.googleads.v14.enums.InteractionEventTypeEnum + repeated google.ads.googleads.v17.enums.InteractionEventTypeEnum .InteractionEventType interaction_event_types = 100; // The percentage of clicks filtered out of your total number of clicks @@ -578,8 +581,8 @@ message Metrics { // for details. Any value below 0.1 is reported as 0.0999. optional double search_absolute_top_impression_share = 136; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to a low budget. Note: Search + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to a low budget. Note: Search // budget lost absolute top impression share is reported in the range of 0 to // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_budget_lost_absolute_top_impression_share = 137; @@ -590,7 +593,7 @@ message Metrics { // value above 0.9 is reported as 0.9001. optional double search_budget_lost_impression_share = 138; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to a low budget. Note: Search // budget lost top impression share is reported in the range of 0 to 0.9. Any // value above 0.9 is reported as 0.9001. @@ -616,8 +619,8 @@ message Metrics { // value below 0.1 is reported as 0.0999. optional double search_impression_share = 142; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to poor Ad Rank. + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to poor Ad Rank. // Note: Search rank lost absolute top impression share is reported in the // range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_absolute_top_impression_share = 143; @@ -628,17 +631,19 @@ message Metrics { // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_impression_share = 144; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to poor Ad Rank. // Note: Search rank lost top impression share is reported in the range of 0 // to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_top_impression_share = 145; - // The impressions you've received in the top location (anywhere above the - // organic search results) compared to the estimated number of impressions you - // were eligible to receive in the top location. + // The impressions you've received among the top ads compared to the estimated + // number of impressions you were eligible to receive among the top ads. // Note: Search top impression share is reported in the range of 0.1 to 1. Any // value below 0.1 is reported as 0.0999. + // + // Top ads are generally above the top organic results, although they may show + // below the top organic results on certain queries. optional double search_top_impression_share = 146; // Search volume range for a search term insight category. @@ -656,7 +661,7 @@ message Metrics { // campaigns that had traffic from portfolio bidding strategies or non-tROAS). optional double average_target_roas = 250; - // The percent of your ad impressions that are shown anywhere above the + // The percent of your ad impressions that are shown adjacent to the top // organic search results. optional double top_impression_percentage = 148; @@ -722,7 +727,10 @@ message Metrics { optional int64 view_through_conversions = 155; // The number of iOS Store Kit Ad Network conversions. - int64 sk_ad_network_conversions = 246; + int64 sk_ad_network_installs = 246; + + // The total number of iOS Store Kit Ad Network conversions. + int64 sk_ad_network_total_conversions = 292; // Clicks from properties not owned by the publisher for which the traffic // the publisher has paid for or acquired through incentivized activity @@ -806,6 +814,378 @@ message Metrics { // Number of website URL clicks on any location surface after an impression. // This measure is coming from Asset based location. optional double view_through_conversions_from_location_asset_website = 281; + + // Orders is the total number of purchase conversions you received attributed + // to your ads. + // How it works: You report conversions with cart data for + // completed purchases on your website. If a conversion is attributed to + // previous interactions with your ads (clicks for text or Shopping ads, views + // for video ads etc.) it's counted as an order. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt in an order on your website. Even though they bought 2 + // products, this would count as 1 order. + // This metric is only available if you report conversions with cart data. + optional double orders = 296; + + // Average order value is the average revenue you made per order attributed to + // your ads. + // How it works: You report conversions with cart data for completed purchases + // on your website. Average order value is the total revenue from your orders + // divided by the total number of orders. + // Example: You received 3 orders which made $10, $15 and $20 worth of + // revenue. The average order value is $15 = ($10 + $15 + $20)/3. + // This metric is only available if you report conversions with cart data. + optional int64 average_order_value_micros = 297; + + // Average cart size is the average number of products in each order + // attributed to your ads. + // How it works: You report conversions with cart data for completed purchases + // on your website. Average cart size is the total number of products sold + // divided by the total number of orders you received. + // Example: You received 2 orders, the first included 3 products and the + // second included 2. The average cart size is 2.5 products = (3+2)/2. + // This metric is only available if you report conversions with cart data. + optional double average_cart_size = 298; + + // Cost of goods sold (COGS) is the total cost of the products you sold in + // orders attributed to your ads. + // How it works: You can add a cost of goods sold value to every product in + // Merchant Center. If you report conversions with cart data, the products you + // sold are matched with their cost of goods sold value and this can be used + // to calculate the gross profit you made on each order. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The hat has a cost of goods sold value of $3, the shirt + // has a cost of goods sold value of $5. The cost of goods sold for this order + // is $8 = $3 + $5. + // This metric is only available if you report conversions with cart data. + optional int64 cost_of_goods_sold_micros = 299; + + // Gross profit is the profit you made from orders attributed to your ads + // minus the cost of goods sold (COGS). + // How it works: Gross profit is the revenue you made from sales attributed to + // your ads minus cost of goods sold. Gross profit calculations only include + // products that have a cost of goods sold value in Merchant Center. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt in an order from your website. The hat is priced $10 and + // the shirt is priced $20. The hat has a cost of goods sold value of $3, but + // the shirt has no cost of goods sold value. Gross profit for this order will + // only take into account the hat, so it's $7 = $10 - $3. + // This metric is only available if you report conversions with cart data. + optional int64 gross_profit_micros = 300; + + // Gross profit margin is the percentage gross profit you made from orders + // attributed to your ads, after taking out the cost of goods sold (COGS). + // How it works: You report conversions with cart data for completed purchases + // on your website. Gross profit margin is the gross profit you made divided + // by your total revenue and multiplied by 100%. Gross profit margin + // calculations only include products that have a cost of goods sold value in + // Merchant Center. + // Example: Someone bought a hat and a shirt in an order on your website. The + // hat is priced $10 and has a cost of goods sold value of $3. The shirt is + // priced $20 but has no cost of goods sold value. Gross profit margin for + // this order will only take into account the hat because it has a cost of + // goods sold value, so it's 70% = ($10 - $3)/$10 x 100%. + // This metric is only available if you report conversions with cart data. + optional double gross_profit_margin = 301; + + // Revenue is the total amount you made from orders attributed to your ads. + // How it works: You report conversions with cart data for completed purchases + // on your website. Revenue is the total value of all the orders you received + // attributed to your ads, minus any discount. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt in an order from your website. The hat is priced $10 and + // the shirt is priced $20. The entire order has a $5 discount. The revenue + // from this order is $25 = ($10 + $20) - $5. + // This metric is only available if you report conversions with cart data. + optional int64 revenue_micros = 302; + + // Units sold is the total number of products sold from orders attributed to + // your ads. + // How it works: You report conversions with cart data for completed purchases + // on your website. Units sold is the total number of products sold from all + // orders attributed to your ads. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat, a shirt and a jacket. The units sold in this order is 3. + // This metric is only available if you report conversions with cart data. + optional double units_sold = 303; + + // Cross-sell cost of goods sold (COGS) is the total cost of products sold as + // a result of advertising a different product. + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the order the customer + // places is a sold product. If these products don't match then this is + // considered cross-sell. Cross-sell cost of goods sold is the total cost of + // the products sold that weren't advertised. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The hat has a cost of goods sold value of $3, the shirt + // has a cost of goods sold value of $5. The cross-sell cost of goods sold for + // this order is $5. + // This metric is only available if you report conversions with cart data. + optional int64 cross_sell_cost_of_goods_sold_micros = 304; + + // Cross-sell gross profit is the profit you made from products sold as a + // result of advertising a different product, minus cost of goods sold (COGS). + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the purchase is a sold + // product. If these products don't match then this is considered cross-sell. + // Cross-sell gross profit is the revenue you made from cross-sell attributed + // to your ads minus the cost of the goods sold. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The shirt is priced $20 and has a cost of goods sold value + // of $5. The cross-sell gross profit of this order is $15 = $20 - $5. + // This metric is only available if you report conversions with cart data. + optional int64 cross_sell_gross_profit_micros = 305; + + // Cross-sell revenue is the total amount you made from products sold as a + // result of advertising a different product. + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the order the customer + // places is a sold product. If these products don't match then this is + // considered cross-sell. Cross-sell revenue is the total value you made from + // cross-sell attributed to your ads. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The hat is priced $10 and the shirt is priced $20. The + // cross-sell revenue of this order is $20. + // This metric is only available if you report conversions with cart data. + optional int64 cross_sell_revenue_micros = 306; + + // Cross-sell units sold is the total number of products sold as a result of + // advertising a different product. + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the order the customer + // places is a sold product. If these products don't match then this is + // considered cross-sell. Cross-sell units sold is the total number of + // cross-sold products from all orders attributed to your ads. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat, a shirt and a jacket. The cross-sell units sold in this order is 2. + // This metric is only available if you report conversions with cart data. + optional double cross_sell_units_sold = 307; + + // Lead cost of goods sold (COGS) is the total cost of products sold as a + // result of advertising the same product. + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with has an associated + // product (see Shopping Ads) then this product is considered the advertised + // product. Any product included in the order the customer places is a sold + // product. If the advertised and sold products match, then the cost of these + // goods is counted under lead cost of goods sold. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The hat has a cost of goods sold value of $3, the shirt + // has a cost of goods sold value of $5. The lead cost of goods sold for this + // order is $3. + // This metric is only available if you report conversions with cart data. + optional int64 lead_cost_of_goods_sold_micros = 308; + + // Lead gross profit is the profit you made from products sold as a result of + // advertising the same product, minus cost of goods sold (COGS). + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the order the customer + // places is a sold product. If the advertised and sold products match, then + // the revenue you made from these sales minus the cost of goods sold is your + // lead gross profit. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The hat is priced $10 and has a cost of goods sold value + // of $3. The lead gross profit of this order is $7 = $10 - $3. + // This metric is only available if you report conversions with cart data. + optional int64 lead_gross_profit_micros = 309; + + // Lead revenue is the total amount you made from products sold as a result of + // advertising the same product. + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the order the customer + // places is a sold product. If the advertised and sold products match, then + // the total value you made from the sales of these products is shown under + // lead revenue. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat and a shirt. The hat is priced $10 and the shirt is priced $20. The + // lead revenue of this order is $10. + // This metric is only available if you report conversions with cart data. + optional int64 lead_revenue_micros = 310; + + // Lead units sold is the total number of products sold as a result of + // advertising the same product. + // How it works: You report conversions with cart data for completed purchases + // on your website. If the ad that was interacted with before the purchase has + // an associated product (see Shopping Ads) then this product is considered + // the advertised product. Any product included in the order the customer + // places is a sold product. If the advertised and sold products match, then + // the total number of these products sold is shown under lead units sold. + // Example: Someone clicked on a Shopping ad for a hat then bought the same + // hat, a shirt and a jacket. The lead units sold in this order is 1. + // This metric is only available if you report conversions with cart data. + optional double lead_units_sold = 311; + + // The number of unique users who saw your ad during the requested time + // period. This metric cannot be aggregated, and can only be requested for + // date ranges of 92 days or less. This metric is available for following + // campaign types - Display, Video, Discovery and App. + optional int64 unique_users = 319; + + // The average number of times a unique user saw your ad during the requested + // time period. This metric cannot be aggregated, and can only be requested + // for date ranges of 92 days or less. This metric is available for following + // campaign types - Display, Video, Discovery and App. + optional double average_impression_frequency_per_user = 320; + + // Number of linked resources in which the asset is used. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + optional int64 linked_entities_count = 341; + + // A list of up to 20 sample linked resources in which the asset is used. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string linked_sample_entities = 342; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.BEST performance label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_best_performance_entities = 343; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.GOOD performance label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_good_performance_entities = 344; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.LOW performance label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_low_performance_entities = 345; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.LEARNING performance + // label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_learning_performance_entities = 346; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the assets had AssetPerformanceLabel performance label other + // than BEST, GOOD, LOW, and LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_unrated_performance_entities = 347; + + // Number of total usages in which the asset is pinned. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_total_count = 348; + + // Number of entities in which the asset is pinned to headline 1. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_headline_position_one_count = 349; + + // Number of entities in which the asset is pinned to headline 2. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_headline_position_two_count = 350; + + // Number of entities in which the asset is pinned to headline 3. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_headline_position_three_count = 351; + + // Number of entities in which the asset is pinned to description 1. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_description_position_one_count = 352; + + // Number of entities in which the asset is pinned to description 2. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_description_position_two_count = 353; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.BEST. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_best_performance_impression_percentage = 354; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.GOOD. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_good_performance_impression_percentage = 355; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.LOW. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_low_performance_impression_percentage = 356; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_learning_performance_impression_percentage = 357; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel other than BEST, GOOD, LOW, and LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_unrated_performance_impression_percentage = 358; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.BEST. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_best_performance_cost_percentage = 359; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.GOOD. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_good_performance_cost_percentage = 360; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.LOW. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_low_performance_cost_percentage = 361; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_learning_performance_cost_percentage = 362; + + // Percentage of cost the asset received in ads with AssetPerformanceLabel + // other than BEST, GOOD, LOW, and LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_unrated_performance_cost_percentage = 363; } // Search volume range. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/offline_user_data.proto b/third_party/googleapis/google/ads/googleads/v17/common/offline_user_data.proto similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/common/offline_user_data.proto rename to third_party/googleapis/google/ads/googleads/v17/common/offline_user_data.proto index 4bb6c7d41..54fd73285 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/offline_user_data.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/offline_user_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/user_identifier_source.proto"; +import "google/ads/googleads/v17/common/consent.proto"; +import "google/ads/googleads/v17/enums/user_identifier_source.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing offline user data. @@ -65,7 +66,7 @@ message OfflineUserAddressInfo { message UserIdentifier { // Source of the user identifier when the upload is from Store Sales, // ConversionUploadService, or ConversionAdjustmentUploadService. - google.ads.googleads.v14.enums.UserIdentifierSourceEnum.UserIdentifierSource + google.ads.googleads.v17.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6; // Exactly one must be specified. For OfflineUserDataJobService, Customer @@ -181,6 +182,10 @@ message UserData { // Additional attributes associated with the user. Required when updating // customer match attributes. These have an expiration of 540 days. UserAttribute user_attribute = 3; + + // The consent setting for the user. Customer match will ignore this field + // and return a warning. + optional Consent consent = 4; } // User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job @@ -274,6 +279,9 @@ message CustomerMatchUserListMetadata { // The resource name of remarketing list to update data. // Required for job of CUSTOMER_MATCH_USER_LIST type. optional string user_list = 2; + + // The consent setting for all the users in this job. + optional Consent consent = 3; } // Metadata for Store Sales Direct. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/policy.proto b/third_party/googleapis/google/ads/googleads/v17/common/policy.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/common/policy.proto rename to third_party/googleapis/google/ads/googleads/v17/common/policy.proto index 34f91354e..b8c62aed1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/policy.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/policy_topic_entry_type.proto"; -import "google/ads/googleads/v14/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; -import "google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_device.proto"; -import "google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; +import "google/ads/googleads/v17/enums/policy_topic_entry_type.proto"; +import "google/ads/googleads/v17/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; +import "google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_device.proto"; +import "google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "PolicyProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing policy information. @@ -86,7 +86,7 @@ message PolicyTopicEntry { optional string topic = 5; // Describes the negative or positive effect this policy will have on serving. - google.ads.googleads.v14.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType + google.ads.googleads.v17.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2; // Additional information that explains policy finding @@ -125,7 +125,7 @@ message PolicyTopicEvidence { // Evidence of mismatches between the URLs of a resource. message DestinationMismatch { // The set of URLs that did not match each other. - repeated google.ads.googleads.v14.enums + repeated google.ads.googleads.v17.enums .PolicyTopicEvidenceDestinationMismatchUrlTypeEnum .PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1; } @@ -137,7 +137,7 @@ message PolicyTopicEvidence { optional string expanded_url = 7; // The type of device that failed to load the URL. - google.ads.googleads.v14.enums + google.ads.googleads.v17.enums .PolicyTopicEvidenceDestinationNotWorkingDeviceEnum .PolicyTopicEvidenceDestinationNotWorkingDevice device = 4; @@ -149,7 +149,7 @@ message PolicyTopicEvidence { // Indicates the reason of the DESTINATION_NOT_WORKING policy finding. oneof reason { // The type of DNS error. - google.ads.googleads.v14.enums + google.ads.googleads.v17.enums .PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum .PolicyTopicEvidenceDestinationNotWorkingDnsErrorType dns_error_type = 1; diff --git a/third_party/googleapis/google/ads/googleads/v14/common/policy_summary.proto b/third_party/googleapis/google/ads/googleads/v17/common/policy_summary.proto similarity index 65% rename from third_party/googleapis/google/ads/googleads/v14/common/policy_summary.proto rename to third_party/googleapis/google/ads/googleads/v17/common/policy_summary.proto index e7618c806..3ab9869d7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/policy_summary.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/policy_summary.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/policy_approval_status.proto"; -import "google/ads/googleads/v14/enums/policy_review_status.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/policy_approval_status.proto"; +import "google/ads/googleads/v17/enums/policy_review_status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "PolicySummaryProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing policy summary. @@ -37,11 +37,11 @@ message PolicySummary { repeated PolicyTopicEntry policy_topic_entries = 1; // Where in the review process the resource is. - google.ads.googleads.v14.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v17.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2; // The overall approval status, which is calculated based on // the status of its individual policy topic entries. - google.ads.googleads.v14.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v17.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/real_time_bidding_setting.proto b/third_party/googleapis/google/ads/googleads/v17/common/real_time_bidding_setting.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/common/real_time_bidding_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/common/real_time_bidding_setting.proto index 0437a1ef2..d366edd83 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/real_time_bidding_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/real_time_bidding_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "RealTimeBiddingSettingProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing RealTimeBiddingSetting diff --git a/third_party/googleapis/google/ads/googleads/v14/common/segments.proto b/third_party/googleapis/google/ads/googleads/v17/common/segments.proto similarity index 66% rename from third_party/googleapis/google/ads/googleads/v14/common/segments.proto rename to third_party/googleapis/google/ads/googleads/v17/common/segments.proto index 561d60f63..f3c8f34c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/segments.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/segments.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,47 +14,49 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; - -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/ad_destination_type.proto"; -import "google/ads/googleads/v14/enums/ad_network_type.proto"; -import "google/ads/googleads/v14/enums/budget_campaign_association_status.proto"; -import "google/ads/googleads/v14/enums/click_type.proto"; -import "google/ads/googleads/v14/enums/conversion_action_category.proto"; -import "google/ads/googleads/v14/enums/conversion_attribution_event_type.proto"; -import "google/ads/googleads/v14/enums/conversion_lag_bucket.proto"; -import "google/ads/googleads/v14/enums/conversion_or_adjustment_lag_bucket.proto"; -import "google/ads/googleads/v14/enums/conversion_value_rule_primary_dimension.proto"; -import "google/ads/googleads/v14/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto"; -import "google/ads/googleads/v14/enums/day_of_week.proto"; -import "google/ads/googleads/v14/enums/device.proto"; -import "google/ads/googleads/v14/enums/external_conversion_source.proto"; -import "google/ads/googleads/v14/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v14/enums/hotel_price_bucket.proto"; -import "google/ads/googleads/v14/enums/hotel_rate_type.proto"; -import "google/ads/googleads/v14/enums/month_of_year.proto"; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; -import "google/ads/googleads/v14/enums/product_channel.proto"; -import "google/ads/googleads/v14/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v14/enums/product_condition.proto"; -import "google/ads/googleads/v14/enums/recommendation_type.proto"; -import "google/ads/googleads/v14/enums/search_engine_results_page_type.proto"; -import "google/ads/googleads/v14/enums/search_term_match_type.proto"; -import "google/ads/googleads/v14/enums/sk_ad_network_ad_event_type.proto"; -import "google/ads/googleads/v14/enums/sk_ad_network_attribution_credit.proto"; -import "google/ads/googleads/v14/enums/sk_ad_network_user_type.proto"; -import "google/ads/googleads/v14/enums/slot.proto"; +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/ad_destination_type.proto"; +import "google/ads/googleads/v17/enums/ad_network_type.proto"; +import "google/ads/googleads/v17/enums/budget_campaign_association_status.proto"; +import "google/ads/googleads/v17/enums/click_type.proto"; +import "google/ads/googleads/v17/enums/conversion_action_category.proto"; +import "google/ads/googleads/v17/enums/conversion_attribution_event_type.proto"; +import "google/ads/googleads/v17/enums/conversion_lag_bucket.proto"; +import "google/ads/googleads/v17/enums/conversion_or_adjustment_lag_bucket.proto"; +import "google/ads/googleads/v17/enums/conversion_value_rule_primary_dimension.proto"; +import "google/ads/googleads/v17/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto"; +import "google/ads/googleads/v17/enums/day_of_week.proto"; +import "google/ads/googleads/v17/enums/device.proto"; +import "google/ads/googleads/v17/enums/external_conversion_source.proto"; +import "google/ads/googleads/v17/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v17/enums/hotel_price_bucket.proto"; +import "google/ads/googleads/v17/enums/hotel_rate_type.proto"; +import "google/ads/googleads/v17/enums/month_of_year.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/enums/product_channel.proto"; +import "google/ads/googleads/v17/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v17/enums/product_condition.proto"; +import "google/ads/googleads/v17/enums/recommendation_type.proto"; +import "google/ads/googleads/v17/enums/search_engine_results_page_type.proto"; +import "google/ads/googleads/v17/enums/search_term_match_type.proto"; +import "google/ads/googleads/v17/enums/sk_ad_network_ad_event_type.proto"; +import "google/ads/googleads/v17/enums/sk_ad_network_attribution_credit.proto"; +import "google/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto"; +import "google/ads/googleads/v17/enums/sk_ad_network_source_type.proto"; +import "google/ads/googleads/v17/enums/sk_ad_network_user_type.proto"; +import "google/ads/googleads/v17/enums/slot.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "SegmentsProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing segment only fields. @@ -63,18 +65,27 @@ message Segments { // Activity account ID. optional int64 activity_account_id = 148; + // The city where the travel activity is available. + optional string activity_city = 185; + + // The country where the travel activity is available. + optional string activity_country = 186; + // Activity rating. optional int64 activity_rating = 149; + // The state where the travel activity is available. + optional string activity_state = 187; + // Advertiser supplied activity ID. optional string external_activity_id = 150; // Ad Destination type. - google.ads.googleads.v14.enums.AdDestinationTypeEnum.AdDestinationType + google.ads.googleads.v17.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; // Ad network type. - google.ads.googleads.v14.enums.AdNetworkTypeEnum.AdNetworkType + google.ads.googleads.v17.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; // Resource name of the ad group. @@ -93,7 +104,7 @@ message Segments { optional string campaign = 157; // Click type. - google.ads.googleads.v14.enums.ClickTypeEnum.ClickType click_type = 26; + google.ads.googleads.v17.enums.ClickTypeEnum.ClickType click_type = 26; // Resource name of the conversion action. optional string conversion_action = 113 [(google.api.resource_reference) = { @@ -101,7 +112,7 @@ message Segments { }]; // Conversion action category. - google.ads.googleads.v14.enums.ConversionActionCategoryEnum + google.ads.googleads.v17.enums.ConversionActionCategoryEnum .ConversionActionCategory conversion_action_category = 53; // Conversion action name. @@ -115,17 +126,17 @@ message Segments { optional bool conversion_adjustment = 115; // Conversion attribution event type. - google.ads.googleads.v14.enums.ConversionAttributionEventTypeEnum + google.ads.googleads.v17.enums.ConversionAttributionEventTypeEnum .ConversionAttributionEventType conversion_attribution_event_type = 2; // An enum value representing the number of days between the impression and // the conversion. - google.ads.googleads.v14.enums.ConversionLagBucketEnum.ConversionLagBucket + google.ads.googleads.v17.enums.ConversionLagBucketEnum.ConversionLagBucket conversion_lag_bucket = 50; // An enum value representing the number of days between the impression and // the conversion or between the impression and adjustments to the conversion. - google.ads.googleads.v14.enums.ConversionOrAdjustmentLagBucketEnum + google.ads.googleads.v17.enums.ConversionOrAdjustmentLagBucketEnum .ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51; // Date to which metrics apply. @@ -133,13 +144,13 @@ message Segments { optional string date = 79; // Day of the week, for example, MONDAY. - google.ads.googleads.v14.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; + google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; // Device to which metrics apply. - google.ads.googleads.v14.enums.DeviceEnum.Device device = 1; + google.ads.googleads.v17.enums.DeviceEnum.Device device = 1; // External conversion source. - google.ads.googleads.v14.enums.ExternalConversionSourceEnum + google.ads.googleads.v17.enums.ExternalConversionSourceEnum .ExternalConversionSource external_conversion_source = 55; // Resource name of the geo target constant that represents an airport. @@ -189,7 +200,7 @@ message Segments { optional string hotel_check_in_date = 81; // Hotel check-in day of week. - google.ads.googleads.v14.enums.DayOfWeekEnum.DayOfWeek + google.ads.googleads.v17.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9; // Hotel city. @@ -202,7 +213,7 @@ message Segments { optional string hotel_country = 84; // Hotel date selection type. - google.ads.googleads.v14.enums.HotelDateSelectionTypeEnum + google.ads.googleads.v17.enums.HotelDateSelectionTypeEnum .HotelDateSelectionType hotel_date_selection_type = 13; // Hotel length of stay. @@ -212,11 +223,11 @@ message Segments { optional string hotel_rate_rule_id = 86; // Hotel rate type. - google.ads.googleads.v14.enums.HotelRateTypeEnum.HotelRateType + google.ads.googleads.v17.enums.HotelRateTypeEnum.HotelRateType hotel_rate_type = 74; // Hotel price bucket. - google.ads.googleads.v14.enums.HotelPriceBucketEnum.HotelPriceBucket + google.ads.googleads.v17.enums.HotelPriceBucketEnum.HotelPriceBucket hotel_price_bucket = 78; // Hotel state. @@ -238,46 +249,46 @@ message Segments { optional string month = 90; // Month of the year, for example, January. - google.ads.googleads.v14.enums.MonthOfYearEnum.MonthOfYear month_of_year = 18; + google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear month_of_year = 18; // Partner hotel ID. optional string partner_hotel_id = 91; // Placeholder type. This is only used with feed item metrics. - google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 20; // Aggregator ID of the product. optional int64 product_aggregator_id = 132; - // Bidding category (level 1) of the product. - optional string product_bidding_category_level1 = 92; + // Category (level 1) of the product. + optional string product_category_level1 = 161; - // Bidding category (level 2) of the product. - optional string product_bidding_category_level2 = 93; + // Category (level 2) of the product. + optional string product_category_level2 = 162; - // Bidding category (level 3) of the product. - optional string product_bidding_category_level3 = 94; + // Category (level 3) of the product. + optional string product_category_level3 = 163; - // Bidding category (level 4) of the product. - optional string product_bidding_category_level4 = 95; + // Category (level 4) of the product. + optional string product_category_level4 = 164; - // Bidding category (level 5) of the product. - optional string product_bidding_category_level5 = 96; + // Category (level 5) of the product. + optional string product_category_level5 = 165; // Brand of the product. optional string product_brand = 97; // Channel of the product. - google.ads.googleads.v14.enums.ProductChannelEnum.ProductChannel + google.ads.googleads.v17.enums.ProductChannelEnum.ProductChannel product_channel = 30; // Channel exclusivity of the product. - google.ads.googleads.v14.enums.ProductChannelExclusivityEnum + google.ads.googleads.v17.enums.ProductChannelExclusivityEnum .ProductChannelExclusivity product_channel_exclusivity = 31; // Condition of the product. - google.ads.googleads.v14.enums.ProductConditionEnum.ProductCondition + google.ads.googleads.v17.enums.ProductConditionEnum.ProductCondition product_condition = 32; // Resource name of the geo target constant for the country of sale of the @@ -338,11 +349,11 @@ message Segments { optional string quarter = 128; // Recommendation type. - google.ads.googleads.v14.enums.RecommendationTypeEnum.RecommendationType + google.ads.googleads.v17.enums.RecommendationTypeEnum.RecommendationType recommendation_type = 140; // Type of the search engine results page. - google.ads.googleads.v14.enums.SearchEngineResultsPageTypeEnum + google.ads.googleads.v17.enums.SearchEngineResultsPageTypeEnum .SearchEngineResultsPageType search_engine_results_page_type = 70; // A search term subcategory. An empty string denotes the catch-all @@ -353,11 +364,11 @@ message Segments { optional string search_term = 156; // Match type of the keyword that triggered the ad, including variants. - google.ads.googleads.v14.enums.SearchTermMatchTypeEnum.SearchTermMatchType + google.ads.googleads.v17.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22; // Position of the ad. - google.ads.googleads.v14.enums.SlotEnum.Slot slot = 23; + google.ads.googleads.v17.enums.SlotEnum.Slot slot = 23; // Primary dimension of applied conversion value rules. // NO_RULE_APPLIED shows the total recorded value of conversions that @@ -366,7 +377,7 @@ message Segments { // has been applied. // GEO_LOCATION, DEVICE, AUDIENCE show the net adjustment after value // rules were applied. - google.ads.googleads.v14.enums.ConversionValueRulePrimaryDimensionEnum + google.ads.googleads.v17.enums.ConversionValueRulePrimaryDimensionEnum .ConversionValueRulePrimaryDimension conversion_value_rule_primary_dimension = 138; @@ -383,14 +394,24 @@ message Segments { // iOS Store Kit Ad Network conversion value. // Null value means this segment is not applicable, for example, non-iOS // campaign. - optional int64 sk_ad_network_conversion_value = 137; + optional int64 sk_ad_network_fine_conversion_value = 137; + + // iOS Store Kit Ad Network redistributed fine conversion value. + // + // Google uses modeling on observed conversion values(obtained + // from Apple) to calculate conversions from SKAN postbacks where + // NULLs are returned. This column represents the sum of the modeled + // conversion values and the observed conversion values. See + // https://support.google.com/google-ads/answer/14892597 + // to lean more. + optional int64 sk_ad_network_redistributed_fine_conversion_value = 190; // iOS Store Kit Ad Network user type. - google.ads.googleads.v14.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType + google.ads.googleads.v17.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType sk_ad_network_user_type = 141; // iOS Store Kit Ad Network ad event type. - google.ads.googleads.v14.enums.SkAdNetworkAdEventTypeEnum + google.ads.googleads.v17.enums.SkAdNetworkAdEventTypeEnum .SkAdNetworkAdEventType sk_ad_network_ad_event_type = 142; // App where the ad that drove the iOS Store Kit Ad Network install was @@ -399,9 +420,29 @@ message Segments { optional SkAdNetworkSourceApp sk_ad_network_source_app = 143; // iOS Store Kit Ad Network attribution credit - google.ads.googleads.v14.enums.SkAdNetworkAttributionCreditEnum + google.ads.googleads.v17.enums.SkAdNetworkAttributionCreditEnum .SkAdNetworkAttributionCredit sk_ad_network_attribution_credit = 144; + // iOS Store Kit Ad Network coarse conversion value. + google.ads.googleads.v17.enums.SkAdNetworkCoarseConversionValueEnum + .SkAdNetworkCoarseConversionValue sk_ad_network_coarse_conversion_value = + 151; + + // Website where the ad that drove the iOS Store Kit Ad Network install was + // shown. Null value means this segment is not applicable, for example, + // non-iOS campaign, or was not present in any postbacks sent by Apple. + optional string sk_ad_network_source_domain = 152; + + // The source type where the ad that drove the iOS Store Kit Ad Network + // install was shown. Null value means this segment is not applicable, for + // example, non-iOS campaign, or neither source domain nor source app were + // present in any postbacks sent by Apple. + google.ads.googleads.v17.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType + sk_ad_network_source_type = 153; + + // iOS Store Kit Ad Network postback sequence index. + optional int64 sk_ad_network_postback_sequence_index = 154; + // Only used with CustomerAsset, CampaignAsset and AdGroupAsset metrics. // Indicates whether the interaction metrics occurred on the asset itself // or a different asset or ad unit. @@ -417,7 +458,7 @@ message Segments { // This is for segmenting conversions by whether the user is a new customer // or a returning customer. This segmentation is typically used to measure // the impact of customer acquisition goal. - google.ads.googleads.v14.enums + google.ads.googleads.v17.enums .ConvertingUserPriorEngagementTypeAndLtvBucketEnum .ConvertingUserPriorEngagementTypeAndLtvBucket new_versus_returning_customers = 160; @@ -438,7 +479,7 @@ message BudgetCampaignAssociationStatus { optional string campaign = 1; // Budget campaign association status. - google.ads.googleads.v14.enums.BudgetCampaignAssociationStatusEnum + google.ads.googleads.v17.enums.BudgetCampaignAssociationStatusEnum .BudgetCampaignAssociationStatus status = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/common/simulation.proto b/third_party/googleapis/google/ads/googleads/v17/common/simulation.proto similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/common/simulation.proto rename to third_party/googleapis/google/ads/googleads/v17/common/simulation.proto index ed70c0791..a4d53f5ed 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/simulation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "SimulationProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing simulation points. @@ -156,6 +156,10 @@ message TargetCpaSimulationPoint { // Only search advertising channel type supports this field. optional int64 top_slot_impressions = 14; + // Projected number of interactions. + // Only discovery advertising channel type supports this field. + optional int64 interactions = 20; + // When SimulationModificationMethod = UNIFORM or DEFAULT, // target_cpa_micros is set. // When SimulationModificationMethod = SCALING, @@ -255,6 +259,10 @@ message BudgetSimulationPoint { // Projected number of top slot impressions. // Only search advertising channel type supports this field. int64 top_slot_impressions = 8; + + // Projected number of interactions. + // Only discovery advertising channel type supports this field. + int64 interactions = 9; } // Projected metrics for a specific target impression share value. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/tag_snippet.proto b/third_party/googleapis/google/ads/googleads/v17/common/tag_snippet.proto similarity index 70% rename from third_party/googleapis/google/ads/googleads/v14/common/tag_snippet.proto rename to third_party/googleapis/google/ads/googleads/v17/common/tag_snippet.proto index 69038ffbe..3795ef6d1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/tag_snippet.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/tag_snippet.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,30 +14,30 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/tracking_code_page_format.proto"; -import "google/ads/googleads/v14/enums/tracking_code_type.proto"; +import "google/ads/googleads/v17/enums/tracking_code_page_format.proto"; +import "google/ads/googleads/v17/enums/tracking_code_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "TagSnippetProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing TagSnippet // The site tag and event snippet pair for a TrackingCodeType. message TagSnippet { // The type of the generated tag snippets for tracking conversions. - google.ads.googleads.v14.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1; + google.ads.googleads.v17.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1; // The format of the web page where the tracking tag and snippet will be // installed, for example, HTML. - google.ads.googleads.v14.enums.TrackingCodePageFormatEnum + google.ads.googleads.v17.enums.TrackingCodePageFormatEnum .TrackingCodePageFormat page_format = 2; // The site tag that adds visitors to your basic remarketing lists and sets diff --git a/third_party/googleapis/google/ads/googleads/v14/common/targeting_setting.proto b/third_party/googleapis/google/ads/googleads/v17/common/targeting_setting.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/common/targeting_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/common/targeting_setting.proto index cd56667a8..66b102d6c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/targeting_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/targeting_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -import "google/ads/googleads/v14/enums/targeting_dimension.proto"; +import "google/ads/googleads/v17/enums/targeting_dimension.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "TargetingSettingProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing TargetingSetting @@ -47,7 +47,7 @@ message TargetingSetting { // The list of per-targeting-dimension targeting settings. message TargetRestriction { // The targeting dimension that these settings apply to. - google.ads.googleads.v14.enums.TargetingDimensionEnum.TargetingDimension + google.ads.googleads.v17.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1; // Indicates whether to restrict your ads to show only for the criteria you diff --git a/third_party/googleapis/google/ads/googleads/v14/common/text_label.proto b/third_party/googleapis/google/ads/googleads/v17/common/text_label.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/common/text_label.proto rename to third_party/googleapis/google/ads/googleads/v17/common/text_label.proto index 80337243b..0314cefbe 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/text_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/text_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "TextLabelProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // A type of label displaying text on a colored background. message TextLabel { diff --git a/third_party/googleapis/google/ads/googleads/v14/common/url_collection.proto b/third_party/googleapis/google/ads/googleads/v17/common/url_collection.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/common/url_collection.proto rename to third_party/googleapis/google/ads/googleads/v17/common/url_collection.proto index 2b0df2be8..745140b8d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/url_collection.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/url_collection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "UrlCollectionProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file UrlCollection type. diff --git a/third_party/googleapis/google/ads/googleads/v14/common/user_lists.proto b/third_party/googleapis/google/ads/googleads/v17/common/user_lists.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/common/user_lists.proto rename to third_party/googleapis/google/ads/googleads/v17/common/user_lists.proto index 75e4abc07..96efe9b4c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/user_lists.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/user_lists.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,29 +14,45 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; - -import "google/ads/googleads/v14/enums/customer_match_upload_key_type.proto"; -import "google/ads/googleads/v14/enums/user_list_crm_data_source_type.proto"; -import "google/ads/googleads/v14/enums/user_list_date_rule_item_operator.proto"; -import "google/ads/googleads/v14/enums/user_list_flexible_rule_operator.proto"; -import "google/ads/googleads/v14/enums/user_list_logical_rule_operator.proto"; -import "google/ads/googleads/v14/enums/user_list_number_rule_item_operator.proto"; -import "google/ads/googleads/v14/enums/user_list_prepopulation_status.proto"; -import "google/ads/googleads/v14/enums/user_list_rule_type.proto"; -import "google/ads/googleads/v14/enums/user_list_string_rule_item_operator.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +package google.ads.googleads.v17.common; + +import "google/ads/googleads/v17/enums/customer_match_upload_key_type.proto"; +import "google/ads/googleads/v17/enums/lookalike_expansion_level.proto"; +import "google/ads/googleads/v17/enums/user_list_crm_data_source_type.proto"; +import "google/ads/googleads/v17/enums/user_list_date_rule_item_operator.proto"; +import "google/ads/googleads/v17/enums/user_list_flexible_rule_operator.proto"; +import "google/ads/googleads/v17/enums/user_list_logical_rule_operator.proto"; +import "google/ads/googleads/v17/enums/user_list_number_rule_item_operator.proto"; +import "google/ads/googleads/v17/enums/user_list_prepopulation_status.proto"; +import "google/ads/googleads/v17/enums/user_list_rule_type.proto"; +import "google/ads/googleads/v17/enums/user_list_string_rule_item_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "UserListsProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing user list types. +// LookalikeUserlist, composed of users similar to those +// of a configurable seed (set of UserLists) +message LookalikeUserListInfo { + // Seed UserList ID from which this list is derived, provided by user. + repeated int64 seed_user_list_ids = 1; + + // Expansion level, reflecting the size of the lookalike audience + google.ads.googleads.v17.enums.LookalikeExpansionLevelEnum + .LookalikeExpansionLevel expansion_level = 2; + + // Countries targeted by the Lookalike. Two-letter country code as defined by + // ISO-3166 + repeated string country_codes = 3; +} + // SimilarUserList is a list of users which are similar to users from another // UserList. These lists are read-only and automatically created by Google. message SimilarUserListInfo { @@ -61,12 +77,12 @@ message CrmBasedUserListInfo { // Matching key type of the list. // Mixed data types are not allowed on the same list. // This field is required for an ADD operation. - google.ads.googleads.v14.enums.CustomerMatchUploadKeyTypeEnum + google.ads.googleads.v17.enums.CustomerMatchUploadKeyTypeEnum .CustomerMatchUploadKeyType upload_key_type = 2; // Data source of the list. Default value is FIRST_PARTY. // Only customers on the allow-list can create third-party sourced CRM lists. - google.ads.googleads.v14.enums.UserListCrmDataSourceTypeEnum + google.ads.googleads.v17.enums.UserListCrmDataSourceTypeEnum .UserListCrmDataSourceType data_source_type = 3; } @@ -80,7 +96,7 @@ message UserListRuleInfo { // groups themselves will be ORed together. // // OR of ANDs is the only supported type for FlexibleRuleUserList. - google.ads.googleads.v14.enums.UserListRuleTypeEnum.UserListRuleType + google.ads.googleads.v17.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1; // List of rule item groups that defines this rule. @@ -124,7 +140,7 @@ message UserListDateRuleItemInfo { // Date comparison operator. // This field is required and must be populated when creating new date // rule item. - google.ads.googleads.v14.enums.UserListDateRuleItemOperatorEnum + google.ads.googleads.v17.enums.UserListDateRuleItemOperatorEnum .UserListDateRuleItemOperator operator = 1; @@ -144,7 +160,7 @@ message UserListNumberRuleItemInfo { // Number comparison operator. // This field is required and must be populated when creating a new number // rule item. - google.ads.googleads.v14.enums.UserListNumberRuleItemOperatorEnum + google.ads.googleads.v17.enums.UserListNumberRuleItemOperatorEnum .UserListNumberRuleItemOperator operator = 1; @@ -159,7 +175,7 @@ message UserListStringRuleItemInfo { // String comparison operator. // This field is required and must be populated when creating a new string // rule item. - google.ads.googleads.v14.enums.UserListStringRuleItemOperatorEnum + google.ads.googleads.v17.enums.UserListStringRuleItemOperatorEnum .UserListStringRuleItemOperator operator = 1; @@ -189,7 +205,7 @@ message FlexibleRuleOperandInfo { // exclusive operands. message FlexibleRuleUserListInfo { // Operator that defines how the inclusive operands are combined. - google.ads.googleads.v14.enums.UserListFlexibleRuleOperatorEnum + google.ads.googleads.v17.enums.UserListFlexibleRuleOperatorEnum .UserListFlexibleRuleOperator inclusive_rule_operator = 1; // Rules representing users that should be included in the user list. These @@ -213,7 +229,7 @@ message RuleBasedUserListInfo { // list's membership duration and the date when the remarketing tag is added. // The status will be updated to FINISHED once request is processed, or FAILED // if the request fails. - google.ads.googleads.v14.enums.UserListPrepopulationStatusEnum + google.ads.googleads.v17.enums.UserListPrepopulationStatusEnum .UserListPrepopulationStatus prepopulation_status = 1; // Flexible rule representation of visitors with one or multiple actions. The @@ -240,7 +256,7 @@ message LogicalUserListInfo { // list of user lists as operands. message UserListLogicalRuleInfo { // The logical operator of the rule. - google.ads.googleads.v14.enums.UserListLogicalRuleOperatorEnum + google.ads.googleads.v17.enums.UserListLogicalRuleOperatorEnum .UserListLogicalRuleOperator operator = 1; diff --git a/third_party/googleapis/google/ads/googleads/v14/common/value.proto b/third_party/googleapis/google/ads/googleads/v17/common/value.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/common/value.proto rename to third_party/googleapis/google/ads/googleads/v17/common/value.proto index be8084ec9..34c37a69c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/common/value.proto +++ b/third_party/googleapis/google/ads/googleads/v17/common/value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.common; +package google.ads.googleads.v17.common; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common"; option java_multiple_files = true; option java_outer_classname = "ValueProto"; -option java_package = "com.google.ads.googleads.v14.common"; +option java_package = "com.google.ads.googleads.v17.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V14::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V17::Common"; // Proto file describing value types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/BUILD.bazel b/third_party/googleapis/google/ads/googleads/v17/enums/BUILD.bazel similarity index 100% rename from third_party/googleapis/google/ads/googleads/v14/enums/BUILD.bazel rename to third_party/googleapis/google/ads/googleads/v17/enums/BUILD.bazel diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/access_invitation_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/access_invitation_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/access_invitation_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/access_invitation_status.proto index f01e1f1d8..7b88042a1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/access_invitation_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/access_invitation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccessInvitationStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing AccessInvitationStatus enum. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/access_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/access_reason.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/access_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/access_reason.proto index eec69edef..dbdcaf75e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/access_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/access_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccessReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Indicates the way the resource such as user list is related to a user. message AccessReasonEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/access_role.proto b/third_party/googleapis/google/ads/googleads/v17/enums/access_role.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/access_role.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/access_role.proto index 22bbb3980..5bfe3952a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/access_role.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/access_role.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccessRoleProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing possible access role for user. message AccessRoleEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/account_budget_proposal_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/account_budget_proposal_status.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/account_budget_proposal_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/account_budget_proposal_status.proto index 4920ef825..95a51df95 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/account_budget_proposal_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/account_budget_proposal_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing AccountBudgetProposal statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/account_budget_proposal_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/account_budget_proposal_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/account_budget_proposal_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/account_budget_proposal_type.proto index b879319ac..9e25dc9d7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/account_budget_proposal_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/account_budget_proposal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing AccountBudgetProposal types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/account_budget_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/account_budget_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/account_budget_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/account_budget_status.proto index 676316b3b..d7e66a234 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/account_budget_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/account_budget_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing AccountBudget statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/account_link_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/account_link_status.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/account_link_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/account_link_status.proto index 3c5dfda8b..b6d7ab2f5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/account_link_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/account_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountLinkStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing possible statuses of an account link. message AccountLinkStatusEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_customizer_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_customizer_placeholder_field.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_customizer_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_customizer_placeholder_field.proto index cd05d884f..103547d70 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_customizer_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_customizer_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdCustomizerPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Ad Customizer placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_destination_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_destination_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_destination_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_destination_type.proto index 52813d652..d8810f9ca 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_destination_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_destination_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdDestinationTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad destination types. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_primary_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_primary_status.proto new file mode 100644 index 000000000..7c3555186 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_primary_status.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdPrimaryStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing ad group ad primary status. + +// Ad Group Ad Primary Status. Provides insight into why an ad group ad is not +// serving or not serving optimally. +message AdGroupAdPrimaryStatusEnum { + // The possible statuses of an AdGroupAd. + enum AdGroupAdPrimaryStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad group ad is eligible to serve. + ELIGIBLE = 2; + + // The ad group ad is paused. + PAUSED = 3; + + // The ad group ad is removed. + REMOVED = 4; + + // The ad cannot serve now, but may serve later without advertiser action. + PENDING = 5; + + // The ad group ad is serving in a limited capacity. + LIMITED = 6; + + // The ad group ad is not eligible to serve. + NOT_ELIGIBLE = 7; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_primary_status_reason.proto new file mode 100644 index 000000000..80afc964b --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_primary_status_reason.proto @@ -0,0 +1,101 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdPrimaryStatusReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing ad_group_ad primary status reasons. + +// AdGroupAd Primary Status Reason. Provides insight into why an ad group ad is +// not serving or not serving optimally. These reasons are aggregated to +// determine an overall AdGroupAdPrimaryStatus. +message AdGroupAdPrimaryStatusReasonEnum { + // Possible ad group ad status reasons. + enum AdGroupAdPrimaryStatusReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The user-specified campaign status is removed. Contributes to + // AdGroupAdPrimaryStatus.REMOVED. + CAMPAIGN_REMOVED = 2; + + // The user-specified campaign status is paused. Contributes to + // AdGroupAdPrimaryStatus.PAUSED. + CAMPAIGN_PAUSED = 3; + + // The user-specified time for this campaign to start is in the future. + // Contributes to AdGroupAdPrimaryStatus.PENDING. + CAMPAIGN_PENDING = 4; + + // The user-specified time for this campaign to end has passed. Contributes + // to AdGroupAdPrimaryStatus.ENDED. + CAMPAIGN_ENDED = 5; + + // The user-specified ad group status is paused. Contributes to + // AdGroupAdPrimaryStatus.PAUSED. + AD_GROUP_PAUSED = 6; + + // The user-specified ad group status is removed. Contributes to + // AdGroupAdPrimaryStatus.REMOVED. + AD_GROUP_REMOVED = 7; + + // The user-specified ad status is paused. Contributes to + // AdGroupAdPrimaryStatus.PAUSED. + AD_GROUP_AD_PAUSED = 8; + + // The user-specified ad status is removed. Contributes to + // AdGroupAdPrimaryStatus.REMOVED. + AD_GROUP_AD_REMOVED = 9; + + // The ad is disapproved. Contributes to + // AdGroupAdPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_AD_DISAPPROVED = 10; + + // The ad is under review. Contributes to AdGroupAdPrimaryStatus.PENDING. + AD_GROUP_AD_UNDER_REVIEW = 11; + + // The ad is poor quality. This is determined by the serving stack that + // served the Ad. Contributes to AdGroupAdPrimaryStatus.LIMITED. + AD_GROUP_AD_POOR_QUALITY = 12; + + // No eligible ads instances could be generated. Contributes to + // AdGroupAdPrimaryStatus.PENDING. + AD_GROUP_AD_NO_ADS = 13; + + // The ad is internally labeled with a limiting label. Contributes to + // AdGroupAdPrimaryStatus.LIMITED. + AD_GROUP_AD_APPROVED_LABELED = 14; + + // The ad is only serving in the user-specified area of interest. + // Contributes to AdGroupAdPrimaryStatus.LIMITED. + AD_GROUP_AD_AREA_OF_INTEREST_ONLY = 15; + + // The ad is part of an ongoing appeal. This reason does not impact + // AdGroupAdPrimaryStatus. + AD_GROUP_AD_UNDER_APPEAL = 16; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_ad_rotation_mode.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_rotation_mode.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_group_ad_rotation_mode.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_rotation_mode.proto index b8a5c3030..9fb18b01a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_ad_rotation_mode.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_rotation_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdRotationModeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad group ad rotation mode. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_ad_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_group_ad_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_status.proto index 333cf5e4b..3b037d5cd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_ad_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_ad_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad group status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_criterion_approval_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_approval_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_group_criterion_approval_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_approval_status.proto index 17ab6bdd9..2053ae0e6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_criterion_approval_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing approval status for the criterion. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_primary_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_primary_status.proto new file mode 100644 index 000000000..640fbc363 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_primary_status.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionPrimaryStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing Ad Group Criterion primary statuses. + +// Container for enum describing possible ad group criterion primary status. +message AdGroupCriterionPrimaryStatusEnum { + // Enum describing the possible ad group criterion primary status. Provides + // insight into why an ad group criterion is not serving or not serving + // optimally. + enum AdGroupCriterionPrimaryStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad group criterion is eligible to serve. + ELIGIBLE = 2; + + // The ad group criterion is paused. + PAUSED = 3; + + // The ad group criterion is removed. + REMOVED = 4; + + // The ad group criterion is pending. + PENDING = 5; + + // The ad group criterion is not eligible to serve. + NOT_ELIGIBLE = 6; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_primary_status_reason.proto new file mode 100644 index 000000000..0adb392ae --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_primary_status_reason.proto @@ -0,0 +1,116 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionPrimaryStatusReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing AdGroupCriterionPrimaryStatusReasons. + +// Container for enum describing possible ad group criterion primary status +// reasons. +message AdGroupCriterionPrimaryStatusReasonEnum { + // Enum describing the possible Ad Group Criterion primary status reasons. + // Provides insight into why an Ad Group Criterion is not serving or not + // serving optimally. These reasons are aggregated to determine an overall + // Ad Group Criterion primary status. + enum AdGroupCriterionPrimaryStatusReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents unknown value in this version. + UNKNOWN = 1; + + // The user-specified time for this campaign to start is in the future. + // Contributes to AdGroupCriterionPrimaryStatus.PENDING. + CAMPAIGN_PENDING = 2; + + // The ad group criterion is overridden by negative campaign criterion. + // Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_CRITERION_NEGATIVE = 3; + + // The user-specified campaign status is paused. Contributes to + // AdGroupCriterionPrimaryStatus.PAUSED. + CAMPAIGN_PAUSED = 4; + + // The user-specified campaign status is removed. Contributes to + // AdGroupCriterionPrimaryStatus.REMOVED. + CAMPAIGN_REMOVED = 5; + + // The user-specified time for this campaign to end has passed. Contributes + // to AdGroupCriterionPrimaryStatus.ENDED. + CAMPAIGN_ENDED = 6; + + // The user-specified ad group status is paused. Contributes to + // AdGroupCriterionPrimaryStatus.PAUSED. + AD_GROUP_PAUSED = 7; + + // The user-specified ad group status is removed. Contributes to + // AdGroupCriterionPrimaryStatus.REMOVED. + AD_GROUP_REMOVED = 8; + + // The ad group criterion is disapproved by the ads approval system. + // Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_DISAPPROVED = 9; + + // The ad group criterion is rarely served. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_RARELY_SERVED = 10; + + // The ad group criterion has a low quality score. Contributes to + // AdGroupCriterionPrimaryStatus.LIMITED. + AD_GROUP_CRITERION_LOW_QUALITY = 11; + + // The ad group criterion is under review. Contributes to + // AdGroupCriterionPrimaryStatus.PENDING. + AD_GROUP_CRITERION_UNDER_REVIEW = 12; + + // The ad group criterion is pending review. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_PENDING_REVIEW = 13; + + // The ad group criterion's bid is below the value necessary to serve on the + // first page. Contributes to AdGroupCriterionPrimaryStatus.LIMITED. + AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID = 14; + + // The ad group criterion is negative. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_NEGATIVE = 15; + + // The ad group criterion is restricted. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_RESTRICTED = 16; + + // The user-specified ad group criterion status is paused. Contributes to + // AdGroupCriterionPrimaryStatus.PAUSED. + AD_GROUP_CRITERION_PAUSED = 17; + + // The ad group criterion has been paused due to prolonged low activity in + // serving. Contributes to AdGroupCriterionPrimaryStatus.PAUSED. + AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY = 18; + + // The user-specified ad group criterion status is removed. Contributes to + // AdGroupCriterionPrimaryStatus.REMOVED. + AD_GROUP_CRITERION_REMOVED = 19; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_criterion_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_group_criterion_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_status.proto index 47105f575..9e13e8fd1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_criterion_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_criterion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing AdGroupCriterion statuses. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_primary_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_primary_status.proto new file mode 100644 index 000000000..b822f8856 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_primary_status.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupPrimaryStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing ad group primary status. + +// Ad Group Primary Status. Provides insight into why an ad group is not serving +// or not serving optimally. +message AdGroupPrimaryStatusEnum { + // The possible statuses of an AdGroup. + enum AdGroupPrimaryStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad group is eligible to serve. + ELIGIBLE = 2; + + // The ad group is paused. + PAUSED = 3; + + // The ad group is removed. + REMOVED = 4; + + // The ad group may serve in the future. + PENDING = 5; + + // The ad group is not eligible to serve. + NOT_ELIGIBLE = 6; + + // The ad group has limited servability. + LIMITED = 7; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_primary_status_reason.proto new file mode 100644 index 000000000..90a7d71ab --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_primary_status_reason.proto @@ -0,0 +1,106 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupPrimaryStatusReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing ad group source. + +// Ad Group Primary Status Reason. Provides insight into why an ad group is not +// serving or not serving optimally. These reasons are aggregated to determine +// an overall AdGroupPrimaryStatus. +message AdGroupPrimaryStatusReasonEnum { + // Possible ad group status reasons. + enum AdGroupPrimaryStatusReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The user-specified campaign status is removed. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_REMOVED = 2; + + // The user-specified campaign status is paused. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_PAUSED = 3; + + // The user-specified time for this campaign to start is in the future. + // Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE + CAMPAIGN_PENDING = 4; + + // The user-specified time for this campaign to end has passed. Contributes + // to AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_ENDED = 5; + + // The user-specified ad group status is paused. Contributes to + // AdGroupPrimaryStatus.PAUSED. + AD_GROUP_PAUSED = 6; + + // The user-specified ad group status is removed. Contributes to + // AdGroupPrimaryStatus.REMOVED. + AD_GROUP_REMOVED = 7; + + // The construction of this ad group is not yet complete. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_INCOMPLETE = 8; + + // The user-specified keyword statuses in this ad group are all paused. + // Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE. + KEYWORDS_PAUSED = 9; + + // No eligible keywords exist in this ad group. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + NO_KEYWORDS = 10; + + // The user-specified ad group ads statuses in this ad group are all paused. + // Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_ADS_PAUSED = 11; + + // No eligible ad group ads exist in this ad group. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + NO_AD_GROUP_ADS = 12; + + // Policy status reason when at least one ad is disapproved. Contributes to + // multiple AdGroupPrimaryStatus. + HAS_ADS_DISAPPROVED = 13; + + // Policy status reason when at least one ad is limited by policy. + // Contributes to multiple AdGroupPrimaryStatus. + HAS_ADS_LIMITED_BY_POLICY = 14; + + // Policy status reason when most ads are pending review. Contributes to + // AdGroupPrimaryStatus.PENDING. + MOST_ADS_UNDER_REVIEW = 15; + + // The AdGroup belongs to a Draft campaign. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_DRAFT = 16; + + // Ad group has been paused due to prolonged low activity in serving. + // Contributes to AdGroupPrimaryStatus.PAUSED. + AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY = 19; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_group_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_group_status.proto index 9663935c7..3d6893f09 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad group status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_type.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_group_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_group_type.proto index 2e2653a22..2bbb20cbd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_group_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad group types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_network_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_network_type.proto similarity index 74% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_network_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_network_type.proto index 115fb4cc9..4eaa69b70 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_network_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_network_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdNetworkTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad network types. @@ -46,13 +46,13 @@ message AdNetworkTypeEnum { // Display Network. CONTENT = 4; - // YouTube Search. - YOUTUBE_SEARCH = 5; - - // YouTube Videos - YOUTUBE_WATCH = 6; - // Cross-network. MIXED = 7; + + // YouTube + YOUTUBE = 8; + + // Google TV + GOOGLE_TV = 9; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_serving_optimization_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_serving_optimization_status.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_serving_optimization_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_serving_optimization_status.proto index 2d4afaa07..e15348a7b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_serving_optimization_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_serving_optimization_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdServingOptimizationStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad serving statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_strength.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_strength.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_strength.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_strength.proto index 4b95c6d6d..fab4cf7ef 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_strength.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_strength.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdStrengthProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ad strengths. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/ad_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/ad_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/ad_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/ad_type.proto index 8e2b791da..0b108f557 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/ad_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/ad_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the ad type. @@ -121,16 +121,19 @@ message AdTypeEnum { // In-feed video ad. IN_FEED_VIDEO_AD = 34; - // Discovery multi asset ad. - DISCOVERY_MULTI_ASSET_AD = 35; + // Demand Gen multi asset ad. + DEMAND_GEN_MULTI_ASSET_AD = 40; - // Discovery carousel ad. - DISCOVERY_CAROUSEL_AD = 36; + // Demand Gen carousel ad. + DEMAND_GEN_CAROUSEL_AD = 41; // Travel ad. TRAVEL_AD = 37; - // Discovery video responsive ad. - DISCOVERY_VIDEO_RESPONSIVE_AD = 38; + // Demand Gen video responsive ad. + DEMAND_GEN_VIDEO_RESPONSIVE_AD = 42; + + // Demand Gen product ad. + DEMAND_GEN_PRODUCT_AD = 39; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/advertising_channel_sub_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/advertising_channel_sub_type.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/enums/advertising_channel_sub_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/advertising_channel_sub_type.proto index 4a8f6ec01..062289339 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/advertising_channel_sub_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/advertising_channel_sub_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdvertisingChannelSubTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing advertising channel subtypes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/advertising_channel_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/advertising_channel_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/advertising_channel_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/advertising_channel_type.proto index 8e243a1f3..38cdaa48f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/advertising_channel_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/advertising_channel_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdvertisingChannelTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing advertising channel types @@ -69,10 +69,10 @@ message AdvertisingChannelTypeEnum { // Local services campaigns. LOCAL_SERVICES = 11; - // Discovery campaigns. - DISCOVERY = 12; - // Travel campaigns. TRAVEL = 13; + + // Demand Gen campaigns. + DEMAND_GEN = 14; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/affiliate_location_feed_relationship_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/affiliate_location_feed_relationship_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/affiliate_location_feed_relationship_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/affiliate_location_feed_relationship_type.proto index d689c6d83..bbcf14eee 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/affiliate_location_feed_relationship_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/affiliate_location_feed_relationship_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing relation type for affiliate location feeds. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/affiliate_location_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/affiliate_location_placeholder_field.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/affiliate_location_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/affiliate_location_placeholder_field.proto index f47e76c4a..dfdf513b3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/affiliate_location_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/affiliate_location_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AffiliateLocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Affiliate Location placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/age_range_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/age_range_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/age_range_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/age_range_type.proto index bae22acda..5ea1df714 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/age_range_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/age_range_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AgeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing age range types. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/android_privacy_interaction_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/android_privacy_interaction_type.proto new file mode 100644 index 000000000..c19e96f79 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/android_privacy_interaction_type.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AndroidPrivacyInteractionTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing Android privacy interaction types. + +// The interaction type enum for Android privacy shared key. +message AndroidPrivacyInteractionTypeEnum { + // Enumerates interaction types + enum AndroidPrivacyInteractionType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The physical click interaction type. + CLICK = 2; + + // The 10 seconds engaged view interaction type. + ENGAGED_VIEW = 3; + + // The view (ad impression) interaction type. + VIEW = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/android_privacy_network_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/android_privacy_network_type.proto new file mode 100644 index 000000000..0298eaf3e --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/android_privacy_network_type.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AndroidPrivacyNetworkTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing Android privacy network types. + +// The network type enum for Android privacy shared key. +message AndroidPrivacyNetworkTypeEnum { + // Enumerates network types + enum AndroidPrivacyNetworkType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Search Network. + SEARCH = 2; + + // Display Network. + DISPLAY = 3; + + // YouTube Network. + YOUTUBE = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_bidding_goal.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_bidding_goal.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_bidding_goal.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_bidding_goal.proto index f1d621a38..15bee9a28 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_bidding_goal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_bidding_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppBiddingGoalProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing an app bidding goal for raise Target CPA // recommendation. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_campaign_app_store.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_campaign_app_store.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_campaign_app_store.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_campaign_app_store.proto index 084b3b8e4..9023f1446 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_campaign_app_store.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_campaign_app_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppCampaignAppStoreProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing App Campaign app store. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_campaign_bidding_strategy_goal_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_campaign_bidding_strategy_goal_type.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_campaign_bidding_strategy_goal_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_campaign_bidding_strategy_goal_type.proto index 1f7bf41dc..a8e922ef2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_campaign_bidding_strategy_goal_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_campaign_bidding_strategy_goal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing App Campaign bidding strategy goal types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_payment_model_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_payment_model_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_payment_model_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_payment_model_type.proto index 81e5bac6e..26fdec3f2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_payment_model_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_payment_model_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppPaymentModelTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing criteria types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_placeholder_field.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_placeholder_field.proto index c1ecc09ec..a12f4d19a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing App placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_store.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_store.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_store.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_store.proto index db598cf40..60271d286 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_store.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppStoreProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing app store types for an app extension. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/app_url_operating_system_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/app_url_operating_system_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/app_url_operating_system_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/app_url_operating_system_type.proto index 90a95d3b9..85966a702 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/app_url_operating_system_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/app_url_operating_system_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppUrlOperatingSystemTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing operating system for a deeplink app URL. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/asset_automation_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_automation_status.proto new file mode 100644 index 000000000..cfb096cb3 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_automation_status.proto @@ -0,0 +1,48 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetAutomationStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing asset automation status + +// Container for enum describing the status of asset automation. +message AssetAutomationStatusEnum { + // The status of asset automation. + enum AssetAutomationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Opted-in will enable generating and serving an asset + // automation type. + OPTED_IN = 2; + + // Opted-out will stop generating and serving an asset + // automation type. + OPTED_OUT = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/asset_automation_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_automation_type.proto new file mode 100644 index 000000000..f45ab0979 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_automation_type.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetAutomationTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing asset automation type + +// Container for enum describing the type of asset automation. +message AssetAutomationTypeEnum { + // The type of asset automation. + enum AssetAutomationType { + // Not specified. + UNSPECIFIED = 0; + + // Used as a return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Text asset automation includes headlines and descriptions. + // By default, advertisers are opted-in for Performance Max and + // opted-out for Search. + TEXT_ASSET_AUTOMATION = 2; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_field_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_field_type.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_field_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_field_type.proto index 140d1586d..8c5ff6f1a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_field_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_field_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset type. @@ -119,5 +119,8 @@ message AssetFieldTypeEnum { // The asset is linked for use as a hotel property in a Performance Max for // travel goals campaign. HOTEL_PROPERTY = 28; + + // The asset is linked for use as a Demand Gen carousel card. + DEMAND_GEN_CAROUSEL_CARD = 30; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_group_primary_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_primary_status.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_group_primary_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_group_primary_status.proto index 7e089b193..ac60c68be 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_group_primary_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_primary_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupPrimaryStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset group primary statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_group_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_primary_status_reason.proto similarity index 60% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_group_primary_status_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_group_primary_status_reason.proto index df5b81bf2..49f28b51e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_group_primary_status_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_primary_status_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupPrimaryStatusReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset group primary statuses. @@ -39,32 +39,40 @@ message AssetGroupPrimaryStatusReasonEnum { // Used for return value only. Represents value unknown in this version. UNKNOWN = 1; - // The user-specified asset group status is paused. + // The user-specified asset group status is paused. Contributes to + // AssetGroupPrimaryStatus.PAUSED ASSET_GROUP_PAUSED = 2; - // The user-specified asset group status is removed. + // The user-specified asset group status is removed. Contributes to + // AssetGroupPrimaryStatus.REMOVED. ASSET_GROUP_REMOVED = 3; - // The user-specified campaign status is removed. + // The user-specified campaign status is removed. Contributes to + // AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_REMOVED = 4; - // The user-specified campaign status is paused. + // The user-specified campaign status is paused. Contributes to + // AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_PAUSED = 5; // The user-specified time for this campaign to start is in the future. + // Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_PENDING = 6; - // The user-specified time for this campaign to end has passed. + // The user-specified time for this campaign to end has passed. Contributes + // to AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_ENDED = 7; // The asset group is approved but only serves in limited capacity due to - // policies. + // policies. Contributes to AssetGroupPrimaryStatus.LIMITED. ASSET_GROUP_LIMITED = 8; - // The asset group has been marked as disapproved. + // The asset group has been marked as disapproved. Contributes to + // AssetGroupPrimaryStatus.NOT_ELIGIBLE. ASSET_GROUP_DISAPPROVED = 9; - // The asset group has not completed policy review. + // The asset group has not completed policy review. Contributes to + // AssetGroupPrimaryStatus.PENDING. ASSET_GROUP_UNDER_REVIEW = 10; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_signal_approval_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_signal_approval_status.proto new file mode 100644 index 000000000..4700ae304 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_signal_approval_status.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupSignalApprovalStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing approval status for the signal. + +// Container for enum describing possible AssetGroupSignal approval statuses. +// Details see https://support.google.com/google-ads/answer/2453978. +message AssetGroupSignalApprovalStatusEnum { + // Enumerates AssetGroupSignal approval statuses, which are only used for + // Search Theme Signal. + enum AssetGroupSignalApprovalStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Search Theme is eligible to show ads. + APPROVED = 2; + + // Low search volume; Below first page bid estimate. + LIMITED = 3; + + // Search Theme is inactive and isn't showing ads. A disapproved Search + // Theme usually means there's an issue with one or more of our advertising + // policies. + DISAPPROVED = 4; + + // Search Theme is under review. It won’t be able to trigger ads until + // it's been reviewed. + UNDER_REVIEW = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_group_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_group_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_group_status.proto index b367ab61a..37ad6fd64 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_group_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset group status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_link_primary_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_link_primary_status.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_link_primary_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_link_primary_status.proto index b0fb6f216..e36e0c294 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_link_primary_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_link_primary_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetLinkPrimaryStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset source. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto index e88929f79..8516932c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetLinkPrimaryStatusReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset source. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_link_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_link_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_link_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_link_status.proto index cbf453c3f..1dcc9eccb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_link_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetLinkStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing status of an asset link. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_offline_evaluation_error_reasons.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_offline_evaluation_error_reasons.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_offline_evaluation_error_reasons.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_offline_evaluation_error_reasons.proto index cf72d2eaf..80e5c1570 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_offline_evaluation_error_reasons.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_offline_evaluation_error_reasons.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetOfflineEvaluationErrorReasonsProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset source. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_performance_label.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_performance_label.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_performance_label.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_performance_label.proto index fe0397c1c..d452d8479 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_performance_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_performance_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetPerformanceLabelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the performance label of an asset. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_asset_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_asset_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_set_asset_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_set_asset_status.proto index b5060730e..f9f53c29a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_asset_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_asset_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset set status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_link_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_link_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_set_link_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_set_link_status.proto index df7089af0..41504d2fa 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_link_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetLinkStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset set status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_set_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_set_status.proto index f31d1b5d4..324881fb1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset set status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_type.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_set_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_set_type.proto index 74e668a02..183c390c6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_set_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_set_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset set type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_source.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_source.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_source.proto index 380f56100..2cb236f2f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_source.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSourceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset source. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/asset_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/asset_type.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/asset_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/asset_type.proto index 65548c222..2a809a475 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/asset_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/asset_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing asset type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/async_action_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/async_action_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/async_action_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/async_action_status.proto index 400524401..b44872864 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/async_action_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/async_action_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AsyncActionStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing experiment async action status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/attribution_model.proto b/third_party/googleapis/google/ads/googleads/v17/enums/attribution_model.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/attribution_model.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/attribution_model.proto index e8a098142..33e5ddee3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/attribution_model.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/attribution_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AttributionModelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum representing the attribution model that describes how to // distribute credit for a particular conversion across potentially many prior diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/audience_insights_dimension.proto b/third_party/googleapis/google/ads/googleads/v17/enums/audience_insights_dimension.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/audience_insights_dimension.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/audience_insights_dimension.proto index b27978c43..6d8da9e03 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/audience_insights_dimension.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/audience_insights_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AudienceInsightsDimensionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing audience insights dimensions. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/audience_scope.proto b/third_party/googleapis/google/ads/googleads/v17/enums/audience_scope.proto new file mode 100644 index 000000000..77c73c366 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/audience_scope.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AudienceScopeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing audience scope. + +// Defines the scope an audience can be used in. +message AudienceScopeEnum { + // Enum containing possible audience scope values. + enum AudienceScope { + // The scope has not been specified. + UNSPECIFIED = 0; + + // The received value is not known in this version. + UNKNOWN = 1; + + // The audience is scoped at the customer level. + CUSTOMER = 2; + + // The audience is scoped under a specific AssetGroup. + ASSET_GROUP = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/audience_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/audience_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/audience_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/audience_status.proto index 98f303df7..76b08623a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/audience_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/audience_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AudienceStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing audience status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/batch_job_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/batch_job_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/batch_job_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/batch_job_status.proto index cc73346fc..676f648c6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/batch_job_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/batch_job_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BatchJobStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing batch job statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/bid_modifier_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/bid_modifier_source.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/bid_modifier_source.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/bid_modifier_source.proto index 4f8eec618..7de970848 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/bid_modifier_source.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/bid_modifier_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BidModifierSourceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bid modifier source. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_source.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/bidding_source.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/bidding_source.proto index 5bcfc9f8b..7ed05881d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_source.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingSourceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding sources. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_status.proto index 9e4149bb3..0aa4079c2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing BiddingStrategy statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_system_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_system_status.proto similarity index 93% rename from third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_system_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_system_status.proto index 9a61a9ac5..06dcecef9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_system_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_system_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategySystemStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing BiddingStrategy statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_type.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_type.proto index 64db8d752..4f7f0bbd7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/bidding_strategy_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/bidding_strategy_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding schemes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/billing_setup_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/billing_setup_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/billing_setup_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/billing_setup_status.proto index 7e4dd2f92..df4b5af8c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/billing_setup_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/billing_setup_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BillingSetupStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing BillingSetup statuses. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/brand_request_rejection_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/brand_request_rejection_reason.proto new file mode 100644 index 000000000..d43c845c5 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/brand_request_rejection_reason.proto @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BrandRequestRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the brand request rejection reason for the criterion. + +// Container for enum describing rejection reasons for the customer brand +// requests. +message BrandRequestRejectionReasonEnum { + // Enumeration of different brand request rejection reasons. + enum BrandRequestRejectionReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Brand is already present in the commercial brand set. + EXISTING_BRAND = 2; + + // Brand is already present in the commercial brand set, but is a variant. + EXISTING_BRAND_VARIANT = 3; + + // Brand information is not correct (eg: URL and name don't match). + INCORRECT_INFORMATION = 4; + + // Not a valid brand as per Google policy. + NOT_A_BRAND = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/brand_safety_suitability.proto b/third_party/googleapis/google/ads/googleads/v17/enums/brand_safety_suitability.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/brand_safety_suitability.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/brand_safety_suitability.proto index c99c06a89..5c0f9a4a8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/brand_safety_suitability.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/brand_safety_suitability.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BrandSafetySuitabilityProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing brand safety suitability settings. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/brand_state.proto b/third_party/googleapis/google/ads/googleads/v17/enums/brand_state.proto new file mode 100644 index 000000000..eea3b43b0 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/brand_state.proto @@ -0,0 +1,64 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BrandStateProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing approval status for the criterion. + +// Container for enum describing possible brand states. +message BrandStateEnum { + // Enumeration of different brand states. + enum BrandState { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Brand is verified and globally available for selection + ENABLED = 2; + + // Brand was globally available in past but is no longer a valid brand + // (based on business criteria) + DEPRECATED = 3; + + // Brand is unverified and customer scoped, but can be selected by customer + // (only who requested for same) for targeting + UNVERIFIED = 4; + + // Was a customer-scoped (unverified) brand, which got approved by business + // and added to the global list. Its assigned CKG MID should be used instead + // of this + APPROVED = 5; + + // Was a customer-scoped (unverified) brand, but the request was canceled by + // customer and this brand id is no longer valid + CANCELLED = 6; + + // Was a customer-scoped (unverified) brand, but the request was rejected by + // internal business team and this brand id is no longer valid + REJECTED = 7; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/budget_campaign_association_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/budget_campaign_association_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/budget_campaign_association_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/budget_campaign_association_status.proto index 20a186600..0bd5c5e56 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/budget_campaign_association_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/budget_campaign_association_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetCampaignAssociationStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Budget and Campaign association status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/budget_delivery_method.proto b/third_party/googleapis/google/ads/googleads/v17/enums/budget_delivery_method.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/budget_delivery_method.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/budget_delivery_method.proto index 62196a5f9..175b5cdd3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/budget_delivery_method.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/budget_delivery_method.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetDeliveryMethodProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Budget delivery methods. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/budget_period.proto b/third_party/googleapis/google/ads/googleads/v17/enums/budget_period.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/enums/budget_period.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/budget_period.proto index 954e03d57..95297723d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/budget_period.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/budget_period.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetPeriodProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Budget delivery methods. @@ -41,7 +41,7 @@ message BudgetPeriodEnum { DAILY = 2; // Custom budget, added back in V5. - // Custom bugdet can be used with total_amount to specify lifetime budget + // Custom budget can be used with total_amount to specify lifetime budget // limit. See: https://support.google.com/google-ads/answer/6385083 for more // info. CUSTOM_PERIOD = 5; diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/budget_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/budget_status.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/budget_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/budget_status.proto index 9d9255ff2..1f50575b7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/budget_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/budget_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Budget statuses diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/budget_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/budget_type.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/budget_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/budget_type.proto index c3317be0d..e42ecb67a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/budget_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/budget_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Budget types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/call_conversion_reporting_state.proto b/third_party/googleapis/google/ads/googleads/v17/enums/call_conversion_reporting_state.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/call_conversion_reporting_state.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/call_conversion_reporting_state.proto index 7d282325a..ca1386ff2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/call_conversion_reporting_state.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/call_conversion_reporting_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallConversionReportingStateProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing call conversion reporting state. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/call_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/call_placeholder_field.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/call_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/call_placeholder_field.proto index ac0ad8e09..abbeb096a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/call_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/call_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Call placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/call_to_action_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/call_to_action_type.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/call_to_action_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/call_to_action_type.proto index ccd0d9058..a49d33f68 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/call_to_action_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing call to action type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/call_tracking_display_location.proto b/third_party/googleapis/google/ads/googleads/v17/enums/call_tracking_display_location.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/call_tracking_display_location.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/call_tracking_display_location.proto index a9cf8b2e2..6fbce4177 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/call_tracking_display_location.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/call_tracking_display_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallTrackingDisplayLocationProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing call tracking display location. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/call_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/call_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/call_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/call_type.proto index cdd417a50..f637f2fe7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/call_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/call_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing call types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/callout_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/callout_placeholder_field.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/callout_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/callout_placeholder_field.proto index bc515cfaa..c8e4c4929 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/callout_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/callout_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CalloutPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Callout placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_criterion_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_criterion_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_criterion_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_criterion_status.proto index 34707d2ef..314999d3f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_criterion_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_criterion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing CampaignCriterion statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_draft_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_draft_status.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_draft_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_draft_status.proto index be8ce4588..dd60fb48c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_draft_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_draft_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing campaign draft status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_experiment_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_experiment_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_experiment_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_experiment_type.proto index 4c58ebc5b..25c59cd46 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_experiment_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_experiment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignExperimentTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing campaign experiment type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_group_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_group_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_group_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_group_status.proto index ba2153ec2..f89bf4908 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_group_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignGroupStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing CampaignGroup statuses. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/campaign_keyword_match_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_keyword_match_type.proto new file mode 100644 index 000000000..aea93b1b2 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_keyword_match_type.proto @@ -0,0 +1,43 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignKeywordMatchTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing CampaignKeywordMatchType. + +// Container for enum describing keyword match type. +message CampaignKeywordMatchTypeEnum { + // Enum describing keyword match type of Campaign. + enum CampaignKeywordMatchType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Campaign level broad match. + BROAD = 2; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_primary_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_primary_status.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_primary_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_primary_status.proto index 8f298107e..7b13d40ff 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_primary_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_primary_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignPrimaryStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Campaign primary statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_primary_status_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_primary_status_reason.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_primary_status_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_primary_status_reason.proto index e04317bc5..aa132f99a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_primary_status_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_primary_status_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignPrimaryStatusReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing CampaignPrimaryStatusReasons. @@ -150,5 +150,11 @@ message CampaignPrimaryStatusReasonEnum { // Most asset groups in this campaign are pending review. MOST_ASSET_GROUPS_UNDER_REVIEW = 36; + + // No eligible asset groups exist in this campaign. + NO_ASSET_GROUPS = 37; + + // All asset groups in this campaign are paused. + ASSET_GROUPS_PAUSED = 38; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_serving_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_serving_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_serving_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_serving_status.proto index 25be813e5..dcf53d61d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_serving_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_serving_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignServingStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Campaign serving statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_shared_set_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_shared_set_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_shared_set_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_shared_set_status.proto index 80ba6c4cf..aa211a899 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_shared_set_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_shared_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing campaign shared set statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/campaign_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/campaign_status.proto index 17853710e..25a02633f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/campaign_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/campaign_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing campaign status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/chain_relationship_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/chain_relationship_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/chain_relationship_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/chain_relationship_type.proto index 5837522cd..626fc0dfc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/chain_relationship_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/chain_relationship_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChainRelationshipTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing relationship type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/change_client_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/change_client_type.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/change_client_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/change_client_type.proto index 866232d8b..7463b9edf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/change_client_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/change_client_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeClientTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the sources that the change event resource was // made through. @@ -80,5 +80,8 @@ message ChangeClientTypeEnum { // Types of changes that are not categorized, for example, // changes made by coupon redemption through Google Ads. OTHER = 13; + + // Changes made by subscribing to Google Ads recommendations. + GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION = 14; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/change_event_resource_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/change_event_resource_type.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/change_event_resource_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/change_event_resource_type.proto index a7f113816..7ba620bbb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/change_event_resource_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/change_event_resource_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeEventResourceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the resource types the ChangeEvent resource supports. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/change_status_operation.proto b/third_party/googleapis/google/ads/googleads/v17/enums/change_status_operation.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/change_status_operation.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/change_status_operation.proto index 34af4823a..fbfd69b59 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/change_status_operation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/change_status_operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusOperationProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the change status operations. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/change_status_resource_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/change_status_resource_type.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/enums/change_status_resource_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/change_status_resource_type.proto index 5f694dca0..11297b524 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/change_status_resource_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/change_status_resource_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusResourceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the resource types the ChangeStatus resource supports. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/click_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/click_type.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/enums/click_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/click_type.proto index c43c3b3a7..41459d8e3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/click_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/click_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ClickTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing click types. @@ -198,5 +198,8 @@ message ClickTypeEnum { // Cross-network. From Performance Max and Discovery Campaigns. CROSS_NETWORK = 57; + + // AD Images. + AD_IMAGE = 58; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/combined_audience_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/combined_audience_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/combined_audience_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/combined_audience_status.proto index d2e89d828..8ef3c7bf4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/combined_audience_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/combined_audience_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CombinedAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing combined audience status. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/consent_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/consent_status.proto new file mode 100644 index 000000000..b544ce2b7 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/consent_status.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ConsentStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the consent status. + +// Enums represent consent status. +message ConsentStatusEnum { + // Consent status + enum ConsentStatus { + // Not specified. + UNSPECIFIED = 0; + + // Output-only. Represents a format not yet defined in this enum. + UNKNOWN = 1; + + // Granted. + GRANTED = 2; + + // Denied. + DENIED = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/content_label_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/content_label_type.proto new file mode 100644 index 000000000..ed0491e3c --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/content_label_type.proto @@ -0,0 +1,130 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ContentLabelTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing content label types. + +// Container for enum describing content label types in ContentLabel. +message ContentLabelTypeEnum { + // Enum listing the content label types supported by ContentLabel criterion. + enum ContentLabelType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Sexually suggestive content. + SEXUALLY_SUGGESTIVE = 2; + + // Below the fold placement. + BELOW_THE_FOLD = 3; + + // Parked domain. + PARKED_DOMAIN = 4; + + // Juvenile, gross & bizarre content. + JUVENILE = 6; + + // Profanity & rough language. + PROFANITY = 7; + + // Death & tragedy. + TRAGEDY = 8; + + // Video. + VIDEO = 9; + + // Content rating: G. + VIDEO_RATING_DV_G = 10; + + // Content rating: PG. + VIDEO_RATING_DV_PG = 11; + + // Content rating: T. + VIDEO_RATING_DV_T = 12; + + // Content rating: MA. + VIDEO_RATING_DV_MA = 13; + + // Content rating: not yet rated. + VIDEO_NOT_YET_RATED = 14; + + // Embedded video. + EMBEDDED_VIDEO = 15; + + // Live streaming video. + LIVE_STREAMING_VIDEO = 16; + + // Sensitive social issues. + SOCIAL_ISSUES = 17; + + // Content that's suitable for families to view together, including Made for + // Kids videos on YouTube. + BRAND_SUITABILITY_CONTENT_FOR_FAMILIES = 18; + + // Video games that simulate hand-to-hand fighting or combat with the use of + // modern or medieval weapons. + BRAND_SUITABILITY_GAMES_FIGHTING = 19; + + // Video games that feature mature content, such as violence, inappropriate + // language, or sexual suggestiveness. + BRAND_SUITABILITY_GAMES_MATURE = 20; + + // Health content that people might find sensitive or upsetting, such as + // medical procedures or images and descriptions of various medical + // conditions. + BRAND_SUITABILITY_HEALTH_SENSITIVE = 21; + + // Health content from sources that may provide accurate information but + // aren't as commonly cited as other, more well-known sources. + BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED = 22; + + // News content that's been recently announced, regardless of the themes or + // people being reported on. + BRAND_SUITABILITY_NEWS_RECENT = 23; + + // News content that people might find sensitive or upsetting, such as + // crimes, accidents, and natural incidents, or commentary on potentially + // controversial social and political issues. + BRAND_SUITABILITY_NEWS_SENSITIVE = 24; + + // News content from sources that aren't featured on Google News or YouTube + // News. + BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED = 25; + + // Political content, such as political statements made by well-known + // politicians, political elections, or events widely perceived to be + // political in nature. + BRAND_SUITABILITY_POLITICS = 26; + + // Content with religious themes, such as religious teachings or customs, + // holy sites or places of worship, well-known religious figures or people + // dressed in religious attire, or religious opinions on social and + // political issues. + BRAND_SUITABILITY_RELIGION = 27; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_category.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_category.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_category.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_category.proto index a3b150f1c..6a29aab3a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_category.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionCategoryProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing the category of conversions that are associated // with a ConversionAction. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_counting_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_counting_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_counting_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_counting_type.proto index a7e597df4..e839618c5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_counting_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_counting_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionCountingTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion action counting type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_status.proto index e071bf369..edd3ba1ee 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion action status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_type.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_type.proto index fd2c4e959..3ca4e14b8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_action_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion action type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_adjustment_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_adjustment_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_adjustment_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_adjustment_type.proto index a4eb4f369..ec2d25ab9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_adjustment_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_adjustment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionAdjustmentTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion adjustment type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_attribution_event_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_attribution_event_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_attribution_event_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_attribution_event_type.proto index 78291ea31..e19b3e9e7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_attribution_event_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_attribution_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionAttributionEventTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum indicating the event type the conversion is attributed to. message ConversionAttributionEventTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_custom_variable_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_custom_variable_status.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_custom_variable_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_custom_variable_status.proto index 1157393eb..2651eda9b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_custom_variable_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_custom_variable_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion custom variable status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_environment_enum.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_environment_enum.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_environment_enum.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_environment_enum.proto index cf93f374d..ed883be4b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_environment_enum.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_environment_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionEnvironmentEnumProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum representing the conversion environment an uploaded // conversion was recorded on, for example, App or Web. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_lag_bucket.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_lag_bucket.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_lag_bucket.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_lag_bucket.proto index e158a03d0..a063e2b63 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_lag_bucket.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_lag_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionLagBucketProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum representing the number of days between impression and // conversion. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_or_adjustment_lag_bucket.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_or_adjustment_lag_bucket.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_or_adjustment_lag_bucket.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_or_adjustment_lag_bucket.proto index afb58d07b..224588852 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_or_adjustment_lag_bucket.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_or_adjustment_lag_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionOrAdjustmentLagBucketProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum representing the number of days between the impression and // the conversion or between the impression and adjustments to the conversion. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_origin.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_origin.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_origin.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_origin.proto index e95de9a60..57d91eade 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_origin.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_origin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionOriginProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion origin. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_tracking_status_enum.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_tracking_status_enum.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_tracking_status_enum.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_tracking_status_enum.proto index 7eee4bfe9..cd1bc17dd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_tracking_status_enum.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_tracking_status_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionTrackingStatusEnumProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum representing the conversion tracking status of the // customer. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_primary_dimension.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_primary_dimension.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_primary_dimension.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_primary_dimension.proto index 9695fab1a..d7ec1d876 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_primary_dimension.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_primary_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRulePrimaryDimensionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule primary dimension. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_set_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_set_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_set_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_set_status.proto index 6010ed969..05c9b95cb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_set_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule set status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_status.proto index 152eef2b7..5ada0ed3b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/conversion_value_rule_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/conversion_value_rule_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto b/third_party/googleapis/google/ads/googleads/v17/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto index f2d6b2e7f..8d6a60a26 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConvertingUserPriorEngagementTypeAndLtvBucketProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing converting user prior engagement types and lifetime // value bucket. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_category_channel_availability_mode.proto b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_category_channel_availability_mode.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/criterion_category_channel_availability_mode.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/criterion_category_channel_availability_mode.proto index 1745605fb..3e87990c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_category_channel_availability_mode.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_category_channel_availability_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the criterion category channel availability mode. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_category_locale_availability_mode.proto b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_category_locale_availability_mode.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/criterion_category_locale_availability_mode.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/criterion_category_locale_availability_mode.proto index 9360946e5..83fa76d28 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_category_locale_availability_mode.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_category_locale_availability_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the criterion category locale availability mode. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_system_serving_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_system_serving_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/criterion_system_serving_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/criterion_system_serving_status.proto index 9581a09ca..086086063 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_system_serving_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_system_serving_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionSystemServingStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing approval status for the criterion. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_type.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/criterion_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/criterion_type.proto index fa9a97729..700a9d1fc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/criterion_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/criterion_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing criteria types. @@ -144,5 +144,17 @@ message CriterionTypeEnum { // Local Services Ads Service ID. LOCAL_SERVICE_ID = 37; + + // Search Theme. + SEARCH_THEME = 38; + + // Brand + BRAND = 39; + + // Brand List + BRAND_LIST = 40; + + // Life Event + LIFE_EVENT = 41; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_member_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_member_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_member_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_member_type.proto index c816df507..cf4e3b183 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_member_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_member_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceMemberTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom audience member type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_status.proto index 11f66771c..450b59f3d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom audience status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_type.proto index e9bc67d70..9752d6c9d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_audience_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_audience_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom audience type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_conversion_goal_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_conversion_goal_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_conversion_goal_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_conversion_goal_status.proto index 6cefae416..342ddce48 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_conversion_goal_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_conversion_goal_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom conversion goal status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_member_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_member_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_member_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_member_type.proto index c151bc25d..47a55c143 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_member_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_member_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomInterestMemberTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom interest member type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_status.proto index eb5919c53..06cc08356 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomInterestStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom interest status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_type.proto index 101ec3c03..0486e0a75 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_interest_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_interest_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomInterestTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing custom interest type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/custom_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/custom_placeholder_field.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/enums/custom_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/custom_placeholder_field.proto index 1301c4607..2afc1029b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/custom_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/custom_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Custom placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/customer_acquisition_optimization_mode.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customer_acquisition_optimization_mode.proto new file mode 100644 index 000000000..b0d4583a6 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customer_acquisition_optimization_mode.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomerAcquisitionOptimizationModeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing customer acquisition goal optimization mode. + +// Container for enum describing possible optimization mode of a customer +// acquisition goal of a campaign. +message CustomerAcquisitionOptimizationModeEnum { + // Possible optimization mode of a customer acquisition goal. + enum CustomerAcquisitionOptimizationMode { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The mode is used when campaign is optimizing equally for existing and new + // customers, which is the default value. + TARGET_ALL_EQUALLY = 2; + + // The mode is used when campaign is bidding higher for new customers than + // existing customer. + BID_HIGHER_FOR_NEW_CUSTOMER = 3; + + // The mode is used when campaign is only optimizing for new customers. + TARGET_NEW_CUSTOMER = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/customer_match_upload_key_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customer_match_upload_key_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/customer_match_upload_key_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/customer_match_upload_key_type.proto index f8b429de0..8cb022ac3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/customer_match_upload_key_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customer_match_upload_key_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerMatchUploadKeyTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Indicates what type of data are the user list's members matched from. message CustomerMatchUploadKeyTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/customer_pay_per_conversion_eligibility_failure_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customer_pay_per_conversion_eligibility_failure_reason.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/customer_pay_per_conversion_eligibility_failure_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/customer_pay_per_conversion_eligibility_failure_reason.proto index 1bdf1fcf4..471e8857a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/customer_pay_per_conversion_eligibility_failure_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customer_pay_per_conversion_eligibility_failure_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerPayPerConversionEligibilityFailureReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing pay per conversion eligibility failure reasons. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/customer_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customer_status.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/customer_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/customer_status.proto index ab38f57dd..c52f98547 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/customer_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customer_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing possible statuses of a customer. message CustomerStatusEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/customizer_attribute_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customizer_attribute_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/customizer_attribute_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/customizer_attribute_status.proto index afdb3d291..6e46d1a17 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/customizer_attribute_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customizer_attribute_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing customizer attribute status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/customizer_attribute_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customizer_attribute_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/customizer_attribute_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/customizer_attribute_type.proto index bdd5b4a0d..68ff03d84 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/customizer_attribute_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customizer_attribute_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing customizer attribute type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/customizer_value_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/customizer_value_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/customizer_value_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/customizer_value_status.proto index bf0ca2d70..e7441151c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/customizer_value_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/customizer_value_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomizerValueStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing customizer value status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/data_driven_model_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/data_driven_model_status.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/data_driven_model_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/data_driven_model_status.proto index 11b41c272..2dfa63e7d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/data_driven_model_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/data_driven_model_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DataDrivenModelStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing data-driven model status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/day_of_week.proto b/third_party/googleapis/google/ads/googleads/v17/enums/day_of_week.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/day_of_week.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/day_of_week.proto index acddf7495..38cd493fe 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/day_of_week.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/day_of_week.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DayOfWeekProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing days of week. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/device.proto b/third_party/googleapis/google/ads/googleads/v17/enums/device.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/device.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/device.proto index 6319d0552..995727c2a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/device.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DeviceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing devices. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/display_ad_format_setting.proto b/third_party/googleapis/google/ads/googleads/v17/enums/display_ad_format_setting.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/display_ad_format_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/display_ad_format_setting.proto index f89f1cd5a..5155c67bf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/display_ad_format_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/display_ad_format_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DisplayAdFormatSettingProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing display ad format settings. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/display_upload_product_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/display_upload_product_type.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/display_upload_product_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/display_upload_product_type.proto index 703eb825d..e00d1a080 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/display_upload_product_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/display_upload_product_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DisplayUploadProductTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing display upload product types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/distance_bucket.proto b/third_party/googleapis/google/ads/googleads/v17/enums/distance_bucket.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/enums/distance_bucket.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/distance_bucket.proto index 5932b8e68..43fb27fc0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/distance_bucket.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/distance_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DistanceBucketProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing distance buckets. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/dsa_page_feed_criterion_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/dsa_page_feed_criterion_field.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/dsa_page_feed_criterion_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/dsa_page_feed_criterion_field.proto index f13081233..4d3aaf66d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/dsa_page_feed_criterion_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/dsa_page_feed_criterion_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DsaPageFeedCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Dynamic Search Ad Page Feed criterion fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/education_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/education_placeholder_field.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/education_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/education_placeholder_field.proto index b12ff566a..e86cb42ab 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/education_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/education_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "EducationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Education placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_metric.proto b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_metric.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/experiment_metric.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/experiment_metric.proto index 23658b89a..42cfb67d5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_metric.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_metric.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentMetricProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing experiment metric. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_metric_direction.proto b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_metric_direction.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/experiment_metric_direction.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/experiment_metric_direction.proto index 9ed6331a6..38c062f20 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_metric_direction.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_metric_direction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentMetricDirectionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing experiment metric direction. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_status.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/experiment_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/experiment_status.proto index 2dbda9177..69f85dab5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing experiment status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_type.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/experiment_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/experiment_type.proto index b91d044a3..d2631d8d2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/experiment_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/experiment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing experiment type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/extension_setting_device.proto b/third_party/googleapis/google/ads/googleads/v17/enums/extension_setting_device.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/extension_setting_device.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/extension_setting_device.proto index e4cae7e03..96abb6f1d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/extension_setting_device.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/extension_setting_device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExtensionSettingDeviceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing extension setting device type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/extension_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/extension_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/extension_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/extension_type.proto index 4a551f6a2..e717c9fc9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/extension_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/extension_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing extension type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/external_conversion_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/external_conversion_source.proto similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/enums/external_conversion_source.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/external_conversion_source.proto index dfd0fd102..fd1611426 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/external_conversion_source.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/external_conversion_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExternalConversionSourceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing the external conversion source that is // associated with a ConversionAction. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_attribute_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_attribute_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_attribute_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_attribute_type.proto index 3178bd500..5f459f10d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_attribute_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_attribute_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedAttributeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed attribute type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_quality_approval_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_quality_approval_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_quality_approval_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_quality_approval_status.proto index 38d8c6990..c7d37be06 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_quality_approval_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_quality_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemQualityApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item quality evaluation approval statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_quality_disapproval_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_quality_disapproval_reason.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_quality_disapproval_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_quality_disapproval_reason.proto index d1327928f..1aec1e4d2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_quality_disapproval_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_quality_disapproval_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemQualityDisapprovalReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item quality disapproval reasons. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_set_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_set_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_set_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_set_status.proto index 79dc9fff4..82931cca8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_set_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item set status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_set_string_filter_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_set_string_filter_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_set_string_filter_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_set_string_filter_type.proto index fbac6fa6e..49f203e4d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_set_string_filter_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_set_string_filter_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetStringFilterTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // The type of string matching to be used for a dynamic FeedItemSet filter. message FeedItemSetStringFilterTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_status.proto index d5797983c..fa0386223 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_device.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_device.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_device.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_device.proto index 9bc70977f..65f8bd301 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_device.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetDeviceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item target device type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_status.proto index 685d16606..c35aa6ccb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item target status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_type.proto index 50c10c6c8..ad4e9a8e0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_target_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item target type status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_validation_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_validation_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_item_validation_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_item_validation_status.proto index 742a50204..de87ea3c5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_item_validation_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_item_validation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemValidationStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed item validation statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_link_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_link_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_link_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_link_status.proto index 87015603d..9f60869bf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_link_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedLinkStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing status of a feed link. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_mapping_criterion_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_mapping_criterion_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_mapping_criterion_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_mapping_criterion_type.proto index afa5e41a6..fe34775d3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_mapping_criterion_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_mapping_criterion_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedMappingCriterionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing criterion types for feed mappings. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_mapping_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_mapping_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_mapping_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_mapping_status.proto index 41602395e..b5fe98b62 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_mapping_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_mapping_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedMappingStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed mapping status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_origin.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_origin.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_origin.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_origin.proto index 52271583c..17e69aa5c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_origin.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_origin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedOriginProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed origin. @@ -41,7 +41,7 @@ message FeedOriginEnum { // user. Users can add FeedAttributes to this Feed. USER = 2; - // The FeedAttributes for an GOOGLE Feed are created by Google. A feed of + // The FeedAttributes for a GOOGLE Feed are created by Google. A feed of // this type is maintained by Google and will have the correct attributes // for the placeholder type of the feed. GOOGLE = 3; diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/feed_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/feed_status.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/feed_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/feed_status.proto index 586b757b8..49173646e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/feed_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/feed_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/flight_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/flight_placeholder_field.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/flight_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/flight_placeholder_field.proto index 411289071..8f8a74c71 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/flight_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/flight_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FlightsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Flight placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_event_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_event_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_event_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_event_type.proto index 3caecc235..ecbf13f47 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_event_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapEventTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing frequency caps. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_level.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_level.proto index 02055c2ba..6360602ad 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing frequency caps. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_time_unit.proto b/third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_time_unit.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_time_unit.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_time_unit.proto index 01e3149a8..260a5e1b6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/frequency_cap_time_unit.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/frequency_cap_time_unit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapTimeUnitProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing frequency caps. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/gender_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/gender_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/gender_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/gender_type.proto index a76323d9e..d763c253c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/gender_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/gender_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GenderTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing gender types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/geo_target_constant_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/geo_target_constant_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/geo_target_constant_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/geo_target_constant_status.proto index afacf5eee..a9214da41 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/geo_target_constant_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/geo_target_constant_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing geo target constant statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/geo_targeting_restriction.proto b/third_party/googleapis/google/ads/googleads/v17/enums/geo_targeting_restriction.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/geo_targeting_restriction.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/geo_targeting_restriction.proto index fcdfce9b0..34a93fb45 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/geo_targeting_restriction.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/geo_targeting_restriction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GeoTargetingRestrictionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing GeoTargetingRestriction. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/geo_targeting_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/geo_targeting_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/geo_targeting_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/geo_targeting_type.proto index 21dc1ab69..6d0a2b778 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/geo_targeting_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/geo_targeting_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GeoTargetingTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing geo targeting types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/goal_config_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/goal_config_level.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/goal_config_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/goal_config_level.proto index 748b6104b..caeb6559a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/goal_config_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/goal_config_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoalConfigLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing goal config level. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/google_ads_field_category.proto b/third_party/googleapis/google/ads/googleads/v17/enums/google_ads_field_category.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/google_ads_field_category.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/google_ads_field_category.proto index c8680fb3e..7b7ff1b16 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/google_ads_field_category.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/google_ads_field_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldCategoryProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing GoogleAdsField categories. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/google_ads_field_data_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/google_ads_field_data_type.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/google_ads_field_data_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/google_ads_field_data_type.proto index 0af9902b8..eb9a3d9f5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/google_ads_field_data_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/google_ads_field_data_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldDataTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing GoogleAdsField data types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/google_voice_call_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/google_voice_call_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/google_voice_call_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/google_voice_call_status.proto index 4b420fbbd..1b3079914 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/google_voice_call_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/google_voice_call_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoogleVoiceCallStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing google voice call status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_asset_suggestion_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_asset_suggestion_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/hotel_asset_suggestion_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/hotel_asset_suggestion_status.proto index 37d3017fb..b839b11df 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_asset_suggestion_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_asset_suggestion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelAssetSuggestionStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing hotel asset suggestion status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_date_selection_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_date_selection_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/hotel_date_selection_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/hotel_date_selection_type.proto index e8ee7eedc..b6b040a4c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_date_selection_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_date_selection_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelDateSelectionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing hotel date selection types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_placeholder_field.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/enums/hotel_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/hotel_placeholder_field.proto index 74789f40a..3a423abaa 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Hotel placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_price_bucket.proto b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_price_bucket.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/hotel_price_bucket.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/hotel_price_bucket.proto index 3cd7131d2..ea4032ad3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_price_bucket.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_price_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelPriceBucketProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing hotel price buckets. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_rate_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_rate_type.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/hotel_rate_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/hotel_rate_type.proto index 53028a96d..c433310af 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_rate_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_rate_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelRateTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing hotel rate types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_reconciliation_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_reconciliation_status.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/hotel_reconciliation_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/hotel_reconciliation_status.proto index 798922ad0..5093b801f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/hotel_reconciliation_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/hotel_reconciliation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelReconciliationStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing hotel reconciliation row status. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/identity_verification_program.proto b/third_party/googleapis/google/ads/googleads/v17/enums/identity_verification_program.proto new file mode 100644 index 000000000..d5b1a363f --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/identity_verification_program.proto @@ -0,0 +1,43 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationProgramProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing type of identity verification program. + +// Container for IdentityVerificationProgram. +message IdentityVerificationProgramEnum { + // Type of identity verification program. + enum IdentityVerificationProgram { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Advertiser submits documents to verify their identity. + ADVERTISER_IDENTITY_VERIFICATION = 2; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/identity_verification_program_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/identity_verification_program_status.proto new file mode 100644 index 000000000..9751faf00 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/identity_verification_program_status.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationProgramStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing programs status of identity verification. + +// Container for IdentityVerificationProgramStatus. +message IdentityVerificationProgramStatusEnum { + // Program status of identity verification. + enum IdentityVerificationProgramStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Verification is pending on user action to proceed. + PENDING_USER_ACTION = 2; + + // Verification is pending on review. + PENDING_REVIEW = 3; + + // Verification succeeded. + SUCCESS = 4; + + // Verification failed. + FAILURE = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/image_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/image_placeholder_field.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/image_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/image_placeholder_field.proto index b29296aeb..c7d2130c5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/image_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/image_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ImagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Advertiser Provided Image placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/income_range_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/income_range_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/income_range_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/income_range_type.proto index c31936ccf..eb0e3610c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/income_range_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/income_range_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "IncomeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing income range types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/interaction_event_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/interaction_event_type.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/interaction_event_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/interaction_event_type.proto index 3db73fba0..3925c18c9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/interaction_event_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/interaction_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "InteractionEventTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing types of payable and free interactions. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/interaction_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/interaction_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/interaction_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/interaction_type.proto index 7968117ce..56253f7d1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/interaction_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/interaction_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "InteractionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing interaction types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/invoice_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/invoice_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/invoice_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/invoice_type.proto index b66b44184..1d498627a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/invoice_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/invoice_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "InvoiceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing invoice types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/job_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/job_placeholder_field.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/job_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/job_placeholder_field.proto index 6569f7b88..4245502a5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/job_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/job_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "JobsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Job placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_match_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_match_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_match_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_match_type.proto index b2fac1e15..7b72b8f5b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_match_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordMatchTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Keyword match types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_aggregate_metric_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_aggregate_metric_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_aggregate_metric_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_aggregate_metric_type.proto index 31dd0a57e..a814729c1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_aggregate_metric_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_aggregate_metric_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAggregateMetricTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing keyword plan aggregate metric types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_competition_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_competition_level.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_competition_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_competition_level.proto index e0942028a..b937cf11a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_competition_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_competition_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCompetitionLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Keyword Planner competition levels. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_concept_group_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_concept_group_type.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_concept_group_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_concept_group_type.proto index 7013c2c2e..92d26ba4b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_concept_group_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_concept_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanConceptGroupTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Keyword Planner Concept Group types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_forecast_interval.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_forecast_interval.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_forecast_interval.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_forecast_interval.proto index cce76cf20..d0b860143 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_forecast_interval.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_forecast_interval.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanForecastIntervalProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing keyword plan forecast intervals. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_keyword_annotation.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_keyword_annotation.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_keyword_annotation.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_keyword_annotation.proto index 5c6db53c8..36133b8d4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_keyword_annotation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_keyword_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanKeywordAnnotationProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Keyword Planner Keyword annotation types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_network.proto b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_network.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_network.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_network.proto index 8ecc83701..ea5985791 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/keyword_plan_network.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/keyword_plan_network.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Keyword Planner forecastable network types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/label_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/label_status.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/label_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/label_status.proto index 02e4e29ed..0cb71d4c3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/label_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/label_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LabelStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing possible status of a label. message LabelStatusEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_call_to_action_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_call_to_action_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/lead_form_call_to_action_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/lead_form_call_to_action_type.proto index d85620dd8..694cff4c3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_call_to_action_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Describes the type of call-to-action phrases in a lead form. message LeadFormCallToActionTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_desired_intent.proto b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_desired_intent.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/lead_form_desired_intent.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/lead_form_desired_intent.proto index 960e3ba9b..3d91b14e0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_desired_intent.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_desired_intent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormDesiredIntentProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Describes the chosen level of intent of generated leads. message LeadFormDesiredIntentEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_field_user_input_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_field_user_input_type.proto similarity index 98% rename from third_party/googleapis/google/ads/googleads/v14/enums/lead_form_field_user_input_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/lead_form_field_user_input_type.proto index 360ff4870..df1c0f4d6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_field_user_input_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_field_user_input_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormFieldUserInputTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Describes the input type of a lead form field. message LeadFormFieldUserInputTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_post_submit_call_to_action_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_post_submit_call_to_action_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/lead_form_post_submit_call_to_action_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/lead_form_post_submit_call_to_action_type.proto index cd8d82fd2..1a1703f7e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/lead_form_post_submit_call_to_action_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/lead_form_post_submit_call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormPostSubmitCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Describes the type of post-submit call-to-action phrases for a lead form. message LeadFormPostSubmitCallToActionTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/legacy_app_install_ad_app_store.proto b/third_party/googleapis/google/ads/googleads/v17/enums/legacy_app_install_ad_app_store.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/legacy_app_install_ad_app_store.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/legacy_app_install_ad_app_store.proto index 20fa9752a..10affbcf1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/legacy_app_install_ad_app_store.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/legacy_app_install_ad_app_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LegacyAppInstallAdAppStoreProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing app store types for a legacy app install ad. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/linked_account_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/linked_account_type.proto similarity index 63% rename from third_party/googleapis/google/ads/googleads/v14/enums/linked_account_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/linked_account_type.proto index 45b4e8f4a..76550c271 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/linked_account_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/linked_account_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LinkedAccountTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing different types of Linked accounts. message LinkedAccountTypeEnum { @@ -38,19 +38,5 @@ message LinkedAccountTypeEnum { // A link to provide third party app analytics data. THIRD_PARTY_APP_ANALYTICS = 2; - - // A link to Data partner. - DATA_PARTNER = 3; - - // A link to Google Ads. - GOOGLE_ADS = 4; - - // A link to Hotel Center. - HOTEL_CENTER = 5; - - // A link to Google Ads account of the partner advertiser. - // Increase performance and share data by partnering with businesses that - // advertise the same items. - ADVERTISING_PARTNER = 6; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/linked_product_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/linked_product_type.proto similarity index 69% rename from third_party/googleapis/google/ads/googleads/v14/enums/linked_product_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/linked_product_type.proto index 695c8b5d6..631b22169 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/linked_product_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/linked_product_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LinkedProductTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing different types of linked products. message LinkedProductTypeEnum { @@ -41,5 +41,14 @@ message LinkedProductTypeEnum { // A link to Google Ads. GOOGLE_ADS = 3; + + // A link to Hotel Center. + HOTEL_CENTER = 7; + + // A link to Google Merchant Center. + MERCHANT_CENTER = 8; + + // A link to the Google Ads account of the advertising partner. + ADVERTISING_PARTNER = 9; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_custom_attribute_index.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_custom_attribute_index.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_custom_attribute_index.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_custom_attribute_index.proto index a72629611..8b5c5251b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_custom_attribute_index.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_custom_attribute_index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterCustomAttributeIndexProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_listing_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_listing_source.proto new file mode 100644 index 000000000..270d24d66 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_listing_source.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ListingGroupFilterListingSourceProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing listing group filter listing source. + +// Container for enum describing the source of listings filtered by a listing +// group filter node. +message ListingGroupFilterListingSourceEnum { + // The source of listings filtered by a listing group filter node. + enum ListingGroupFilterListingSource { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Listings from a Shopping source, like products from Google Merchant + // Center. + SHOPPING = 2; + + // Listings from a webpage source, like URLs from a page feed or from the + // advertiser web domain. + WEBPAGE = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_bidding_category_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_category_level.proto similarity index 64% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_bidding_category_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_category_level.proto index 36843d410..3a30e3509 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_bidding_category_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_category_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; -option java_outer_classname = "ListingGroupFilterBiddingCategoryLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_outer_classname = "ListingGroupFilterProductCategoryLevelProto"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. -// Container for enum describing the levels of bidding category used in +// Container for enum describing the levels of product category used in // ListingGroupFilterDimension. -message ListingGroupFilterBiddingCategoryLevelEnum { - // The level of the listing group filter bidding category. - enum ListingGroupFilterBiddingCategoryLevel { +message ListingGroupFilterProductCategoryLevelEnum { + // The level of the listing group filter product category. + enum ListingGroupFilterProductCategoryLevel { // Not specified. UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_channel.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_channel.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_channel.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_channel.proto index 6e2847e39..76526c730 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_channel.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductChannelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_condition.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_condition.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_condition.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_condition.proto index 6302692ed..947f35971 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_condition.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductConditionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_type_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_type_level.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_type_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_type_level.proto index 997e78b88..e5149da12 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_product_type_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_product_type_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductTypeLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_type_enum.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_type_enum.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_type_enum.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_type_enum.proto index 56b235b09..dc18870b6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_filter_type_enum.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_filter_type_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterTypeEnumProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_group_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_group_type.proto index a6145bf5c..3658f7529 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_group_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing groups. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/listing_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/listing_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/listing_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/listing_type.proto index 5a6fc1675..d830b8568 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/listing_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/listing_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing listing type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/local_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_placeholder_field.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/local_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/local_placeholder_field.proto index 4847e5031..e40e72c1c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/local_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Local placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_business_registration_check_rejection_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_business_registration_check_rejection_reason.proto new file mode 100644 index 000000000..70d03d78c --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_business_registration_check_rejection_reason.proto @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesBusinessRegistrationCheckRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the rejection reason of a local services +// business registration check verification artifact. +message LocalServicesBusinessRegistrationCheckRejectionReasonEnum { + // Enums describing possible rejection reasons of a local services business + // registration check verification artifact. + enum LocalServicesBusinessRegistrationCheckRejectionReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Business name doesn't match business name for the Local Services Ad. + BUSINESS_NAME_MISMATCH = 2; + + // Business details mismatch. + BUSINESS_DETAILS_MISMATCH = 3; + + // Business registration ID not found. + ID_NOT_FOUND = 4; + + // Uploaded document not clear, blurry, etc. + POOR_DOCUMENT_IMAGE_QUALITY = 5; + + // Uploaded document has expired. + DOCUMENT_EXPIRED = 6; + + // Document revoked or annuled. + DOCUMENT_INVALID = 7; + + // Document type mismatch. + DOCUMENT_TYPE_MISMATCH = 8; + + // Uploaded document could not be verified as legitimate. + DOCUMENT_UNVERIFIABLE = 9; + + // The business registration process could not be completed due to an issue. + // Contact https://support.google.com/localservices to learn more. + OTHER = 10; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_business_registration_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_business_registration_type.proto new file mode 100644 index 000000000..40a5d5e8e --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_business_registration_type.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesBusinessRegistrationTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the type of business registration check +// verification artifact. +message LocalServicesBusinessRegistrationTypeEnum { + // Enums describing possible registration types of a local services business + // registration check verification artifact. + enum LocalServicesBusinessRegistrationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Registration number check type. + NUMBER = 2; + + // Registration document check type. + DOCUMENT = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_conversation_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_conversation_type.proto new file mode 100644 index 000000000..4a116d5c7 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_conversation_type.proto @@ -0,0 +1,61 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesConversationTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the local services lead resource. + +// Container for enum describing possible types of lead conversation. +message LocalServicesLeadConversationTypeEnum { + // Possible types of lead conversation. + enum ConversationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Email lead conversation. + EMAIL = 2; + + // Message lead conversation. + MESSAGE = 3; + + // Phone call lead conversation. + PHONE_CALL = 4; + + // SMS lead conversation. + SMS = 5; + + // Booking lead conversation. + BOOKING = 6; + + // WhatsApp lead conversation. + WHATSAPP = 7; + + // Lead conversation created through Google Ads API. + ADS_API = 8; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_employee_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_employee_status.proto new file mode 100644 index 000000000..cc21c7f85 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_employee_status.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesEmployeeStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the status of local services employee. +message LocalServicesEmployeeStatusEnum { + // Enums describing statuses of a local services employee. + enum LocalServicesEmployeeStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Employee is not removed, and employee status is active. + ENABLED = 2; + + // Employee is removed. Used to delete an employee from the business. + REMOVED = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_employee_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_employee_type.proto new file mode 100644 index 000000000..468b60c79 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_employee_type.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesEmployeeTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the types of local services employee. +message LocalServicesEmployeeTypeEnum { + // Enums describing types of a local services employee. + enum LocalServicesEmployeeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Represents the owner of the business. + BUSINESS_OWNER = 2; + + // Represents an employee of the business. + EMPLOYEE = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_insurance_rejection_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_insurance_rejection_reason.proto new file mode 100644 index 000000000..7fb63ec9f --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_insurance_rejection_reason.proto @@ -0,0 +1,85 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesInsuranceRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the rejection reason of a local services +// insurance verification artifact. +message LocalServicesInsuranceRejectionReasonEnum { + // Enums describing possible rejection reasons of a local services insurance + // verification artifact. + enum LocalServicesInsuranceRejectionReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Business name doesn't match business name for the Local Services Ad. + BUSINESS_NAME_MISMATCH = 2; + + // Insurance amount doesn't meet requirement listed in the legal summaries + // documentation for that geographic + category ID combination. + INSURANCE_AMOUNT_INSUFFICIENT = 3; + + // Insurance document is expired. + EXPIRED = 4; + + // Insurance document is missing a signature. + NO_SIGNATURE = 5; + + // Insurance document is missing a policy number. + NO_POLICY_NUMBER = 6; + + // Commercial General Liability(CGL) box is not marked in the insurance + // document. + NO_COMMERCIAL_GENERAL_LIABILITY = 7; + + // Insurance document is in an editable format. + EDITABLE_FORMAT = 8; + + // Insurance document does not cover insurance for a particular category. + CATEGORY_MISMATCH = 9; + + // Insurance document is missing an expiration date. + MISSING_EXPIRATION_DATE = 10; + + // Insurance document is poor quality - blurry images, illegible, etc... + POOR_QUALITY = 11; + + // Insurance document is suspected of being edited. + POTENTIALLY_EDITED = 12; + + // Insurance document not accepted. For example, documents of insurance + // proposals, but missing coverages are not accepted. + WRONG_DOCUMENT_TYPE = 13; + + // Insurance document is not final. + NON_FINAL = 14; + + // Insurance document has another flaw not listed explicitly. + OTHER = 15; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_credit_state.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_credit_state.proto new file mode 100644 index 000000000..34c1b61ca --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_credit_state.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadCreditStateProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing possible credit states of a lead. +message LocalServicesCreditStateEnum { + // Possible credit states of a lead. + enum CreditState { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Credit is pending. + PENDING = 2; + + // Credit request is complete. + CREDITED = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_status.proto new file mode 100644 index 000000000..74a9d1883 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_status.proto @@ -0,0 +1,64 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the local services lead resource. + +// Container for enum describing possible statuses of lead. +message LocalServicesLeadStatusEnum { + // Possible statuses of lead. + enum LeadStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // New lead which hasn't yet been seen by advertiser. + NEW = 2; + + // Lead that thas been interacted by advertiser. + ACTIVE = 3; + + // Lead has been booked. + BOOKED = 4; + + // Lead was declined by advertiser. + DECLINED = 5; + + // Lead has expired due to inactivity. + EXPIRED = 6; + + // Disabled due to spam or dispute. + DISABLED = 7; + + // Consumer declined the lead. + CONSUMER_DECLINED = 8; + + // Personally Identifiable Information of the lead is wiped out. + WIPED_OUT = 9; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_type.proto new file mode 100644 index 000000000..68e7d50c6 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_lead_type.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the local services lead resource. + +// Container for enum describing possible types of lead. +message LocalServicesLeadTypeEnum { + // Possible types of lead. + enum LeadType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Message lead. + MESSAGE = 2; + + // Lead created by phone call. + PHONE_CALL = 3; + + // Booking lead. + BOOKING = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_license_rejection_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_license_rejection_reason.proto new file mode 100644 index 000000000..54b61f4eb --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_license_rejection_reason.proto @@ -0,0 +1,61 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLicenseRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the rejection reason of a local services +// license verification artifact. +message LocalServicesLicenseRejectionReasonEnum { + // Enums describing possible rejection reasons of a local services license + // verification artifact. + enum LocalServicesLicenseRejectionReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Business name doesn't match business name for the Local Services Ad. + BUSINESS_NAME_MISMATCH = 2; + + // License is unauthorized or been revoked. + UNAUTHORIZED = 3; + + // License is expired. + EXPIRED = 4; + + // License is poor quality - blurry images, illegible, etc... + POOR_QUALITY = 5; + + // License cannot be verified due to a not legitimate image. + UNVERIFIABLE = 6; + + // License is not the requested document type or contains an invalid ID. + WRONG_DOCUMENT_OR_ID = 7; + + // License has another flaw not listed explicitly. + OTHER = 8; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_participant_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_participant_type.proto new file mode 100644 index 000000000..271843bf4 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_participant_type.proto @@ -0,0 +1,47 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesParticipantTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the local services lead resource. + +// Container for enum describing possible types of lead conversation +// participants. +message LocalServicesParticipantTypeEnum { + // Possible types of lead conversation participant. + enum ParticipantType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Local Services Ads Provider participant. + ADVERTISER = 2; + + // Local Services Ads Consumer participant. + CONSUMER = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_artifact_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_artifact_status.proto new file mode 100644 index 000000000..c7bc0fc85 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_artifact_status.proto @@ -0,0 +1,54 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesVerificationArtifactStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the status of local services verification +// artifact. +message LocalServicesVerificationArtifactStatusEnum { + // Enums describing statuses of a local services verification artifact. + enum LocalServicesVerificationArtifactStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Artifact has passed verification. + PASSED = 2; + + // Artifact has failed verification. + FAILED = 3; + + // Artifact is in the process of verification. + PENDING = 4; + + // Artifact needs user to upload information before it is verified. + NO_SUBMISSION = 5; + + // Artifact has been cancelled by the user. + CANCELLED = 6; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_artifact_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_artifact_type.proto new file mode 100644 index 000000000..4e351732d --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_artifact_type.proto @@ -0,0 +1,51 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesVerificationArtifactTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing the type of local services verification +// artifact. +message LocalServicesVerificationArtifactTypeEnum { + // Enums describing possible types of local services verification artifact. + enum LocalServicesVerificationArtifactType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Background check verification artifact. + BACKGROUND_CHECK = 2; + + // Insurance verification artifact. + INSURANCE = 3; + + // License verification artifact. + LICENSE = 4; + + // Business registration check verification artifact. + BUSINESS_REGISTRATION_CHECK = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_status.proto new file mode 100644 index 000000000..695644c2a --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/local_services_verification_status.proto @@ -0,0 +1,63 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesVerificationStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing Local Services Ads granular verification statuses. + +// Container for enum describing status of a particular Local Services Ads +// verification category. +message LocalServicesVerificationStatusEnum { + // Enum describing status of a particular Local Services Ads verification + // category. + enum LocalServicesVerificationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Unknown verification status. + UNKNOWN = 1; + + // Verification has started, but has not finished. + NEEDS_REVIEW = 2; + + // Verification has failed. + FAILED = 3; + + // Verification has passed. + PASSED = 4; + + // Verification is not applicable. + NOT_APPLICABLE = 5; + + // Verification is required but pending submission. + NO_SUBMISSION = 6; + + // Not all required verification has been submitted. + PARTIAL_SUBMISSION = 7; + + // Verification needs review by Local Services Ads Ops Specialist. + PENDING_ESCALATION = 8; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/location_extension_targeting_criterion_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/location_extension_targeting_criterion_field.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/location_extension_targeting_criterion_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/location_extension_targeting_criterion_field.proto index e63ccec4e..a0383e87a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/location_extension_targeting_criterion_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/location_extension_targeting_criterion_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Location Extension Targeting criterion fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/location_group_radius_units.proto b/third_party/googleapis/google/ads/googleads/v17/enums/location_group_radius_units.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/location_group_radius_units.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/location_group_radius_units.proto index fe72a1325..23dccd195 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/location_group_radius_units.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/location_group_radius_units.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationGroupRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing location group radius units. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/location_ownership_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/location_ownership_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/location_ownership_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/location_ownership_type.proto index 3dee3914d..09f90969b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/location_ownership_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/location_ownership_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationOwnershipTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing location ownership type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/location_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/location_placeholder_field.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/location_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/location_placeholder_field.proto index 044beb56e..cd8ef4679 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/location_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/location_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Location placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/location_source_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/location_source_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/location_source_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/location_source_type.proto index 7d7ed87b7..1c540bae6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/location_source_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/location_source_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationSourceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing location source types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/location_string_filter_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/location_string_filter_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/location_string_filter_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/location_string_filter_type.proto index e480580fc..5fb093e37 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/location_string_filter_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/location_string_filter_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationStringFilterTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing location string filter type. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/lookalike_expansion_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/lookalike_expansion_level.proto new file mode 100644 index 000000000..57a0a075c --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/lookalike_expansion_level.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LookalikeExpansionLevelProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Lookalike Expansion level proto +message LookalikeExpansionLevelEnum { + // Expansion level, reflecting the size of the lookalike audience + enum LookalikeExpansionLevel { + // Not specified. + UNSPECIFIED = 0; + + // Invalid expansion level. + UNKNOWN = 1; + + // Expansion to a small set of users that are similar to the seed lists + NARROW = 2; + + // Expansion to a medium set of users that are similar to the seed lists. + // Includes all users of EXPANSION_LEVEL_NARROW, and more. + BALANCED = 3; + + // Expansion to a large set of users that are similar to the seed lists. + // Includes all users of EXPANSION_LEVEL_BALANCED, and more. + BROAD = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/manager_link_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/manager_link_status.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/manager_link_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/manager_link_status.proto index b20f6b2af..bb8853b8f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/manager_link_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/manager_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ManagerLinkStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing possible status of a manager and client link. message ManagerLinkStatusEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/matching_function_context_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/matching_function_context_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/matching_function_context_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/matching_function_context_type.proto index a309afeee..0c2a50492 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/matching_function_context_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/matching_function_context_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MatchingFunctionContextTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing matching function context types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/matching_function_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/matching_function_operator.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/matching_function_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/matching_function_operator.proto index 4831141d7..17ca8c42b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/matching_function_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/matching_function_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MatchingFunctionOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing matching function operators. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/media_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/media_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/media_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/media_type.proto index dc2ac2e1d..fc73e4c4a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/media_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/media_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MediaTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing media types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/message_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/message_placeholder_field.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/message_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/message_placeholder_field.proto index 74c01a5ff..a83bdf8e7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/message_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/message_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MessagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Message placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/mime_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/mime_type.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/mime_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/mime_type.proto index 1923d9c6f..862e2265e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/mime_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/mime_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MimeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing mime types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/minute_of_hour.proto b/third_party/googleapis/google/ads/googleads/v17/enums/minute_of_hour.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/minute_of_hour.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/minute_of_hour.proto index e95f85987..89ac66fda 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/minute_of_hour.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/minute_of_hour.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MinuteOfHourProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing days of week. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/mobile_app_vendor.proto b/third_party/googleapis/google/ads/googleads/v17/enums/mobile_app_vendor.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/mobile_app_vendor.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/mobile_app_vendor.proto index 97bc29df4..c04cf7cea 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/mobile_app_vendor.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/mobile_app_vendor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MobileAppVendorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing different types of mobile app vendors. message MobileAppVendorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/mobile_device_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/mobile_device_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/mobile_device_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/mobile_device_type.proto index b02e5ee47..4d6d88ff3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/mobile_device_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/mobile_device_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MobileDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing mobile device types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/month_of_year.proto b/third_party/googleapis/google/ads/googleads/v17/enums/month_of_year.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/month_of_year.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/month_of_year.proto index 08d5bda25..68476b3f4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/month_of_year.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/month_of_year.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MonthOfYearProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing days of week. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/negative_geo_target_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/negative_geo_target_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/negative_geo_target_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/negative_geo_target_type.proto index 33bc29073..f609da9ce 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/negative_geo_target_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/negative_geo_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "NegativeGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing negative geo target types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/offline_conversion_diagnostic_status_enum.proto b/third_party/googleapis/google/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/offline_conversion_diagnostic_status_enum.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto index 445eb8605..9828d34b0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/offline_conversion_diagnostic_status_enum.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineConversionDiagnosticStatusEnumProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // All possible statuses for oci diagnostics. message OfflineConversionDiagnosticStatusEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/offline_event_upload_client_enum.proto b/third_party/googleapis/google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/offline_event_upload_client_enum.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto index 94928562c..1cfeddec1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/offline_event_upload_client_enum.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineEventUploadClientEnumProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // All possible clients for an offline upload event. message OfflineEventUploadClientEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_failure_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_failure_reason.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_failure_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_failure_reason.proto index 98130874a..eeec6b9f8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_failure_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_failure_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobFailureReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing offline user data job failure reasons. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_match_rate_range.proto b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_match_rate_range.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_match_rate_range.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_match_rate_range.proto index 6230edf62..454166512 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_match_rate_range.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_match_rate_range.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobMatchRateRangeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing reasons match rate ranges for a customer match // list upload. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_status.proto index 4ad48eb8d..bf0e77f51 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing offline user data job status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_type.proto index d5950fe86..93e345189 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/offline_user_data_job_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/offline_user_data_job_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing offline user data job types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/operating_system_version_operator_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/operating_system_version_operator_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/operating_system_version_operator_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/operating_system_version_operator_type.proto index 26da21435..45f5ab149 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/operating_system_version_operator_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/operating_system_version_operator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OperatingSystemVersionOperatorTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing operating system version operator types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/optimization_goal_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/optimization_goal_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/optimization_goal_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/optimization_goal_type.proto index 3162939b7..20ff5c8c7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/optimization_goal_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/optimization_goal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OptimizationGoalTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing optimization goal type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/parental_status_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/parental_status_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/parental_status_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/parental_status_type.proto index 4cea0bc0e..716b5f285 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/parental_status_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/parental_status_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ParentalStatusTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing parenal status types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/payment_mode.proto b/third_party/googleapis/google/ads/googleads/v17/enums/payment_mode.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/enums/payment_mode.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/payment_mode.proto index d39bfb66f..ca8703e35 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/payment_mode.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/payment_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PaymentModeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing payment modes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/performance_max_upgrade_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/performance_max_upgrade_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/performance_max_upgrade_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/performance_max_upgrade_status.proto index cf68e2c6a..69f40ed9a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/performance_max_upgrade_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/performance_max_upgrade_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PerformanceMaxUpgradeStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing advertising channel types @@ -37,9 +37,6 @@ message PerformanceMaxUpgradeStatusEnum { // Used for return value only. Represents value unknown in this version. UNKNOWN = 1; - // The campaign is eligible for upgrade to a Performance Max campaign. - UPGRADE_ELIBIGLE = 2; - // The upgrade to a Performance Max campaign is in progress. UPGRADE_IN_PROGRESS = 3; @@ -49,5 +46,8 @@ message PerformanceMaxUpgradeStatusEnum { // The upgrade to a Performance Max campaign failed. // The campaign will still serve as it was before upgrade was attempted. UPGRADE_FAILED = 5; + + // The campaign is eligible for upgrade to a Performance Max campaign. + UPGRADE_ELIGIBLE = 6; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/placeholder_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/placeholder_type.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/enums/placeholder_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/placeholder_type.proto index 4abeac237..12e7a47ce 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/placeholder_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/placeholder_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PlaceholderTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing feed placeholder types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/placement_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/placement_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/placement_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/placement_type.proto index c4f6aec23..8e8bef33f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/placement_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/placement_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PlacementTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing placement types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/policy_approval_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/policy_approval_status.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/policy_approval_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/policy_approval_status.proto index 5f10f9214..6090d667e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/policy_approval_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/policy_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing policy approval statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/policy_review_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/policy_review_status.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/policy_review_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/policy_review_status.proto index d23fd7c9c..49bb510f0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/policy_review_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/policy_review_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyReviewStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing policy review statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_entry_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_entry_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_entry_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_entry_type.proto index 54058cc83..1391a8fab 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_entry_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_entry_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEntryTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing policy topic entry types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_mismatch_url_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_mismatch_url_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_mismatch_url_type.proto index cde7eff4c..c85ca6f8d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_mismatch_url_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_mismatch_url_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing policy topic evidence destination mismatch url types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_device.proto b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_device.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_device.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_device.proto index 7ae6de518..b00109674 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_device.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDeviceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing device of destination not working policy topic // evidence. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto index aa34cfe6b..da4a44ef1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing DNS error types of destination not working policy topic // evidence. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/positive_geo_target_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/positive_geo_target_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/positive_geo_target_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/positive_geo_target_type.proto index e5799ff0f..f04ea1d22 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/positive_geo_target_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/positive_geo_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PositiveGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing positive geo target types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/price_extension_price_qualifier.proto b/third_party/googleapis/google/ads/googleads/v17/enums/price_extension_price_qualifier.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/price_extension_price_qualifier.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/price_extension_price_qualifier.proto index 3961f1067..9e8bb9835 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/price_extension_price_qualifier.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/price_extension_price_qualifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PriceExtensionPriceQualifierProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing price extension price qualifier type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/price_extension_price_unit.proto b/third_party/googleapis/google/ads/googleads/v17/enums/price_extension_price_unit.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/price_extension_price_unit.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/price_extension_price_unit.proto index 8b946e80c..b2128704e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/price_extension_price_unit.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/price_extension_price_unit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PriceExtensionPriceUnitProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing price extension price unit. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/price_extension_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/price_extension_type.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/price_extension_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/price_extension_type.proto index aca4cf658..49f15679f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/price_extension_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/price_extension_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PriceExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing price extension type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/price_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/price_placeholder_field.proto similarity index 96% rename from third_party/googleapis/google/ads/googleads/v14/enums/price_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/price_placeholder_field.proto index de0a75bda..cef5e0f76 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/price_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/price_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PricePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Price placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/product_availability.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_availability.proto new file mode 100644 index 000000000..b6d92f403 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_availability.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductAvailabilityProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the availability of a shopping product. + +// The availability of a product. +message ProductAvailabilityEnum { + // Product availability. + enum ProductAvailability { + // Enum unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents values unknown in this version. + UNKNOWN = 1; + + // The product is in stock. + IN_STOCK = 2; + + // The product is out of stock. + OUT_OF_STOCK = 3; + + // The product can be preordered. + PREORDER = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_bidding_category_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_category_level.proto similarity index 63% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_bidding_category_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_category_level.proto index c3c178e2c..0b26f2449 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_bidding_category_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_category_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_outer_classname = "ProductCategoryLevelProto"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; -// Level of a product bidding category. -message ProductBiddingCategoryLevelEnum { - // Enum describing the level of the product bidding category. - enum ProductBiddingCategoryLevel { +// Level of a product category. +message ProductCategoryLevelEnum { + // Enum describing the level of the product category. + enum ProductCategoryLevel { // Not specified. UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_bidding_category_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_category_state.proto similarity index 57% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_bidding_category_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_category_state.proto index 21c31af63..3c07384fd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_bidding_category_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_category_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,31 +14,29 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; -option java_outer_classname = "ProductBiddingCategoryStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_outer_classname = "ProductCategoryStateProto"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; -// Proto file describing bidding schemes. - -// Status of the product bidding category. -message ProductBiddingCategoryStatusEnum { - // Enum describing the status of the product bidding category. - enum ProductBiddingCategoryStatus { +// State of the product category. +message ProductCategoryStateEnum { + // Enum describing the state of the product category. + enum ProductCategoryState { // Not specified. UNSPECIFIED = 0; // Used for return value only. Represents value unknown in this version. UNKNOWN = 1; - // The category is active and can be used for bidding. - ACTIVE = 2; + // The category is enabled. + ENABLED = 2; // The category is obsolete. Used only for reporting purposes. OBSOLETE = 3; diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_channel.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_channel.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_channel.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_channel.proto index 3dc0ffc25..883c9a1b1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_channel.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductChannelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding schemes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_channel_exclusivity.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_channel_exclusivity.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_channel_exclusivity.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_channel_exclusivity.proto index c30084525..a66d8a7a0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_channel_exclusivity.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_channel_exclusivity.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductChannelExclusivityProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding schemes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_condition.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_condition.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_condition.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_condition.proto index 403cbea75..db907f097 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_condition.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductConditionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding schemes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_custom_attribute_index.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_custom_attribute_index.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_custom_attribute_index.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_custom_attribute_index.proto index e01fa4fb3..2b9f5e4d9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_custom_attribute_index.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_custom_attribute_index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductCustomAttributeIndexProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing product custom attributes. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/product_issue_severity.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_issue_severity.proto new file mode 100644 index 000000000..c8b879675 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_issue_severity.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductIssueSeverityProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing shopping product issue severity. + +// The severity of a product issue. +message ProductIssueSeverityEnum { + // Product issue severity. + enum ProductIssueSeverity { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The issue limits the performance of the product in ads. + WARNING = 2; + + // The issue prevents the product from showing in ads. + ERROR = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/product_link_invitation_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_link_invitation_status.proto new file mode 100644 index 000000000..5b3f20286 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_link_invitation_status.proto @@ -0,0 +1,61 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductLinkInvitationStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing possible statuses of a product link +// invitation. +message ProductLinkInvitationStatusEnum { + // Describes the possible statuses for an invitation between a Google Ads + // customer and another account. + enum ProductLinkInvitationStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The invitation is accepted. + ACCEPTED = 2; + + // An invitation has been sent to the other account. A user on the other + // account may now accept the invitation by setting the status to ACCEPTED. + REQUESTED = 3; + + // This invitation has been sent by a user on the other account. It may be + // accepted by a user on this account by setting the status to ACCEPTED. + PENDING_APPROVAL = 4; + + // The invitation is revoked by the user who sent the invitation. + REVOKED = 5; + + // The invitation has been rejected by the invitee. + REJECTED = 6; + + // The invitation has timed out before being accepted by the + // invitee. + EXPIRED = 7; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/product_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_status.proto new file mode 100644 index 000000000..8da1afe34 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_status.proto @@ -0,0 +1,50 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing shopping product status. + +// The status of a product indicating whether it can show in ads. +message ProductStatusEnum { + // Enum describing the status of a product. + enum ProductStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents values unknown in this version. + UNKNOWN = 1; + + // The product cannot show in ads. + NOT_ELIGIBLE = 2; + + // The product can show in ads but may be limited in where and when it can + // show due to identified issues. + ELIGIBLE_LIMITED = 3; + + // The product can show in ads. + ELIGIBLE = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/product_type_level.proto b/third_party/googleapis/google/ads/googleads/v17/enums/product_type_level.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/product_type_level.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/product_type_level.proto index ff247acbf..91299140d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/product_type_level.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/product_type_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductTypeLevelProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding schemes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/promotion_extension_discount_modifier.proto b/third_party/googleapis/google/ads/googleads/v17/enums/promotion_extension_discount_modifier.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/promotion_extension_discount_modifier.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/promotion_extension_discount_modifier.proto index d4a2e17d5..04280e0af 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/promotion_extension_discount_modifier.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/promotion_extension_discount_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PromotionExtensionDiscountModifierProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing promotion extension discount modifier. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/promotion_extension_occasion.proto b/third_party/googleapis/google/ads/googleads/v17/enums/promotion_extension_occasion.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/promotion_extension_occasion.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/promotion_extension_occasion.proto index 6d51f3167..9ac46a943 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/promotion_extension_occasion.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/promotion_extension_occasion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PromotionExtensionOccasionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing promotion extension occasion. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/promotion_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/promotion_placeholder_field.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/promotion_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/promotion_placeholder_field.proto index 0dd31dd19..4e664b1cd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/promotion_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/promotion_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PromotionPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Promotion placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/proximity_radius_units.proto b/third_party/googleapis/google/ads/googleads/v17/enums/proximity_radius_units.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/proximity_radius_units.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/proximity_radius_units.proto index 58c1f88da..112d7a995 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/proximity_radius_units.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/proximity_radius_units.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProximityRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing proximity radius units. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/quality_score_bucket.proto b/third_party/googleapis/google/ads/googleads/v17/enums/quality_score_bucket.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/quality_score_bucket.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/quality_score_bucket.proto index 4b4e9504c..bf4b4d6a7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/quality_score_bucket.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/quality_score_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "QualityScoreBucketProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing quality score buckets. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/reach_plan_age_range.proto b/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_age_range.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/reach_plan_age_range.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_age_range.proto index 3a2938294..67e17ec1c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/reach_plan_age_range.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_age_range.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ReachPlanAgeRangeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing a plannable age range. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/reach_plan_network.proto b/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_network.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/reach_plan_network.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_network.proto index c8b0c1343..6629a04de 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/reach_plan_network.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_network.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ReachPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing a plannable network. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_surface.proto b/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_surface.proto new file mode 100644 index 000000000..b99954625 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/reach_plan_surface.proto @@ -0,0 +1,55 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ReachPlanSurfaceProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Container for enum describing surfaces available for targeting in forecasts. +// Surfaces refer to the available types of ad inventories such as In-Feed, +// In-Stream, and Shorts. +message ReachPlanSurfaceEnum { + // Surfaces available to target in reach forecasts. + enum ReachPlanSurface { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // In-Feed ad surface. + IN_FEED = 2; + + // In-Stream bumper ad surface. + IN_STREAM_BUMPER = 3; + + // In-Stream non-skippable ad surface. + IN_STREAM_NON_SKIPPABLE = 4; + + // In-Stream skippable ad surface. + IN_STREAM_SKIPPABLE = 5; + + // Shorts ad surface. + SHORTS = 6; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/real_estate_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/real_estate_placeholder_field.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/enums/real_estate_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/real_estate_placeholder_field.proto index 6ebf27aa1..b3d6a28c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/real_estate_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/real_estate_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "RealEstatePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Real Estate placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/recommendation_subscription_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/recommendation_subscription_status.proto new file mode 100644 index 000000000..e7e45c26d --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/recommendation_subscription_status.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationSubscriptionStatusProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing Recommendation Subscription status. + +// Container for enum describing recommendation subscription statuses. +message RecommendationSubscriptionStatusEnum { + // Enum describing recommendation subscription statuses. + enum RecommendationSubscriptionStatus { + // Not specified. + UNSPECIFIED = 0; + + // Output-only. Represents a format not yet defined in this enum. + UNKNOWN = 1; + + // A subscription in the enabled state will automatically + // apply any recommendations of that type. + ENABLED = 2; + + // Recommendations of the relevant type will not be + // automatically applied. Subscriptions cannot be deleted. Once + // created, they can only move between enabled and paused states. + PAUSED = 3; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/recommendation_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/recommendation_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/recommendation_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/recommendation_type.proto index b6eaf255a..a4d141dca 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/recommendation_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/recommendation_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "RecommendationTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Recommendation types. @@ -205,5 +205,43 @@ message RecommendationTypeEnum { // Recommendation to migrate Dynamic Search Ads to Performance Max // campaigns. MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX = 48; + + // Recommendation to set a target CPA for campaigns that do not have one + // specified, in advance of a seasonal event that is forecasted to increase + // traffic. + FORECASTING_SET_TARGET_CPA = 49; + + // Recommendation to set a target CPA for campaigns that do not have one + // specified. + SET_TARGET_CPA = 50; + + // Recommendation to set a target ROAS for campaigns that do not have one + // specified. + SET_TARGET_ROAS = 51; + + // Recommendation to update a campaign to use the Maximize Conversion Value + // bidding strategy. + MAXIMIZE_CONVERSION_VALUE_OPT_IN = 52; + + // Recommendation to deploy Google Tag on more pages. + IMPROVE_GOOGLE_TAG_COVERAGE = 53; + + // Recommendation to turn on Final URL expansion for your Performance Max + // campaigns. + PERFORMANCE_MAX_FINAL_URL_OPT_IN = 54; + + // Recommendation to update a customer list that hasn't been updated + // in the last 90 days. + REFRESH_CUSTOMER_MATCH_LIST = 55; + + // Recommendation to create a custom audience. + CUSTOM_AUDIENCE_OPT_IN = 56; + + // Recommendation to add lead form assets to campaign or customer level. + LEAD_FORM_ASSET = 57; + + // Recommendation to improve the strength of ads in + // Demand Gen campaigns. + IMPROVE_DEMAND_GEN_AD_STRENGTH = 58; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/resource_change_operation.proto b/third_party/googleapis/google/ads/googleads/v17/enums/resource_change_operation.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/resource_change_operation.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/resource_change_operation.proto index 11ceab1f8..0c6ec2cc0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/resource_change_operation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/resource_change_operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ResourceChangeOperationProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the resource change operations in change event. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/resource_limit_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/resource_limit_type.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/enums/resource_limit_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/resource_limit_type.proto index 9a5cad583..44d78078f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/resource_limit_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/resource_limit_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ResourceLimitTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing possible resource limit types. message ResourceLimitTypeEnum { @@ -480,5 +480,17 @@ message ResourceLimitTypeEnum { // Maximum number of enabled hotel property assets per asset group. ENABLED_HOTEL_PROPERTY_ASSET_LINKS_PER_ASSET_GROUP = 182; + + // Number of criteria per brand shared set. + BRANDS_PER_SHARED_SET = 183; + + // Number of active brand list criteria per campaign. + ENABLED_BRAND_LIST_CRITERIA_PER_CAMPAIGN = 184; + + // Maximum number of shared sets of brand type for an account. + SHARED_SETS_PER_ACCOUNT_FOR_BRAND = 185; + + // Maximum number of lookalike lists per customer. + LOOKALIKE_USER_LISTS_PER_CUSTOMER = 186; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/response_content_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/response_content_type.proto similarity index 70% rename from third_party/googleapis/google/ads/googleads/v14/enums/response_content_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/response_content_type.proto index 97cfade39..9266ecb29 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/response_content_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/response_content_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ResponseContentTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the response content types used in mutate operations. @@ -37,8 +37,9 @@ message ResponseContentTypeEnum { // The mutate response will be the resource name. RESOURCE_NAME_ONLY = 1; - // The mutate response will be the resource name and the resource with - // all mutable fields. + // The mutate response will contain the resource name and the resource with + // mutable fields if possible. Otherwise, only the resource name will be + // returned. MUTABLE_RESOURCE = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/search_engine_results_page_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/search_engine_results_page_type.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/search_engine_results_page_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/search_engine_results_page_type.proto index 40ca356b6..ac585a521 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/search_engine_results_page_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/search_engine_results_page_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SearchEngineResultsPageTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing search engine results page types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/search_term_match_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/search_term_match_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/search_term_match_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/search_term_match_type.proto index d51c5d81d..b63ad552d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/search_term_match_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/search_term_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SearchTermMatchTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing search term match types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/search_term_targeting_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/search_term_targeting_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/search_term_targeting_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/search_term_targeting_status.proto index 58e1b559d..311ad9d6e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/search_term_targeting_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/search_term_targeting_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SearchTermTargetingStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing search term targeting statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/seasonality_event_scope.proto b/third_party/googleapis/google/ads/googleads/v17/enums/seasonality_event_scope.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/seasonality_event_scope.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/seasonality_event_scope.proto index 3b710836f..b0c71aeb8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/seasonality_event_scope.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/seasonality_event_scope.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SeasonalityEventScopeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing seasonality event status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/seasonality_event_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/seasonality_event_status.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/seasonality_event_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/seasonality_event_status.proto index 92861979c..b416ba795 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/seasonality_event_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/seasonality_event_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SeasonalityEventStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing seasonality event status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/served_asset_field_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/served_asset_field_type.proto similarity index 53% rename from third_party/googleapis/google/ads/googleads/v14/enums/served_asset_field_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/served_asset_field_type.proto index 4110692ed..ae3dee096 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/served_asset_field_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/served_asset_field_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ServedAssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing policy review statuses. @@ -54,6 +54,55 @@ message ServedAssetFieldTypeEnum { // The asset is used in description 2. DESCRIPTION_2 = 6; + // The asset was used in a headline. Use this only if there is only one + // headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or + // HEADLINE_3 enums + HEADLINE = 7; + + // The asset was used as a headline in portrait image. + HEADLINE_IN_PORTRAIT = 8; + + // The asset was used in a long headline (used in MultiAssetResponsiveAd). + LONG_HEADLINE = 9; + + // The asset was used in a description. Use this only if there is only one + // description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ + // enums + DESCRIPTION = 10; + + // The asset was used as description in portrait image. + DESCRIPTION_IN_PORTRAIT = 11; + + // The asset was used as business name in portrait image. + BUSINESS_NAME_IN_PORTRAIT = 12; + + // The asset was used as business name. + BUSINESS_NAME = 13; + + // The asset was used as a marketing image. + MARKETING_IMAGE = 14; + + // The asset was used as a marketing image in portrait image. + MARKETING_IMAGE_IN_PORTRAIT = 15; + + // The asset was used as a square marketing image. + SQUARE_MARKETING_IMAGE = 16; + + // The asset was used as a portrait marketing image. + PORTRAIT_MARKETING_IMAGE = 17; + + // The asset was used as a logo. + LOGO = 18; + + // The asset was used as a landscape logo. + LANDSCAPE_LOGO = 19; + + // The asset was used as a call-to-action. + CALL_TO_ACTION = 20; + + // The asset was used as a YouTube video. + YOU_TUBE_VIDEO = 21; + // This asset is used as a sitelink. SITELINK = 22; diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/shared_set_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/shared_set_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/shared_set_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/shared_set_status.proto index dfee8ba06..b08f27953 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/shared_set_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/shared_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing shared set statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/shared_set_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/shared_set_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/shared_set_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/shared_set_type.proto index 4f5d0f1cf..51aa62f22 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/shared_set_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/shared_set_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SharedSetTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing shared set types. @@ -45,5 +45,8 @@ message SharedSetTypeEnum { // An account-level set of keywords that can be excluded from targeting. ACCOUNT_LEVEL_NEGATIVE_KEYWORDS = 4; + + // A set of brands can be included or excluded from targeting. + BRANDS = 5; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/shopping_add_products_to_campaign_recommendation_enum.proto b/third_party/googleapis/google/ads/googleads/v17/enums/shopping_add_products_to_campaign_recommendation_enum.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/shopping_add_products_to_campaign_recommendation_enum.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/shopping_add_products_to_campaign_recommendation_enum.proto index 33f1ba58a..49c240d19 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/shopping_add_products_to_campaign_recommendation_enum.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/shopping_add_products_to_campaign_recommendation_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ShoppingAddProductsToCampaignRecommendationEnumProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing ShoppingAddProductsToCampaignRecommendationEnum enum. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/simulation_modification_method.proto b/third_party/googleapis/google/ads/googleads/v17/enums/simulation_modification_method.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/simulation_modification_method.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/simulation_modification_method.proto index ef06e9358..cb973bacb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/simulation_modification_method.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/simulation_modification_method.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SimulationModificationMethodProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing simulation modification methods. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/simulation_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/simulation_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/simulation_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/simulation_type.proto index c6e5b5c08..ec99f9c12 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/simulation_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/simulation_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SimulationTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing simulation types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/sitelink_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/sitelink_placeholder_field.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/sitelink_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/sitelink_placeholder_field.proto index 346e8a2eb..1c45f0a7c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/sitelink_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/sitelink_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SitelinkPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Sitelink placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_ad_event_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_ad_event_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_ad_event_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_ad_event_type.proto index 8b5aafd69..77fcd64ba 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_ad_event_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_ad_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkAdEventTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing SkAdNetwork Ad Event Types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_attribution_credit.proto b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_attribution_credit.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_attribution_credit.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_attribution_credit.proto index 2fa0bab0a..18407756d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_attribution_credit.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_attribution_credit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkAttributionCreditProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing SkAdNetwork attribution credits. diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto new file mode 100644 index 000000000..6fb994cf1 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto @@ -0,0 +1,56 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkCoarseConversionValueProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing SkAdNetwork coarse conversion values. + +// Container for enumeration of SkAdNetwork coarse conversion values. +message SkAdNetworkCoarseConversionValueEnum { + // Enumerates SkAdNetwork coarse conversion values + enum SkAdNetworkCoarseConversionValue { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The value was not present in the postback or we do not have this data for + // other reasons. + UNAVAILABLE = 2; + + // A low coarse conversion value. + LOW = 3; + + // A medium coarse conversion value. + MEDIUM = 4; + + // A high coarse conversion value. + HIGH = 5; + + // A coarse conversion value was not configured. + NONE = 6; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_source_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_source_type.proto new file mode 100644 index 000000000..9a9fe38b4 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_source_type.proto @@ -0,0 +1,50 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "SkAdNetworkSourceTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing SkAdNetwork source types. + +// Container for enumeration of SkAdNetwork source types. +message SkAdNetworkSourceTypeEnum { + // Enumerates SkAdNetwork source types + enum SkAdNetworkSourceType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The source app ID or source domain was not present in the postback or we + // do not have this data for other reasons. + UNAVAILABLE = 2; + + // The ad was shown on a webpage. + WEBSITE = 3; + + // The ad was shown on an app. + MOBILE_APPLICATION = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_user_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_user_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_user_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_user_type.proto index 0c154f7f2..4e7f9a84b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/sk_ad_network_user_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/sk_ad_network_user_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkUserTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing SkAdNetwork user types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/slot.proto b/third_party/googleapis/google/ads/googleads/v17/enums/slot.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/slot.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/slot.proto index 4b541e006..6ebaf4802 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/slot.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/slot.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SlotProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing slots. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/smart_campaign_not_eligible_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/smart_campaign_not_eligible_reason.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/enums/smart_campaign_not_eligible_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/smart_campaign_not_eligible_reason.proto index f7adc5610..8549ebffd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/smart_campaign_not_eligible_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/smart_campaign_not_eligible_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignNotEligibleReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing reasons for why a Smart campaign is not eligible to // serve. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/smart_campaign_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/smart_campaign_status.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/smart_campaign_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/smart_campaign_status.proto index 324d03344..9da82086b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/smart_campaign_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/smart_campaign_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Smart campaign statuses. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/spending_limit_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/spending_limit_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/spending_limit_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/spending_limit_type.proto index 80ca5eb5f..3e7ecf560 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/spending_limit_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/spending_limit_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SpendingLimitTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing SpendingLimit types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/structured_snippet_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/structured_snippet_placeholder_field.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/structured_snippet_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/structured_snippet_placeholder_field.proto index 26170e409..434e78a23 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/structured_snippet_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/structured_snippet_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "StructuredSnippetPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Structured Snippet placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/summary_row_setting.proto b/third_party/googleapis/google/ads/googleads/v17/enums/summary_row_setting.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/summary_row_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/summary_row_setting.proto index 161ce047d..75e8c9cba 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/summary_row_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/summary_row_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SummaryRowSettingProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing summary row setting. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/system_managed_entity_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/system_managed_entity_source.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/system_managed_entity_source.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/system_managed_entity_source.proto index 142dbb19e..861c2d7c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/system_managed_entity_source.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/system_managed_entity_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SystemManagedEntitySourceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing system managed entity sources. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/target_cpa_opt_in_recommendation_goal.proto b/third_party/googleapis/google/ads/googleads/v17/enums/target_cpa_opt_in_recommendation_goal.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/target_cpa_opt_in_recommendation_goal.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/target_cpa_opt_in_recommendation_goal.proto index 80b50291e..f756dafd2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/target_cpa_opt_in_recommendation_goal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/target_cpa_opt_in_recommendation_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetCpaOptInRecommendationGoalProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing TargetCpaOptIn recommendation goals. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/target_frequency_time_unit.proto b/third_party/googleapis/google/ads/googleads/v17/enums/target_frequency_time_unit.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/target_frequency_time_unit.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/target_frequency_time_unit.proto index f19c7da61..509adfa03 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/target_frequency_time_unit.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/target_frequency_time_unit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetFrequencyTimeUnitProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing bidding goal Target Frequency time units. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/target_impression_share_location.proto b/third_party/googleapis/google/ads/googleads/v17/enums/target_impression_share_location.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/target_impression_share_location.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/target_impression_share_location.proto index 31c396c7c..fe20e1c1a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/target_impression_share_location.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/target_impression_share_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetImpressionShareLocationProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing target impression share goal. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/targeting_dimension.proto b/third_party/googleapis/google/ads/googleads/v17/enums/targeting_dimension.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/enums/targeting_dimension.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/targeting_dimension.proto index 0eab0536a..10973558a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/targeting_dimension.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/targeting_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetingDimensionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing criteria types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/time_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/time_type.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/time_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/time_type.proto index e4e3d35eb..c9fe76f2a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/time_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/time_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TimeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing TimeType types. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/tracking_code_page_format.proto b/third_party/googleapis/google/ads/googleads/v17/enums/tracking_code_page_format.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/tracking_code_page_format.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/tracking_code_page_format.proto index fc8775471..ce9fd72b7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/tracking_code_page_format.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/tracking_code_page_format.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TrackingCodePageFormatProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing the format of the web page where the tracking // tag and snippet will be installed. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/tracking_code_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/tracking_code_type.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/enums/tracking_code_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/tracking_code_type.proto index e4e6bac74..280e96f92 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/tracking_code_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/tracking_code_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TrackingCodeTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Container for enum describing the type of the generated tag snippets for // tracking conversions. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/travel_placeholder_field.proto b/third_party/googleapis/google/ads/googleads/v17/enums/travel_placeholder_field.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/enums/travel_placeholder_field.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/travel_placeholder_field.proto index 30b53108b..588fa0389 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/travel_placeholder_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/travel_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TravelPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing Travel placeholder fields. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_identifier_source.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_identifier_source.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_identifier_source.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_identifier_source.proto index cfd640731..4f9bb02a6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_identifier_source.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_identifier_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserIdentifierSourceProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing user identifier source diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_interest_taxonomy_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_interest_taxonomy_type.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_interest_taxonomy_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_interest_taxonomy_type.proto index 9465b99ed..ef13deb48 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_interest_taxonomy_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_interest_taxonomy_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserInterestTaxonomyTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing the UserInterest taxonomy type diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_access_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_access_status.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_access_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_access_status.proto index 97fb4db8e..4522556bd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_access_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_access_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListAccessStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing user list access status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_closing_reason.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_closing_reason.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_closing_reason.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_closing_reason.proto index 75061c380..0d09d149e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_closing_reason.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_closing_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListClosingReasonProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing user list closing reason. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_crm_data_source_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_crm_data_source_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_crm_data_source_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_crm_data_source_type.proto index a01e1043f..b9ae560f8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_crm_data_source_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_crm_data_source_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListCrmDataSourceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Indicates source of Crm upload data. message UserListCrmDataSourceTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v17/enums/user_list_customer_type_category.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_customer_type_category.proto new file mode 100644 index 000000000..3461d4bb0 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_customer_type_category.proto @@ -0,0 +1,67 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeCategoryProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing user list customer type category. + +// The user list customer type categories. +message UserListCustomerTypeCategoryEnum { + // Enum containing possible user list customer type categories. + enum UserListCustomerTypeCategory { + // Not specified. + UNSPECIFIED = 0; + + // Unknown type. + UNKNOWN = 1; + + // Customer type category for all customers. + ALL_CUSTOMERS = 2; + + // Customer type category for all purchasers. + PURCHASERS = 3; + + // Customer type category for high value purchasers. + HIGH_VALUE_CUSTOMERS = 4; + + // Customer type category for disengaged purchasers. + DISENGAGED_CUSTOMERS = 5; + + // Customer type category for qualified leads. + QUALIFIED_LEADS = 6; + + // Customer type category for converted leads. + CONVERTED_LEADS = 7; + + // Customer type category for paid subscribers. + PAID_SUBSCRIBERS = 8; + + // Customer type category for loyalty signups. + LOYALTY_SIGN_UPS = 9; + + // Customer type category for cart abandoners. + CART_ABANDONERS = 10; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_date_rule_item_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_date_rule_item_operator.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_date_rule_item_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_date_rule_item_operator.proto index 4503ec0f1..60f83042e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_date_rule_item_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_date_rule_item_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListDateRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Supported rule operator for date type. message UserListDateRuleItemOperatorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_flexible_rule_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_flexible_rule_operator.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_flexible_rule_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_flexible_rule_operator.proto index 084bd4107..4e3018618 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_flexible_rule_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_flexible_rule_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListFlexibleRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Logical operator connecting two rules. message UserListFlexibleRuleOperatorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_logical_rule_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_logical_rule_operator.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_logical_rule_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_logical_rule_operator.proto index c985e5f94..0a92aa587 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_logical_rule_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_logical_rule_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListLogicalRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // The logical operator of the rule. message UserListLogicalRuleOperatorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_membership_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_membership_status.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_membership_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_membership_status.proto index 3daf54d31..63ad38996 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_membership_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_membership_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListMembershipStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing user list membership status. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_number_rule_item_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_number_rule_item_operator.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_number_rule_item_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_number_rule_item_operator.proto index 8917538c1..f7c4115d4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_number_rule_item_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_number_rule_item_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListNumberRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Supported rule operator for number type. message UserListNumberRuleItemOperatorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_prepopulation_status.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_prepopulation_status.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_prepopulation_status.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_prepopulation_status.proto index cd3738c65..b0d39bd83 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_prepopulation_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_prepopulation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListPrepopulationStatusProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Indicates status of prepopulation based on the rule. message UserListPrepopulationStatusEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_rule_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_rule_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_rule_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_rule_type.proto index 5c9102d1d..2854d4213 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_rule_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_rule_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListRuleTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Rule based user list rule type. message UserListRuleTypeEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_size_range.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_size_range.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_size_range.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_size_range.proto index eddffdcd2..e7d2e50d9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_size_range.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_size_range.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListSizeRangeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing user list size range. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_string_rule_item_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_string_rule_item_operator.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_string_rule_item_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_string_rule_item_operator.proto index 66a7e9c41..5065fdf7a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_string_rule_item_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_string_rule_item_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListStringRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Supported rule operator for string type. message UserListStringRuleItemOperatorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_type.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/enums/user_list_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/user_list_type.proto index 439103f23..41853e1d4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/user_list_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/user_list_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing user list type. @@ -55,5 +55,9 @@ message UserListTypeEnum { // UserList of first-party CRM data provided by advertiser in the form of // emails or other formats. CRM_BASED = 7; + + // LookalikeUserlist, composed of users similar to those + // of a configurable seed (set of UserLists) + LOOKALIKE = 9; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_device_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_device_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/value_rule_device_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/value_rule_device_type.proto index 338617f1b..cea55f846 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_device_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_device_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule device type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_geo_location_match_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_geo_location_match_type.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/value_rule_geo_location_match_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/value_rule_geo_location_match_type.proto index ab3a61c83..3f9245a5a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_geo_location_match_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_geo_location_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleGeoLocationMatchTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule geo location match type. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_operation.proto b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_operation.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/value_rule_operation.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/value_rule_operation.proto index 621108964..f1f235fdc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_operation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleOperationProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule operation. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_set_attachment_type.proto b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_set_attachment_type.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/enums/value_rule_set_attachment_type.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/value_rule_set_attachment_type.proto index a83b229e7..07a973c1e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_set_attachment_type.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_set_attachment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleSetAttachmentTypeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing where the conversion value rule is attached. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_set_dimension.proto b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_set_dimension.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/value_rule_set_dimension.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/value_rule_set_dimension.proto index f34bcb487..d4bd2de7a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/value_rule_set_dimension.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/value_rule_set_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleSetDimensionProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing conversion value rule set dimension. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/vanity_pharma_display_url_mode.proto b/third_party/googleapis/google/ads/googleads/v17/enums/vanity_pharma_display_url_mode.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/vanity_pharma_display_url_mode.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/vanity_pharma_display_url_mode.proto index e06701566..dff872df4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/vanity_pharma_display_url_mode.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/vanity_pharma_display_url_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "VanityPharmaDisplayUrlModeProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing vanity pharma display url modes. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/vanity_pharma_text.proto b/third_party/googleapis/google/ads/googleads/v17/enums/vanity_pharma_text.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/enums/vanity_pharma_text.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/vanity_pharma_text.proto index e05649551..9d94f0dd5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/vanity_pharma_text.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/vanity_pharma_text.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "VanityPharmaTextProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing vanity pharma texts. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/video_thumbnail.proto b/third_party/googleapis/google/ads/googleads/v17/enums/video_thumbnail.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/video_thumbnail.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/video_thumbnail.proto index c32365129..21a28ee57 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/video_thumbnail.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/video_thumbnail.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "VideoThumbnailProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing video thumbnails. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/webpage_condition_operand.proto b/third_party/googleapis/google/ads/googleads/v17/enums/webpage_condition_operand.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/enums/webpage_condition_operand.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/webpage_condition_operand.proto index 7f33b6d25..f1fe7921d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/webpage_condition_operand.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/webpage_condition_operand.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "WebpageConditionOperandProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing webpage condition operand. diff --git a/third_party/googleapis/google/ads/googleads/v14/enums/webpage_condition_operator.proto b/third_party/googleapis/google/ads/googleads/v17/enums/webpage_condition_operator.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/enums/webpage_condition_operator.proto rename to third_party/googleapis/google/ads/googleads/v17/enums/webpage_condition_operator.proto index 21d9174af..b984ef0b7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/enums/webpage_condition_operator.proto +++ b/third_party/googleapis/google/ads/googleads/v17/enums/webpage_condition_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.enums; +package google.ads.googleads.v17.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; option java_multiple_files = true; option java_outer_classname = "WebpageConditionOperatorProto"; -option java_package = "com.google.ads.googleads.v14.enums"; +option java_package = "com.google.ads.googleads.v17.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V14::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; // Proto file describing webpage condition operator. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/BUILD.bazel b/third_party/googleapis/google/ads/googleads/v17/errors/BUILD.bazel similarity index 96% rename from third_party/googleapis/google/ads/googleads/v14/errors/BUILD.bazel rename to third_party/googleapis/google/ads/googleads/v17/errors/BUILD.bazel index f4983f4f1..672a4e67e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/BUILD.bazel +++ b/third_party/googleapis/google/ads/googleads/v17/errors/BUILD.bazel @@ -26,8 +26,8 @@ proto_library( name = "errors_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v14/common:common_proto", - "//google/ads/googleads/v14/enums:enums_proto", + "//google/ads/googleads/v17/common:common_proto", + "//google/ads/googleads/v17/enums:enums_proto", "//google/api:annotations_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:wrappers_proto", diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/access_invitation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/access_invitation_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/access_invitation_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/access_invitation_error.proto index 646f41082..14481ce53 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/access_invitation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/access_invitation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AccessInvitationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing AccessInvitation errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/account_budget_proposal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/account_budget_proposal_error.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/errors/account_budget_proposal_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/account_budget_proposal_error.proto index ed5c10d57..0cf6d39c2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/account_budget_proposal_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/account_budget_proposal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing account budget proposal errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/account_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/account_link_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/account_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/account_link_error.proto index 1702dda25..5e6d396ac 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/account_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/account_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AccountLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing AccountLink errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_customizer_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_customizer_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_customizer_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_customizer_error.proto index 2183a385b..b349f8987 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_customizer_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad customizer errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_error.proto similarity index 98% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_error.proto index f5be3eaf1..881da2cdb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_ad_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_ad_error.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_ad_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_ad_error.proto index 13288af4a..411501d5f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_ad_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_ad_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group ad errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_bid_modifier_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_bid_modifier_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_bid_modifier_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_bid_modifier_error.proto index 2ea690180..1facf5c1f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_bid_modifier_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_bid_modifier_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupBidModifierErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group bid modifier errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_criterion_customizer_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_criterion_customizer_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_criterion_customizer_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_criterion_customizer_error.proto index 077eff04e..fd1e4882c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_criterion_customizer_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_criterion_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group criterion customizer errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_criterion_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_criterion_error.proto similarity index 93% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_criterion_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_criterion_error.proto index f5311ff9d..746cd618e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_criterion_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group criterion errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_customizer_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_customizer_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_customizer_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_customizer_error.proto index 4c5696321..1cee8859e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_customizer_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group customizer errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_error.proto index f7143f818..93783aa4d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group errors. @@ -87,5 +87,11 @@ message AdGroupErrorEnum { // The asset set type is invalid for setting the // excluded_parent_asset_set_types field. INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE = 17; + + // Cannot add ad groups for the campaign type. + CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE = 18; + + // Invalid status for the ad group. + INVALID_STATUS = 19; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_feed_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_feed_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_group_feed_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_group_feed_error.proto index caf7523b2..21da09ef5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_group_feed_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_group_feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupFeedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad group feed errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_parameter_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_parameter_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_parameter_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_parameter_error.proto index 72be5f285..3e162f96c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_parameter_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_parameter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdParameterErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad parameter errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/ad_sharing_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/ad_sharing_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/ad_sharing_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/ad_sharing_error.proto index b231585a9..44ed8f402 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/ad_sharing_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/ad_sharing_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdSharingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ad sharing errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/adx_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/adx_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/adx_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/adx_error.proto index 50cf77014..10ef065b3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/adx_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/adx_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdxErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing adx errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_error.proto similarity index 93% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_error.proto index 4d765b694..fa8f1f639 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_group_asset_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_asset_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_group_asset_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_group_asset_error.proto index 17ccbd3b6..42f6f3567 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_group_asset_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_asset_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupAssetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset group asset errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_group_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_error.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_group_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_group_error.proto index 74846f4c7..d9ff48f96 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_group_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset group errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_group_listing_group_filter_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_listing_group_filter_error.proto similarity index 62% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_group_listing_group_filter_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_group_listing_group_filter_error.proto index 7f89c466b..279ecac53 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_group_listing_group_filter_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_listing_group_filter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupListingGroupFilterErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset group asset errors. @@ -77,5 +77,35 @@ message AssetGroupListingGroupFilterErrorEnum { // Dimension can't subdivide everything-else node in its own hierarchy. CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE = 14; + + // This dimension type is not allowed in this context. + DIMENSION_TYPE_NOT_ALLOWED = 15; + + // All the webpage filters under an AssetGroup should be distinct. + DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP = 16; + + // Filter of the listing source type is not allowed in the context. + LISTING_SOURCE_NOT_ALLOWED = 17; + + // Exclusion filters are not allowed in the context. + FILTER_EXCLUSION_NOT_ALLOWED = 18; + + // All the filters under an AssetGroup should have the same listing source. + MULTIPLE_LISTING_SOURCES = 19; + + // All the conditions in a webpage needs to be of same type. + MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED = 20; + + // All the webpage types of the filters under an AssetGroup should be of + // same type. Example: All the webpage types can be of type custom_label or + // url_contains but not both. + MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP = 21; + + // All page feed filter nodes are root nodes and they can't have a parent. + PAGE_FEED_FILTER_HAS_PARENT = 22; + + // There cannot be more than one mutate operation per request that targets a + // single asset group listing group filter. + MULTIPLE_OPERATIONS_ON_ONE_NODE = 23; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_signal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_signal_error.proto new file mode 100644 index 000000000..3dbdface4 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_group_signal_error.proto @@ -0,0 +1,54 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupSignalErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing asset group signal errors. + +// Container for enum describing possible asset group signal errors. +message AssetGroupSignalErrorEnum { + // Enum describing possible asset group signal errors. + enum AssetGroupSignalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The number of words in the Search Theme signal exceed the allowed + // maximum. You can add up to 10 words in a keyword. See + // https://support.google.com/google-ads/answer/7476658 for details. + TOO_MANY_WORDS = 2; + + // The search theme requested to be added violates certain policy. + // See https://support.google.com/adspolicy/answer/6008942. + SEARCH_THEME_POLICY_VIOLATION = 3; + + // The asset group referenced by the asset group signal does not match the + // asset group referenced by the audience being used in the asset group + // signal. + AUDIENCE_WITH_WRONG_ASSET_GROUP_ID = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_link_error.proto similarity index 93% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_link_error.proto index 549849ae9..c7e813cbb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset link errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_set_asset_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_set_asset_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_set_asset_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_set_asset_error.proto index c88fe8157..5e53a1f42 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_set_asset_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_set_asset_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset set asset errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_set_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_set_error.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_set_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_set_error.proto index 373eccf24..ec631c14f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_set_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetSetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset set errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/asset_set_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/asset_set_link_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/asset_set_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/asset_set_link_error.proto index 01a9ca0a0..44e66cadf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/asset_set_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/asset_set_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetSetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing asset set link errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/audience_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/audience_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/audience_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/audience_error.proto index 5b71bfb3d..c0ea419e0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/audience_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/audience_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AudienceErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing audience errors. @@ -62,5 +62,11 @@ message AudienceErrorEnum { // ad group criterion or asset group signal in an (enabled or paused) // ad group or campaign. IN_USE = 9; + + // Asset Group scoped audience requires an asset group ID. + MISSING_ASSET_GROUP_ID = 10; + + // Audience scope may not be changed from Customer to AssetGroup. + CANNOT_CHANGE_FROM_CUSTOMER_TO_ASSET_GROUP_SCOPE = 11; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/audience_insights_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/audience_insights_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/audience_insights_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/audience_insights_error.proto index a51f2e2f0..7c32317ef 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/audience_insights_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/audience_insights_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AudienceInsightsErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors generated from AudienceInsightsService. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/authentication_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/authentication_error.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/errors/authentication_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/authentication_error.proto index 6ffc4a0b1..450f2fdc1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/authentication_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/authentication_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AuthenticationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing authentication errors. @@ -62,7 +62,9 @@ message AuthenticationErrorEnum { // Login cookie is required for authentication. LOGIN_COOKIE_REQUIRED = 13; - // User in the cookie is not a valid Ads user. + // The Google account that generated the OAuth access + // token is not associated with a Google Ads account. Create a new + // account, or add the Google account to an existing Google Ads account. NOT_ADS_USER = 14; // OAuth token in the header is not valid. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/authorization_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/authorization_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/authorization_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/authorization_error.proto index ae53be957..a1f540c74 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/authorization_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/authorization_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AuthorizationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing authorization errors. @@ -91,5 +91,9 @@ message AuthorizationErrorEnum { // The Google Cloud project is not under the required organization. CLOUD_PROJECT_NOT_UNDER_ORGANIZATION = 27; + + // The user does not have permission to perform this action on the resource + // or method because the Google Ads account is suspended. + ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT = 28; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/batch_job_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/batch_job_error.proto similarity index 50% rename from third_party/googleapis/google/ads/googleads/v14/errors/batch_job_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/batch_job_error.proto index 98371f0a8..6548527f8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/batch_job_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/batch_job_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BatchJobErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing batch job errors. @@ -59,5 +59,29 @@ message BatchJobErrorEnum { // The batch job cannot be listed due to unexpected errors such as duplicate // checkpoints. CANNOT_LIST_RESULTS = 8; + + // The request contains interdependent AssetGroup and AssetGroupAsset + // operations that are treated atomically as a single transaction, and one + // or more of the operations in that transaction failed, which caused the + // entire transaction, and therefore this mutate operation, to fail. The + // operations that caused the transaction to fail can be found in the + // consecutive AssetGroup or AssetGroupAsset results with the same asset + // group id. The mutate operation will be successful once the remaining + // errors in the transaction are fixed. + ASSET_GROUP_AND_ASSET_GROUP_ASSET_TRANSACTION_FAILURE = 9; + + // The request contains interdependent AssetGroupListingGroupFilter + // operations that are treated atomically as a single transaction, and one + // or more of the operations in that transaction failed, which caused the + // entire transaction, and therefore this mutate operation, to fail. The + // operations that caused the transaction to fail can be found in the + // consecutive AssetGroupListingGroupFilter results with the same asset + // group id. The mutate operation will be successful once the remaining + // errors in the transaction are fixed. + ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE = 10; + + // The AddBatchJobOperationsRequest is too large. Split the request into + // smaller requests. The maximum allowed request size is 10484504 bytes. + REQUEST_TOO_LARGE = 11; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/bidding_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/bidding_error.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/errors/bidding_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/bidding_error.proto index 85d3324fe..6fc34f334 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/bidding_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/bidding_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BiddingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing bidding errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/bidding_strategy_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/bidding_strategy_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/bidding_strategy_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/bidding_strategy_error.proto index 84bc61c4d..efe5eddb4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/bidding_strategy_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/bidding_strategy_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing bidding strategy errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/billing_setup_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/billing_setup_error.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/errors/billing_setup_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/billing_setup_error.proto index c4612a05f..13cc8dd86 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/billing_setup_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/billing_setup_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BillingSetupErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing billing setup errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_budget_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_budget_error.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_budget_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_budget_error.proto index 810668648..b13a85dfa 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_budget_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_budget_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignBudgetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign budget errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_conversion_goal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_conversion_goal_error.proto similarity index 72% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_conversion_goal_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_conversion_goal_error.proto index 26ecc5267..e7210ce24 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_conversion_goal_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_conversion_goal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignConversionGoalErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign conversion goal errors. @@ -39,5 +39,8 @@ message CampaignConversionGoalErrorEnum { // Campaign is managed by Search Ads 360 but uses Unified Goal. CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN = 2; + + // Performance Max campaign cannot use an included store sale campaign goal. + CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN = 3; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_criterion_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_criterion_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_criterion_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_criterion_error.proto index 0bfb93737..f649e042c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_criterion_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign criterion errors. @@ -119,5 +119,17 @@ message CampaignCriterionErrorEnum { // Local service ID is not found under selected categories in local // services campaign setting. LOCAL_SERVICE_ID_NOT_FOUND_FOR_CATEGORY = 25; + + // For search advertising channel, brand lists can only be applied to + // exclusive targeting, broad match campaigns for inclusive targeting or + // PMax generated campaigns. + CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN = 26; + + // Campaigns that target all countries and territories are limited to a + // certain number of top-level location exclusions. If removing a criterion + // causes the campaign to target all countries and territories and the + // campaign has more top-level location exclusions than the limit allows, + // then this error is returned. + CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS = 27; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_customizer_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_customizer_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_customizer_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_customizer_error.proto index 4462f95db..69ad7b704 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_customizer_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign customizer errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_draft_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_draft_error.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_draft_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_draft_error.proto index d8ab2ae62..fad394e5b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_draft_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_draft_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign draft errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_error.proto index a76abd3e3..4eac40cd2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign errors. @@ -283,5 +283,45 @@ message CampaignErrorEnum { // Invalid number of advertising partner IDs. INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS = 84; + + // Cannot target the display network without also targeting YouTube. + CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE = 85; + + // This campaign type cannot be linked to a Comparison Shopping Service + // account. + CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT = 86; + + // Standard Shopping campaigns that are linked to a Comparison Shopping + // Service account cannot target this network. + CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS = 87; + + // Text asset automation settings can not be modified when there is an + // active Performance Max optimization automatically created assets + // experiment. End the experiment to modify these settings. + CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL = 88; + + // Dynamic text asset cannot be opted out when final URL expansion is opted + // in. + DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN = 89; + + // Can not set a campaign level match type. + CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE = 90; + + // The campaign level keyword match type cannot be switched to non-broad + // when keyword conversion to broad match is in process. + CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS = 91; + + // The campaign level keyword match type cannot be switched to non-broad + // when the campaign has any attached brand list or when a brand hint shared + // set is attached to the campaign. + CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS = 92; + + // Cannot set campaign level keyword match type to BROAD if the campaign is + // a base campaign with an associated trial that is currently promoting. + CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL = 93; + + // Cannot set campaign level keyword match type to BROAD if the campaign is + // a trial currently promoting. + CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN = 94; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_experiment_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_experiment_error.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_experiment_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_experiment_error.proto index e4c17da57..ddd837265 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_experiment_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_experiment_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignExperimentErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign experiment errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_feed_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_feed_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_feed_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_feed_error.proto index 1c4c022fc..2071561b0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_feed_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignFeedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign feed errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/campaign_lifecycle_goal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_lifecycle_goal_error.proto new file mode 100644 index 000000000..93962f7cf --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_lifecycle_goal_error.proto @@ -0,0 +1,106 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLifecycleGoalErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing CampaignLifecycleGoal errors. + +// Container for enum describing possible campaign lifecycle goal errors. +message CampaignLifecycleGoalErrorEnum { + // Enum describing possible campaign lifecycle goal errors. + enum CampaignLifecycleGoalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Campaign is not specified. + CAMPAIGN_MISSING = 2; + + // Cannot find the specified campaign. + INVALID_CAMPAIGN = 3; + + // Optimization mode is unspecified or invalid. + CUSTOMER_ACQUISITION_INVALID_OPTIMIZATION_MODE = 4; + + // The configured lifecycle goal setting is not compatible with the bidding + // strategy the campaign is using. Specifically, BID_HIGHER_FOR_NEW_CUSTOMER + // requires conversion-value based bidding strategy type such as + // MAXIMIZE_CONVERSION_VALUE. + INCOMPATIBLE_BIDDING_STRATEGY = 5; + + // Lifecycle goals require the campaign to optimize towards purchase + // conversion goal. + MISSING_PURCHASE_GOAL = 6; + + // CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_lifetime_value + // is invalid or not allowed, such as when the specified value is smaller + // than 0.01, when the optimization mode is not BID_HIGHER_FOR_NEW_CUSTOMER, + // or when + // CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_lifetime_value + // is specified smaller than/without + // CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value. + CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE = 7; + + // Customer acquisition goal is not supported on this campaign type. + CUSTOMER_ACQUISITION_UNSUPPORTED_CAMPAIGN_TYPE = 8; + + // CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value + // is invalid or not allowed, such as when the specified value is smaller + // than 0.01, or when the optimization mode is not + // BID_HIGHER_FOR_NEW_CUSTOMER. + CUSTOMER_ACQUISITION_INVALID_VALUE = 9; + + // To use BID_HIGHER_FOR_NEW_CUSTOMER mode, either + // CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value + // or CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value + // must have been specified. If a manager account is managing your account's + // conversion tracking, then only the CustomerLifecycleGoal of that manager + // account is used. + CUSTOMER_ACQUISITION_VALUE_MISSING = 10; + + // In order for a campaign to adopt the customer acquisition goal, + // CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists + // must include active and accessible userlist with more than 1000 members + // in the Search/Youtube network. If a manager account is managing your + // account's conversion tracking, then only the CustomerLifecycleGoal of + // that manager account is used. Also make sure that the manager account + // shares audience segments with sub-accounts with continuous audience + // sharing. + CUSTOMER_ACQUISITION_MISSING_EXISTING_CUSTOMER_DEFINITION = 11; + + // In order for a campaign to adopt the customer acquisition goal with high + // lifetime value optimization, + // CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifetime_value_user_lists + // must include active and accessible userlist with more than 1000 members + // in the Search/Youtube network. If a manager account is managing your + // account's conversion tracking, then only the CustomerLifecycleGoal of + // that manager account is used. Also make sure that the manager account + // shares audience segments with sub-accounts using continuous audience + // sharing. + CUSTOMER_ACQUISITION_MISSING_HIGH_VALUE_CUSTOMER_DEFINITION = 12; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_shared_set_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_shared_set_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/campaign_shared_set_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/campaign_shared_set_error.proto index a268c13f9..5085404b5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/campaign_shared_set_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/campaign_shared_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing campaign shared set errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/change_event_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/change_event_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/change_event_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/change_event_error.proto index b2d377788..4914deb05 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/change_event_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/change_event_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ChangeEventErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing change event errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/change_status_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/change_status_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/change_status_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/change_status_error.proto index adbaaff33..4b9992868 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/change_status_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/change_status_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing change status errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/collection_size_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/collection_size_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/collection_size_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/collection_size_error.proto index a5d1b6cdf..bd0611617 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/collection_size_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/collection_size_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CollectionSizeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing collection size errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/context_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/context_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/context_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/context_error.proto index 213300c5f..ef52f8160 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/context_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/context_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ContextErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing context errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_action_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_action_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_action_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_action_error.proto index b34ae870d..4c0d0168b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_action_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_action_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionActionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion action errors. @@ -74,5 +74,9 @@ message ConversionActionErrorEnum { // Update of this conversion action isn't supported by Google Ads API. UPDATE_NOT_SUPPORTED = 11; + + // Rule-based attribution models are deprecated and not allowed to be set + // by conversion action. + CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS = 12; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_adjustment_upload_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_adjustment_upload_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto index 252195d20..2c44f0bda 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_adjustment_upload_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionAdjustmentUploadErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion adjustment upload errors. @@ -41,9 +41,6 @@ message ConversionAdjustmentUploadErrorEnum { // importing again in 6 hours. TOO_RECENT_CONVERSION_ACTION = 2; - // Make sure you specify an active conversion action that can be adjusted. - INVALID_CONVERSION_ACTION = 3; - // The conversion was already retracted. This adjustment was not processed. CONVERSION_ALREADY_RETRACTED = 4; @@ -131,5 +128,21 @@ message ConversionAdjustmentUploadErrorEnum { // Can't use adjustment with Order IDs containing personally-identifiable // information (PII). ORDER_ID_CONTAINS_PII = 25; + + // The provided job id in the request is not within the allowed range. A job + // ID must be a positive integer in the range [1, 2^31). + INVALID_JOB_ID = 26; + + // The conversion action specified in the adjustment request cannot be + // found. Make sure it's available in this account. + NO_CONVERSION_ACTION_FOUND = 27; + + // The type of the conversion action specified in the adjustment request + // isn't supported for uploading adjustments. A conversion adjustment of + // type `RETRACTION` or `RESTATEMENT` is only permitted for conversion + // actions of type `SALESFORCE`, `UPLOAD_CLICK` or `WEBPAGE`. A conversion + // adjustment of type `ENHANCEMENT` is only permitted for conversion + // actions of type `WEBPAGE`. + INVALID_CONVERSION_ACTION_TYPE = 28; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_custom_variable_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_custom_variable_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_custom_variable_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_custom_variable_error.proto index 436328547..08efe9bc6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_custom_variable_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_custom_variable_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion custom variable errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_goal_campaign_config_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_goal_campaign_config_error.proto similarity index 67% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_goal_campaign_config_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_goal_campaign_config_error.proto index f8653d57e..61fe0dccd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_goal_campaign_config_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_goal_campaign_config_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionGoalCampaignConfigErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion goal campaign config errors. @@ -47,5 +47,17 @@ message ConversionGoalCampaignConfigErrorEnum { // The campaign is not allowed to use unified goals. CAMPAIGN_CANNOT_USE_UNIFIED_GOALS = 4; + + // The campaign is using campaign override goals but has no goals + // configured. + EMPTY_CONVERSION_GOALS = 5; + + // STORE_SALE and STORE_VISIT conversion types cannot be both included in + // campaign level goal. + STORE_SALE_STORE_VISIT_CANNOT_BE_BOTH_INCLUDED = 6; + + // Performance Max campaign is not allowed to use custom goal with store + // sales conversion type. + PERFORMANCE_MAX_CAMPAIGN_CANNOT_USE_CUSTOM_GOAL_WITH_STORE_SALES = 7; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_upload_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_upload_error.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_upload_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_upload_error.proto index 528503d71..13618552a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_upload_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_upload_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionUploadErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion upload errors. @@ -66,10 +66,6 @@ message ConversionUploadErrorEnum { // manager account. UNAUTHORIZED_CUSTOMER = 8; - // Make sure you specify a valid conversion action set up for offline - // import. - INVALID_CONVERSION_ACTION = 9; - // Can't import events to a conversion action that was just created. Try // importing again in 6 hours. TOO_RECENT_CONVERSION_ACTION = 10; @@ -169,8 +165,10 @@ message ConversionUploadErrorEnum { // customer didn't consent to tracking. CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY = 32; - // The click can't be found for the specified identifiers. This may be - // because it did not come from a Google Ads campaign. + // The email address or phone number for this event can't be matched to a + // click. This may be because it didn't come from a Google Ads campaign, and + // you can safely ignore this warning. If this includes more imported events + // than is expected, you may need to check your setup. CLICK_NOT_FOUND = 33; // Make sure you hash user provided data using SHA-256 and ensure you are @@ -219,5 +217,17 @@ message ConversionUploadErrorEnum { // conversion_tracking_setting.enhanced_conversions_for_leads_enabled on // Customer. CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS = 50; + + // The provided job id in the request is not within the allowed range. A job + // ID must be a positive integer in the range [1, 2^31). + INVALID_JOB_ID = 52; + + // The conversion action specified in the upload request cannot be found. + // Make sure it's available in this account. + NO_CONVERSION_ACTION_FOUND = 53; + + // The conversion action specified in the upload request isn't set up for + // uploading conversions. + INVALID_CONVERSION_ACTION_TYPE = 54; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_value_rule_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_value_rule_error.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_value_rule_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_value_rule_error.proto index 86b2cbf73..eb3334e9a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_value_rule_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_value_rule_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion value rule errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_value_rule_set_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_value_rule_set_error.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/errors/conversion_value_rule_set_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/conversion_value_rule_set_error.proto index ae91f51fb..ab22819fd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/conversion_value_rule_set_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/conversion_value_rule_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing conversion value rule set errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/country_code_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/country_code_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/country_code_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/country_code_error.proto index 9c5ae43db..9c2c97a7a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/country_code_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/country_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CountryCodeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing country code errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/criterion_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/criterion_error.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/errors/criterion_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/criterion_error.proto index 61dd332d5..1883d10d1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/criterion_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CriterionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing criterion errors. @@ -510,5 +510,19 @@ message CriterionErrorEnum { // Invalid detailed demographics criterion. INVALID_DETAILED_DEMOGRAPHIC = 154; + + // The brand criteria has a brand input that is not recognized as a + // valid brand. + CANNOT_RECOGNIZE_BRAND = 155; + + // The brand_list.shared_set_id references a shared set that does not + // exist. + BRAND_SHARED_SET_DOES_NOT_EXIST = 156; + + // Cannot create a brand list with deleted shared set. + CANNOT_ADD_REMOVED_BRAND_SHARED_SET = 157; + + // Brand list can only be negatively targeted for the campaign type. + ONLY_EXCLUSION_BRAND_LIST_ALLOWED_FOR_CAMPAIGN_TYPE = 158; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/currency_code_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/currency_code_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/currency_code_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/currency_code_error.proto index 20f9b53c4..1368ddfc2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/currency_code_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/currency_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CurrencyCodeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing currency code errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/currency_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/currency_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/currency_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/currency_error.proto index 5077724e0..0a14670a2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/currency_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/currency_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CurrencyErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing currency errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/custom_audience_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/custom_audience_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/custom_audience_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/custom_audience_error.proto index bf8ff78f0..1f0433020 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/custom_audience_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/custom_audience_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing custom audience errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/custom_conversion_goal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/custom_conversion_goal_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/custom_conversion_goal_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/custom_conversion_goal_error.proto index d110b5074..68afd63ea 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/custom_conversion_goal_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/custom_conversion_goal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing CustomConversionGoal errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/custom_interest_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/custom_interest_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/custom_interest_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/custom_interest_error.proto index a1e0f1a35..f61f9bda0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/custom_interest_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/custom_interest_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomInterestErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing custom interest errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_client_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_client_link_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_client_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_client_link_error.proto index b77092b61..a727bab7e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_client_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_client_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerClientLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing CustomerClientLink errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_customizer_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_customizer_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_customizer_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_customizer_error.proto index 55194a43c..9078d39fb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_customizer_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing customer customizer errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_error.proto index 103b2ba67..3d7d69b02 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Container for enum describing possible customer errors. message CustomerErrorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_feed_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_feed_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_feed_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_feed_error.proto index 25a08e28e..8c2483407 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_feed_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerFeedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing customer feed errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/customer_lifecycle_goal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_lifecycle_goal_error.proto new file mode 100644 index 000000000..0278964ba --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_lifecycle_goal_error.proto @@ -0,0 +1,77 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLifecycleGoalErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing CustomerLifecycleGoal errors. + +// Container for enum describing possible customer lifecycle goal errors. +message CustomerLifecycleGoalErrorEnum { + // Enum describing possible customer lifecycle goal errors. + enum CustomerLifecycleGoalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must + // be set. + CUSTOMER_ACQUISITION_VALUE_MISSING = 2; + + // CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must + // be no less than 0.01. + CUSTOMER_ACQUISITION_INVALID_VALUE = 3; + + // CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_value + // must be no less than 0.01. Also, to set this field, + // CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must + // also be present, and high_lifetime_value must be greater than value. + CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE = 4; + + // CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value + // cannot be cleared. This value would have no effect as long as none of + // your campaigns adopt the customer acquisitiong goal. + CUSTOMER_ACQUISITION_VALUE_CANNOT_BE_CLEARED = 5; + + // CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_value + // cannot be cleared. This value would have no effect as long as none of + // your campaigns adopt the high value optimization of customer acquisitiong + // goal. + CUSTOMER_ACQUISITION_HIGH_LIFETIME_VALUE_CANNOT_BE_CLEARED = 6; + + // Found invalid value in + // CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists. + // The userlist must be accessible, active and belong to one of the + // following types: CRM_BASED, RULE_BASED, REMARKETING. + INVALID_EXISTING_USER_LIST = 7; + + // Found invalid value in + // CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifetime_value_user_lists. + // The userlist must be accessible, active and belong to one of the + // following types: CRM_BASED, RULE_BASED, REMARKETING. + INVALID_HIGH_LIFETIME_VALUE_USER_LIST = 8; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_manager_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_manager_link_error.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_manager_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_manager_link_error.proto index 17a62f9c5..d536e05e6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_manager_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_manager_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing CustomerManagerLink errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_sk_ad_network_conversion_value_schema_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_sk_ad_network_conversion_value_schema_error.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_sk_ad_network_conversion_value_schema_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_sk_ad_network_conversion_value_schema_error.proto index 0ca5832fa..6d331e3a5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_sk_ad_network_conversion_value_schema_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_sk_ad_network_conversion_value_schema_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerSkAdNetworkConversionValueSchemaErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing CustomerSkAdNetworkConversionValueSchema errors. @@ -49,5 +49,11 @@ message CustomerSkAdNetworkConversionValueSchemaErrorEnum { // The customer link id provided could not be found. LINK_CODE_NOT_FOUND = 5; + + // The SkAdNetwork event counter provided is invalid. + INVALID_EVENT_COUNTER = 7; + + // The SkAdNetwork event name provided is invalid. + INVALID_EVENT_NAME = 8; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customer_user_access_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customer_user_access_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/customer_user_access_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customer_user_access_error.proto index 398d554f4..8692b3976 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customer_user_access_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customer_user_access_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing CustomerUserAccess errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/customizer_attribute_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/customizer_attribute_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/customizer_attribute_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/customizer_attribute_error.proto index 2037f29ba..5187c98e0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/customizer_attribute_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/customizer_attribute_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing customizer attribute errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/database_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/database_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/database_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/database_error.proto index d9517642b..01af9d25c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/database_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/database_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DatabaseErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing database errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/date_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/date_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/date_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/date_error.proto index fb4a3e19b..48f1ae920 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/date_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/date_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DateErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing date errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/date_range_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/date_range_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/date_range_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/date_range_error.proto index 59bc9cd8d..0b749eeda 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/date_range_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/date_range_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DateRangeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing date range errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/distinct_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/distinct_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/distinct_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/distinct_error.proto index 65666fbab..f3f306625 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/distinct_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/distinct_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DistinctErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing distinct errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/enum_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/enum_error.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/errors/enum_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/enum_error.proto index 8599f67d2..2ea93e34e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/enum_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/enum_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "EnumErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing enum errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/errors.proto b/third_party/googleapis/google/ads/googleads/v17/errors/errors.proto similarity index 66% rename from third_party/googleapis/google/ads/googleads/v14/errors/errors.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/errors.proto index a543d1b39..ab58b57f8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/errors.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/errors.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,165 +14,175 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; - -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/common/value.proto"; -import "google/ads/googleads/v14/enums/resource_limit_type.proto"; -import "google/ads/googleads/v14/errors/access_invitation_error.proto"; -import "google/ads/googleads/v14/errors/account_budget_proposal_error.proto"; -import "google/ads/googleads/v14/errors/account_link_error.proto"; -import "google/ads/googleads/v14/errors/ad_customizer_error.proto"; -import "google/ads/googleads/v14/errors/ad_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_ad_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_bid_modifier_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_criterion_customizer_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_criterion_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_customizer_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_error.proto"; -import "google/ads/googleads/v14/errors/ad_group_feed_error.proto"; -import "google/ads/googleads/v14/errors/ad_parameter_error.proto"; -import "google/ads/googleads/v14/errors/ad_sharing_error.proto"; -import "google/ads/googleads/v14/errors/adx_error.proto"; -import "google/ads/googleads/v14/errors/asset_error.proto"; -import "google/ads/googleads/v14/errors/asset_group_asset_error.proto"; -import "google/ads/googleads/v14/errors/asset_group_error.proto"; -import "google/ads/googleads/v14/errors/asset_group_listing_group_filter_error.proto"; -import "google/ads/googleads/v14/errors/asset_link_error.proto"; -import "google/ads/googleads/v14/errors/asset_set_asset_error.proto"; -import "google/ads/googleads/v14/errors/asset_set_error.proto"; -import "google/ads/googleads/v14/errors/asset_set_link_error.proto"; -import "google/ads/googleads/v14/errors/audience_error.proto"; -import "google/ads/googleads/v14/errors/audience_insights_error.proto"; -import "google/ads/googleads/v14/errors/authentication_error.proto"; -import "google/ads/googleads/v14/errors/authorization_error.proto"; -import "google/ads/googleads/v14/errors/batch_job_error.proto"; -import "google/ads/googleads/v14/errors/bidding_error.proto"; -import "google/ads/googleads/v14/errors/bidding_strategy_error.proto"; -import "google/ads/googleads/v14/errors/billing_setup_error.proto"; -import "google/ads/googleads/v14/errors/campaign_budget_error.proto"; -import "google/ads/googleads/v14/errors/campaign_conversion_goal_error.proto"; -import "google/ads/googleads/v14/errors/campaign_criterion_error.proto"; -import "google/ads/googleads/v14/errors/campaign_customizer_error.proto"; -import "google/ads/googleads/v14/errors/campaign_draft_error.proto"; -import "google/ads/googleads/v14/errors/campaign_error.proto"; -import "google/ads/googleads/v14/errors/campaign_experiment_error.proto"; -import "google/ads/googleads/v14/errors/campaign_feed_error.proto"; -import "google/ads/googleads/v14/errors/campaign_shared_set_error.proto"; -import "google/ads/googleads/v14/errors/change_event_error.proto"; -import "google/ads/googleads/v14/errors/change_status_error.proto"; -import "google/ads/googleads/v14/errors/collection_size_error.proto"; -import "google/ads/googleads/v14/errors/context_error.proto"; -import "google/ads/googleads/v14/errors/conversion_action_error.proto"; -import "google/ads/googleads/v14/errors/conversion_adjustment_upload_error.proto"; -import "google/ads/googleads/v14/errors/conversion_custom_variable_error.proto"; -import "google/ads/googleads/v14/errors/conversion_goal_campaign_config_error.proto"; -import "google/ads/googleads/v14/errors/conversion_upload_error.proto"; -import "google/ads/googleads/v14/errors/conversion_value_rule_error.proto"; -import "google/ads/googleads/v14/errors/conversion_value_rule_set_error.proto"; -import "google/ads/googleads/v14/errors/country_code_error.proto"; -import "google/ads/googleads/v14/errors/criterion_error.proto"; -import "google/ads/googleads/v14/errors/currency_code_error.proto"; -import "google/ads/googleads/v14/errors/currency_error.proto"; -import "google/ads/googleads/v14/errors/custom_audience_error.proto"; -import "google/ads/googleads/v14/errors/custom_conversion_goal_error.proto"; -import "google/ads/googleads/v14/errors/custom_interest_error.proto"; -import "google/ads/googleads/v14/errors/customer_client_link_error.proto"; -import "google/ads/googleads/v14/errors/customer_customizer_error.proto"; -import "google/ads/googleads/v14/errors/customer_error.proto"; -import "google/ads/googleads/v14/errors/customer_feed_error.proto"; -import "google/ads/googleads/v14/errors/customer_manager_link_error.proto"; -import "google/ads/googleads/v14/errors/customer_sk_ad_network_conversion_value_schema_error.proto"; -import "google/ads/googleads/v14/errors/customer_user_access_error.proto"; -import "google/ads/googleads/v14/errors/customizer_attribute_error.proto"; -import "google/ads/googleads/v14/errors/database_error.proto"; -import "google/ads/googleads/v14/errors/date_error.proto"; -import "google/ads/googleads/v14/errors/date_range_error.proto"; -import "google/ads/googleads/v14/errors/distinct_error.proto"; -import "google/ads/googleads/v14/errors/enum_error.proto"; -import "google/ads/googleads/v14/errors/experiment_arm_error.proto"; -import "google/ads/googleads/v14/errors/experiment_error.proto"; -import "google/ads/googleads/v14/errors/extension_feed_item_error.proto"; -import "google/ads/googleads/v14/errors/extension_setting_error.proto"; -import "google/ads/googleads/v14/errors/feed_attribute_reference_error.proto"; -import "google/ads/googleads/v14/errors/feed_error.proto"; -import "google/ads/googleads/v14/errors/feed_item_error.proto"; -import "google/ads/googleads/v14/errors/feed_item_set_error.proto"; -import "google/ads/googleads/v14/errors/feed_item_set_link_error.proto"; -import "google/ads/googleads/v14/errors/feed_item_target_error.proto"; -import "google/ads/googleads/v14/errors/feed_item_validation_error.proto"; -import "google/ads/googleads/v14/errors/feed_mapping_error.proto"; -import "google/ads/googleads/v14/errors/field_error.proto"; -import "google/ads/googleads/v14/errors/field_mask_error.proto"; -import "google/ads/googleads/v14/errors/function_error.proto"; -import "google/ads/googleads/v14/errors/function_parsing_error.proto"; -import "google/ads/googleads/v14/errors/geo_target_constant_suggestion_error.proto"; -import "google/ads/googleads/v14/errors/header_error.proto"; -import "google/ads/googleads/v14/errors/id_error.proto"; -import "google/ads/googleads/v14/errors/image_error.proto"; -import "google/ads/googleads/v14/errors/internal_error.proto"; -import "google/ads/googleads/v14/errors/invoice_error.proto"; -import "google/ads/googleads/v14/errors/keyword_plan_ad_group_error.proto"; -import "google/ads/googleads/v14/errors/keyword_plan_ad_group_keyword_error.proto"; -import "google/ads/googleads/v14/errors/keyword_plan_campaign_error.proto"; -import "google/ads/googleads/v14/errors/keyword_plan_campaign_keyword_error.proto"; -import "google/ads/googleads/v14/errors/keyword_plan_error.proto"; -import "google/ads/googleads/v14/errors/keyword_plan_idea_error.proto"; -import "google/ads/googleads/v14/errors/label_error.proto"; -import "google/ads/googleads/v14/errors/language_code_error.proto"; -import "google/ads/googleads/v14/errors/list_operation_error.proto"; -import "google/ads/googleads/v14/errors/manager_link_error.proto"; -import "google/ads/googleads/v14/errors/media_bundle_error.proto"; -import "google/ads/googleads/v14/errors/media_file_error.proto"; -import "google/ads/googleads/v14/errors/media_upload_error.proto"; -import "google/ads/googleads/v14/errors/merchant_center_error.proto"; -import "google/ads/googleads/v14/errors/multiplier_error.proto"; -import "google/ads/googleads/v14/errors/mutate_error.proto"; -import "google/ads/googleads/v14/errors/new_resource_creation_error.proto"; -import "google/ads/googleads/v14/errors/not_allowlisted_error.proto"; -import "google/ads/googleads/v14/errors/not_empty_error.proto"; -import "google/ads/googleads/v14/errors/null_error.proto"; -import "google/ads/googleads/v14/errors/offline_user_data_job_error.proto"; -import "google/ads/googleads/v14/errors/operation_access_denied_error.proto"; -import "google/ads/googleads/v14/errors/operator_error.proto"; -import "google/ads/googleads/v14/errors/partial_failure_error.proto"; -import "google/ads/googleads/v14/errors/payments_account_error.proto"; -import "google/ads/googleads/v14/errors/policy_finding_error.proto"; -import "google/ads/googleads/v14/errors/policy_validation_parameter_error.proto"; -import "google/ads/googleads/v14/errors/policy_violation_error.proto"; -import "google/ads/googleads/v14/errors/query_error.proto"; -import "google/ads/googleads/v14/errors/quota_error.proto"; -import "google/ads/googleads/v14/errors/range_error.proto"; -import "google/ads/googleads/v14/errors/reach_plan_error.proto"; -import "google/ads/googleads/v14/errors/recommendation_error.proto"; -import "google/ads/googleads/v14/errors/region_code_error.proto"; -import "google/ads/googleads/v14/errors/request_error.proto"; -import "google/ads/googleads/v14/errors/resource_access_denied_error.proto"; -import "google/ads/googleads/v14/errors/resource_count_limit_exceeded_error.proto"; -import "google/ads/googleads/v14/errors/search_term_insight_error.proto"; -import "google/ads/googleads/v14/errors/setting_error.proto"; -import "google/ads/googleads/v14/errors/shared_criterion_error.proto"; -import "google/ads/googleads/v14/errors/shared_set_error.proto"; -import "google/ads/googleads/v14/errors/size_limit_error.proto"; -import "google/ads/googleads/v14/errors/smart_campaign_error.proto"; -import "google/ads/googleads/v14/errors/string_format_error.proto"; -import "google/ads/googleads/v14/errors/string_length_error.proto"; -import "google/ads/googleads/v14/errors/third_party_app_analytics_link_error.proto"; -import "google/ads/googleads/v14/errors/time_zone_error.proto"; -import "google/ads/googleads/v14/errors/url_field_error.proto"; -import "google/ads/googleads/v14/errors/user_data_error.proto"; -import "google/ads/googleads/v14/errors/user_list_error.proto"; -import "google/ads/googleads/v14/errors/youtube_video_registration_error.proto"; +package google.ads.googleads.v17.errors; + +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/common/value.proto"; +import "google/ads/googleads/v17/enums/resource_limit_type.proto"; +import "google/ads/googleads/v17/errors/access_invitation_error.proto"; +import "google/ads/googleads/v17/errors/account_budget_proposal_error.proto"; +import "google/ads/googleads/v17/errors/account_link_error.proto"; +import "google/ads/googleads/v17/errors/ad_customizer_error.proto"; +import "google/ads/googleads/v17/errors/ad_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_ad_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_bid_modifier_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_criterion_customizer_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_criterion_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_customizer_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_error.proto"; +import "google/ads/googleads/v17/errors/ad_group_feed_error.proto"; +import "google/ads/googleads/v17/errors/ad_parameter_error.proto"; +import "google/ads/googleads/v17/errors/ad_sharing_error.proto"; +import "google/ads/googleads/v17/errors/adx_error.proto"; +import "google/ads/googleads/v17/errors/asset_error.proto"; +import "google/ads/googleads/v17/errors/asset_group_asset_error.proto"; +import "google/ads/googleads/v17/errors/asset_group_error.proto"; +import "google/ads/googleads/v17/errors/asset_group_listing_group_filter_error.proto"; +import "google/ads/googleads/v17/errors/asset_group_signal_error.proto"; +import "google/ads/googleads/v17/errors/asset_link_error.proto"; +import "google/ads/googleads/v17/errors/asset_set_asset_error.proto"; +import "google/ads/googleads/v17/errors/asset_set_error.proto"; +import "google/ads/googleads/v17/errors/asset_set_link_error.proto"; +import "google/ads/googleads/v17/errors/audience_error.proto"; +import "google/ads/googleads/v17/errors/audience_insights_error.proto"; +import "google/ads/googleads/v17/errors/authentication_error.proto"; +import "google/ads/googleads/v17/errors/authorization_error.proto"; +import "google/ads/googleads/v17/errors/batch_job_error.proto"; +import "google/ads/googleads/v17/errors/bidding_error.proto"; +import "google/ads/googleads/v17/errors/bidding_strategy_error.proto"; +import "google/ads/googleads/v17/errors/billing_setup_error.proto"; +import "google/ads/googleads/v17/errors/campaign_budget_error.proto"; +import "google/ads/googleads/v17/errors/campaign_conversion_goal_error.proto"; +import "google/ads/googleads/v17/errors/campaign_criterion_error.proto"; +import "google/ads/googleads/v17/errors/campaign_customizer_error.proto"; +import "google/ads/googleads/v17/errors/campaign_draft_error.proto"; +import "google/ads/googleads/v17/errors/campaign_error.proto"; +import "google/ads/googleads/v17/errors/campaign_experiment_error.proto"; +import "google/ads/googleads/v17/errors/campaign_feed_error.proto"; +import "google/ads/googleads/v17/errors/campaign_lifecycle_goal_error.proto"; +import "google/ads/googleads/v17/errors/campaign_shared_set_error.proto"; +import "google/ads/googleads/v17/errors/change_event_error.proto"; +import "google/ads/googleads/v17/errors/change_status_error.proto"; +import "google/ads/googleads/v17/errors/collection_size_error.proto"; +import "google/ads/googleads/v17/errors/context_error.proto"; +import "google/ads/googleads/v17/errors/conversion_action_error.proto"; +import "google/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto"; +import "google/ads/googleads/v17/errors/conversion_custom_variable_error.proto"; +import "google/ads/googleads/v17/errors/conversion_goal_campaign_config_error.proto"; +import "google/ads/googleads/v17/errors/conversion_upload_error.proto"; +import "google/ads/googleads/v17/errors/conversion_value_rule_error.proto"; +import "google/ads/googleads/v17/errors/conversion_value_rule_set_error.proto"; +import "google/ads/googleads/v17/errors/country_code_error.proto"; +import "google/ads/googleads/v17/errors/criterion_error.proto"; +import "google/ads/googleads/v17/errors/currency_code_error.proto"; +import "google/ads/googleads/v17/errors/currency_error.proto"; +import "google/ads/googleads/v17/errors/custom_audience_error.proto"; +import "google/ads/googleads/v17/errors/custom_conversion_goal_error.proto"; +import "google/ads/googleads/v17/errors/custom_interest_error.proto"; +import "google/ads/googleads/v17/errors/customer_client_link_error.proto"; +import "google/ads/googleads/v17/errors/customer_customizer_error.proto"; +import "google/ads/googleads/v17/errors/customer_error.proto"; +import "google/ads/googleads/v17/errors/customer_feed_error.proto"; +import "google/ads/googleads/v17/errors/customer_lifecycle_goal_error.proto"; +import "google/ads/googleads/v17/errors/customer_manager_link_error.proto"; +import "google/ads/googleads/v17/errors/customer_sk_ad_network_conversion_value_schema_error.proto"; +import "google/ads/googleads/v17/errors/customer_user_access_error.proto"; +import "google/ads/googleads/v17/errors/customizer_attribute_error.proto"; +import "google/ads/googleads/v17/errors/database_error.proto"; +import "google/ads/googleads/v17/errors/date_error.proto"; +import "google/ads/googleads/v17/errors/date_range_error.proto"; +import "google/ads/googleads/v17/errors/distinct_error.proto"; +import "google/ads/googleads/v17/errors/enum_error.proto"; +import "google/ads/googleads/v17/errors/experiment_arm_error.proto"; +import "google/ads/googleads/v17/errors/experiment_error.proto"; +import "google/ads/googleads/v17/errors/extension_feed_item_error.proto"; +import "google/ads/googleads/v17/errors/extension_setting_error.proto"; +import "google/ads/googleads/v17/errors/feed_attribute_reference_error.proto"; +import "google/ads/googleads/v17/errors/feed_error.proto"; +import "google/ads/googleads/v17/errors/feed_item_error.proto"; +import "google/ads/googleads/v17/errors/feed_item_set_error.proto"; +import "google/ads/googleads/v17/errors/feed_item_set_link_error.proto"; +import "google/ads/googleads/v17/errors/feed_item_target_error.proto"; +import "google/ads/googleads/v17/errors/feed_item_validation_error.proto"; +import "google/ads/googleads/v17/errors/feed_mapping_error.proto"; +import "google/ads/googleads/v17/errors/field_error.proto"; +import "google/ads/googleads/v17/errors/field_mask_error.proto"; +import "google/ads/googleads/v17/errors/function_error.proto"; +import "google/ads/googleads/v17/errors/function_parsing_error.proto"; +import "google/ads/googleads/v17/errors/geo_target_constant_suggestion_error.proto"; +import "google/ads/googleads/v17/errors/header_error.proto"; +import "google/ads/googleads/v17/errors/id_error.proto"; +import "google/ads/googleads/v17/errors/identity_verification_error.proto"; +import "google/ads/googleads/v17/errors/image_error.proto"; +import "google/ads/googleads/v17/errors/internal_error.proto"; +import "google/ads/googleads/v17/errors/invoice_error.proto"; +import "google/ads/googleads/v17/errors/keyword_plan_ad_group_error.proto"; +import "google/ads/googleads/v17/errors/keyword_plan_ad_group_keyword_error.proto"; +import "google/ads/googleads/v17/errors/keyword_plan_campaign_error.proto"; +import "google/ads/googleads/v17/errors/keyword_plan_campaign_keyword_error.proto"; +import "google/ads/googleads/v17/errors/keyword_plan_error.proto"; +import "google/ads/googleads/v17/errors/keyword_plan_idea_error.proto"; +import "google/ads/googleads/v17/errors/label_error.proto"; +import "google/ads/googleads/v17/errors/language_code_error.proto"; +import "google/ads/googleads/v17/errors/list_operation_error.proto"; +import "google/ads/googleads/v17/errors/manager_link_error.proto"; +import "google/ads/googleads/v17/errors/media_bundle_error.proto"; +import "google/ads/googleads/v17/errors/media_file_error.proto"; +import "google/ads/googleads/v17/errors/media_upload_error.proto"; +import "google/ads/googleads/v17/errors/merchant_center_error.proto"; +import "google/ads/googleads/v17/errors/multiplier_error.proto"; +import "google/ads/googleads/v17/errors/mutate_error.proto"; +import "google/ads/googleads/v17/errors/new_resource_creation_error.proto"; +import "google/ads/googleads/v17/errors/not_allowlisted_error.proto"; +import "google/ads/googleads/v17/errors/not_empty_error.proto"; +import "google/ads/googleads/v17/errors/null_error.proto"; +import "google/ads/googleads/v17/errors/offline_user_data_job_error.proto"; +import "google/ads/googleads/v17/errors/operation_access_denied_error.proto"; +import "google/ads/googleads/v17/errors/operator_error.proto"; +import "google/ads/googleads/v17/errors/partial_failure_error.proto"; +import "google/ads/googleads/v17/errors/payments_account_error.proto"; +import "google/ads/googleads/v17/errors/policy_finding_error.proto"; +import "google/ads/googleads/v17/errors/policy_validation_parameter_error.proto"; +import "google/ads/googleads/v17/errors/policy_violation_error.proto"; +import "google/ads/googleads/v17/errors/product_link_error.proto"; +import "google/ads/googleads/v17/errors/product_link_invitation_error.proto"; +import "google/ads/googleads/v17/errors/query_error.proto"; +import "google/ads/googleads/v17/errors/quota_error.proto"; +import "google/ads/googleads/v17/errors/range_error.proto"; +import "google/ads/googleads/v17/errors/reach_plan_error.proto"; +import "google/ads/googleads/v17/errors/recommendation_error.proto"; +import "google/ads/googleads/v17/errors/recommendation_subscription_error.proto"; +import "google/ads/googleads/v17/errors/region_code_error.proto"; +import "google/ads/googleads/v17/errors/request_error.proto"; +import "google/ads/googleads/v17/errors/resource_access_denied_error.proto"; +import "google/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto"; +import "google/ads/googleads/v17/errors/search_term_insight_error.proto"; +import "google/ads/googleads/v17/errors/setting_error.proto"; +import "google/ads/googleads/v17/errors/shared_criterion_error.proto"; +import "google/ads/googleads/v17/errors/shared_set_error.proto"; +import "google/ads/googleads/v17/errors/shopping_product_error.proto"; +import "google/ads/googleads/v17/errors/size_limit_error.proto"; +import "google/ads/googleads/v17/errors/smart_campaign_error.proto"; +import "google/ads/googleads/v17/errors/string_format_error.proto"; +import "google/ads/googleads/v17/errors/string_length_error.proto"; +import "google/ads/googleads/v17/errors/third_party_app_analytics_link_error.proto"; +import "google/ads/googleads/v17/errors/time_zone_error.proto"; +import "google/ads/googleads/v17/errors/url_field_error.proto"; +import "google/ads/googleads/v17/errors/user_data_error.proto"; +import "google/ads/googleads/v17/errors/user_list_customer_type_error.proto"; +import "google/ads/googleads/v17/errors/user_list_error.proto"; +import "google/ads/googleads/v17/errors/video_campaign_error.proto"; +import "google/ads/googleads/v17/errors/youtube_video_registration_error.proto"; import "google/protobuf/duration.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ErrorsProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing the common error protos @@ -195,7 +205,7 @@ message GoogleAdsError { string message = 2; // The value that triggered the error. - google.ads.googleads.v14.common.Value trigger = 3; + google.ads.googleads.v17.common.Value trigger = 3; // Describes the part of the request proto that caused the error. ErrorLocation location = 4; @@ -236,7 +246,7 @@ message ErrorCode { // An unexpected server-side error. InternalErrorEnum.InternalError internal_error = 10; - // An error with the amonut of quota remaining. + // An error with the amount of quota remaining. QuotaErrorEnum.QuotaError quota_error = 11; // An error with an Ad Group Ad mutate. @@ -251,6 +261,9 @@ message ErrorCode { // An error with a Campaign mutate. CampaignErrorEnum.CampaignError campaign_error = 15; + // An error with a Video Campaign mutate. + VideoCampaignErrorEnum.VideoCampaignError video_campaign_error = 182; + // Indicates failure to properly authenticate user. AuthenticationErrorEnum.AuthenticationError authentication_error = 17; @@ -405,6 +418,10 @@ message ErrorCode { // The reasons for error in applying a recommendation RecommendationErrorEnum.RecommendationError recommendation_error = 58; + // The reasons for the recommendation subscription error. + RecommendationSubscriptionErrorEnum.RecommendationSubscriptionError + recommendation_subscription_error = 180; + // The reasons for the region code error RegionCodeErrorEnum.RegionCodeError region_code_error = 51; @@ -680,6 +697,9 @@ message ErrorCode { AudienceInsightsErrorEnum.AudienceInsightsError audience_insights_error = 167; + // The reasons for the product link error + ProductLinkErrorEnum.ProductLinkError product_link_error = 169; + // The reasons for the customer SK Ad network conversion value schema error CustomerSkAdNetworkConversionValueSchemaErrorEnum .CustomerSkAdNetworkConversionValueSchemaError @@ -687,6 +707,33 @@ message ErrorCode { // The reasons for the currency errors. CurrencyErrorEnum.CurrencyError currency_error = 171; + + // The reasons for the asset group hint error + AssetGroupSignalErrorEnum.AssetGroupSignalError asset_group_signal_error = + 176; + + // The reasons for the product link invitation error + ProductLinkInvitationErrorEnum.ProductLinkInvitationError + product_link_invitation_error = 177; + + // The reasons for the customer lifecycle goal error + CustomerLifecycleGoalErrorEnum.CustomerLifecycleGoalError + customer_lifecycle_goal_error = 178; + + // The reasons for the campaign lifecycle goal error + CampaignLifecycleGoalErrorEnum.CampaignLifecycleGoalError + campaign_lifecycle_goal_error = 179; + + // The reasons for an identity verification error. + IdentityVerificationErrorEnum.IdentityVerificationError + identity_verification_error = 181; + + // The reasons for a user list customer type error. + UserListCustomerTypeErrorEnum.UserListCustomerTypeError + user_list_customer_type_error = 183; + + // The reasons for error in querying shopping product. + ShoppingProductErrorEnum.ShoppingProductError shopping_product_error = 184; } } @@ -734,7 +781,7 @@ message PolicyViolationDetails { // Unique identifier for this violation. // If policy is exemptible, this key may be used to request exemption. - google.ads.googleads.v14.common.PolicyViolationKey key = 4; + google.ads.googleads.v17.common.PolicyViolationKey key = 4; // Human readable name of the policy. string external_policy_name = 5; @@ -750,7 +797,7 @@ message PolicyFindingDetails { // The list of policy topics for the resource. Contains the PROHIBITED or // FULLY_LIMITED policy topic entries that prevented the resource from being // saved (among any other entries the resource may also have). - repeated google.ads.googleads.v14.common.PolicyTopicEntry + repeated google.ads.googleads.v17.common.PolicyTopicEntry policy_topic_entries = 1; } @@ -796,7 +843,7 @@ message ResourceCountDetails { int32 limit = 2; // The resource limit type which was exceeded. - google.ads.googleads.v14.enums.ResourceLimitTypeEnum.ResourceLimitType + google.ads.googleads.v17.enums.ResourceLimitTypeEnum.ResourceLimitType limit_type = 3; // The count of existing entities. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/experiment_arm_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/experiment_arm_error.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/errors/experiment_arm_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/experiment_arm_error.proto index 6804398f1..76ffef145 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/experiment_arm_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/experiment_arm_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExperimentArmErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing experiment arm errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/experiment_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/experiment_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/experiment_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/experiment_error.proto index 598a5d6e3..44f166567 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/experiment_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/experiment_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExperimentErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing experiment errors. @@ -124,5 +124,13 @@ message ExperimentErrorEnum { // Cannot add campaign with deprecated ad types. Deprecated ad types: // ENHANCED_DISPLAY, GALLERY, GMAIL, KEYWORDLESS, TEXT. CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES = 28; + + // Sync can only be enabled for supported experiment types. Supported + // experiment types: SEARCH_CUSTOM, DISPLAY_CUSTOM, + // DISPLAY_AUTOMATED_BIDDING_STRATEGY, SEARCH_AUTOMATED_BIDDING_STRATEGY. + CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE = 29; + + // Experiment length cannot be longer than max length. + INVALID_DURATION_FOR_AN_EXPERIMENT = 30; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/extension_feed_item_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/extension_feed_item_error.proto similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/errors/extension_feed_item_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/extension_feed_item_error.proto index 792e48328..2b09f12fe 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/extension_feed_item_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/extension_feed_item_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExtensionFeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing extension feed item errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/extension_setting_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/extension_setting_error.proto similarity index 96% rename from third_party/googleapis/google/ads/googleads/v14/errors/extension_setting_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/extension_setting_error.proto index 5a01a1720..06b4d09be 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/extension_setting_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/extension_setting_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExtensionSettingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing extension setting validation errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_attribute_reference_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_attribute_reference_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_attribute_reference_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_attribute_reference_error.proto index 51acb100f..93645cb02 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_attribute_reference_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_attribute_reference_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedAttributeReferenceErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed attribute reference errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_error.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_error.proto index 50dd76ad5..15af63852 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_item_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_item_error.proto index fec06a1f9..f4f4d0ad9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed item errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_set_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_set_error.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_item_set_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_item_set_error.proto index d032c55ff..9f639c1e2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_set_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed item set errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_set_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_set_link_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_item_set_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_item_set_link_error.proto index bd11d4111..9391a5c14 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_set_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_set_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed item set link errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_target_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_target_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_item_target_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_item_target_error.proto index c0961511e..de2fa8b93 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_target_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_target_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed item target errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_validation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_validation_error.proto similarity index 97% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_item_validation_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_item_validation_error.proto index c1b34b1e1..0d86ef37f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_item_validation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_item_validation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemValidationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed item validation errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/feed_mapping_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/feed_mapping_error.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/errors/feed_mapping_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/feed_mapping_error.proto index e836559bf..3ab35f7e8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/feed_mapping_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/feed_mapping_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedMappingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing feed item errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/field_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/field_error.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/errors/field_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/field_error.proto index 788175d72..447519f31 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/field_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/field_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FieldErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing field errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/field_mask_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/field_mask_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/field_mask_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/field_mask_error.proto index 33fc94290..3b56b8815 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/field_mask_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/field_mask_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FieldMaskErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing field mask errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/function_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/function_error.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/errors/function_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/function_error.proto index a7b1b897d..005930c4e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/function_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/function_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FunctionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing function errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/function_parsing_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/function_parsing_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/function_parsing_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/function_parsing_error.proto index 2d201ade5..08b2f9b62 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/function_parsing_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/function_parsing_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FunctionParsingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing function parsing errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/geo_target_constant_suggestion_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/geo_target_constant_suggestion_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/geo_target_constant_suggestion_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/geo_target_constant_suggestion_error.proto index 53f247378..82d201f9b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/geo_target_constant_suggestion_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/geo_target_constant_suggestion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantSuggestionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Container for enum describing possible geo target constant suggestion errors. message GeoTargetConstantSuggestionErrorEnum { diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/header_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/header_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/header_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/header_error.proto index ecb428427..2f79e92c2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/header_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/header_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "HeaderErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing header errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/id_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/id_error.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/errors/id_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/id_error.proto index cec933b8f..ca87b7e57 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/id_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/id_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "IdErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing id errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/identity_verification_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/identity_verification_error.proto new file mode 100644 index 000000000..8b16785ec --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/identity_verification_error.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing image errors. + +// Container for enum describing possible identity verification errors. +message IdentityVerificationErrorEnum { + // Enum describing possible identity verification errors. + enum IdentityVerificationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No effective billing linked to this customer. + NO_EFFECTIVE_BILLING = 2; + + // Customer is not on monthly invoicing. + BILLING_NOT_ON_MONTHLY_INVOICING = 3; + + // Verification for this program type was already started. + VERIFICATION_ALREADY_STARTED = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/image_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/image_error.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/errors/image_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/image_error.proto index 2bdfff256..210ded4d1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/image_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/image_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ImageErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing image errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/internal_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/internal_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/internal_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/internal_error.proto index 887fcf089..cf57c5888 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/internal_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/internal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "InternalErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing internal errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/invoice_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/invoice_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/invoice_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/invoice_error.proto index 053600cb4..8839b4af2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/invoice_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/invoice_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "InvoiceErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing invoice errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_ad_group_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_ad_group_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_ad_group_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_ad_group_error.proto index a2735b286..958ac9749 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_ad_group_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_ad_group_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from applying a keyword plan ad group. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_ad_group_keyword_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_ad_group_keyword_error.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_ad_group_keyword_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_ad_group_keyword_error.proto index 473607b8e..b0304f33d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_ad_group_keyword_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_ad_group_keyword_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from applying a keyword plan ad group keyword or // keyword plan campaign keyword. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_campaign_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_campaign_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_campaign_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_campaign_error.proto index 7782dedf2..194b69adb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_campaign_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_campaign_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from applying a keyword plan campaign. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_campaign_keyword_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_campaign_keyword_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_campaign_keyword_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_campaign_keyword_error.proto index c4cfdda5a..b077afbc7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_campaign_keyword_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_campaign_keyword_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from applying a keyword plan campaign keyword. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_error.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_error.proto index a5396ba35..59834dba9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from applying keyword plan resources (keyword // plan, keyword plan campaign, keyword plan ad group or keyword plan keyword) diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_idea_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_idea_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_idea_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_idea_error.proto index b31a70411..36261beea 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/keyword_plan_idea_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/keyword_plan_idea_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanIdeaErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from KeywordPlanIdeaService. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/label_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/label_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/label_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/label_error.proto index f9dc947f7..447a32c47 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/label_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/label_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "LabelErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing label errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/language_code_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/language_code_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/language_code_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/language_code_error.proto index a19df3b02..ee74d2565 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/language_code_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/language_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "LanguageCodeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing language code errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/list_operation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/list_operation_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/list_operation_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/list_operation_error.proto index d60e81735..1c94eb081 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/list_operation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/list_operation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ListOperationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing list operation errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/manager_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/manager_link_error.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/errors/manager_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/manager_link_error.proto index 7327314ca..4c3bbb9c7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/manager_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/manager_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ManagerLink errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/media_bundle_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/media_bundle_error.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/errors/media_bundle_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/media_bundle_error.proto index df4f075e4..66ee1d6ea 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/media_bundle_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/media_bundle_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MediaBundleErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing media bundle errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/media_file_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/media_file_error.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/errors/media_file_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/media_file_error.proto index 0361baf99..254084512 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/media_file_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/media_file_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MediaFileErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing media file errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/media_upload_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/media_upload_error.proto similarity index 93% rename from third_party/googleapis/google/ads/googleads/v14/errors/media_upload_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/media_upload_error.proto index 519a487e7..f2a1e6b2b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/media_upload_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/media_upload_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MediaUploadErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing media uploading errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/merchant_center_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/merchant_center_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/merchant_center_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/merchant_center_error.proto index dd389cce0..46d84d7a0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/merchant_center_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/merchant_center_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MerchantCenterErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing merchant center errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/multiplier_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/multiplier_error.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/errors/multiplier_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/multiplier_error.proto index 1800c5c7e..3213ae911 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/multiplier_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/multiplier_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MultiplierErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing multiplier errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/mutate_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/mutate_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/mutate_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/mutate_error.proto index 0ebfbad1a..76b6581f7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/mutate_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/mutate_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MutateErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing mutate errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/new_resource_creation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/new_resource_creation_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/new_resource_creation_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/new_resource_creation_error.proto index f7ebe1ecd..8b5bf5c6b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/new_resource_creation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/new_resource_creation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NewResourceCreationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing new resource creation errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/not_allowlisted_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/not_allowlisted_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/not_allowlisted_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/not_allowlisted_error.proto index 8841bdb23..1412d5c67 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/not_allowlisted_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/not_allowlisted_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NotAllowlistedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing not allowlisted errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/not_empty_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/not_empty_error.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/errors/not_empty_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/not_empty_error.proto index cc2cd6893..66ea5c235 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/not_empty_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/not_empty_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NotEmptyErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing not empty errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/null_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/null_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/null_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/null_error.proto index f664a326e..aac2c2859 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/null_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/null_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NullErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing null errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/offline_user_data_job_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/offline_user_data_job_error.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/errors/offline_user_data_job_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/offline_user_data_job_error.proto index 5fcb3eaaf..80a68b1b8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/offline_user_data_job_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/offline_user_data_job_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing offline user data job errors. @@ -167,5 +167,10 @@ message OfflineUserDataJobErrorEnum { // All the fields are not present in the EventAttribute of the Customer // Match. EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED = 45; + + // Consent was provided at the operation level for an OfflineUserDataJobType + // that expects it at the job level. The provided operation-level consent + // will be ignored. + OPERATION_LEVEL_CONSENT_PROVIDED = 48; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/operation_access_denied_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/operation_access_denied_error.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/errors/operation_access_denied_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/operation_access_denied_error.proto index c47e10bcb..ba6f16895 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/operation_access_denied_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/operation_access_denied_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "OperationAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing operation access denied errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/operator_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/operator_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/operator_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/operator_error.proto index 95bae438e..da5cfc4c0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/operator_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/operator_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "OperatorErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing operator errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/partial_failure_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/partial_failure_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/partial_failure_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/partial_failure_error.proto index 4275aaffc..c6ef94234 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/partial_failure_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/partial_failure_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PartialFailureErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing partial failure errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/payments_account_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/payments_account_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/payments_account_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/payments_account_error.proto index d5244606a..6a92aadb5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/payments_account_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/payments_account_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PaymentsAccountErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing payments account service errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/policy_finding_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/policy_finding_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/policy_finding_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/policy_finding_error.proto index e9b6a101a..4496f44be 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/policy_finding_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/policy_finding_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PolicyFindingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing policy finding errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/policy_validation_parameter_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/policy_validation_parameter_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/policy_validation_parameter_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/policy_validation_parameter_error.proto index 871bf3eff..6c4e7a4b6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/policy_validation_parameter_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/policy_validation_parameter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PolicyValidationParameterErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing policy validation parameter errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/policy_violation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/policy_violation_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/policy_violation_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/policy_violation_error.proto index 6e84f05a7..c4ebbe368 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/policy_violation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/policy_violation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PolicyViolationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing policy violation errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/product_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/product_link_error.proto new file mode 100644 index 000000000..78ad60839 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/product_link_error.proto @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ProductLinkErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing ProductLink errors. + +// Container for enum describing possible ProductLink errors. +message ProductLinkErrorEnum { + // Enum describing possible ProductLink errors. + enum ProductLinkError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The requested operation is invalid. For example, you are not allowed to + // remove a link from a partner account. + INVALID_OPERATION = 2; + + // The creation request is not permitted. + CREATION_NOT_PERMITTED = 3; + + // A link cannot be created because a pending link already exists. + INVITATION_EXISTS = 4; + + // A link cannot be created because an active link already exists. + LINK_EXISTS = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/product_link_invitation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/product_link_invitation_error.proto new file mode 100644 index 000000000..e547918d6 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/product_link_invitation_error.proto @@ -0,0 +1,54 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ProductLinkInvitationErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing ProductLinkInvitation errors. + +// Container for enum describing possible product link invitation errors. +message ProductLinkInvitationErrorEnum { + // Enum describing possible product link invitation errors. + enum ProductLinkInvitationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in the version. + UNKNOWN = 1; + + // The invitation status is invalid. + INVALID_STATUS = 2; + + // The customer doesn't have the permission to perform this action + PERMISSION_DENIED = 3; + + // An invitation could not be created, since the user already has admin + // access to the invited account. Use the ProductLinkService to directly + // create an active link. + NO_INVITATION_REQUIRED = 4; + + // The customer is not permitted to create the invitation. + CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION = 5; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/query_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/query_error.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/errors/query_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/query_error.proto index 6e0465a47..adc2b0415 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/query_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/query_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "QueryErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing query errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/quota_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/quota_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/quota_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/quota_error.proto index b6b9510ad..f52b0ecb3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/quota_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/quota_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "QuotaErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing quota errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/range_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/range_error.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/errors/range_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/range_error.proto index 04c0b240a..c85a8c353 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/range_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/range_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RangeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing range errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/reach_plan_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/reach_plan_error.proto similarity index 69% rename from third_party/googleapis/google/ads/googleads/v14/errors/reach_plan_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/reach_plan_error.proto index e2769e411..3bc972887 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/reach_plan_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/reach_plan_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ReachPlanErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors generated from ReachPlanService. @@ -40,5 +40,11 @@ message ReachPlanErrorEnum { // Not forecastable due to missing rate card data. NOT_FORECASTABLE_MISSING_RATE = 2; + + // Not forecastable due to not enough inventory. + NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY = 3; + + // Not forecastable due to account not being enabled. + NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED = 4; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/recommendation_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/recommendation_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/recommendation_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/recommendation_error.proto index b1553771b..0445cb2a7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/recommendation_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/recommendation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RecommendationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing errors from applying a recommendation. @@ -88,5 +88,15 @@ message RecommendationErrorEnum { // The target multiplier specified is invalid. INVALID_MULTIPLIER = 18; + + // The passed in advertising_channel_type is not supported. + ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED = 19; + + // The passed in recommendation_type is not supported. + RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED = 20; + + // One or more recommendation_types need to be passed into the generate + // recommendations request. + RECOMMENDATION_TYPES_CANNOT_BE_EMPTY = 21; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/recommendation_subscription_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/recommendation_subscription_error.proto new file mode 100644 index 000000000..49237ff9d --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/recommendation_subscription_error.proto @@ -0,0 +1,40 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationSubscriptionErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing errors for a recommendation subscription. + +// Container for enum describing possible recommendation subscription errors. +message RecommendationSubscriptionErrorEnum { + // Enum describing possible recommendation subscription errors. + enum RecommendationSubscriptionError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/region_code_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/region_code_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/region_code_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/region_code_error.proto index ac20a8d8d..4e050a35a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/region_code_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/region_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RegionCodeErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing region code errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/request_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/request_error.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/errors/request_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/request_error.proto index 0ceed875b..5cd12be85 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/request_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/request_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RequestErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing request errors. @@ -64,6 +64,10 @@ message RequestErrorEnum { // Page size specified in user request is invalid. INVALID_PAGE_SIZE = 22; + // Setting the page size is not supported, and will be unavailable in a + // future version. + PAGE_SIZE_NOT_SUPPORTED = 40; + // Required field is missing. REQUIRED_FIELD_MISSING = 9; diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/resource_access_denied_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/resource_access_denied_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/resource_access_denied_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/resource_access_denied_error.proto index 48a4f9612..1481cf97b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/resource_access_denied_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/resource_access_denied_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ResourceAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing resource access denied errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/resource_count_limit_exceeded_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/errors/resource_count_limit_exceeded_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto index f33107e71..a79e882a2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/resource_count_limit_exceeded_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ResourceCountLimitExceededErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing resource count limit exceeded errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/search_term_insight_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/search_term_insight_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/search_term_insight_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/search_term_insight_error.proto index de3abaca3..6fd11e518 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/search_term_insight_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/search_term_insight_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SearchTermInsightErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing search term insight errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/setting_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/setting_error.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/errors/setting_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/setting_error.proto index e0d83f2fa..42e168edc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/setting_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/setting_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SettingErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing setting errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/shared_criterion_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/shared_criterion_error.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/errors/shared_criterion_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/shared_criterion_error.proto index 391f61a58..0778da245 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/shared_criterion_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/shared_criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SharedCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing shared criterion errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/shared_set_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/shared_set_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/shared_set_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/shared_set_error.proto index 49b198cfd..36d04a486 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/shared_set_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/shared_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing shared set errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/shopping_product_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/shopping_product_error.proto new file mode 100644 index 000000000..f6c686eb3 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/shopping_product_error.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ShoppingProductErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing shopping product resource errors. + +// Container for enum describing possible errors querying shopping product. +message ShoppingProductErrorEnum { + // Enum describing possible errors querying shopping product. + enum ShoppingProductError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A filter on the `campaign` resource name is missing. + MISSING_CAMPAIGN_FILTER = 2; + + // A filter on the `ad_group` resource name is missing. + MISSING_AD_GROUP_FILTER = 3; + + // Date segmentation is not supported. + UNSUPPORTED_DATE_SEGMENTATION = 4; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/size_limit_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/size_limit_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/size_limit_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/size_limit_error.proto index 830ea5fc2..b481f70ac 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/size_limit_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/size_limit_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SizeLimitErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing size limit errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/smart_campaign_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/smart_campaign_error.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/errors/smart_campaign_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/smart_campaign_error.proto index 95963e99e..25564a222 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/smart_campaign_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/smart_campaign_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing Smart campaign errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/string_format_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/string_format_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/string_format_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/string_format_error.proto index 736a4595e..0da27e8b8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/string_format_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/string_format_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "StringFormatErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing string format errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/string_length_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/string_length_error.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/errors/string_length_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/string_length_error.proto index 03380dbf4..ed4924531 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/string_length_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/string_length_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "StringLengthErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing string length errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/third_party_app_analytics_link_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/third_party_app_analytics_link_error.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/errors/third_party_app_analytics_link_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/third_party_app_analytics_link_error.proto index 7221f659c..2df34f210 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/third_party_app_analytics_link_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/third_party_app_analytics_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ThirdPartyAppAnalyticsLinkErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing ThirdPartyAppAnalyticsLink errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/time_zone_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/time_zone_error.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/errors/time_zone_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/time_zone_error.proto index 6e97b9592..0e2421bd3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/time_zone_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/time_zone_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "TimeZoneErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing time zone errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/url_field_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/url_field_error.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/errors/url_field_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/url_field_error.proto index 1f2945fd3..05aafeb23 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/url_field_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/url_field_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "UrlFieldErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing url field errors. diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/user_data_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/user_data_error.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/errors/user_data_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/user_data_error.proto index b1d7bb735..5dfcacef2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/user_data_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/user_data_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "UserDataErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing user data errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/user_list_customer_type_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/user_list_customer_type_error.proto new file mode 100644 index 000000000..414419cd4 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/user_list_customer_type_error.proto @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing UserListCustomerType errors. + +// Container for enum describing possible user list customer type errors. +message UserListCustomerTypeErrorEnum { + // Enum describing possible user list customer type errors. + enum UserListCustomerTypeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot add the conflicting customer types to the same user list. + // Conflicting labels: + // 1. Purchasers - Converted Leads + // 2. Purchasers - Qualified Leads + // 3. Purchasers - Cart Abandoners + // 4. Qualified Leads - Converted Leads + // 5. Disengaged customers - Converted Leads + // 6. Disengaged customers - Qualified Leads + // 7. Disengaged customers- Cart Abandoners + CONFLICTING_CUSTOMER_TYPES = 2; + + // The account does not have access to the user list. + NO_ACCESS_TO_USER_LIST = 3; + + // The given user list is not eligible for applying customer types. + // The user list must belong to one of the following types: CRM_BASED, + // RULE_BASED, ADVERTISER_DATA_MODEL_BASED, GCN. + USERLIST_NOT_ELIGIBLE = 4; + + // To edit the user list customer type, conversion tracking must be + // enabled in your account. If cross-tracking is enabled, your account must + // be a MCC manager account to modify user list customer types. More info at + // https://support.google.com/google-ads/answer/3030657 + CONVERSION_TRACKING_NOT_ENABLED_OR_NOT_MCC_MANAGER_ACCOUNT = 5; + + // Too many user lists for the customer type. + TOO_MANY_USER_LISTS_FOR_THE_CUSTOMER_TYPE = 6; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/user_list_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/user_list_error.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/errors/user_list_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/user_list_error.proto index aeb61c691..57961dd3c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/user_list_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/user_list_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "UserListErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing user list errors. @@ -131,5 +131,17 @@ message UserListErrorEnum { // The mobile app associated with the remarketing list is sensitive. MOBILE_APP_IS_SENSITIVE = 41; + + // One or more given seed lists do not exist. + SEED_LIST_DOES_NOT_EXIST = 42; + + // One or more given seed lists are not accessible to the current user. + INVALID_SEED_LIST_ACCESS_REASON = 43; + + // One or more given seed lists have an unsupported type. + INVALID_SEED_LIST_TYPE = 44; + + // One or more invalid country codes are added to Lookalike UserList. + INVALID_COUNTRY_CODES = 45; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/errors/video_campaign_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/video_campaign_error.proto new file mode 100644 index 000000000..7ebcf52ff --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/errors/video_campaign_error.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "VideoCampaignErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing video campaign errors. + +// Container for enum describing possible video campaign errors. +message VideoCampaignErrorEnum { + // Enum describing possible video campaign errors. + enum VideoCampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot modify the video campaign without reservation. + // See https://support.google.com/google-ads/answer/9547606. + MUTATE_REQUIRES_RESERVATION = 2; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/errors/youtube_video_registration_error.proto b/third_party/googleapis/google/ads/googleads/v17/errors/youtube_video_registration_error.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/errors/youtube_video_registration_error.proto rename to third_party/googleapis/google/ads/googleads/v17/errors/youtube_video_registration_error.proto index 83aab0387..a0c37e5e4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/errors/youtube_video_registration_error.proto +++ b/third_party/googleapis/google/ads/googleads/v17/errors/youtube_video_registration_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v14.errors; +package google.ads.googleads.v17.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; option java_multiple_files = true; option java_outer_classname = "YoutubeVideoRegistrationErrorProto"; -option java_package = "com.google.ads.googleads.v14.errors"; +option java_package = "com.google.ads.googleads.v17.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V14::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; // Proto file describing YouTube video registration errors. diff --git a/third_party/googleapis/google/ads/googleads/v17/googleads_gapic.yaml b/third_party/googleapis/google/ads/googleads/v17/googleads_gapic.yaml new file mode 100644 index 000000000..4636a8b7b --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/googleads_gapic.yaml @@ -0,0 +1,26 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +language_settings: + csharp: + package_name: Google.Ads.GoogleAds.V17.Services + go: + package_name: google.golang.org/google/ads/googleads/v17/services + java: + package_name: com.google.ads.googleads.v17.services + nodejs: + package_name: v17.services + php: + package_name: Google\Ads\GoogleAds\V17\Services + python: + package_name: google.ads.googleads_v17.gapic.services + ruby: + package_name: Google::Ads::Googleads::V17::Services +interfaces: +- name: google.ads.googleads.v17.services.OfflineUserDataJobService + methods: + - name: RunOfflineUserDataJob + long_running: + initial_poll_delay_millis: 300000 + max_poll_delay_millis: 3600000 + poll_delay_multiplier: 1.25 + total_poll_timeout_millis: 43200000 diff --git a/third_party/googleapis/google/ads/googleads/v17/googleads_grpc_service_config.json b/third_party/googleapis/google/ads/googleads/v17/googleads_grpc_service_config.json new file mode 100755 index 000000000..4f7e0b3e6 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/googleads_grpc_service_config.json @@ -0,0 +1,357 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.ads.googleads.v17.services.AccountBudgetProposalService" + }, + { + "service": "google.ads.googleads.v17.services.AccountLinkService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupAdLabelService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupAdService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupAssetService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupAssetSetService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupBidModifierService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupCriterionLabelService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupCriterionService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupCustomizerService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupExtensionSettingService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupFeedService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupLabelService" + }, + { + "service": "google.ads.googleads.v17.services.AdGroupService" + }, + { + "service": "google.ads.googleads.v17.services.AdParameterService" + }, + { + "service": "google.ads.googleads.v17.services.AdService" + }, + { + "service": "google.ads.googleads.v17.services.AssetGroupAssetService" + }, + { + "service": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService" + }, + { + "service": "google.ads.googleads.v17.services.AssetGroupService" + }, + { + "service": "google.ads.googleads.v17.services.AssetGroupSignalService" + }, + { + "service": "google.ads.googleads.v17.services.AssetService" + }, + { + "service": "google.ads.googleads.v17.services.AssetSetAssetService" + }, + { + "service": "google.ads.googleads.v17.services.AssetSetService" + }, + { + "service": "google.ads.googleads.v17.services.AudienceInsightsService" + }, + { + "service": "google.ads.googleads.v17.services.AudienceService" + }, + { + "service": "google.ads.googleads.v17.services.BatchJobService" + }, + { + "service": "google.ads.googleads.v17.services.BiddingDataExclusionService" + }, + { + "service": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService" + }, + { + "service": "google.ads.googleads.v17.services.BiddingStrategyService" + }, + { + "service": "google.ads.googleads.v17.services.BillingSetupService" + }, + { + "service": "google.ads.googleads.v17.services.BrandSuggestionService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignAssetService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignAssetSetService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignBidModifierService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignBudgetService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignConversionGoalService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignCriterionService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignCustomizerService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignDraftService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignExtensionSettingService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignFeedService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignGroupService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignLabelService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignLifecycleGoalService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignService" + }, + { + "service": "google.ads.googleads.v17.services.CampaignSharedSetService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionActionService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionCustomVariableService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionUploadService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionValueRuleService" + }, + { + "service": "google.ads.googleads.v17.services.ConversionValueRuleSetService" + }, + { + "service": "google.ads.googleads.v17.services.CustomAudienceService" + }, + { + "service": "google.ads.googleads.v17.services.CustomConversionGoalService" + }, + { + "service": "google.ads.googleads.v17.services.CustomInterestService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerAssetService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerAssetSetService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerClientLinkService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerConversionGoalService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerCustomizerService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerExtensionSettingService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerFeedService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerLabelService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerLifecycleGoalService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerManagerLinkService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerNegativeCriterionService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService" + }, + { + "service": "google.ads.googleads.v17.services.CustomerUserAccessService" + }, + { + "service": "google.ads.googleads.v17.services.CustomizerAttributeService" + }, + { + "service": "google.ads.googleads.v17.services.ExperimentArmService" + }, + { + "service": "google.ads.googleads.v17.services.ExperimentService" + }, + { + "service": "google.ads.googleads.v17.services.ExtensionFeedItemService" + }, + { + "service": "google.ads.googleads.v17.services.FeedItemService" + }, + { + "service": "google.ads.googleads.v17.services.FeedItemSetLinkService" + }, + { + "service": "google.ads.googleads.v17.services.FeedItemSetService" + }, + { + "service": "google.ads.googleads.v17.services.FeedItemTargetService" + }, + { + "service": "google.ads.googleads.v17.services.FeedMappingService" + }, + { + "service": "google.ads.googleads.v17.services.FeedService" + }, + { + "service": "google.ads.googleads.v17.services.GeoTargetConstantService" + }, + { + "service": "google.ads.googleads.v17.services.GoogleAdsFieldService" + }, + { + "service": "google.ads.googleads.v17.services.GoogleAdsService" + }, + { + "service": "google.ads.googleads.v17.services.IdentityVerificationService" + }, + { + "service": "google.ads.googleads.v17.services.InvoiceService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordPlanAdGroupService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordPlanCampaignService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordPlanIdeaService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordPlanService" + }, + { + "service": "google.ads.googleads.v17.services.KeywordThemeConstantService" + }, + { + "service": "google.ads.googleads.v17.services.LabelService" + }, + { + "service": "google.ads.googleads.v17.services.LocalServicesLeadService" + }, + { + "service": "google.ads.googleads.v17.services.OfflineUserDataJobService" + }, + { + "service": "google.ads.googleads.v17.services.PaymentsAccountService" + }, + { + "service": "google.ads.googleads.v17.services.ProductLinkInvitationService" + }, + { + "service": "google.ads.googleads.v17.services.ProductLinkService" + }, + { + "service": "google.ads.googleads.v17.services.ReachPlanService" + }, + { + "service": "google.ads.googleads.v17.services.RecommendationService" + }, + { + "service": "google.ads.googleads.v17.services.RecommendationSubscriptionService" + }, + { + "service": "google.ads.googleads.v17.services.RemarketingActionService" + }, + { + "service": "google.ads.googleads.v17.services.SharedCriterionService" + }, + { + "service": "google.ads.googleads.v17.services.SharedSetService" + }, + { + "service": "google.ads.googleads.v17.services.SmartCampaignSettingService" + }, + { + "service": "google.ads.googleads.v17.services.SmartCampaignSuggestService" + }, + { + "service": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService" + }, + { + "service": "google.ads.googleads.v17.services.TravelAssetSuggestionService" + }, + { + "service": "google.ads.googleads.v17.services.UserDataService" + }, + { + "service": "google.ads.googleads.v17.services.UserListCustomerTypeService" + }, + { + "service": "google.ads.googleads.v17.services.UserListService" + } + ], + "timeout": "14400s", + "retryPolicy": { + "initialBackoff": "5s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE", + "DEADLINE_EXCEEDED" + ] + } + } + ] +} diff --git a/third_party/googleapis/google/ads/googleads/v17/googleads_v17.yaml b/third_party/googleapis/google/ads/googleads/v17/googleads_v17.yaml new file mode 100644 index 000000000..2d0bcbfcf --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/googleads_v17.yaml @@ -0,0 +1,636 @@ +type: google.api.Service +config_version: 3 +name: googleads.googleapis.com +title: Google Ads API + +apis: +- name: google.ads.googleads.v17.services.AccountBudgetProposalService +- name: google.ads.googleads.v17.services.AccountLinkService +- name: google.ads.googleads.v17.services.AdGroupAdLabelService +- name: google.ads.googleads.v17.services.AdGroupAdService +- name: google.ads.googleads.v17.services.AdGroupAssetService +- name: google.ads.googleads.v17.services.AdGroupAssetSetService +- name: google.ads.googleads.v17.services.AdGroupBidModifierService +- name: google.ads.googleads.v17.services.AdGroupCriterionCustomizerService +- name: google.ads.googleads.v17.services.AdGroupCriterionLabelService +- name: google.ads.googleads.v17.services.AdGroupCriterionService +- name: google.ads.googleads.v17.services.AdGroupCustomizerService +- name: google.ads.googleads.v17.services.AdGroupExtensionSettingService +- name: google.ads.googleads.v17.services.AdGroupFeedService +- name: google.ads.googleads.v17.services.AdGroupLabelService +- name: google.ads.googleads.v17.services.AdGroupService +- name: google.ads.googleads.v17.services.AdParameterService +- name: google.ads.googleads.v17.services.AdService +- name: google.ads.googleads.v17.services.AssetGroupAssetService +- name: google.ads.googleads.v17.services.AssetGroupListingGroupFilterService +- name: google.ads.googleads.v17.services.AssetGroupService +- name: google.ads.googleads.v17.services.AssetGroupSignalService +- name: google.ads.googleads.v17.services.AssetService +- name: google.ads.googleads.v17.services.AssetSetAssetService +- name: google.ads.googleads.v17.services.AssetSetService +- name: google.ads.googleads.v17.services.AudienceInsightsService +- name: google.ads.googleads.v17.services.AudienceService +- name: google.ads.googleads.v17.services.BatchJobService +- name: google.ads.googleads.v17.services.BiddingDataExclusionService +- name: google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService +- name: google.ads.googleads.v17.services.BiddingStrategyService +- name: google.ads.googleads.v17.services.BillingSetupService +- name: google.ads.googleads.v17.services.BrandSuggestionService +- name: google.ads.googleads.v17.services.CampaignAssetService +- name: google.ads.googleads.v17.services.CampaignAssetSetService +- name: google.ads.googleads.v17.services.CampaignBidModifierService +- name: google.ads.googleads.v17.services.CampaignBudgetService +- name: google.ads.googleads.v17.services.CampaignConversionGoalService +- name: google.ads.googleads.v17.services.CampaignCriterionService +- name: google.ads.googleads.v17.services.CampaignCustomizerService +- name: google.ads.googleads.v17.services.CampaignDraftService +- name: google.ads.googleads.v17.services.CampaignExtensionSettingService +- name: google.ads.googleads.v17.services.CampaignFeedService +- name: google.ads.googleads.v17.services.CampaignGroupService +- name: google.ads.googleads.v17.services.CampaignLabelService +- name: google.ads.googleads.v17.services.CampaignLifecycleGoalService +- name: google.ads.googleads.v17.services.CampaignService +- name: google.ads.googleads.v17.services.CampaignSharedSetService +- name: google.ads.googleads.v17.services.ConversionActionService +- name: google.ads.googleads.v17.services.ConversionAdjustmentUploadService +- name: google.ads.googleads.v17.services.ConversionCustomVariableService +- name: google.ads.googleads.v17.services.ConversionGoalCampaignConfigService +- name: google.ads.googleads.v17.services.ConversionUploadService +- name: google.ads.googleads.v17.services.ConversionValueRuleService +- name: google.ads.googleads.v17.services.ConversionValueRuleSetService +- name: google.ads.googleads.v17.services.CustomAudienceService +- name: google.ads.googleads.v17.services.CustomConversionGoalService +- name: google.ads.googleads.v17.services.CustomInterestService +- name: google.ads.googleads.v17.services.CustomerAssetService +- name: google.ads.googleads.v17.services.CustomerAssetSetService +- name: google.ads.googleads.v17.services.CustomerClientLinkService +- name: google.ads.googleads.v17.services.CustomerConversionGoalService +- name: google.ads.googleads.v17.services.CustomerCustomizerService +- name: google.ads.googleads.v17.services.CustomerExtensionSettingService +- name: google.ads.googleads.v17.services.CustomerFeedService +- name: google.ads.googleads.v17.services.CustomerLabelService +- name: google.ads.googleads.v17.services.CustomerLifecycleGoalService +- name: google.ads.googleads.v17.services.CustomerManagerLinkService +- name: google.ads.googleads.v17.services.CustomerNegativeCriterionService +- name: google.ads.googleads.v17.services.CustomerService +- name: google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService +- name: google.ads.googleads.v17.services.CustomerUserAccessInvitationService +- name: google.ads.googleads.v17.services.CustomerUserAccessService +- name: google.ads.googleads.v17.services.CustomizerAttributeService +- name: google.ads.googleads.v17.services.ExperimentArmService +- name: google.ads.googleads.v17.services.ExperimentService +- name: google.ads.googleads.v17.services.ExtensionFeedItemService +- name: google.ads.googleads.v17.services.FeedItemService +- name: google.ads.googleads.v17.services.FeedItemSetLinkService +- name: google.ads.googleads.v17.services.FeedItemSetService +- name: google.ads.googleads.v17.services.FeedItemTargetService +- name: google.ads.googleads.v17.services.FeedMappingService +- name: google.ads.googleads.v17.services.FeedService +- name: google.ads.googleads.v17.services.GeoTargetConstantService +- name: google.ads.googleads.v17.services.GoogleAdsFieldService +- name: google.ads.googleads.v17.services.GoogleAdsService +- name: google.ads.googleads.v17.services.IdentityVerificationService +- name: google.ads.googleads.v17.services.InvoiceService +- name: google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService +- name: google.ads.googleads.v17.services.KeywordPlanAdGroupService +- name: google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService +- name: google.ads.googleads.v17.services.KeywordPlanCampaignService +- name: google.ads.googleads.v17.services.KeywordPlanIdeaService +- name: google.ads.googleads.v17.services.KeywordPlanService +- name: google.ads.googleads.v17.services.KeywordThemeConstantService +- name: google.ads.googleads.v17.services.LabelService +- name: google.ads.googleads.v17.services.LocalServicesLeadService +- name: google.ads.googleads.v17.services.OfflineUserDataJobService +- name: google.ads.googleads.v17.services.PaymentsAccountService +- name: google.ads.googleads.v17.services.ProductLinkInvitationService +- name: google.ads.googleads.v17.services.ProductLinkService +- name: google.ads.googleads.v17.services.ReachPlanService +- name: google.ads.googleads.v17.services.RecommendationService +- name: google.ads.googleads.v17.services.RecommendationSubscriptionService +- name: google.ads.googleads.v17.services.RemarketingActionService +- name: google.ads.googleads.v17.services.SharedCriterionService +- name: google.ads.googleads.v17.services.SharedSetService +- name: google.ads.googleads.v17.services.SmartCampaignSettingService +- name: google.ads.googleads.v17.services.SmartCampaignSuggestService +- name: google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService +- name: google.ads.googleads.v17.services.TravelAssetSuggestionService +- name: google.ads.googleads.v17.services.UserDataService +- name: google.ads.googleads.v17.services.UserListCustomerTypeService +- name: google.ads.googleads.v17.services.UserListService + +types: +- name: google.ads.googleads.v17.errors.GoogleAdsFailure +- name: google.ads.googleads.v17.resources.BatchJob.BatchJobMetadata +- name: google.ads.googleads.v17.resources.OfflineUserDataJobMetadata +- name: google.ads.googleads.v17.services.PromoteExperimentMetadata +- name: google.ads.googleads.v17.services.ScheduleExperimentMetadata + +documentation: + summary: 'Manage your Google Ads accounts, campaigns, and reports with this API.' + overview: |- + The Google Ads API enables an app to integrate with the Google Ads + platform. You can efficiently retrieve and change your Google Ads data + using the API, making it ideal for managing large or complex accounts and + campaigns. + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v17/{name=customers/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v17/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v17/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v17/{name=customers/*/operations}' + - selector: google.longrunning.Operations.WaitOperation + post: '/v17/{name=customers/*/operations/*}:wait' + body: '*' + +authentication: + rules: + - selector: google.ads.googleads.v17.services.AccountBudgetProposalService.MutateAccountBudgetProposal + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AccountLinkService.CreateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AccountLinkService.MutateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupAdLabelService.MutateAdGroupAdLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupAdService.MutateAdGroupAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupAssetService.MutateAdGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupAssetSetService.MutateAdGroupAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupBidModifierService.MutateAdGroupBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupCriterionService.MutateAdGroupCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupCustomizerService.MutateAdGroupCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupFeedService.MutateAdGroupFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupLabelService.MutateAdGroupLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupService.MutateAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdParameterService.MutateAdParameters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdService.MutateAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetGroupAssetService.MutateAssetGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetGroupService.MutateAssetGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetGroupSignalService.MutateAssetGroupSignals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetService.MutateAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetSetAssetService.MutateAssetSetAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AssetSetService.MutateAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.AudienceInsightsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AudienceService.MutateAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.BatchJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.BiddingDataExclusionService.MutateBiddingDataExclusions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.BiddingStrategyService.MutateBiddingStrategies + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.BillingSetupService.MutateBillingSetup + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.BrandSuggestionService.SuggestBrands + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignAssetService.MutateCampaignAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignAssetSetService.MutateCampaignAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignBidModifierService.MutateCampaignBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignBudgetService.MutateCampaignBudgets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignConversionGoalService.MutateCampaignConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignCriterionService.MutateCampaignCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignCustomizerService.MutateCampaignCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.CampaignDraftService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignFeedService.MutateCampaignFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignGroupService.MutateCampaignGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignLabelService.MutateCampaignLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignService.MutateCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CampaignSharedSetService.MutateCampaignSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionActionService.MutateConversionActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionAdjustmentUploadService.UploadConversionAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionCustomVariableService.MutateConversionCustomVariables + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionUploadService.UploadCallConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionUploadService.UploadClickConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionValueRuleService.MutateConversionValueRules + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ConversionValueRuleSetService.MutateConversionValueRuleSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomAudienceService.MutateCustomAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomConversionGoalService.MutateCustomConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomInterestService.MutateCustomInterests + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerAssetService.MutateCustomerAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerAssetSetService.MutateCustomerAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerClientLinkService.MutateCustomerClientLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerConversionGoalService.MutateCustomerConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerCustomizerService.MutateCustomerCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerFeedService.MutateCustomerFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerLabelService.MutateCustomerLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerManagerLinkService.MoveManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerManagerLinkService.MutateCustomerManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.CustomerService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomerUserAccessService.MutateCustomerUserAccess + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.CustomizerAttributeService.MutateCustomizerAttributes + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ExperimentArmService.MutateExperimentArms + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.ExperimentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ExtensionFeedItemService.MutateExtensionFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.FeedItemService.MutateFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.FeedItemSetLinkService.MutateFeedItemSetLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.FeedItemSetService.MutateFeedItemSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.FeedItemTargetService.MutateFeedItemTargets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.FeedMappingService.MutateFeedMappings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.FeedService.MutateFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.GeoTargetConstantService.SuggestGeoTargetConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.GoogleAdsFieldService.GetGoogleAdsField + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.GoogleAdsFieldService.SearchGoogleAdsFields + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.GoogleAdsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.IdentityVerificationService.GetIdentityVerification + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.IdentityVerificationService.StartIdentityVerification + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.InvoiceService.ListInvoices + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.KeywordPlanIdeaService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.KeywordPlanService.MutateKeywordPlans + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.KeywordThemeConstantService.SuggestKeywordThemeConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.LabelService.MutateLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.LocalServicesLeadService.AppendLeadConversation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.OfflineUserDataJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.PaymentsAccountService.ListPaymentsAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.ProductLinkInvitationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ProductLinkService.CreateProductLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ProductLinkService.RemoveProductLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.ReachPlanService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.RecommendationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.RecommendationSubscriptionService.MutateRecommendationSubscription + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.RemarketingActionService.MutateRemarketingActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.SharedCriterionService.MutateSharedCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.SharedSetService.MutateSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.SmartCampaignSettingService.GetSmartCampaignStatus + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.SmartCampaignSettingService.MutateSmartCampaignSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v17.services.SmartCampaignSuggestService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.TravelAssetSuggestionService.SuggestTravelAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.UserDataService.UploadUserData + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.UserListCustomerTypeService.MutateUserListCustomerTypes + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.UserListService.MutateUserLists + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/BUILD.bazel b/third_party/googleapis/google/ads/googleads/v17/resources/BUILD.bazel similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/resources/BUILD.bazel rename to third_party/googleapis/google/ads/googleads/v17/resources/BUILD.bazel index 27d52dcc3..82a7c1d6d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/BUILD.bazel +++ b/third_party/googleapis/google/ads/googleads/v17/resources/BUILD.bazel @@ -26,9 +26,9 @@ proto_library( name = "resources_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v14/common:common_proto", - "//google/ads/googleads/v14/enums:enums_proto", - "//google/ads/googleads/v14/errors:errors_proto", + "//google/ads/googleads/v17/common:common_proto", + "//google/ads/googleads/v17/enums:enums_proto", + "//google/ads/googleads/v17/errors:errors_proto", "//google/api:annotations_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/accessible_bidding_strategy.proto b/third_party/googleapis/google/ads/googleads/v17/resources/accessible_bidding_strategy.proto similarity index 92% rename from third_party/googleapis/google/ads/googleads/v14/resources/accessible_bidding_strategy.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/accessible_bidding_strategy.proto index d84fa3377..92440002f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/accessible_bidding_strategy.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/accessible_bidding_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v14/enums/target_impression_share_location.proto"; +import "google/ads/googleads/v17/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v17/enums/target_impression_share_location.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccessibleBiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Represents a view of BiddingStrategies owned by and shared with the customer. // @@ -76,7 +76,7 @@ message AccessibleBiddingStrategy { // location). message TargetImpressionShare { // Output only. The targeted location on the search results page. - google.ads.googleads.v14.enums.TargetImpressionShareLocationEnum + google.ads.googleads.v17.enums.TargetImpressionShareLocationEnum .TargetImpressionShareLocation location = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -136,7 +136,7 @@ message AccessibleBiddingStrategy { string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the bidding strategy. - google.ads.googleads.v14.enums.BiddingStrategyTypeEnum.BiddingStrategyType + google.ads.googleads.v17.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The ID of the Customer which owns the bidding strategy. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/account_budget.proto b/third_party/googleapis/google/ads/googleads/v17/resources/account_budget.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/resources/account_budget.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/account_budget.proto index 571737953..3af2ac22d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/account_budget.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/account_budget.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v14/enums/account_budget_status.proto"; -import "google/ads/googleads/v14/enums/spending_limit_type.proto"; -import "google/ads/googleads/v14/enums/time_type.proto"; +import "google/ads/googleads/v17/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v17/enums/account_budget_status.proto"; +import "google/ads/googleads/v17/enums/spending_limit_type.proto"; +import "google/ads/googleads/v17/enums/time_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AccountBudget resource. @@ -72,7 +72,7 @@ message AccountBudget { // Output only. The type of this proposal, for example, END to end the // budget associated with this proposal. - google.ads.googleads.v14.enums.AccountBudgetProposalTypeEnum + google.ads.googleads.v17.enums.AccountBudgetProposalTypeEnum .AccountBudgetProposalType proposal_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -102,7 +102,7 @@ message AccountBudget { string end_date_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The end time as a well-defined type, for example, FOREVER. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType end_time_type = 6 + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType end_time_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -115,7 +115,7 @@ message AccountBudget { // Output only. The spending limit as a well-defined type, for example, // INFINITE. - google.ads.googleads.v14.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v17.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -146,7 +146,7 @@ message AccountBudget { ]; // Output only. The status of this account-level budget. - google.ads.googleads.v14.enums.AccountBudgetStatusEnum.AccountBudgetStatus + google.ads.googleads.v17.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The name of the account-level budget. @@ -198,7 +198,7 @@ message AccountBudget { // Output only. The proposed end time as a well-defined type, for example, // FOREVER. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -213,7 +213,7 @@ message AccountBudget { // Output only. The approved end time as a well-defined type, for example, // FOREVER. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType approved_end_time_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -226,7 +226,7 @@ message AccountBudget { // Output only. The proposed spending limit as a well-defined type, for // example, INFINITE. - google.ads.googleads.v14.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v17.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -247,7 +247,7 @@ message AccountBudget { // Output only. The approved spending limit as a well-defined type, for // example, INFINITE. This will only be populated if the approved spending // limit is INFINITE. - google.ads.googleads.v14.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v17.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -276,7 +276,7 @@ message AccountBudget { // example, INFINITE. This will only be populated if the adjusted spending // limit is INFINITE, which is guaranteed to be true if the approved // spending limit is INFINITE. - google.ads.googleads.v14.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v17.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/account_budget_proposal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/account_budget_proposal.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/account_budget_proposal.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/account_budget_proposal.proto index 0ac7cd62f..785869120 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/account_budget_proposal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/account_budget_proposal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/account_budget_proposal_status.proto"; -import "google/ads/googleads/v14/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v14/enums/spending_limit_type.proto"; -import "google/ads/googleads/v14/enums/time_type.proto"; +import "google/ads/googleads/v17/enums/account_budget_proposal_status.proto"; +import "google/ads/googleads/v17/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v17/enums/spending_limit_type.proto"; +import "google/ads/googleads/v17/enums/time_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AccountBudgetProposal resource. @@ -83,13 +83,13 @@ message AccountBudgetProposal { // Immutable. The type of this proposal, for example, END to end the budget // associated with this proposal. - google.ads.googleads.v14.enums.AccountBudgetProposalTypeEnum + google.ads.googleads.v17.enums.AccountBudgetProposalTypeEnum .AccountBudgetProposalType proposal_type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The status of this proposal. // When a new proposal is created, the status defaults to PENDING. - google.ads.googleads.v14.enums.AccountBudgetProposalStatusEnum + google.ads.googleads.v17.enums.AccountBudgetProposalStatusEnum .AccountBudgetProposalStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -127,7 +127,7 @@ message AccountBudgetProposal { // Immutable. The proposed start date time as a well-defined type, for // example, NOW. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; } @@ -140,7 +140,7 @@ message AccountBudgetProposal { // Immutable. The proposed end date time as a well-defined type, for // example, FOREVER. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; } @@ -152,7 +152,7 @@ message AccountBudgetProposal { // Output only. The approved end date time as a well-defined type, for // example, FOREVER. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -165,7 +165,7 @@ message AccountBudgetProposal { // Immutable. The proposed spending limit as a well-defined type, for // example, INFINITE. - google.ads.googleads.v14.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v17.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11 [(google.api.field_behavior) = IMMUTABLE]; } @@ -179,7 +179,7 @@ message AccountBudgetProposal { // Output only. The approved spending limit as a well-defined type, for // example, INFINITE. - google.ads.googleads.v14.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v17.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/account_link.proto b/third_party/googleapis/google/ads/googleads/v17/resources/account_link.proto similarity index 54% rename from third_party/googleapis/google/ads/googleads/v14/resources/account_link.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/account_link.proto index 47b69153f..ae5458a2f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/account_link.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/account_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/account_link_status.proto"; -import "google/ads/googleads/v14/enums/linked_account_type.proto"; -import "google/ads/googleads/v14/enums/mobile_app_vendor.proto"; +import "google/ads/googleads/v17/enums/account_link_status.proto"; +import "google/ads/googleads/v17/enums/linked_account_type.proto"; +import "google/ads/googleads/v17/enums/mobile_app_vendor.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccountLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Represents the data sharing connection between a Google Ads account and // another account @@ -55,11 +55,11 @@ message AccountLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // The status of the link. - google.ads.googleads.v14.enums.AccountLinkStatusEnum.AccountLinkStatus + google.ads.googleads.v17.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3; // Output only. The type of the linked account. - google.ads.googleads.v14.enums.LinkedAccountTypeEnum.LinkedAccountType type = + google.ads.googleads.v17.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // An account linked to this Google Ads account. @@ -67,22 +67,6 @@ message AccountLink { // Immutable. A third party app analytics link. ThirdPartyAppAnalyticsLinkIdentifier third_party_app_analytics = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Data partner link. - DataPartnerLinkIdentifier data_partner = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Google Ads link. - GoogleAdsLinkIdentifier google_ads = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Hotel link - HotelCenterLinkIdentifier hotel_center = 9 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Advertising Partner link - AdvertisingPartnerLinkIdentifier advertising_partner = 10 - [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -112,49 +96,6 @@ message ThirdPartyAppAnalyticsLinkIdentifier { // This field should not be empty when creating a new third // party app analytics link. It is unable to be modified after the creation of // the link. - google.ads.googleads.v14.enums.MobileAppVendorEnum.MobileAppVendor + google.ads.googleads.v17.enums.MobileAppVendorEnum.MobileAppVendor app_vendor = 3 [(google.api.field_behavior) = IMMUTABLE]; } - -// The identifier for Data Partner account. -message DataPartnerLinkIdentifier { - // Immutable. The customer ID of the Data partner account. - // This field is required and should not be empty when creating a new - // data partner link. It is unable to be modified after the creation of - // the link. - optional int64 data_partner_id = 1 [(google.api.field_behavior) = IMMUTABLE]; -} - -// The identifier for Hotel account. -message HotelCenterLinkIdentifier { - // Output only. The hotel center id of the hotel account. - int64 hotel_center_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// The identifier for Google Ads account. -message GoogleAdsLinkIdentifier { - // Immutable. The resource name of the Google Ads account. - // This field is required and should not be empty when creating a new - // Google Ads link. It is unable to be modified after the creation of - // the link. - optional string customer = 3 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} - -// The identifier for the Advertising Partner Google Ads account. -message AdvertisingPartnerLinkIdentifier { - // Immutable. The resource name of the advertising partner Google Ads account. - // This field is required and should not be empty when creating a new - // Advertising Partner link. It is unable to be modified after the creation of - // the link. - optional string customer = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad.proto similarity index 65% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad.proto index 21b940b34..08fa404fd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/ad_type_infos.proto"; -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/common/final_app_url.proto"; -import "google/ads/googleads/v14/common/url_collection.proto"; -import "google/ads/googleads/v14/enums/ad_type.proto"; -import "google/ads/googleads/v14/enums/device.proto"; -import "google/ads/googleads/v14/enums/system_managed_entity_source.proto"; +import "google/ads/googleads/v17/common/ad_type_infos.proto"; +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/common/final_app_url.proto"; +import "google/ads/googleads/v17/common/url_collection.proto"; +import "google/ads/googleads/v17/enums/ad_type.proto"; +import "google/ads/googleads/v17/enums/device.proto"; +import "google/ads/googleads/v17/enums/system_managed_entity_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad type. @@ -62,7 +62,7 @@ message Ad { // A list of final app URLs that will be used on mobile if the user has the // specific app installed. - repeated google.ads.googleads.v14.common.FinalAppUrl final_app_urls = 35; + repeated google.ads.googleads.v17.common.FinalAppUrl final_app_urls = 35; // The list of possible final mobile URLs after all cross-domain redirects // for the ad. @@ -77,14 +77,14 @@ message Ad { // The list of mappings that can be used to substitute custom parameter tags // in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`. // For mutates, use url custom parameter operations. - repeated google.ads.googleads.v14.common.CustomParameter + repeated google.ads.googleads.v17.common.CustomParameter url_custom_parameters = 10; // The URL that appears in the ad description for some ad formats. optional string display_url = 45; // Output only. The type of ad. - google.ads.googleads.v14.enums.AdTypeEnum.AdType type = 5 + google.ads.googleads.v17.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Indicates if this ad was automatically added by Google Ads and @@ -100,11 +100,11 @@ message Ad { // displayed on other device types, for example, if no other ads are // available. If unspecified (no device preference), all devices are targeted. // This is only supported by some ad types. - google.ads.googleads.v14.enums.DeviceEnum.Device device_preference = 20; + google.ads.googleads.v17.enums.DeviceEnum.Device device_preference = 20; // Additional URLs for the ad that are tagged with a unique identifier that // can be referenced from other fields in the ad. - repeated google.ads.googleads.v14.common.UrlCollection url_collections = 26; + repeated google.ads.googleads.v17.common.UrlCollection url_collections = 26; // Immutable. The name of the ad. This is only used to be able to identify the // ad. It does not need to be unique and does not affect the served ad. The @@ -114,104 +114,108 @@ message Ad { // Output only. If this ad is system managed, then this field will indicate // the source. This field is read-only. - google.ads.googleads.v14.enums.SystemManagedResourceSourceEnum + google.ads.googleads.v17.enums.SystemManagedResourceSourceEnum .SystemManagedResourceSource system_managed_resource_source = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; // Details pertinent to the ad type. Exactly one value must be set. oneof ad_data { // Immutable. Details pertaining to a text ad. - google.ads.googleads.v14.common.TextAdInfo text_ad = 6 + google.ads.googleads.v17.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to an expanded text ad. - google.ads.googleads.v14.common.ExpandedTextAdInfo expanded_text_ad = 7; + google.ads.googleads.v17.common.ExpandedTextAdInfo expanded_text_ad = 7; // Details pertaining to a call ad. - google.ads.googleads.v14.common.CallAdInfo call_ad = 49; + google.ads.googleads.v17.common.CallAdInfo call_ad = 49; // Immutable. Details pertaining to an Expanded Dynamic Search Ad. // This type of ad has its headline, final URLs, and display URL // auto-generated at serving time according to domain name specific // information provided by `dynamic_search_ads_setting` linked at the // campaign level. - google.ads.googleads.v14.common.ExpandedDynamicSearchAdInfo + google.ads.googleads.v17.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to a hotel ad. - google.ads.googleads.v14.common.HotelAdInfo hotel_ad = 15; + google.ads.googleads.v17.common.HotelAdInfo hotel_ad = 15; // Details pertaining to a Smart Shopping ad. - google.ads.googleads.v14.common.ShoppingSmartAdInfo shopping_smart_ad = 17; + google.ads.googleads.v17.common.ShoppingSmartAdInfo shopping_smart_ad = 17; // Details pertaining to a Shopping product ad. - google.ads.googleads.v14.common.ShoppingProductAdInfo shopping_product_ad = + google.ads.googleads.v17.common.ShoppingProductAdInfo shopping_product_ad = 18; // Immutable. Details pertaining to an Image ad. - google.ads.googleads.v14.common.ImageAdInfo image_ad = 22 + google.ads.googleads.v17.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to a Video ad. - google.ads.googleads.v14.common.VideoAdInfo video_ad = 24; + google.ads.googleads.v17.common.VideoAdInfo video_ad = 24; // Details pertaining to a Video responsive ad. - google.ads.googleads.v14.common.VideoResponsiveAdInfo video_responsive_ad = + google.ads.googleads.v17.common.VideoResponsiveAdInfo video_responsive_ad = 39; // Details pertaining to a responsive search ad. - google.ads.googleads.v14.common.ResponsiveSearchAdInfo + google.ads.googleads.v17.common.ResponsiveSearchAdInfo responsive_search_ad = 25; // Details pertaining to a legacy responsive display ad. - google.ads.googleads.v14.common.LegacyResponsiveDisplayAdInfo + google.ads.googleads.v17.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28; // Details pertaining to an app ad. - google.ads.googleads.v14.common.AppAdInfo app_ad = 29; + google.ads.googleads.v17.common.AppAdInfo app_ad = 29; // Immutable. Details pertaining to a legacy app install ad. - google.ads.googleads.v14.common.LegacyAppInstallAdInfo + google.ads.googleads.v17.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to a responsive display ad. - google.ads.googleads.v14.common.ResponsiveDisplayAdInfo + google.ads.googleads.v17.common.ResponsiveDisplayAdInfo responsive_display_ad = 31; // Details pertaining to a local ad. - google.ads.googleads.v14.common.LocalAdInfo local_ad = 32; + google.ads.googleads.v17.common.LocalAdInfo local_ad = 32; // Details pertaining to a display upload ad. - google.ads.googleads.v14.common.DisplayUploadAdInfo display_upload_ad = 33; + google.ads.googleads.v17.common.DisplayUploadAdInfo display_upload_ad = 33; // Details pertaining to an app engagement ad. - google.ads.googleads.v14.common.AppEngagementAdInfo app_engagement_ad = 34; + google.ads.googleads.v17.common.AppEngagementAdInfo app_engagement_ad = 34; // Details pertaining to a Shopping Comparison Listing ad. - google.ads.googleads.v14.common.ShoppingComparisonListingAdInfo + google.ads.googleads.v17.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36; // Details pertaining to a Smart campaign ad. - google.ads.googleads.v14.common.SmartCampaignAdInfo smart_campaign_ad = 48; + google.ads.googleads.v17.common.SmartCampaignAdInfo smart_campaign_ad = 48; // Details pertaining to an app pre-registration ad. - google.ads.googleads.v14.common.AppPreRegistrationAdInfo + google.ads.googleads.v17.common.AppPreRegistrationAdInfo app_pre_registration_ad = 50; - // Details pertaining to a discovery multi asset ad. - google.ads.googleads.v14.common.DiscoveryMultiAssetAdInfo - discovery_multi_asset_ad = 51; + // Details pertaining to a Demand Gen multi asset ad. + google.ads.googleads.v17.common.DemandGenMultiAssetAdInfo + demand_gen_multi_asset_ad = 62; - // Details pertaining to a discovery carousel ad. - google.ads.googleads.v14.common.DiscoveryCarouselAdInfo - discovery_carousel_ad = 52; + // Details pertaining to a Demand Gen carousel ad. + google.ads.googleads.v17.common.DemandGenCarouselAdInfo + demand_gen_carousel_ad = 63; - // Details pertaining to a discovery video responsive ad. - google.ads.googleads.v14.common.DiscoveryVideoResponsiveAdInfo - discovery_video_responsive_ad = 60; + // Details pertaining to a Demand Gen video responsive ad. + google.ads.googleads.v17.common.DemandGenVideoResponsiveAdInfo + demand_gen_video_responsive_ad = 64; + + // Details pertaining to a Demand Gen product ad. + google.ads.googleads.v17.common.DemandGenProductAdInfo + demand_gen_product_ad = 61; // Details pertaining to a travel ad. - google.ads.googleads.v14.common.TravelAdInfo travel_ad = 54; + google.ads.googleads.v17.common.TravelAdInfo travel_ad = 54; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group.proto index c0ca25cca..2a0ac58d1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,28 +14,30 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/common/targeting_setting.proto"; -import "google/ads/googleads/v14/enums/ad_group_ad_rotation_mode.proto"; -import "google/ads/googleads/v14/enums/ad_group_status.proto"; -import "google/ads/googleads/v14/enums/ad_group_type.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_set_type.proto"; -import "google/ads/googleads/v14/enums/bidding_source.proto"; -import "google/ads/googleads/v14/enums/targeting_dimension.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/common/targeting_setting.proto"; +import "google/ads/googleads/v17/enums/ad_group_ad_rotation_mode.proto"; +import "google/ads/googleads/v17/enums/ad_group_primary_status.proto"; +import "google/ads/googleads/v17/enums/ad_group_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/ad_group_status.proto"; +import "google/ads/googleads/v17/enums/ad_group_type.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_set_type.proto"; +import "google/ads/googleads/v17/enums/bidding_source.proto"; +import "google/ads/googleads/v17/enums/targeting_dimension.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group resource. @@ -80,14 +82,14 @@ message AdGroup { optional string name = 35; // The status of the ad group. - google.ads.googleads.v14.enums.AdGroupStatusEnum.AdGroupStatus status = 5; + google.ads.googleads.v17.enums.AdGroupStatusEnum.AdGroupStatus status = 5; // Immutable. The type of the ad group. - google.ads.googleads.v14.enums.AdGroupTypeEnum.AdGroupType type = 12 + google.ads.googleads.v17.enums.AdGroupTypeEnum.AdGroupType type = 12 [(google.api.field_behavior) = IMMUTABLE]; // The ad rotation mode of the ad group. - google.ads.googleads.v14.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode + google.ads.googleads.v17.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22; // Output only. For draft or experiment ad groups, this field is the resource @@ -110,7 +112,7 @@ message AdGroup { // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v14.common.CustomParameter + repeated google.ads.googleads.v17.common.CustomParameter url_custom_parameters = 6; // Immutable. The campaign to which the ad group belongs. @@ -166,14 +168,14 @@ message AdGroup { // Allows advertisers to specify a targeting dimension on which to place // absolute bids. This is only applicable for campaigns that target only the // display network and not search. - google.ads.googleads.v14.enums.TargetingDimensionEnum.TargetingDimension + google.ads.googleads.v17.enums.TargetingDimensionEnum.TargetingDimension display_custom_bid_dimension = 23; // URL template for appending params to Final URL. optional string final_url_suffix = 46; // Setting for targeting related features. - google.ads.googleads.v14.common.TargetingSetting targeting_setting = 25; + google.ads.googleads.v17.common.TargetingSetting targeting_setting = 25; // Immutable. Setting for audience related features. AudienceSetting audience_setting = 56 @@ -186,7 +188,7 @@ message AdGroup { // Output only. Source of the effective target CPA. // This field is read-only. - google.ads.googleads.v14.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -197,7 +199,7 @@ message AdGroup { // Output only. Source of the effective target ROAS. // This field is read-only. - google.ads.googleads.v14.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -212,7 +214,7 @@ message AdGroup { // The asset field types that should be excluded from this ad group. Asset // links with these field types will not be inherited by this ad group from // the upper levels. - repeated google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType + repeated google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54; // The asset set types that should be excluded from this ad group. Asset set @@ -225,6 +227,17 @@ message AdGroup { // and all Location Extension (LE) and Affiliate Location Extensions (ALE) // will not be served under this ad group. // Only LOCATION_SYNC is currently supported. - repeated google.ads.googleads.v14.enums.AssetSetTypeEnum.AssetSetType + repeated google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType excluded_parent_asset_set_types = 58; + + // Output only. Provides aggregated view into why an ad group is not serving + // or not serving optimally. + google.ads.googleads.v17.enums.AdGroupPrimaryStatusEnum.AdGroupPrimaryStatus + primary_status = 62 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provides reasons for why an ad group is not serving or not + // serving optimally. + repeated google.ads.googleads.v17.enums.AdGroupPrimaryStatusReasonEnum + .AdGroupPrimaryStatusReason primary_status_reasons = 63 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad.proto similarity index 61% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad.proto index 8bf62372b..0688342e1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/ad_group_ad_status.proto"; -import "google/ads/googleads/v14/enums/ad_strength.proto"; -import "google/ads/googleads/v14/enums/policy_approval_status.proto"; -import "google/ads/googleads/v14/enums/policy_review_status.proto"; -import "google/ads/googleads/v14/resources/ad.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/ad_group_ad_primary_status.proto"; +import "google/ads/googleads/v17/enums/ad_group_ad_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/ad_group_ad_status.proto"; +import "google/ads/googleads/v17/enums/ad_strength.proto"; +import "google/ads/googleads/v17/enums/policy_approval_status.proto"; +import "google/ads/googleads/v17/enums/policy_review_status.proto"; +import "google/ads/googleads/v17/resources/ad.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group ad resource. @@ -55,7 +57,7 @@ message AdGroupAd { ]; // The status of the ad. - google.ads.googleads.v14.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; + google.ads.googleads.v17.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; // Immutable. The ad group to which the ad belongs. optional string ad_group = 9 [ @@ -73,12 +75,12 @@ message AdGroupAd { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Overall ad strength for this ad group ad. - google.ads.googleads.v14.enums.AdStrengthEnum.AdStrength ad_strength = 7 + google.ads.googleads.v17.enums.AdStrengthEnum.AdStrength ad_strength = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. A list of recommendations to improve the ad strength. For - // example, a recommendation could be "Your headlines are a little too - // similar. Try adding more distinct headlines.". + // example, a recommendation could be "Try adding a few more unique headlines + // or unpinning some assets.". repeated string action_items = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The resource names of labels attached to this ad group ad. @@ -88,20 +90,32 @@ message AdGroupAd { type: "googleads.googleapis.com/AdGroupAdLabel" } ]; + + // Output only. Provides aggregated view into why an ad group ad is not + // serving or not serving optimally. + google.ads.googleads.v17.enums.AdGroupAdPrimaryStatusEnum + .AdGroupAdPrimaryStatus primary_status = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provides reasons for why an ad group ad is not serving or not + // serving optimally. + repeated google.ads.googleads.v17.enums.AdGroupAdPrimaryStatusReasonEnum + .AdGroupAdPrimaryStatusReason primary_status_reasons = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains policy information for an ad. message AdGroupAdPolicySummary { // Output only. The list of policy findings for this ad. - repeated google.ads.googleads.v14.common.PolicyTopicEntry + repeated google.ads.googleads.v17.common.PolicyTopicEntry policy_topic_entries = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where in the review process this ad is. - google.ads.googleads.v14.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v17.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The overall approval status of this ad, calculated based on // the status of its individual policy topic entries. - google.ads.googleads.v14.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v17.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_asset_combination_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_asset_combination_view.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_asset_combination_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_asset_combination_view.proto index dd4a96b50..175681f48 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_asset_combination_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_asset_combination_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_usage.proto"; +import "google/ads/googleads/v17/common/asset_usage.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdAssetCombinationViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the asset combination view resource. @@ -54,7 +54,7 @@ message AdGroupAdAssetCombinationView { ]; // Output only. Served assets. - repeated google.ads.googleads.v14.common.AssetUsage served_assets = 2 + repeated google.ads.googleads.v17.common.AssetUsage served_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status between the asset combination and the latest diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_asset_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_asset_view.proto similarity index 74% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_asset_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_asset_view.proto index eaecfd81b..c523035cd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_asset_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_asset_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_performance_label.proto"; -import "google/ads/googleads/v14/enums/policy_approval_status.proto"; -import "google/ads/googleads/v14/enums/policy_review_status.proto"; -import "google/ads/googleads/v14/enums/served_asset_field_type.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_performance_label.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; +import "google/ads/googleads/v17/enums/policy_approval_status.proto"; +import "google/ads/googleads/v17/enums/policy_review_status.proto"; +import "google/ads/googleads/v17/enums/served_asset_field_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdAssetViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group ad asset view resource. @@ -75,7 +76,7 @@ message AdGroupAdAssetView { ]; // Output only. Role that the asset takes in the ad. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status between the asset and the latest version of the ad. @@ -89,26 +90,30 @@ message AdGroupAdAssetView { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Performance of an asset linkage. - google.ads.googleads.v14.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel + google.ads.googleads.v17.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Pinned field. - google.ads.googleads.v14.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType + google.ads.googleads.v17.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the ad group ad asset. + google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource source = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains policy information for an ad group ad asset. message AdGroupAdAssetPolicySummary { // Output only. The list of policy findings for the ad group ad asset. - repeated google.ads.googleads.v14.common.PolicyTopicEntry + repeated google.ads.googleads.v17.common.PolicyTopicEntry policy_topic_entries = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where in the review process this ad group ad asset is. - google.ads.googleads.v14.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v17.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The overall approval status of this ad group ad asset, // calculated based on the status of its individual policy topic entries. - google.ads.googleads.v14.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v17.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_label.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_label.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_label.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_label.proto index 9f528fda0..536cbdb8a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_ad_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_ad_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdLabelProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group ad label resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_asset.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_asset.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_asset.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_asset.proto index bc3e6a762..8370a509a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_asset.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_policy.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/asset_link_status.proto"; -import "google/ads/googleads/v14/enums/asset_source.proto"; +import "google/ads/googleads/v17/common/asset_policy.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/asset_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AdGroupAsset resource. @@ -71,18 +71,18 @@ message AdGroupAsset { ]; // Required. Immutable. Role that the asset takes under the linked ad group. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; // Output only. Source of the adgroup asset link. - google.ads.googleads.v14.enums.AssetSourceEnum.AssetSource source = 6 + google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource source = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the ad group asset. - google.ads.googleads.v14.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + google.ads.googleads.v17.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -90,18 +90,18 @@ message AdGroupAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v14.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v17.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v14.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v17.common.AssetLinkPrimaryStatusDetails primary_status_details = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v14.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v17.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_asset_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_asset_set.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_asset_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_asset_set.proto index e8edbf824..571381afd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_asset_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/asset_set_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_set_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AdGroupAssetSet resource. @@ -67,6 +67,6 @@ message AdGroupAssetSet { ]; // Output only. The status of the ad group asset set. Read-only. - google.ads.googleads.v14.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus + google.ads.googleads.v17.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_audience_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_audience_view.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_audience_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_audience_view.proto index 101b62ad0..485c0e253 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_audience_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_audience_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAudienceViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group audience view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_bid_modifier.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_bid_modifier.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_bid_modifier.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_bid_modifier.proto index 811b8fcce..ccad225d3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_bid_modifier.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_bid_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/bid_modifier_source.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/bid_modifier_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupBidModifierProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group bid modifier resource. @@ -81,7 +81,7 @@ message AdGroupBidModifier { ]; // Output only. Bid modifier source. - google.ads.googleads.v14.enums.BidModifierSourceEnum.BidModifierSource + google.ads.googleads.v17.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // The criterion of this ad group bid modifier. @@ -90,29 +90,29 @@ message AdGroupBidModifier { oneof criterion { // Immutable. Criterion for hotel date selection (default dates versus user // selected). - google.ads.googleads.v14.common.HotelDateSelectionTypeInfo + google.ads.googleads.v17.common.HotelDateSelectionTypeInfo hotel_date_selection_type = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Criterion for number of days prior to the stay the booking is // being made. - google.ads.googleads.v14.common.HotelAdvanceBookingWindowInfo + google.ads.googleads.v17.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Criterion for length of hotel stay in nights. - google.ads.googleads.v14.common.HotelLengthOfStayInfo hotel_length_of_stay = + google.ads.googleads.v17.common.HotelLengthOfStayInfo hotel_length_of_stay = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Criterion for day of the week the booking is for. - google.ads.googleads.v14.common.HotelCheckInDayInfo hotel_check_in_day = 8 + google.ads.googleads.v17.common.HotelCheckInDayInfo hotel_check_in_day = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. A device criterion. - google.ads.googleads.v14.common.DeviceInfo device = 11 + google.ads.googleads.v17.common.DeviceInfo device = 11 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Criterion for a hotel check-in date range. - google.ads.googleads.v14.common.HotelCheckInDateRangeInfo + google.ads.googleads.v17.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion.proto similarity index 74% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion.proto index 75ae7d08c..76327c75d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,31 +14,35 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/enums/ad_group_criterion_approval_status.proto"; -import "google/ads/googleads/v14/enums/ad_group_criterion_status.proto"; -import "google/ads/googleads/v14/enums/bidding_source.proto"; -import "google/ads/googleads/v14/enums/criterion_system_serving_status.proto"; -import "google/ads/googleads/v14/enums/criterion_type.proto"; -import "google/ads/googleads/v14/enums/quality_score_bucket.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/enums/ad_group_criterion_approval_status.proto"; +import "google/ads/googleads/v17/enums/ad_group_criterion_primary_status.proto"; +import "google/ads/googleads/v17/enums/ad_group_criterion_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/ad_group_criterion_status.proto"; +import "google/ads/googleads/v17/enums/bidding_source.proto"; +import "google/ads/googleads/v17/enums/criterion_system_serving_status.proto"; +import "google/ads/googleads/v17/enums/criterion_type.proto"; +import "google/ads/googleads/v17/enums/quality_score_bucket.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group criterion resource. // An ad group criterion. +// The ad_group_criterion report only returns criteria that were explicitly +// added to the ad group. message AdGroupCriterion { option (google.api.resource) = { type: "googleads.googleapis.com/AdGroupCriterion" @@ -55,17 +59,17 @@ message AdGroupCriterion { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The performance of the ad compared to other advertisers. - google.ads.googleads.v14.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v17.enums.QualityScoreBucketEnum.QualityScoreBucket creative_quality_score = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The quality score of the landing page. - google.ads.googleads.v14.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v17.enums.QualityScoreBucketEnum.QualityScoreBucket post_click_quality_score = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The click-through rate compared to that of other // advertisers. - google.ads.googleads.v14.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v17.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -128,7 +132,7 @@ message AdGroupCriterion { // excluded. The UI will show each age range as "enabled", since they're // eligible to see the ads; but AdGroupCriterion.status will show "removed", // since no positive criterion was added. - google.ads.googleads.v14.enums.AdGroupCriterionStatusEnum + google.ads.googleads.v17.enums.AdGroupCriterionStatusEnum .AdGroupCriterionStatus status = 3; // Output only. Information regarding the quality of the criterion. @@ -143,7 +147,7 @@ message AdGroupCriterion { ]; // Output only. The type of the criterion. - google.ads.googleads.v14.enums.CriterionTypeEnum.CriterionType type = 25 + google.ads.googleads.v17.enums.CriterionTypeEnum.CriterionType type = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. @@ -153,12 +157,12 @@ message AdGroupCriterion { optional bool negative = 58 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Serving status of the criterion. - google.ads.googleads.v14.enums.CriterionSystemServingStatusEnum + google.ads.googleads.v17.enums.CriterionSystemServingStatusEnum .CriterionSystemServingStatus system_serving_status = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Approval status of the criterion. - google.ads.googleads.v14.enums.AdGroupCriterionApprovalStatusEnum + google.ads.googleads.v17.enums.AdGroupCriterionApprovalStatusEnum .AdGroupCriterionApprovalStatus approval_status = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -216,19 +220,19 @@ message AdGroupCriterion { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the effective CPC bid. - google.ads.googleads.v14.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSource effective_cpc_bid_source = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the effective CPM bid. - google.ads.googleads.v14.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSource effective_cpm_bid_source = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the effective CPV bid. - google.ads.googleads.v14.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSource effective_cpv_bid_source = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the effective Percent CPC bid. - google.ads.googleads.v14.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v17.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -251,106 +255,114 @@ message AdGroupCriterion { // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v14.common.CustomParameter + repeated google.ads.googleads.v17.common.CustomParameter url_custom_parameters = 14; + // Output only. The primary status for the ad group criterion. + optional google.ads.googleads.v17.enums.AdGroupCriterionPrimaryStatusEnum + .AdGroupCriterionPrimaryStatus primary_status = 85 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The primary status reasons for the ad group criterion. + repeated + google.ads.googleads.v17.enums.AdGroupCriterionPrimaryStatusReasonEnum + .AdGroupCriterionPrimaryStatusReason primary_status_reasons = 86 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // The ad group criterion. // // Exactly one must be set. oneof criterion { // Immutable. Keyword. - google.ads.googleads.v14.common.KeywordInfo keyword = 27 + google.ads.googleads.v17.common.KeywordInfo keyword = 27 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v14.common.PlacementInfo placement = 28 + google.ads.googleads.v17.common.PlacementInfo placement = 28 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile app category. - google.ads.googleads.v14.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v17.common.MobileAppCategoryInfo mobile_app_category = 29 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile application. - google.ads.googleads.v14.common.MobileApplicationInfo mobile_application = + google.ads.googleads.v17.common.MobileApplicationInfo mobile_application = 30 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Listing group. - google.ads.googleads.v14.common.ListingGroupInfo listing_group = 32 + google.ads.googleads.v17.common.ListingGroupInfo listing_group = 32 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Age range. - google.ads.googleads.v14.common.AgeRangeInfo age_range = 36 + google.ads.googleads.v17.common.AgeRangeInfo age_range = 36 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Gender. - google.ads.googleads.v14.common.GenderInfo gender = 37 + google.ads.googleads.v17.common.GenderInfo gender = 37 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Income range. - google.ads.googleads.v14.common.IncomeRangeInfo income_range = 38 + google.ads.googleads.v17.common.IncomeRangeInfo income_range = 38 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Parental status. - google.ads.googleads.v14.common.ParentalStatusInfo parental_status = 39 + google.ads.googleads.v17.common.ParentalStatusInfo parental_status = 39 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. - google.ads.googleads.v14.common.UserListInfo user_list = 42 + google.ads.googleads.v17.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v14.common.YouTubeVideoInfo youtube_video = 40 + google.ads.googleads.v17.common.YouTubeVideoInfo youtube_video = 40 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v14.common.YouTubeChannelInfo youtube_channel = 41 + google.ads.googleads.v17.common.YouTubeChannelInfo youtube_channel = 41 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Topic. - google.ads.googleads.v14.common.TopicInfo topic = 43 + google.ads.googleads.v17.common.TopicInfo topic = 43 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User Interest. - google.ads.googleads.v14.common.UserInterestInfo user_interest = 45 + google.ads.googleads.v17.common.UserInterestInfo user_interest = 45 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Webpage - google.ads.googleads.v14.common.WebpageInfo webpage = 46 + google.ads.googleads.v17.common.WebpageInfo webpage = 46 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. App Payment Model. - google.ads.googleads.v14.common.AppPaymentModelInfo app_payment_model = 47 + google.ads.googleads.v17.common.AppPaymentModelInfo app_payment_model = 47 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Affinity. - google.ads.googleads.v14.common.CustomAffinityInfo custom_affinity = 48 + google.ads.googleads.v17.common.CustomAffinityInfo custom_affinity = 48 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Intent. - google.ads.googleads.v14.common.CustomIntentInfo custom_intent = 49 + google.ads.googleads.v17.common.CustomIntentInfo custom_intent = 49 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Audience. - google.ads.googleads.v14.common.CustomAudienceInfo custom_audience = 74 + google.ads.googleads.v17.common.CustomAudienceInfo custom_audience = 74 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Combined Audience. - google.ads.googleads.v14.common.CombinedAudienceInfo combined_audience = 75 + google.ads.googleads.v17.common.CombinedAudienceInfo combined_audience = 75 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Audience. - google.ads.googleads.v14.common.AudienceInfo audience = 79 + google.ads.googleads.v17.common.AudienceInfo audience = 79 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location. - google.ads.googleads.v14.common.LocationInfo location = 82 + google.ads.googleads.v17.common.LocationInfo location = 82 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Language. - google.ads.googleads.v14.common.LanguageInfo language = 83 + google.ads.googleads.v17.common.LanguageInfo language = 83 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_customizer.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_customizer.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto index 05a69691f..46c4fa097 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_customizer.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/customizer_value.proto"; -import "google/ads/googleads/v14/enums/customizer_value_status.proto"; +import "google/ads/googleads/v17/common/customizer_value.proto"; +import "google/ads/googleads/v17/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionCustomizerProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A customizer value for the associated CustomizerAttribute at the // AdGroupCriterion level. @@ -69,11 +69,11 @@ message AdGroupCriterionCustomizer { ]; // Output only. The status of the ad group criterion customizer. - google.ads.googleads.v14.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v17.enums.CustomizerValueStatusEnum.CustomizerValueStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The value to associate with the customizer attribute at this // level. The value must be of the type specified for the CustomizerAttribute. - google.ads.googleads.v14.common.CustomizerValue value = 5 + google.ads.googleads.v17.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_label.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_label.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_label.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_label.proto index 7781925a3..6fc2b603c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionLabelProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group criterion label resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_simulation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_simulation.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_simulation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_simulation.proto index 6f67becfa..b065835b2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_criterion_simulation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_criterion_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/simulation.proto"; -import "google/ads/googleads/v14/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v14/enums/simulation_type.proto"; +import "google/ads/googleads/v17/common/simulation.proto"; +import "google/ads/googleads/v17/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v17/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionSimulationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group criterion simulation resource. @@ -67,11 +67,11 @@ message AdGroupCriterionSimulation { optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v14.enums.SimulationTypeEnum.SimulationType type = 4 + google.ads.googleads.v17.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v14.enums.SimulationModificationMethodEnum + google.ads.googleads.v17.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -86,11 +86,11 @@ message AdGroupCriterionSimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v14.common.CpcBidSimulationPointList + google.ads.googleads.v17.common.CpcBidSimulationPointList cpc_bid_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is PERCENT_CPC_BID. - google.ads.googleads.v14.common.PercentCpcBidSimulationPointList + google.ads.googleads.v17.common.PercentCpcBidSimulationPointList percent_cpc_bid_point_list = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_customizer.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_customizer.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_customizer.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_customizer.proto index c093bcebf..67879ac2d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_customizer.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/customizer_value.proto"; -import "google/ads/googleads/v14/enums/customizer_value_status.proto"; +import "google/ads/googleads/v17/common/customizer_value.proto"; +import "google/ads/googleads/v17/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCustomizerProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A customizer value for the associated CustomizerAttribute at the AdGroup // level. @@ -68,11 +68,11 @@ message AdGroupCustomizer { ]; // Output only. The status of the ad group customizer. - google.ads.googleads.v14.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v17.enums.CustomizerValueStatusEnum.CustomizerValueStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The value to associate with the customizer attribute at this // level. The value must be of the type specified for the CustomizerAttribute. - google.ads.googleads.v14.common.CustomizerValue value = 5 + google.ads.googleads.v17.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_extension_setting.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_extension_setting.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_extension_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_extension_setting.proto index 5993d6829..0f77b217a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_extension_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_extension_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/extension_setting_device.proto"; -import "google/ads/googleads/v14/enums/extension_type.proto"; +import "google/ads/googleads/v17/enums/extension_setting_device.proto"; +import "google/ads/googleads/v17/enums/extension_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AdGroupExtensionSetting resource. @@ -51,7 +51,7 @@ message AdGroupExtensionSetting { ]; // Immutable. The extension type of the ad group extension setting. - google.ads.googleads.v14.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v17.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The resource name of the ad group. The linked extension feed @@ -74,6 +74,6 @@ message AdGroupExtensionSetting { }]; // The device for which the extensions will serve. Optional. - google.ads.googleads.v14.enums.ExtensionSettingDeviceEnum + google.ads.googleads.v17.enums.ExtensionSettingDeviceEnum .ExtensionSettingDevice device = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_feed.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_feed.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_feed.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_feed.proto index fc881b150..517e6f22b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_feed.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/matching_function.proto"; -import "google/ads/googleads/v14/enums/feed_link_status.proto"; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/common/matching_function.proto"; +import "google/ads/googleads/v17/enums/feed_link_status.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupFeedProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AdGroupFeed resource. @@ -67,16 +67,16 @@ message AdGroupFeed { // Indicates which placeholder types the feed may populate under the connected // ad group. Required. - repeated google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + repeated google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_types = 4; // Matching function associated with the AdGroupFeed. // The matching function is used to filter the set of feed items selected. // Required. - google.ads.googleads.v14.common.MatchingFunction matching_function = 5; + google.ads.googleads.v17.common.MatchingFunction matching_function = 5; // Output only. Status of the ad group feed. // This field is read-only. - google.ads.googleads.v14.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 + google.ads.googleads.v17.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_label.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_label.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_label.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_label.proto index 4cca6b4dc..1c099f571 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupLabelProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group label resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_simulation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_simulation.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_group_simulation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_group_simulation.proto index 9d75cb159..9c217d682 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_group_simulation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_group_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/simulation.proto"; -import "google/ads/googleads/v14/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v14/enums/simulation_type.proto"; +import "google/ads/googleads/v17/common/simulation.proto"; +import "google/ads/googleads/v17/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v17/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupSimulationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad group simulation resource. @@ -65,11 +65,11 @@ message AdGroupSimulation { optional int64 ad_group_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v14.enums.SimulationTypeEnum.SimulationType type = 3 + google.ads.googleads.v17.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v14.enums.SimulationModificationMethodEnum + google.ads.googleads.v17.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -84,19 +84,19 @@ message AdGroupSimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v14.common.CpcBidSimulationPointList + google.ads.googleads.v17.common.CpcBidSimulationPointList cpc_bid_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is CPV_BID. - google.ads.googleads.v14.common.CpvBidSimulationPointList + google.ads.googleads.v17.common.CpvBidSimulationPointList cpv_bid_point_list = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is TARGET_CPA. - google.ads.googleads.v14.common.TargetCpaSimulationPointList + google.ads.googleads.v17.common.TargetCpaSimulationPointList target_cpa_point_list = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is TARGET_ROAS. - google.ads.googleads.v14.common.TargetRoasSimulationPointList + google.ads.googleads.v17.common.TargetRoasSimulationPointList target_roas_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_parameter.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_parameter.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_parameter.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_parameter.proto index e97d3682e..5501fbbfe 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_parameter.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdParameterProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad parameter resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/ad_schedule_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/ad_schedule_view.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/ad_schedule_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/ad_schedule_view.proto index 980282108..8e4dc214d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/ad_schedule_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/ad_schedule_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdScheduleViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ad schedule view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/age_range_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/age_range_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/age_range_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/age_range_view.proto index 0d2b0c9e4..f5f3e546d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/age_range_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/age_range_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AgeRangeViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the age range view resource. diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_ad_group.proto b/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_ad_group.proto new file mode 100644 index 000000000..41160b524 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_ad_group.proto @@ -0,0 +1,79 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/android_privacy_interaction_type.proto"; +import "google/ads/googleads/v17/enums/android_privacy_network_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AndroidPrivacySharedKeyGoogleAdGroupProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the AndroidPrivacySharedKeyGoogleAdGroup resource. + +// An Android privacy shared key view for Google ad group key. +message AndroidPrivacySharedKeyGoogleAdGroup { + option (google.api.resource) = { + type: "googleads.googleapis.com/AndroidPrivacySharedKeyGoogleAdGroup" + pattern: "customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~{ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date}" + }; + + // Output only. The resource name of the Android privacy shared key. + // Android privacy shared key resource names have the form: + // + // `customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~{ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AndroidPrivacySharedKeyGoogleAdGroup" + } + ]; + + // Output only. The campaign ID used in the share key encoding. + int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The interaction type enum used in the share key encoding. + google.ads.googleads.v17.enums.AndroidPrivacyInteractionTypeEnum + .AndroidPrivacyInteractionType android_privacy_interaction_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The interaction date used in the shared key encoding in the + // format of "YYYY-MM-DD" in UTC timezone. + string android_privacy_interaction_date = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The network type enum used in the share key encoding. + google.ads.googleads.v17.enums.AndroidPrivacyNetworkTypeEnum + .AndroidPrivacyNetworkType android_privacy_network_type = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ad group ID used in the share key encoding. + int64 ad_group_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. 128 bit hex string of the encoded shared ad group key, + // including a '0x' prefix. This key can be used to do a bitwise OR operator + // with the aggregate conversion key to create a full aggregation key to + // retrieve the Aggregate API Report in Android Privacy Sandbox. + string shared_ad_group_key = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_campaign.proto b/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_campaign.proto new file mode 100644 index 000000000..91c870ac7 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_campaign.proto @@ -0,0 +1,70 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/android_privacy_interaction_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AndroidPrivacySharedKeyGoogleCampaignProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the AndroidPrivacySharedKeyGoogleCampaign resource. + +// An Android privacy shared key view for Google campaign key. +message AndroidPrivacySharedKeyGoogleCampaign { + option (google.api.resource) = { + type: "googleads.googleapis.com/AndroidPrivacySharedKeyGoogleCampaign" + pattern: "customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_interaction_date}" + }; + + // Output only. The resource name of the Android privacy shared key. + // Android privacy shared key resource names have the form: + // + // `customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_interaction_date(yyyy-mm-dd)}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AndroidPrivacySharedKeyGoogleCampaign" + } + ]; + + // Output only. The campaign ID used in the share key encoding. + int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The interaction type enum used in the share key encoding. + google.ads.googleads.v17.enums.AndroidPrivacyInteractionTypeEnum + .AndroidPrivacyInteractionType android_privacy_interaction_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The interaction date used in the shared key encoding in the + // format of "YYYY-MM-DD" in UTC timezone. + string android_privacy_interaction_date = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. 128 bit hex string of the encoded shared campaign key, + // including a '0x' prefix. This key can be used to do a bitwise OR operator + // with the aggregate conversion key to create a full aggregation key to + // retrieve the Aggregate API Report in Android Privacy Sandbox. + string shared_campaign_key = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_network_type.proto b/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_network_type.proto new file mode 100644 index 000000000..28426fb84 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/android_privacy_shared_key_google_network_type.proto @@ -0,0 +1,77 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/android_privacy_interaction_type.proto"; +import "google/ads/googleads/v17/enums/android_privacy_network_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AndroidPrivacySharedKeyGoogleNetworkTypeProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the AndroidPrivacySharedKeyGoogleNetworkType resource. + +// An Android privacy shared key view for Google network type key. +message AndroidPrivacySharedKeyGoogleNetworkType { + option (google.api.resource) = { + type: "googleads.googleapis.com/AndroidPrivacySharedKeyGoogleNetworkType" + pattern: "customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date}" + }; + + // Output only. The resource name of the Android privacy shared key. + // Android privacy shared key resource names have the form: + // + // `customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AndroidPrivacySharedKeyGoogleNetworkType" + } + ]; + + // Output only. The campaign ID used in the share key encoding. + int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The interaction type enum used in the share key encoding. + google.ads.googleads.v17.enums.AndroidPrivacyInteractionTypeEnum + .AndroidPrivacyInteractionType android_privacy_interaction_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The interaction date used in the shared key encoding in the + // format of "YYYY-MM-DD" in UTC timezone. + string android_privacy_interaction_date = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The network type enum used in the share key encoding. + google.ads.googleads.v17.enums.AndroidPrivacyNetworkTypeEnum + .AndroidPrivacyNetworkType android_privacy_network_type = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. 128 bit hex string of the encoded shared network type key, + // including a '0x' prefix. This key can be used to do a bitwise OR operator + // with the aggregate conversion key to create a full aggregation key to + // retrieve the Aggregate API Report in Android Privacy Sandbox. + string shared_network_type_key = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset.proto similarity index 64% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset.proto index 1832aa434..2347f50cd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_types.proto"; -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_source.proto"; -import "google/ads/googleads/v14/enums/asset_type.proto"; -import "google/ads/googleads/v14/enums/policy_approval_status.proto"; -import "google/ads/googleads/v14/enums/policy_review_status.proto"; +import "google/ads/googleads/v17/common/asset_types.proto"; +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; +import "google/ads/googleads/v17/enums/asset_type.proto"; +import "google/ads/googleads/v17/enums/policy_approval_status.proto"; +import "google/ads/googleads/v17/enums/policy_review_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the asset resource. @@ -64,7 +64,7 @@ message Asset { optional string name = 12; // Output only. Type of the asset. - google.ads.googleads.v14.enums.AssetTypeEnum.AssetType type = 4 + google.ads.googleads.v17.enums.AssetTypeEnum.AssetType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // A list of possible final URLs after all cross domain redirects. @@ -78,7 +78,7 @@ message Asset { // A list of mappings to be used for substituting URL custom parameter tags in // the tracking_url_template, final_urls, and/or final_mobile_urls. - repeated google.ads.googleads.v14.common.CustomParameter + repeated google.ads.googleads.v17.common.CustomParameter url_custom_parameters = 18; // URL template for appending params to landing page URLs served with parallel @@ -86,7 +86,7 @@ message Asset { optional string final_url_suffix = 19; // Output only. Source of the asset. - google.ads.googleads.v14.enums.AssetSourceEnum.AssetSource source = 38 + google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource source = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Policy information for the asset. @@ -100,100 +100,100 @@ message Asset { // The specific type of the asset. oneof asset_data { // Immutable. A YouTube video asset. - google.ads.googleads.v14.common.YoutubeVideoAsset youtube_video_asset = 5 + google.ads.googleads.v17.common.YoutubeVideoAsset youtube_video_asset = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. A media bundle asset. - google.ads.googleads.v14.common.MediaBundleAsset media_bundle_asset = 6 + google.ads.googleads.v17.common.MediaBundleAsset media_bundle_asset = 6 [(google.api.field_behavior) = IMMUTABLE]; // Output only. An image asset. - google.ads.googleads.v14.common.ImageAsset image_asset = 7 + google.ads.googleads.v17.common.ImageAsset image_asset = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. A text asset. - google.ads.googleads.v14.common.TextAsset text_asset = 8 + google.ads.googleads.v17.common.TextAsset text_asset = 8 [(google.api.field_behavior) = IMMUTABLE]; // A lead form asset. - google.ads.googleads.v14.common.LeadFormAsset lead_form_asset = 9; + google.ads.googleads.v17.common.LeadFormAsset lead_form_asset = 9; // A book on google asset. - google.ads.googleads.v14.common.BookOnGoogleAsset book_on_google_asset = 10; + google.ads.googleads.v17.common.BookOnGoogleAsset book_on_google_asset = 10; // A promotion asset. - google.ads.googleads.v14.common.PromotionAsset promotion_asset = 15; + google.ads.googleads.v17.common.PromotionAsset promotion_asset = 15; // A callout asset. - google.ads.googleads.v14.common.CalloutAsset callout_asset = 20; + google.ads.googleads.v17.common.CalloutAsset callout_asset = 20; // A structured snippet asset. - google.ads.googleads.v14.common.StructuredSnippetAsset + google.ads.googleads.v17.common.StructuredSnippetAsset structured_snippet_asset = 21; // A sitelink asset. - google.ads.googleads.v14.common.SitelinkAsset sitelink_asset = 22; + google.ads.googleads.v17.common.SitelinkAsset sitelink_asset = 22; // A page feed asset. - google.ads.googleads.v14.common.PageFeedAsset page_feed_asset = 23; + google.ads.googleads.v17.common.PageFeedAsset page_feed_asset = 23; // A dynamic education asset. - google.ads.googleads.v14.common.DynamicEducationAsset + google.ads.googleads.v17.common.DynamicEducationAsset dynamic_education_asset = 24; // A mobile app asset. - google.ads.googleads.v14.common.MobileAppAsset mobile_app_asset = 25; + google.ads.googleads.v17.common.MobileAppAsset mobile_app_asset = 25; // A hotel callout asset. - google.ads.googleads.v14.common.HotelCalloutAsset hotel_callout_asset = 26; + google.ads.googleads.v17.common.HotelCalloutAsset hotel_callout_asset = 26; // A call asset. - google.ads.googleads.v14.common.CallAsset call_asset = 27; + google.ads.googleads.v17.common.CallAsset call_asset = 27; // A price asset. - google.ads.googleads.v14.common.PriceAsset price_asset = 28; + google.ads.googleads.v17.common.PriceAsset price_asset = 28; // Immutable. A call to action asset. - google.ads.googleads.v14.common.CallToActionAsset call_to_action_asset = 29 + google.ads.googleads.v17.common.CallToActionAsset call_to_action_asset = 29 [(google.api.field_behavior) = IMMUTABLE]; // A dynamic real estate asset. - google.ads.googleads.v14.common.DynamicRealEstateAsset + google.ads.googleads.v17.common.DynamicRealEstateAsset dynamic_real_estate_asset = 30; // A dynamic custom asset. - google.ads.googleads.v14.common.DynamicCustomAsset dynamic_custom_asset = + google.ads.googleads.v17.common.DynamicCustomAsset dynamic_custom_asset = 31; // A dynamic hotels and rentals asset. - google.ads.googleads.v14.common.DynamicHotelsAndRentalsAsset + google.ads.googleads.v17.common.DynamicHotelsAndRentalsAsset dynamic_hotels_and_rentals_asset = 32; // A dynamic flights asset. - google.ads.googleads.v14.common.DynamicFlightsAsset dynamic_flights_asset = + google.ads.googleads.v17.common.DynamicFlightsAsset dynamic_flights_asset = 33; - // Immutable. A discovery carousel card asset. - google.ads.googleads.v14.common.DiscoveryCarouselCardAsset - discovery_carousel_card_asset = 34 + // Immutable. A Demand Gen carousel card asset. + google.ads.googleads.v17.common.DemandGenCarouselCardAsset + demand_gen_carousel_card_asset = 50 [(google.api.field_behavior) = IMMUTABLE]; // A dynamic travel asset. - google.ads.googleads.v14.common.DynamicTravelAsset dynamic_travel_asset = + google.ads.googleads.v17.common.DynamicTravelAsset dynamic_travel_asset = 35; // A dynamic local asset. - google.ads.googleads.v14.common.DynamicLocalAsset dynamic_local_asset = 36; + google.ads.googleads.v17.common.DynamicLocalAsset dynamic_local_asset = 36; // A dynamic jobs asset. - google.ads.googleads.v14.common.DynamicJobsAsset dynamic_jobs_asset = 37; + google.ads.googleads.v17.common.DynamicJobsAsset dynamic_jobs_asset = 37; // Output only. A location asset. - google.ads.googleads.v14.common.LocationAsset location_asset = 39 + google.ads.googleads.v17.common.LocationAsset location_asset = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. A hotel property asset. - google.ads.googleads.v14.common.HotelPropertyAsset hotel_property_asset = 41 + google.ads.googleads.v17.common.HotelPropertyAsset hotel_property_asset = 41 [(google.api.field_behavior) = IMMUTABLE]; } } @@ -201,11 +201,11 @@ message Asset { // Contains policy information for an asset under AssetFieldType context. message AssetFieldTypePolicySummary { // Output only. FieldType of this asset. - optional google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType + optional google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType asset_field_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of this asset. - optional google.ads.googleads.v14.enums.AssetSourceEnum.AssetSource + optional google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource asset_source = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Policy summary. @@ -216,15 +216,15 @@ message AssetFieldTypePolicySummary { // Contains policy information for an asset. message AssetPolicySummary { // Output only. The list of policy findings for this asset. - repeated google.ads.googleads.v14.common.PolicyTopicEntry + repeated google.ads.googleads.v17.common.PolicyTopicEntry policy_topic_entries = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where in the review process this asset is. - google.ads.googleads.v14.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v17.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The overall approval status of this asset, calculated based on // the status of its individual policy topic entries. - google.ads.googleads.v14.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v17.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_field_type_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_field_type_view.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_field_type_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_field_type_view.proto index 6b30e7a9e..c147f9e24 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_field_type_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_field_type_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetFieldTypeViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AssetFieldTypeView resource. @@ -52,6 +52,6 @@ message AssetFieldTypeView { ]; // Output only. The asset field type of the asset field type view. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_group.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_group.proto index 656694b81..a72edcee4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/ad_strength.proto"; -import "google/ads/googleads/v14/enums/asset_group_primary_status.proto"; -import "google/ads/googleads/v14/enums/asset_group_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/asset_group_status.proto"; +import "google/ads/googleads/v17/enums/ad_strength.proto"; +import "google/ads/googleads/v17/enums/asset_group_primary_status.proto"; +import "google/ads/googleads/v17/enums/asset_group_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/asset_group_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // An asset group. // AssetGroupAsset is used to link an asset to the asset group. @@ -78,19 +78,19 @@ message AssetGroup { repeated string final_mobile_urls = 5; // The status of the asset group. - google.ads.googleads.v14.enums.AssetGroupStatusEnum.AssetGroupStatus status = + google.ads.googleads.v17.enums.AssetGroupStatusEnum.AssetGroupStatus status = 6; // Output only. The primary status of the asset group. Provides insights into // why an asset group is not serving or not serving optimally. - google.ads.googleads.v14.enums.AssetGroupPrimaryStatusEnum + google.ads.googleads.v17.enums.AssetGroupPrimaryStatusEnum .AssetGroupPrimaryStatus primary_status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides reasons into why an asset group is not serving or not // serving optimally. It will be empty when the asset group is serving without // issues. - repeated google.ads.googleads.v14.enums.AssetGroupPrimaryStatusReasonEnum + repeated google.ads.googleads.v17.enums.AssetGroupPrimaryStatusReasonEnum .AssetGroupPrimaryStatusReason primary_status_reasons = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -103,6 +103,6 @@ message AssetGroup { string path2 = 8; // Output only. Overall ad strength of this asset group. - google.ads.googleads.v14.enums.AdStrengthEnum.AdStrength ad_strength = 10 + google.ads.googleads.v17.enums.AdStrengthEnum.AdStrength ad_strength = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_asset.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_asset.proto similarity index 70% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_group_asset.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_group_asset.proto index dd56f01a1..33ff95db7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_asset.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_policy.proto"; -import "google/ads/googleads/v14/common/policy_summary.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/asset_link_status.proto"; -import "google/ads/googleads/v14/enums/asset_performance_label.proto"; +import "google/ads/googleads/v17/common/asset_policy.proto"; +import "google/ads/googleads/v17/common/policy_summary.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/asset_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_performance_label.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupAssetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // AssetGroupAsset is the link between an asset and an asset group. // Adding an AssetGroupAsset links an asset with an asset group. @@ -70,11 +71,11 @@ message AssetGroupAsset { // The description of the placement of the asset within the asset group. For // example: HEADLINE, YOUTUBE_VIDEO etc - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4; // The status of the link between an asset and asset group. - google.ads.googleads.v14.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + google.ads.googleads.v17.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -82,26 +83,30 @@ message AssetGroupAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v14.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v17.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v14.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v17.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v14.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v17.common.AssetLinkPrimaryStatusDetails primary_status_details = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The performance of this asset group asset. - google.ads.googleads.v14.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel + google.ads.googleads.v17.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The policy information for this asset group asset. - google.ads.googleads.v14.common.PolicySummary policy_summary = 7 + google.ads.googleads.v17.common.PolicySummary policy_summary = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source of the asset group asset. + google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource source = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_listing_group_filter.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_listing_group_filter.proto similarity index 62% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_group_listing_group_filter.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_group_listing_group_filter.proto index ff344da81..b627db7d2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_listing_group_filter.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_listing_group_filter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/listing_group_filter_bidding_category_level.proto"; -import "google/ads/googleads/v14/enums/listing_group_filter_custom_attribute_index.proto"; -import "google/ads/googleads/v14/enums/listing_group_filter_product_channel.proto"; -import "google/ads/googleads/v14/enums/listing_group_filter_product_condition.proto"; -import "google/ads/googleads/v14/enums/listing_group_filter_product_type_level.proto"; -import "google/ads/googleads/v14/enums/listing_group_filter_type_enum.proto"; -import "google/ads/googleads/v14/enums/listing_group_filter_vertical.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_custom_attribute_index.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_listing_source.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_product_category_level.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_product_channel.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_product_condition.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_product_type_level.proto"; +import "google/ads/googleads/v17/enums/listing_group_filter_type_enum.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupListingGroupFilterProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // AssetGroupListingGroupFilter represents a listing group filter tree node in // an asset group. @@ -67,14 +67,13 @@ message AssetGroupListingGroupFilter { int64 id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Type of a listing group filter node. - google.ads.googleads.v14.enums.ListingGroupFilterTypeEnum + google.ads.googleads.v17.enums.ListingGroupFilterTypeEnum .ListingGroupFilterType type = 4 [(google.api.field_behavior) = IMMUTABLE]; - // Immutable. The vertical the current node tree represents. All nodes in the - // same tree must belong to the same vertical. - google.ads.googleads.v14.enums.ListingGroupFilterVerticalEnum - .ListingGroupFilterVertical vertical = 5 + // Immutable. The source of listings filtered by this listing group filter. + google.ads.googleads.v17.enums.ListingGroupFilterListingSourceEnum + .ListingGroupFilterListingSource listing_source = 9 [(google.api.field_behavior) = IMMUTABLE]; // Dimension value with which this listing group is refining its parent. @@ -105,21 +104,21 @@ message ListingGroupFilterDimensionPath { // Listing dimensions for the asset group listing group filter. message ListingGroupFilterDimension { - // One element of a bidding category at a certain level. Top-level categories + // One element of a category at a certain level. Top-level categories // are at level 1, their children at level 2, and so on. We currently support // up to 5 levels. The user must specify a dimension type that indicates the // level of the category. All cases of the same subdivision must have the same // dimension type (category level). - message ProductBiddingCategory { - // ID of the product bidding category. + message ProductCategory { + // ID of the product category. // // This ID is equivalent to the google_product_category ID as described in // this article: https://support.google.com/merchants/answer/6324436 - optional int64 id = 1; + optional int64 category_id = 1; // Indicates the level of the category in the taxonomy. - google.ads.googleads.v14.enums.ListingGroupFilterBiddingCategoryLevelEnum - .ListingGroupFilterBiddingCategoryLevel level = 2; + google.ads.googleads.v17.enums.ListingGroupFilterProductCategoryLevelEnum + .ListingGroupFilterProductCategoryLevel level = 2; } // Brand of the product. @@ -131,14 +130,14 @@ message ListingGroupFilterDimension { // Locality of a product offer. message ProductChannel { // Value of the locality. - google.ads.googleads.v14.enums.ListingGroupFilterProductChannelEnum + google.ads.googleads.v17.enums.ListingGroupFilterProductChannelEnum .ListingGroupFilterProductChannel channel = 1; } // Condition of a product offer. message ProductCondition { // Value of the condition. - google.ads.googleads.v14.enums.ListingGroupFilterProductConditionEnum + google.ads.googleads.v17.enums.ListingGroupFilterProductConditionEnum .ListingGroupFilterProductCondition condition = 1; } @@ -148,7 +147,7 @@ message ListingGroupFilterDimension { optional string value = 1; // Indicates the index of the custom attribute. - google.ads.googleads.v14.enums.ListingGroupFilterCustomAttributeIndexEnum + google.ads.googleads.v17.enums.ListingGroupFilterCustomAttributeIndexEnum .ListingGroupFilterCustomAttributeIndex index = 2; } @@ -164,14 +163,48 @@ message ListingGroupFilterDimension { optional string value = 1; // Level of the type. - google.ads.googleads.v14.enums.ListingGroupFilterProductTypeLevelEnum + google.ads.googleads.v17.enums.ListingGroupFilterProductTypeLevelEnum .ListingGroupFilterProductTypeLevel level = 2; } + // Filters for URLs in a page feed and URLs from the advertiser web domain. + // Several root nodes with this dimension are allowed in an asset group and + // their conditions are considered in OR. + message Webpage { + // The webpage conditions are case sensitive and these are and-ed together + // when evaluated for filtering. All the conditions should be of same type. + // Example1: for URL1 = www.ads.google.com?ocid=1&euid=2 + // and URL2 = www.ads.google.com?ocid=1 + // and with "ocid" and "euid" as url_contains conditions, + // URL1 will be matched, but URL2 not. + // + // Example2 : If URL1 has Label1, Label2 and URL2 has Label2, Label3, then + // with Label1 and Label2 as custom_label conditions, URL1 will be matched + // but not URL2. + // With Label2 as the only custom_label condition then both URL1 and URL2 + // will be matched. + repeated WebpageCondition conditions = 1; + } + + // Matching condition for URL filtering. + message WebpageCondition { + // Condition for filtering the URLs. + oneof condition { + // Filters the URLs in a page feed that have this custom label. A custom + // label can be added to a campaign by creating an AssetSet of type + // PAGE_FEED and linking it to the campaign using CampaignAssetSet. + string custom_label = 1; + + // Filters the URLs in a page feed and the URLs from the advertiser web + // domain that contain this string. + string url_contains = 2; + } + } + // Dimension of one of the types below is always present. oneof dimension { - // Bidding category of a product offer. - ProductBiddingCategory product_bidding_category = 1; + // Category of a product offer. + ProductCategory product_category = 10; // Brand of a product offer. ProductBrand product_brand = 2; @@ -190,5 +223,8 @@ message ListingGroupFilterDimension { // Type of a product offer. ProductType product_type = 7; + + // Filters for URLs in a page feed and URLs from the advertiser web domain. + Webpage webpage = 9; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_product_group_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_product_group_view.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_group_product_group_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_group_product_group_view.proto index d5cd0bf12..fe5058ad2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_product_group_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_product_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupProductGroupViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AssetGroupProductGroupView resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_signal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_signal.proto similarity index 50% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_group_signal.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_group_signal.proto index 3d1eb988e..4330085e9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_group_signal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_signal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/asset_group_signal_approval_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupSignalProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // AssetGroupSignal represents a signal in an asset group. The existence of a // signal tells the performance max campaign who's most likely to convert. @@ -58,8 +59,37 @@ message AssetGroupSignal { } ]; - // Immutable. The signal(audience criterion) to be used by the performance max - // campaign. - google.ads.googleads.v14.common.AudienceInfo audience = 3 - [(google.api.field_behavior) = IMMUTABLE]; + // Output only. Approval status is the output value for search theme signal + // after Google ads policy review. When using Audience signal, this field is + // not used and will be absent. + google.ads.googleads.v17.enums.AssetGroupSignalApprovalStatusEnum + .AssetGroupSignalApprovalStatus approval_status = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Computed for SearchTheme signals. + // When using Audience signal, this field is not used and will be absent. + repeated string disapproval_reasons = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The signal of the asset group. + oneof signal { + // Immutable. The audience signal to be used by the performance max + // campaign. + google.ads.googleads.v17.common.AudienceInfo audience = 4 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The search_theme signal to be used by the performance max + // campaign. + // Mutate errors of search_theme criterion includes + // AssetGroupSignalError.UNSPECIFIED + // AssetGroupSignalError.UNKNOWN + // AssetGroupSignalError.TOO_MANY_WORDS + // AssetGroupSignalError.SEARCH_THEME_POLICY_VIOLATION + // FieldError.REQUIRED + // StringFormatError.ILLEGAL_CHARS + // StringLengthError.TOO_LONG + // ResourceCountLimitExceededError.RESOURCE_LIMIT + google.ads.googleads.v17.common.SearchThemeInfo search_theme = 5 + [(google.api.field_behavior) = IMMUTABLE]; + } } diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_top_combination_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_top_combination_view.proto new file mode 100644 index 000000000..0707a897e --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_group_top_combination_view.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/asset_usage.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AssetGroupTopCombinationViewProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the asset group top combination view resource. + +// A view on the usage of ad group ad asset combination. +message AssetGroupTopCombinationView { + option (google.api.resource) = { + type: "googleads.googleapis.com/AssetGroupTopCombinationView" + pattern: "customers/{customer_id}/assetGroupTopCombinationViews/{asset_group_id}~{asset_combination_category}" + }; + + // Output only. The resource name of the asset group top combination view. + // AssetGroup Top Combination view resource names have the form: + // `"customers/{customer_id}/assetGroupTopCombinationViews/{asset_group_id}~{asset_combination_category}" + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroupTopCombinationView" + } + ]; + + // Output only. The top combinations of assets that served together. + repeated AssetGroupAssetCombinationData asset_group_top_combinations = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Asset group asset combination data +message AssetGroupAssetCombinationData { + // Output only. Served assets. + repeated google.ads.googleads.v17.common.AssetUsage + asset_combination_served_assets = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_set.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_set.proto index 1da814b53..2b832e2b7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_set_types.proto"; -import "google/ads/googleads/v14/enums/asset_set_status.proto"; -import "google/ads/googleads/v14/enums/asset_set_type.proto"; +import "google/ads/googleads/v17/common/asset_set_types.proto"; +import "google/ads/googleads/v17/enums/asset_set_status.proto"; +import "google/ads/googleads/v17/enums/asset_set_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // An asset set representing a collection of assets. // Use AssetSetAsset to link an asset to the asset set. @@ -79,13 +79,13 @@ message AssetSet { string name = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Immutable. The type of the asset set. Required. - google.ads.googleads.v14.enums.AssetSetTypeEnum.AssetSetType type = 3 [ + google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType type = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; // Output only. The status of the asset set. Read-only. - google.ads.googleads.v14.enums.AssetSetStatusEnum.AssetSetStatus status = 4 + google.ads.googleads.v17.enums.AssetSetStatusEnum.AssetSetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Merchant ID and Feed Label from Google Merchant Center. @@ -108,15 +108,15 @@ message AssetSet { oneof asset_set_source { // Location asset set data. This will be used for sync level location // set. This can only be set if AssetSet's type is LOCATION_SYNC. - google.ads.googleads.v14.common.LocationSet location_set = 7; + google.ads.googleads.v17.common.LocationSet location_set = 7; // Business Profile location group asset set data. - google.ads.googleads.v14.common.BusinessProfileLocationGroup + google.ads.googleads.v17.common.BusinessProfileLocationGroup business_profile_location_group = 8; // Represents information about a Chain dynamic location group. // Only applicable if the sync level AssetSet's type is LOCATION_SYNC and // sync source is chain. - google.ads.googleads.v14.common.ChainLocationGroup chain_location_group = 9; + google.ads.googleads.v17.common.ChainLocationGroup chain_location_group = 9; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_set_asset.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_set_asset.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_set_asset.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_set_asset.proto index e460d03b8..679e386da 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_set_asset.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_set_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/asset_set_asset_status.proto"; +import "google/ads/googleads/v17/enums/asset_set_asset_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // AssetSetAsset is the link between an asset and an asset set. // Adding an AssetSetAsset links an asset with an asset set. @@ -63,6 +63,6 @@ message AssetSetAsset { ]; // Output only. The status of the asset set asset. Read-only. - google.ads.googleads.v14.enums.AssetSetAssetStatusEnum.AssetSetAssetStatus + google.ads.googleads.v17.enums.AssetSetAssetStatusEnum.AssetSetAssetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/asset_set_type_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/asset_set_type_view.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/asset_set_type_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/asset_set_type_view.proto index ee4ca8a45..84bd5322b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/asset_set_type_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/asset_set_type_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/asset_set_type.proto"; +import "google/ads/googleads/v17/enums/asset_set_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetSetTypeViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the AssetSetTypeView resource. @@ -53,6 +53,6 @@ message AssetSetTypeView { ]; // Output only. The asset set type of the asset set type view. - google.ads.googleads.v14.enums.AssetSetTypeEnum.AssetSetType asset_set_type = + google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType asset_set_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/audience.proto b/third_party/googleapis/google/ads/googleads/v17/resources/audience.proto similarity index 53% rename from third_party/googleapis/google/ads/googleads/v14/resources/audience.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/audience.proto index 95084e256..4b796180c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/audience.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/audiences.proto"; -import "google/ads/googleads/v14/enums/audience_status.proto"; +import "google/ads/googleads/v17/common/audiences.proto"; +import "google/ads/googleads/v17/enums/audience_scope.proto"; +import "google/ads/googleads/v17/enums/audience_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AudienceProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Audience resource. @@ -58,21 +59,39 @@ message Audience { // Output only. Status of this audience. Indicates whether the audience // is enabled or removed. - google.ads.googleads.v14.enums.AudienceStatusEnum.AudienceStatus status = 3 + google.ads.googleads.v17.enums.AudienceStatusEnum.AudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Name of the audience. It should be unique across all - // audiences. It must have a minimum length of 1 and - // maximum length of 255. - string name = 4 [(google.api.field_behavior) = REQUIRED]; + // Name of the audience. It should be unique across all audiences within the + // account. It must have a minimum length of 1 and maximum length of 255. + // Required when scope is not set or is set to CUSTOMER. Cannot be set or + // updated when scope is ASSET_GROUP. + optional string name = 10; // Description of this audience. string description = 5; // Positive dimensions specifying the audience composition. - repeated google.ads.googleads.v14.common.AudienceDimension dimensions = 6; + repeated google.ads.googleads.v17.common.AudienceDimension dimensions = 6; // Negative dimension specifying the audience composition. - google.ads.googleads.v14.common.AudienceExclusionDimension + google.ads.googleads.v17.common.AudienceExclusionDimension exclusion_dimension = 7; + + // Defines the scope this audience can be used in. By default, the scope is + // CUSTOMER. Audiences can be created with a scope of ASSET_GROUP for + // exclusive use by a single asset_group. Scope may change from ASSET_GROUP to + // CUSTOMER but not from CUSTOMER to ASSET_GROUP. + google.ads.googleads.v17.enums.AudienceScopeEnum.AudienceScope scope = 8; + + // Immutable. The asset group that this audience is scoped under. Must be set + // if and only if scope is ASSET_GROUP. Immutable after creation. If an + // audience with ASSET_GROUP scope is upgraded to CUSTOMER scope, this field + // will automatically be cleared. + string asset_group = 9 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/batch_job.proto b/third_party/googleapis/google/ads/googleads/v17/resources/batch_job.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/resources/batch_job.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/batch_job.proto index 7fb525c82..a48d7af6b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/batch_job.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/batch_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/batch_job_status.proto"; +import "google/ads/googleads/v17/enums/batch_job_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BatchJobProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the batch job resource. @@ -102,7 +102,7 @@ message BatchJob { BatchJobMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Status of this batch job. - google.ads.googleads.v14.enums.BatchJobStatusEnum.BatchJobStatus status = 5 + google.ads.googleads.v17.enums.BatchJobStatusEnum.BatchJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The resource name of the long-running operation that can be diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_data_exclusion.proto b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_data_exclusion.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/bidding_data_exclusion.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/bidding_data_exclusion.proto index f40a6aa35..5d67c9bd5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_data_exclusion.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_data_exclusion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v14/enums/device.proto"; -import "google/ads/googleads/v14/enums/seasonality_event_scope.proto"; -import "google/ads/googleads/v14/enums/seasonality_event_status.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v17/enums/device.proto"; +import "google/ads/googleads/v17/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v17/enums/seasonality_event_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingDataExclusionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Represents a bidding data exclusion. // @@ -57,11 +57,11 @@ message BiddingDataExclusion { int64 data_exclusion_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // The scope of the data exclusion. - google.ads.googleads.v14.enums.SeasonalityEventScopeEnum.SeasonalityEventScope + google.ads.googleads.v17.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; // Output only. The status of the data exclusion. - google.ads.googleads.v14.enums.SeasonalityEventStatusEnum + google.ads.googleads.v17.enums.SeasonalityEventStatusEnum .SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -90,7 +90,7 @@ message BiddingDataExclusion { // If not specified, all devices will be included in this exclusion. // Otherwise, only the specified targeted devices will be included in this // exclusion. - repeated google.ads.googleads.v14.enums.DeviceEnum.Device devices = 9; + repeated google.ads.googleads.v17.enums.DeviceEnum.Device devices = 9; // The data exclusion will apply to the campaigns listed when the scope of // this exclusion is CAMPAIGN. The maximum number of campaigns per event is @@ -107,6 +107,6 @@ message BiddingDataExclusion { // The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. // Note: a data exclusion with both advertising_channel_types and // campaign_ids is not supported. - repeated google.ads.googleads.v14.enums.AdvertisingChannelTypeEnum + repeated google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_types = 11; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_seasonality_adjustment.proto b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/bidding_seasonality_adjustment.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto index 4c07838d1..86e8d831c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_seasonality_adjustment.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v14/enums/device.proto"; -import "google/ads/googleads/v14/enums/seasonality_event_scope.proto"; -import "google/ads/googleads/v14/enums/seasonality_event_status.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v17/enums/device.proto"; +import "google/ads/googleads/v17/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v17/enums/seasonality_event_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingSeasonalityAdjustmentProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Represents a bidding seasonality adjustment. // @@ -58,11 +58,11 @@ message BiddingSeasonalityAdjustment { [(google.api.field_behavior) = OUTPUT_ONLY]; // The scope of the seasonality adjustment. - google.ads.googleads.v14.enums.SeasonalityEventScopeEnum.SeasonalityEventScope + google.ads.googleads.v17.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; // Output only. The status of the seasonality adjustment. - google.ads.googleads.v14.enums.SeasonalityEventStatusEnum + google.ads.googleads.v17.enums.SeasonalityEventStatusEnum .SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -91,7 +91,7 @@ message BiddingSeasonalityAdjustment { // If not specified, all devices will be included in this adjustment. // Otherwise, only the specified targeted devices will be included in this // adjustment. - repeated google.ads.googleads.v14.enums.DeviceEnum.Device devices = 9; + repeated google.ads.googleads.v17.enums.DeviceEnum.Device devices = 9; // Conversion rate modifier estimated based on expected conversion rate // changes. When this field is unset or set to 1.0 no adjustment will be @@ -113,6 +113,6 @@ message BiddingSeasonalityAdjustment { // The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. // Note: a seasonality adjustment with both advertising_channel_types and // campaign_ids is not supported. - repeated google.ads.googleads.v14.enums.AdvertisingChannelTypeEnum + repeated google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_types = 12; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_strategy.proto b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_strategy.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/bidding_strategy.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/bidding_strategy.proto index 5eecf2c52..7c84f1e78 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_strategy.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/bidding.proto"; -import "google/ads/googleads/v14/enums/bidding_strategy_status.proto"; -import "google/ads/googleads/v14/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v17/common/bidding.proto"; +import "google/ads/googleads/v17/enums/bidding_strategy_status.proto"; +import "google/ads/googleads/v17/enums/bidding_strategy_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the BiddingStrategy resource @@ -64,14 +64,14 @@ message BiddingStrategy { // Output only. The status of the bidding strategy. // // This field is read-only. - google.ads.googleads.v14.enums.BiddingStrategyStatusEnum.BiddingStrategyStatus + google.ads.googleads.v17.enums.BiddingStrategyStatusEnum.BiddingStrategyStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the bidding strategy. // Create a bidding strategy by setting the bidding scheme. // // This field is read-only. - google.ads.googleads.v14.enums.BiddingStrategyTypeEnum.BiddingStrategyType + google.ads.googleads.v17.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The currency used by the bidding strategy (ISO 4217 three-letter @@ -124,33 +124,33 @@ message BiddingStrategy { // A bidding strategy that raises bids for clicks that seem more likely to // lead to a conversion and lowers them for clicks where they seem less // likely. - google.ads.googleads.v14.common.EnhancedCpc enhanced_cpc = 7; + google.ads.googleads.v17.common.EnhancedCpc enhanced_cpc = 7; // An automated bidding strategy to help get the most conversion value for // your campaigns while spending your budget. - google.ads.googleads.v14.common.MaximizeConversionValue + google.ads.googleads.v17.common.MaximizeConversionValue maximize_conversion_value = 21; // An automated bidding strategy to help get the most conversions for your // campaigns while spending your budget. - google.ads.googleads.v14.common.MaximizeConversions maximize_conversions = + google.ads.googleads.v17.common.MaximizeConversions maximize_conversions = 22; // A bidding strategy that sets bids to help get as many conversions as // possible at the target cost-per-acquisition (CPA) you set. - google.ads.googleads.v14.common.TargetCpa target_cpa = 9; + google.ads.googleads.v17.common.TargetCpa target_cpa = 9; // A bidding strategy that automatically optimizes towards a chosen // percentage of impressions. - google.ads.googleads.v14.common.TargetImpressionShare + google.ads.googleads.v17.common.TargetImpressionShare target_impression_share = 48; // A bidding strategy that helps you maximize revenue while averaging a // specific target Return On Ad Spend (ROAS). - google.ads.googleads.v14.common.TargetRoas target_roas = 11; + google.ads.googleads.v17.common.TargetRoas target_roas = 11; // A bid strategy that sets your bids to help get as many clicks as // possible within your budget. - google.ads.googleads.v14.common.TargetSpend target_spend = 12; + google.ads.googleads.v17.common.TargetSpend target_spend = 12; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_strategy_simulation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_strategy_simulation.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/bidding_strategy_simulation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/bidding_strategy_simulation.proto index 93b0c8e22..49fc32f40 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/bidding_strategy_simulation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/bidding_strategy_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/simulation.proto"; -import "google/ads/googleads/v14/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v14/enums/simulation_type.proto"; +import "google/ads/googleads/v17/common/simulation.proto"; +import "google/ads/googleads/v17/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v17/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategySimulationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the bidding strategy simulation resource. @@ -59,11 +59,11 @@ message BiddingStrategySimulation { int64 bidding_strategy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v14.enums.SimulationTypeEnum.SimulationType type = 3 + google.ads.googleads.v17.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v14.enums.SimulationModificationMethodEnum + google.ads.googleads.v17.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -78,11 +78,11 @@ message BiddingStrategySimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is TARGET_CPA. - google.ads.googleads.v14.common.TargetCpaSimulationPointList + google.ads.googleads.v17.common.TargetCpaSimulationPointList target_cpa_point_list = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is TARGET_ROAS. - google.ads.googleads.v14.common.TargetRoasSimulationPointList + google.ads.googleads.v17.common.TargetRoasSimulationPointList target_roas_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/billing_setup.proto b/third_party/googleapis/google/ads/googleads/v17/resources/billing_setup.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/resources/billing_setup.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/billing_setup.proto index 5856b5ec1..a82c1a813 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/billing_setup.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/billing_setup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/billing_setup_status.proto"; -import "google/ads/googleads/v14/enums/time_type.proto"; +import "google/ads/googleads/v17/enums/billing_setup_status.proto"; +import "google/ads/googleads/v17/enums/time_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BillingSetupProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the BillingSetup resource. @@ -95,7 +95,7 @@ message BillingSetup { optional int64 id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the billing setup. - google.ads.googleads.v14.enums.BillingSetupStatusEnum.BillingSetupStatus + google.ads.googleads.v17.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The resource name of the payments account associated with this @@ -133,7 +133,7 @@ message BillingSetup { string start_date_time = 16 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The start time as a type. Only NOW is allowed. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType start_time_type = 10 + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType start_time_type = 10 [(google.api.field_behavior) = IMMUTABLE]; } @@ -145,7 +145,7 @@ message BillingSetup { string end_date_time = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The end time as a type. The only possible value is FOREVER. - google.ads.googleads.v14.enums.TimeTypeEnum.TimeType end_time_type = 14 + google.ads.googleads.v17.enums.TimeTypeEnum.TimeType end_time_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/call_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/call_view.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/call_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/call_view.proto index fde111f8c..128cb6331 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/call_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/call_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/call_tracking_display_location.proto"; -import "google/ads/googleads/v14/enums/call_type.proto"; -import "google/ads/googleads/v14/enums/google_voice_call_status.proto"; +import "google/ads/googleads/v17/enums/call_tracking_display_location.proto"; +import "google/ads/googleads/v17/enums/call_type.proto"; +import "google/ads/googleads/v17/enums/google_voice_call_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CallViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the call view resource. @@ -69,15 +69,15 @@ message CallView { string end_call_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The call tracking display location. - google.ads.googleads.v14.enums.CallTrackingDisplayLocationEnum + google.ads.googleads.v17.enums.CallTrackingDisplayLocationEnum .CallTrackingDisplayLocation call_tracking_display_location = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the call. - google.ads.googleads.v14.enums.CallTypeEnum.CallType type = 8 + google.ads.googleads.v17.enums.CallTypeEnum.CallType type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the call. - google.ads.googleads.v14.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus + google.ads.googleads.v17.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus call_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign.proto index bfd6ae8f4..08036d002 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,48 +14,51 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/common/bidding.proto"; -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/common/frequency_cap.proto"; -import "google/ads/googleads/v14/common/real_time_bidding_setting.proto"; -import "google/ads/googleads/v14/common/targeting_setting.proto"; -import "google/ads/googleads/v14/enums/ad_serving_optimization_status.proto"; -import "google/ads/googleads/v14/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v14/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v14/enums/app_campaign_app_store.proto"; -import "google/ads/googleads/v14/enums/app_campaign_bidding_strategy_goal_type.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_set_type.proto"; -import "google/ads/googleads/v14/enums/bidding_strategy_system_status.proto"; -import "google/ads/googleads/v14/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v14/enums/brand_safety_suitability.proto"; -import "google/ads/googleads/v14/enums/campaign_experiment_type.proto"; -import "google/ads/googleads/v14/enums/campaign_primary_status.proto"; -import "google/ads/googleads/v14/enums/campaign_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/campaign_serving_status.proto"; -import "google/ads/googleads/v14/enums/campaign_status.proto"; -import "google/ads/googleads/v14/enums/listing_type.proto"; -import "google/ads/googleads/v14/enums/location_source_type.proto"; -import "google/ads/googleads/v14/enums/negative_geo_target_type.proto"; -import "google/ads/googleads/v14/enums/optimization_goal_type.proto"; -import "google/ads/googleads/v14/enums/payment_mode.proto"; -import "google/ads/googleads/v14/enums/performance_max_upgrade_status.proto"; -import "google/ads/googleads/v14/enums/positive_geo_target_type.proto"; -import "google/ads/googleads/v14/enums/vanity_pharma_display_url_mode.proto"; -import "google/ads/googleads/v14/enums/vanity_pharma_text.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/bidding.proto"; +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/common/frequency_cap.proto"; +import "google/ads/googleads/v17/common/real_time_bidding_setting.proto"; +import "google/ads/googleads/v17/common/targeting_setting.proto"; +import "google/ads/googleads/v17/enums/ad_serving_optimization_status.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v17/enums/app_campaign_app_store.proto"; +import "google/ads/googleads/v17/enums/app_campaign_bidding_strategy_goal_type.proto"; +import "google/ads/googleads/v17/enums/asset_automation_status.proto"; +import "google/ads/googleads/v17/enums/asset_automation_type.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_set_type.proto"; +import "google/ads/googleads/v17/enums/bidding_strategy_system_status.proto"; +import "google/ads/googleads/v17/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v17/enums/brand_safety_suitability.proto"; +import "google/ads/googleads/v17/enums/campaign_experiment_type.proto"; +import "google/ads/googleads/v17/enums/campaign_keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/campaign_primary_status.proto"; +import "google/ads/googleads/v17/enums/campaign_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/campaign_serving_status.proto"; +import "google/ads/googleads/v17/enums/campaign_status.proto"; +import "google/ads/googleads/v17/enums/listing_type.proto"; +import "google/ads/googleads/v17/enums/location_source_type.proto"; +import "google/ads/googleads/v17/enums/negative_geo_target_type.proto"; +import "google/ads/googleads/v17/enums/optimization_goal_type.proto"; +import "google/ads/googleads/v17/enums/payment_mode.proto"; +import "google/ads/googleads/v17/enums/performance_max_upgrade_status.proto"; +import "google/ads/googleads/v17/enums/positive_geo_target_type.proto"; +import "google/ads/googleads/v17/enums/vanity_pharma_display_url_mode.proto"; +import "google/ads/googleads/v17/enums/vanity_pharma_text.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Campaign resource. @@ -87,7 +90,7 @@ message Campaign { // Output only. The upgrade status of a campaign requested to be upgraded to // Performance Max. - google.ads.googleads.v14.enums.PerformanceMaxUpgradeStatusEnum + google.ads.googleads.v17.enums.PerformanceMaxUpgradeStatusEnum .PerformanceMaxUpgradeStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -108,6 +111,12 @@ message Campaign { // Whether ads will be served on the Google Partner Network. // This is available only to some select Google partner accounts. optional bool target_partner_search_network = 8; + + // Whether ads will be served on YouTube. + optional bool target_youtube = 9; + + // Whether ads will be served on the Google TV network. + optional bool target_google_tv_network = 10; } // Campaign-level settings for hotel ads. @@ -140,17 +149,10 @@ message Campaign { // can be advertised by the campaign, and how this campaign interacts with // other Shopping campaigns. message ShoppingSetting { - // Immutable. ID of the Merchant Center account. + // ID of the Merchant Center account. // This field is required for create operations. This field is immutable for // Shopping campaigns. - optional int64 merchant_id = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Sales country of products to include in the campaign. - // Only one of feed_label or sales_country can be set. - // Field is immutable except for clearing. - // Once this field is cleared, you must use feed_label if you - // want to set the sales country. - optional string sales_country = 6; + optional int64 merchant_id = 5; // Feed label of products to include in the campaign. // Only one of feed_label or sales_country can be set. @@ -180,6 +182,12 @@ message Campaign { // the campaign. repeated int64 advertising_partner_ids = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Disable the optional product feed. This field is currently supported + // only for Demand Gen campaigns. See + // https://support.google.com/google-ads/answer/13721750 to learn more about + // this feature. + optional bool disable_product_feed = 12; } // Campaign-level settings for tracking information. @@ -192,18 +200,18 @@ message Campaign { // Represents a collection of settings related to ads geotargeting. message GeoTargetTypeSetting { // The setting used for positive geotargeting in this particular campaign. - google.ads.googleads.v14.enums.PositiveGeoTargetTypeEnum + google.ads.googleads.v17.enums.PositiveGeoTargetTypeEnum .PositiveGeoTargetType positive_geo_target_type = 1; // The setting used for negative geotargeting in this particular campaign. - google.ads.googleads.v14.enums.NegativeGeoTargetTypeEnum + google.ads.googleads.v17.enums.NegativeGeoTargetTypeEnum .NegativeGeoTargetType negative_geo_target_type = 2; } // Campaign setting for local campaigns. message LocalCampaignSetting { // The location source type for this local campaign. - google.ads.googleads.v14.enums.LocationSourceTypeEnum.LocationSourceType + google.ads.googleads.v17.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1; } @@ -211,26 +219,26 @@ message Campaign { message AppCampaignSetting { // Represents the goal which the bidding strategy of this app campaign // should optimize towards. - google.ads.googleads.v14.enums.AppCampaignBiddingStrategyGoalTypeEnum + google.ads.googleads.v17.enums.AppCampaignBiddingStrategyGoalTypeEnum .AppCampaignBiddingStrategyGoalType bidding_strategy_goal_type = 1; // Immutable. A string that uniquely identifies a mobile application. optional string app_id = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The application store that distributes this specific app. - google.ads.googleads.v14.enums.AppCampaignAppStoreEnum.AppCampaignAppStore + google.ads.googleads.v17.enums.AppCampaignAppStoreEnum.AppCampaignAppStore app_store = 3 [(google.api.field_behavior) = IMMUTABLE]; } // Describes how unbranded pharma ads will be displayed. message VanityPharma { // The display mode for vanity pharma URLs. - google.ads.googleads.v14.enums.VanityPharmaDisplayUrlModeEnum + google.ads.googleads.v17.enums.VanityPharmaDisplayUrlModeEnum .VanityPharmaDisplayUrlMode vanity_pharma_display_url_mode = 1; // The text that will be displayed in display URL of the text ad when // website description is the selected display mode for vanity pharma URLs. - google.ads.googleads.v14.enums.VanityPharmaTextEnum.VanityPharmaText + google.ads.googleads.v17.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2; } @@ -250,7 +258,7 @@ message Campaign { // optimization goal types. message OptimizationGoalSetting { // The list of optimization goal types. - repeated google.ads.googleads.v14.enums.OptimizationGoalTypeEnum + repeated google.ads.googleads.v17.enums.OptimizationGoalTypeEnum .OptimizationGoalType optimization_goal_types = 1; } @@ -288,8 +296,8 @@ message Campaign { [(google.api.field_behavior) = IMMUTABLE]; } - // Settings for Discovery campaign. - message DiscoveryCampaignSettings { + // Settings for Demand Gen campaign. + message DemandGenCampaignSettings { // Immutable. Specifies whether this campaign uses upgraded targeting // options. When this field is set to `true`, you can use location and // language targeting at the ad group level as opposed to the standard @@ -299,6 +307,18 @@ message Campaign { [(google.api.field_behavior) = IMMUTABLE]; } + // Asset automation setting contains pair of AssetAutomationType and the + // asset automation opt-in/out status + message AssetAutomationSetting { + // The asset automation type advertiser would like to opt-in/out. + optional google.ads.googleads.v17.enums.AssetAutomationTypeEnum + .AssetAutomationType asset_automation_type = 1; + + // The opt-in/out status of asset automation type. + optional google.ads.googleads.v17.enums.AssetAutomationStatusEnum + .AssetAutomationStatus asset_automation_status = 2; + } + // Immutable. The resource name of the campaign. // Campaign resource names have the form: // @@ -327,7 +347,7 @@ message Campaign { // Provides insight into why a campaign is not serving or not serving // optimally. Modification to the campaign and its related entities might take // a while to be reflected in this status. - google.ads.googleads.v14.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatus + google.ads.googleads.v17.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatus primary_status = 81 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The primary status reasons of the campaign. @@ -335,26 +355,26 @@ message Campaign { // Provides insight into why a campaign is not serving or not serving // optimally. These reasons are aggregated to determine an overall // CampaignPrimaryStatus. - repeated google.ads.googleads.v14.enums.CampaignPrimaryStatusReasonEnum + repeated google.ads.googleads.v17.enums.CampaignPrimaryStatusReasonEnum .CampaignPrimaryStatusReason primary_status_reasons = 82 [(google.api.field_behavior) = OUTPUT_ONLY]; // The status of the campaign. // // When a new campaign is added, the status defaults to ENABLED. - google.ads.googleads.v14.enums.CampaignStatusEnum.CampaignStatus status = 5; + google.ads.googleads.v17.enums.CampaignStatusEnum.CampaignStatus status = 5; // Output only. The ad serving status of the campaign. - google.ads.googleads.v14.enums.CampaignServingStatusEnum.CampaignServingStatus + google.ads.googleads.v17.enums.CampaignServingStatusEnum.CampaignServingStatus serving_status = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The system status of the campaign's bidding strategy. - google.ads.googleads.v14.enums.BiddingStrategySystemStatusEnum + google.ads.googleads.v17.enums.BiddingStrategySystemStatusEnum .BiddingStrategySystemStatus bidding_strategy_system_status = 78 [(google.api.field_behavior) = OUTPUT_ONLY]; // The ad serving optimization status of the campaign. - google.ads.googleads.v14.enums.AdServingOptimizationStatusEnum + google.ads.googleads.v17.enums.AdServingOptimizationStatusEnum .AdServingOptimizationStatus ad_serving_optimization_status = 8; // Immutable. The primary serving target for ads within the campaign. @@ -365,7 +385,7 @@ message Campaign { // // Can be set only when creating campaigns. // After the campaign is created, the field can not be changed. - google.ads.googleads.v14.enums.AdvertisingChannelTypeEnum + google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE]; @@ -374,7 +394,7 @@ message Campaign { // // Can be set only when creating campaigns. // After campaign is created, the field can not be changed. - google.ads.googleads.v14.enums.AdvertisingChannelSubTypeEnum + google.ads.googleads.v17.enums.AdvertisingChannelSubTypeEnum .AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE]; @@ -383,7 +403,7 @@ message Campaign { // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v14.common.CustomParameter + repeated google.ads.googleads.v17.common.CustomParameter url_custom_parameters = 12; // The Local Services Campaign related settings. @@ -392,12 +412,12 @@ message Campaign { // Settings for Travel campaign. TravelCampaignSettings travel_campaign_settings = 85; - // Settings for Discovery campaign. - DiscoveryCampaignSettings discovery_campaign_settings = 87; + // Settings for Demand Gen campaign. + DemandGenCampaignSettings demand_gen_campaign_settings = 91; // Settings for Real-Time Bidding, a feature only available for campaigns // targeting the Ad Exchange network. - google.ads.googleads.v14.common.RealTimeBiddingSetting + google.ads.googleads.v17.common.RealTimeBiddingSetting real_time_bidding_setting = 39; // The network settings for the campaign. @@ -413,7 +433,7 @@ message Campaign { ShoppingSetting shopping_setting = 36; // Setting for targeting related features. - google.ads.googleads.v14.common.TargetingSetting targeting_setting = 43; + google.ads.googleads.v17.common.TargetingSetting targeting_setting = 43; // Immutable. Setting for audience related features. optional AudienceSetting audience_setting = 73 @@ -437,7 +457,7 @@ message Campaign { ]; // Output only. The type of campaign: normal, draft, or experiment. - google.ads.googleads.v14.enums.CampaignExperimentTypeEnum + google.ads.googleads.v17.enums.CampaignExperimentTypeEnum .CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -464,7 +484,7 @@ message Campaign { // create a portfolio bidding strategy. // // This field is read-only. - google.ads.googleads.v14.enums.BiddingStrategyTypeEnum.BiddingStrategyType + google.ads.googleads.v17.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Resource name of AccessibleBiddingStrategy, a read-only view @@ -502,13 +522,14 @@ message Campaign { optional string final_url_suffix = 65; // A list that limits how often each user will see this campaign's ads. - repeated google.ads.googleads.v14.common.FrequencyCapEntry frequency_caps = + repeated google.ads.googleads.v17.common.FrequencyCapEntry frequency_caps = 40; - // Output only. 3-Tier Brand Safety setting for the campaign. - google.ads.googleads.v14.enums.BrandSafetySuitabilityEnum - .BrandSafetySuitability video_brand_safety_suitability = 42 - [(google.api.field_behavior) = OUTPUT_ONLY]; + // Brand Safety setting at the individual campaign level. Allows for selecting + // an inventory type to show your ads on content that is the right fit for + // your brand. See https://support.google.com/google-ads/answer/7515513. + google.ads.googleads.v17.enums.BrandSafetySuitabilityEnum + .BrandSafetySuitability video_brand_safety_suitability = 42; // Describes how unbranded pharma ads will be displayed. VanityPharma vanity_pharma = 44; @@ -529,7 +550,7 @@ message Campaign { [(google.api.field_behavior) = OUTPUT_ONLY]; // Payment mode for the campaign. - google.ads.googleads.v14.enums.PaymentModeEnum.PaymentMode payment_mode = 52; + google.ads.googleads.v17.enums.PaymentModeEnum.PaymentMode payment_mode = 52; // Output only. Optimization score of the campaign. // @@ -548,7 +569,7 @@ message Campaign { // The asset field types that should be excluded from this campaign. Asset // links with these field types will not be inherited by this campaign from // the upper level. - repeated google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType + repeated google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69; // The asset set types that should be excluded from this campaign. Asset set @@ -561,7 +582,7 @@ message Campaign { // and all Location Extension (LE) and Affiliate Location Extensions (ALE) // will not be served under this campaign. // Only LOCATION_SYNC is currently supported. - repeated google.ads.googleads.v14.enums.AssetSetTypeEnum.AssetSetType + repeated google.ads.googleads.v17.enums.AssetSetTypeEnum.AssetSetType excluded_parent_asset_set_types = 80; // Represents opting out of URL expansion to more targeted URLs. If opted out @@ -587,9 +608,19 @@ message Campaign { // Immutable. Listing type of ads served for this campaign. // Field is restricted for usage with Performance Max campaigns. - optional google.ads.googleads.v14.enums.ListingTypeEnum.ListingType + optional google.ads.googleads.v17.enums.ListingTypeEnum.ListingType listing_type = 86 [(google.api.field_behavior) = IMMUTABLE]; + // Contains the opt-in/out status of each AssetAutomationType. + // See documentation of each asset automation type enum for default + // opt in/out behavior. + repeated AssetAutomationSetting asset_automation_settings = 88; + + // Keyword match type of Campaign. Set to BROAD to set broad matching for all + // keywords in a campaign. + google.ads.googleads.v17.enums.CampaignKeywordMatchTypeEnum + .CampaignKeywordMatchType keyword_match_type = 90; + // The bidding strategy for the campaign. // // Must be either portfolio (created through BiddingStrategy service) or @@ -602,59 +633,59 @@ message Campaign { // Commission is an automatic bidding strategy in which the advertiser pays // a certain portion of the conversion value. - google.ads.googleads.v14.common.Commission commission = 49; + google.ads.googleads.v17.common.Commission commission = 49; // Standard Manual CPA bidding strategy. // Manual bidding strategy that allows advertiser to set the bid per // advertiser-specified action. Supported only for Local Services campaigns. - google.ads.googleads.v14.common.ManualCpa manual_cpa = 74; + google.ads.googleads.v17.common.ManualCpa manual_cpa = 74; // Standard Manual CPC bidding strategy. // Manual click-based bidding where user pays per click. - google.ads.googleads.v14.common.ManualCpc manual_cpc = 24; + google.ads.googleads.v17.common.ManualCpc manual_cpc = 24; // Standard Manual CPM bidding strategy. // Manual impression-based bidding where user pays per thousand // impressions. - google.ads.googleads.v14.common.ManualCpm manual_cpm = 25; + google.ads.googleads.v17.common.ManualCpm manual_cpm = 25; // A bidding strategy that pays a configurable amount per video view. - google.ads.googleads.v14.common.ManualCpv manual_cpv = 37; + google.ads.googleads.v17.common.ManualCpv manual_cpv = 37; // Standard Maximize Conversions bidding strategy that automatically // maximizes number of conversions while spending your budget. - google.ads.googleads.v14.common.MaximizeConversions maximize_conversions = + google.ads.googleads.v17.common.MaximizeConversions maximize_conversions = 30; // Standard Maximize Conversion Value bidding strategy that automatically // sets bids to maximize revenue while spending your budget. - google.ads.googleads.v14.common.MaximizeConversionValue + google.ads.googleads.v17.common.MaximizeConversionValue maximize_conversion_value = 31; // Standard Target CPA bidding strategy that automatically sets bids to // help get as many conversions as possible at the target // cost-per-acquisition (CPA) you set. - google.ads.googleads.v14.common.TargetCpa target_cpa = 26; + google.ads.googleads.v17.common.TargetCpa target_cpa = 26; // Target Impression Share bidding strategy. An automated bidding strategy // that sets bids to achieve a chosen percentage of impressions. - google.ads.googleads.v14.common.TargetImpressionShare + google.ads.googleads.v17.common.TargetImpressionShare target_impression_share = 48; // Standard Target ROAS bidding strategy that automatically maximizes // revenue while averaging a specific target return on ad spend (ROAS). - google.ads.googleads.v14.common.TargetRoas target_roas = 29; + google.ads.googleads.v17.common.TargetRoas target_roas = 29; // Standard Target Spend bidding strategy that automatically sets your bids // to help get as many clicks as possible within your budget. - google.ads.googleads.v14.common.TargetSpend target_spend = 27; + google.ads.googleads.v17.common.TargetSpend target_spend = 27; // Standard Percent Cpc bidding strategy where bids are a fraction of the // advertised price for some good or service. - google.ads.googleads.v14.common.PercentCpc percent_cpc = 34; + google.ads.googleads.v17.common.PercentCpc percent_cpc = 34; // A bidding strategy that automatically optimizes cost per thousand // impressions. - google.ads.googleads.v14.common.TargetCpm target_cpm = 41; + google.ads.googleads.v17.common.TargetCpm target_cpm = 41; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/campaign_aggregate_asset_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_aggregate_asset_view.proto new file mode 100644 index 000000000..5f0ead96f --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_aggregate_asset_view.proto @@ -0,0 +1,75 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAggregateAssetViewProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the CampaignAggregateAsset resource. + +// A campaign-level aggregate asset view that shows where the asset is linked, +// performamce of the asset and stats. +message CampaignAggregateAssetView { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAggregateAssetView" + pattern: "customers/{customer_id}/campaignAggregateAssetViews/{campaign_id}~{asset_id}~{asset_link_source}~{field_type}" + }; + + // Output only. The resource name of the campaign aggregate asset view. + // Campaign aggregate asset view resource names have the form: + // + // `customers/{customer_id}/campaignAggregateAssetViews/{Campaign.campaign_id}~{Asset.asset_id}~{AssetLinkSource.asset_link_source}~{AssetFieldType.field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAggregateAssetView" + } + ]; + + // Output only. Campaign in which the asset served. + optional string campaign = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the asset. + optional string asset = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } + ]; + + // Output only. Source of the asset link. + optional google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource + asset_source = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. FieldType of the asset. + optional google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType + field_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_asset.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_asset.proto similarity index 74% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_asset.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_asset.proto index 4e059eef0..8a849d984 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_asset.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_policy.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/asset_link_status.proto"; -import "google/ads/googleads/v14/enums/asset_source.proto"; +import "google/ads/googleads/v17/common/asset_policy.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/asset_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CampaignAsset resource. @@ -70,15 +70,15 @@ message CampaignAsset { // Immutable. Role that the asset takes under the linked campaign. // Required. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Source of the campaign asset link. - google.ads.googleads.v14.enums.AssetSourceEnum.AssetSource source = 8 + google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource source = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the campaign asset. - google.ads.googleads.v14.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + google.ads.googleads.v17.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -86,18 +86,18 @@ message CampaignAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v14.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v17.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v14.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v17.common.AssetLinkPrimaryStatusDetails primary_status_details = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v14.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v17.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_asset_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_asset_set.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_asset_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_asset_set.proto index 094350391..62dd4aedc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_asset_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/asset_set_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_set_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CampaignAsset resource. @@ -67,6 +67,6 @@ message CampaignAssetSet { ]; // Output only. The status of the campaign asset set asset. Read-only. - google.ads.googleads.v14.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus + google.ads.googleads.v17.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_audience_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_audience_view.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_audience_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_audience_view.proto index c67fbcb82..514f2492a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_audience_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_audience_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignAudienceViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the campaign audience view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_bid_modifier.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_bid_modifier.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_bid_modifier.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_bid_modifier.proto index 989334670..d3a18d130 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_bid_modifier.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_bid_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignBidModifierProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Campaign Bid Modifier resource. @@ -71,7 +71,7 @@ message CampaignBidModifier { oneof criterion { // Immutable. Criterion for interaction type. Only supported for search // campaigns. - google.ads.googleads.v14.common.InteractionTypeInfo interaction_type = 5 + google.ads.googleads.v17.common.InteractionTypeInfo interaction_type = 5 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_budget.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_budget.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_budget.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_budget.proto index 2b9771ec8..a27d3a8a8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_budget.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_budget.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/budget_delivery_method.proto"; -import "google/ads/googleads/v14/enums/budget_period.proto"; -import "google/ads/googleads/v14/enums/budget_status.proto"; -import "google/ads/googleads/v14/enums/budget_type.proto"; +import "google/ads/googleads/v17/enums/budget_delivery_method.proto"; +import "google/ads/googleads/v17/enums/budget_period.proto"; +import "google/ads/googleads/v17/enums/budget_status.proto"; +import "google/ads/googleads/v17/enums/budget_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignBudgetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Budget resource. @@ -82,14 +82,14 @@ message CampaignBudget { optional int64 total_amount_micros = 22; // Output only. The status of this campaign budget. This field is read-only. - google.ads.googleads.v14.enums.BudgetStatusEnum.BudgetStatus status = 6 + google.ads.googleads.v17.enums.BudgetStatusEnum.BudgetStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // The delivery method that determines the rate at which the campaign budget // is spent. // // Defaults to STANDARD if unspecified in a create operation. - google.ads.googleads.v14.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod + google.ads.googleads.v17.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7; // Specifies whether the budget is explicitly shared. Defaults to true if @@ -132,7 +132,7 @@ message CampaignBudget { // Immutable. Period over which to spend the budget. Defaults to DAILY if not // specified. - google.ads.googleads.v14.enums.BudgetPeriodEnum.BudgetPeriod period = 13 + google.ads.googleads.v17.enums.BudgetPeriodEnum.BudgetPeriod period = 13 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The estimated change in weekly clicks if the recommended @@ -165,7 +165,7 @@ message CampaignBudget { [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The type of the campaign budget. - google.ads.googleads.v14.enums.BudgetTypeEnum.BudgetType type = 18 + google.ads.googleads.v17.enums.BudgetTypeEnum.BudgetType type = 18 [(google.api.field_behavior) = IMMUTABLE]; // ID of the portfolio bidding strategy that this shared campaign budget diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_conversion_goal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_conversion_goal.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_conversion_goal.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_conversion_goal.proto index 0a0440db2..e59ce94c0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_conversion_goal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_conversion_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/conversion_action_category.proto"; -import "google/ads/googleads/v14/enums/conversion_origin.proto"; +import "google/ads/googleads/v17/enums/conversion_action_category.proto"; +import "google/ads/googleads/v17/enums/conversion_origin.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignConversionGoalProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // The biddability setting for the specified campaign only for all // conversion actions with a matching category and origin. @@ -59,11 +59,11 @@ message CampaignConversionGoal { ]; // The conversion category of this campaign conversion goal. - google.ads.googleads.v14.enums.ConversionActionCategoryEnum + google.ads.googleads.v17.enums.ConversionActionCategoryEnum .ConversionActionCategory category = 3; // The conversion origin of this campaign conversion goal. - google.ads.googleads.v14.enums.ConversionOriginEnum.ConversionOrigin origin = + google.ads.googleads.v17.enums.ConversionOriginEnum.ConversionOrigin origin = 4; // The biddability of the campaign conversion goal. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_criterion.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_criterion.proto similarity index 66% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_criterion.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_criterion.proto index 7db609a9d..2b2e4b223 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/campaign_criterion_status.proto"; -import "google/ads/googleads/v14/enums/criterion_type.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/campaign_criterion_status.proto"; +import "google/ads/googleads/v17/enums/criterion_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Campaign Criterion resource. @@ -78,11 +78,11 @@ message CampaignCriterion { optional bool negative = 40 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The type of the criterion. - google.ads.googleads.v14.enums.CriterionTypeEnum.CriterionType type = 6 + google.ads.googleads.v17.enums.CriterionTypeEnum.CriterionType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // The status of the criterion. - google.ads.googleads.v14.enums.CampaignCriterionStatusEnum + google.ads.googleads.v17.enums.CampaignCriterionStatusEnum .CampaignCriterionStatus status = 35; // The campaign criterion. @@ -90,130 +90,131 @@ message CampaignCriterion { // Exactly one must be set. oneof criterion { // Immutable. Keyword. - google.ads.googleads.v14.common.KeywordInfo keyword = 8 + google.ads.googleads.v17.common.KeywordInfo keyword = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v14.common.PlacementInfo placement = 9 + google.ads.googleads.v17.common.PlacementInfo placement = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile app category. - google.ads.googleads.v14.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v17.common.MobileAppCategoryInfo mobile_app_category = 10 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile application. - google.ads.googleads.v14.common.MobileApplicationInfo mobile_application = + google.ads.googleads.v17.common.MobileApplicationInfo mobile_application = 11 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location. - google.ads.googleads.v14.common.LocationInfo location = 12 + google.ads.googleads.v17.common.LocationInfo location = 12 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Device. - google.ads.googleads.v14.common.DeviceInfo device = 13 + google.ads.googleads.v17.common.DeviceInfo device = 13 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Ad Schedule. - google.ads.googleads.v14.common.AdScheduleInfo ad_schedule = 15 + google.ads.googleads.v17.common.AdScheduleInfo ad_schedule = 15 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Age range. - google.ads.googleads.v14.common.AgeRangeInfo age_range = 16 + google.ads.googleads.v17.common.AgeRangeInfo age_range = 16 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Gender. - google.ads.googleads.v14.common.GenderInfo gender = 17 + google.ads.googleads.v17.common.GenderInfo gender = 17 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Income range. - google.ads.googleads.v14.common.IncomeRangeInfo income_range = 18 + google.ads.googleads.v17.common.IncomeRangeInfo income_range = 18 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Parental status. - google.ads.googleads.v14.common.ParentalStatusInfo parental_status = 19 + google.ads.googleads.v17.common.ParentalStatusInfo parental_status = 19 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. - google.ads.googleads.v14.common.UserListInfo user_list = 22 + google.ads.googleads.v17.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v14.common.YouTubeVideoInfo youtube_video = 20 + google.ads.googleads.v17.common.YouTubeVideoInfo youtube_video = 20 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v14.common.YouTubeChannelInfo youtube_channel = 21 + google.ads.googleads.v17.common.YouTubeChannelInfo youtube_channel = 21 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Proximity. - google.ads.googleads.v14.common.ProximityInfo proximity = 23 + google.ads.googleads.v17.common.ProximityInfo proximity = 23 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Topic. - google.ads.googleads.v14.common.TopicInfo topic = 24 + google.ads.googleads.v17.common.TopicInfo topic = 24 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Listing scope. - google.ads.googleads.v14.common.ListingScopeInfo listing_scope = 25 + google.ads.googleads.v17.common.ListingScopeInfo listing_scope = 25 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Language. - google.ads.googleads.v14.common.LanguageInfo language = 26 + google.ads.googleads.v17.common.LanguageInfo language = 26 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. IpBlock. - google.ads.googleads.v14.common.IpBlockInfo ip_block = 27 + google.ads.googleads.v17.common.IpBlockInfo ip_block = 27 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. ContentLabel. - google.ads.googleads.v14.common.ContentLabelInfo content_label = 28 + google.ads.googleads.v17.common.ContentLabelInfo content_label = 28 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Carrier. - google.ads.googleads.v14.common.CarrierInfo carrier = 29 + google.ads.googleads.v17.common.CarrierInfo carrier = 29 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User Interest. - google.ads.googleads.v14.common.UserInterestInfo user_interest = 30 + google.ads.googleads.v17.common.UserInterestInfo user_interest = 30 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Webpage. - google.ads.googleads.v14.common.WebpageInfo webpage = 31 + google.ads.googleads.v17.common.WebpageInfo webpage = 31 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Operating system version. - google.ads.googleads.v14.common.OperatingSystemVersionInfo + google.ads.googleads.v17.common.OperatingSystemVersionInfo operating_system_version = 32 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile Device. - google.ads.googleads.v14.common.MobileDeviceInfo mobile_device = 33 + google.ads.googleads.v17.common.MobileDeviceInfo mobile_device = 33 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location Group - google.ads.googleads.v14.common.LocationGroupInfo location_group = 34 + google.ads.googleads.v17.common.LocationGroupInfo location_group = 34 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Affinity. - google.ads.googleads.v14.common.CustomAffinityInfo custom_affinity = 36 + google.ads.googleads.v17.common.CustomAffinityInfo custom_affinity = 36 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Audience - google.ads.googleads.v14.common.CustomAudienceInfo custom_audience = 41 + google.ads.googleads.v17.common.CustomAudienceInfo custom_audience = 41 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Combined Audience. - google.ads.googleads.v14.common.CombinedAudienceInfo combined_audience = 42 + google.ads.googleads.v17.common.CombinedAudienceInfo combined_audience = 42 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Smart Campaign Keyword Theme. - google.ads.googleads.v14.common.KeywordThemeInfo keyword_theme = 45 + google.ads.googleads.v17.common.KeywordThemeInfo keyword_theme = 45 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. GLS service campaign criterion. - google.ads.googleads.v14.common.LocalServiceIdInfo local_service_id = 46 + google.ads.googleads.v17.common.LocalServiceIdInfo local_service_id = 46 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Brand list campaign criterion. + google.ads.googleads.v17.common.BrandListInfo brand_list = 47 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_customizer.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_customizer.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_customizer.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_customizer.proto index 801baade1..410ed33d5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_customizer.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/customizer_value.proto"; -import "google/ads/googleads/v14/enums/customizer_value_status.proto"; +import "google/ads/googleads/v17/common/customizer_value.proto"; +import "google/ads/googleads/v17/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignCustomizerProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A customizer value for the associated CustomizerAttribute at the Campaign // level. @@ -68,11 +68,11 @@ message CampaignCustomizer { ]; // Output only. The status of the campaign customizer. - google.ads.googleads.v14.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v17.enums.CustomizerValueStatusEnum.CustomizerValueStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The value to associate with the customizer attribute at this // level. The value must be of the type specified for the CustomizerAttribute. - google.ads.googleads.v14.common.CustomizerValue value = 5 + google.ads.googleads.v17.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_draft.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_draft.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_draft.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_draft.proto index ad3afabd6..4cf3f9be4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_draft.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_draft.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/campaign_draft_status.proto"; +import "google/ads/googleads/v17/enums/campaign_draft_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Campaign Draft resource. @@ -85,7 +85,7 @@ message CampaignDraft { // Output only. The status of the campaign draft. This field is read-only. // // When a new campaign draft is added, the status defaults to PROPOSED. - google.ads.googleads.v14.enums.CampaignDraftStatusEnum.CampaignDraftStatus + google.ads.googleads.v17.enums.CampaignDraftStatusEnum.CampaignDraftStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Whether there is an experiment based on this draft currently diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_extension_setting.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_extension_setting.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_extension_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_extension_setting.proto index e2b749055..13cf95143 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_extension_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_extension_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/extension_setting_device.proto"; -import "google/ads/googleads/v14/enums/extension_type.proto"; +import "google/ads/googleads/v17/enums/extension_setting_device.proto"; +import "google/ads/googleads/v17/enums/extension_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CampaignExtensionSetting resource. @@ -51,7 +51,7 @@ message CampaignExtensionSetting { ]; // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v14.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v17.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The resource name of the campaign. The linked extension feed @@ -75,6 +75,6 @@ message CampaignExtensionSetting { }]; // The device for which the extensions will serve. Optional. - google.ads.googleads.v14.enums.ExtensionSettingDeviceEnum + google.ads.googleads.v17.enums.ExtensionSettingDeviceEnum .ExtensionSettingDevice device = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_feed.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_feed.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_feed.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_feed.proto index d8f26a1ae..29f123e06 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_feed.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/matching_function.proto"; -import "google/ads/googleads/v14/enums/feed_link_status.proto"; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/common/matching_function.proto"; +import "google/ads/googleads/v17/enums/feed_link_status.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignFeedProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CampaignFeed resource. @@ -67,16 +67,16 @@ message CampaignFeed { // Indicates which placeholder types the feed may populate under the connected // campaign. Required. - repeated google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + repeated google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_types = 4; // Matching function associated with the CampaignFeed. // The matching function is used to filter the set of feed items selected. // Required. - google.ads.googleads.v14.common.MatchingFunction matching_function = 5; + google.ads.googleads.v17.common.MatchingFunction matching_function = 5; // Output only. Status of the campaign feed. // This field is read-only. - google.ads.googleads.v14.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 + google.ads.googleads.v17.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_group.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_group.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_group.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_group.proto index 054785320..71de776e6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_group.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/campaign_group_status.proto"; +import "google/ads/googleads/v17/enums/campaign_group_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignGroupProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Campaign group resource. @@ -64,6 +64,6 @@ message CampaignGroup { // The status of the campaign group. // // When a new campaign group is added, the status defaults to ENABLED. - google.ads.googleads.v14.enums.CampaignGroupStatusEnum.CampaignGroupStatus + google.ads.googleads.v17.enums.CampaignGroupStatusEnum.CampaignGroupStatus status = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_label.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_label.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_label.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_label.proto index 46f3739d6..a53b5f4f7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignLabelProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the campaign label resource. diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto new file mode 100644 index 000000000..9cd872916 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto @@ -0,0 +1,77 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/lifecycle_goals.proto"; +import "google/ads/googleads/v17/enums/customer_acquisition_optimization_mode.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLifecycleGoalProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the campaign lifecycle resource. + +// Campaign level customer lifecycle goal settings. +message CampaignLifecycleGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignLifecycleGoal" + pattern: "customers/{customer_id}/campaignLifecycleGoals/{campaign_id}" + }; + + // Immutable. The resource name of the customer lifecycle goal of a campaign. + // + // `customers/{customer_id}/campaignLifecycleGoal/{campaign_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLifecycleGoal" + } + ]; + + // Output only. The campaign where the goal is attached. + string campaign = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The customer acquisition goal settings for the campaign. The + // customer acquisition goal is described in this article: + // https://support.google.com/google-ads/answer/12080169 + CustomerAcquisitionGoalSettings customer_acquisition_goal_settings = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The customer acquisition goal settings for the campaign. +message CustomerAcquisitionGoalSettings { + // Output only. Customer acquisition optimization mode of this campaign. + google.ads.googleads.v17.enums.CustomerAcquisitionOptimizationModeEnum + .CustomerAcquisitionOptimizationMode optimization_mode = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Campaign specific values for the customer acquisition goal. + google.ads.googleads.v17.common.LifecycleGoalValueSettings value_settings = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_search_term_insight.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_search_term_insight.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_search_term_insight.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_search_term_insight.proto index f84edf93a..1358b9fbc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_search_term_insight.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_search_term_insight.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignSearchTermInsightProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the campaign search term insight resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_shared_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_shared_set.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_shared_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_shared_set.proto index 067262ee1..a50a7ae56 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_shared_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_shared_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/campaign_shared_set_status.proto"; +import "google/ads/googleads/v17/enums/campaign_shared_set_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CampaignSharedSet resource. @@ -72,7 +72,7 @@ message CampaignSharedSet { ]; // Output only. The status of this campaign shared set. Read only. - google.ads.googleads.v14.enums.CampaignSharedSetStatusEnum + google.ads.googleads.v17.enums.CampaignSharedSetStatusEnum .CampaignSharedSetStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_simulation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_simulation.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/resources/campaign_simulation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/campaign_simulation.proto index d4ee3c017..ea14b1664 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/campaign_simulation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/campaign_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/simulation.proto"; -import "google/ads/googleads/v14/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v14/enums/simulation_type.proto"; +import "google/ads/googleads/v17/common/simulation.proto"; +import "google/ads/googleads/v17/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v17/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignSimulationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the campaign simulation resource. @@ -47,6 +47,7 @@ option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; // * SHOPPING - BUDGET - UNIFORM // * SHOPPING - TARGET_ROAS - UNIFORM // * MULTI_CHANNEL - TARGET_CPA - UNIFORM +// * MULTI_CHANNEL - TARGET_ROAS - UNIFORM // * DISCOVERY - TARGET_CPA - DEFAULT // * DISPLAY - TARGET_CPA - UNIFORM // * PERFORMANCE_MAX - TARGET_CPA - UNIFORM @@ -73,11 +74,11 @@ message CampaignSimulation { int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v14.enums.SimulationTypeEnum.SimulationType type = 3 + google.ads.googleads.v17.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v14.enums.SimulationModificationMethodEnum + google.ads.googleads.v17.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -92,25 +93,25 @@ message CampaignSimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v14.common.CpcBidSimulationPointList + google.ads.googleads.v17.common.CpcBidSimulationPointList cpc_bid_point_list = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is TARGET_CPA. - google.ads.googleads.v14.common.TargetCpaSimulationPointList + google.ads.googleads.v17.common.TargetCpaSimulationPointList target_cpa_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is TARGET_ROAS. - google.ads.googleads.v14.common.TargetRoasSimulationPointList + google.ads.googleads.v17.common.TargetRoasSimulationPointList target_roas_point_list = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is // TARGET_IMPRESSION_SHARE. - google.ads.googleads.v14.common.TargetImpressionShareSimulationPointList + google.ads.googleads.v17.common.TargetImpressionShareSimulationPointList target_impression_share_point_list = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Simulation points if the simulation type is BUDGET. - google.ads.googleads.v14.common.BudgetSimulationPointList + google.ads.googleads.v17.common.BudgetSimulationPointList budget_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/carrier_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/carrier_constant.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/carrier_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/carrier_constant.proto index 0e5cc6918..628a564ae 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/carrier_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/carrier_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CarrierConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Carrier constant resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/change_event.proto b/third_party/googleapis/google/ads/googleads/v17/resources/change_event.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/resources/change_event.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/change_event.proto index a4d7d5b5a..e486e6862 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/change_event.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/change_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,42 +14,42 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/enums/change_client_type.proto"; -import "google/ads/googleads/v14/enums/change_event_resource_type.proto"; -import "google/ads/googleads/v14/enums/resource_change_operation.proto"; -import "google/ads/googleads/v14/resources/ad.proto"; -import "google/ads/googleads/v14/resources/ad_group.proto"; -import "google/ads/googleads/v14/resources/ad_group_ad.proto"; -import "google/ads/googleads/v14/resources/ad_group_asset.proto"; -import "google/ads/googleads/v14/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v14/resources/ad_group_feed.proto"; -import "google/ads/googleads/v14/resources/asset.proto"; -import "google/ads/googleads/v14/resources/asset_set.proto"; -import "google/ads/googleads/v14/resources/asset_set_asset.proto"; -import "google/ads/googleads/v14/resources/campaign.proto"; -import "google/ads/googleads/v14/resources/campaign_asset.proto"; -import "google/ads/googleads/v14/resources/campaign_asset_set.proto"; -import "google/ads/googleads/v14/resources/campaign_budget.proto"; -import "google/ads/googleads/v14/resources/campaign_criterion.proto"; -import "google/ads/googleads/v14/resources/campaign_feed.proto"; -import "google/ads/googleads/v14/resources/customer_asset.proto"; -import "google/ads/googleads/v14/resources/feed.proto"; -import "google/ads/googleads/v14/resources/feed_item.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/change_client_type.proto"; +import "google/ads/googleads/v17/enums/change_event_resource_type.proto"; +import "google/ads/googleads/v17/enums/resource_change_operation.proto"; +import "google/ads/googleads/v17/resources/ad.proto"; +import "google/ads/googleads/v17/resources/ad_group.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad.proto"; +import "google/ads/googleads/v17/resources/ad_group_asset.proto"; +import "google/ads/googleads/v17/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v17/resources/ad_group_feed.proto"; +import "google/ads/googleads/v17/resources/asset.proto"; +import "google/ads/googleads/v17/resources/asset_set.proto"; +import "google/ads/googleads/v17/resources/asset_set_asset.proto"; +import "google/ads/googleads/v17/resources/campaign.proto"; +import "google/ads/googleads/v17/resources/campaign_asset.proto"; +import "google/ads/googleads/v17/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v17/resources/campaign_budget.proto"; +import "google/ads/googleads/v17/resources/campaign_criterion.proto"; +import "google/ads/googleads/v17/resources/campaign_feed.proto"; +import "google/ads/googleads/v17/resources/customer_asset.proto"; +import "google/ads/googleads/v17/resources/feed.proto"; +import "google/ads/googleads/v17/resources/feed_item.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ChangeEventProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Change Event resource. @@ -149,7 +149,7 @@ message ChangeEvent { // Output only. The type of the changed resource. This dictates what resource // will be set in old_resource and new_resource. - google.ads.googleads.v14.enums.ChangeEventResourceTypeEnum + google.ads.googleads.v17.enums.ChangeEventResourceTypeEnum .ChangeEventResourceType change_resource_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -157,7 +157,7 @@ message ChangeEvent { string change_resource_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where the change was made through. - google.ads.googleads.v14.enums.ChangeClientTypeEnum.ChangeClientType + google.ads.googleads.v17.enums.ChangeClientTypeEnum.ChangeClientType client_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The email of the user who made this change. @@ -172,7 +172,7 @@ message ChangeEvent { ChangedResource new_resource = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The operation on the changed resource. - google.ads.googleads.v14.enums.ResourceChangeOperationEnum + google.ads.googleads.v17.enums.ResourceChangeOperationEnum .ResourceChangeOperation resource_change_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/change_status.proto b/third_party/googleapis/google/ads/googleads/v17/resources/change_status.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/resources/change_status.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/change_status.proto index efb93be23..f94b5771b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/change_status.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/change_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/change_status_operation.proto"; -import "google/ads/googleads/v14/enums/change_status_resource_type.proto"; +import "google/ads/googleads/v17/enums/change_status_operation.proto"; +import "google/ads/googleads/v17/enums/change_status_resource_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Change Status resource. @@ -59,7 +59,7 @@ message ChangeStatus { // Output only. Represents the type of the changed resource. This dictates // what fields will be set. For example, for AD_GROUP, campaign and ad_group // fields will be set. - google.ads.googleads.v14.enums.ChangeStatusResourceTypeEnum + google.ads.googleads.v17.enums.ChangeStatusResourceTypeEnum .ChangeStatusResourceType resource_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -80,7 +80,7 @@ message ChangeStatus { ]; // Output only. Represents the status of the changed resource. - google.ads.googleads.v14.enums.ChangeStatusOperationEnum.ChangeStatusOperation + google.ads.googleads.v17.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The AdGroupAd affected by this change. diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/channel_aggregate_asset_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/channel_aggregate_asset_view.proto new file mode 100644 index 000000000..59a1a3edb --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/channel_aggregate_asset_view.proto @@ -0,0 +1,73 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ChannelAggregateAssetViewProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the ChannelAggregateAsset resource. + +// A channel-level aggregate asset view that shows where the asset is linked, +// performamce of the asset and stats. +message ChannelAggregateAssetView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ChannelAggregateAssetView" + pattern: "customers/{customer_id}/channelAggregateAssetViews/{advertising_channel_type}~{asset_id}~{asset_source}~{field_type}" + }; + + // Output only. The resource name of the channel aggregate asset view. + // Channel aggregate asset view resource names have the form: + // + // `customers/{customer_id}/channelAggregateAssetViews/{ChannelAssetV2.advertising_channel_type}~{ChannelAssetV2.asset_id}~{ChannelAssetV2.asset_source}~{ChannelAssetV2.field_type}"` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ChannelAggregateAssetView" + } + ]; + + // Output only. Channel in which the asset served. + optional google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum + .AdvertisingChannelType advertising_channel_type = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the asset. + optional string asset = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } + ]; + + // Output only. Source of the asset link. + optional google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource + asset_source = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. FieldType of the asset. + optional google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType + field_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/click_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/click_view.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/click_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/click_view.proto index d9d31547f..79fc1afe3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/click_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/click_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/click_location.proto"; -import "google/ads/googleads/v14/common/criteria.proto"; +import "google/ads/googleads/v17/common/click_location.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ClickViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ClickView resource. @@ -60,12 +60,12 @@ message ClickView { // Output only. The location criteria matching the area of interest associated // with the impression. - google.ads.googleads.v14.common.ClickLocation area_of_interest = 3 + google.ads.googleads.v17.common.ClickLocation area_of_interest = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The location criteria matching the location of presence // associated with the impression. - google.ads.googleads.v14.common.ClickLocation location_of_presence = 4 + google.ads.googleads.v17.common.ClickLocation location_of_presence = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Page number in search results where the ad was shown. @@ -105,6 +105,6 @@ message ClickView { ]; // Output only. Basic information about the associated keyword, if it exists. - google.ads.googleads.v14.common.KeywordInfo keyword_info = 14 + google.ads.googleads.v17.common.KeywordInfo keyword_info = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/combined_audience.proto b/third_party/googleapis/google/ads/googleads/v17/resources/combined_audience.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/combined_audience.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/combined_audience.proto index 2ce34f9e8..52e4b8fd5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/combined_audience.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/combined_audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/combined_audience_status.proto"; +import "google/ads/googleads/v17/enums/combined_audience_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CombinedAudienceProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Combined Audience resource. @@ -55,7 +55,7 @@ message CombinedAudience { // Output only. Status of this combined audience. Indicates whether the // combined audience is enabled or removed. - google.ads.googleads.v14.enums.CombinedAudienceStatusEnum + google.ads.googleads.v17.enums.CombinedAudienceStatusEnum .CombinedAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_action.proto b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_action.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/conversion_action.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/conversion_action.proto index b97cf00e4..83ef3e69c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_action.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_action.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,28 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/common/tag_snippet.proto"; -import "google/ads/googleads/v14/enums/attribution_model.proto"; -import "google/ads/googleads/v14/enums/conversion_action_category.proto"; -import "google/ads/googleads/v14/enums/conversion_action_counting_type.proto"; -import "google/ads/googleads/v14/enums/conversion_action_status.proto"; -import "google/ads/googleads/v14/enums/conversion_action_type.proto"; -import "google/ads/googleads/v14/enums/conversion_origin.proto"; -import "google/ads/googleads/v14/enums/data_driven_model_status.proto"; -import "google/ads/googleads/v14/enums/mobile_app_vendor.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/tag_snippet.proto"; +import "google/ads/googleads/v17/enums/attribution_model.proto"; +import "google/ads/googleads/v17/enums/conversion_action_category.proto"; +import "google/ads/googleads/v17/enums/conversion_action_counting_type.proto"; +import "google/ads/googleads/v17/enums/conversion_action_status.proto"; +import "google/ads/googleads/v17/enums/conversion_action_type.proto"; +import "google/ads/googleads/v17/enums/conversion_origin.proto"; +import "google/ads/googleads/v17/enums/data_driven_model_status.proto"; +import "google/ads/googleads/v17/enums/mobile_app_vendor.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionActionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Conversion Action resource. @@ -49,12 +49,12 @@ message ConversionAction { // Settings related to this conversion action's attribution model. message AttributionModelSettings { // The attribution model type of this conversion action. - google.ads.googleads.v14.enums.AttributionModelEnum.AttributionModel + google.ads.googleads.v17.enums.AttributionModelEnum.AttributionModel attribution_model = 1; // Output only. The status of the data-driven attribution model for the // conversion action. - google.ads.googleads.v14.enums.DataDrivenModelStatusEnum + google.ads.googleads.v17.enums.DataDrivenModelStatusEnum .DataDrivenModelStatus data_driven_model_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -135,15 +135,15 @@ message ConversionAction { optional string name = 22; // The status of this conversion action for conversion event accrual. - google.ads.googleads.v14.enums.ConversionActionStatusEnum + google.ads.googleads.v17.enums.ConversionActionStatusEnum .ConversionActionStatus status = 4; // Immutable. The type of this conversion action. - google.ads.googleads.v14.enums.ConversionActionTypeEnum.ConversionActionType + google.ads.googleads.v17.enums.ConversionActionTypeEnum.ConversionActionType type = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The conversion origin of this conversion action. - google.ads.googleads.v14.enums.ConversionOriginEnum.ConversionOrigin origin = + google.ads.googleads.v17.enums.ConversionOriginEnum.ConversionOrigin origin = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; // If a conversion action's primary_for_goal bit is false, the conversion @@ -159,7 +159,7 @@ message ConversionAction { optional bool primary_for_goal = 31; // The category of conversions reported for this conversion action. - google.ads.googleads.v14.enums.ConversionActionCategoryEnum + google.ads.googleads.v17.enums.ConversionActionCategoryEnum .ConversionActionCategory category = 6; // Output only. The resource name of the conversion action owner customer, or @@ -188,14 +188,14 @@ message ConversionAction { ValueSettings value_settings = 11; // How to count conversion events for the conversion action. - google.ads.googleads.v14.enums.ConversionActionCountingTypeEnum + google.ads.googleads.v17.enums.ConversionActionCountingTypeEnum .ConversionActionCountingType counting_type = 12; // Settings related to this conversion action's attribution model. AttributionModelSettings attribution_model_settings = 13; // Output only. The snippets used for tracking conversions. - repeated google.ads.googleads.v14.common.TagSnippet tag_snippets = 14 + repeated google.ads.googleads.v17.common.TagSnippet tag_snippets = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; // The phone call duration in seconds after which a conversion should be @@ -208,7 +208,7 @@ message ConversionAction { optional string app_id = 28; // Output only. Mobile app vendor for an app conversion action. - google.ads.googleads.v14.enums.MobileAppVendorEnum.MobileAppVendor + google.ads.googleads.v17.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Firebase settings for Firebase conversion types. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_custom_variable.proto b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_custom_variable.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/conversion_custom_variable.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/conversion_custom_variable.proto index 6e9a4aad6..665072c40 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_custom_variable.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_custom_variable.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/conversion_custom_variable_status.proto"; +import "google/ads/googleads/v17/enums/conversion_custom_variable_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Conversion Custom Variable resource. @@ -72,7 +72,7 @@ message ConversionCustomVariable { ]; // The status of the conversion custom variable for conversion event accrual. - google.ads.googleads.v14.enums.ConversionCustomVariableStatusEnum + google.ads.googleads.v17.enums.ConversionCustomVariableStatusEnum .ConversionCustomVariableStatus status = 5; // Output only. The resource name of the customer that owns the conversion diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_goal_campaign_config.proto b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_goal_campaign_config.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/conversion_goal_campaign_config.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/conversion_goal_campaign_config.proto index 7fa2d6ed4..8e1a09705 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_goal_campaign_config.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_goal_campaign_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/goal_config_level.proto"; +import "google/ads/googleads/v17/enums/goal_config_level.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionGoalCampaignConfigProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Conversion goal settings for a Campaign. message ConversionGoalCampaignConfig { @@ -57,7 +57,7 @@ message ConversionGoalCampaignConfig { ]; // The level of goal config the campaign is using. - google.ads.googleads.v14.enums.GoalConfigLevelEnum.GoalConfigLevel + google.ads.googleads.v17.enums.GoalConfigLevelEnum.GoalConfigLevel goal_config_level = 3; // The custom conversion goal the campaign is using for optimization. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_value_rule.proto b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_value_rule.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/resources/conversion_value_rule.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/conversion_value_rule.proto index dd8aec413..502126414 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_value_rule.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_value_rule.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/conversion_value_rule_status.proto"; -import "google/ads/googleads/v14/enums/value_rule_device_type.proto"; -import "google/ads/googleads/v14/enums/value_rule_geo_location_match_type.proto"; -import "google/ads/googleads/v14/enums/value_rule_operation.proto"; +import "google/ads/googleads/v17/enums/conversion_value_rule_status.proto"; +import "google/ads/googleads/v17/enums/value_rule_device_type.proto"; +import "google/ads/googleads/v17/enums/value_rule_geo_location_match_type.proto"; +import "google/ads/googleads/v17/enums/value_rule_operation.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Conversion Value Rule resource. @@ -44,7 +44,7 @@ message ConversionValueRule { // Action applied when rule is applied. message ValueRuleAction { // Specifies applied operation. - google.ads.googleads.v14.enums.ValueRuleOperationEnum.ValueRuleOperation + google.ads.googleads.v17.enums.ValueRuleOperationEnum.ValueRuleOperation operation = 1; // Specifies applied value. @@ -60,7 +60,7 @@ message ConversionValueRule { }]; // Excluded Geo location match type. - google.ads.googleads.v14.enums.ValueRuleGeoLocationMatchTypeEnum + google.ads.googleads.v17.enums.ValueRuleGeoLocationMatchTypeEnum .ValueRuleGeoLocationMatchType excluded_geo_match_type = 2; // Geo locations that advertisers want to include. @@ -70,23 +70,20 @@ message ConversionValueRule { }]; // Included Geo location match type. - google.ads.googleads.v14.enums.ValueRuleGeoLocationMatchTypeEnum + google.ads.googleads.v17.enums.ValueRuleGeoLocationMatchTypeEnum .ValueRuleGeoLocationMatchType geo_match_type = 4; } // Condition on Device dimension. message ValueRuleDeviceCondition { // Value for device type condition. - repeated google.ads.googleads.v14.enums.ValueRuleDeviceTypeEnum + repeated google.ads.googleads.v17.enums.ValueRuleDeviceTypeEnum .ValueRuleDeviceType device_types = 1; } // Condition on Audience dimension. message ValueRuleAudienceCondition { // User Lists. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. repeated string user_lists = 1 [(google.api.resource_reference) = { type: "googleads.googleapis.com/UserList" }]; @@ -138,6 +135,6 @@ message ConversionValueRule { ]; // The status of the conversion value rule. - google.ads.googleads.v14.enums.ConversionValueRuleStatusEnum + google.ads.googleads.v17.enums.ConversionValueRuleStatusEnum .ConversionValueRuleStatus status = 8; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_value_rule_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_value_rule_set.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/conversion_value_rule_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/conversion_value_rule_set.proto index 3ff7798e9..5800f81c9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/conversion_value_rule_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/conversion_value_rule_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/conversion_action_category.proto"; -import "google/ads/googleads/v14/enums/conversion_value_rule_set_status.proto"; -import "google/ads/googleads/v14/enums/value_rule_set_attachment_type.proto"; -import "google/ads/googleads/v14/enums/value_rule_set_dimension.proto"; +import "google/ads/googleads/v17/enums/conversion_action_category.proto"; +import "google/ads/googleads/v17/enums/conversion_value_rule_set_status.proto"; +import "google/ads/googleads/v17/enums/value_rule_set_attachment_type.proto"; +import "google/ads/googleads/v17/enums/value_rule_set_dimension.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Conversion Value Rule Set resource. @@ -67,7 +67,7 @@ message ConversionValueRuleSet { // When using value rule primary dimension segmentation, conversion values // will be segmented into the values adjusted by value rules and the original // values, if some value rules apply. - repeated google.ads.googleads.v14.enums.ValueRuleSetDimensionEnum + repeated google.ads.googleads.v17.enums.ValueRuleSetDimensionEnum .ValueRuleSetDimension dimensions = 4; // Output only. The resource name of the conversion value rule set's owner @@ -84,7 +84,7 @@ message ConversionValueRuleSet { // Immutable. Defines the scope where the conversion value rule set is // attached. - google.ads.googleads.v14.enums.ValueRuleSetAttachmentTypeEnum + google.ads.googleads.v17.enums.ValueRuleSetAttachmentTypeEnum .ValueRuleSetAttachmentType attachment_type = 6 [(google.api.field_behavior) = IMMUTABLE]; @@ -96,13 +96,13 @@ message ConversionValueRuleSet { // Output only. The status of the conversion value rule set. // ** Read-only ** - google.ads.googleads.v14.enums.ConversionValueRuleSetStatusEnum + google.ads.googleads.v17.enums.ConversionValueRuleSetStatusEnum .ConversionValueRuleSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The conversion action categories of the conversion value rule // set. - repeated google.ads.googleads.v14.enums.ConversionActionCategoryEnum + repeated google.ads.googleads.v17.enums.ConversionActionCategoryEnum .ConversionActionCategory conversion_action_categories = 9 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/currency_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/currency_constant.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/resources/currency_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/currency_constant.proto index 384577009..77c7d37b1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/currency_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/currency_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CurrencyConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Currency Constant resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/custom_audience.proto b/third_party/googleapis/google/ads/googleads/v17/resources/custom_audience.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/custom_audience.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/custom_audience.proto index 1261ea411..2b5605126 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/custom_audience.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/custom_audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/custom_audience_member_type.proto"; -import "google/ads/googleads/v14/enums/custom_audience_status.proto"; -import "google/ads/googleads/v14/enums/custom_audience_type.proto"; +import "google/ads/googleads/v17/enums/custom_audience_member_type.proto"; +import "google/ads/googleads/v17/enums/custom_audience_status.proto"; +import "google/ads/googleads/v17/enums/custom_audience_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Custom Audience resource. @@ -56,7 +56,7 @@ message CustomAudience { // Output only. Status of this custom audience. Indicates whether the custom // audience is enabled or removed. - google.ads.googleads.v14.enums.CustomAudienceStatusEnum.CustomAudienceStatus + google.ads.googleads.v17.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Name of the custom audience. It should be unique for all custom audiences @@ -67,7 +67,7 @@ message CustomAudience { // Type of the custom audience. // ("INTEREST" OR "PURCHASE_INTENT" is not allowed for newly created custom // audience but kept for existing audiences) - google.ads.googleads.v14.enums.CustomAudienceTypeEnum.CustomAudienceType + google.ads.googleads.v17.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5; // Description of this custom audience. @@ -83,7 +83,7 @@ message CustomAudience { // PLACE_CATEGORY or APP. It can only be created or removed but not changed. message CustomAudienceMember { // The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP. - google.ads.googleads.v14.enums.CustomAudienceMemberTypeEnum + google.ads.googleads.v17.enums.CustomAudienceMemberTypeEnum .CustomAudienceMemberType member_type = 1; // The CustomAudienceMember value. One field is populated depending on the diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/custom_conversion_goal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/custom_conversion_goal.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/custom_conversion_goal.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/custom_conversion_goal.proto index 968de51ca..43ec4387e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/custom_conversion_goal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/custom_conversion_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/custom_conversion_goal_status.proto"; +import "google/ads/googleads/v17/enums/custom_conversion_goal_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Custom conversion goal that can make arbitrary conversion actions biddable. message CustomConversionGoal { @@ -59,6 +59,6 @@ message CustomConversionGoal { }]; // The status of the custom conversion goal. - google.ads.googleads.v14.enums.CustomConversionGoalStatusEnum + google.ads.googleads.v17.enums.CustomConversionGoalStatusEnum .CustomConversionGoalStatus status = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/custom_interest.proto b/third_party/googleapis/google/ads/googleads/v17/resources/custom_interest.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/resources/custom_interest.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/custom_interest.proto index a5be26dc7..eb4799ec0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/custom_interest.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/custom_interest.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/custom_interest_member_type.proto"; -import "google/ads/googleads/v14/enums/custom_interest_status.proto"; -import "google/ads/googleads/v14/enums/custom_interest_type.proto"; +import "google/ads/googleads/v17/enums/custom_interest_member_type.proto"; +import "google/ads/googleads/v17/enums/custom_interest_status.proto"; +import "google/ads/googleads/v17/enums/custom_interest_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomInterestProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Custom Interest resource. @@ -56,7 +56,7 @@ message CustomInterest { // Status of this custom interest. Indicates whether the custom interest is // enabled or removed. - google.ads.googleads.v14.enums.CustomInterestStatusEnum.CustomInterestStatus + google.ads.googleads.v17.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3; // Name of the custom interest. It should be unique across the same custom @@ -66,7 +66,7 @@ message CustomInterest { // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. // By default the type is set to CUSTOM_AFFINITY. - google.ads.googleads.v14.enums.CustomInterestTypeEnum.CustomInterestType + google.ads.googleads.v17.enums.CustomInterestTypeEnum.CustomInterestType type = 5; // Description of this custom interest audience. @@ -82,7 +82,7 @@ message CustomInterest { // It is immutable, that is, it can only be created or removed but not changed. message CustomInterestMember { // The type of custom interest member, KEYWORD or URL. - google.ads.googleads.v14.enums.CustomInterestMemberTypeEnum + google.ads.googleads.v17.enums.CustomInterestMemberTypeEnum .CustomInterestMemberType member_type = 1; // Keyword text when member_type is KEYWORD or URL string when diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer.proto similarity index 60% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer.proto index 6f36dc0ee..031600b1d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,34 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/enums/conversion_tracking_status_enum.proto"; -import "google/ads/googleads/v14/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; -import "google/ads/googleads/v14/enums/customer_status.proto"; -import "google/ads/googleads/v14/enums/offline_conversion_diagnostic_status_enum.proto"; -import "google/ads/googleads/v14/enums/offline_event_upload_client_enum.proto"; -import "google/ads/googleads/v14/errors/collection_size_error.proto"; -import "google/ads/googleads/v14/errors/conversion_adjustment_upload_error.proto"; -import "google/ads/googleads/v14/errors/conversion_upload_error.proto"; -import "google/ads/googleads/v14/errors/date_error.proto"; -import "google/ads/googleads/v14/errors/distinct_error.proto"; -import "google/ads/googleads/v14/errors/field_error.proto"; -import "google/ads/googleads/v14/errors/mutate_error.proto"; -import "google/ads/googleads/v14/errors/not_allowlisted_error.proto"; -import "google/ads/googleads/v14/errors/string_format_error.proto"; -import "google/ads/googleads/v14/errors/string_length_error.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/brand_safety_suitability.proto"; +import "google/ads/googleads/v17/enums/conversion_tracking_status_enum.proto"; +import "google/ads/googleads/v17/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; +import "google/ads/googleads/v17/enums/customer_status.proto"; +import "google/ads/googleads/v17/enums/local_services_verification_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Customer resource. @@ -116,7 +106,7 @@ message Customer { // Output only. Reasons why the customer is not eligible to use // PaymentMode.CONVERSIONS. If the list is empty, the customer is eligible. // This field is read-only. - repeated google.ads.googleads.v14.enums + repeated google.ads.googleads.v17.enums .CustomerPayPerConversionEligibilityFailureReasonEnum .CustomerPayPerConversionEligibilityFailureReason pay_per_conversion_eligibility_failure_reasons = 16 @@ -149,7 +139,7 @@ message Customer { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the customer. - google.ads.googleads.v14.enums.CustomerStatusEnum.CustomerStatus status = 36 + google.ads.googleads.v17.enums.CustomerStatusEnum.CustomerStatus status = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. True if feed based location has been migrated to asset based @@ -172,13 +162,21 @@ message Customer { optional string image_asset_auto_migration_done_date_time = 41 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Offline conversion upload diagnostics. - repeated OfflineConversionClientSummary offline_conversion_client_summaries = - 43 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Customer Agreement Setting for a customer. CustomerAgreementSetting customer_agreement_setting = 44 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Settings for Local Services customer. + LocalServicesSettings local_services_settings = 45 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Brand Safety setting at the account level. Allows for + // selecting an inventory type to show your ads on content that is the right + // fit for your brand. See + // https://support.google.com/google-ads/answer/7515513. + google.ads.googleads.v17.enums.BrandSafetySuitabilityEnum + .BrandSafetySuitability video_brand_safety_suitability = 46 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Call reporting setting for a customer. Only mutable in an `update` operation. @@ -227,7 +225,7 @@ message ConversionTrackingSetting { // this customer. If this customer is using cross-account conversion tracking, // the value returned will differ based on the `login-customer-id` of the // request. - google.ads.googleads.v14.enums.ConversionTrackingStatusEnum + google.ads.googleads.v17.enums.ConversionTrackingStatusEnum .ConversionTrackingStatus conversion_tracking_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -250,125 +248,61 @@ message RemarketingSetting { [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Offline conversion upload diagnostic summarized by client. This proto -// contains general information, breakdown by date/job and alerts for offline -// conversion upload results. -message OfflineConversionClientSummary { - // Output only. Client type of the upload event. - google.ads.googleads.v14.enums.OfflineEventUploadClientEnum - .OfflineEventUploadClient client = 1 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Overall status for offline conversion client summary. Status - // is generated from most recent calendar day with upload stats. - google.ads.googleads.v14.enums.OfflineConversionDiagnosticStatusEnum - .OfflineConversionDiagnosticStatus status = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Total count of uploaded events. - int64 total_event_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Total count of successful uploaded events. - int64 successful_event_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Successful rate. - double success_rate = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Date for the latest upload batch. - string last_upload_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Summary of history stats by last N days. - repeated OfflineConversionUploadSummary daily_summaries = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; +// Customer Agreement Setting for a customer. +message CustomerAgreementSetting { + // Output only. Whether the customer has accepted lead form term of service. + bool accepted_lead_form_terms = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} - // Output only. Summary of history stats by last N jobs. - repeated OfflineConversionUploadSummary job_summaries = 8 +// Settings for Local Services customer. +message LocalServicesSettings { + // Output only. A read-only list of geo vertical level license statuses. + repeated GranularLicenseStatus granular_license_statuses = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Details for each error code. Alerts are generated from most - // recent calendar day with upload stats. - repeated OfflineConversionUploadAlert alerts = 9 + // Output only. A read-only list of geo vertical level insurance statuses. + repeated GranularInsuranceStatus granular_insurance_statuses = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Historical upload summary, grouped by upload date or job. -message OfflineConversionUploadSummary { - // Output only. Total count of successful event. - int64 successful_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Total count of failed event. - int64 failed_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +// License status at geo + vertical level. +message GranularLicenseStatus { + // Output only. Geotarget criterion ID associated with the status. Can be on + // country or state/province geo level, depending on requirements and + // location. See https://developers.google.com/google-ads/api/data/geotargets + // for more information. + optional int64 geo_criterion_id = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Dimension key for summary. - oneof dimension_key { - // Output only. Dimension key for last N jobs. - int64 job_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Service category associated with the status. For example, + // xcat:service_area_business_plumber. + // For more details see: + // https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids + optional string category_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Dimension key for last N days. - string upload_date = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } + // Output only. Granular license status, per geo + vertical. + optional google.ads.googleads.v17.enums.LocalServicesVerificationStatusEnum + .LocalServicesVerificationStatus verification_status = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Alert for offline conversion client summary. -message OfflineConversionUploadAlert { - // Output only. Error for offline conversion client alert. - OfflineConversionUploadError error = 1 +// Insurance status at geo + vertical level. +message GranularInsuranceStatus { + // Output only. Geotarget criterion ID associated with the status. Can be on + // country or state/province geo level, depending on requirements and + // location. See https://developers.google.com/google-ads/api/data/geotargets + // for more information. + optional int64 geo_criterion_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Percentage of the error. - double error_percentage = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} + // Output only. Service category associated with the status. For example, + // xcat:service_area_business_plumber. + // For more details see: + // https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids + optional string category_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -// Possible errors for offline conversion client summary. -message OfflineConversionUploadError { - // Error with description. - oneof error_code { - // Output only. Collection size error. - google.ads.googleads.v14.errors.CollectionSizeErrorEnum.CollectionSizeError - collection_size_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Conversion adjustment upload error. - google.ads.googleads.v14.errors.ConversionAdjustmentUploadErrorEnum - .ConversionAdjustmentUploadError conversion_adjustment_upload_error = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Conversion upload error. - google.ads.googleads.v14.errors.ConversionUploadErrorEnum - .ConversionUploadError conversion_upload_error = 3 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Date error. - google.ads.googleads.v14.errors.DateErrorEnum.DateError date_error = 4 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Distinct error. - google.ads.googleads.v14.errors.DistinctErrorEnum.DistinctError - distinct_error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Field error. - google.ads.googleads.v14.errors.FieldErrorEnum.FieldError field_error = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Mutate error. - google.ads.googleads.v14.errors.MutateErrorEnum.MutateError mutate_error = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Not allowlisted error. - google.ads.googleads.v14.errors.NotAllowlistedErrorEnum.NotAllowlistedError - not_allowlisted_error = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. String format error. - google.ads.googleads.v14.errors.StringFormatErrorEnum.StringFormatError - string_format_error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. String length error. - google.ads.googleads.v14.errors.StringLengthErrorEnum.StringLengthError - string_length_error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - } -} - -// Customer Agreement Setting for a customer. -message CustomerAgreementSetting { - // Output only. Whether the customer has accepted lead form term of service. - bool accepted_lead_form_terms = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Granular insurance status, per geo + vertical. + optional google.ads.googleads.v17.enums.LocalServicesVerificationStatusEnum + .LocalServicesVerificationStatus verification_status = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_asset.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_asset.proto similarity index 73% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_asset.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_asset.proto index 3685b8071..c4a8a7b5e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_asset.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/asset_policy.proto"; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v14/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v14/enums/asset_link_status.proto"; -import "google/ads/googleads/v14/enums/asset_source.proto"; +import "google/ads/googleads/v17/common/asset_policy.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v17/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v17/enums/asset_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerAsset resource. @@ -62,18 +62,18 @@ message CustomerAsset { ]; // Required. Immutable. Role that the asset takes for the customer link. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; // Output only. Source of the customer asset link. - google.ads.googleads.v14.enums.AssetSourceEnum.AssetSource source = 5 + google.ads.googleads.v17.enums.AssetSourceEnum.AssetSource source = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the customer asset. - google.ads.googleads.v14.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; + google.ads.googleads.v17.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -81,18 +81,18 @@ message CustomerAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v14.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v17.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v14.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v17.common.AssetLinkPrimaryStatusDetails primary_status_details = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v14.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v17.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_asset_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_asset_set.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_asset_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_asset_set.proto index 4bc1f995d..85b0a4856 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_asset_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/asset_set_link_status.proto"; +import "google/ads/googleads/v17/enums/asset_set_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerAssetSet resource. @@ -67,6 +67,6 @@ message CustomerAssetSet { ]; // Output only. The status of the customer asset set asset. Read-only. - google.ads.googleads.v14.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus + google.ads.googleads.v17.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_client.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_client.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_client.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_client.proto index ed60bc259..9b7e7d734 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_client.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_client.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/customer_status.proto"; +import "google/ads/googleads/v17/enums/customer_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerClientProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerClient resource. @@ -101,6 +101,6 @@ message CustomerClient { ]; // Output only. The status of the client customer. Read only. - google.ads.googleads.v14.enums.CustomerStatusEnum.CustomerStatus status = 22 + google.ads.googleads.v17.enums.CustomerStatusEnum.CustomerStatus status = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_client_link.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_client_link.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_client_link.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_client_link.proto index 72b5ca835..a41fce860 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_client_link.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_client_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/manager_link_status.proto"; +import "google/ads/googleads/v17/enums/manager_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerClientLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerClientLink resource. @@ -61,7 +61,7 @@ message CustomerClientLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // This is the status of the link between client and manager. - google.ads.googleads.v14.enums.ManagerLinkStatusEnum.ManagerLinkStatus + google.ads.googleads.v17.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; // The visibility of the link. Users can choose whether or not to see hidden diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_conversion_goal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_conversion_goal.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_conversion_goal.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_conversion_goal.proto index e5386c154..c2144aa72 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_conversion_goal.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_conversion_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/conversion_action_category.proto"; -import "google/ads/googleads/v14/enums/conversion_origin.proto"; +import "google/ads/googleads/v17/enums/conversion_action_category.proto"; +import "google/ads/googleads/v17/enums/conversion_origin.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerConversionGoalProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Biddability control for conversion actions with a matching category and // origin. @@ -51,13 +51,13 @@ message CustomerConversionGoal { // The conversion category of this customer conversion goal. Only // conversion actions that have this category will be included in this goal. - google.ads.googleads.v14.enums.ConversionActionCategoryEnum + google.ads.googleads.v17.enums.ConversionActionCategoryEnum .ConversionActionCategory category = 2; // The conversion origin of this customer conversion goal. Only // conversion actions that have this conversion origin will be included in // this goal. - google.ads.googleads.v14.enums.ConversionOriginEnum.ConversionOrigin origin = + google.ads.googleads.v17.enums.ConversionOriginEnum.ConversionOrigin origin = 3; // The biddability of the customer conversion goal. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_customizer.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_customizer.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_customizer.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_customizer.proto index eeb705fb0..a2db961f2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_customizer.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/customizer_value.proto"; -import "google/ads/googleads/v14/enums/customizer_value_status.proto"; +import "google/ads/googleads/v17/common/customizer_value.proto"; +import "google/ads/googleads/v17/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerCustomizerProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A customizer value for the associated CustomizerAttribute at the Customer // level. @@ -60,11 +60,11 @@ message CustomerCustomizer { ]; // Output only. The status of the customer customizer attribute. - google.ads.googleads.v14.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v17.enums.CustomizerValueStatusEnum.CustomizerValueStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The value to associate with the customizer attribute at this // level. The value must be of the type specified for the CustomizerAttribute. - google.ads.googleads.v14.common.CustomizerValue value = 4 + google.ads.googleads.v17.common.CustomizerValue value = 4 [(google.api.field_behavior) = REQUIRED]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_extension_setting.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_extension_setting.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_extension_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_extension_setting.proto index 33499f8a9..7b5f0b079 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_extension_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_extension_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/extension_setting_device.proto"; -import "google/ads/googleads/v14/enums/extension_type.proto"; +import "google/ads/googleads/v17/enums/extension_setting_device.proto"; +import "google/ads/googleads/v17/enums/extension_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerExtensionSetting resource. @@ -51,7 +51,7 @@ message CustomerExtensionSetting { ]; // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v14.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v17.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; // The resource names of the extension feed items to serve under the customer. @@ -63,6 +63,6 @@ message CustomerExtensionSetting { }]; // The device for which the extensions will serve. Optional. - google.ads.googleads.v14.enums.ExtensionSettingDeviceEnum + google.ads.googleads.v17.enums.ExtensionSettingDeviceEnum .ExtensionSettingDevice device = 4; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_feed.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_feed.proto similarity index 73% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_feed.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_feed.proto index 02c8b4487..07338cab7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_feed.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/matching_function.proto"; -import "google/ads/googleads/v14/enums/feed_link_status.proto"; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/common/matching_function.proto"; +import "google/ads/googleads/v17/enums/feed_link_status.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerFeedProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerFeed resource. @@ -59,16 +59,16 @@ message CustomerFeed { // Indicates which placeholder types the feed may populate under the connected // customer. Required. - repeated google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + repeated google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_types = 3; // Matching function associated with the CustomerFeed. // The matching function is used to filter the set of feed items selected. // Required. - google.ads.googleads.v14.common.MatchingFunction matching_function = 4; + google.ads.googleads.v17.common.MatchingFunction matching_function = 4; // Output only. Status of the customer feed. // This field is read-only. - google.ads.googleads.v14.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 + google.ads.googleads.v17.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_label.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_label.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_label.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_label.proto index 90b41f25c..dbdab7a90 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerLabelProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the customer label resource. diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/customer_lifecycle_goal.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_lifecycle_goal.proto new file mode 100644 index 000000000..a6c22ccfc --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_lifecycle_goal.proto @@ -0,0 +1,56 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/lifecycle_goals.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLifecycleGoalProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the customer lifecycle resource. + +// Account level customer lifecycle goal settings. +message CustomerLifecycleGoal { + option (google.api.resource) = { + type: "googleads.googleapis.com/CustomerLifecycleGoal" + pattern: "customers/{customer_id}/customerLifecycleGoals" + }; + + // Immutable. The resource name of the customer lifecycle goal. + // Customer lifecycle resource names have the form: + // + // `customers/{customer_id}/customerLifecycleGoal` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLifecycleGoal" + } + ]; + + // Output only. Customer acquisition goal customer level value settings. + google.ads.googleads.v17.common.LifecycleGoalValueSettings + customer_acquisition_goal_value_settings = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_manager_link.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_manager_link.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_manager_link.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_manager_link.proto index 36b535fef..674c3deb3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_manager_link.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_manager_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/manager_link_status.proto"; +import "google/ads/googleads/v17/enums/manager_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerManagerLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerManagerLink resource. @@ -61,6 +61,6 @@ message CustomerManagerLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the link between the customer and the manager. - google.ads.googleads.v14.enums.ManagerLinkStatusEnum.ManagerLinkStatus + google.ads.googleads.v17.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_negative_criterion.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_negative_criterion.proto similarity index 69% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_negative_criterion.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_negative_criterion.proto index 8f59c44cf..36b48cc96 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_negative_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_negative_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/criterion_type.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/criterion_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerNegativeCriterionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Customer Negative Criterion resource. @@ -54,7 +54,7 @@ message CustomerNegativeCriterion { optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the criterion. - google.ads.googleads.v14.enums.CriterionTypeEnum.CriterionType type = 3 + google.ads.googleads.v17.enums.CriterionTypeEnum.CriterionType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // The customer negative criterion. @@ -62,31 +62,35 @@ message CustomerNegativeCriterion { // Exactly one must be set. oneof criterion { // Immutable. ContentLabel. - google.ads.googleads.v14.common.ContentLabelInfo content_label = 4 + google.ads.googleads.v17.common.ContentLabelInfo content_label = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. MobileApplication. - google.ads.googleads.v14.common.MobileApplicationInfo mobile_application = 5 + google.ads.googleads.v17.common.MobileApplicationInfo mobile_application = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. MobileAppCategory. - google.ads.googleads.v14.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v17.common.MobileAppCategoryInfo mobile_app_category = 6 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v14.common.PlacementInfo placement = 7 + google.ads.googleads.v17.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v14.common.YouTubeVideoInfo youtube_video = 8 + google.ads.googleads.v17.common.YouTubeVideoInfo youtube_video = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v14.common.YouTubeChannelInfo youtube_channel = 9 + google.ads.googleads.v17.common.YouTubeChannelInfo youtube_channel = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. NegativeKeywordList. - google.ads.googleads.v14.common.NegativeKeywordListInfo + google.ads.googleads.v17.common.NegativeKeywordListInfo negative_keyword_list = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. IPBLock + google.ads.googleads.v17.common.IpBlockInfo ip_block = 12 + [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_search_term_insight.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_search_term_insight.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_search_term_insight.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_search_term_insight.proto index db970bb40..39a804369 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_search_term_insight.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_search_term_insight.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerSearchTermInsightProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the customer search term insight resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_sk_ad_network_conversion_value_schema.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_sk_ad_network_conversion_value_schema.proto similarity index 68% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_sk_ad_network_conversion_value_schema.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_sk_ad_network_conversion_value_schema.proto index a3e7593ed..0b88870bf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_sk_ad_network_conversion_value_schema.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_sk_ad_network_conversion_value_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; +import "google/ads/googleads/v17/enums/sk_ad_network_coarse_conversion_value.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerSkAdNetworkConversionValueSchemaProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the SkAdNetworkConversionVauleSchema resource. @@ -52,6 +53,54 @@ message CustomerSkAdNetworkConversionValueSchema { [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Mappings for each postback in multiple conversion windows. + message PostbackMapping { + // Output only. 0-based index that indicates the order of postback. Valid + // values are in the inclusive range [0,2]. + int32 postback_sequence_index = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion value mappings for all coarse grained + // conversion values. + CoarseGrainedConversionValueMappings + coarse_grained_conversion_value_mappings = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Event or conversion value used for locking conversion window. + oneof lock_window_trigger { + // Output only. Coarse grained conversion value that triggers conversion + // window lock. + google.ads.googleads.v17.enums.SkAdNetworkCoarseConversionValueEnum + .SkAdNetworkCoarseConversionValue + lock_window_coarse_conversion_value = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Fine grained conversion value that triggers conversion + // window lock. + int32 lock_window_fine_conversion_value = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Event name that triggers conversion window lock. + string lock_window_event = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + } + + // Mappings for coarse grained conversion values. + message CoarseGrainedConversionValueMappings { + // Output only. Mapping for "low" coarse conversion value. + ConversionValueMapping low_conversion_value_mapping = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mapping for "medium" coarse conversion value. + ConversionValueMapping medium_conversion_value_mapping = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mapping for "high" coarse conversion value. + ConversionValueMapping high_conversion_value_mapping = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Represents mapping from one conversion value to one or more conversion // events. message ConversionValueMapping { @@ -142,9 +191,18 @@ message CustomerSkAdNetworkConversionValueSchema { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Fine grained conversion value mappings. + // For SkAdNetwork versions >= 4.0 that support multiple conversion + // windows, fine grained conversion value mappings are only applicable to + // the first postback. repeated FineGrainedConversionValueMappings fine_grained_conversion_value_mappings = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Per-postback conversion value mappings for postbacks in + // multiple conversion windows. Only applicable for SkAdNetwork versions + // >= 4.0. + repeated PostbackMapping postback_mappings = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Output only. The resource name of the schema. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_user_access.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_user_access.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_user_access.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_user_access.proto index 50d1e6ac9..b10c61b30 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_user_access.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_user_access.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/access_role.proto"; +import "google/ads/googleads/v17/enums/access_role.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerUserAccess resource. @@ -57,7 +57,7 @@ message CustomerUserAccess { optional string email_address = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Access role of the user. - google.ads.googleads.v14.enums.AccessRoleEnum.AccessRole access_role = 4; + google.ads.googleads.v17.enums.AccessRoleEnum.AccessRole access_role = 4; // Output only. The customer user access creation time. // Read only field diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customer_user_access_invitation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customer_user_access_invitation.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/customer_user_access_invitation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customer_user_access_invitation.proto index 4a22657ec..d7503f63d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customer_user_access_invitation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customer_user_access_invitation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/access_invitation_status.proto"; -import "google/ads/googleads/v14/enums/access_role.proto"; +import "google/ads/googleads/v17/enums/access_invitation_status.proto"; +import "google/ads/googleads/v17/enums/access_role.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessInvitationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the CustomerUserAccessInvitation resource. @@ -54,7 +54,7 @@ message CustomerUserAccessInvitation { int64 invitation_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Access role of the user. - google.ads.googleads.v14.enums.AccessRoleEnum.AccessRole access_role = 3 + google.ads.googleads.v17.enums.AccessRoleEnum.AccessRole access_role = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Email address the invitation was sent to. @@ -69,7 +69,7 @@ message CustomerUserAccessInvitation { string creation_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Invitation status of the user. - google.ads.googleads.v14.enums.AccessInvitationStatusEnum + google.ads.googleads.v17.enums.AccessInvitationStatusEnum .AccessInvitationStatus invitation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/customizer_attribute.proto b/third_party/googleapis/google/ads/googleads/v17/resources/customizer_attribute.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/customizer_attribute.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/customizer_attribute.proto index 16422dd64..1f174f69d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/customizer_attribute.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/customizer_attribute.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/customizer_attribute_status.proto"; -import "google/ads/googleads/v14/enums/customizer_attribute_type.proto"; +import "google/ads/googleads/v17/enums/customizer_attribute_status.proto"; +import "google/ads/googleads/v17/enums/customizer_attribute_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A customizer attribute. // Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or @@ -64,12 +64,12 @@ message CustomizerAttribute { ]; // Immutable. The type of the customizer attribute. - google.ads.googleads.v14.enums.CustomizerAttributeTypeEnum + google.ads.googleads.v17.enums.CustomizerAttributeTypeEnum .CustomizerAttributeType type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The status of the customizer attribute. - google.ads.googleads.v14.enums.CustomizerAttributeStatusEnum + google.ads.googleads.v17.enums.CustomizerAttributeStatusEnum .CustomizerAttributeStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/detail_placement_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/detail_placement_view.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/detail_placement_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/detail_placement_view.proto index c90105917..9ab068baf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/detail_placement_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/detail_placement_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/placement_type.proto"; +import "google/ads/googleads/v17/enums/placement_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DetailPlacementViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the detail placement view resource. @@ -68,6 +68,6 @@ message DetailPlacementView { // Output only. Type of the placement, for example, Website, YouTube Video, // and Mobile Application. - google.ads.googleads.v14.enums.PlacementTypeEnum.PlacementType + google.ads.googleads.v17.enums.PlacementTypeEnum.PlacementType placement_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/detailed_demographic.proto b/third_party/googleapis/google/ads/googleads/v17/resources/detailed_demographic.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/detailed_demographic.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/detailed_demographic.proto index 91dbd74a8..74efe6a8c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/detailed_demographic.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/detailed_demographic.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criterion_category_availability.proto"; +import "google/ads/googleads/v17/common/criterion_category_availability.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DetailedDemographicProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Detailed Demographic resource. @@ -70,6 +70,6 @@ message DetailedDemographic { bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Availability information of the detailed demographic. - repeated google.ads.googleads.v14.common.CriterionCategoryAvailability + repeated google.ads.googleads.v17.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/display_keyword_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/display_keyword_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/display_keyword_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/display_keyword_view.proto index dc3f63a12..905fbc2cb 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/display_keyword_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/display_keyword_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DisplayKeywordViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the display keyword view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/distance_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/distance_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/distance_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/distance_view.proto index f35670130..68c8b9d8d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/distance_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/distance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/distance_bucket.proto"; +import "google/ads/googleads/v17/enums/distance_bucket.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DistanceViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the DistanceView resource. @@ -54,7 +54,7 @@ message DistanceView { ]; // Output only. Grouping of user distance from location extensions. - google.ads.googleads.v14.enums.DistanceBucketEnum.DistanceBucket + google.ads.googleads.v17.enums.DistanceBucketEnum.DistanceBucket distance_bucket = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. True if the DistanceBucket is using the metric system, false diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/domain_category.proto b/third_party/googleapis/google/ads/googleads/v17/resources/domain_category.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/resources/domain_category.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/domain_category.proto index 004adab2d..b2e928120 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/domain_category.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/domain_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DomainCategoryProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Domain Category resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/dynamic_search_ads_search_term_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/dynamic_search_ads_search_term_view.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/resources/dynamic_search_ads_search_term_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/dynamic_search_ads_search_term_view.proto index 41e29fa17..367d88f5b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/dynamic_search_ads_search_term_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/dynamic_search_ads_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DynamicSearchAdsSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Dynamic Search Ads Search Term View resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/expanded_landing_page_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/expanded_landing_page_view.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/expanded_landing_page_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/expanded_landing_page_view.proto index 721e30e8b..0f3c7d827 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/expanded_landing_page_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/expanded_landing_page_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExpandedLandingPageViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the expanded landing page view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/experiment.proto b/third_party/googleapis/google/ads/googleads/v17/resources/experiment.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/resources/experiment.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/experiment.proto index 6bc85dec6..d1055b29c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/experiment.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/metric_goal.proto"; -import "google/ads/googleads/v14/enums/async_action_status.proto"; -import "google/ads/googleads/v14/enums/experiment_status.proto"; -import "google/ads/googleads/v14/enums/experiment_type.proto"; +import "google/ads/googleads/v17/common/metric_goal.proto"; +import "google/ads/googleads/v17/enums/async_action_status.proto"; +import "google/ads/googleads/v17/enums/experiment_status.proto"; +import "google/ads/googleads/v17/enums/experiment_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExperimentProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Experiment resource. @@ -71,11 +71,11 @@ message Experiment { string suffix = 12; // Required. The product/feature that uses this experiment. - google.ads.googleads.v14.enums.ExperimentTypeEnum.ExperimentType type = 13 + google.ads.googleads.v17.enums.ExperimentTypeEnum.ExperimentType type = 13 [(google.api.field_behavior) = REQUIRED]; // The Advertiser-chosen status of this experiment. - google.ads.googleads.v14.enums.ExperimentStatusEnum.ExperimentStatus status = + google.ads.googleads.v17.enums.ExperimentStatusEnum.ExperimentStatus status = 14; // Date when the experiment starts. By default, the experiment starts @@ -96,7 +96,7 @@ message Experiment { optional string end_date = 16; // The goals of this experiment. - repeated google.ads.googleads.v14.common.MetricGoal goals = 17; + repeated google.ads.googleads.v17.common.MetricGoal goals = 17; // Output only. The resource name of the long-running operation that can be // used to poll for completion of experiment schedule or promote. The most @@ -105,6 +105,11 @@ message Experiment { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the experiment promotion process. - google.ads.googleads.v14.enums.AsyncActionStatusEnum.AsyncActionStatus + google.ads.googleads.v17.enums.AsyncActionStatusEnum.AsyncActionStatus promote_status = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Set to true if changes to base campaigns should be synced to the + // trial campaigns. Any changes made directly to trial campaigns will be + // preserved. This field can only be set when the experiment is being created. + optional bool sync_enabled = 20 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/experiment_arm.proto b/third_party/googleapis/google/ads/googleads/v17/resources/experiment_arm.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/resources/experiment_arm.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/experiment_arm.proto index 8cb28813c..849b4ead7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/experiment_arm.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/experiment_arm.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExperimentArmProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Experiment arm resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/extension_feed_item.proto b/third_party/googleapis/google/ads/googleads/v17/resources/extension_feed_item.proto similarity index 71% rename from third_party/googleapis/google/ads/googleads/v14/resources/extension_feed_item.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/extension_feed_item.proto index 9e89a03b8..8fb64457c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/extension_feed_item.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/extension_feed_item.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/extensions.proto"; -import "google/ads/googleads/v14/enums/extension_type.proto"; -import "google/ads/googleads/v14/enums/feed_item_status.proto"; -import "google/ads/googleads/v14/enums/feed_item_target_device.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/extensions.proto"; +import "google/ads/googleads/v17/enums/extension_type.proto"; +import "google/ads/googleads/v17/enums/feed_item_status.proto"; +import "google/ads/googleads/v17/enums/feed_item_target_device.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExtensionFeedItemProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ExtensionFeedItem resource. @@ -58,7 +58,7 @@ message ExtensionFeedItem { // Output only. The extension type of the extension feed item. // This field is read-only. - google.ads.googleads.v14.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v17.enums.ExtensionTypeEnum.ExtensionType extension_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Start time in which this feed item is effective and can begin serving. The @@ -76,10 +76,10 @@ message ExtensionFeedItem { // List of non-overlapping schedules specifying all time intervals // for which the feed item may serve. There can be a maximum of 6 schedules // per day. - repeated google.ads.googleads.v14.common.AdScheduleInfo ad_schedules = 16; + repeated google.ads.googleads.v17.common.AdScheduleInfo ad_schedules = 16; // The targeted device. - google.ads.googleads.v14.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice + google.ads.googleads.v17.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 17; // The targeted geo target constant. @@ -89,58 +89,58 @@ message ExtensionFeedItem { }]; // The targeted keyword. - google.ads.googleads.v14.common.KeywordInfo targeted_keyword = 22; + google.ads.googleads.v17.common.KeywordInfo targeted_keyword = 22; // Output only. Status of the feed item. // This field is read-only. - google.ads.googleads.v14.enums.FeedItemStatusEnum.FeedItemStatus status = 4 + google.ads.googleads.v17.enums.FeedItemStatusEnum.FeedItemStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Extension type. oneof extension { // Sitelink. - google.ads.googleads.v14.common.SitelinkFeedItem sitelink_feed_item = 2; + google.ads.googleads.v17.common.SitelinkFeedItem sitelink_feed_item = 2; // Structured snippet extension. - google.ads.googleads.v14.common.StructuredSnippetFeedItem + google.ads.googleads.v17.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3; // App extension. - google.ads.googleads.v14.common.AppFeedItem app_feed_item = 7; + google.ads.googleads.v17.common.AppFeedItem app_feed_item = 7; // Call extension. - google.ads.googleads.v14.common.CallFeedItem call_feed_item = 8; + google.ads.googleads.v17.common.CallFeedItem call_feed_item = 8; // Callout extension. - google.ads.googleads.v14.common.CalloutFeedItem callout_feed_item = 9; + google.ads.googleads.v17.common.CalloutFeedItem callout_feed_item = 9; // Text message extension. - google.ads.googleads.v14.common.TextMessageFeedItem text_message_feed_item = + google.ads.googleads.v17.common.TextMessageFeedItem text_message_feed_item = 10; // Price extension. - google.ads.googleads.v14.common.PriceFeedItem price_feed_item = 11; + google.ads.googleads.v17.common.PriceFeedItem price_feed_item = 11; // Promotion extension. - google.ads.googleads.v14.common.PromotionFeedItem promotion_feed_item = 12; + google.ads.googleads.v17.common.PromotionFeedItem promotion_feed_item = 12; // Output only. Location extension. Locations are synced from a Business // Profile into a feed. This field is read-only. - google.ads.googleads.v14.common.LocationFeedItem location_feed_item = 14 + google.ads.googleads.v17.common.LocationFeedItem location_feed_item = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Affiliate location extension. Feed locations are populated // by Google Ads based on a chain ID. This field is read-only. - google.ads.googleads.v14.common.AffiliateLocationFeedItem + google.ads.googleads.v17.common.AffiliateLocationFeedItem affiliate_location_feed_item = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Hotel Callout extension. - google.ads.googleads.v14.common.HotelCalloutFeedItem + google.ads.googleads.v17.common.HotelCalloutFeedItem hotel_callout_feed_item = 23; // Immutable. Advertiser provided image extension. - google.ads.googleads.v14.common.ImageFeedItem image_feed_item = 31 + google.ads.googleads.v17.common.ImageFeedItem image_feed_item = 31 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed.proto index 2dc9306dc..c15e5bd89 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/affiliate_location_feed_relationship_type.proto"; -import "google/ads/googleads/v14/enums/feed_attribute_type.proto"; -import "google/ads/googleads/v14/enums/feed_origin.proto"; -import "google/ads/googleads/v14/enums/feed_status.proto"; +import "google/ads/googleads/v17/enums/affiliate_location_feed_relationship_type.proto"; +import "google/ads/googleads/v17/enums/feed_attribute_type.proto"; +import "google/ads/googleads/v17/enums/feed_origin.proto"; +import "google/ads/googleads/v17/enums/feed_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Feed resource. @@ -96,7 +96,7 @@ message Feed { repeated int64 chain_ids = 3; // The relationship the chains have with the advertiser. - google.ads.googleads.v14.enums.AffiliateLocationFeedRelationshipTypeEnum + google.ads.googleads.v17.enums.AffiliateLocationFeedRelationshipTypeEnum .AffiliateLocationFeedRelationshipType relationship_type = 2; } @@ -127,12 +127,12 @@ message Feed { repeated FeedAttributeOperation attribute_operations = 9; // Immutable. Specifies who manages the FeedAttributes for the Feed. - google.ads.googleads.v14.enums.FeedOriginEnum.FeedOrigin origin = 5 + google.ads.googleads.v17.enums.FeedOriginEnum.FeedOrigin origin = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Status of the feed. // This field is read-only. - google.ads.googleads.v14.enums.FeedStatusEnum.FeedStatus status = 8 + google.ads.googleads.v17.enums.FeedStatusEnum.FeedStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // The system data for the Feed. This data specifies information for @@ -159,7 +159,7 @@ message FeedAttribute { optional string name = 6; // Data type for feed attribute. Required. - google.ads.googleads.v14.enums.FeedAttributeTypeEnum.FeedAttributeType type = + google.ads.googleads.v17.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3; // Indicates that data corresponding to this attribute is part of a diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed_item.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed_item.proto index ac47560b4..0c02896d9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,31 +14,31 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/common/custom_parameter.proto"; -import "google/ads/googleads/v14/common/feed_common.proto"; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/feed_item_quality_approval_status.proto"; -import "google/ads/googleads/v14/enums/feed_item_quality_disapproval_reason.proto"; -import "google/ads/googleads/v14/enums/feed_item_status.proto"; -import "google/ads/googleads/v14/enums/feed_item_validation_status.proto"; -import "google/ads/googleads/v14/enums/geo_targeting_restriction.proto"; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; -import "google/ads/googleads/v14/enums/policy_approval_status.proto"; -import "google/ads/googleads/v14/enums/policy_review_status.proto"; -import "google/ads/googleads/v14/errors/feed_item_validation_error.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/custom_parameter.proto"; +import "google/ads/googleads/v17/common/feed_common.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/feed_item_quality_approval_status.proto"; +import "google/ads/googleads/v17/enums/feed_item_quality_disapproval_reason.proto"; +import "google/ads/googleads/v17/enums/feed_item_status.proto"; +import "google/ads/googleads/v17/enums/feed_item_validation_status.proto"; +import "google/ads/googleads/v17/enums/geo_targeting_restriction.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/enums/policy_approval_status.proto"; +import "google/ads/googleads/v17/enums/policy_review_status.proto"; +import "google/ads/googleads/v17/errors/feed_item_validation_error.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the FeedItem resource. @@ -86,17 +86,17 @@ message FeedItem { // Geo targeting restriction specifies the type of location that can be used // for targeting. - google.ads.googleads.v14.enums.GeoTargetingRestrictionEnum + google.ads.googleads.v17.enums.GeoTargetingRestrictionEnum .GeoTargetingRestriction geo_targeting_restriction = 7; // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v14.common.CustomParameter + repeated google.ads.googleads.v17.common.CustomParameter url_custom_parameters = 8; // Output only. Status of the feed item. // This field is read-only. - google.ads.googleads.v14.enums.FeedItemStatusEnum.FeedItemStatus status = 9 + google.ads.googleads.v17.enums.FeedItemStatusEnum.FeedItemStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. List of info about a feed item's validation and approval state @@ -135,7 +135,7 @@ message FeedItemAttributeValue { // Price value. Should be set if feed_attribute_id refers to a feed attribute // of type PRICE. - google.ads.googleads.v14.common.Money price_value = 6; + google.ads.googleads.v17.common.Money price_value = 6; // Repeated int64 value. Should be set if feed_attribute_id refers to a feed // attribute of type INT64_LIST. @@ -165,7 +165,7 @@ message FeedItemAttributeValue { // specified placeholder type. message FeedItemPlaceholderPolicyInfo { // Output only. The placeholder type. - google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type_enum = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The FeedMapping that contains the placeholder type. @@ -173,20 +173,20 @@ message FeedItemPlaceholderPolicyInfo { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where the placeholder type is in the review process. - google.ads.googleads.v14.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v17.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The overall approval status of the placeholder type, // calculated based on the status of its individual policy topic entries. - google.ads.googleads.v14.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v17.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The list of policy findings for the placeholder type. - repeated google.ads.googleads.v14.common.PolicyTopicEntry + repeated google.ads.googleads.v17.common.PolicyTopicEntry policy_topic_entries = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The validation status of the palceholder type. - google.ads.googleads.v14.enums.FeedItemValidationStatusEnum + // Output only. The validation status of the placeholder type. + google.ads.googleads.v17.enums.FeedItemValidationStatusEnum .FeedItemValidationStatus validation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -195,13 +195,13 @@ message FeedItemPlaceholderPolicyInfo { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Placeholder type quality evaluation approval status. - google.ads.googleads.v14.enums.FeedItemQualityApprovalStatusEnum + google.ads.googleads.v17.enums.FeedItemQualityApprovalStatusEnum .FeedItemQualityApprovalStatus quality_approval_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. List of placeholder type quality evaluation disapproval // reasons. - repeated google.ads.googleads.v14.enums.FeedItemQualityDisapprovalReasonEnum + repeated google.ads.googleads.v17.enums.FeedItemQualityDisapprovalReasonEnum .FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -211,7 +211,7 @@ message FeedItemPlaceholderPolicyInfo { message FeedItemValidationError { // Output only. Error code indicating what validation error was triggered. The // description of the error can be found in the 'description' field. - google.ads.googleads.v14.errors.FeedItemValidationErrorEnum + google.ads.googleads.v17.errors.FeedItemValidationErrorEnum .FeedItemValidationError validation_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item_set.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed_item_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed_item_set.proto index 9cdd368c6..3807979fd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/feed_item_set_filter_type_infos.proto"; -import "google/ads/googleads/v14/enums/feed_item_set_status.proto"; +import "google/ads/googleads/v17/common/feed_item_set_filter_type_infos.proto"; +import "google/ads/googleads/v17/enums/feed_item_set_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Represents a set of feed items. The set can be used and shared among certain // feed item features. For instance, the set can be referenced within the @@ -64,7 +64,7 @@ message FeedItemSet { // Output only. Status of the feed item set. // This field is read-only. - google.ads.googleads.v14.enums.FeedItemSetStatusEnum.FeedItemSetStatus + google.ads.googleads.v17.enums.FeedItemSetStatusEnum.FeedItemSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Represents a filter on locations in a feed item set. @@ -72,13 +72,13 @@ message FeedItemSet { oneof dynamic_set_filter { // Filter for dynamic location set. // It is only used for sets of locations. - google.ads.googleads.v14.common.DynamicLocationSetFilter + google.ads.googleads.v17.common.DynamicLocationSetFilter dynamic_location_set_filter = 5; // Filter for dynamic affiliate location set. // This field doesn't apply generally to feed item sets. It is only used for // sets of affiliate locations. - google.ads.googleads.v14.common.DynamicAffiliateLocationSetFilter + google.ads.googleads.v17.common.DynamicAffiliateLocationSetFilter dynamic_affiliate_location_set_filter = 6; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item_set_link.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item_set_link.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed_item_set_link.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed_item_set_link.proto index 9627045f0..0dee9b29b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item_set_link.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item_set_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the FeedItemSetLink resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item_target.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item_target.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed_item_target.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed_item_target.proto index 169dee301..d54abdc67 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed_item_target.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed_item_target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/feed_item_target_device.proto"; -import "google/ads/googleads/v14/enums/feed_item_target_status.proto"; -import "google/ads/googleads/v14/enums/feed_item_target_type.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/feed_item_target_device.proto"; +import "google/ads/googleads/v17/enums/feed_item_target_status.proto"; +import "google/ads/googleads/v17/enums/feed_item_target_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the FeedItemTarget resource. @@ -61,7 +61,7 @@ message FeedItemTarget { // Output only. The target type of this feed item target. This field is // read-only. - google.ads.googleads.v14.enums.FeedItemTargetTypeEnum.FeedItemTargetType + google.ads.googleads.v17.enums.FeedItemTargetTypeEnum.FeedItemTargetType feed_item_target_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The ID of the targeted resource. This field is read-only. @@ -70,7 +70,7 @@ message FeedItemTarget { // Output only. Status of the feed item target. // This field is read-only. - google.ads.googleads.v14.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus + google.ads.googleads.v17.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // The targeted resource. @@ -92,7 +92,7 @@ message FeedItemTarget { ]; // Immutable. The targeted keyword. - google.ads.googleads.v14.common.KeywordInfo keyword = 7 + google.ads.googleads.v17.common.KeywordInfo keyword = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The targeted geo target constant resource name. @@ -104,11 +104,11 @@ message FeedItemTarget { ]; // Immutable. The targeted device. - google.ads.googleads.v14.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice + google.ads.googleads.v17.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The targeted schedule. - google.ads.googleads.v14.common.AdScheduleInfo ad_schedule = 10 + google.ads.googleads.v17.common.AdScheduleInfo ad_schedule = 10 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed_mapping.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed_mapping.proto similarity index 67% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed_mapping.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed_mapping.proto index e581eb5e9..e1eaa9d72 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed_mapping.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed_mapping.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,44 +14,44 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/enums/ad_customizer_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/affiliate_location_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/app_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/call_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/callout_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/custom_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/dsa_page_feed_criterion_field.proto"; -import "google/ads/googleads/v14/enums/education_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/feed_mapping_criterion_type.proto"; -import "google/ads/googleads/v14/enums/feed_mapping_status.proto"; -import "google/ads/googleads/v14/enums/flight_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/hotel_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/image_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/job_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/local_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/location_extension_targeting_criterion_field.proto"; -import "google/ads/googleads/v14/enums/location_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/message_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; -import "google/ads/googleads/v14/enums/price_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/promotion_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/real_estate_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/sitelink_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/structured_snippet_placeholder_field.proto"; -import "google/ads/googleads/v14/enums/travel_placeholder_field.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/ad_customizer_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/affiliate_location_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/app_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/call_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/callout_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/custom_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/dsa_page_feed_criterion_field.proto"; +import "google/ads/googleads/v17/enums/education_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/feed_mapping_criterion_type.proto"; +import "google/ads/googleads/v17/enums/feed_mapping_status.proto"; +import "google/ads/googleads/v17/enums/flight_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/hotel_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/image_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/job_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/local_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/location_extension_targeting_criterion_field.proto"; +import "google/ads/googleads/v17/enums/location_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/message_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/enums/price_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/promotion_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/real_estate_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/sitelink_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/structured_snippet_placeholder_field.proto"; +import "google/ads/googleads/v17/enums/travel_placeholder_field.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedMappingProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the FeedMapping resource. @@ -89,7 +89,7 @@ message FeedMapping { // Output only. Status of the feed mapping. // This field is read-only. - google.ads.googleads.v14.enums.FeedMappingStatusEnum.FeedMappingStatus + google.ads.googleads.v17.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Feed mapping target. Can be either a placeholder or a criterion. For a @@ -97,12 +97,12 @@ message FeedMapping { oneof target { // Immutable. The placeholder type of this mapping (for example, if the // mapping maps feed attributes to placeholder fields). - google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The criterion type of this mapping (for example, if the // mapping maps feed attributes to criterion fields). - google.ads.googleads.v14.enums.FeedMappingCriterionTypeEnum + google.ads.googleads.v17.enums.FeedMappingCriterionTypeEnum .FeedMappingCriterionType criterion_type = 4 [(google.api.field_behavior) = IMMUTABLE]; } @@ -123,111 +123,111 @@ message AttributeFieldMapping { // the above feed attribute. Required. oneof field { // Immutable. Sitelink Placeholder Fields. - google.ads.googleads.v14.enums.SitelinkPlaceholderFieldEnum + google.ads.googleads.v17.enums.SitelinkPlaceholderFieldEnum .SitelinkPlaceholderField sitelink_field = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Call Placeholder Fields. - google.ads.googleads.v14.enums.CallPlaceholderFieldEnum.CallPlaceholderField + google.ads.googleads.v17.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. App Placeholder Fields. - google.ads.googleads.v14.enums.AppPlaceholderFieldEnum.AppPlaceholderField + google.ads.googleads.v17.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Location Placeholder Fields. This field is read-only. - google.ads.googleads.v14.enums.LocationPlaceholderFieldEnum + google.ads.googleads.v17.enums.LocationPlaceholderFieldEnum .LocationPlaceholderField location_field = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Affiliate Location Placeholder Fields. This field is // read-only. - google.ads.googleads.v14.enums.AffiliateLocationPlaceholderFieldEnum + google.ads.googleads.v17.enums.AffiliateLocationPlaceholderFieldEnum .AffiliateLocationPlaceholderField affiliate_location_field = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Callout Placeholder Fields. - google.ads.googleads.v14.enums.CalloutPlaceholderFieldEnum + google.ads.googleads.v17.enums.CalloutPlaceholderFieldEnum .CalloutPlaceholderField callout_field = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Structured Snippet Placeholder Fields. - google.ads.googleads.v14.enums.StructuredSnippetPlaceholderFieldEnum + google.ads.googleads.v17.enums.StructuredSnippetPlaceholderFieldEnum .StructuredSnippetPlaceholderField structured_snippet_field = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Message Placeholder Fields. - google.ads.googleads.v14.enums.MessagePlaceholderFieldEnum + google.ads.googleads.v17.enums.MessagePlaceholderFieldEnum .MessagePlaceholderField message_field = 10 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Price Placeholder Fields. - google.ads.googleads.v14.enums.PricePlaceholderFieldEnum + google.ads.googleads.v17.enums.PricePlaceholderFieldEnum .PricePlaceholderField price_field = 11 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Promotion Placeholder Fields. - google.ads.googleads.v14.enums.PromotionPlaceholderFieldEnum + google.ads.googleads.v17.enums.PromotionPlaceholderFieldEnum .PromotionPlaceholderField promotion_field = 12 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Ad Customizer Placeholder Fields - google.ads.googleads.v14.enums.AdCustomizerPlaceholderFieldEnum + google.ads.googleads.v17.enums.AdCustomizerPlaceholderFieldEnum .AdCustomizerPlaceholderField ad_customizer_field = 13 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Dynamic Search Ad Page Feed Fields. - google.ads.googleads.v14.enums.DsaPageFeedCriterionFieldEnum + google.ads.googleads.v17.enums.DsaPageFeedCriterionFieldEnum .DsaPageFeedCriterionField dsa_page_feed_field = 14 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location Target Fields. - google.ads.googleads.v14.enums.LocationExtensionTargetingCriterionFieldEnum + google.ads.googleads.v17.enums.LocationExtensionTargetingCriterionFieldEnum .LocationExtensionTargetingCriterionField location_extension_targeting_field = 15 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Education Placeholder Fields - google.ads.googleads.v14.enums.EducationPlaceholderFieldEnum + google.ads.googleads.v17.enums.EducationPlaceholderFieldEnum .EducationPlaceholderField education_field = 16 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Flight Placeholder Fields - google.ads.googleads.v14.enums.FlightPlaceholderFieldEnum + google.ads.googleads.v17.enums.FlightPlaceholderFieldEnum .FlightPlaceholderField flight_field = 17 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Placeholder Fields - google.ads.googleads.v14.enums.CustomPlaceholderFieldEnum + google.ads.googleads.v17.enums.CustomPlaceholderFieldEnum .CustomPlaceholderField custom_field = 18 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Hotel Placeholder Fields - google.ads.googleads.v14.enums.HotelPlaceholderFieldEnum + google.ads.googleads.v17.enums.HotelPlaceholderFieldEnum .HotelPlaceholderField hotel_field = 19 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Real Estate Placeholder Fields - google.ads.googleads.v14.enums.RealEstatePlaceholderFieldEnum + google.ads.googleads.v17.enums.RealEstatePlaceholderFieldEnum .RealEstatePlaceholderField real_estate_field = 20 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Travel Placeholder Fields - google.ads.googleads.v14.enums.TravelPlaceholderFieldEnum + google.ads.googleads.v17.enums.TravelPlaceholderFieldEnum .TravelPlaceholderField travel_field = 21 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Local Placeholder Fields - google.ads.googleads.v14.enums.LocalPlaceholderFieldEnum + google.ads.googleads.v17.enums.LocalPlaceholderFieldEnum .LocalPlaceholderField local_field = 22 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Job Placeholder Fields - google.ads.googleads.v14.enums.JobPlaceholderFieldEnum.JobPlaceholderField + google.ads.googleads.v17.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Image Placeholder Fields - google.ads.googleads.v14.enums.ImagePlaceholderFieldEnum + google.ads.googleads.v17.enums.ImagePlaceholderFieldEnum .ImagePlaceholderField image_field = 26 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/feed_placeholder_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/feed_placeholder_view.proto similarity index 77% rename from third_party/googleapis/google/ads/googleads/v14/resources/feed_placeholder_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/feed_placeholder_view.proto index 7cbe4bc58..0a256bf23 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/feed_placeholder_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/feed_placeholder_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/placeholder_type.proto"; +import "google/ads/googleads/v17/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedPlaceholderViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the FeedPlaceholderView resource. @@ -50,6 +50,6 @@ message FeedPlaceholderView { ]; // Output only. The placeholder type of the feed placeholder view. - google.ads.googleads.v14.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v17.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/gender_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/gender_view.proto similarity index 71% rename from third_party/googleapis/google/ads/googleads/v14/resources/gender_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/gender_view.proto index fe38f8dd9..d4411e256 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/gender_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/gender_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GenderViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the gender view resource. // A gender view. +// The gender_view resource reflects the effective serving state, rather than +// what criteria were added. An ad group without gender criteria by default +// shows to all genders, so all genders appear in gender_view with stats. message GenderView { option (google.api.resource) = { type: "googleads.googleapis.com/GenderView" diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/geo_target_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/geo_target_constant.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/resources/geo_target_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/geo_target_constant.proto index 74cb4df4d..9f430826a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/geo_target_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/geo_target_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/geo_target_constant_status.proto"; +import "google/ads/googleads/v17/enums/geo_target_constant_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the geo target constant resource. @@ -63,7 +63,7 @@ message GeoTargetConstant { optional string target_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Geo target constant status. - google.ads.googleads.v14.enums.GeoTargetConstantStatusEnum + google.ads.googleads.v17.enums.GeoTargetConstantStatusEnum .GeoTargetConstantStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/geographic_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/geographic_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/geographic_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/geographic_view.proto index 4258f5fcc..02344b0df 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/geographic_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/geographic_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/geo_targeting_type.proto"; +import "google/ads/googleads/v17/enums/geo_targeting_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GeographicViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the geographic view resource. @@ -55,7 +55,7 @@ message GeographicView { ]; // Output only. Type of the geo targeting of the campaign. - google.ads.googleads.v14.enums.GeoTargetingTypeEnum.GeoTargetingType + google.ads.googleads.v17.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Criterion Id for the country. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/google_ads_field.proto b/third_party/googleapis/google/ads/googleads/v17/resources/google_ads_field.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/resources/google_ads_field.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/google_ads_field.proto index a0d78640c..c58496125 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/google_ads_field.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/google_ads_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/google_ads_field_category.proto"; -import "google/ads/googleads/v14/enums/google_ads_field_data_type.proto"; +import "google/ads/googleads/v17/enums/google_ads_field_category.proto"; +import "google/ads/googleads/v17/enums/google_ads_field_data_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Google Ads Field resource. @@ -54,7 +54,7 @@ message GoogleAdsField { optional string name = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The category of the artifact. - google.ads.googleads.v14.enums.GoogleAdsFieldCategoryEnum + google.ads.googleads.v17.enums.GoogleAdsFieldCategoryEnum .GoogleAdsFieldCategory category = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -101,7 +101,7 @@ message GoogleAdsField { // Output only. This field determines the operators that can be used with the // artifact in WHERE clauses. - google.ads.googleads.v14.enums.GoogleAdsFieldDataTypeEnum + google.ads.googleads.v17.enums.GoogleAdsFieldDataTypeEnum .GoogleAdsFieldDataType data_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/group_placement_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/group_placement_view.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/group_placement_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/group_placement_view.proto index 111a9d1e7..69c1ef491 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/group_placement_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/group_placement_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/placement_type.proto"; +import "google/ads/googleads/v17/enums/placement_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GroupPlacementViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the group placement view resource. @@ -63,6 +63,6 @@ message GroupPlacementView { // Output only. Type of the placement, for example, Website, YouTube Channel, // Mobile Application. - google.ads.googleads.v14.enums.PlacementTypeEnum.PlacementType + google.ads.googleads.v17.enums.PlacementTypeEnum.PlacementType placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/hotel_group_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/hotel_group_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/hotel_group_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/hotel_group_view.proto index c4bd3c5ae..83a01daa8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/hotel_group_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/hotel_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "HotelGroupViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the hotel group view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/hotel_performance_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/hotel_performance_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/hotel_performance_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/hotel_performance_view.proto index ec637de55..0d929f1f2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/hotel_performance_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/hotel_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "HotelPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the hotel performance view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/hotel_reconciliation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/hotel_reconciliation.proto similarity index 90% rename from third_party/googleapis/google/ads/googleads/v14/resources/hotel_reconciliation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/hotel_reconciliation.proto index d5ca142b4..3f9a072af 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/hotel_reconciliation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/hotel_reconciliation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/hotel_reconciliation_status.proto"; +import "google/ads/googleads/v17/enums/hotel_reconciliation_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "HotelReconciliationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the hotel reconciliation resource. @@ -112,7 +112,7 @@ message HotelReconciliation { // reconciliation and billing. Bookings should be reconciled within 45 days // after the check-out date. Any booking not reconciled within 45 days will be // billed at its original value. - google.ads.googleads.v14.enums.HotelReconciliationStatusEnum + google.ads.googleads.v17.enums.HotelReconciliationStatusEnum .HotelReconciliationStatus status = 10 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = OUTPUT_ONLY diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/income_range_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/income_range_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/income_range_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/income_range_view.proto index 306f4d2f3..03183693e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/income_range_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/income_range_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "IncomeRangeViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the income range view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/invoice.proto b/third_party/googleapis/google/ads/googleads/v17/resources/invoice.proto similarity index 95% rename from third_party/googleapis/google/ads/googleads/v14/resources/invoice.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/invoice.proto index a84daac60..febd6464e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/invoice.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/invoice.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/enums/invoice_type.proto"; -import "google/ads/googleads/v14/enums/month_of_year.proto"; +import "google/ads/googleads/v17/common/dates.proto"; +import "google/ads/googleads/v17/enums/invoice_type.proto"; +import "google/ads/googleads/v17/enums/month_of_year.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "InvoiceProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Invoice resource. @@ -174,7 +174,7 @@ message Invoice { // Output only. The billable activity date range of the account budget, // within the service date range of this invoice. The end date is inclusive. // This can be different from the account budget's start and end time. - google.ads.googleads.v14.common.DateRange billable_activity_date_range = 9 + google.ads.googleads.v17.common.DateRange billable_activity_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The pretax served amount attributable to this budget during @@ -209,7 +209,7 @@ message Invoice { message InvalidActivitySummary { // Output only. Original month of service related to this invalid activity // credit. - optional google.ads.googleads.v14.enums.MonthOfYearEnum.MonthOfYear + optional google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear original_month_of_service = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -255,7 +255,7 @@ message Invoice { optional string id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of invoice. - google.ads.googleads.v14.enums.InvoiceTypeEnum.InvoiceType type = 3 + google.ads.googleads.v17.enums.InvoiceTypeEnum.InvoiceType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The resource name of this invoice's billing setup. @@ -285,7 +285,7 @@ message Invoice { // Output only. The service period date range of this invoice. The end date is // inclusive. - google.ads.googleads.v14.common.DateRange service_date_range = 9 + google.ads.googleads.v17.common.DateRange service_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The currency code. All costs are returned in this currency. A diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan.proto index b4cf2f631..6bbfa71d5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/enums/keyword_plan_forecast_interval.proto"; +import "google/ads/googleads/v17/common/dates.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_forecast_interval.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the keyword plan resource. @@ -70,7 +70,7 @@ message KeywordPlanForecastPeriod { // Required. The date used for forecasting the Plan. oneof interval { // A future date range relative to the current date used for forecasting. - google.ads.googleads.v14.enums.KeywordPlanForecastIntervalEnum + google.ads.googleads.v17.enums.KeywordPlanForecastIntervalEnum .KeywordPlanForecastInterval date_interval = 1; // The custom date range used for forecasting. It cannot be greater than @@ -78,6 +78,6 @@ message KeywordPlanForecastPeriod { // The start and end dates must be in the future. Otherwise, an error will // be returned when the forecasting action is performed. // The start and end dates are inclusive. - google.ads.googleads.v14.common.DateRange date_range = 2; + google.ads.googleads.v17.common.DateRange date_range = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_ad_group.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_ad_group.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_ad_group.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_ad_group.proto index 557549fe3..db10d8ba1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_ad_group.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_ad_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the keyword plan ad group resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_ad_group_keyword.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_ad_group_keyword.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto index 6e0c51b3e..9b2fb45ba 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_ad_group_keyword.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/keyword_match_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupKeywordProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the keyword plan ad group keyword resource. @@ -62,7 +62,7 @@ message KeywordPlanAdGroupKeyword { optional string text = 10; // The keyword match type. - google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v17.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; // A keyword level max cpc bid in micros (for example, $1 = 1mm). The currency diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_campaign.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_campaign.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_campaign.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_campaign.proto index b980d8bb2..43a479ee0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_campaign.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_campaign.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/keyword_plan_network.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_network.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the keyword plan campaign resource. @@ -74,7 +74,7 @@ message KeywordPlanCampaign { // // This field is required and should not be empty when creating Keyword Plan // campaigns. - google.ads.googleads.v14.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v17.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6; // A default max cpc bid in micros, and in the account currency, for all ad diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_campaign_keyword.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_campaign_keyword.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto index 4fb7a2216..08dddadad 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_plan_campaign_keyword.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/keyword_match_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignKeywordProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the keyword plan negative keyword resource. @@ -62,7 +62,7 @@ message KeywordPlanCampaignKeyword { optional string text = 10; // The keyword match type. - google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v17.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; // Immutable. If true, the keyword is negative. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_theme_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_theme_constant.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_theme_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_theme_constant.proto index 903a3c86a..605819da7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_theme_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_theme_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordThemeConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Smart Campaign keyword theme constant resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/keyword_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/keyword_view.proto index 9ad6f4166..37d93408f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/keyword_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/keyword_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the keyword view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/label.proto b/third_party/googleapis/google/ads/googleads/v17/resources/label.proto similarity index 74% rename from third_party/googleapis/google/ads/googleads/v14/resources/label.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/label.proto index 352a256ea..c5696513f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/label.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/text_label.proto"; -import "google/ads/googleads/v14/enums/label_status.proto"; +import "google/ads/googleads/v17/common/text_label.proto"; +import "google/ads/googleads/v17/enums/label_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LabelProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A label. message Label { @@ -56,9 +56,9 @@ message Label { optional string name = 7; // Output only. Status of the label. Read only. - google.ads.googleads.v14.enums.LabelStatusEnum.LabelStatus status = 4 + google.ads.googleads.v17.enums.LabelStatusEnum.LabelStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // A type of label displaying text on a colored background. - google.ads.googleads.v14.common.TextLabel text_label = 5; + google.ads.googleads.v17.common.TextLabel text_label = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/landing_page_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/landing_page_view.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/landing_page_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/landing_page_view.proto index 8ad7f676b..a3b04d271 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/landing_page_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/landing_page_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LandingPageViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the landing page view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/language_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/language_constant.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/language_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/language_constant.proto index 2de614cb8..707cd1f84 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/language_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/language_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LanguageConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the language constant resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/lead_form_submission_data.proto b/third_party/googleapis/google/ads/googleads/v17/resources/lead_form_submission_data.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/resources/lead_form_submission_data.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/lead_form_submission_data.proto index 8bded0275..a943105d1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/lead_form_submission_data.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/lead_form_submission_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/lead_form_field_user_input_type.proto"; +import "google/ads/googleads/v17/enums/lead_form_field_user_input_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LeadFormSubmissionDataProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the lead form submission data resource. @@ -102,7 +102,7 @@ message LeadFormSubmissionData { // Fields in the submitted lead form. message LeadFormSubmissionField { // Output only. Field type for lead form fields. - google.ads.googleads.v14.enums.LeadFormFieldUserInputTypeEnum + google.ads.googleads.v17.enums.LeadFormFieldUserInputTypeEnum .LeadFormFieldUserInputType field_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/life_event.proto b/third_party/googleapis/google/ads/googleads/v17/resources/life_event.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/life_event.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/life_event.proto index f161d418e..7b72b4ee2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/life_event.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/life_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criterion_category_availability.proto"; +import "google/ads/googleads/v17/common/criterion_category_availability.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LifeEventProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Life Event resource. @@ -69,6 +69,6 @@ message LifeEvent { bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Availability information of the life event. - repeated google.ads.googleads.v14.common.CriterionCategoryAvailability + repeated google.ads.googleads.v17.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/local_services_employee.proto b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_employee.proto new file mode 100644 index 000000000..958599582 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_employee.proto @@ -0,0 +1,158 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/local_services_employee_status.proto"; +import "google/ads/googleads/v17/enums/local_services_employee_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesEmployeeProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// A local services employee resource. +message LocalServicesEmployee { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocalServicesEmployee" + pattern: "customers/{customer_id}/localServicesEmployees/{gls_employee_id}" + }; + + // Immutable. The resource name of the Local Services Verification. + // Local Services Verification resource names have the form: + // + // `customers/{customer_id}/localServicesEmployees/{gls_employee_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesEmployee" + } + ]; + + // Output only. The ID of the employee. + optional int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp of employee creation. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string creation_date_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Employee status, such as DELETED or ENABLED. + google.ads.googleads.v17.enums.LocalServicesEmployeeStatusEnum + .LocalServicesEmployeeStatus status = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Employee type. + google.ads.googleads.v17.enums.LocalServicesEmployeeTypeEnum + .LocalServicesEmployeeType type = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of degrees this employee has obtained, and wants to + // feature. + repeated UniversityDegree university_degrees = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The institutions where the employee has completed their + // residency. + repeated Residency residencies = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The institutions where the employee has completed their + // fellowship. + repeated Fellowship fellowships = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Job title for this employee, such as "Senior partner" in legal + // verticals. + optional string job_title = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The year that this employee started practicing in this field. + optional int32 year_started_practicing = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Languages that the employee speaks, represented as language + // tags from https://developers.google.com/admin-sdk/directory/v1/languages + repeated string languages_spoken = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Category of the employee. A list of Local Services category + // IDs can be found at + // https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids. + repeated string category_ids = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. NPI id associated with the employee. + optional string national_provider_id_number = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the employee. + optional string email_address = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First name of the employee. + optional string first_name = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Middle name of the employee. + optional string middle_name = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last name of the employee. + optional string last_name = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A list of degrees this employee has obtained, and wants to feature. +message UniversityDegree { + // Output only. Name of the university at which the degree was obtained. + optional string institution_name = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the degree obtained. + optional string degree = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Year of graduation. + optional int32 graduation_year = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details about the employee's medical residency. +// Residency is a stage of graduate medical education in which a qualified +// medical professional practices under the supervision of a senior clinician. +message Residency { + // Output only. Name of the institution at which the residency was completed. + optional string institution_name = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Year of completion. + optional int32 completion_year = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details about the employee's medical Fellowship. +// Fellowship is a period of medical training that the professional undertakes +// after finishing their residency. +message Fellowship { + // Output only. Name of the instutition at which the fellowship was completed. + optional string institution_name = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Year of completion. + optional int32 completion_year = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/local_services_lead.proto b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_lead.proto new file mode 100644 index 000000000..c1050c4d7 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_lead.proto @@ -0,0 +1,140 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/local_services_lead_credit_state.proto"; +import "google/ads/googleads/v17/enums/local_services_lead_status.proto"; +import "google/ads/googleads/v17/enums/local_services_lead_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the local services lead resource. + +// Data from Local Services Lead. +// Contains details of Lead which is generated when user calls, messages or +// books service from advertiser. +// More info: https://ads.google.com/local-services-ads +message LocalServicesLead { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocalServicesLead" + pattern: "customers/{customer_id}/localServicesLeads/{local_services_lead_id}" + }; + + // Output only. The resource name of the local services lead data. + // Local Services Lead resource name have the form + // + // `customers/{customer_id}/localServicesLead/{local_services_lead_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesLead" + } + ]; + + // Output only. ID of this Lead. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Service category of the lead. For example: + // `xcat:service_area_business_hvac`, + // `xcat:service_area_business_real_estate_agent`, etc. + // For more details see: + // https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids + string category_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Service for the category. For example: `buyer_agent`, + // `seller_agent` for the category of + // `xcat:service_area_business_real_estate_agent`. + string service_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Lead's contact details. + ContactDetails contact_details = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of Local Services lead: phone, message, booking, etc. + google.ads.googleads.v17.enums.LocalServicesLeadTypeEnum.LeadType lead_type = + 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Current status of lead. + google.ads.googleads.v17.enums.LocalServicesLeadStatusEnum.LeadStatus + lead_status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date time at which lead was created by Local Services Ads. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string creation_date_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Language used by the Local Services provider linked to lead. + // See https://developers.google.com/google-ads/api/data/codes-formats#locales + string locale = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Note added by advertiser for the lead. + optional Note note = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if the advertiser was charged for the lead. + bool lead_charged = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Credit details of the lead. + optional CreditDetails credit_details = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Fields containing consumer contact details. +message ContactDetails { + // Output only. Consumer phone number in E164 format. + string phone_number = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Consumer email address. + string email = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Consumer name if consumer provided name from Message or + // Booking form on google.com + string consumer_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents a note added to a lead by the advertiser. Advertisers can edit +// notes, which will reset edit time and change description. +message Note { + // Output only. The date time when lead note was edited. The format is + // "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. Examples: + // "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string edit_date_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Content of lead note. + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents the credit details of a lead. +message CreditDetails { + // Output only. Credit state of the lead. + google.ads.googleads.v17.enums.LocalServicesCreditStateEnum.CreditState + credit_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date time when the credit state of the lead was last + // updated. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's + // timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string credit_state_last_update_date_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/local_services_lead_conversation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_lead_conversation.proto new file mode 100644 index 000000000..ba1b95558 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_lead_conversation.proto @@ -0,0 +1,113 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/local_services_conversation_type.proto"; +import "google/ads/googleads/v17/enums/local_services_participant_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadConversationProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the local services lead conversation resource. + +// Data from Local Services Lead Conversation. +// Contains details of Lead Conversation which is generated when user calls, +// messages or books service from advertiser. These are appended to a Lead. +// More info: https://ads.google.com/local-services-ads +message LocalServicesLeadConversation { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocalServicesLeadConversation" + pattern: "customers/{customer_id}/localServicesLeadConversations/{local_services_lead_conversation_id}" + }; + + // Output only. The resource name of the local services lead conversation + // data. Local Services Lead Conversation resource name have the form + // + // `customers/{customer_id}/localServicesLeadConversation/{local_services_lead_conversation_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesLeadConversation" + } + ]; + + // Output only. ID of this Lead Conversation. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of GLS lead conversation, EMAIL, MESSAGE, PHONE_CALL, + // SMS, etc. + google.ads.googleads.v17.enums.LocalServicesLeadConversationTypeEnum + .ConversationType conversation_channel = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of participant in the lead conversation, ADVERTISER or + // CONSUMER. + google.ads.googleads.v17.enums.LocalServicesParticipantTypeEnum + .ParticipantType participant_type = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource name of Lead associated to the Lead Conversation. + string lead = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesLead" + } + ]; + + // Output only. The date time at which lead conversation was created by Local + // Services Ads. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads + // account's timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 + // 14:34:30" + string event_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Details of phone call conversation in case of PHONE_CALL. + optional PhoneCallDetails phone_call_details = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Details of message conversation in case of EMAIL, MESSAGE or + // SMS. + optional MessageDetails message_details = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents details of a phone call conversation. +message PhoneCallDetails { + // Output only. The duration (in milliseconds) of the phone call (end to end). + int64 call_duration_millis = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL to the call recording audio file. + string call_recording_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents details of text message in case of email, message or SMS. +message MessageDetails { + // Output only. Textual content of the message. + string text = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL to the SMS or email attachments. These URLs can be used to + // download the contents of the attachment by using the developer token. + repeated string attachment_urls = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/local_services_verification_artifact.proto b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_verification_artifact.proto new file mode 100644 index 000000000..55aa10389 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/local_services_verification_artifact.proto @@ -0,0 +1,214 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/local_services.proto"; +import "google/ads/googleads/v17/enums/local_services_business_registration_check_rejection_reason.proto"; +import "google/ads/googleads/v17/enums/local_services_business_registration_type.proto"; +import "google/ads/googleads/v17/enums/local_services_insurance_rejection_reason.proto"; +import "google/ads/googleads/v17/enums/local_services_license_rejection_reason.proto"; +import "google/ads/googleads/v17/enums/local_services_verification_artifact_status.proto"; +import "google/ads/googleads/v17/enums/local_services_verification_artifact_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesVerificationArtifactProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// A local services verification resource. +message LocalServicesVerificationArtifact { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocalServicesVerificationArtifact" + pattern: "customers/{customer_id}/localServicesVerificationArtifacts/{gls_verification_artifact_id}" + }; + + // Immutable. The resource name of the Local Services Verification. + // Local Services Verification resource names have the form: + // + // `customers/{customer_id}/localServicesVerificationArtifacts/{verification_artifact_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesVerificationArtifact" + } + ]; + + // Output only. The ID of the verification artifact. + optional int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this verification artifact was created. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string creation_date_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the verification artifact. + google.ads.googleads.v17.enums.LocalServicesVerificationArtifactStatusEnum + .LocalServicesVerificationArtifactStatus status = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the verification artifact. + google.ads.googleads.v17.enums.LocalServicesVerificationArtifactTypeEnum + .LocalServicesVerificationArtifactType artifact_type = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The types of verification info. + oneof artifact_data { + // Output only. A background check verification artifact. + BackgroundCheckVerificationArtifact background_check_verification_artifact = + 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An insurance verification artifact. + InsuranceVerificationArtifact insurance_verification_artifact = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A license verification artifact. + LicenseVerificationArtifact license_verification_artifact = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A business registration check verification artifact. + BusinessRegistrationCheckVerificationArtifact + business_registration_check_verification_artifact = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// A proto holding information specific to local services background check. +message BackgroundCheckVerificationArtifact { + // Output only. URL to access background case. + optional string case_url = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this background check case result was + // adjudicated. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads + // account's timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 + // 14:34:30" + optional string final_adjudication_date_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A proto holding information specific to a local services insurance. +message InsuranceVerificationArtifact { + // Output only. Insurance amount. This is measured in "micros" of the currency + // mentioned in the insurance document. + optional int64 amount_micros = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Insurance document's rejection reason. + optional + google.ads.googleads.v17.enums.LocalServicesInsuranceRejectionReasonEnum + .LocalServicesInsuranceRejectionReason rejection_reason = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The readonly field containing the information for an uploaded + // insurance document. + optional google.ads.googleads.v17.common.LocalServicesDocumentReadOnly + insurance_document_readonly = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this insurance expires. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string expiration_date_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A proto holding information specific to a local services license. +message LicenseVerificationArtifact { + // Output only. License type / name. + optional string license_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. License number. + optional string license_number = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First name of the licensee. + optional string licensee_first_name = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last name of the licensee. + optional string licensee_last_name = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. License rejection reason. + optional + google.ads.googleads.v17.enums.LocalServicesLicenseRejectionReasonEnum + .LocalServicesLicenseRejectionReason rejection_reason = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The readonly field containing the information for an uploaded + // license document. + optional google.ads.googleads.v17.common.LocalServicesDocumentReadOnly + license_document_readonly = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this license expires. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string expiration_date_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A proto holding information specific to a local services business +// registration check. +message BusinessRegistrationCheckVerificationArtifact { + // Output only. The type of business registration check (number, document). + optional + google.ads.googleads.v17.enums.LocalServicesBusinessRegistrationTypeEnum + .LocalServicesBusinessRegistrationType registration_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The id of the check, such as vat_tax_id, representing "VAT Tax + // ID" requirement. + optional string check_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Registration document rejection reason. + optional google.ads.googleads.v17.enums + .LocalServicesBusinessRegistrationCheckRejectionReasonEnum + .LocalServicesBusinessRegistrationCheckRejectionReason rejection_reason = + 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Registration information for the business registration. It will be one + // of the following forms based on the requirement from different countries. + oneof business_registration { + // Output only. Message storing government issued number for the business. + BusinessRegistrationNumber registration_number = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Message storing document info for the business. + BusinessRegistrationDocument registration_document = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// A proto holding information specific to a local services business +// registration number. +message BusinessRegistrationNumber { + // Output only. Government-issued number for the business. + optional string number = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A proto holding information specific to a local services business +// registration document. +message BusinessRegistrationDocument { + // Output only. The readonly field containing the information for an uploaded + // business registration document. + optional google.ads.googleads.v17.common.LocalServicesDocumentReadOnly + document_readonly = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/location_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/location_view.proto similarity index 71% rename from third_party/googleapis/google/ads/googleads/v14/resources/location_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/location_view.proto index 1d0aa75e5..94ff48184 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/location_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/location_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LocationViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the location view resource. -// A location view summarizes the performance of campaigns by -// Location criteria. +// A location view summarizes the performance of campaigns by a Location +// criterion. +// If no Location criterion is set, no results are returned; instead, use +// geographic_view or user_location_view for visitor location data. message LocationView { option (google.api.resource) = { type: "googleads.googleapis.com/LocationView" diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/managed_placement_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/managed_placement_view.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/managed_placement_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/managed_placement_view.proto index 742862b93..07d946ade 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/managed_placement_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/managed_placement_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ManagedPlacementViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Managed Placement view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/media_file.proto b/third_party/googleapis/google/ads/googleads/v17/resources/media_file.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/resources/media_file.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/media_file.proto index 785ea82f4..3d681e9a5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/media_file.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/media_file.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/media_type.proto"; -import "google/ads/googleads/v14/enums/mime_type.proto"; +import "google/ads/googleads/v17/enums/media_type.proto"; +import "google/ads/googleads/v17/enums/mime_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "MediaFileProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the media file resource. @@ -54,11 +54,11 @@ message MediaFile { optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Type of the media file. - google.ads.googleads.v14.enums.MediaTypeEnum.MediaType type = 5 + google.ads.googleads.v17.enums.MediaTypeEnum.MediaType type = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The mime type of the media file. - google.ads.googleads.v14.enums.MimeTypeEnum.MimeType mime_type = 6 + google.ads.googleads.v17.enums.MimeTypeEnum.MimeType mime_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The URL of where the original media file was downloaded from (or diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/mobile_app_category_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/mobile_app_category_constant.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/mobile_app_category_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/mobile_app_category_constant.proto index 466442592..f94ae1207 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/mobile_app_category_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/mobile_app_category_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "MobileAppCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Mobile App Category Constant resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/mobile_device_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/mobile_device_constant.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/mobile_device_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/mobile_device_constant.proto index 69ecb35d3..ae223d78d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/mobile_device_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/mobile_device_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/mobile_device_type.proto"; +import "google/ads/googleads/v17/enums/mobile_device_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "MobileDeviceConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the mobile device constant resource. @@ -64,6 +64,6 @@ message MobileDeviceConstant { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of mobile device. - google.ads.googleads.v14.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 + google.ads.googleads.v17.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto b/third_party/googleapis/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto new file mode 100644 index 000000000..79cca66f5 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto @@ -0,0 +1,175 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto"; +import "google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto"; +import "google/ads/googleads/v17/errors/collection_size_error.proto"; +import "google/ads/googleads/v17/errors/conversion_adjustment_upload_error.proto"; +import "google/ads/googleads/v17/errors/conversion_upload_error.proto"; +import "google/ads/googleads/v17/errors/date_error.proto"; +import "google/ads/googleads/v17/errors/distinct_error.proto"; +import "google/ads/googleads/v17/errors/field_error.proto"; +import "google/ads/googleads/v17/errors/mutate_error.proto"; +import "google/ads/googleads/v17/errors/not_allowlisted_error.proto"; +import "google/ads/googleads/v17/errors/string_format_error.proto"; +import "google/ads/googleads/v17/errors/string_length_error.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OfflineConversionUploadClientSummaryProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Offline conversion upload client summary. +message OfflineConversionUploadClientSummary { + option (google.api.resource) = { + type: "googleads.googleapis.com/OfflineConversionUploadClientSummary" + pattern: "customers/{customer_id}/offlineConversionUploadClientSummaries/{client}" + }; + + // Output only. The resource name of the offline conversion upload client + // summary. Offline conversion upload client summary resource names have the + // form: + // + // `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineConversionUploadClientSummary" + } + ]; + + // Output only. Client type of the upload event. + google.ads.googleads.v17.enums.OfflineEventUploadClientEnum + .OfflineEventUploadClient client = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Overall status for offline conversion client summary. Status + // is generated + // from most recent calendar day with upload stats + google.ads.googleads.v17.enums.OfflineConversionDiagnosticStatusEnum + .OfflineConversionDiagnosticStatus status = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of uploaded events. + int64 total_event_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of successful uploaded events. + int64 successful_event_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Successful rate. + double success_rate = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date for the latest upload batch. The format is "yyyy-mm-dd + // hh:mm:ss", and it's in the time zone of the Google Ads account. + string last_upload_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of history stats by last N days. + repeated OfflineConversionSummary daily_summaries = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of history stats by last N jobs. + repeated OfflineConversionSummary job_summaries = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Details for each error code. Alerts are generated from most + // recent calendar day with upload stats. + repeated OfflineConversionAlert alerts = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Historical upload summary, grouped by upload date or job. +message OfflineConversionSummary { + // Output only. Total count of successful event. + int64 successful_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of failed event. + int64 failed_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Dimension key for summary. + oneof dimension_key { + // Output only. Dimension key for last N jobs. + int64 job_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dimension key for last N days. + string upload_date = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// Alert for offline conversion client summary. +message OfflineConversionAlert { + // Output only. Error for offline conversion client alert. + OfflineConversionError error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Percentage of the error, the range of this field should be + // [0, 1.0]. + double error_percentage = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Possible errors for offline conversion client summary. +message OfflineConversionError { + // Error with description. + oneof error_code { + // Output only. Collection size error. + google.ads.googleads.v17.errors.CollectionSizeErrorEnum.CollectionSizeError + collection_size_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion adjustment upload error. + google.ads.googleads.v17.errors.ConversionAdjustmentUploadErrorEnum + .ConversionAdjustmentUploadError conversion_adjustment_upload_error = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion upload error. + google.ads.googleads.v17.errors.ConversionUploadErrorEnum + .ConversionUploadError conversion_upload_error = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date error. + google.ads.googleads.v17.errors.DateErrorEnum.DateError date_error = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Distinct error. + google.ads.googleads.v17.errors.DistinctErrorEnum.DistinctError + distinct_error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Field error. + google.ads.googleads.v17.errors.FieldErrorEnum.FieldError field_error = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mutate error. + google.ads.googleads.v17.errors.MutateErrorEnum.MutateError mutate_error = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Not allowlisted error. + google.ads.googleads.v17.errors.NotAllowlistedErrorEnum.NotAllowlistedError + not_allowlisted_error = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. String format error. + google.ads.googleads.v17.errors.StringFormatErrorEnum.StringFormatError + string_format_error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. String length error. + google.ads.googleads.v17.errors.StringLengthErrorEnum.StringLengthError + string_length_error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/offline_user_data_job.proto b/third_party/googleapis/google/ads/googleads/v17/resources/offline_user_data_job.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/resources/offline_user_data_job.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/offline_user_data_job.proto index 303d51d6e..7d6cd5c90 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/offline_user_data_job.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/offline_user_data_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/offline_user_data.proto"; -import "google/ads/googleads/v14/enums/offline_user_data_job_failure_reason.proto"; -import "google/ads/googleads/v14/enums/offline_user_data_job_match_rate_range.proto"; -import "google/ads/googleads/v14/enums/offline_user_data_job_status.proto"; -import "google/ads/googleads/v14/enums/offline_user_data_job_type.proto"; +import "google/ads/googleads/v17/common/offline_user_data.proto"; +import "google/ads/googleads/v17/enums/offline_user_data_job_failure_reason.proto"; +import "google/ads/googleads/v17/enums/offline_user_data_job_match_rate_range.proto"; +import "google/ads/googleads/v17/enums/offline_user_data_job_status.proto"; +import "google/ads/googleads/v17/enums/offline_user_data_job_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the offline user data job resource. @@ -63,17 +63,17 @@ message OfflineUserDataJob { optional int64 external_id = 10 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Type of the job. - google.ads.googleads.v14.enums.OfflineUserDataJobTypeEnum + google.ads.googleads.v17.enums.OfflineUserDataJobTypeEnum .OfflineUserDataJobType type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Status of the job. - google.ads.googleads.v14.enums.OfflineUserDataJobStatusEnum + google.ads.googleads.v17.enums.OfflineUserDataJobStatusEnum .OfflineUserDataJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Reason for the processing failure, if status is FAILED. - google.ads.googleads.v14.enums.OfflineUserDataJobFailureReasonEnum + google.ads.googleads.v17.enums.OfflineUserDataJobFailureReasonEnum .OfflineUserDataJobFailureReason failure_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -84,12 +84,12 @@ message OfflineUserDataJob { // Metadata of the job. oneof metadata { // Immutable. Metadata for data updates to a CRM-based user list. - google.ads.googleads.v14.common.CustomerMatchUserListMetadata + google.ads.googleads.v17.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Metadata for store sales data update. - google.ads.googleads.v14.common.StoreSalesMetadata store_sales_metadata = 8 + google.ads.googleads.v17.common.StoreSalesMetadata store_sales_metadata = 8 [(google.api.field_behavior) = IMMUTABLE]; } } @@ -100,7 +100,7 @@ message OfflineUserDataJobMetadata { // the estimated match rate when the status of the job is "RUNNING" and final // match rate when the final match rate is available after the status of the // job is "SUCCESS/FAILED". - google.ads.googleads.v14.enums.OfflineUserDataJobMatchRateRangeEnum + google.ads.googleads.v17.enums.OfflineUserDataJobMatchRateRangeEnum .OfflineUserDataJobMatchRateRange match_rate_range = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/operating_system_version_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/operating_system_version_constant.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/operating_system_version_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/operating_system_version_constant.proto index ba8b7eaf2..bf2caf2d5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/operating_system_version_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/operating_system_version_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/operating_system_version_operator_type.proto"; +import "google/ads/googleads/v17/enums/operating_system_version_operator_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "OperatingSystemVersionConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the operating system version constant resource. @@ -67,7 +67,7 @@ message OperatingSystemVersionConstant { // Output only. Determines whether this constant represents a single version // or a range of versions. - google.ads.googleads.v14.enums.OperatingSystemVersionOperatorTypeEnum + google.ads.googleads.v17.enums.OperatingSystemVersionOperatorTypeEnum .OperatingSystemVersionOperatorType operator_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/paid_organic_search_term_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/paid_organic_search_term_view.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/paid_organic_search_term_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/paid_organic_search_term_view.proto index 374a121dd..631f40eb2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/paid_organic_search_term_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/paid_organic_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "PaidOrganicSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the PaidOrganicSearchTermView resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/parental_status_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/parental_status_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/parental_status_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/parental_status_view.proto index c10fb2588..479ab5a06 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/parental_status_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/parental_status_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ParentalStatusViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the parental status view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/payments_account.proto b/third_party/googleapis/google/ads/googleads/v17/resources/payments_account.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/resources/payments_account.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/payments_account.proto index 83be4e11d..e76916571 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/payments_account.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/payments_account.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "PaymentsAccountProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the PaymentsAccount resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/per_store_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/per_store_view.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/per_store_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/per_store_view.proto index a82139d2e..7b87659c0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/per_store_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/per_store_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "PerStoreViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the PerStoreView resource. diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/product_category_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/product_category_constant.proto new file mode 100644 index 000000000..bf4c15cd9 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/product_category_constant.proto @@ -0,0 +1,94 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/product_category_level.proto"; +import "google/ads/googleads/v17/enums/product_category_state.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ProductCategoryConstantProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the ProductCategoryConstant resource. + +// A Product Category. +message ProductCategoryConstant { + option (google.api.resource) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + pattern: "productCategoryConstants/{level}~{category_id}" + plural: "productCategoryConstants" + singular: "productCategoryConstant" + }; + + // Localization for the product category. + message ProductCategoryLocalization { + // Output only. Upper-case two-letter ISO 3166-1 country code of the + // localized category. + string region_code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Two-letter ISO 639-1 language code of the localized + // category. + string language_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the category in the specified locale. + string value = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the product category. + // Product category resource names have the form: + // + // `productCategoryConstants/{level}~{category_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The ID of the product category. + // + // This ID is equivalent to the google_product_category ID as described in + // this article: https://support.google.com/merchants/answer/6324436. + int64 category_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Resource name of the parent product category. + optional string product_category_constant_parent = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. Level of the product category. + google.ads.googleads.v17.enums.ProductCategoryLevelEnum.ProductCategoryLevel + level = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of the product category. + google.ads.googleads.v17.enums.ProductCategoryStateEnum.ProductCategoryState + state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of all available localizations of the product category. + repeated ProductCategoryLocalization localizations = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/product_group_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/product_group_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/product_group_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/product_group_view.proto index 402dbff71..bec721d77 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/product_group_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/product_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ProductGroupViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ProductGroup View resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/product_link.proto b/third_party/googleapis/google/ads/googleads/v17/resources/product_link.proto similarity index 62% rename from third_party/googleapis/google/ads/googleads/v14/resources/product_link.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/product_link.proto index c1f8a1a45..4f322eeda 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/product_link.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/product_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/linked_product_type.proto"; +import "google/ads/googleads/v17/enums/linked_product_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ProductLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Represents the data sharing connection between a Google // Ads customer and another product. @@ -54,7 +54,7 @@ message ProductLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the linked product. - google.ads.googleads.v14.enums.LinkedProductTypeEnum.LinkedProductType type = + google.ads.googleads.v17.enums.LinkedProductTypeEnum.LinkedProductType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // A product linked to this account. @@ -66,6 +66,14 @@ message ProductLink { // Immutable. Google Ads link. GoogleAdsIdentifier google_ads = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Google Merchant Center link. + MerchantCenterIdentifier merchant_center = 12 + [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Advertising Partner link. + AdvertisingPartnerIdentifier advertising_partner = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -91,3 +99,27 @@ message GoogleAdsIdentifier { } ]; } + +// The identifier for Google Merchant Center account +message MerchantCenterIdentifier { + // Immutable. The customer ID of the Google Merchant Center account. + // This field is required and should not be empty when creating a new + // Merchant Center link. It is unable to be modified after the creation of + // the link. + optional int64 merchant_center_id = 1 + [(google.api.field_behavior) = IMMUTABLE]; +} + +// The identifier for the Advertising Partner Google Ads account. +message AdvertisingPartnerIdentifier { + // Output only. The resource name of the advertising partner Google Ads + // account. This field is required and should not be empty when creating a new + // Advertising Partner link. It is unable to be modified after the creation of + // the link. + optional string customer = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/product_link_invitation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/product_link_invitation.proto new file mode 100644 index 000000000..8e25bcde7 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/product_link_invitation.proto @@ -0,0 +1,109 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/linked_product_type.proto"; +import "google/ads/googleads/v17/enums/product_link_invitation_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ProductLinkInvitationProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Represents an invitation for data sharing connection between a Google Ads +// account and another account. +message ProductLinkInvitation { + option (google.api.resource) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + pattern: "customers/{customer_id}/productLinkInvitations/{customer_invitation_id}" + }; + + // Immutable. The resource name of a product link invitation. + // Product link invitation resource names have the form: + // + // `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + } + ]; + + // Output only. The ID of the product link invitation. + // This field is read only. + int64 product_link_invitation_id = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the product link invitation. + // This field is read only. + google.ads.googleads.v17.enums.ProductLinkInvitationStatusEnum + .ProductLinkInvitationStatus status = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the invited account. + // This field is read only and can be used for filtering invitations with + // {@code GoogleAdsService.SearchGoogleAdsRequest}. + google.ads.googleads.v17.enums.LinkedProductTypeEnum.LinkedProductType type = + 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An account invited to link to this Google Ads account. + oneof invited_account { + // Output only. Hotel link invitation. + HotelCenterLinkInvitationIdentifier hotel_center = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Merchant Center link invitation. + MerchantCenterLinkInvitationIdentifier merchant_center = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Advertising Partner link invitation. + AdvertisingPartnerLinkInvitationIdentifier advertising_partner = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// The identifier for Hotel account. +message HotelCenterLinkInvitationIdentifier { + // Output only. The hotel center id of the hotel account. + // This field is read only + int64 hotel_center_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The identifier for Merchant Center Account. +message MerchantCenterLinkInvitationIdentifier { + // Output only. The Merchant Center id of the Merchant account. + // This field is read only + int64 merchant_center_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The identifier for the Advertising Partner Google Ads account. +message AdvertisingPartnerLinkInvitationIdentifier { + // Immutable. The resource name of the advertising partner Google Ads account. + // This field is read only. + optional string customer = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/qualifying_question.proto b/third_party/googleapis/google/ads/googleads/v17/resources/qualifying_question.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/qualifying_question.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/qualifying_question.proto index b50094aec..2cb265acf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/qualifying_question.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/qualifying_question.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "QualifyingQuestionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the PerStoreView resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/recommendation.proto b/third_party/googleapis/google/ads/googleads/v17/resources/recommendation.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/resources/recommendation.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/recommendation.proto index 2b0f02eea..32174f198 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/recommendation.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/recommendation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; - -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/app_bidding_goal.proto"; -import "google/ads/googleads/v14/enums/keyword_match_type.proto"; -import "google/ads/googleads/v14/enums/recommendation_type.proto"; -import "google/ads/googleads/v14/enums/shopping_add_products_to_campaign_recommendation_enum.proto"; -import "google/ads/googleads/v14/enums/target_cpa_opt_in_recommendation_goal.proto"; -import "google/ads/googleads/v14/resources/ad.proto"; -import "google/ads/googleads/v14/resources/asset.proto"; +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/ad_strength.proto"; +import "google/ads/googleads/v17/enums/app_bidding_goal.proto"; +import "google/ads/googleads/v17/enums/keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/recommendation_type.proto"; +import "google/ads/googleads/v17/enums/shopping_add_products_to_campaign_recommendation_enum.proto"; +import "google/ads/googleads/v17/enums/target_cpa_opt_in_recommendation_goal.proto"; +import "google/ads/googleads/v17/resources/ad.proto"; +import "google/ads/googleads/v17/resources/asset.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "RecommendationProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Recommendation resource. @@ -86,6 +87,10 @@ message Recommendation { // Output only. Number of conversions. optional double conversions = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Sum of the conversion value of the conversions. + optional double conversions_value = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Number of video views for a video ad campaign. optional double video_views = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -133,7 +138,7 @@ message Recommendation { } // Output only. The recommended keyword. - google.ads.googleads.v14.common.KeywordInfo keyword = 1 + google.ads.googleads.v17.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. A list of search terms this keyword matches. The same search @@ -167,7 +172,7 @@ message Recommendation { // The Target CPA opt-in option with impact estimate. message TargetCpaOptInRecommendationOption { // Output only. The goal achieved by this option. - google.ads.googleads.v14.enums.TargetCpaOptInRecommendationGoalEnum + google.ads.googleads.v17.enums.TargetCpaOptInRecommendationGoalEnum .TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -252,11 +257,11 @@ message Recommendation { message KeywordMatchTypeRecommendation { // Output only. The existing keyword where the match type should be more // broad. - google.ads.googleads.v14.common.KeywordInfo keyword = 1 + google.ads.googleads.v17.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The recommended new match type. - google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v17.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -313,7 +318,7 @@ message Recommendation { // The use broad match keyword recommendation. message UseBroadMatchKeywordRecommendation { // Output only. Sample of keywords to be expanded to Broad Match. - repeated google.ads.googleads.v14.common.KeywordInfo keyword = 1 + repeated google.ads.googleads.v17.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Total number of keywords to be expanded to Broad Match in @@ -436,7 +441,7 @@ message Recommendation { string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The reason why no products are attached to the campaign. - google.ads.googleads.v14.enums + google.ads.googleads.v17.enums .ShoppingAddProductsToCampaignRecommendationEnum.Reason reason = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -491,7 +496,7 @@ message Recommendation { // Output only. Represents the goal towards which the bidding strategy // should optimize. Only populated for App Campaigns. - optional google.ads.googleads.v14.enums.AppBiddingGoalEnum.AppBiddingGoal + optional google.ads.googleads.v17.enums.AppBiddingGoalEnum.AppBiddingGoal app_bidding_goal = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -519,7 +524,7 @@ message Recommendation { // Output only. The date when the new budget would start being used. // This field will be set for the following recommendation types: - // FORECASTING_SET_TARGET_ROAS + // FORECASTING_SET_TARGET_ROAS , FORECASTING_SET_TARGET_CPA // YYYY-MM-DD format, for example, 2018-04-17. string new_start_date = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -541,6 +546,90 @@ message Recommendation { string apply_link = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // The set target CPA recommendations. + message ForecastingSetTargetCpaRecommendation { + // Output only. The recommended target CPA. + int64 recommended_target_cpa_micros = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The campaign budget. + CampaignBudget campaign_budget = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Recommendation to opt into Maximize Conversion Value bidding strategy. + message MaximizeConversionValueOptInRecommendation {} + + // Recommendation to deploy Google Tag on more pages. + message ImproveGoogleTagCoverageRecommendation {} + + // Recommendation to turn on Final URL expansion for your Performance Max + // campaigns. + message PerformanceMaxFinalUrlOptInRecommendation {} + + // The recommendation to update a customer list that hasn't been updated in + // the last 90 days. The customer receiving the recommendation is not + // necessarily the owner account. The owner account should update the customer + // list. + message RefreshCustomerMatchListRecommendation { + // Output only. The user list ID. + int64 user_list_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the list. + string user_list_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Days since last refresh. + int64 days_since_last_refresh = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The top spending account. + repeated AccountInfo top_spending_account = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. User lists can be shared with other accounts by the owner. + // targeting_accounts_count is the number of those accounts that can use it + // for targeting. + int64 targeting_accounts_count = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The owner account. This is the account that should update + // the customer list. + AccountInfo owner_account = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Wrapper for information about a Google Ads account. + message AccountInfo { + // Output only. The customer ID of the account. + int64 customer_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The descriptive name of the account. + string descriptive_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Custom Audience Opt In recommendation. + message CustomAudienceOptInRecommendation { + // Output only. The list of keywords to use for custom audience creation. + repeated google.ads.googleads.v17.common.KeywordInfo keywords = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The lead form asset recommendation. + message LeadFormAssetRecommendation {} + + // The improve Demand Gen ad strength recommendation. + message ImproveDemandGenAdStrengthRecommendation { + // Output only. The resource name of the ad that can be improved. + string ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current ad strength. + google.ads.googleads.v17.enums.AdStrengthEnum.AdStrength ad_strength = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of recommendations to improve the ad strength. + repeated string demand_gen_asset_action_items = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Immutable. The resource name of the recommendation. // // `customers/{customer_id}/recommendations/{recommendation_id}` @@ -552,7 +641,7 @@ message Recommendation { ]; // Output only. The type of recommendation. - google.ads.googleads.v14.enums.RecommendationTypeEnum.RecommendationType + google.ads.googleads.v17.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The impact on account performance as a result of applying the @@ -590,6 +679,9 @@ message Recommendation { // SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN, SHOPPING_FIX_DISAPPROVED_PRODUCTS, // SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX, // DYNAMIC_IMAGE_EXTENSION_OPT_IN, RAISE_TARGET_CPA, LOWER_TARGET_ROAS, + // FORECASTING_SET_TARGET_CPA, + // SET_TARGET_CPA, SET_TARGET_ROAS, MAXIMIZE_CONVERSION_VALUE_OPT_IN, + // IMPROVE_GOOGLE_TAG_COVERAGE, PERFORMANCE_MAX_FINAL_URL_OPT_IN optional string campaign = 25 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -828,5 +920,52 @@ message Recommendation { MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation migrate_dynamic_search_ads_campaign_to_performance_max_recommendation = 59 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The forecasting set target CPA recommendation. + ForecastingSetTargetCpaRecommendation + forecasting_set_target_cpa_recommendation = 60 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The set target CPA recommendation. + ForecastingSetTargetCpaRecommendation set_target_cpa_recommendation = 61 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The set target ROAS recommendation. + ForecastingSetTargetRoasRecommendation set_target_roas_recommendation = 62 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Maximize Conversion Value opt-in recommendation. + MaximizeConversionValueOptInRecommendation + maximize_conversion_value_opt_in_recommendation = 63 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Recommendation to deploy Google Tag on more pages. + ImproveGoogleTagCoverageRecommendation + improve_google_tag_coverage_recommendation = 64 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Recommendation to turn on Final URL expansion for your + // Performance Max campaigns. + PerformanceMaxFinalUrlOptInRecommendation + performance_max_final_url_opt_in_recommendation = 65 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The refresh customer list recommendation. + RefreshCustomerMatchListRecommendation + refresh_customer_match_list_recommendation = 66 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom audience opt in recommendation. + CustomAudienceOptInRecommendation custom_audience_opt_in_recommendation = 67 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The lead form asset recommendation. + LeadFormAssetRecommendation lead_form_asset_recommendation = 68 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The improve Demand Gen ad strength recommendation. + ImproveDemandGenAdStrengthRecommendation + improve_demand_gen_ad_strength_recommendation = 69 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/recommendation_subscription.proto b/third_party/googleapis/google/ads/googleads/v17/resources/recommendation_subscription.proto new file mode 100644 index 000000000..0008589f9 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/recommendation_subscription.proto @@ -0,0 +1,75 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/recommendation_subscription_status.proto"; +import "google/ads/googleads/v17/enums/recommendation_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationSubscriptionProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the RecommendationSubscription resource. + +// Recommendation Subscription resource +message RecommendationSubscription { + option (google.api.resource) = { + type: "googleads.googleapis.com/RecommendationSubscription" + pattern: "customers/{customer_id}/recommendationSubscriptions/{recommendation_type}" + }; + + // Immutable. The resource name of the recommendation subscription. + // + // `customers/{customer_id}/recommendationSubscriptions/{recommendation_type}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/RecommendationSubscription" + } + ]; + + // Required. Immutable. The type of recommendation subscribed to. + google.ads.googleads.v17.enums.RecommendationTypeEnum.RecommendationType + type = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. Time in seconds when the subscription was first created. The + // datetime is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss" + // format. + optional string create_date_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Contains the time in microseconds, when the Recommendation + // Subscription was last updated. The datetime is in the customer's time zone + // and in "yyyy-MM-dd HH:mm:ss.ssssss" format. + optional string modify_date_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Status of the subscription, either enabled or paused. + optional google.ads.googleads.v17.enums.RecommendationSubscriptionStatusEnum + .RecommendationSubscriptionStatus status = 5 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/remarketing_action.proto b/third_party/googleapis/google/ads/googleads/v17/resources/remarketing_action.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/remarketing_action.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/remarketing_action.proto index 37b66d013..225e5125f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/remarketing_action.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/remarketing_action.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/tag_snippet.proto"; +import "google/ads/googleads/v17/common/tag_snippet.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "RemarketingActionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Remarketing Action resource. @@ -61,6 +61,6 @@ message RemarketingAction { optional string name = 6; // Output only. The snippets used for tracking remarketing actions. - repeated google.ads.googleads.v14.common.TagSnippet tag_snippets = 4 + repeated google.ads.googleads.v17.common.TagSnippet tag_snippets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/search_term_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/search_term_view.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/search_term_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/search_term_view.proto index 83f99467d..cc64b191b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/search_term_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/search_term_targeting_status.proto"; +import "google/ads/googleads/v17/enums/search_term_targeting_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SearchTermViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the SearchTermView resource. @@ -63,7 +63,7 @@ message SearchTermView { // Output only. Indicates whether the search term is currently one of your // targeted or excluded keywords. - google.ads.googleads.v14.enums.SearchTermTargetingStatusEnum + google.ads.googleads.v17.enums.SearchTermTargetingStatusEnum .SearchTermTargetingStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/shared_criterion.proto b/third_party/googleapis/google/ads/googleads/v17/resources/shared_criterion.proto similarity index 71% rename from third_party/googleapis/google/ads/googleads/v14/resources/shared_criterion.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/shared_criterion.proto index 839affcc4..c3fd73559 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/shared_criterion.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/shared_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/enums/criterion_type.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/enums/criterion_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SharedCriterionProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the SharedCriterion resource. @@ -64,7 +64,7 @@ message SharedCriterion { optional int64 criterion_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the criterion. - google.ads.googleads.v14.enums.CriterionTypeEnum.CriterionType type = 4 + google.ads.googleads.v17.enums.CriterionTypeEnum.CriterionType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // The criterion. @@ -72,27 +72,31 @@ message SharedCriterion { // Exactly one must be set. oneof criterion { // Immutable. Keyword. - google.ads.googleads.v14.common.KeywordInfo keyword = 3 + google.ads.googleads.v17.common.KeywordInfo keyword = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v14.common.YouTubeVideoInfo youtube_video = 5 + google.ads.googleads.v17.common.YouTubeVideoInfo youtube_video = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v14.common.YouTubeChannelInfo youtube_channel = 6 + google.ads.googleads.v17.common.YouTubeChannelInfo youtube_channel = 6 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v14.common.PlacementInfo placement = 7 + google.ads.googleads.v17.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile App Category. - google.ads.googleads.v14.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v17.common.MobileAppCategoryInfo mobile_app_category = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile application. - google.ads.googleads.v14.common.MobileApplicationInfo mobile_application = 9 + google.ads.googleads.v17.common.MobileApplicationInfo mobile_application = 9 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Brand. + google.ads.googleads.v17.common.BrandInfo brand = 12 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/shared_set.proto b/third_party/googleapis/google/ads/googleads/v17/resources/shared_set.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/shared_set.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/shared_set.proto index 656c151de..3d78b9eaa 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/shared_set.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/shared_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/enums/shared_set_status.proto"; -import "google/ads/googleads/v14/enums/shared_set_type.proto"; +import "google/ads/googleads/v17/enums/shared_set_status.proto"; +import "google/ads/googleads/v17/enums/shared_set_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SharedSetProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the SharedSet resource. @@ -56,7 +56,7 @@ message SharedSet { // Immutable. The type of this shared set: each shared set holds only a single // kind of resource. Required. Immutable. - google.ads.googleads.v14.enums.SharedSetTypeEnum.SharedSetType type = 3 + google.ads.googleads.v17.enums.SharedSetTypeEnum.SharedSetType type = 3 [(google.api.field_behavior) = IMMUTABLE]; // The name of this shared set. Required. @@ -67,7 +67,7 @@ message SharedSet { optional string name = 9; // Output only. The status of this shared set. Read only. - google.ads.googleads.v14.enums.SharedSetStatusEnum.SharedSetStatus status = 5 + google.ads.googleads.v17.enums.SharedSetStatusEnum.SharedSetStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The number of shared criteria within this shared set. Read diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/shopping_performance_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/shopping_performance_view.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/shopping_performance_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/shopping_performance_view.proto index 495adaa5e..cb3dc90ed 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/shopping_performance_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/shopping_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ShoppingPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the ShoppingPerformanceView resource. diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/shopping_product.proto b/third_party/googleapis/google/ads/googleads/v17/resources/shopping_product.proto new file mode 100644 index 000000000..d369361fc --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/shopping_product.proto @@ -0,0 +1,303 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/product_availability.proto"; +import "google/ads/googleads/v17/enums/product_channel.proto"; +import "google/ads/googleads/v17/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v17/enums/product_condition.proto"; +import "google/ads/googleads/v17/enums/product_issue_severity.proto"; +import "google/ads/googleads/v17/enums/product_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ShoppingProductProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Proto file describing the ShoppingProduct resource. + +// A shopping product from Google Merchant Center that can be advertised by +// campaigns. +// +// The resource returns currently existing products from Google Merchant Center +// accounts linked with the customer. A campaign includes a product by +// specifying its merchant id (or, if available, the Multi Client Account id of +// the merchant) in the `ShoppingSetting`, and can limit the inclusion to +// products having a specified feed label. Standard Shopping campaigns can also +// limit the inclusion through a `campaign_criterion.listing_scope`. +// +// Queries to this resource specify a scope: +// Account: +// - Filters on campaigns or ad groups are not specified. +// - All products from the linked Google Merchant Center accounts are +// returned. +// - Metrics and some fields (see the per-field documentation) are aggregated +// across all Shopping and Performance Max campaigns that include a product. +// Campaign: +// - An equality filter on `campaign` is specified. Supported campaign types +// are Shopping, Performance Max, Demand Gen, Video. +// - Only products that are included by the specified campaign are returned. +// - Metrics and some fields (see the per-field documentation) are restricted +// to the specified campaign. +// Ad group: +// - An equality filter on `ad group` and `campaign` is specified. Supported +// campaign types are Shopping, Demand Gen, Video. +// - Only products that are included by the specified campaign are returned. +// - Metrics and some fields (see the per-field documentation) are restricted +// to the specified ad group. +// Note that segmentation by date segments is not permitted and will return +// UNSUPPORTED_DATE_SEGMENTATION error. On the other hand, filtering on date +// segments is allowed. +message ShoppingProduct { + option (google.api.resource) = { + type: "googleads.googleapis.com/ShoppingProduct" + pattern: "customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}" + plural: "shoppingProducts" + singular: "shoppingProduct" + }; + + // An issue affecting whether a product can show in ads. + message ProductIssue { + // Output only. The error code that identifies the issue. + string error_code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The severity of the issue in Google Ads. + google.ads.googleads.v17.enums.ProductIssueSeverityEnum.ProductIssueSeverity + ads_severity = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the product's attribute, if any, that triggered + // the issue. + optional string attribute_name = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The short description of the issue in English. + string description = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed description of the issue in English. + string detail = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the Help Center article for the issue. + string documentation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of upper-case two-letter ISO 3166-1 codes of the + // regions affected by the issue. If empty, all regions are affected. + repeated string affected_regions = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the shopping product. + // Shopping product resource names have the form: + // + // `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ShoppingProduct" + } + ]; + + // Output only. The id of the merchant that owns the product. + int64 merchant_center_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product channel describing the locality of the product. + google.ads.googleads.v17.enums.ProductChannelEnum.ProductChannel channel = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The language code as provided by the merchant, in BCP 47 + // format. + string language_code = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product feed label as provided by the merchant. + string feed_label = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The item id of the product as provided by the merchant. + string item_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The id of the Multi Client Account of the merchant, if + // present. + optional int64 multi_client_account_id = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The title of the product as provided by the merchant. + optional string title = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The brand of the product as provided by the merchant. + optional string brand = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The price of the product in micros as provided by the + // merchant, in the currency specified in `currency_code` (e.g. $2.97 is + // reported as 2970000). + optional int64 price_micros = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The currency code as provided by the merchant, in ISO 4217 + // format. + optional string currency_code = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The channel exclusivity of the product as provided by the + // merchant. + optional google.ads.googleads.v17.enums.ProductChannelExclusivityEnum + .ProductChannelExclusivity channel_exclusivity = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The condition of the product as provided by the merchant. + optional google.ads.googleads.v17.enums.ProductConditionEnum.ProductCondition + condition = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The availability of the product as provided by the merchant. + optional + google.ads.googleads.v17.enums.ProductAvailabilityEnum.ProductAvailability + availability = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Upper-case two-letter ISO 3166-1 code of the regions where the + // product is intended to be shown in ads. + repeated string target_countries = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 0 of the product as provided by the + // merchant. + optional string custom_attribute0 = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 1 of the product as provided by the + // merchant. + optional string custom_attribute1 = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 2 of the product as provided by the + // merchant. + optional string custom_attribute2 = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 3 of the product as provided by the + // merchant. + optional string custom_attribute3 = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 4 of the product as provided by the + // merchant. + optional string custom_attribute4 = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The category level 1 of the product. + optional string category_level1 = 21 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 2 of the product. + optional string category_level2 = 22 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 3 of the product. + optional string category_level3 = 23 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 4 of the product. + optional string category_level4 = 24 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 5 of the product. + optional string category_level5 = 25 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The product type level 1 as provided by the merchant. + optional string product_type_level1 = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 2 as provided by the merchant. + optional string product_type_level2 = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 3 as provided by the merchant. + optional string product_type_level3 = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 4 as provided by the merchant. + optional string product_type_level4 = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 5 as provided by the merchant. + optional string product_type_level5 = 30 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective maximum cost-per-click (effective max. CPC) of + // the product. This field is available only if the query specifies the + // campaign or ad group scope, and if the campaign uses manual bidding. The + // value is the highest bid set for the product in product groups across all + // enabled ad groups. It represents the most you're willing to pay for a click + // on the product. This field can take up to 24 hours to update. + optional int64 effective_max_cpc_micros = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status that indicates whether the product can show in ads. + // The value of this field is restricted to the scope specified in the query, + // see the documentation of the resource. + // This field can take up to 24 hours to update. + google.ads.googleads.v17.enums.ProductStatusEnum.ProductStatus status = 32 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of issues affecting whether the product can show in + // ads. The value of this field is restricted to the scope specified in the + // query, see the documentation of the resource. This field can take up to 24 + // hours to update. + repeated ProductIssue issues = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A campaign that includes the product. + // This field is selectable only in the campaign scope, which requires an + // equality filter on `campaign`. + optional string campaign = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. An ad group of a campaign that includes the product. + // This field is selectable only in the ad group scope, which requires an + // equality filter on `campaign` and `ad_group`. + optional string ad_group = 35 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/smart_campaign_search_term_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/smart_campaign_search_term_view.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/smart_campaign_search_term_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/smart_campaign_search_term_view.proto index 3838f9417..24127db0c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/smart_campaign_search_term_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/smart_campaign_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the SmartCampaignSearchTermView resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/smart_campaign_setting.proto b/third_party/googleapis/google/ads/googleads/v17/resources/smart_campaign_setting.proto similarity index 91% rename from third_party/googleapis/google/ads/googleads/v14/resources/smart_campaign_setting.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/smart_campaign_setting.proto index 33bb6b732..052cfe5e6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/smart_campaign_setting.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/smart_campaign_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSettingProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Smart campaign setting resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/third_party_app_analytics_link.proto b/third_party/googleapis/google/ads/googleads/v17/resources/third_party_app_analytics_link.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/resources/third_party_app_analytics_link.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/third_party_app_analytics_link.proto index 758104c76..98f7b167e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/third_party_app_analytics_link.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/third_party_app_analytics_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ThirdPartyAppAnalyticsLinkProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // A data sharing connection, allowing the import of third party app analytics // into a Google Ads Customer. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/topic_constant.proto b/third_party/googleapis/google/ads/googleads/v17/resources/topic_constant.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/resources/topic_constant.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/topic_constant.proto index 4d8a2c00f..a9091189b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/topic_constant.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/topic_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TopicConstantProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the Topic Constant resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/topic_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/topic_view.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/resources/topic_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/topic_view.proto index bab92ba7b..3e751283a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/topic_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/topic_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TopicViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the topic view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/travel_activity_group_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/travel_activity_group_view.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/travel_activity_group_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/travel_activity_group_view.proto index cf247b4d2..7e2eee281 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/travel_activity_group_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/travel_activity_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TravelActivityGroupViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the travel activity group view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/travel_activity_performance_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/travel_activity_performance_view.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/resources/travel_activity_performance_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/travel_activity_performance_view.proto index bec45a6c9..7698966b9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/travel_activity_performance_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/travel_activity_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TravelActivityPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the travel activity performance view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/user_interest.proto b/third_party/googleapis/google/ads/googleads/v17/resources/user_interest.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/user_interest.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/user_interest.proto index 3cf1021e7..9e6e37102 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/user_interest.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/user_interest.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/criterion_category_availability.proto"; -import "google/ads/googleads/v14/enums/user_interest_taxonomy_type.proto"; +import "google/ads/googleads/v17/common/criterion_category_availability.proto"; +import "google/ads/googleads/v17/enums/user_interest_taxonomy_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "UserInterestProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the User Interest resource. @@ -51,7 +51,7 @@ message UserInterest { ]; // Output only. Taxonomy type of the user interest. - google.ads.googleads.v14.enums.UserInterestTaxonomyTypeEnum + google.ads.googleads.v17.enums.UserInterestTaxonomyTypeEnum .UserInterestTaxonomyType taxonomy_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -76,6 +76,6 @@ message UserInterest { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Availability information of the user interest. - repeated google.ads.googleads.v14.common.CriterionCategoryAvailability + repeated google.ads.googleads.v17.common.CriterionCategoryAvailability availabilities = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/user_list.proto b/third_party/googleapis/google/ads/googleads/v17/resources/user_list.proto similarity index 76% rename from third_party/googleapis/google/ads/googleads/v14/resources/user_list.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/user_list.proto index 429b2d59f..91ad8bc27 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/user_list.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/user_list.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; -import "google/ads/googleads/v14/common/user_lists.proto"; -import "google/ads/googleads/v14/enums/access_reason.proto"; -import "google/ads/googleads/v14/enums/user_list_access_status.proto"; -import "google/ads/googleads/v14/enums/user_list_closing_reason.proto"; -import "google/ads/googleads/v14/enums/user_list_membership_status.proto"; -import "google/ads/googleads/v14/enums/user_list_size_range.proto"; -import "google/ads/googleads/v14/enums/user_list_type.proto"; +import "google/ads/googleads/v17/common/user_lists.proto"; +import "google/ads/googleads/v17/enums/access_reason.proto"; +import "google/ads/googleads/v17/enums/user_list_access_status.proto"; +import "google/ads/googleads/v17/enums/user_list_closing_reason.proto"; +import "google/ads/googleads/v17/enums/user_list_membership_status.proto"; +import "google/ads/googleads/v17/enums/user_list_size_range.proto"; +import "google/ads/googleads/v17/enums/user_list_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "UserListProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the User List resource. @@ -75,7 +75,7 @@ message UserList { // Membership status of this user list. Indicates whether a user list is open // or active. Only open user lists can accumulate more users and can be // targeted to. - google.ads.googleads.v14.enums.UserListMembershipStatusEnum + google.ads.googleads.v17.enums.UserListMembershipStatusEnum .UserListMembershipStatus membership_status = 6; // An ID from external system. It is used by user list sellers to correlate @@ -87,7 +87,9 @@ message UserList { // However, for CRM based userlists, this field can be set to 10000 which // means no expiration. // - // It'll be ignored for logical_user_list. + // This field is ignored for logical_user_list and rule_based_user_list types. + // Membership to lists of these types depends on the rules defined by the + // lists. optional int64 membership_life_span = 30; // Output only. Estimated number of users in this user list, on the Google @@ -102,7 +104,7 @@ message UserList { // Google Display Network. // // This field is read-only. - google.ads.googleads.v14.enums.UserListSizeRangeEnum.UserListSizeRange + google.ads.googleads.v17.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_display = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Estimated number of users in this user list in the google.com @@ -117,33 +119,33 @@ message UserList { // Search ads. // // This field is read-only. - google.ads.googleads.v14.enums.UserListSizeRangeEnum.UserListSizeRange + google.ads.googleads.v17.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_search = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Type of this list. // // This field is read-only. - google.ads.googleads.v14.enums.UserListTypeEnum.UserListType type = 13 + google.ads.googleads.v17.enums.UserListTypeEnum.UserListType type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Indicating the reason why this user list membership status is closed. It is // only populated on lists that were automatically closed due to inactivity, // and will be cleared once the list membership status becomes open. - google.ads.googleads.v14.enums.UserListClosingReasonEnum.UserListClosingReason + google.ads.googleads.v17.enums.UserListClosingReasonEnum.UserListClosingReason closing_reason = 14; // Output only. Indicates the reason this account has been granted access to // the list. The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED. // // This field is read-only. - google.ads.googleads.v14.enums.AccessReasonEnum.AccessReason access_reason = + google.ads.googleads.v17.enums.AccessReasonEnum.AccessReason access_reason = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Indicates if this share is still enabled. When a UserList is shared with // the user this field is set to ENABLED. Later the userList owner can decide // to revoke the share and make it DISABLED. // The default value of this field is set to ENABLED. - google.ads.googleads.v14.enums.UserListAccessStatusEnum.UserListAccessStatus + google.ads.googleads.v17.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16; // Indicates if this user list is eligible for Google Search Network. @@ -169,22 +171,26 @@ message UserList { // Exactly one must be set. oneof user_list { // User list of CRM users provided by the advertiser. - google.ads.googleads.v14.common.CrmBasedUserListInfo crm_based_user_list = + google.ads.googleads.v17.common.CrmBasedUserListInfo crm_based_user_list = 19; // Output only. User list which are similar to users from another UserList. // These lists are readonly and automatically created by google. - google.ads.googleads.v14.common.SimilarUserListInfo similar_user_list = 20 + google.ads.googleads.v17.common.SimilarUserListInfo similar_user_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; // User list generated by a rule. - google.ads.googleads.v14.common.RuleBasedUserListInfo rule_based_user_list = + google.ads.googleads.v17.common.RuleBasedUserListInfo rule_based_user_list = 21; // User list that is a custom combination of user lists and user interests. - google.ads.googleads.v14.common.LogicalUserListInfo logical_user_list = 22; + google.ads.googleads.v17.common.LogicalUserListInfo logical_user_list = 22; // User list targeting as a collection of conversion or remarketing actions. - google.ads.googleads.v14.common.BasicUserListInfo basic_user_list = 23; + google.ads.googleads.v17.common.BasicUserListInfo basic_user_list = 23; + + // Immutable. Lookalike User List. + google.ads.googleads.v17.common.LookalikeUserListInfo lookalike_user_list = + 36 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/third_party/googleapis/google/ads/googleads/v17/resources/user_list_customer_type.proto b/third_party/googleapis/google/ads/googleads/v17/resources/user_list_customer_type.proto new file mode 100644 index 000000000..ebcc8dabd --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/resources/user_list_customer_type.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/user_list_customer_type_category.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// A user list customer type +message UserListCustomerType { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserListCustomerType" + pattern: "customers/{customer_id}/userListCustomerTypes/{user_list_id}~{semantic_label}" + }; + + // Immutable. The resource name of the user list customer type + // User list customer type resource names have the form: + // `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserListCustomerType" + } + ]; + + // Immutable. The resource name for the user list this user list customer type + // is associated with + string user_list = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + } + ]; + + // Immutable. The user list customer type category + google.ads.googleads.v17.enums.UserListCustomerTypeCategoryEnum + .UserListCustomerTypeCategory customer_type_category = 3 + [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/user_location_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/user_location_view.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/resources/user_location_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/user_location_view.proto index c829333f6..6046fbf2c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/user_location_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/user_location_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "UserLocationViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the user location view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/video.proto b/third_party/googleapis/google/ads/googleads/v17/resources/video.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/resources/video.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/video.proto index 0875b4be4..3d4d8112a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/video.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/video.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "VideoProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the video resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/resources/webpage_view.proto b/third_party/googleapis/google/ads/googleads/v17/resources/webpage_view.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/resources/webpage_view.proto rename to third_party/googleapis/google/ads/googleads/v17/resources/webpage_view.proto index 06d59fdfd..1472ec0a5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/resources/webpage_view.proto +++ b/third_party/googleapis/google/ads/googleads/v17/resources/webpage_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v14.resources; +package google.ads.googleads.v17.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; option java_multiple_files = true; option java_outer_classname = "WebpageViewProto"; -option java_package = "com.google.ads.googleads.v14.resources"; +option java_package = "com.google.ads.googleads.v17.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V14::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; // Proto file describing the webpage view resource. diff --git a/third_party/googleapis/google/ads/googleads/v14/services/BUILD.bazel b/third_party/googleapis/google/ads/googleads/v17/services/BUILD.bazel similarity index 94% rename from third_party/googleapis/google/ads/googleads/v14/services/BUILD.bazel rename to third_party/googleapis/google/ads/googleads/v17/services/BUILD.bazel index acd7de9d3..ff1e51b45 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/BUILD.bazel +++ b/third_party/googleapis/google/ads/googleads/v17/services/BUILD.bazel @@ -27,10 +27,10 @@ proto_library( name = "services_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v14/common:common_proto", - "//google/ads/googleads/v14/enums:enums_proto", - "//google/ads/googleads/v14/errors:errors_proto", - "//google/ads/googleads/v14/resources:resources_proto", + "//google/ads/googleads/v17/common:common_proto", + "//google/ads/googleads/v17/enums:enums_proto", + "//google/ads/googleads/v17/errors:errors_proto", + "//google/ads/googleads/v17/resources:resources_proto", "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", diff --git a/third_party/googleapis/google/ads/googleads/v14/services/account_budget_proposal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/account_budget_proposal_service.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/services/account_budget_proposal_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/account_budget_proposal_service.proto index 76f76e444..bffc0ab83 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/account_budget_proposal_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/account_budget_proposal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/account_budget_proposal.proto"; +import "google/ads/googleads/v17/resources/account_budget_proposal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AccountBudgetProposal service. @@ -67,7 +67,7 @@ service AccountBudgetProposalService { rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/accountBudgetProposals:mutate" + post: "/v17/customers/{customer_id=*}/accountBudgetProposals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -75,7 +75,7 @@ service AccountBudgetProposalService { } // Request message for -// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v14.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. +// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v17.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. message MutateAccountBudgetProposalRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -107,7 +107,7 @@ message AccountBudgetProposalOperation { // existing budget, end an actively running budget, or remove an approved // budget scheduled to start in the future. // No resource name is expected for the new proposal. - google.ads.googleads.v14.resources.AccountBudgetProposal create = 2; + google.ads.googleads.v17.resources.AccountBudgetProposal create = 2; // Remove operation: A resource name for the removed proposal is expected, // in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/account_link_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/account_link_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/account_link_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/account_link_service.proto index f77517d6e..beb81d885 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/account_link_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/account_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/account_link.proto"; +import "google/ads/googleads/v17/resources/account_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AccountLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // This service allows management of links between Google Ads accounts and other // accounts. @@ -55,7 +55,7 @@ service AccountLinkService { rpc CreateAccountLink(CreateAccountLinkRequest) returns (CreateAccountLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/accountLinks:create" + post: "/v17/customers/{customer_id=*}/accountLinks:create" body: "*" }; option (google.api.method_signature) = "customer_id,account_link"; @@ -79,7 +79,7 @@ service AccountLinkService { rpc MutateAccountLink(MutateAccountLinkRequest) returns (MutateAccountLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/accountLinks:mutate" + post: "/v17/customers/{customer_id=*}/accountLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -87,18 +87,18 @@ service AccountLinkService { } // Request message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v14.services.AccountLinkService.CreateAccountLink]. +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v17.services.AccountLinkService.CreateAccountLink]. message CreateAccountLinkRequest { // Required. The ID of the customer for which the account link is created. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The account link to be created. - google.ads.googleads.v14.resources.AccountLink account_link = 2 + google.ads.googleads.v17.resources.AccountLink account_link = 2 [(google.api.field_behavior) = REQUIRED]; } // Response message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v14.services.AccountLinkService.CreateAccountLink]. +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v17.services.AccountLinkService.CreateAccountLink]. message CreateAccountLinkResponse { // Returned for successful operations. Resource name of the account link. string resource_name = 1 [(google.api.resource_reference) = { @@ -107,7 +107,7 @@ message CreateAccountLinkResponse { } // Request message for -// [AccountLinkService.MutateAccountLink][google.ads.googleads.v14.services.AccountLinkService.MutateAccountLink]. +// [AccountLinkService.MutateAccountLink][google.ads.googleads.v17.services.AccountLinkService.MutateAccountLink]. message MutateAccountLinkRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -135,7 +135,7 @@ message AccountLinkOperation { oneof operation { // Update operation: The account link is expected to have // a valid resource name. - google.ads.googleads.v14.resources.AccountLink update = 2; + google.ads.googleads.v17.resources.AccountLink update = 2; // Remove operation: A resource name for the account link to remove is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_ad_label_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_ad_label_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_ad_label_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_ad_label_service.proto index 332505f38..1b095bfff 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_ad_label_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_ad_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/ad_group_ad_label.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad_label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdLabelServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group Ad Label service. @@ -56,7 +56,7 @@ service AdGroupAdLabelService { rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupAdLabels:mutate" + post: "/v17/customers/{customer_id=*}/adGroupAdLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service AdGroupAdLabelService { } // Request message for -// [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v14.services.AdGroupAdLabelService.MutateAdGroupAdLabels]. +// [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v17.services.AdGroupAdLabelService.MutateAdGroupAdLabels]. message MutateAdGroupAdLabelsRequest { // Required. ID of the customer whose ad group ad labels are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -90,7 +90,7 @@ message AdGroupAdLabelOperation { oneof operation { // Create operation: No resource name is expected for the new ad group ad // label. - google.ads.googleads.v14.resources.AdGroupAdLabel create = 1; + google.ads.googleads.v17.resources.AdGroupAdLabel create = 1; // Remove operation: A resource name for the ad group ad label // being removed, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_ad_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_ad_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_ad_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_ad_service.proto index 4f39370c0..c27abab88 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_ad_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_ad_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_ad.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group Ad service. @@ -91,7 +91,7 @@ service AdGroupAdService { rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupAds:mutate" + post: "/v17/customers/{customer_id=*}/adGroupAds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -99,7 +99,7 @@ service AdGroupAdService { } // Request message for -// [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v14.services.AdGroupAdService.MutateAdGroupAds]. +// [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v17.services.AdGroupAdService.MutateAdGroupAds]. message MutateAdGroupAdsRequest { // Required. The ID of the customer whose ads are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -120,7 +120,7 @@ message MutateAdGroupAdsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -130,16 +130,16 @@ message AdGroupAdOperation { google.protobuf.FieldMask update_mask = 4; // Configuration for how policies are validated. - google.ads.googleads.v14.common.PolicyValidationParameter + google.ads.googleads.v17.common.PolicyValidationParameter policy_validation_parameter = 5; // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad. - google.ads.googleads.v14.resources.AdGroupAd create = 1; + google.ads.googleads.v17.resources.AdGroupAd create = 1; // Update operation: The ad is expected to have a valid resource name. - google.ads.googleads.v14.resources.AdGroupAd update = 2; + google.ads.googleads.v17.resources.AdGroupAd update = 2; // Remove operation: A resource name for the removed ad is expected, // in this format: @@ -173,5 +173,5 @@ message MutateAdGroupAdResult { // The mutated ad group ad with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupAd ad_group_ad = 2; + google.ads.googleads.v17.resources.AdGroupAd ad_group_ad = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_asset_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_asset_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_asset_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_asset_service.proto index dbe793b54..45fc75398 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_asset_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_asset.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AdGroupAsset service. @@ -59,7 +59,7 @@ service AdGroupAssetService { rpc MutateAdGroupAssets(MutateAdGroupAssetsRequest) returns (MutateAdGroupAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupAssets:mutate" + post: "/v17/customers/{customer_id=*}/adGroupAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -67,7 +67,7 @@ service AdGroupAssetService { } // Request message for -// [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v14.services.AdGroupAssetService.MutateAdGroupAssets]. +// [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v17.services.AdGroupAssetService.MutateAdGroupAssets]. message MutateAdGroupAssetsRequest { // Required. The ID of the customer whose ad group assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -88,7 +88,7 @@ message MutateAdGroupAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -101,11 +101,11 @@ message AdGroupAssetOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // asset. - google.ads.googleads.v14.resources.AdGroupAsset create = 1; + google.ads.googleads.v17.resources.AdGroupAsset create = 1; // Update operation: The ad group asset is expected to have a valid resource // name. - google.ads.googleads.v14.resources.AdGroupAsset update = 3; + google.ads.googleads.v17.resources.AdGroupAsset update = 3; // Remove operation: A resource name for the removed ad group asset is // expected, in this format: @@ -139,5 +139,5 @@ message MutateAdGroupAssetResult { // The mutated ad group asset with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupAsset ad_group_asset = 2; + google.ads.googleads.v17.resources.AdGroupAsset ad_group_asset = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_asset_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_asset_set_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_asset_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_asset_set_service.proto index 855fda707..f674fe7fc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_asset_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_asset_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AdGroupAssetSet service. @@ -45,7 +45,7 @@ service AdGroupAssetSetService { rpc MutateAdGroupAssetSets(MutateAdGroupAssetSetsRequest) returns (MutateAdGroupAssetSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupAssetSets:mutate" + post: "/v17/customers/{customer_id=*}/adGroupAssetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AdGroupAssetSetService { } // Request message for -// [AdGroupAssetSetService.MutateAdGroupAssetSets][google.ads.googleads.v14.services.AdGroupAssetSetService.MutateAdGroupAssetSets]. +// [AdGroupAssetSetService.MutateAdGroupAssetSets][google.ads.googleads.v17.services.AdGroupAssetSetService.MutateAdGroupAssetSets]. message MutateAdGroupAssetSetsRequest { // Required. The ID of the customer whose ad group asset sets are being // modified. @@ -76,7 +76,7 @@ message MutateAdGroupAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message AdGroupAssetSetOperation { oneof operation { // Create operation: No resource name is expected for the new ad group asset // set. - google.ads.googleads.v14.resources.AdGroupAssetSet create = 1; + google.ads.googleads.v17.resources.AdGroupAssetSet create = 1; // Remove operation: A resource name for the removed ad group asset set is // expected, in this format: @@ -119,5 +119,5 @@ message MutateAdGroupAssetSetResult { // The mutated ad group asset set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupAssetSet ad_group_asset_set = 2; + google.ads.googleads.v17.resources.AdGroupAssetSet ad_group_asset_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_bid_modifier_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_bid_modifier_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_bid_modifier_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_bid_modifier_service.proto index 303625ef6..8038a6570 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_bid_modifier_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_bid_modifier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_bid_modifier.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group Bid Modifier service. @@ -71,7 +71,7 @@ service AdGroupBidModifierService { rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupBidModifiers:mutate" + post: "/v17/customers/{customer_id=*}/adGroupBidModifiers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service AdGroupBidModifierService { } // Request message for -// [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v14.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. +// [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v17.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. message MutateAdGroupBidModifiersRequest { // Required. ID of the customer whose ad group bid modifiers are being // modified. @@ -102,7 +102,7 @@ message MutateAdGroupBidModifiersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -115,11 +115,11 @@ message AdGroupBidModifierOperation { oneof operation { // Create operation: No resource name is expected for the new ad group bid // modifier. - google.ads.googleads.v14.resources.AdGroupBidModifier create = 1; + google.ads.googleads.v17.resources.AdGroupBidModifier create = 1; // Update operation: The ad group bid modifier is expected to have a valid // resource name. - google.ads.googleads.v14.resources.AdGroupBidModifier update = 2; + google.ads.googleads.v17.resources.AdGroupBidModifier update = 2; // Remove operation: A resource name for the removed ad group bid modifier // is expected, in this format: @@ -153,6 +153,6 @@ message MutateAdGroupBidModifierResult { // The mutated ad group bid modifier with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupBidModifier ad_group_bid_modifier = + google.ads.googleads.v17.resources.AdGroupBidModifier ad_group_bid_modifier = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_customizer_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_customizer_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_customizer_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_customizer_service.proto index d7031e4d8..580a26263 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_customizer_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion_customizer.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AdGroupCriterionCustomizer service. @@ -46,7 +46,7 @@ service AdGroupCriterionCustomizerService { MutateAdGroupCriterionCustomizersRequest) returns (MutateAdGroupCriterionCustomizersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + post: "/v17/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AdGroupCriterionCustomizerService { } // Request message for -// [AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers][google.ads.googleads.v14.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers]. +// [AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers][google.ads.googleads.v17.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers]. message MutateAdGroupCriterionCustomizersRequest { // Required. The ID of the customer whose ad group criterion customizers are // being modified. @@ -77,7 +77,7 @@ message MutateAdGroupCriterionCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -87,7 +87,7 @@ message AdGroupCriterionCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // criterion customizer. - google.ads.googleads.v14.resources.AdGroupCriterionCustomizer create = 1; + google.ads.googleads.v17.resources.AdGroupCriterionCustomizer create = 1; // Remove operation: A resource name for the removed ad group criterion // customizer is expected, in this format: @@ -121,6 +121,6 @@ message MutateAdGroupCriterionCustomizerResult { // The mutated AdGroupCriterionCustomizer with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupCriterionCustomizer + google.ads.googleads.v17.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_label_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_label_service.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_label_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_label_service.proto index 3f2cc954c..51520d958 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_label_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/ad_group_criterion_label.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion_label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionLabelServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group Criterion Label service. @@ -54,7 +54,7 @@ service AdGroupCriterionLabelService { rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + post: "/v17/customers/{customer_id=*}/adGroupCriterionLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -62,7 +62,7 @@ service AdGroupCriterionLabelService { } // Request message for -// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v14.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. +// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v17.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. message MutateAdGroupCriterionLabelsRequest { // Required. ID of the customer whose ad group criterion labels are being // modified. @@ -89,7 +89,7 @@ message AdGroupCriterionLabelOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // label. - google.ads.googleads.v14.resources.AdGroupCriterionLabel create = 1; + google.ads.googleads.v17.resources.AdGroupCriterionLabel create = 1; // Remove operation: A resource name for the ad group criterion label // being removed, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_service.proto index d7e6a7170..ab54cd461 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_criterion_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group Criterion service. @@ -81,7 +81,7 @@ service AdGroupCriterionService { rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupCriteria:mutate" + post: "/v17/customers/{customer_id=*}/adGroupCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -89,7 +89,7 @@ service AdGroupCriterionService { } // Request message for -// [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v14.services.AdGroupCriterionService.MutateAdGroupCriteria]. +// [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v17.services.AdGroupCriterionService.MutateAdGroupCriteria]. message MutateAdGroupCriteriaRequest { // Required. ID of the customer whose criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -110,7 +110,7 @@ message MutateAdGroupCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -128,17 +128,17 @@ message AdGroupCriterionOperation { // to serve. They may begin serving at a later time due to a change in // policies, re-review of the resource, or a change in advertiser // certificates. - repeated google.ads.googleads.v14.common.PolicyViolationKey + repeated google.ads.googleads.v17.common.PolicyViolationKey exempt_policy_violation_keys = 5; // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v14.resources.AdGroupCriterion create = 1; + google.ads.googleads.v17.resources.AdGroupCriterion create = 1; // Update operation: The criterion is expected to have a valid resource // name. - google.ads.googleads.v14.resources.AdGroupCriterion update = 2; + google.ads.googleads.v17.resources.AdGroupCriterion update = 2; // Remove operation: A resource name for the removed criterion is expected, // in this format: @@ -172,5 +172,5 @@ message MutateAdGroupCriterionResult { // The mutated ad group criterion with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupCriterion ad_group_criterion = 2; + google.ads.googleads.v17.resources.AdGroupCriterion ad_group_criterion = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_customizer_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_customizer_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_customizer_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_customizer_service.proto index 84a28c14c..af796114d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_customizer_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_customizer.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_customizer.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AdGroupCustomizer service. @@ -45,7 +45,7 @@ service AdGroupCustomizerService { rpc MutateAdGroupCustomizers(MutateAdGroupCustomizersRequest) returns (MutateAdGroupCustomizersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupCustomizers:mutate" + post: "/v17/customers/{customer_id=*}/adGroupCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AdGroupCustomizerService { } // Request message for -// [AdGroupCustomizerService.MutateAdGroupCustomizers][google.ads.googleads.v14.services.AdGroupCustomizerService.MutateAdGroupCustomizers]. +// [AdGroupCustomizerService.MutateAdGroupCustomizers][google.ads.googleads.v17.services.AdGroupCustomizerService.MutateAdGroupCustomizers]. message MutateAdGroupCustomizersRequest { // Required. The ID of the customer whose ad group customizers are being // modified. @@ -76,7 +76,7 @@ message MutateAdGroupCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message AdGroupCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // customizer - google.ads.googleads.v14.resources.AdGroupCustomizer create = 1; + google.ads.googleads.v17.resources.AdGroupCustomizer create = 1; // Remove operation: A resource name for the removed ad group customizer is // expected, in this format: @@ -119,5 +119,5 @@ message MutateAdGroupCustomizerResult { // The mutated AdGroupCustomizer with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupCustomizer ad_group_customizer = 2; + google.ads.googleads.v17.resources.AdGroupCustomizer ad_group_customizer = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_extension_setting_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_extension_setting_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_extension_setting_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_extension_setting_service.proto index 72d8cc20f..edd45db59 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_extension_setting_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_extension_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_extension_setting.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_extension_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AdGroupExtensionSetting service. @@ -76,7 +76,7 @@ service AdGroupExtensionSettingService { rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + post: "/v17/customers/{customer_id=*}/adGroupExtensionSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -84,7 +84,7 @@ service AdGroupExtensionSettingService { } // Request message for -// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v14.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. +// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v17.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. message MutateAdGroupExtensionSettingsRequest { // Required. The ID of the customer whose ad group extension settings are // being modified. @@ -113,18 +113,18 @@ message AdGroupExtensionSettingOperation { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad group // extension setting. - google.ads.googleads.v14.resources.AdGroupExtensionSetting create = 1; + google.ads.googleads.v17.resources.AdGroupExtensionSetting create = 1; // Update operation: The ad group extension setting is expected to have a // valid resource name. - google.ads.googleads.v14.resources.AdGroupExtensionSetting update = 2; + google.ads.googleads.v17.resources.AdGroupExtensionSetting update = 2; // Remove operation: A resource name for the removed ad group extension // setting is expected, in this format: @@ -158,6 +158,6 @@ message MutateAdGroupExtensionSettingResult { // The mutated AdGroupExtensionSetting with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupExtensionSetting + google.ads.googleads.v17.resources.AdGroupExtensionSetting ad_group_extension_setting = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_feed_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_feed_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_feed_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_feed_service.proto index be1ead985..cde0fb43e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_feed_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group_feed.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group_feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupFeedServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AdGroupFeed service. @@ -70,7 +70,7 @@ service AdGroupFeedService { rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupFeeds:mutate" + post: "/v17/customers/{customer_id=*}/adGroupFeeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service AdGroupFeedService { } // Request message for -// [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v14.services.AdGroupFeedService.MutateAdGroupFeeds]. +// [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v17.services.AdGroupFeedService.MutateAdGroupFeeds]. message MutateAdGroupFeedsRequest { // Required. The ID of the customer whose ad group feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -99,7 +99,7 @@ message MutateAdGroupFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -111,11 +111,11 @@ message AdGroupFeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad group feed. - google.ads.googleads.v14.resources.AdGroupFeed create = 1; + google.ads.googleads.v17.resources.AdGroupFeed create = 1; // Update operation: The ad group feed is expected to have a valid resource // name. - google.ads.googleads.v14.resources.AdGroupFeed update = 2; + google.ads.googleads.v17.resources.AdGroupFeed update = 2; // Remove operation: A resource name for the removed ad group feed is // expected, in this format: @@ -149,5 +149,5 @@ message MutateAdGroupFeedResult { // The mutated ad group feed with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroupFeed ad_group_feed = 2; + google.ads.googleads.v17.resources.AdGroupFeed ad_group_feed = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_label_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_label_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_label_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_label_service.proto index 5580d521d..79c1c81c1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_label_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/ad_group_label.proto"; +import "google/ads/googleads/v17/resources/ad_group_label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupLabelServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group Label service. @@ -57,7 +57,7 @@ service AdGroupLabelService { rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroupLabels:mutate" + post: "/v17/customers/{customer_id=*}/adGroupLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -65,7 +65,7 @@ service AdGroupLabelService { } // Request message for -// [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v14.services.AdGroupLabelService.MutateAdGroupLabels]. +// [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v17.services.AdGroupLabelService.MutateAdGroupLabels]. message MutateAdGroupLabelsRequest { // Required. ID of the customer whose ad group labels are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -91,7 +91,7 @@ message AdGroupLabelOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // label. - google.ads.googleads.v14.resources.AdGroupLabel create = 1; + google.ads.googleads.v17.resources.AdGroupLabel create = 1; // Remove operation: A resource name for the ad group label // being removed, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_group_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_group_service.proto index 80de9e1c3..84cec7e13 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_group_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_group.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Group service. @@ -77,7 +77,7 @@ service AdGroupService { // [UrlFieldError]() rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adGroups:mutate" + post: "/v17/customers/{customer_id=*}/adGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -85,7 +85,7 @@ service AdGroupService { } // Request message for -// [AdGroupService.MutateAdGroups][google.ads.googleads.v14.services.AdGroupService.MutateAdGroups]. +// [AdGroupService.MutateAdGroups][google.ads.googleads.v17.services.AdGroupService.MutateAdGroups]. message MutateAdGroupsRequest { // Required. The ID of the customer whose ad groups are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -106,7 +106,7 @@ message MutateAdGroupsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -118,10 +118,10 @@ message AdGroupOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad group. - google.ads.googleads.v14.resources.AdGroup create = 1; + google.ads.googleads.v17.resources.AdGroup create = 1; // Update operation: The ad group is expected to have a valid resource name. - google.ads.googleads.v14.resources.AdGroup update = 2; + google.ads.googleads.v17.resources.AdGroup update = 2; // Remove operation: A resource name for the removed ad group is expected, // in this format: @@ -154,5 +154,5 @@ message MutateAdGroupResult { // The mutated ad group with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdGroup ad_group = 2; + google.ads.googleads.v17.resources.AdGroup ad_group = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_parameter_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_parameter_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_parameter_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_parameter_service.proto index 39aabb8f9..99b1cbfa2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_parameter_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_parameter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad_parameter.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad_parameter.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdParameterServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad Parameter service. @@ -60,7 +60,7 @@ service AdParameterService { rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/adParameters:mutate" + post: "/v17/customers/{customer_id=*}/adParameters:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -68,7 +68,7 @@ service AdParameterService { } // Request message for -// [AdParameterService.MutateAdParameters][google.ads.googleads.v14.services.AdParameterService.MutateAdParameters] +// [AdParameterService.MutateAdParameters][google.ads.googleads.v17.services.AdParameterService.MutateAdParameters] message MutateAdParametersRequest { // Required. The ID of the customer whose ad parameters are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -89,7 +89,7 @@ message MutateAdParametersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -101,11 +101,11 @@ message AdParameterOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad parameter. - google.ads.googleads.v14.resources.AdParameter create = 1; + google.ads.googleads.v17.resources.AdParameter create = 1; // Update operation: The ad parameter is expected to have a valid resource // name. - google.ads.googleads.v14.resources.AdParameter update = 2; + google.ads.googleads.v17.resources.AdParameter update = 2; // Remove operation: A resource name for the ad parameter to remove is // expected in this format: @@ -139,5 +139,5 @@ message MutateAdParameterResult { // The mutated AdParameter with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AdParameter ad_parameter = 2; + google.ads.googleads.v17.resources.AdParameter ad_parameter = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/ad_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/ad_service.proto similarity index 74% rename from third_party/googleapis/google/ads/googleads/v14/services/ad_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/ad_service.proto index 45d33d818..2f87f4abd 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/ad_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/ad_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/policy.proto"; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/ad.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/ad.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AdServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Ad service. @@ -42,22 +42,6 @@ service AdService { option (google.api.default_host) = "googleads.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - // Returns the requested ad in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAd(GetAdRequest) returns (google.ads.googleads.v14.resources.Ad) { - option (google.api.http) = { - get: "/v14/{resource_name=customers/*/ads/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - // Updates ads. Operation statuses are returned. Updating ads is not supported // for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. // @@ -102,7 +86,7 @@ service AdService { // [UrlFieldError]() rpc MutateAds(MutateAdsRequest) returns (MutateAdsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/ads:mutate" + post: "/v17/customers/{customer_id=*}/ads:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -110,17 +94,7 @@ service AdService { } // Request message for -// [AdService.GetAd][google.ads.googleads.v14.services.AdService.GetAd]. -message GetAdRequest { - // Required. The resource name of the ad to fetch. - string resource_name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "googleads.googleapis.com/Ad" } - ]; -} - -// Request message for -// [AdService.MutateAds][google.ads.googleads.v14.services.AdService.MutateAds]. +// [AdService.MutateAds][google.ads.googleads.v17.services.AdService.MutateAds]. message MutateAdsRequest { // Required. The ID of the customer whose ads are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -136,7 +110,7 @@ message MutateAdsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; // If true, the request is validated but not executed. Only errors are @@ -150,7 +124,7 @@ message AdOperation { google.protobuf.FieldMask update_mask = 2; // Configuration for how policies are validated. - google.ads.googleads.v14.common.PolicyValidationParameter + google.ads.googleads.v17.common.PolicyValidationParameter policy_validation_parameter = 3; // The mutate operation. @@ -159,7 +133,7 @@ message AdOperation { // in this format: // // `customers/{customer_id}/ads/{ad_id}` - google.ads.googleads.v14.resources.Ad update = 1; + google.ads.googleads.v17.resources.Ad update = 1; } } @@ -184,5 +158,5 @@ message MutateAdResult { // The mutated ad with only mutable fields after mutate. The field will only // be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Ad ad = 2; + google.ads.googleads.v17.resources.Ad ad = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_asset_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_asset_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_group_asset_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_group_asset_service.proto index 6bc1b0d3e..9980d3126 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_asset_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/asset_group_asset.proto"; +import "google/ads/googleads/v17/resources/asset_group_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupAssetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AssetGroupAsset service. @@ -45,7 +45,7 @@ service AssetGroupAssetService { rpc MutateAssetGroupAssets(MutateAssetGroupAssetsRequest) returns (MutateAssetGroupAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assetGroupAssets:mutate" + post: "/v17/customers/{customer_id=*}/assetGroupAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AssetGroupAssetService { } // Request message for -// [AssetGroupAssetService.MutateAssetGroupAssets][google.ads.googleads.v14.services.AssetGroupAssetService.MutateAssetGroupAssets]. +// [AssetGroupAssetService.MutateAssetGroupAssets][google.ads.googleads.v17.services.AssetGroupAssetService.MutateAssetGroupAssets]. message MutateAssetGroupAssetsRequest { // Required. The ID of the customer whose asset group assets are being // modified. @@ -84,11 +84,11 @@ message AssetGroupAssetOperation { oneof operation { // Create operation: No resource name is expected for the new asset group // asset. - google.ads.googleads.v14.resources.AssetGroupAsset create = 1; + google.ads.googleads.v17.resources.AssetGroupAsset create = 1; // Update operation: The asset group asset is expected to have a valid // resource name. - google.ads.googleads.v14.resources.AssetGroupAsset update = 2; + google.ads.googleads.v17.resources.AssetGroupAsset update = 2; // Remove operation: A resource name for the removed asset group asset is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_listing_group_filter_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_listing_group_filter_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_group_listing_group_filter_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_group_listing_group_filter_service.proto index 9249468f4..00128f775 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_listing_group_filter_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_listing_group_filter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/asset_group_listing_group_filter.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/asset_group_listing_group_filter.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupListingGroupFilterServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AssetGroupListingGroupFilter service. @@ -46,7 +46,7 @@ service AssetGroupListingGroupFilterService { MutateAssetGroupListingGroupFiltersRequest) returns (MutateAssetGroupListingGroupFiltersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + post: "/v17/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AssetGroupListingGroupFilterService { } // Request message for -// [AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters][google.ads.googleads.v14.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters]. +// [AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters][google.ads.googleads.v17.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters]. // partial_failure is not supported because the tree needs to be validated // together. message MutateAssetGroupListingGroupFiltersRequest { @@ -73,7 +73,7 @@ message MutateAssetGroupListingGroupFiltersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -86,11 +86,11 @@ message AssetGroupListingGroupFilterOperation { oneof operation { // Create operation: No resource name is expected for the new asset group // listing group filter. - google.ads.googleads.v14.resources.AssetGroupListingGroupFilter create = 1; + google.ads.googleads.v17.resources.AssetGroupListingGroupFilter create = 1; // Update operation: The asset group listing group filter is expected to // have a valid resource name. - google.ads.googleads.v14.resources.AssetGroupListingGroupFilter update = 2; + google.ads.googleads.v17.resources.AssetGroupListingGroupFilter update = 2; // Remove operation: A resource name for the removed asset group listing // group filter is expected, in this format: @@ -120,6 +120,6 @@ message MutateAssetGroupListingGroupFilterResult { // The mutated AssetGroupListingGroupFilter with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AssetGroupListingGroupFilter + google.ads.googleads.v17.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_group_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_group_service.proto index 3dc549b41..c8c681d78 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/asset_group.proto"; +import "google/ads/googleads/v17/resources/asset_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AssetGroup service. @@ -45,7 +45,7 @@ service AssetGroupService { rpc MutateAssetGroups(MutateAssetGroupsRequest) returns (MutateAssetGroupsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assetGroups:mutate" + post: "/v17/customers/{customer_id=*}/assetGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AssetGroupService { } // Request message for -// [AssetGroupService.MutateAssetGroups][google.ads.googleads.v14.services.AssetGroupService.MutateAssetGroups]. +// [AssetGroupService.MutateAssetGroups][google.ads.googleads.v17.services.AssetGroupService.MutateAssetGroups]. message MutateAssetGroupsRequest { // Required. The ID of the customer whose asset groups are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -75,11 +75,11 @@ message AssetGroupOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new asset group - google.ads.googleads.v14.resources.AssetGroup create = 1; + google.ads.googleads.v17.resources.AssetGroup create = 1; // Update operation: The asset group is expected to have a valid resource // name. - google.ads.googleads.v14.resources.AssetGroup update = 2; + google.ads.googleads.v17.resources.AssetGroup update = 2; // Remove operation: A resource name for the removed asset group is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_signal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_signal_service.proto similarity index 73% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_group_signal_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_group_signal_service.proto index c635f04fa..319edef05 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_group_signal_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_group_signal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/asset_group_signal.proto"; +import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/asset_group_signal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupSignalServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AssetGroupSignal service. @@ -45,7 +46,7 @@ service AssetGroupSignalService { rpc MutateAssetGroupSignals(MutateAssetGroupSignalsRequest) returns (MutateAssetGroupSignalsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assetGroupSignals:mutate" + post: "/v17/customers/{customer_id=*}/assetGroupSignals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +54,7 @@ service AssetGroupSignalService { } // Request message for -// [AssetGroupSignalService.MutateAssetGroupSignals][google.ads.googleads.v14.services.AssetGroupSignalService.MutateAssetGroupSignals]. +// [AssetGroupSignalService.MutateAssetGroupSignals][google.ads.googleads.v17.services.AssetGroupSignalService.MutateAssetGroupSignals]. message MutateAssetGroupSignalsRequest { // Required. The ID of the customer whose asset group signals are being // modified. @@ -75,17 +76,29 @@ message MutateAssetGroupSignalsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } // A single operation (create, remove) on an asset group signal. message AssetGroupSignalOperation { + // Optional. The list of policy violation keys that should not cause a + // PolicyViolationError to be reported. Not all policy violations are + // exemptable, refer to the is_exemptible field in the returned + // PolicyViolationError. + // + // Resources violating these polices will be saved, but will not be eligible + // to serve. They may begin serving at a later time due to a change in + // policies, re-review of the resource, or a change in advertiser + // certificates. + repeated google.ads.googleads.v17.common.PolicyViolationKey + exempt_policy_violation_keys = 3 [(google.api.field_behavior) = OPTIONAL]; + // The mutate operation. Update is not supported. oneof operation { // Create operation: No resource name is expected for the new asset group // signal. - google.ads.googleads.v14.resources.AssetGroupSignal create = 1; + google.ads.googleads.v17.resources.AssetGroupSignal create = 1; // Remove operation: A resource name for the removed asset group signal is // expected, in this format: @@ -118,5 +131,5 @@ message MutateAssetGroupSignalResult { // The mutated AssetGroupSignal with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AssetGroupSignal asset_group_signal = 2; + google.ads.googleads.v17.resources.AssetGroupSignal asset_group_signal = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_service.proto index bb702cebd..ce06e7c1c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/asset.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Asset service. @@ -75,7 +75,7 @@ service AssetService { // [YoutubeVideoRegistrationError]() rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assets:mutate" + post: "/v17/customers/{customer_id=*}/assets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -83,7 +83,7 @@ service AssetService { } // Request message for -// [AssetService.MutateAssets][google.ads.googleads.v14.services.AssetService.MutateAssets] +// [AssetService.MutateAssets][google.ads.googleads.v17.services.AssetService.MutateAssets] message MutateAssetsRequest { // Required. The ID of the customer whose assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -100,7 +100,7 @@ message MutateAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 3; // If true, the request is validated but not executed. Only errors are @@ -119,13 +119,13 @@ message AssetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new asset. - google.ads.googleads.v14.resources.Asset create = 1; + google.ads.googleads.v17.resources.Asset create = 1; // Update operation: The asset is expected to have a valid resource name in // this format: // // `customers/{customer_id}/assets/{asset_id}` - google.ads.googleads.v14.resources.Asset update = 2; + google.ads.googleads.v17.resources.Asset update = 2; } } @@ -150,5 +150,5 @@ message MutateAssetResult { // The mutated asset with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Asset asset = 2; + google.ads.googleads.v17.resources.Asset asset = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_set_asset_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_set_asset_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_set_asset_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_set_asset_service.proto index c80d40d19..f32c0da11 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_set_asset_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_set_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/asset_set_asset.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/asset_set_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AssetSetAsset service. @@ -45,7 +45,7 @@ service AssetSetAssetService { rpc MutateAssetSetAssets(MutateAssetSetAssetsRequest) returns (MutateAssetSetAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assetSetAssets:mutate" + post: "/v17/customers/{customer_id=*}/assetSetAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AssetSetAssetService { } // Request message for -// [AssetSetAssetService.MutateAssetSetAssets][google.ads.googleads.v14.services.AssetSetAssetService.MutateAssetSetAssets]. +// [AssetSetAssetService.MutateAssetSetAssets][google.ads.googleads.v17.services.AssetSetAssetService.MutateAssetSetAssets]. message MutateAssetSetAssetsRequest { // Required. The ID of the customer whose asset set assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -74,7 +74,7 @@ message MutateAssetSetAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -84,7 +84,7 @@ message AssetSetAssetOperation { oneof operation { // Create operation: No resource name is expected for the new asset set // asset - google.ads.googleads.v14.resources.AssetSetAsset create = 1; + google.ads.googleads.v17.resources.AssetSetAsset create = 1; // Remove operation: A resource name for the removed asset set asset is // expected, in this format: @@ -117,5 +117,5 @@ message MutateAssetSetAssetResult { // The mutated asset set asset with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AssetSetAsset asset_set_asset = 2; + google.ads.googleads.v17.resources.AssetSetAsset asset_set_asset = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/asset_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/asset_set_service.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/services/asset_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/asset_set_service.proto index fd1f0aa14..a838beebe 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/asset_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/asset_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the AssetSet service. @@ -46,7 +46,7 @@ service AssetSetService { rpc MutateAssetSets(MutateAssetSetsRequest) returns (MutateAssetSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/assetSets:mutate" + post: "/v17/customers/{customer_id=*}/assetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AssetSetService { } // Request message for -// [AssetSetService.MutateAssetSets][google.ads.googleads.v14.services.AssetSetService.MutateAssetSets]. +// [AssetSetService.MutateAssetSets][google.ads.googleads.v17.services.AssetSetService.MutateAssetSets]. message MutateAssetSetsRequest { // Required. The ID of the customer whose asset sets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -75,7 +75,7 @@ message MutateAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -87,11 +87,11 @@ message AssetSetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new asset set - google.ads.googleads.v14.resources.AssetSet create = 1; + google.ads.googleads.v17.resources.AssetSet create = 1; // Update operation: The asset set is expected to have a valid resource // name. - google.ads.googleads.v14.resources.AssetSet update = 2; + google.ads.googleads.v17.resources.AssetSet update = 2; // Remove operation: A resource name for the removed asset set is // expected, in this format: @@ -123,5 +123,5 @@ message MutateAssetSetResult { // The mutated asset set with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.AssetSet asset_set = 2; + google.ads.googleads.v17.resources.AssetSet asset_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/audience_insights_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/audience_insights_service.proto similarity index 73% rename from third_party/googleapis/google/ads/googleads/v14/services/audience_insights_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/audience_insights_service.proto index 654654de5..1367c5cd5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/audience_insights_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/audience_insights_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/enums/audience_insights_dimension.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/dates.proto"; +import "google/ads/googleads/v17/enums/audience_insights_dimension.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AudienceInsightsServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the audience insights service. @@ -55,7 +55,7 @@ service AudienceInsightsService { rpc GenerateInsightsFinderReport(GenerateInsightsFinderReportRequest) returns (GenerateInsightsFinderReportResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateInsightsFinderReport" + post: "/v17/customers/{customer_id=*}:generateInsightsFinderReport" body: "*" }; option (google.api.method_signature) = @@ -76,7 +76,7 @@ service AudienceInsightsService { rpc ListAudienceInsightsAttributes(ListAudienceInsightsAttributesRequest) returns (ListAudienceInsightsAttributesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:searchAudienceInsightsAttributes" + post: "/v17/customers/{customer_id=*}:searchAudienceInsightsAttributes" body: "*" }; option (google.api.method_signature) = "customer_id,dimensions,query_text"; @@ -96,7 +96,7 @@ service AudienceInsightsService { rpc ListInsightsEligibleDates(ListInsightsEligibleDatesRequest) returns (ListInsightsEligibleDatesResponse) { option (google.api.http) = { - post: "/v14/audienceInsights:listInsightsEligibleDates" + post: "/v17/audienceInsights:listInsightsEligibleDates" body: "*" }; } @@ -119,15 +119,38 @@ service AudienceInsightsService { GenerateAudienceCompositionInsightsRequest) returns (GenerateAudienceCompositionInsightsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateAudienceCompositionInsights" + post: "/v17/customers/{customer_id=*}:generateAudienceCompositionInsights" body: "*" }; option (google.api.method_signature) = "customer_id,audience,dimensions"; } + + // Returns a collection of targeting insights (e.g. targetable audiences) that + // are relevant to the requested audience. + // + // List of thrown errors: + // [AudienceInsightsError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateSuggestedTargetingInsights( + GenerateSuggestedTargetingInsightsRequest) + returns (GenerateSuggestedTargetingInsightsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}:generateSuggestedTargetingInsights" + body: "*" + }; + option (google.api.method_signature) = "customer_id,audience"; + } } // Request message for -// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v14.services.AudienceInsightsService.GenerateInsightsFinderReport]. +// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v17.services.AudienceInsightsService.GenerateInsightsFinderReport]. message GenerateInsightsFinderReportRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -148,7 +171,7 @@ message GenerateInsightsFinderReportRequest { } // The response message for -// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v14.services.AudienceInsightsService.GenerateInsightsFinderReport], +// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v17.services.AudienceInsightsService.GenerateInsightsFinderReport], // containing the shareable URL for the report. message GenerateInsightsFinderReportResponse { // An HTTPS URL providing a deep link into the Insights Finder UI with the @@ -157,7 +180,7 @@ message GenerateInsightsFinderReportResponse { } // Request message for -// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v14.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. +// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. message GenerateAudienceCompositionInsightsRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -176,7 +199,7 @@ message GenerateAudienceCompositionInsightsRequest { // Required. The audience dimensions for which composition insights should be // returned. - repeated google.ads.googleads.v14.enums.AudienceInsightsDimensionEnum + repeated google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimensions = 4 [(google.api.field_behavior) = REQUIRED]; @@ -185,7 +208,7 @@ message GenerateAudienceCompositionInsightsRequest { } // Response message for -// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v14.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. +// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. message GenerateAudienceCompositionInsightsResponse { // The contents of the insights report, organized into sections. // Each section is associated with one of the AudienceInsightsDimension values @@ -194,13 +217,74 @@ message GenerateAudienceCompositionInsightsResponse { } // Request message for -// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v14.services.AudienceInsightsService.ListAudienceInsightsAttributes]. +// [AudienceInsightsService.GenerateSuggestedTargetingInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateSuggestedTargetingInsights]. +message GenerateSuggestedTargetingInsightsRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The audience of interest for which insights are being requested. + InsightsAudience audience = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The baseline audience. The default, if unspecified, is all + // people in the same country as the audience of interest. + InsightsAudience baseline_audience = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The one-month range of historical data to use for insights, in + // the format "yyyy-mm". If unset, insights will be returned for the last + // thirty days of data. + string data_month = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the customer being planned for. This is a + // user-defined value. + string customer_insights_group = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [AudienceInsightsService.GenerateSuggestedTargetingInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateSuggestedTargetingInsights]. +message GenerateSuggestedTargetingInsightsResponse { + // Suggested insights for targetable audiences. + repeated TargetingSuggestionMetrics suggestions = 1; +} + +// A suggested targetable audience relevant to the requested audience. +message TargetingSuggestionMetrics { + // Suggested location targeting. These attributes all have dimension + // GEO_TARGET_COUNTRY or SUB_COUNTRY_LOCATION + repeated AudienceInsightsAttributeMetadata locations = 1; + + // Suggested age targeting; may be empty indicating no age targeting. + repeated google.ads.googleads.v17.common.AgeRangeInfo age_ranges = 2; + + // Suggested gender targeting. If present, this attribute has dimension + // GENDER. + google.ads.googleads.v17.common.GenderInfo gender = 3; + + // Suggested audience segments to target. These attributes all have dimension + // AFFINITY_USER_INTEREST or IN_MARKET_USER_INTEREST + repeated AudienceInsightsAttributeMetadata user_interests = 4; + + // The fraction (from 0 to 1 inclusive) of the requested audience that can be + // reached using the suggested targeting. + double coverage = 5; + + // The ratio of coverage to the coverage of the baseline audience or zero if + // this ratio is undefined or is not meaningful. + double index = 6; + + // The approximate estimated number of people that can be reached on YouTube + // using this targeting. + int64 potential_youtube_reach = 7; +} + +// Request message for +// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v17.services.AudienceInsightsService.ListAudienceInsightsAttributes]. message ListAudienceInsightsAttributesRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The types of attributes to be returned. - repeated google.ads.googleads.v14.enums.AudienceInsightsDimensionEnum + repeated google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimensions = 2 [(google.api.field_behavior) = REQUIRED]; @@ -219,23 +303,23 @@ message ListAudienceInsightsAttributesRequest { // will be located in these countries. If this field is absent, then location // attributes are not filtered by country. Setting this field when // SUB_COUNTRY_LOCATION attributes are not requested will return an error. - repeated google.ads.googleads.v14.common.LocationInfo + repeated google.ads.googleads.v17.common.LocationInfo location_country_filters = 5; } // Response message for -// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v14.services.AudienceInsightsService.ListAudienceInsightsAttributes]. +// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v17.services.AudienceInsightsService.ListAudienceInsightsAttributes]. message ListAudienceInsightsAttributesResponse { // The attributes matching the search query. repeated AudienceInsightsAttributeMetadata attributes = 1; } // Request message for -// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v14.services.AudienceInsightsService.ListInsightsEligibleDates]. +// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v17.services.AudienceInsightsService.ListInsightsEligibleDates]. message ListInsightsEligibleDatesRequest {} // Response message for -// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v14.services.AudienceInsightsService.ListInsightsEligibleDates]. +// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v17.services.AudienceInsightsService.ListInsightsEligibleDates]. message ListInsightsEligibleDatesResponse { // The months for which AudienceInsights data is currently // available, each represented as a string in the form "YYYY-MM". @@ -243,9 +327,9 @@ message ListInsightsEligibleDatesResponse { // The actual dates covered by the "last 30 days" date range that will be used // implicitly for - // [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v14.services.AudienceInsightsService.GenerateAudienceCompositionInsights] + // [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceCompositionInsights] // requests that have no data_month set. - google.ads.googleads.v14.common.DateRange last_thirty_days = 2; + google.ads.googleads.v17.common.DateRange last_thirty_days = 2; } // An audience attribute that can be used to request insights about the @@ -254,16 +338,16 @@ message AudienceInsightsAttribute { // An audience attribute. oneof attribute { // An audience attribute defined by an age range. - google.ads.googleads.v14.common.AgeRangeInfo age_range = 1; + google.ads.googleads.v17.common.AgeRangeInfo age_range = 1; // An audience attribute defined by a gender. - google.ads.googleads.v14.common.GenderInfo gender = 2; + google.ads.googleads.v17.common.GenderInfo gender = 2; // An audience attribute defined by a geographic location. - google.ads.googleads.v14.common.LocationInfo location = 3; + google.ads.googleads.v17.common.LocationInfo location = 3; // An Affinity or In-Market audience. - google.ads.googleads.v14.common.UserInterestInfo user_interest = 4; + google.ads.googleads.v17.common.UserInterestInfo user_interest = 4; // An audience attribute defined by interest in a topic represented by a // Knowledge Graph entity. @@ -277,13 +361,13 @@ message AudienceInsightsAttribute { AudienceInsightsDynamicLineup dynamic_lineup = 7; // A Parental Status value (parent, or not a parent). - google.ads.googleads.v14.common.ParentalStatusInfo parental_status = 8; + google.ads.googleads.v17.common.ParentalStatusInfo parental_status = 8; // A household income percentile range. - google.ads.googleads.v14.common.IncomeRangeInfo income_range = 9; + google.ads.googleads.v17.common.IncomeRangeInfo income_range = 9; // A YouTube channel. - google.ads.googleads.v14.common.YouTubeChannelInfo youtube_channel = 10; + google.ads.googleads.v17.common.YouTubeChannelInfo youtube_channel = 10; } } @@ -321,25 +405,25 @@ message AudienceInsightsDynamicLineup { // A description of an audience used for requesting insights. message BasicInsightsAudience { // Required. The countries for this audience. - repeated google.ads.googleads.v14.common.LocationInfo country_location = 1 + repeated google.ads.googleads.v17.common.LocationInfo country_location = 1 [(google.api.field_behavior) = REQUIRED]; // Sub-country geographic location attributes. If present, each of these // must be contained in one of the countries in this audience. - repeated google.ads.googleads.v14.common.LocationInfo sub_country_locations = + repeated google.ads.googleads.v17.common.LocationInfo sub_country_locations = 2; // Gender for the audience. If absent, the audience does not restrict by // gender. - google.ads.googleads.v14.common.GenderInfo gender = 3; + google.ads.googleads.v17.common.GenderInfo gender = 3; // Age ranges for the audience. If absent, the audience represents all people // over 18 that match the other attributes. - repeated google.ads.googleads.v14.common.AgeRangeInfo age_ranges = 4; + repeated google.ads.googleads.v17.common.AgeRangeInfo age_ranges = 4; // User interests defining this audience. Affinity and In-Market audiences // are supported. - repeated google.ads.googleads.v14.common.UserInterestInfo user_interests = 5; + repeated google.ads.googleads.v17.common.UserInterestInfo user_interests = 5; // Topics, represented by Knowledge Graph entities and/or Product & Service // categories, that this audience is interested in. @@ -350,7 +434,7 @@ message BasicInsightsAudience { // search. message AudienceInsightsAttributeMetadata { // The type of the attribute. - google.ads.googleads.v14.enums.AudienceInsightsDimensionEnum + google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimension = 1; // The attribute itself. @@ -359,9 +443,6 @@ message AudienceInsightsAttributeMetadata { // The human-readable name of the attribute. string display_name = 3; - // A relevance score for this attribute, between 0 and 1. - double score = 4; - // A string that supplements the display_name to identify the attribute. // If the dimension is TOPIC, this is a brief description of the // Knowledge Graph entity, such as "American singer-songwriter". @@ -394,7 +475,7 @@ message DynamicLineupAttributeMetadata { // A YouTube channel returned as an example of the content in a lineup. message SampleChannel { // A YouTube channel. - google.ads.googleads.v14.common.YouTubeChannelInfo youtube_channel = 1; + google.ads.googleads.v17.common.YouTubeChannelInfo youtube_channel = 1; // The name of the sample channel. string display_name = 2; @@ -404,7 +485,7 @@ message DynamicLineupAttributeMetadata { } // The national market associated with the lineup. - google.ads.googleads.v14.common.LocationInfo inventory_country = 1; + google.ads.googleads.v17.common.LocationInfo inventory_country = 1; // The median number of impressions per month on this lineup. optional int64 median_monthly_inventory = 2; @@ -422,37 +503,37 @@ message DynamicLineupAttributeMetadata { // Metadata associated with a Location attribute. message LocationAttributeMetadata { // The country location of the sub country location. - google.ads.googleads.v14.common.LocationInfo country_location = 1; + google.ads.googleads.v17.common.LocationInfo country_location = 1; } // A set of users, defined by various characteristics, for which insights can // be requested in AudienceInsightsService. message InsightsAudience { // Required. The countries for the audience. - repeated google.ads.googleads.v14.common.LocationInfo country_locations = 1 + repeated google.ads.googleads.v17.common.LocationInfo country_locations = 1 [(google.api.field_behavior) = REQUIRED]; // Sub-country geographic location attributes. If present, each of these // must be contained in one of the countries in this audience. If absent, the // audience is geographically to the country_locations and no further. - repeated google.ads.googleads.v14.common.LocationInfo sub_country_locations = + repeated google.ads.googleads.v17.common.LocationInfo sub_country_locations = 2; // Gender for the audience. If absent, the audience does not restrict by // gender. - google.ads.googleads.v14.common.GenderInfo gender = 3; + google.ads.googleads.v17.common.GenderInfo gender = 3; // Age ranges for the audience. If absent, the audience represents all people // over 18 that match the other attributes. - repeated google.ads.googleads.v14.common.AgeRangeInfo age_ranges = 4; + repeated google.ads.googleads.v17.common.AgeRangeInfo age_ranges = 4; // Parental status for the audience. If absent, the audience does not // restrict by parental status. - google.ads.googleads.v14.common.ParentalStatusInfo parental_status = 5; + google.ads.googleads.v17.common.ParentalStatusInfo parental_status = 5; // Household income percentile ranges for the audience. If absent, the // audience does not restrict by household income range. - repeated google.ads.googleads.v14.common.IncomeRangeInfo income_ranges = 6; + repeated google.ads.googleads.v17.common.IncomeRangeInfo income_ranges = 6; // Dynamic lineups representing the YouTube content viewed by the audience. repeated AudienceInsightsDynamicLineup dynamic_lineups = 7; @@ -481,7 +562,7 @@ message InsightsAudienceAttributeGroup { // composition insights report. message AudienceCompositionSection { // The type of the attributes in this section. - google.ads.googleads.v14.enums.AudienceInsightsDimensionEnum + google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimension = 1; // The most relevant segments for this audience. If dimension is GENDER, diff --git a/third_party/googleapis/google/ads/googleads/v14/services/audience_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/audience_service.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/services/audience_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/audience_service.proto index cf0d49961..3ef9a1bd8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/audience_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/audience_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/audience.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/audience.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "AudienceServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Audience service. @@ -48,7 +48,7 @@ service AudienceService { rpc MutateAudiences(MutateAudiencesRequest) returns (MutateAudiencesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/audiences:mutate" + post: "/v17/customers/{customer_id=*}/audiences:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -56,7 +56,7 @@ service AudienceService { } // Request message for -// [AudienceService.MutateAudiences][google.ads.googleads.v14.services.AudienceService.MutateAudiences]. +// [AudienceService.MutateAudiences][google.ads.googleads.v17.services.AudienceService.MutateAudiences]. message MutateAudiencesRequest { // Required. The ID of the customer whose audiences are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -76,7 +76,7 @@ message MutateAudiencesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -100,11 +100,11 @@ message AudienceOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new audience - google.ads.googleads.v14.resources.Audience create = 1; + google.ads.googleads.v17.resources.Audience create = 1; // Update operation: The audience is expected to have a valid resource // name. - google.ads.googleads.v14.resources.Audience update = 2; + google.ads.googleads.v17.resources.Audience update = 2; } } @@ -118,5 +118,5 @@ message MutateAudienceResult { // The mutated Audience with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Audience audience = 2; + google.ads.googleads.v17.resources.Audience audience = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/batch_job_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/batch_job_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/batch_job_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/batch_job_service.proto index e23a67b36..a6002deff 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/batch_job_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/batch_job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/batch_job.proto"; -import "google/ads/googleads/v14/services/google_ads_service.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/batch_job.proto"; +import "google/ads/googleads/v17/services/google_ads_service.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,14 +27,14 @@ import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "BatchJobServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the BatchJobService. @@ -55,7 +55,7 @@ service BatchJobService { // [ResourceCountLimitExceededError]() rpc MutateBatchJob(MutateBatchJobRequest) returns (MutateBatchJobResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/batchJobs:mutate" + post: "/v17/customers/{customer_id=*}/batchJobs:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -75,7 +75,7 @@ service BatchJobService { rpc ListBatchJobResults(ListBatchJobResultsRequest) returns (ListBatchJobResultsResponse) { option (google.api.http) = { - get: "/v14/{resource_name=customers/*/batchJobs/*}:listResults" + get: "/v17/{resource_name=customers/*/batchJobs/*}:listResults" }; option (google.api.method_signature) = "resource_name"; } @@ -96,13 +96,13 @@ service BatchJobService { // [RequestError]() rpc RunBatchJob(RunBatchJobRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/batchJobs/*}:run" + post: "/v17/{resource_name=customers/*/batchJobs/*}:run" body: "*" }; option (google.api.method_signature) = "resource_name"; option (google.longrunning.operation_info) = { response_type: "google.protobuf.Empty" - metadata_type: "google.ads.googleads.v14.resources.BatchJob.BatchJobMetadata" + metadata_type: "google.ads.googleads.v17.resources.BatchJob.BatchJobMetadata" }; } @@ -120,7 +120,7 @@ service BatchJobService { rpc AddBatchJobOperations(AddBatchJobOperationsRequest) returns (AddBatchJobOperationsResponse) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/batchJobs/*}:addOperations" + post: "/v17/{resource_name=customers/*/batchJobs/*}:addOperations" body: "*" }; option (google.api.method_signature) = @@ -130,7 +130,7 @@ service BatchJobService { } // Request message for -// [BatchJobService.MutateBatchJob][google.ads.googleads.v14.services.BatchJobService.MutateBatchJob]. +// [BatchJobService.MutateBatchJob][google.ads.googleads.v17.services.BatchJobService.MutateBatchJob]. message MutateBatchJobRequest { // Required. The ID of the customer for which to create a batch job. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -144,7 +144,7 @@ message BatchJobOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new batch job. - google.ads.googleads.v14.resources.BatchJob create = 1; + google.ads.googleads.v17.resources.BatchJob create = 1; // Remove operation: The batch job must not have been run. A resource name // for the removed batch job is expected, in this format: @@ -157,7 +157,7 @@ message BatchJobOperation { } // Response message for -// [BatchJobService.MutateBatchJob][google.ads.googleads.v14.services.BatchJobService.MutateBatchJob]. +// [BatchJobService.MutateBatchJob][google.ads.googleads.v17.services.BatchJobService.MutateBatchJob]. message MutateBatchJobResponse { // The result for the mutate. MutateBatchJobResult result = 1; @@ -172,7 +172,7 @@ message MutateBatchJobResult { } // Request message for -// [BatchJobService.RunBatchJob][google.ads.googleads.v14.services.BatchJobService.RunBatchJob]. +// [BatchJobService.RunBatchJob][google.ads.googleads.v17.services.BatchJobService.RunBatchJob]. message RunBatchJobRequest { // Required. The resource name of the BatchJob to run. string resource_name = 1 [ @@ -184,7 +184,7 @@ message RunBatchJobRequest { } // Request message for -// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v14.services.BatchJobService.AddBatchJobOperations]. +// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v17.services.BatchJobService.AddBatchJobOperations]. message AddBatchJobOperationsRequest { // Required. The resource name of the batch job. string resource_name = 1 [ @@ -216,7 +216,7 @@ message AddBatchJobOperationsRequest { } // Response message for -// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v14.services.BatchJobService.AddBatchJobOperations]. +// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v17.services.BatchJobService.AddBatchJobOperations]. message AddBatchJobOperationsResponse { // The total number of operations added so far for this batch job. int64 total_operations = 1; @@ -228,7 +228,7 @@ message AddBatchJobOperationsResponse { } // Request message for -// [BatchJobService.ListBatchJobResults][google.ads.googleads.v14.services.BatchJobService.ListBatchJobResults]. +// [BatchJobService.ListBatchJobResults][google.ads.googleads.v17.services.BatchJobService.ListBatchJobResults]. message ListBatchJobResultsRequest { // Required. The resource name of the batch job whose results are being // listed. @@ -252,12 +252,12 @@ message ListBatchJobResultsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } // Response message for -// [BatchJobService.ListBatchJobResults][google.ads.googleads.v14.services.BatchJobService.ListBatchJobResults]. +// [BatchJobService.ListBatchJobResults][google.ads.googleads.v17.services.BatchJobService.ListBatchJobResults]. message ListBatchJobResultsResponse { // The list of rows that matched the query. repeated BatchJobResult results = 1; diff --git a/third_party/googleapis/google/ads/googleads/v14/services/bidding_data_exclusion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/bidding_data_exclusion_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/bidding_data_exclusion_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/bidding_data_exclusion_service.proto index ceedd680e..50884ef67 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/bidding_data_exclusion_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/bidding_data_exclusion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/bidding_data_exclusion.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/bidding_data_exclusion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "BiddingDataExclusionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to manage bidding data exclusions. service BiddingDataExclusionService { @@ -44,7 +44,7 @@ service BiddingDataExclusionService { rpc MutateBiddingDataExclusions(MutateBiddingDataExclusionsRequest) returns (MutateBiddingDataExclusionsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/biddingDataExclusions:mutate" + post: "/v17/customers/{customer_id=*}/biddingDataExclusions:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -52,7 +52,7 @@ service BiddingDataExclusionService { } // Request message for -// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v14.services.BiddingDataExclusionService.MutateBiddingDataExclusions]. +// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v17.services.BiddingDataExclusionService.MutateBiddingDataExclusions]. message MutateBiddingDataExclusionsRequest { // Required. ID of the customer whose data exclusions are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -73,7 +73,7 @@ message MutateBiddingDataExclusionsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,11 +86,11 @@ message BiddingDataExclusionOperation { oneof operation { // Create operation: No resource name is expected for the new data // exclusion. - google.ads.googleads.v14.resources.BiddingDataExclusion create = 1; + google.ads.googleads.v17.resources.BiddingDataExclusion create = 1; // Update operation: The data exclusion is expected to have a valid // resource name. - google.ads.googleads.v14.resources.BiddingDataExclusion update = 2; + google.ads.googleads.v17.resources.BiddingDataExclusion update = 2; // Remove operation: A resource name for the removed data exclusion // is expected, in this format: @@ -124,6 +124,6 @@ message MutateBiddingDataExclusionsResult { // The mutated bidding data exclusion with only mutable fields after mutate. // The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.BiddingDataExclusion + google.ads.googleads.v17.resources.BiddingDataExclusion bidding_data_exclusion = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/bidding_seasonality_adjustment_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/bidding_seasonality_adjustment_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/bidding_seasonality_adjustment_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/bidding_seasonality_adjustment_service.proto index 5d4cd19c9..7785927c2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/bidding_seasonality_adjustment_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/bidding_seasonality_adjustment_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/bidding_seasonality_adjustment.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "BiddingSeasonalityAdjustmentServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to manage bidding seasonality adjustments. service BiddingSeasonalityAdjustmentService { @@ -45,7 +45,7 @@ service BiddingSeasonalityAdjustmentService { MutateBiddingSeasonalityAdjustmentsRequest) returns (MutateBiddingSeasonalityAdjustmentsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + post: "/v17/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service BiddingSeasonalityAdjustmentService { } // Request message for -// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v14.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. +// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. message MutateBiddingSeasonalityAdjustmentsRequest { // Required. ID of the customer whose seasonality adjustments are being // modified. @@ -76,7 +76,7 @@ message MutateBiddingSeasonalityAdjustmentsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -89,11 +89,11 @@ message BiddingSeasonalityAdjustmentOperation { oneof operation { // Create operation: No resource name is expected for the new seasonality // adjustment. - google.ads.googleads.v14.resources.BiddingSeasonalityAdjustment create = 1; + google.ads.googleads.v17.resources.BiddingSeasonalityAdjustment create = 1; // Update operation: The seasonality adjustment is expected to have a valid // resource name. - google.ads.googleads.v14.resources.BiddingSeasonalityAdjustment update = 2; + google.ads.googleads.v17.resources.BiddingSeasonalityAdjustment update = 2; // Remove operation: A resource name for the removed seasonality adjustment // is expected, in this format: @@ -127,6 +127,6 @@ message MutateBiddingSeasonalityAdjustmentsResult { // The mutated bidding seasonality adjustment with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.BiddingSeasonalityAdjustment + google.ads.googleads.v17.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/bidding_strategy_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/bidding_strategy_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/bidding_strategy_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/bidding_strategy_service.proto index 2090ff46b..c5bc5b61a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/bidding_strategy_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/bidding_strategy_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/bidding_strategy.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/bidding_strategy.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Bidding Strategy service. @@ -74,7 +74,7 @@ service BiddingStrategyService { rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/biddingStrategies:mutate" + post: "/v17/customers/{customer_id=*}/biddingStrategies:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -82,7 +82,7 @@ service BiddingStrategyService { } // Request message for -// [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v14.services.BiddingStrategyService.MutateBiddingStrategies]. +// [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v17.services.BiddingStrategyService.MutateBiddingStrategies]. message MutateBiddingStrategiesRequest { // Required. The ID of the customer whose bidding strategies are being // modified. @@ -105,7 +105,7 @@ message MutateBiddingStrategiesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -118,11 +118,11 @@ message BiddingStrategyOperation { oneof operation { // Create operation: No resource name is expected for the new bidding // strategy. - google.ads.googleads.v14.resources.BiddingStrategy create = 1; + google.ads.googleads.v17.resources.BiddingStrategy create = 1; // Update operation: The bidding strategy is expected to have a valid // resource name. - google.ads.googleads.v14.resources.BiddingStrategy update = 2; + google.ads.googleads.v17.resources.BiddingStrategy update = 2; // Remove operation: A resource name for the removed bidding strategy is // expected, in this format: @@ -156,5 +156,5 @@ message MutateBiddingStrategyResult { // The mutated bidding strategy with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.BiddingStrategy bidding_strategy = 2; + google.ads.googleads.v17.resources.BiddingStrategy bidding_strategy = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/billing_setup_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/billing_setup_service.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/services/billing_setup_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/billing_setup_service.proto index e72143e06..66b389157 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/billing_setup_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/billing_setup_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/billing_setup.proto"; +import "google/ads/googleads/v17/resources/billing_setup.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "BillingSetupServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the BillingSetup service. @@ -62,7 +62,7 @@ service BillingSetupService { rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/billingSetups:mutate" + post: "/v17/customers/{customer_id=*}/billingSetups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -87,7 +87,7 @@ message BillingSetupOperation { oneof operation { // Creates a billing setup. No resource name is expected for the new billing // setup. - google.ads.googleads.v14.resources.BillingSetup create = 2; + google.ads.googleads.v17.resources.BillingSetup create = 2; // Resource name of the billing setup to remove. A setup cannot be // removed unless it is in a pending state or its scheduled start time is in diff --git a/third_party/googleapis/google/ads/googleads/v17/services/brand_suggestion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/brand_suggestion_service.proto new file mode 100644 index 000000000..ceabc5b46 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/brand_suggestion_service.proto @@ -0,0 +1,86 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/enums/brand_state.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "BrandSuggestionServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Proto file describing the MerchantCenterLink service. + +// This service will suggest brands based on a prefix. +service BrandSuggestionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Rpc to return a list of matching brands based on a prefix for this + // customer. + rpc SuggestBrands(SuggestBrandsRequest) returns (SuggestBrandsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}:suggestBrands" + body: "*" + }; + option (google.api.method_signature) = "customer_id,brand_prefix"; + } +} + +// Request message for +// [BrandSuggestionService.SuggestBrands][google.ads.googleads.v17.services.BrandSuggestionService.SuggestBrands]. +message SuggestBrandsRequest { + // Required. The ID of the customer onto which to apply the brand suggestion + // operation. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The prefix of a brand name. + optional string brand_prefix = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ids of the brands already selected by advertisers. They will be + // excluded in response. These are expected to be brand ids not brand names. + repeated string selected_brands = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [BrandSuggestionService.SuggestBrands][google.ads.googleads.v17.services.BrandSuggestionService.SuggestBrands]. +message SuggestBrandsResponse { + // Generated brand suggestions of verified brands for the given prefix. + repeated BrandSuggestion brands = 1; +} + +// Information of brand suggestion. +message BrandSuggestion { + // Id for the brand. It would be CKG MID for verified/global scoped brands. + string id = 1; + + // Name of the brand. + string name = 2; + + // Urls which uniquely identify the brand. + repeated string urls = 3; + + // Current state of the brand. + google.ads.googleads.v17.enums.BrandStateEnum.BrandState state = 4; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_asset_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_asset_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_asset_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_asset_service.proto index dd9940678..450886f25 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_asset_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_asset.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CampaignAsset service. @@ -60,7 +60,7 @@ service CampaignAssetService { rpc MutateCampaignAssets(MutateCampaignAssetsRequest) returns (MutateCampaignAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignAssets:mutate" + post: "/v17/customers/{customer_id=*}/campaignAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -68,7 +68,7 @@ service CampaignAssetService { } // Request message for -// [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v14.services.CampaignAssetService.MutateCampaignAssets]. +// [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v17.services.CampaignAssetService.MutateCampaignAssets]. message MutateCampaignAssetsRequest { // Required. The ID of the customer whose campaign assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -89,7 +89,7 @@ message MutateCampaignAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -102,11 +102,11 @@ message CampaignAssetOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // asset. - google.ads.googleads.v14.resources.CampaignAsset create = 1; + google.ads.googleads.v17.resources.CampaignAsset create = 1; // Update operation: The campaign asset is expected to have a valid resource // name. - google.ads.googleads.v14.resources.CampaignAsset update = 3; + google.ads.googleads.v17.resources.CampaignAsset update = 3; // Remove operation: A resource name for the removed campaign asset is // expected, in this format: @@ -140,5 +140,5 @@ message MutateCampaignAssetResult { // The mutated campaign asset with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignAsset campaign_asset = 2; + google.ads.googleads.v17.resources.CampaignAsset campaign_asset = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_asset_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_asset_set_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_asset_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_asset_set_service.proto index 6cc56dd63..99290235c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_asset_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CampaignAssetSet service. @@ -45,7 +45,7 @@ service CampaignAssetSetService { rpc MutateCampaignAssetSets(MutateCampaignAssetSetsRequest) returns (MutateCampaignAssetSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignAssetSets:mutate" + post: "/v17/customers/{customer_id=*}/campaignAssetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CampaignAssetSetService { } // Request message for -// [CampaignAssetSetService.MutateCampaignAssetSets][google.ads.googleads.v14.services.CampaignAssetSetService.MutateCampaignAssetSets]. +// [CampaignAssetSetService.MutateCampaignAssetSets][google.ads.googleads.v17.services.CampaignAssetSetService.MutateCampaignAssetSets]. message MutateCampaignAssetSetsRequest { // Required. The ID of the customer whose campaign asset sets are being // modified. @@ -76,7 +76,7 @@ message MutateCampaignAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CampaignAssetSetOperation { oneof operation { // Create operation: No resource name is expected for the new campaign asset // set. - google.ads.googleads.v14.resources.CampaignAssetSet create = 1; + google.ads.googleads.v17.resources.CampaignAssetSet create = 1; // Remove operation: A resource name for the removed campaign asset set is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCampaignAssetSetResult { // The mutated campaign asset set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignAssetSet campaign_asset_set = 2; + google.ads.googleads.v17.resources.CampaignAssetSet campaign_asset_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_bid_modifier_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_bid_modifier_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_bid_modifier_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_bid_modifier_service.proto index 2bb5e0508..4590d92b6 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_bid_modifier_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_bid_modifier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_bid_modifier.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_bid_modifier.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign Bid Modifier service. @@ -70,7 +70,7 @@ service CampaignBidModifierService { rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignBidModifiers:mutate" + post: "/v17/customers/{customer_id=*}/campaignBidModifiers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service CampaignBidModifierService { } // Request message for -// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v14.services.CampaignBidModifierService.MutateCampaignBidModifiers]. +// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v17.services.CampaignBidModifierService.MutateCampaignBidModifiers]. message MutateCampaignBidModifiersRequest { // Required. ID of the customer whose campaign bid modifiers are being // modified. @@ -101,7 +101,7 @@ message MutateCampaignBidModifiersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -114,11 +114,11 @@ message CampaignBidModifierOperation { oneof operation { // Create operation: No resource name is expected for the new campaign bid // modifier. - google.ads.googleads.v14.resources.CampaignBidModifier create = 1; + google.ads.googleads.v17.resources.CampaignBidModifier create = 1; // Update operation: The campaign bid modifier is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CampaignBidModifier update = 2; + google.ads.googleads.v17.resources.CampaignBidModifier update = 2; // Remove operation: A resource name for the removed campaign bid modifier // is expected, in this format: @@ -152,6 +152,6 @@ message MutateCampaignBidModifierResult { // The mutated campaign bid modifier with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignBidModifier campaign_bid_modifier = + google.ads.googleads.v17.resources.CampaignBidModifier campaign_bid_modifier = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_budget_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_budget_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_budget_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_budget_service.proto index 229bfbecf..4e9c85d12 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_budget_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_budget_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_budget.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_budget.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignBudgetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign Budget service. @@ -65,7 +65,7 @@ service CampaignBudgetService { rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignBudgets:mutate" + post: "/v17/customers/{customer_id=*}/campaignBudgets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -73,7 +73,7 @@ service CampaignBudgetService { } // Request message for -// [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v14.services.CampaignBudgetService.MutateCampaignBudgets]. +// [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v17.services.CampaignBudgetService.MutateCampaignBudgets]. message MutateCampaignBudgetsRequest { // Required. The ID of the customer whose campaign budgets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -94,7 +94,7 @@ message MutateCampaignBudgetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -106,11 +106,11 @@ message CampaignBudgetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new budget. - google.ads.googleads.v14.resources.CampaignBudget create = 1; + google.ads.googleads.v17.resources.CampaignBudget create = 1; // Update operation: The campaign budget is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CampaignBudget update = 2; + google.ads.googleads.v17.resources.CampaignBudget update = 2; // Remove operation: A resource name for the removed budget is expected, in // this format: @@ -144,5 +144,5 @@ message MutateCampaignBudgetResult { // The mutated campaign budget with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignBudget campaign_budget = 2; + google.ads.googleads.v17.resources.CampaignBudget campaign_budget = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_conversion_goal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_conversion_goal_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_conversion_goal_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_conversion_goal_service.proto index 074bdfabf..d23f34981 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_conversion_goal_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_conversion_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/campaign_conversion_goal.proto"; +import "google/ads/googleads/v17/resources/campaign_conversion_goal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignConversionGoalServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CampaignConversionGoal service. @@ -44,7 +44,7 @@ service CampaignConversionGoalService { rpc MutateCampaignConversionGoals(MutateCampaignConversionGoalsRequest) returns (MutateCampaignConversionGoalsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignConversionGoals:mutate" + post: "/v17/customers/{customer_id=*}/campaignConversionGoals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -52,7 +52,7 @@ service CampaignConversionGoalService { } // Request message for -// [CampaignConversionGoalService.MutateCampaignConversionGoals][google.ads.googleads.v14.services.CampaignConversionGoalService.MutateCampaignConversionGoals]. +// [CampaignConversionGoalService.MutateCampaignConversionGoals][google.ads.googleads.v17.services.CampaignConversionGoalService.MutateCampaignConversionGoals]. message MutateCampaignConversionGoalsRequest { // Required. The ID of the customer whose campaign conversion goals are being // modified. @@ -77,7 +77,7 @@ message CampaignConversionGoalOperation { oneof operation { // Update operation: The customer conversion goal is expected to have a // valid resource name. - google.ads.googleads.v14.resources.CampaignConversionGoal update = 1; + google.ads.googleads.v17.resources.CampaignConversionGoal update = 1; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_criterion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_criterion_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_criterion_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_criterion_service.proto index f2dba3dbf..80c2641c5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_criterion_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_criterion.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_criterion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign Criterion service. @@ -76,7 +76,7 @@ service CampaignCriterionService { rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignCriteria:mutate" + post: "/v17/customers/{customer_id=*}/campaignCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -84,7 +84,7 @@ service CampaignCriterionService { } // Request message for -// [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v14.services.CampaignCriterionService.MutateCampaignCriteria]. +// [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v17.services.CampaignCriterionService.MutateCampaignCriteria]. message MutateCampaignCriteriaRequest { // Required. The ID of the customer whose criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -105,7 +105,7 @@ message MutateCampaignCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -117,11 +117,11 @@ message CampaignCriterionOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v14.resources.CampaignCriterion create = 1; + google.ads.googleads.v17.resources.CampaignCriterion create = 1; // Update operation: The criterion is expected to have a valid resource // name. - google.ads.googleads.v14.resources.CampaignCriterion update = 2; + google.ads.googleads.v17.resources.CampaignCriterion update = 2; // Remove operation: A resource name for the removed criterion is expected, // in this format: @@ -155,5 +155,5 @@ message MutateCampaignCriterionResult { // The mutated campaign criterion with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignCriterion campaign_criterion = 2; + google.ads.googleads.v17.resources.CampaignCriterion campaign_criterion = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_customizer_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_customizer_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_customizer_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_customizer_service.proto index 9bdeaaca1..7d459ef87 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_customizer_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_customizer.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_customizer.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CampaignCustomizer service. @@ -45,7 +45,7 @@ service CampaignCustomizerService { rpc MutateCampaignCustomizers(MutateCampaignCustomizersRequest) returns (MutateCampaignCustomizersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignCustomizers:mutate" + post: "/v17/customers/{customer_id=*}/campaignCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CampaignCustomizerService { } // Request message for -// [CampaignCustomizerService.MutateCampaignCustomizers][google.ads.googleads.v14.services.CampaignCustomizerService.MutateCampaignCustomizers]. +// [CampaignCustomizerService.MutateCampaignCustomizers][google.ads.googleads.v17.services.CampaignCustomizerService.MutateCampaignCustomizers]. message MutateCampaignCustomizersRequest { // Required. The ID of the customer whose campaign customizers are being // modified. @@ -76,7 +76,7 @@ message MutateCampaignCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CampaignCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // customizer - google.ads.googleads.v14.resources.CampaignCustomizer create = 1; + google.ads.googleads.v17.resources.CampaignCustomizer create = 1; // Remove operation: A resource name for the removed campaign customizer is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCampaignCustomizerResult { // The mutated CampaignCustomizer with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignCustomizer campaign_customizer = 2; + google.ads.googleads.v17.resources.CampaignCustomizer campaign_customizer = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_draft_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_draft_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_draft_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_draft_service.proto index 865415f41..77341186b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_draft_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_draft_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_draft.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_draft.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,14 +27,14 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign Draft service. @@ -60,7 +60,7 @@ service CampaignDraftService { rpc MutateCampaignDrafts(MutateCampaignDraftsRequest) returns (MutateCampaignDraftsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignDrafts:mutate" + post: "/v17/customers/{customer_id=*}/campaignDrafts:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -73,7 +73,7 @@ service CampaignDraftService { // is done. Only a done status is returned in the response. See the status // in the Campaign Draft resource to determine if the promotion was // successful. If the LRO failed, use - // [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v14.services.CampaignDraftService.ListCampaignDraftAsyncErrors] + // [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v17.services.CampaignDraftService.ListCampaignDraftAsyncErrors] // to view the list of error reasons. // // List of thrown errors: @@ -87,7 +87,7 @@ service CampaignDraftService { rpc PromoteCampaignDraft(PromoteCampaignDraftRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v14/{campaign_draft=customers/*/campaignDrafts/*}:promote" + post: "/v17/{campaign_draft=customers/*/campaignDrafts/*}:promote" body: "*" }; option (google.api.method_signature) = "campaign_draft"; @@ -111,14 +111,14 @@ service CampaignDraftService { rpc ListCampaignDraftAsyncErrors(ListCampaignDraftAsyncErrorsRequest) returns (ListCampaignDraftAsyncErrorsResponse) { option (google.api.http) = { - get: "/v14/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + get: "/v17/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" }; option (google.api.method_signature) = "resource_name"; } } // Request message for -// [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v14.services.CampaignDraftService.MutateCampaignDrafts]. +// [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v17.services.CampaignDraftService.MutateCampaignDrafts]. message MutateCampaignDraftsRequest { // Required. The ID of the customer whose campaign drafts are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -139,12 +139,12 @@ message MutateCampaignDraftsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } // Request message for -// [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v14.services.CampaignDraftService.PromoteCampaignDraft]. +// [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v17.services.CampaignDraftService.PromoteCampaignDraft]. message PromoteCampaignDraftRequest { // Required. The resource name of the campaign draft to promote. string campaign_draft = 1 [ @@ -168,11 +168,11 @@ message CampaignDraftOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // draft. - google.ads.googleads.v14.resources.CampaignDraft create = 1; + google.ads.googleads.v17.resources.CampaignDraft create = 1; // Update operation: The campaign draft is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CampaignDraft update = 2; + google.ads.googleads.v17.resources.CampaignDraft update = 2; // Remove operation: The campaign draft is expected to have a valid // resource name, in this format: @@ -206,11 +206,11 @@ message MutateCampaignDraftResult { // The mutated campaign draft with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignDraft campaign_draft = 2; + google.ads.googleads.v17.resources.CampaignDraft campaign_draft = 2; } // Request message for -// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v14.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v17.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. message ListCampaignDraftAsyncErrorsRequest { // Required. The name of the campaign draft from which to retrieve the async // errors. @@ -234,7 +234,7 @@ message ListCampaignDraftAsyncErrorsRequest { } // Response message for -// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v14.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v17.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. message ListCampaignDraftAsyncErrorsResponse { // Details of the errors when performing the asynchronous operation. repeated google.rpc.Status errors = 1; diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_extension_setting_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_extension_setting_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_extension_setting_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_extension_setting_service.proto index f204b7e56..309eb57b8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_extension_setting_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_extension_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_extension_setting.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_extension_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CampaignExtensionSetting service. @@ -75,7 +75,7 @@ service CampaignExtensionSettingService { rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignExtensionSettings:mutate" + post: "/v17/customers/{customer_id=*}/campaignExtensionSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -83,7 +83,7 @@ service CampaignExtensionSettingService { } // Request message for -// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v14.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. +// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v17.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. message MutateCampaignExtensionSettingsRequest { // Required. The ID of the customer whose campaign extension settings are // being modified. @@ -106,7 +106,7 @@ message MutateCampaignExtensionSettingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -119,11 +119,11 @@ message CampaignExtensionSettingOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // extension setting. - google.ads.googleads.v14.resources.CampaignExtensionSetting create = 1; + google.ads.googleads.v17.resources.CampaignExtensionSetting create = 1; // Update operation: The campaign extension setting is expected to have a // valid resource name. - google.ads.googleads.v14.resources.CampaignExtensionSetting update = 2; + google.ads.googleads.v17.resources.CampaignExtensionSetting update = 2; // Remove operation: A resource name for the removed campaign extension // setting is expected, in this format: @@ -157,6 +157,6 @@ message MutateCampaignExtensionSettingResult { // The mutated campaign extension setting with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignExtensionSetting + google.ads.googleads.v17.resources.CampaignExtensionSetting campaign_extension_setting = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_feed_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_feed_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_feed_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_feed_service.proto index e0f3551c6..ed82686ef 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_feed_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_feed.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignFeedServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CampaignFeed service. @@ -71,7 +71,7 @@ service CampaignFeedService { rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignFeeds:mutate" + post: "/v17/customers/{customer_id=*}/campaignFeeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service CampaignFeedService { } // Request message for -// [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v14.services.CampaignFeedService.MutateCampaignFeeds]. +// [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v17.services.CampaignFeedService.MutateCampaignFeeds]. message MutateCampaignFeedsRequest { // Required. The ID of the customer whose campaign feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -100,7 +100,7 @@ message MutateCampaignFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -112,11 +112,11 @@ message CampaignFeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new campaign feed. - google.ads.googleads.v14.resources.CampaignFeed create = 1; + google.ads.googleads.v17.resources.CampaignFeed create = 1; // Update operation: The campaign feed is expected to have a valid resource // name. - google.ads.googleads.v14.resources.CampaignFeed update = 2; + google.ads.googleads.v17.resources.CampaignFeed update = 2; // Remove operation: A resource name for the removed campaign feed is // expected, in this format: @@ -150,5 +150,5 @@ message MutateCampaignFeedResult { // The mutated campaign feed with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignFeed campaign_feed = 2; + google.ads.googleads.v17.resources.CampaignFeed campaign_feed = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_group_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_group_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_group_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_group_service.proto index 3c373fc9e..26b5bd4fc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_group_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_group.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignGroupServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign group service. @@ -46,7 +46,7 @@ service CampaignGroupService { rpc MutateCampaignGroups(MutateCampaignGroupsRequest) returns (MutateCampaignGroupsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignGroups:mutate" + post: "/v17/customers/{customer_id=*}/campaignGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service CampaignGroupService { } // Request message for -// [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v14.services.CampaignGroupService.MutateCampaignGroups]. +// [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v17.services.CampaignGroupService.MutateCampaignGroups]. message MutateCampaignGroupsRequest { // Required. The ID of the customer whose campaign groups are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -75,7 +75,7 @@ message MutateCampaignGroupsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -88,11 +88,11 @@ message CampaignGroupOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // group. - google.ads.googleads.v14.resources.CampaignGroup create = 1; + google.ads.googleads.v17.resources.CampaignGroup create = 1; // Update operation: The campaign group is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CampaignGroup update = 2; + google.ads.googleads.v17.resources.CampaignGroup update = 2; // Remove operation: A resource name for the removed campaign group is // expected, in this format: @@ -129,5 +129,5 @@ message MutateCampaignGroupResult { // The mutated campaign group with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignGroup campaign_group = 2; + google.ads.googleads.v17.resources.CampaignGroup campaign_group = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_label_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_label_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_label_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_label_service.proto index dd5962a12..dfd18842d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_label_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/campaign_label.proto"; +import "google/ads/googleads/v17/resources/campaign_label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignLabelServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign Label service. @@ -57,7 +57,7 @@ service CampaignLabelService { rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignLabels:mutate" + post: "/v17/customers/{customer_id=*}/campaignLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -65,7 +65,7 @@ service CampaignLabelService { } // Request message for -// [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v14.services.CampaignLabelService.MutateCampaignLabels]. +// [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v17.services.CampaignLabelService.MutateCampaignLabels]. message MutateCampaignLabelsRequest { // Required. ID of the customer whose campaign-label relationships are being // modified. @@ -93,7 +93,7 @@ message CampaignLabelOperation { oneof operation { // Create operation: No resource name is expected for the new campaign-label // relationship. - google.ads.googleads.v14.resources.CampaignLabel create = 1; + google.ads.googleads.v17.resources.CampaignLabel create = 1; // Remove operation: A resource name for the campaign-label relationship // being removed, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v17/services/campaign_lifecycle_goal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_lifecycle_goal_service.proto new file mode 100644 index 000000000..8fafa07f5 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_lifecycle_goal_service.proto @@ -0,0 +1,107 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CampaignLifecycleGoalServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Service to configure campaign lifecycle goals. +service CampaignLifecycleGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Process the given campaign lifecycle configurations. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CampaignLifecycleGoalConfigError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ConfigureCampaignLifecycleGoals(ConfigureCampaignLifecycleGoalsRequest) + returns (ConfigureCampaignLifecycleGoalsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [CampaignLifecycleGoalService.configureCampaignLifecycleGoals][]. +message ConfigureCampaignLifecycleGoalsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform campaign lifecycle goal update. + CampaignLifecycleGoalOperation operation = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. If true, the request is validated but not executed. Only errors + // are returned, not results. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single operation on a campaign lifecycle goal. +message CampaignLifecycleGoalOperation { + // Optional. FieldMask that determines which resource fields are modified in + // an update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // The mutate operation. + oneof operation { + // Create operation: Create a new campaign lifecycle goal. The campaign + // field should be set for this operation. + google.ads.googleads.v17.resources.CampaignLifecycleGoal create = 1; + + // Update operation: Update an existing campaign lifecycle goal. The + // campaign field should not be set for this operation. + google.ads.googleads.v17.resources.CampaignLifecycleGoal update = 3; + } +} + +// Response message for +// [CampaignLifecycleGoalService.configureCampaignLifecycleGoals][]. +message ConfigureCampaignLifecycleGoalsResponse { + // Result for the campaign lifecycle goal configuration. + ConfigureCampaignLifecycleGoalsResult result = 1; +} + +// The result for the campaign lifecycle goal configuration. +message ConfigureCampaignLifecycleGoalsResult { + // Returned for the successful operation. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignLifecycleGoal" + }]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_service.proto index e451d7e98..a11a0a035 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign service. @@ -82,7 +82,7 @@ service CampaignService { rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaigns:mutate" + post: "/v17/customers/{customer_id=*}/campaigns:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -90,7 +90,7 @@ service CampaignService { } // Request message for -// [CampaignService.MutateCampaigns][google.ads.googleads.v14.services.CampaignService.MutateCampaigns]. +// [CampaignService.MutateCampaigns][google.ads.googleads.v17.services.CampaignService.MutateCampaigns]. message MutateCampaignsRequest { // Required. The ID of the customer whose campaigns are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -111,7 +111,7 @@ message MutateCampaignsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -123,11 +123,11 @@ message CampaignOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new campaign. - google.ads.googleads.v14.resources.Campaign create = 1; + google.ads.googleads.v17.resources.Campaign create = 1; // Update operation: The campaign is expected to have a valid // resource name. - google.ads.googleads.v14.resources.Campaign update = 2; + google.ads.googleads.v17.resources.Campaign update = 2; // Remove operation: A resource name for the removed campaign is // expected, in this format: @@ -160,5 +160,5 @@ message MutateCampaignResult { // The mutated campaign with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Campaign campaign = 2; + google.ads.googleads.v17.resources.Campaign campaign = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/campaign_shared_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/campaign_shared_set_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/campaign_shared_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/campaign_shared_set_service.proto index bfb0743f9..899659cd2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/campaign_shared_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/campaign_shared_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/campaign_shared_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/campaign_shared_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Campaign Shared Set service. @@ -68,7 +68,7 @@ service CampaignSharedSetService { rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/campaignSharedSets:mutate" + post: "/v17/customers/{customer_id=*}/campaignSharedSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -76,7 +76,7 @@ service CampaignSharedSetService { } // Request message for -// [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v14.services.CampaignSharedSetService.MutateCampaignSharedSets]. +// [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v17.services.CampaignSharedSetService.MutateCampaignSharedSets]. message MutateCampaignSharedSetsRequest { // Required. The ID of the customer whose campaign shared sets are being // modified. @@ -99,7 +99,7 @@ message MutateCampaignSharedSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -109,7 +109,7 @@ message CampaignSharedSetOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // shared set. - google.ads.googleads.v14.resources.CampaignSharedSet create = 1; + google.ads.googleads.v17.resources.CampaignSharedSet create = 1; // Remove operation: A resource name for the removed campaign shared set is // expected, in this format: @@ -143,5 +143,5 @@ message MutateCampaignSharedSetResult { // The mutated campaign shared set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CampaignSharedSet campaign_shared_set = 2; + google.ads.googleads.v17.resources.CampaignSharedSet campaign_shared_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_action_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_action_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_action_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_action_service.proto index 3b250ed51..5ad29b0c8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_action_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_action_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/conversion_action.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/conversion_action.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionActionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Conversion Action service. @@ -64,7 +64,7 @@ service ConversionActionService { rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/conversionActions:mutate" + post: "/v17/customers/{customer_id=*}/conversionActions:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -72,7 +72,7 @@ service ConversionActionService { } // Request message for -// [ConversionActionService.MutateConversionActions][google.ads.googleads.v14.services.ConversionActionService.MutateConversionActions]. +// [ConversionActionService.MutateConversionActions][google.ads.googleads.v17.services.ConversionActionService.MutateConversionActions]. message MutateConversionActionsRequest { // Required. The ID of the customer whose conversion actions are being // modified. @@ -95,7 +95,7 @@ message MutateConversionActionsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -108,11 +108,11 @@ message ConversionActionOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // action. - google.ads.googleads.v14.resources.ConversionAction create = 1; + google.ads.googleads.v17.resources.ConversionAction create = 1; // Update operation: The conversion action is expected to have a valid // resource name. - google.ads.googleads.v14.resources.ConversionAction update = 2; + google.ads.googleads.v17.resources.ConversionAction update = 2; // Remove operation: A resource name for the removed conversion action is // expected, in this format: @@ -125,7 +125,7 @@ message ConversionActionOperation { } // Response message for -// [ConversionActionService.MutateConversionActions][google.ads.googleads.v14.services.ConversionActionService.MutateConversionActions]. +// [ConversionActionService.MutateConversionActions][google.ads.googleads.v17.services.ConversionActionService.MutateConversionActions]. message MutateConversionActionsResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the @@ -147,5 +147,5 @@ message MutateConversionActionResult { // The mutated conversion action with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ConversionAction conversion_action = 2; + google.ads.googleads.v17.resources.ConversionAction conversion_action = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_adjustment_upload_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_adjustment_upload_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_adjustment_upload_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_adjustment_upload_service.proto index ac48459bd..d52221f27 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_adjustment_upload_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_adjustment_upload_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/offline_user_data.proto"; -import "google/ads/googleads/v14/enums/conversion_adjustment_type.proto"; +import "google/ads/googleads/v17/common/offline_user_data.proto"; +import "google/ads/googleads/v17/enums/conversion_adjustment_type.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionAdjustmentUploadServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to upload conversion adjustments. service ConversionAdjustmentUploadService { @@ -50,7 +50,7 @@ service ConversionAdjustmentUploadService { rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:uploadConversionAdjustments" + post: "/v17/customers/{customer_id=*}:uploadConversionAdjustments" body: "*" }; option (google.api.method_signature) = @@ -59,7 +59,7 @@ service ConversionAdjustmentUploadService { } // Request message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v14.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v17.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. message UploadConversionAdjustmentsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -80,10 +80,17 @@ message UploadConversionAdjustmentsRequest { // If true, the request is validated but not executed. Only errors are // returned, not results. bool validate_only = 4; + + // Optional. Optional input to set job ID. Must be a non-negative number that + // is less than 2^31 if provided. If this field is not provided, the API will + // generate a job ID in the range [2^31, (2^63)-1]. The API will return the + // value for this request in the `job_id` field of the + // `UploadConversionAdjustmentsResponse`. + optional int32 job_id = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v14.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v17.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. message UploadConversionAdjustmentsResponse { // Errors that pertain to conversion adjustment failures in the partial // failure mode. Returned when all errors occur inside the adjustments. If any @@ -126,7 +133,7 @@ message ConversionAdjustment { optional string adjustment_date_time = 9; // The adjustment type. - google.ads.googleads.v14.enums.ConversionAdjustmentTypeEnum + google.ads.googleads.v17.enums.ConversionAdjustmentTypeEnum .ConversionAdjustmentType adjustment_type = 5; // Information needed to restate the conversion's value. @@ -142,7 +149,7 @@ message ConversionAdjustment { // ConversionAdjustmentUploadService only accepts user identifiers in // enhancements. The maximum number of user identifiers for each // enhancement is 5. - repeated google.ads.googleads.v14.common.UserIdentifier user_identifiers = 10; + repeated google.ads.googleads.v17.common.UserIdentifier user_identifiers = 10; // The user agent to enhance the original conversion. This can be found in // your user's HTTP request header when they convert on your web page. @@ -202,6 +209,6 @@ message ConversionAdjustmentResult { optional string adjustment_date_time = 8; // The adjustment type. - google.ads.googleads.v14.enums.ConversionAdjustmentTypeEnum + google.ads.googleads.v17.enums.ConversionAdjustmentTypeEnum .ConversionAdjustmentType adjustment_type = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_custom_variable_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_custom_variable_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_custom_variable_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_custom_variable_service.proto index 16bdb6832..d0c552425 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_custom_variable_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_custom_variable_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/conversion_custom_variable.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/conversion_custom_variable.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Conversion Custom Variable service. @@ -56,7 +56,7 @@ service ConversionCustomVariableService { rpc MutateConversionCustomVariables(MutateConversionCustomVariablesRequest) returns (MutateConversionCustomVariablesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/conversionCustomVariables:mutate" + post: "/v17/customers/{customer_id=*}/conversionCustomVariables:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service ConversionCustomVariableService { } // Request message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v14.services.ConversionCustomVariableService.MutateConversionCustomVariables]. +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v17.services.ConversionCustomVariableService.MutateConversionCustomVariables]. message MutateConversionCustomVariablesRequest { // Required. The ID of the customer whose conversion custom variables are // being modified. @@ -87,7 +87,7 @@ message MutateConversionCustomVariablesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -100,16 +100,16 @@ message ConversionCustomVariableOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // custom variable. - google.ads.googleads.v14.resources.ConversionCustomVariable create = 1; + google.ads.googleads.v17.resources.ConversionCustomVariable create = 1; // Update operation: The conversion custom variable is expected to have a // valid resource name. - google.ads.googleads.v14.resources.ConversionCustomVariable update = 2; + google.ads.googleads.v17.resources.ConversionCustomVariable update = 2; } } // Response message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v14.services.ConversionCustomVariableService.MutateConversionCustomVariables]. +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v17.services.ConversionCustomVariableService.MutateConversionCustomVariables]. message MutateConversionCustomVariablesResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the @@ -131,6 +131,6 @@ message MutateConversionCustomVariableResult { // The mutated conversion custom variable with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ConversionCustomVariable + google.ads.googleads.v17.resources.ConversionCustomVariable conversion_custom_variable = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_goal_campaign_config_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_goal_campaign_config_service.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_goal_campaign_config_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_goal_campaign_config_service.proto index 2ec8b9582..14d5130c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_goal_campaign_config_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_goal_campaign_config_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/conversion_goal_campaign_config.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/conversion_goal_campaign_config.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionGoalCampaignConfigServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the ConversionGoalCampaignConfig service. @@ -46,7 +46,7 @@ service ConversionGoalCampaignConfigService { MutateConversionGoalCampaignConfigsRequest) returns (MutateConversionGoalCampaignConfigsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + post: "/v17/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service ConversionGoalCampaignConfigService { } // Request message for -// [ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs][google.ads.googleads.v14.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs]. +// [ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs][google.ads.googleads.v17.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs]. message MutateConversionGoalCampaignConfigsRequest { // Required. The ID of the customer whose custom conversion goals are being // modified. @@ -71,7 +71,7 @@ message MutateConversionGoalCampaignConfigsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -84,7 +84,7 @@ message ConversionGoalCampaignConfigOperation { oneof operation { // Update operation: The conversion goal campaign config is expected to have // a valid resource name. - google.ads.googleads.v14.resources.ConversionGoalCampaignConfig update = 1; + google.ads.googleads.v17.resources.ConversionGoalCampaignConfig update = 1; } } @@ -104,6 +104,6 @@ message MutateConversionGoalCampaignConfigResult { // The mutated ConversionGoalCampaignConfig with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ConversionGoalCampaignConfig + google.ads.googleads.v17.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_upload_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_upload_service.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_upload_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_upload_service.proto index 02f68368f..8715ffce8 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_upload_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_upload_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/offline_user_data.proto"; -import "google/ads/googleads/v14/enums/conversion_environment_enum.proto"; +import "google/ads/googleads/v17/common/consent.proto"; +import "google/ads/googleads/v17/common/offline_user_data.proto"; +import "google/ads/googleads/v17/enums/conversion_environment_enum.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionUploadServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to upload conversions. service ConversionUploadService { @@ -52,7 +53,7 @@ service ConversionUploadService { rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:uploadClickConversions" + post: "/v17/customers/{customer_id=*}:uploadClickConversions" body: "*" }; option (google.api.method_signature) = @@ -72,7 +73,7 @@ service ConversionUploadService { rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:uploadCallConversions" + post: "/v17/customers/{customer_id=*}:uploadCallConversions" body: "*" }; option (google.api.method_signature) = @@ -81,7 +82,7 @@ service ConversionUploadService { } // Request message for -// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v14.services.ConversionUploadService.UploadClickConversions]. +// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v17.services.ConversionUploadService.UploadClickConversions]. message UploadClickConversionsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -122,10 +123,17 @@ message UploadClickConversionsRequest { // // Default is false. bool debug_enabled = 5; + + // Optional. Optional input to set job ID. Must be a non-negative number that + // is less than 2^31 if provided. If this field is not provided, the API will + // generate a job ID in the range [2^31, (2^63)-1]. The API will return the + // value for this request in the `job_id` field of the + // `UploadClickConversionsResponse`. + optional int32 job_id = 6 [(google.api.field_behavior) = OPTIONAL]; } // Response message for -// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v14.services.ConversionUploadService.UploadClickConversions]. +// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v17.services.ConversionUploadService.UploadClickConversions]. message UploadClickConversionsResponse { // Errors that pertain to conversion failures in the partial failure mode. // Returned when all errors occur inside the conversions. If any errors occur @@ -145,7 +153,7 @@ message UploadClickConversionsResponse { } // Request message for -// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v14.services.ConversionUploadService.UploadCallConversions]. +// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v17.services.ConversionUploadService.UploadCallConversions]. message UploadCallConversionsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -169,7 +177,7 @@ message UploadCallConversionsRequest { } // Response message for -// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v14.services.ConversionUploadService.UploadCallConversions]. +// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v17.services.ConversionUploadService.UploadCallConversions]. message UploadCallConversionsResponse { // Errors that pertain to conversion failures in the partial failure mode. // Returned when all errors occur inside the conversions. If any errors occur @@ -234,11 +242,14 @@ message ClickConversion { // The user identifiers associated with this conversion. Only hashed_email and // hashed_phone_number are supported for conversion uploads. The maximum // number of user identifiers for each conversion is 5. - repeated google.ads.googleads.v14.common.UserIdentifier user_identifiers = 17; + repeated google.ads.googleads.v17.common.UserIdentifier user_identifiers = 17; // The environment this conversion was recorded on, for example, App or Web. - google.ads.googleads.v14.enums.ConversionEnvironmentEnum.ConversionEnvironment + google.ads.googleads.v17.enums.ConversionEnvironmentEnum.ConversionEnvironment conversion_environment = 20; + + // The consent setting for the event. + google.ads.googleads.v17.common.Consent consent = 23; } // A call conversion. @@ -272,6 +283,9 @@ message CallConversion { // The custom variables associated with this conversion. repeated CustomVariable custom_variables = 13; + + // The consent setting for the event. + google.ads.googleads.v17.common.Consent consent = 14; } // Contains additional information about externally attributed conversions. @@ -307,7 +321,7 @@ message ClickConversionResult { // The user identifiers associated with this conversion. Only hashed_email and // hashed_phone_number are supported for conversion uploads. The maximum // number of user identifiers for each conversion is 5. - repeated google.ads.googleads.v14.common.UserIdentifier user_identifiers = 7; + repeated google.ads.googleads.v17.common.UserIdentifier user_identifiers = 7; } // Identifying information for a successfully processed CallConversionUpload. diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_value_rule_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_value_rule_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_value_rule_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_value_rule_service.proto index ae43b57e6..c234dd0b2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_value_rule_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_value_rule_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/conversion_value_rule.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/conversion_value_rule.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Conversion Value Rule service. @@ -46,7 +46,7 @@ service ConversionValueRuleService { rpc MutateConversionValueRules(MutateConversionValueRulesRequest) returns (MutateConversionValueRulesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/conversionValueRules:mutate" + post: "/v17/customers/{customer_id=*}/conversionValueRules:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service ConversionValueRuleService { } // Request message for -// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v14.services.ConversionValueRuleService.MutateConversionValueRules]. +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v17.services.ConversionValueRuleService.MutateConversionValueRules]. message MutateConversionValueRulesRequest { // Required. The ID of the customer whose conversion value rules are being // modified. @@ -77,7 +77,7 @@ message MutateConversionValueRulesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -90,11 +90,11 @@ message ConversionValueRuleOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // value rule. - google.ads.googleads.v14.resources.ConversionValueRule create = 1; + google.ads.googleads.v17.resources.ConversionValueRule create = 1; // Update operation: The conversion value rule is expected to have a valid // resource name. - google.ads.googleads.v14.resources.ConversionValueRule update = 2; + google.ads.googleads.v17.resources.ConversionValueRule update = 2; // Remove operation: A resource name for the removed conversion value rule // is expected, in this format: @@ -107,7 +107,7 @@ message ConversionValueRuleOperation { } // Response message for -// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v14.services.ConversionValueRuleService.MutateConversionValueRules]. +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v17.services.ConversionValueRuleService.MutateConversionValueRules]. message MutateConversionValueRulesResponse { // All results for the mutate. repeated MutateConversionValueRuleResult results = 2; @@ -129,6 +129,6 @@ message MutateConversionValueRuleResult { // The mutated conversion value rule with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ConversionValueRule conversion_value_rule = + google.ads.googleads.v17.resources.ConversionValueRule conversion_value_rule = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/conversion_value_rule_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/conversion_value_rule_set_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/conversion_value_rule_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/conversion_value_rule_set_service.proto index e7b72a4a8..e17eea3ea 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/conversion_value_rule_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/conversion_value_rule_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/conversion_value_rule_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/conversion_value_rule_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Conversion Value Rule Set service. @@ -46,7 +46,7 @@ service ConversionValueRuleSetService { rpc MutateConversionValueRuleSets(MutateConversionValueRuleSetsRequest) returns (MutateConversionValueRuleSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/conversionValueRuleSets:mutate" + post: "/v17/customers/{customer_id=*}/conversionValueRuleSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service ConversionValueRuleSetService { } // Request message for -// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v14.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v17.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. message MutateConversionValueRuleSetsRequest { // Required. The ID of the customer whose conversion value rule sets are being // modified. @@ -77,7 +77,7 @@ message MutateConversionValueRuleSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -90,11 +90,11 @@ message ConversionValueRuleSetOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // value rule set. - google.ads.googleads.v14.resources.ConversionValueRuleSet create = 1; + google.ads.googleads.v17.resources.ConversionValueRuleSet create = 1; // Update operation: The conversion value rule set is expected to have a // valid resource name. - google.ads.googleads.v14.resources.ConversionValueRuleSet update = 2; + google.ads.googleads.v17.resources.ConversionValueRuleSet update = 2; // Remove operation: A resource name for the removed conversion value rule // set is expected, in this format: @@ -107,7 +107,7 @@ message ConversionValueRuleSetOperation { } // Response message for -// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v14.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v17.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. message MutateConversionValueRuleSetsResponse { // All results for the mutate. repeated MutateConversionValueRuleSetResult results = 1; @@ -129,6 +129,6 @@ message MutateConversionValueRuleSetResult { // The mutated conversion value rule set with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ConversionValueRuleSet + google.ads.googleads.v17.resources.ConversionValueRuleSet conversion_value_rule_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/custom_audience_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/custom_audience_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/custom_audience_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/custom_audience_service.proto index d69e5df96..e95df3501 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/custom_audience_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/custom_audience_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/custom_audience.proto"; +import "google/ads/googleads/v17/resources/custom_audience.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Custom Audience service. @@ -58,7 +58,7 @@ service CustomAudienceService { rpc MutateCustomAudiences(MutateCustomAudiencesRequest) returns (MutateCustomAudiencesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customAudiences:mutate" + post: "/v17/customers/{customer_id=*}/customAudiences:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -66,7 +66,7 @@ service CustomAudienceService { } // Request message for -// [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v14.services.CustomAudienceService.MutateCustomAudiences]. +// [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v17.services.CustomAudienceService.MutateCustomAudiences]. message MutateCustomAudiencesRequest { // Required. The ID of the customer whose custom audiences are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -89,11 +89,11 @@ message CustomAudienceOperation { oneof operation { // Create operation: No resource name is expected for the new custom // audience. - google.ads.googleads.v14.resources.CustomAudience create = 1; + google.ads.googleads.v17.resources.CustomAudience create = 1; // Update operation: The custom audience is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CustomAudience update = 2; + google.ads.googleads.v17.resources.CustomAudience update = 2; // Remove operation: A resource name for the removed custom audience is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/custom_conversion_goal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/custom_conversion_goal_service.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/services/custom_conversion_goal_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/custom_conversion_goal_service.proto index 641fbaf43..9ba2398c4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/custom_conversion_goal_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/custom_conversion_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/custom_conversion_goal.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/custom_conversion_goal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomConversionGoal service. @@ -45,7 +45,7 @@ service CustomConversionGoalService { rpc MutateCustomConversionGoals(MutateCustomConversionGoalsRequest) returns (MutateCustomConversionGoalsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customConversionGoals:mutate" + post: "/v17/customers/{customer_id=*}/customConversionGoals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CustomConversionGoalService { } // Request message for -// [CustomConversionGoalService.MutateCustomConversionGoals][google.ads.googleads.v14.services.CustomConversionGoalService.MutateCustomConversionGoals]. +// [CustomConversionGoalService.MutateCustomConversionGoals][google.ads.googleads.v17.services.CustomConversionGoalService.MutateCustomConversionGoals]. message MutateCustomConversionGoalsRequest { // Required. The ID of the customer whose custom conversion goals are being // modified. @@ -70,7 +70,7 @@ message MutateCustomConversionGoalsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -83,11 +83,11 @@ message CustomConversionGoalOperation { oneof operation { // Create operation: No resource name is expected for the new custom // conversion goal - google.ads.googleads.v14.resources.CustomConversionGoal create = 1; + google.ads.googleads.v17.resources.CustomConversionGoal create = 1; // Update operation: The custom conversion goal is expected to have a // valid resource name. - google.ads.googleads.v14.resources.CustomConversionGoal update = 2; + google.ads.googleads.v17.resources.CustomConversionGoal update = 2; // Remove operation: A resource name for the removed custom conversion goal // is expected, in this format: @@ -115,6 +115,6 @@ message MutateCustomConversionGoalResult { // The mutated CustomConversionGoal with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomConversionGoal + google.ads.googleads.v17.resources.CustomConversionGoal custom_conversion_goal = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/custom_interest_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/custom_interest_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/custom_interest_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/custom_interest_service.proto index b57c2d598..1a697d2e5 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/custom_interest_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/custom_interest_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/custom_interest.proto"; +import "google/ads/googleads/v17/resources/custom_interest.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomInterestServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Custom Interest service. @@ -56,7 +56,7 @@ service CustomInterestService { rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customInterests:mutate" + post: "/v17/customers/{customer_id=*}/customInterests:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service CustomInterestService { } // Request message for -// [CustomInterestService.MutateCustomInterests][google.ads.googleads.v14.services.CustomInterestService.MutateCustomInterests]. +// [CustomInterestService.MutateCustomInterests][google.ads.googleads.v17.services.CustomInterestService.MutateCustomInterests]. message MutateCustomInterestsRequest { // Required. The ID of the customer whose custom interests are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -87,11 +87,11 @@ message CustomInterestOperation { oneof operation { // Create operation: No resource name is expected for the new custom // interest. - google.ads.googleads.v14.resources.CustomInterest create = 1; + google.ads.googleads.v17.resources.CustomInterest create = 1; // Update operation: The custom interest is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CustomInterest update = 2; + google.ads.googleads.v17.resources.CustomInterest update = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_asset_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_asset_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_asset_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_asset_service.proto index e62b6aecb..23d8e696a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_asset_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer_asset.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerAsset service. @@ -57,7 +57,7 @@ service CustomerAssetService { rpc MutateCustomerAssets(MutateCustomerAssetsRequest) returns (MutateCustomerAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerAssets:mutate" + post: "/v17/customers/{customer_id=*}/customerAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -65,7 +65,7 @@ service CustomerAssetService { } // Request message for -// [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v14.services.CustomerAssetService.MutateCustomerAssets]. +// [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v17.services.CustomerAssetService.MutateCustomerAssets]. message MutateCustomerAssetsRequest { // Required. The ID of the customer whose customer assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -86,7 +86,7 @@ message MutateCustomerAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -99,11 +99,11 @@ message CustomerAssetOperation { oneof operation { // Create operation: No resource name is expected for the new customer // asset. - google.ads.googleads.v14.resources.CustomerAsset create = 1; + google.ads.googleads.v17.resources.CustomerAsset create = 1; // Update operation: The customer asset is expected to have a valid resource // name. - google.ads.googleads.v14.resources.CustomerAsset update = 3; + google.ads.googleads.v17.resources.CustomerAsset update = 3; // Remove operation: A resource name for the removed customer asset is // expected, in this format: @@ -137,5 +137,5 @@ message MutateCustomerAssetResult { // The mutated customer asset with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomerAsset customer_asset = 2; + google.ads.googleads.v17.resources.CustomerAsset customer_asset = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_asset_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_asset_set_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_asset_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_asset_set_service.proto index 7b0424393..16644c34c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_asset_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer_asset_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer_asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerAssetSet service. @@ -45,7 +45,7 @@ service CustomerAssetSetService { rpc MutateCustomerAssetSets(MutateCustomerAssetSetsRequest) returns (MutateCustomerAssetSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerAssetSets:mutate" + post: "/v17/customers/{customer_id=*}/customerAssetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CustomerAssetSetService { } // Request message for -// [CustomerAssetSetService.MutateCustomerAssetSets][google.ads.googleads.v14.services.CustomerAssetSetService.MutateCustomerAssetSets]. +// [CustomerAssetSetService.MutateCustomerAssetSets][google.ads.googleads.v17.services.CustomerAssetSetService.MutateCustomerAssetSets]. message MutateCustomerAssetSetsRequest { // Required. The ID of the customer whose customer asset sets are being // modified. @@ -76,7 +76,7 @@ message MutateCustomerAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CustomerAssetSetOperation { oneof operation { // Create operation: No resource name is expected for the new customer asset // set. - google.ads.googleads.v14.resources.CustomerAssetSet create = 1; + google.ads.googleads.v17.resources.CustomerAssetSet create = 1; // Remove operation: A resource name for the removed customer asset set is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCustomerAssetSetResult { // The mutated customer asset set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomerAssetSet customer_asset_set = 2; + google.ads.googleads.v17.resources.CustomerAssetSet customer_asset_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_client_link_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_client_link_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_client_link_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_client_link_service.proto index 5993ec97f..30c747bd0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_client_link_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_client_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_client_link.proto"; +import "google/ads/googleads/v17/resources/customer_client_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerClientLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to manage customer client links. service CustomerClientLinkService { @@ -55,7 +55,7 @@ service CustomerClientLinkService { rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerClientLinks:mutate" + post: "/v17/customers/{customer_id=*}/customerClientLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -63,7 +63,7 @@ service CustomerClientLinkService { } // Request message for -// [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v14.services.CustomerClientLinkService.MutateCustomerClientLink]. +// [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v17.services.CustomerClientLinkService.MutateCustomerClientLink]. message MutateCustomerClientLinkRequest { // Required. The ID of the customer whose customer link are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -85,10 +85,10 @@ message CustomerClientLinkOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new link. - google.ads.googleads.v14.resources.CustomerClientLink create = 1; + google.ads.googleads.v17.resources.CustomerClientLink create = 1; // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v14.resources.CustomerClientLink update = 2; + google.ads.googleads.v17.resources.CustomerClientLink update = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_conversion_goal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_conversion_goal_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_conversion_goal_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_conversion_goal_service.proto index 8913ffb74..5414bf9c7 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_conversion_goal_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_conversion_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_conversion_goal.proto"; +import "google/ads/googleads/v17/resources/customer_conversion_goal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerConversionGoalServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerConversionGoal service. @@ -44,7 +44,7 @@ service CustomerConversionGoalService { rpc MutateCustomerConversionGoals(MutateCustomerConversionGoalsRequest) returns (MutateCustomerConversionGoalsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerConversionGoals:mutate" + post: "/v17/customers/{customer_id=*}/customerConversionGoals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -52,7 +52,7 @@ service CustomerConversionGoalService { } // Request message for -// [CustomerConversionGoalService.MutateCustomerConversionGoals][google.ads.googleads.v14.services.CustomerConversionGoalService.MutateCustomerConversionGoals]. +// [CustomerConversionGoalService.MutateCustomerConversionGoals][google.ads.googleads.v17.services.CustomerConversionGoalService.MutateCustomerConversionGoals]. message MutateCustomerConversionGoalsRequest { // Required. The ID of the customer whose customer conversion goals are being // modified. @@ -77,7 +77,7 @@ message CustomerConversionGoalOperation { oneof operation { // Update operation: The customer conversion goal is expected to have a // valid resource name. - google.ads.googleads.v14.resources.CustomerConversionGoal update = 1; + google.ads.googleads.v17.resources.CustomerConversionGoal update = 1; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_customizer_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_customizer_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_customizer_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_customizer_service.proto index 6fceed14d..8f5233fbc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_customizer_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer_customizer.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer_customizer.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerCustomizer service. @@ -45,7 +45,7 @@ service CustomerCustomizerService { rpc MutateCustomerCustomizers(MutateCustomerCustomizersRequest) returns (MutateCustomerCustomizersResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/CustomerCustomizers:mutate" + post: "/v17/customers/{customer_id=*}/CustomerCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CustomerCustomizerService { } // Request message for -// [CustomerCustomizerService.MutateCustomerCustomizers][google.ads.googleads.v14.services.CustomerCustomizerService.MutateCustomerCustomizers]. +// [CustomerCustomizerService.MutateCustomerCustomizers][google.ads.googleads.v17.services.CustomerCustomizerService.MutateCustomerCustomizers]. message MutateCustomerCustomizersRequest { // Required. The ID of the customer whose customer customizers are being // modified. @@ -76,7 +76,7 @@ message MutateCustomerCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CustomerCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new customer // customizer - google.ads.googleads.v14.resources.CustomerCustomizer create = 1; + google.ads.googleads.v17.resources.CustomerCustomizer create = 1; // Remove operation: A resource name for the removed customer customizer is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCustomerCustomizerResult { // The mutated CustomerCustomizer with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomerCustomizer customer_customizer = 2; + google.ads.googleads.v17.resources.CustomerCustomizer customer_customizer = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_extension_setting_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_extension_setting_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_extension_setting_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_extension_setting_service.proto index 86680b975..902193cf2 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_extension_setting_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_extension_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer_extension_setting.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer_extension_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerExtensionSetting service. @@ -73,7 +73,7 @@ service CustomerExtensionSettingService { rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerExtensionSettings:mutate" + post: "/v17/customers/{customer_id=*}/customerExtensionSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -81,7 +81,7 @@ service CustomerExtensionSettingService { } // Request message for -// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v14.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. +// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v17.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. message MutateCustomerExtensionSettingsRequest { // Required. The ID of the customer whose customer extension settings are // being modified. @@ -104,7 +104,7 @@ message MutateCustomerExtensionSettingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -117,11 +117,11 @@ message CustomerExtensionSettingOperation { oneof operation { // Create operation: No resource name is expected for the new customer // extension setting. - google.ads.googleads.v14.resources.CustomerExtensionSetting create = 1; + google.ads.googleads.v17.resources.CustomerExtensionSetting create = 1; // Update operation: The customer extension setting is expected to have a // valid resource name. - google.ads.googleads.v14.resources.CustomerExtensionSetting update = 2; + google.ads.googleads.v17.resources.CustomerExtensionSetting update = 2; // Remove operation: A resource name for the removed customer extension // setting is expected, in this format: @@ -155,6 +155,6 @@ message MutateCustomerExtensionSettingResult { // The mutated CustomerExtensionSetting with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomerExtensionSetting + google.ads.googleads.v17.resources.CustomerExtensionSetting customer_extension_setting = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_feed_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_feed_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_feed_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_feed_service.proto index 4094a05ed..b801f0c95 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_feed_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer_feed.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer_feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerFeedServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerFeed service. @@ -70,7 +70,7 @@ service CustomerFeedService { rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerFeeds:mutate" + post: "/v17/customers/{customer_id=*}/customerFeeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service CustomerFeedService { } // Request message for -// [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v14.services.CustomerFeedService.MutateCustomerFeeds]. +// [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v17.services.CustomerFeedService.MutateCustomerFeeds]. message MutateCustomerFeedsRequest { // Required. The ID of the customer whose customer feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -99,7 +99,7 @@ message MutateCustomerFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -111,11 +111,11 @@ message CustomerFeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new customer feed. - google.ads.googleads.v14.resources.CustomerFeed create = 1; + google.ads.googleads.v17.resources.CustomerFeed create = 1; // Update operation: The customer feed is expected to have a valid resource // name. - google.ads.googleads.v14.resources.CustomerFeed update = 2; + google.ads.googleads.v17.resources.CustomerFeed update = 2; // Remove operation: A resource name for the removed customer feed is // expected, in this format: @@ -149,5 +149,5 @@ message MutateCustomerFeedResult { // The mutated customer feed with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomerFeed customer_feed = 2; + google.ads.googleads.v17.resources.CustomerFeed customer_feed = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_label_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_label_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_label_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_label_service.proto index 37f835483..bdfa27080 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_label_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_label.proto"; +import "google/ads/googleads/v17/resources/customer_label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerLabelServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Customer Label service. @@ -55,7 +55,7 @@ service CustomerLabelService { rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerLabels:mutate" + post: "/v17/customers/{customer_id=*}/customerLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -63,7 +63,7 @@ service CustomerLabelService { } // Request message for -// [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v14.services.CustomerLabelService.MutateCustomerLabels]. +// [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v17.services.CustomerLabelService.MutateCustomerLabels]. message MutateCustomerLabelsRequest { // Required. ID of the customer whose customer-label relationships are being // modified. @@ -91,7 +91,7 @@ message CustomerLabelOperation { oneof operation { // Create operation: No resource name is expected for the new customer-label // relationship. - google.ads.googleads.v14.resources.CustomerLabel create = 1; + google.ads.googleads.v17.resources.CustomerLabel create = 1; // Remove operation: A resource name for the customer-label relationship // being removed, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v17/services/customer_lifecycle_goal_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_lifecycle_goal_service.proto new file mode 100644 index 000000000..912bdaaba --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_lifecycle_goal_service.proto @@ -0,0 +1,105 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/resources/customer_lifecycle_goal.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "CustomerLifecycleGoalServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Service to configure customer lifecycle goals. +service CustomerLifecycleGoalService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Process the given customer lifecycle configurations. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [CustomerLifecycleGoalConfigError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc ConfigureCustomerLifecycleGoals(ConfigureCustomerLifecycleGoalsRequest) + returns (ConfigureCustomerLifecycleGoalsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operation"; + } +} + +// Request message for +// [CustomerLifecycleGoalService.configureCustomerLifecycleGoals][]. +message ConfigureCustomerLifecycleGoalsRequest { + // Required. The ID of the customer performing the upload. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation to perform customer lifecycle goal update. + CustomerLifecycleGoalOperation operation = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. If true, the request is validated but not executed. Only errors + // are returned, not results. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single operation on a customer lifecycle goal. +message CustomerLifecycleGoalOperation { + // Optional. FieldMask that determines which resource fields are modified in + // an update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // The mutate operation. + oneof operation { + // Create operation: Create a new customer lifecycle goal. + google.ads.googleads.v17.resources.CustomerLifecycleGoal create = 1; + + // Update operation: Update an existing customer lifecycle goal. + google.ads.googleads.v17.resources.CustomerLifecycleGoal update = 3; + } +} + +// Response message for +// [CustomerLifecycleGoalService.configureCustomerLifecycleGoals][]. +message ConfigureCustomerLifecycleGoalsResponse { + // result for the customer lifecycle goal configuration. + ConfigureCustomerLifecycleGoalsResult result = 1; +} + +// The result for the customer lifecycle goal configuration. +message ConfigureCustomerLifecycleGoalsResult { + // Returned for the successful operation. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CustomerLifecycleGoal" + }]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_manager_link_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_manager_link_service.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_manager_link_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_manager_link_service.proto index 0740c0691..e60541735 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_manager_link_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_manager_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_manager_link.proto"; +import "google/ads/googleads/v17/resources/customer_manager_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerManagerLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to manage customer-manager links. service CustomerManagerLinkService { @@ -54,7 +54,7 @@ service CustomerManagerLinkService { rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerManagerLinks:mutate" + post: "/v17/customers/{customer_id=*}/customerManagerLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service CustomerManagerLinkService { rpc MoveManagerLink(MoveManagerLinkRequest) returns (MoveManagerLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + post: "/v17/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" body: "*" }; option (google.api.method_signature) = @@ -88,7 +88,7 @@ service CustomerManagerLinkService { } // Request message for -// [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v14.services.CustomerManagerLinkService.MutateCustomerManagerLink]. +// [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v17.services.CustomerManagerLinkService.MutateCustomerManagerLink]. message MutateCustomerManagerLinkRequest { // Required. The ID of the customer whose customer manager links are being // modified. @@ -105,7 +105,7 @@ message MutateCustomerManagerLinkRequest { } // Request message for -// [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v14.services.CustomerManagerLinkService.MoveManagerLink]. +// [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v17.services.CustomerManagerLinkService.MoveManagerLink]. message MoveManagerLinkRequest { // Required. The ID of the client customer that is being moved. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -138,7 +138,7 @@ message CustomerManagerLinkOperation { // The mutate operation. oneof operation { // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v14.resources.CustomerManagerLink update = 2; + google.ads.googleads.v17.resources.CustomerManagerLink update = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_negative_criterion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_negative_criterion_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_negative_criterion_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_negative_criterion_service.proto index 085d65e02..51e71c35a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_negative_criterion_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_negative_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer_negative_criterion.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer_negative_criterion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerNegativeCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Customer Negative Criterion service. @@ -56,7 +56,7 @@ service CustomerNegativeCriterionService { rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerNegativeCriteria:mutate" + post: "/v17/customers/{customer_id=*}/customerNegativeCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service CustomerNegativeCriterionService { } // Request message for -// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v14.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria]. +// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v17.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria]. message MutateCustomerNegativeCriteriaRequest { // Required. The ID of the customer whose criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -85,7 +85,7 @@ message MutateCustomerNegativeCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -94,7 +94,7 @@ message CustomerNegativeCriterionOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v14.resources.CustomerNegativeCriterion create = 1; + google.ads.googleads.v17.resources.CustomerNegativeCriterion create = 1; // Remove operation: A resource name for the removed criterion is expected, // in this format: @@ -127,6 +127,6 @@ message MutateCustomerNegativeCriteriaResult { // The mutated criterion with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomerNegativeCriterion + google.ads.googleads.v17.resources.CustomerNegativeCriterion customer_negative_criterion = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_service.proto similarity index 82% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_service.proto index f05414760..f1ee9da8f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/access_role.proto"; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customer.proto"; +import "google/ads/googleads/v17/enums/access_role.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customer.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Customer service. @@ -55,7 +55,7 @@ service CustomerService { // [UrlFieldError]() rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:mutate" + post: "/v17/customers/{customer_id=*}:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -74,7 +74,7 @@ service CustomerService { rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) { option (google.api.http) = { - get: "/v14/customers:listAccessibleCustomers" + get: "/v17/customers:listAccessibleCustomers" }; } @@ -95,7 +95,7 @@ service CustomerService { rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:createCustomerClient" + post: "/v17/customers/{customer_id=*}:createCustomerClient" body: "*" }; option (google.api.method_signature) = "customer_id,customer_client"; @@ -103,7 +103,7 @@ service CustomerService { } // Request message for -// [CustomerService.MutateCustomer][google.ads.googleads.v14.services.CustomerService.MutateCustomer]. +// [CustomerService.MutateCustomer][google.ads.googleads.v17.services.CustomerService.MutateCustomer]. message MutateCustomerRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -117,12 +117,12 @@ message MutateCustomerRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 6; } // Request message for -// [CustomerService.CreateCustomerClient][google.ads.googleads.v14.services.CustomerService.CreateCustomerClient]. +// [CustomerService.CreateCustomerClient][google.ads.googleads.v17.services.CustomerService.CreateCustomerClient]. message CreateCustomerClientRequest { // Required. The ID of the Manager under whom client customer is being // created. @@ -130,7 +130,7 @@ message CreateCustomerClientRequest { // Required. The new client customer to create. The resource name on this // customer will be ignored. - google.ads.googleads.v14.resources.Customer customer_client = 2 + google.ads.googleads.v17.resources.Customer customer_client = 2 [(google.api.field_behavior) = REQUIRED]; // Email address of the user who should be invited on the created client @@ -139,7 +139,7 @@ message CreateCustomerClientRequest { // The proposed role of user on the created client customer. // Accessible only to customers on the allow-list. - google.ads.googleads.v14.enums.AccessRoleEnum.AccessRole access_role = 4; + google.ads.googleads.v17.enums.AccessRoleEnum.AccessRole access_role = 4; // If true, the request is validated but not executed. Only errors are // returned, not results. @@ -149,7 +149,7 @@ message CreateCustomerClientRequest { // A single update on a customer. message CustomerOperation { // Mutate operation. Only updates are supported for customer. - google.ads.googleads.v14.resources.Customer update = 1; + google.ads.googleads.v17.resources.Customer update = 1; // FieldMask that determines which resource fields are modified in an update. google.protobuf.FieldMask update_mask = 2; @@ -183,15 +183,15 @@ message MutateCustomerResult { // The mutated customer with only mutable fields after mutate. The fields will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Customer customer = 2; + google.ads.googleads.v17.resources.Customer customer = 2; } // Request message for -// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v14.services.CustomerService.ListAccessibleCustomers]. +// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v17.services.CustomerService.ListAccessibleCustomers]. message ListAccessibleCustomersRequest {} // Response message for -// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v14.services.CustomerService.ListAccessibleCustomers]. +// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v17.services.CustomerService.ListAccessibleCustomers]. message ListAccessibleCustomersResponse { // Resource name of customers directly accessible by the // user authenticating the call. diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_sk_ad_network_conversion_value_schema_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_sk_ad_network_conversion_value_schema_service.proto similarity index 75% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_sk_ad_network_conversion_value_schema_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_sk_ad_network_conversion_value_schema_service.proto index 979d91eed..e70091f16 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_sk_ad_network_conversion_value_schema_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_sk_ad_network_conversion_value_schema_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_sk_ad_network_conversion_value_schema.proto"; +import "google/ads/googleads/v17/resources/customer_sk_ad_network_conversion_value_schema.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerSkAdNetworkConversionValueSchemaServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Customer Negative Criterion service. @@ -49,7 +51,7 @@ service CustomerSkAdNetworkConversionValueSchemaService { MutateCustomerSkAdNetworkConversionValueSchemaRequest) returns (MutateCustomerSkAdNetworkConversionValueSchemaResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + post: "/v17/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" body: "*" }; } @@ -58,12 +60,12 @@ service CustomerSkAdNetworkConversionValueSchemaService { // A single update operation for a CustomerSkAdNetworkConversionValueSchema. message CustomerSkAdNetworkConversionValueSchemaOperation { // Update operation: The schema is expected to have a valid resource name. - google.ads.googleads.v14.resources.CustomerSkAdNetworkConversionValueSchema + google.ads.googleads.v17.resources.CustomerSkAdNetworkConversionValueSchema update = 1; } // Request message for -// [CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema][google.ads.googleads.v14.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema]. +// [CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema][google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema]. message MutateCustomerSkAdNetworkConversionValueSchemaRequest { // The ID of the customer whose shared sets are being modified. string customer_id = 1; @@ -74,6 +76,11 @@ message MutateCustomerSkAdNetworkConversionValueSchemaRequest { // If true, the request is validated but not executed. Only errors are // returned, not results. bool validate_only = 3; + + // Optional. If true, enables returning warnings. Warnings return error + // messages and error codes without blocking the execution of the mutate + // operation. + bool enable_warnings = 4 [(google.api.field_behavior) = OPTIONAL]; } // The result for the CustomerSkAdNetworkConversionValueSchema mutate. @@ -91,4 +98,8 @@ message MutateCustomerSkAdNetworkConversionValueSchemaResult { message MutateCustomerSkAdNetworkConversionValueSchemaResponse { // All results for the mutate. MutateCustomerSkAdNetworkConversionValueSchemaResult result = 1; + + // Non blocking errors that provides schema validation failure details. + // Returned only when enable_warnings = true. + google.rpc.Status warning = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_user_access_invitation_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_user_access_invitation_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_user_access_invitation_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_user_access_invitation_service.proto index f35fcdce7..96fe02e76 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_user_access_invitation_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_user_access_invitation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_user_access_invitation.proto"; +import "google/ads/googleads/v17/resources/customer_user_access_invitation.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessInvitationServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomerUserAccessInvitation service. @@ -53,7 +53,7 @@ service CustomerUserAccessInvitationService { MutateCustomerUserAccessInvitationRequest) returns (MutateCustomerUserAccessInvitationResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + post: "/v17/customers/{customer_id=*}/customerUserAccessInvitations:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -61,7 +61,7 @@ service CustomerUserAccessInvitationService { } // Request message for -// [CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation][google.ads.googleads.v14.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation] +// [CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation][google.ads.googleads.v17.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation] message MutateCustomerUserAccessInvitationRequest { // Required. The ID of the customer whose access invitation is being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -77,7 +77,7 @@ message CustomerUserAccessInvitationOperation { oneof operation { // Create operation: No resource name is expected for the new access // invitation. - google.ads.googleads.v14.resources.CustomerUserAccessInvitation create = 1; + google.ads.googleads.v17.resources.CustomerUserAccessInvitation create = 1; // Remove operation: A resource name for the revoke invitation is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customer_user_access_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customer_user_access_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/customer_user_access_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customer_user_access_service.proto index 6aacb050a..fc4253e8c 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customer_user_access_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customer_user_access_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/customer_user_access.proto"; +import "google/ads/googleads/v17/resources/customer_user_access.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // This service manages the permissions of a user on a given customer. service CustomerUserAccessService { @@ -53,7 +53,7 @@ service CustomerUserAccessService { rpc MutateCustomerUserAccess(MutateCustomerUserAccessRequest) returns (MutateCustomerUserAccessResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customerUserAccesses:mutate" + post: "/v17/customers/{customer_id=*}/customerUserAccesses:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -61,7 +61,7 @@ service CustomerUserAccessService { } // Mutate Request for -// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v14.services.CustomerUserAccessService.MutateCustomerUserAccess]. +// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v17.services.CustomerUserAccessService.MutateCustomerUserAccess]. message MutateCustomerUserAccessRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -80,7 +80,7 @@ message CustomerUserAccessOperation { oneof operation { // Update operation: The customer user access is expected to have a valid // resource name. - google.ads.googleads.v14.resources.CustomerUserAccess update = 1; + google.ads.googleads.v17.resources.CustomerUserAccess update = 1; // Remove operation: A resource name for the removed access is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/customizer_attribute_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/customizer_attribute_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/customizer_attribute_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/customizer_attribute_service.proto index 03b22c83e..906806c98 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/customizer_attribute_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/customizer_attribute_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/customizer_attribute.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/customizer_attribute.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the CustomizerAttribute service. @@ -46,7 +46,7 @@ service CustomizerAttributeService { rpc MutateCustomizerAttributes(MutateCustomizerAttributesRequest) returns (MutateCustomizerAttributesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/customizerAttributes:mutate" + post: "/v17/customers/{customer_id=*}/customizerAttributes:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service CustomizerAttributeService { } // Request message for -// [CustomizerAttributeService.MutateCustomizerAttributes][google.ads.googleads.v14.services.CustomizerAttributeService.MutateCustomizerAttributes]. +// [CustomizerAttributeService.MutateCustomizerAttributes][google.ads.googleads.v17.services.CustomizerAttributeService.MutateCustomizerAttributes]. message MutateCustomizerAttributesRequest { // Required. The ID of the customer whose customizer attributes are being // modified. @@ -77,7 +77,7 @@ message MutateCustomizerAttributesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -90,7 +90,7 @@ message CustomizerAttributeOperation { oneof operation { // Create operation: No resource name is expected for the new customizer // attribute - google.ads.googleads.v14.resources.CustomizerAttribute create = 1; + google.ads.googleads.v17.resources.CustomizerAttribute create = 1; // Remove operation: A resource name for the removed customizer attribute is // expected, in this format: @@ -123,6 +123,6 @@ message MutateCustomizerAttributeResult { // The mutated CustomizerAttribute with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.CustomizerAttribute customizer_attribute = + google.ads.googleads.v17.resources.CustomizerAttribute customizer_attribute = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/experiment_arm_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/experiment_arm_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/experiment_arm_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/experiment_arm_service.proto index 4a387ade8..7093dfcad 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/experiment_arm_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/experiment_arm_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/experiment_arm.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/experiment_arm.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ExperimentArmServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Experiment Arm service. @@ -55,7 +55,7 @@ service ExperimentArmService { rpc MutateExperimentArms(MutateExperimentArmsRequest) returns (MutateExperimentArmsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/experimentArms:mutate" + post: "/v17/customers/{customer_id=*}/experimentArms:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -63,7 +63,7 @@ service ExperimentArmService { } // Request message for -// [ExperimentArmService.MutateExperimentArms][google.ads.googleads.v14.services.ExperimentArmService.MutateExperimentArms]. +// [ExperimentArmService.MutateExperimentArms][google.ads.googleads.v17.services.ExperimentArmService.MutateExperimentArms]. message MutateExperimentArmsRequest { // Required. The ID of the customer whose experiments are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -84,7 +84,7 @@ message MutateExperimentArmsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -96,11 +96,11 @@ message ExperimentArmOperation { // The mutate operation. oneof operation { // Create operation - google.ads.googleads.v14.resources.ExperimentArm create = 1; + google.ads.googleads.v17.resources.ExperimentArm create = 1; // Update operation: The experiment arm is expected to have a valid // resource name. - google.ads.googleads.v14.resources.ExperimentArm update = 2; + google.ads.googleads.v17.resources.ExperimentArm update = 2; // Remove operation: The experiment arm is expected to have a valid // resource name, in this format: @@ -134,5 +134,5 @@ message MutateExperimentArmResult { // The mutated experiment arm with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ExperimentArm experiment_arm = 2; + google.ads.googleads.v17.resources.ExperimentArm experiment_arm = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/experiment_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/experiment_service.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/services/experiment_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/experiment_service.proto index 124e32854..4665ba237 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/experiment_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/experiment_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/experiment.proto"; +import "google/ads/googleads/v17/resources/experiment.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ExperimentServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Experiment service. @@ -55,7 +55,7 @@ service ExperimentService { rpc MutateExperiments(MutateExperimentsRequest) returns (MutateExperimentsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/experiments:mutate" + post: "/v17/customers/{customer_id=*}/experiments:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -75,7 +75,7 @@ service ExperimentService { // [RequestError]() rpc EndExperiment(EndExperimentRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - post: "/v14/{experiment=customers/*/experiments/*}:endExperiment" + post: "/v17/{experiment=customers/*/experiments/*}:endExperiment" body: "*" }; option (google.api.method_signature) = "experiment"; @@ -95,7 +95,7 @@ service ExperimentService { rpc ListExperimentAsyncErrors(ListExperimentAsyncErrorsRequest) returns (ListExperimentAsyncErrorsResponse) { option (google.api.http) = { - get: "/v14/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + get: "/v17/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" }; option (google.api.method_signature) = "resource_name"; } @@ -114,7 +114,7 @@ service ExperimentService { rpc GraduateExperiment(GraduateExperimentRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - post: "/v14/{experiment=customers/*/experiments/*}:graduateExperiment" + post: "/v17/{experiment=customers/*/experiments/*}:graduateExperiment" body: "*" }; option (google.api.method_signature) = @@ -148,13 +148,13 @@ service ExperimentService { rpc ScheduleExperiment(ScheduleExperimentRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/experiments/*}:scheduleExperiment" + post: "/v17/{resource_name=customers/*/experiments/*}:scheduleExperiment" body: "*" }; option (google.api.method_signature) = "resource_name"; option (google.longrunning.operation_info) = { response_type: "google.protobuf.Empty" - metadata_type: "google.ads.googleads.v14.services.ScheduleExperimentMetadata" + metadata_type: "google.ads.googleads.v17.services.ScheduleExperimentMetadata" }; } @@ -177,19 +177,19 @@ service ExperimentService { rpc PromoteExperiment(PromoteExperimentRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/experiments/*}:promoteExperiment" + post: "/v17/{resource_name=customers/*/experiments/*}:promoteExperiment" body: "*" }; option (google.api.method_signature) = "resource_name"; option (google.longrunning.operation_info) = { response_type: "google.protobuf.Empty" - metadata_type: "google.ads.googleads.v14.services.PromoteExperimentMetadata" + metadata_type: "google.ads.googleads.v17.services.PromoteExperimentMetadata" }; } } // Request message for -// [ExperimentService.MutateExperiments][google.ads.googleads.v14.services.ExperimentService.MutateExperiments]. +// [ExperimentService.MutateExperiments][google.ads.googleads.v17.services.ExperimentService.MutateExperiments]. message MutateExperimentsRequest { // Required. The ID of the customer whose experiments are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -217,11 +217,11 @@ message ExperimentOperation { // The mutate operation. oneof operation { // Create operation - google.ads.googleads.v14.resources.Experiment create = 1; + google.ads.googleads.v17.resources.Experiment create = 1; // Update operation: The experiment is expected to have a valid // resource name. - google.ads.googleads.v14.resources.Experiment update = 2; + google.ads.googleads.v17.resources.Experiment update = 2; // Remove operation: The experiment is expected to have a valid // resource name, in this format: @@ -254,7 +254,7 @@ message MutateExperimentResult { } // Request message for -// [ExperimentService.EndExperiment][google.ads.googleads.v14.services.ExperimentService.EndExperiment]. +// [ExperimentService.EndExperiment][google.ads.googleads.v17.services.ExperimentService.EndExperiment]. message EndExperimentRequest { // Required. The resource name of the campaign experiment to end. string experiment = 1 [ @@ -270,7 +270,7 @@ message EndExperimentRequest { } // Request message for -// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v14.services.ExperimentService.ListExperimentAsyncErrors]. +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v17.services.ExperimentService.ListExperimentAsyncErrors]. message ListExperimentAsyncErrorsRequest { // Required. The name of the experiment from which to retrieve the async // errors. @@ -295,7 +295,7 @@ message ListExperimentAsyncErrorsRequest { } // Response message for -// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v14.services.ExperimentService.ListExperimentAsyncErrors]. +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v17.services.ExperimentService.ListExperimentAsyncErrors]. message ListExperimentAsyncErrorsResponse { // details of the errors when performing the asynchronous operation. repeated google.rpc.Status errors = 1; @@ -308,7 +308,7 @@ message ListExperimentAsyncErrorsResponse { } // Request message for -// [ExperimentService.GraduateExperiment][google.ads.googleads.v14.services.ExperimentService.GraduateExperiment]. +// [ExperimentService.GraduateExperiment][google.ads.googleads.v17.services.ExperimentService.GraduateExperiment]. message GraduateExperimentRequest { // Required. The experiment to be graduated. string experiment = 1 [ @@ -350,7 +350,7 @@ message CampaignBudgetMapping { } // Request message for -// [ExperimentService.ScheduleExperiment][google.ads.googleads.v14.services.ExperimentService.ScheduleExperiment]. +// [ExperimentService.ScheduleExperiment][google.ads.googleads.v17.services.ExperimentService.ScheduleExperiment]. message ScheduleExperimentRequest { // Required. The scheduled experiment. string resource_name = 1 [ @@ -377,7 +377,7 @@ message ScheduleExperimentMetadata { } // Request message for -// [ExperimentService.PromoteExperiment][google.ads.googleads.v14.services.ExperimentService.PromoteExperiment]. +// [ExperimentService.PromoteExperiment][google.ads.googleads.v17.services.ExperimentService.PromoteExperiment]. message PromoteExperimentRequest { // Required. The resource name of the experiment to promote. string resource_name = 1 [ diff --git a/third_party/googleapis/google/ads/googleads/v14/services/extension_feed_item_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/extension_feed_item_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/extension_feed_item_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/extension_feed_item_service.proto index e61083da9..b03d5936a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/extension_feed_item_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/extension_feed_item_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/extension_feed_item.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/extension_feed_item.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ExtensionFeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the ExtensionFeedItem service. @@ -71,7 +71,7 @@ service ExtensionFeedItemService { rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/extensionFeedItems:mutate" + post: "/v17/customers/{customer_id=*}/extensionFeedItems:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service ExtensionFeedItemService { } // Request message for -// [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v14.services.ExtensionFeedItemService.MutateExtensionFeedItems]. +// [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v17.services.ExtensionFeedItemService.MutateExtensionFeedItems]. message MutateExtensionFeedItemsRequest { // Required. The ID of the customer whose extension feed items are being // modified. @@ -102,7 +102,7 @@ message MutateExtensionFeedItemsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -115,11 +115,11 @@ message ExtensionFeedItemOperation { oneof operation { // Create operation: No resource name is expected for the new extension // feed item. - google.ads.googleads.v14.resources.ExtensionFeedItem create = 1; + google.ads.googleads.v17.resources.ExtensionFeedItem create = 1; // Update operation: The extension feed item is expected to have a // valid resource name. - google.ads.googleads.v14.resources.ExtensionFeedItem update = 2; + google.ads.googleads.v17.resources.ExtensionFeedItem update = 2; // Remove operation: A resource name for the removed extension feed item // is expected, in this format: @@ -153,5 +153,5 @@ message MutateExtensionFeedItemResult { // The mutated extension feed item with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.ExtensionFeedItem extension_feed_item = 2; + google.ads.googleads.v17.resources.ExtensionFeedItem extension_feed_item = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/feed_item_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/feed_item_service.proto index 62612beda..63eeb268b 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/feed_item.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/feed_item.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the FeedItem service. @@ -73,7 +73,7 @@ service FeedItemService { rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/feedItems:mutate" + post: "/v17/customers/{customer_id=*}/feedItems:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -81,7 +81,7 @@ service FeedItemService { } // Request message for -// [FeedItemService.MutateFeedItems][google.ads.googleads.v14.services.FeedItemService.MutateFeedItems]. +// [FeedItemService.MutateFeedItems][google.ads.googleads.v17.services.FeedItemService.MutateFeedItems]. message MutateFeedItemsRequest { // Required. The ID of the customer whose feed items are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -102,7 +102,7 @@ message MutateFeedItemsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -114,11 +114,11 @@ message FeedItemOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed item. - google.ads.googleads.v14.resources.FeedItem create = 1; + google.ads.googleads.v17.resources.FeedItem create = 1; // Update operation: The feed item is expected to have a valid resource // name. - google.ads.googleads.v14.resources.FeedItem update = 2; + google.ads.googleads.v17.resources.FeedItem update = 2; // Remove operation: A resource name for the removed feed item is // expected, in this format: @@ -151,5 +151,5 @@ message MutateFeedItemResult { // The mutated feed item with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.FeedItem feed_item = 2; + google.ads.googleads.v17.resources.FeedItem feed_item = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_set_link_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_set_link_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/feed_item_set_link_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/feed_item_set_link_service.proto index b270076f9..057afdd68 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_set_link_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_set_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/feed_item_set_link.proto"; +import "google/ads/googleads/v17/resources/feed_item_set_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the FeedItemSetLink service. @@ -51,7 +51,7 @@ service FeedItemSetLinkService { rpc MutateFeedItemSetLinks(MutateFeedItemSetLinksRequest) returns (MutateFeedItemSetLinksResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/feedItemSetLinks:mutate" + post: "/v17/customers/{customer_id=*}/feedItemSetLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -59,7 +59,7 @@ service FeedItemSetLinkService { } // Request message for -// [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v14.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. +// [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v17.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. message MutateFeedItemSetLinksRequest { // Required. The ID of the customer whose feed item set links are being // modified. @@ -87,7 +87,7 @@ message FeedItemSetLinkOperation { oneof operation { // Create operation: No resource name is expected for the // new feed item set link. - google.ads.googleads.v14.resources.FeedItemSetLink create = 1; + google.ads.googleads.v17.resources.FeedItemSetLink create = 1; // Remove operation: A resource name for the removed feed item set link is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_set_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/feed_item_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/feed_item_set_service.proto index 8733124a2..a4901b380 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/feed_item_set.proto"; +import "google/ads/googleads/v17/resources/feed_item_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the FeedItemSet service. @@ -54,7 +54,7 @@ service FeedItemSetService { rpc MutateFeedItemSets(MutateFeedItemSetsRequest) returns (MutateFeedItemSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/feedItemSets:mutate" + post: "/v17/customers/{customer_id=*}/feedItemSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -62,7 +62,7 @@ service FeedItemSetService { } // Request message for -// [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v14.services.FeedItemSetService.MutateFeedItemSets]. +// [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v17.services.FeedItemSetService.MutateFeedItemSets]. message MutateFeedItemSetsRequest { // Required. The ID of the customer whose feed item sets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -90,11 +90,11 @@ message FeedItemSetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed item set - google.ads.googleads.v14.resources.FeedItemSet create = 1; + google.ads.googleads.v17.resources.FeedItemSet create = 1; // Update operation: The feed item set is expected to have a valid resource // name. - google.ads.googleads.v14.resources.FeedItemSet update = 2; + google.ads.googleads.v17.resources.FeedItemSet update = 2; // Remove operation: A resource name for the removed feed item is // expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_target_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_target_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/feed_item_target_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/feed_item_target_service.proto index ec37675b1..50fc7aa9a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/feed_item_target_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/feed_item_target_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/feed_item_target.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/feed_item_target.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the FeedItemTarget service. @@ -65,7 +65,7 @@ service FeedItemTargetService { rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/feedItemTargets:mutate" + post: "/v17/customers/{customer_id=*}/feedItemTargets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -73,7 +73,7 @@ service FeedItemTargetService { } // Request message for -// [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v14.services.FeedItemTargetService.MutateFeedItemTargets]. +// [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v17.services.FeedItemTargetService.MutateFeedItemTargets]. message MutateFeedItemTargetsRequest { // Required. The ID of the customer whose feed item targets are being // modified. @@ -92,7 +92,7 @@ message MutateFeedItemTargetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; // If true, the request is validated but not executed. Only errors are @@ -106,7 +106,7 @@ message FeedItemTargetOperation { oneof operation { // Create operation: No resource name is expected for the new feed item // target. - google.ads.googleads.v14.resources.FeedItemTarget create = 1; + google.ads.googleads.v17.resources.FeedItemTarget create = 1; // Remove operation: A resource name for the removed feed item target is // expected, in this format: @@ -140,5 +140,5 @@ message MutateFeedItemTargetResult { // The mutated feed item target with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.FeedItemTarget feed_item_target = 2; + google.ads.googleads.v17.resources.FeedItemTarget feed_item_target = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/feed_mapping_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/feed_mapping_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/feed_mapping_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/feed_mapping_service.proto index b40a8b547..9335de350 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/feed_mapping_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/feed_mapping_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/feed_mapping.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/feed_mapping.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedMappingServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the FeedMapping service. @@ -66,7 +66,7 @@ service FeedMappingService { rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/feedMappings:mutate" + post: "/v17/customers/{customer_id=*}/feedMappings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -74,7 +74,7 @@ service FeedMappingService { } // Request message for -// [FeedMappingService.MutateFeedMappings][google.ads.googleads.v14.services.FeedMappingService.MutateFeedMappings]. +// [FeedMappingService.MutateFeedMappings][google.ads.googleads.v17.services.FeedMappingService.MutateFeedMappings]. message MutateFeedMappingsRequest { // Required. The ID of the customer whose feed mappings are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -95,7 +95,7 @@ message MutateFeedMappingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -104,7 +104,7 @@ message FeedMappingOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed mapping. - google.ads.googleads.v14.resources.FeedMapping create = 1; + google.ads.googleads.v17.resources.FeedMapping create = 1; // Remove operation: A resource name for the removed feed mapping is // expected, in this format: @@ -138,5 +138,5 @@ message MutateFeedMappingResult { // The mutated feed mapping with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.FeedMapping feed_mapping = 2; + google.ads.googleads.v17.resources.FeedMapping feed_mapping = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/feed_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/feed_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/feed_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/feed_service.proto index 7f71ad416..060648e91 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/feed_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/feed.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Feed service. @@ -71,7 +71,7 @@ service FeedService { // [StringLengthError]() rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/feeds:mutate" + post: "/v17/customers/{customer_id=*}/feeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service FeedService { } // Request message for -// [FeedService.MutateFeeds][google.ads.googleads.v14.services.FeedService.MutateFeeds]. +// [FeedService.MutateFeeds][google.ads.googleads.v17.services.FeedService.MutateFeeds]. message MutateFeedsRequest { // Required. The ID of the customer whose feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -100,7 +100,7 @@ message MutateFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -112,11 +112,11 @@ message FeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed. - google.ads.googleads.v14.resources.Feed create = 1; + google.ads.googleads.v17.resources.Feed create = 1; // Update operation: The feed is expected to have a valid resource // name. - google.ads.googleads.v14.resources.Feed update = 2; + google.ads.googleads.v17.resources.Feed update = 2; // Remove operation: A resource name for the removed feed is // expected, in this format: @@ -149,5 +149,5 @@ message MutateFeedResult { // The mutated feed with only mutable fields after mutate. The field will only // be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Feed feed = 2; + google.ads.googleads.v17.resources.Feed feed = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/geo_target_constant_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/geo_target_constant_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/geo_target_constant_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/geo_target_constant_service.proto index 349583dc6..5f59f1b42 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/geo_target_constant_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/geo_target_constant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/geo_target_constant.proto"; +import "google/ads/googleads/v17/resources/geo_target_constant.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Geo target constant service. @@ -49,14 +49,14 @@ service GeoTargetConstantService { rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) { option (google.api.http) = { - post: "/v14/geoTargetConstants:suggest" + post: "/v17/geoTargetConstants:suggest" body: "*" }; } } // Request message for -// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v14.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v17.services.GeoTargetConstantService.SuggestGeoTargetConstants]. message SuggestGeoTargetConstantsRequest { // A list of location names. message LocationNames { @@ -89,7 +89,7 @@ message SuggestGeoTargetConstantsRequest { } // Response message for -// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v14.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v17.services.GeoTargetConstantService.SuggestGeoTargetConstants]. message SuggestGeoTargetConstantsResponse { // Geo target constant suggestions. repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1; @@ -112,9 +112,9 @@ message GeoTargetConstantSuggestion { optional string search_term = 8; // The GeoTargetConstant result. - google.ads.googleads.v14.resources.GeoTargetConstant geo_target_constant = 4; + google.ads.googleads.v17.resources.GeoTargetConstant geo_target_constant = 4; // The list of parents of the geo target constant. - repeated google.ads.googleads.v14.resources.GeoTargetConstant + repeated google.ads.googleads.v17.resources.GeoTargetConstant geo_target_constant_parents = 5; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/google_ads_field_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/google_ads_field_service.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/services/google_ads_field_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/google_ads_field_service.proto index 381e78040..95fc5b2ba 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/google_ads_field_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/google_ads_field_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/google_ads_field.proto"; +import "google/ads/googleads/v17/resources/google_ads_field.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the GoogleAdsFieldService. @@ -48,9 +48,9 @@ service GoogleAdsFieldService { // [QuotaError]() // [RequestError]() rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) - returns (google.ads.googleads.v14.resources.GoogleAdsField) { + returns (google.ads.googleads.v17.resources.GoogleAdsField) { option (google.api.http) = { - get: "/v14/{resource_name=googleAdsFields/*}" + get: "/v17/{resource_name=googleAdsFields/*}" }; option (google.api.method_signature) = "resource_name"; } @@ -68,7 +68,7 @@ service GoogleAdsFieldService { rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) { option (google.api.http) = { - post: "/v14/googleAdsFields:search" + post: "/v17/googleAdsFields:search" body: "*" }; option (google.api.method_signature) = "query"; @@ -76,7 +76,7 @@ service GoogleAdsFieldService { } // Request message for -// [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v14.services.GoogleAdsFieldService.GetGoogleAdsField]. +// [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v17.services.GoogleAdsFieldService.GetGoogleAdsField]. message GetGoogleAdsFieldRequest { // Required. The resource name of the field to get. string resource_name = 1 [ @@ -88,7 +88,7 @@ message GetGoogleAdsFieldRequest { } // Request message for -// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v14.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v17.services.GoogleAdsFieldService.SearchGoogleAdsFields]. message SearchGoogleAdsFieldsRequest { // Required. The query string. string query = 1 [(google.api.field_behavior) = REQUIRED]; @@ -105,10 +105,10 @@ message SearchGoogleAdsFieldsRequest { } // Response message for -// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v14.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v17.services.GoogleAdsFieldService.SearchGoogleAdsFields]. message SearchGoogleAdsFieldsResponse { // The list of fields that matched the query. - repeated google.ads.googleads.v14.resources.GoogleAdsField results = 1; + repeated google.ads.googleads.v17.resources.GoogleAdsField results = 1; // Pagination token used to retrieve the next page of results. Pass the // content of this string as the `page_token` attribute of the next request. diff --git a/third_party/googleapis/google/ads/googleads/v14/services/google_ads_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/google_ads_service.proto similarity index 57% rename from third_party/googleapis/google/ads/googleads/v14/services/google_ads_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/google_ads_service.proto index 3e8d506be..440dd80c9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/google_ads_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/google_ads_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,260 +14,278 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; - -import "google/ads/googleads/v14/common/metrics.proto"; -import "google/ads/googleads/v14/common/segments.proto"; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/enums/summary_row_setting.proto"; -import "google/ads/googleads/v14/resources/accessible_bidding_strategy.proto"; -import "google/ads/googleads/v14/resources/account_budget.proto"; -import "google/ads/googleads/v14/resources/account_budget_proposal.proto"; -import "google/ads/googleads/v14/resources/account_link.proto"; -import "google/ads/googleads/v14/resources/ad_group.proto"; -import "google/ads/googleads/v14/resources/ad_group_ad.proto"; -import "google/ads/googleads/v14/resources/ad_group_ad_asset_combination_view.proto"; -import "google/ads/googleads/v14/resources/ad_group_ad_asset_view.proto"; -import "google/ads/googleads/v14/resources/ad_group_ad_label.proto"; -import "google/ads/googleads/v14/resources/ad_group_asset.proto"; -import "google/ads/googleads/v14/resources/ad_group_asset_set.proto"; -import "google/ads/googleads/v14/resources/ad_group_audience_view.proto"; -import "google/ads/googleads/v14/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion_customizer.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion_label.proto"; -import "google/ads/googleads/v14/resources/ad_group_criterion_simulation.proto"; -import "google/ads/googleads/v14/resources/ad_group_customizer.proto"; -import "google/ads/googleads/v14/resources/ad_group_extension_setting.proto"; -import "google/ads/googleads/v14/resources/ad_group_feed.proto"; -import "google/ads/googleads/v14/resources/ad_group_label.proto"; -import "google/ads/googleads/v14/resources/ad_group_simulation.proto"; -import "google/ads/googleads/v14/resources/ad_parameter.proto"; -import "google/ads/googleads/v14/resources/ad_schedule_view.proto"; -import "google/ads/googleads/v14/resources/age_range_view.proto"; -import "google/ads/googleads/v14/resources/asset.proto"; -import "google/ads/googleads/v14/resources/asset_field_type_view.proto"; -import "google/ads/googleads/v14/resources/asset_group.proto"; -import "google/ads/googleads/v14/resources/asset_group_asset.proto"; -import "google/ads/googleads/v14/resources/asset_group_listing_group_filter.proto"; -import "google/ads/googleads/v14/resources/asset_group_product_group_view.proto"; -import "google/ads/googleads/v14/resources/asset_group_signal.proto"; -import "google/ads/googleads/v14/resources/asset_set.proto"; -import "google/ads/googleads/v14/resources/asset_set_asset.proto"; -import "google/ads/googleads/v14/resources/asset_set_type_view.proto"; -import "google/ads/googleads/v14/resources/audience.proto"; -import "google/ads/googleads/v14/resources/batch_job.proto"; -import "google/ads/googleads/v14/resources/bidding_data_exclusion.proto"; -import "google/ads/googleads/v14/resources/bidding_seasonality_adjustment.proto"; -import "google/ads/googleads/v14/resources/bidding_strategy.proto"; -import "google/ads/googleads/v14/resources/bidding_strategy_simulation.proto"; -import "google/ads/googleads/v14/resources/billing_setup.proto"; -import "google/ads/googleads/v14/resources/call_view.proto"; -import "google/ads/googleads/v14/resources/campaign.proto"; -import "google/ads/googleads/v14/resources/campaign_asset.proto"; -import "google/ads/googleads/v14/resources/campaign_asset_set.proto"; -import "google/ads/googleads/v14/resources/campaign_audience_view.proto"; -import "google/ads/googleads/v14/resources/campaign_bid_modifier.proto"; -import "google/ads/googleads/v14/resources/campaign_budget.proto"; -import "google/ads/googleads/v14/resources/campaign_conversion_goal.proto"; -import "google/ads/googleads/v14/resources/campaign_criterion.proto"; -import "google/ads/googleads/v14/resources/campaign_customizer.proto"; -import "google/ads/googleads/v14/resources/campaign_draft.proto"; -import "google/ads/googleads/v14/resources/campaign_extension_setting.proto"; -import "google/ads/googleads/v14/resources/campaign_feed.proto"; -import "google/ads/googleads/v14/resources/campaign_group.proto"; -import "google/ads/googleads/v14/resources/campaign_label.proto"; -import "google/ads/googleads/v14/resources/campaign_search_term_insight.proto"; -import "google/ads/googleads/v14/resources/campaign_shared_set.proto"; -import "google/ads/googleads/v14/resources/campaign_simulation.proto"; -import "google/ads/googleads/v14/resources/carrier_constant.proto"; -import "google/ads/googleads/v14/resources/change_event.proto"; -import "google/ads/googleads/v14/resources/change_status.proto"; -import "google/ads/googleads/v14/resources/click_view.proto"; -import "google/ads/googleads/v14/resources/combined_audience.proto"; -import "google/ads/googleads/v14/resources/conversion_action.proto"; -import "google/ads/googleads/v14/resources/conversion_custom_variable.proto"; -import "google/ads/googleads/v14/resources/conversion_goal_campaign_config.proto"; -import "google/ads/googleads/v14/resources/conversion_value_rule.proto"; -import "google/ads/googleads/v14/resources/conversion_value_rule_set.proto"; -import "google/ads/googleads/v14/resources/currency_constant.proto"; -import "google/ads/googleads/v14/resources/custom_audience.proto"; -import "google/ads/googleads/v14/resources/custom_conversion_goal.proto"; -import "google/ads/googleads/v14/resources/custom_interest.proto"; -import "google/ads/googleads/v14/resources/customer.proto"; -import "google/ads/googleads/v14/resources/customer_asset.proto"; -import "google/ads/googleads/v14/resources/customer_asset_set.proto"; -import "google/ads/googleads/v14/resources/customer_client.proto"; -import "google/ads/googleads/v14/resources/customer_client_link.proto"; -import "google/ads/googleads/v14/resources/customer_conversion_goal.proto"; -import "google/ads/googleads/v14/resources/customer_customizer.proto"; -import "google/ads/googleads/v14/resources/customer_extension_setting.proto"; -import "google/ads/googleads/v14/resources/customer_feed.proto"; -import "google/ads/googleads/v14/resources/customer_label.proto"; -import "google/ads/googleads/v14/resources/customer_manager_link.proto"; -import "google/ads/googleads/v14/resources/customer_negative_criterion.proto"; -import "google/ads/googleads/v14/resources/customer_search_term_insight.proto"; -import "google/ads/googleads/v14/resources/customer_user_access.proto"; -import "google/ads/googleads/v14/resources/customer_user_access_invitation.proto"; -import "google/ads/googleads/v14/resources/customizer_attribute.proto"; -import "google/ads/googleads/v14/resources/detail_placement_view.proto"; -import "google/ads/googleads/v14/resources/detailed_demographic.proto"; -import "google/ads/googleads/v14/resources/display_keyword_view.proto"; -import "google/ads/googleads/v14/resources/distance_view.proto"; -import "google/ads/googleads/v14/resources/domain_category.proto"; -import "google/ads/googleads/v14/resources/dynamic_search_ads_search_term_view.proto"; -import "google/ads/googleads/v14/resources/expanded_landing_page_view.proto"; -import "google/ads/googleads/v14/resources/experiment.proto"; -import "google/ads/googleads/v14/resources/experiment_arm.proto"; -import "google/ads/googleads/v14/resources/extension_feed_item.proto"; -import "google/ads/googleads/v14/resources/feed.proto"; -import "google/ads/googleads/v14/resources/feed_item.proto"; -import "google/ads/googleads/v14/resources/feed_item_set.proto"; -import "google/ads/googleads/v14/resources/feed_item_set_link.proto"; -import "google/ads/googleads/v14/resources/feed_item_target.proto"; -import "google/ads/googleads/v14/resources/feed_mapping.proto"; -import "google/ads/googleads/v14/resources/feed_placeholder_view.proto"; -import "google/ads/googleads/v14/resources/gender_view.proto"; -import "google/ads/googleads/v14/resources/geo_target_constant.proto"; -import "google/ads/googleads/v14/resources/geographic_view.proto"; -import "google/ads/googleads/v14/resources/group_placement_view.proto"; -import "google/ads/googleads/v14/resources/hotel_group_view.proto"; -import "google/ads/googleads/v14/resources/hotel_performance_view.proto"; -import "google/ads/googleads/v14/resources/hotel_reconciliation.proto"; -import "google/ads/googleads/v14/resources/income_range_view.proto"; -import "google/ads/googleads/v14/resources/keyword_plan.proto"; -import "google/ads/googleads/v14/resources/keyword_plan_ad_group.proto"; -import "google/ads/googleads/v14/resources/keyword_plan_ad_group_keyword.proto"; -import "google/ads/googleads/v14/resources/keyword_plan_campaign.proto"; -import "google/ads/googleads/v14/resources/keyword_plan_campaign_keyword.proto"; -import "google/ads/googleads/v14/resources/keyword_theme_constant.proto"; -import "google/ads/googleads/v14/resources/keyword_view.proto"; -import "google/ads/googleads/v14/resources/label.proto"; -import "google/ads/googleads/v14/resources/landing_page_view.proto"; -import "google/ads/googleads/v14/resources/language_constant.proto"; -import "google/ads/googleads/v14/resources/lead_form_submission_data.proto"; -import "google/ads/googleads/v14/resources/life_event.proto"; -import "google/ads/googleads/v14/resources/location_view.proto"; -import "google/ads/googleads/v14/resources/managed_placement_view.proto"; -import "google/ads/googleads/v14/resources/media_file.proto"; -import "google/ads/googleads/v14/resources/mobile_app_category_constant.proto"; -import "google/ads/googleads/v14/resources/mobile_device_constant.proto"; -import "google/ads/googleads/v14/resources/offline_user_data_job.proto"; -import "google/ads/googleads/v14/resources/operating_system_version_constant.proto"; -import "google/ads/googleads/v14/resources/paid_organic_search_term_view.proto"; -import "google/ads/googleads/v14/resources/parental_status_view.proto"; -import "google/ads/googleads/v14/resources/per_store_view.proto"; -import "google/ads/googleads/v14/resources/product_bidding_category_constant.proto"; -import "google/ads/googleads/v14/resources/product_group_view.proto"; -import "google/ads/googleads/v14/resources/product_link.proto"; -import "google/ads/googleads/v14/resources/qualifying_question.proto"; -import "google/ads/googleads/v14/resources/recommendation.proto"; -import "google/ads/googleads/v14/resources/remarketing_action.proto"; -import "google/ads/googleads/v14/resources/search_term_view.proto"; -import "google/ads/googleads/v14/resources/shared_criterion.proto"; -import "google/ads/googleads/v14/resources/shared_set.proto"; -import "google/ads/googleads/v14/resources/shopping_performance_view.proto"; -import "google/ads/googleads/v14/resources/smart_campaign_search_term_view.proto"; -import "google/ads/googleads/v14/resources/smart_campaign_setting.proto"; -import "google/ads/googleads/v14/resources/third_party_app_analytics_link.proto"; -import "google/ads/googleads/v14/resources/topic_constant.proto"; -import "google/ads/googleads/v14/resources/topic_view.proto"; -import "google/ads/googleads/v14/resources/travel_activity_group_view.proto"; -import "google/ads/googleads/v14/resources/travel_activity_performance_view.proto"; -import "google/ads/googleads/v14/resources/user_interest.proto"; -import "google/ads/googleads/v14/resources/user_list.proto"; -import "google/ads/googleads/v14/resources/user_location_view.proto"; -import "google/ads/googleads/v14/resources/video.proto"; -import "google/ads/googleads/v14/resources/webpage_view.proto"; -import "google/ads/googleads/v14/services/ad_group_ad_label_service.proto"; -import "google/ads/googleads/v14/services/ad_group_ad_service.proto"; -import "google/ads/googleads/v14/services/ad_group_asset_service.proto"; -import "google/ads/googleads/v14/services/ad_group_bid_modifier_service.proto"; -import "google/ads/googleads/v14/services/ad_group_criterion_customizer_service.proto"; -import "google/ads/googleads/v14/services/ad_group_criterion_label_service.proto"; -import "google/ads/googleads/v14/services/ad_group_criterion_service.proto"; -import "google/ads/googleads/v14/services/ad_group_customizer_service.proto"; -import "google/ads/googleads/v14/services/ad_group_extension_setting_service.proto"; -import "google/ads/googleads/v14/services/ad_group_feed_service.proto"; -import "google/ads/googleads/v14/services/ad_group_label_service.proto"; -import "google/ads/googleads/v14/services/ad_group_service.proto"; -import "google/ads/googleads/v14/services/ad_parameter_service.proto"; -import "google/ads/googleads/v14/services/ad_service.proto"; -import "google/ads/googleads/v14/services/asset_group_asset_service.proto"; -import "google/ads/googleads/v14/services/asset_group_listing_group_filter_service.proto"; -import "google/ads/googleads/v14/services/asset_group_service.proto"; -import "google/ads/googleads/v14/services/asset_group_signal_service.proto"; -import "google/ads/googleads/v14/services/asset_service.proto"; -import "google/ads/googleads/v14/services/asset_set_asset_service.proto"; -import "google/ads/googleads/v14/services/asset_set_service.proto"; -import "google/ads/googleads/v14/services/audience_service.proto"; -import "google/ads/googleads/v14/services/bidding_data_exclusion_service.proto"; -import "google/ads/googleads/v14/services/bidding_seasonality_adjustment_service.proto"; -import "google/ads/googleads/v14/services/bidding_strategy_service.proto"; -import "google/ads/googleads/v14/services/campaign_asset_service.proto"; -import "google/ads/googleads/v14/services/campaign_asset_set_service.proto"; -import "google/ads/googleads/v14/services/campaign_bid_modifier_service.proto"; -import "google/ads/googleads/v14/services/campaign_budget_service.proto"; -import "google/ads/googleads/v14/services/campaign_conversion_goal_service.proto"; -import "google/ads/googleads/v14/services/campaign_criterion_service.proto"; -import "google/ads/googleads/v14/services/campaign_customizer_service.proto"; -import "google/ads/googleads/v14/services/campaign_draft_service.proto"; -import "google/ads/googleads/v14/services/campaign_extension_setting_service.proto"; -import "google/ads/googleads/v14/services/campaign_feed_service.proto"; -import "google/ads/googleads/v14/services/campaign_group_service.proto"; -import "google/ads/googleads/v14/services/campaign_label_service.proto"; -import "google/ads/googleads/v14/services/campaign_service.proto"; -import "google/ads/googleads/v14/services/campaign_shared_set_service.proto"; -import "google/ads/googleads/v14/services/conversion_action_service.proto"; -import "google/ads/googleads/v14/services/conversion_custom_variable_service.proto"; -import "google/ads/googleads/v14/services/conversion_goal_campaign_config_service.proto"; -import "google/ads/googleads/v14/services/conversion_value_rule_service.proto"; -import "google/ads/googleads/v14/services/conversion_value_rule_set_service.proto"; -import "google/ads/googleads/v14/services/custom_conversion_goal_service.proto"; -import "google/ads/googleads/v14/services/customer_asset_service.proto"; -import "google/ads/googleads/v14/services/customer_conversion_goal_service.proto"; -import "google/ads/googleads/v14/services/customer_customizer_service.proto"; -import "google/ads/googleads/v14/services/customer_extension_setting_service.proto"; -import "google/ads/googleads/v14/services/customer_feed_service.proto"; -import "google/ads/googleads/v14/services/customer_label_service.proto"; -import "google/ads/googleads/v14/services/customer_negative_criterion_service.proto"; -import "google/ads/googleads/v14/services/customer_service.proto"; -import "google/ads/googleads/v14/services/customizer_attribute_service.proto"; -import "google/ads/googleads/v14/services/experiment_arm_service.proto"; -import "google/ads/googleads/v14/services/experiment_service.proto"; -import "google/ads/googleads/v14/services/extension_feed_item_service.proto"; -import "google/ads/googleads/v14/services/feed_item_service.proto"; -import "google/ads/googleads/v14/services/feed_item_set_link_service.proto"; -import "google/ads/googleads/v14/services/feed_item_set_service.proto"; -import "google/ads/googleads/v14/services/feed_item_target_service.proto"; -import "google/ads/googleads/v14/services/feed_mapping_service.proto"; -import "google/ads/googleads/v14/services/feed_service.proto"; -import "google/ads/googleads/v14/services/keyword_plan_ad_group_keyword_service.proto"; -import "google/ads/googleads/v14/services/keyword_plan_ad_group_service.proto"; -import "google/ads/googleads/v14/services/keyword_plan_campaign_keyword_service.proto"; -import "google/ads/googleads/v14/services/keyword_plan_campaign_service.proto"; -import "google/ads/googleads/v14/services/keyword_plan_service.proto"; -import "google/ads/googleads/v14/services/label_service.proto"; -import "google/ads/googleads/v14/services/media_file_service.proto"; -import "google/ads/googleads/v14/services/remarketing_action_service.proto"; -import "google/ads/googleads/v14/services/shared_criterion_service.proto"; -import "google/ads/googleads/v14/services/shared_set_service.proto"; -import "google/ads/googleads/v14/services/smart_campaign_setting_service.proto"; -import "google/ads/googleads/v14/services/user_list_service.proto"; +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/common/metrics.proto"; +import "google/ads/googleads/v17/common/segments.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/enums/summary_row_setting.proto"; +import "google/ads/googleads/v17/resources/accessible_bidding_strategy.proto"; +import "google/ads/googleads/v17/resources/account_budget.proto"; +import "google/ads/googleads/v17/resources/account_budget_proposal.proto"; +import "google/ads/googleads/v17/resources/account_link.proto"; +import "google/ads/googleads/v17/resources/ad.proto"; +import "google/ads/googleads/v17/resources/ad_group.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad_asset_combination_view.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad_asset_view.proto"; +import "google/ads/googleads/v17/resources/ad_group_ad_label.proto"; +import "google/ads/googleads/v17/resources/ad_group_asset.proto"; +import "google/ads/googleads/v17/resources/ad_group_asset_set.proto"; +import "google/ads/googleads/v17/resources/ad_group_audience_view.proto"; +import "google/ads/googleads/v17/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion_customizer.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion_label.proto"; +import "google/ads/googleads/v17/resources/ad_group_criterion_simulation.proto"; +import "google/ads/googleads/v17/resources/ad_group_customizer.proto"; +import "google/ads/googleads/v17/resources/ad_group_extension_setting.proto"; +import "google/ads/googleads/v17/resources/ad_group_feed.proto"; +import "google/ads/googleads/v17/resources/ad_group_label.proto"; +import "google/ads/googleads/v17/resources/ad_group_simulation.proto"; +import "google/ads/googleads/v17/resources/ad_parameter.proto"; +import "google/ads/googleads/v17/resources/ad_schedule_view.proto"; +import "google/ads/googleads/v17/resources/age_range_view.proto"; +import "google/ads/googleads/v17/resources/android_privacy_shared_key_google_ad_group.proto"; +import "google/ads/googleads/v17/resources/android_privacy_shared_key_google_campaign.proto"; +import "google/ads/googleads/v17/resources/android_privacy_shared_key_google_network_type.proto"; +import "google/ads/googleads/v17/resources/asset.proto"; +import "google/ads/googleads/v17/resources/asset_field_type_view.proto"; +import "google/ads/googleads/v17/resources/asset_group.proto"; +import "google/ads/googleads/v17/resources/asset_group_asset.proto"; +import "google/ads/googleads/v17/resources/asset_group_listing_group_filter.proto"; +import "google/ads/googleads/v17/resources/asset_group_product_group_view.proto"; +import "google/ads/googleads/v17/resources/asset_group_signal.proto"; +import "google/ads/googleads/v17/resources/asset_group_top_combination_view.proto"; +import "google/ads/googleads/v17/resources/asset_set.proto"; +import "google/ads/googleads/v17/resources/asset_set_asset.proto"; +import "google/ads/googleads/v17/resources/asset_set_type_view.proto"; +import "google/ads/googleads/v17/resources/audience.proto"; +import "google/ads/googleads/v17/resources/batch_job.proto"; +import "google/ads/googleads/v17/resources/bidding_data_exclusion.proto"; +import "google/ads/googleads/v17/resources/bidding_seasonality_adjustment.proto"; +import "google/ads/googleads/v17/resources/bidding_strategy.proto"; +import "google/ads/googleads/v17/resources/bidding_strategy_simulation.proto"; +import "google/ads/googleads/v17/resources/billing_setup.proto"; +import "google/ads/googleads/v17/resources/call_view.proto"; +import "google/ads/googleads/v17/resources/campaign.proto"; +import "google/ads/googleads/v17/resources/campaign_aggregate_asset_view.proto"; +import "google/ads/googleads/v17/resources/campaign_asset.proto"; +import "google/ads/googleads/v17/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v17/resources/campaign_audience_view.proto"; +import "google/ads/googleads/v17/resources/campaign_bid_modifier.proto"; +import "google/ads/googleads/v17/resources/campaign_budget.proto"; +import "google/ads/googleads/v17/resources/campaign_conversion_goal.proto"; +import "google/ads/googleads/v17/resources/campaign_criterion.proto"; +import "google/ads/googleads/v17/resources/campaign_customizer.proto"; +import "google/ads/googleads/v17/resources/campaign_draft.proto"; +import "google/ads/googleads/v17/resources/campaign_extension_setting.proto"; +import "google/ads/googleads/v17/resources/campaign_feed.proto"; +import "google/ads/googleads/v17/resources/campaign_group.proto"; +import "google/ads/googleads/v17/resources/campaign_label.proto"; +import "google/ads/googleads/v17/resources/campaign_lifecycle_goal.proto"; +import "google/ads/googleads/v17/resources/campaign_search_term_insight.proto"; +import "google/ads/googleads/v17/resources/campaign_shared_set.proto"; +import "google/ads/googleads/v17/resources/campaign_simulation.proto"; +import "google/ads/googleads/v17/resources/carrier_constant.proto"; +import "google/ads/googleads/v17/resources/change_event.proto"; +import "google/ads/googleads/v17/resources/change_status.proto"; +import "google/ads/googleads/v17/resources/channel_aggregate_asset_view.proto"; +import "google/ads/googleads/v17/resources/click_view.proto"; +import "google/ads/googleads/v17/resources/combined_audience.proto"; +import "google/ads/googleads/v17/resources/conversion_action.proto"; +import "google/ads/googleads/v17/resources/conversion_custom_variable.proto"; +import "google/ads/googleads/v17/resources/conversion_goal_campaign_config.proto"; +import "google/ads/googleads/v17/resources/conversion_value_rule.proto"; +import "google/ads/googleads/v17/resources/conversion_value_rule_set.proto"; +import "google/ads/googleads/v17/resources/currency_constant.proto"; +import "google/ads/googleads/v17/resources/custom_audience.proto"; +import "google/ads/googleads/v17/resources/custom_conversion_goal.proto"; +import "google/ads/googleads/v17/resources/custom_interest.proto"; +import "google/ads/googleads/v17/resources/customer.proto"; +import "google/ads/googleads/v17/resources/customer_asset.proto"; +import "google/ads/googleads/v17/resources/customer_asset_set.proto"; +import "google/ads/googleads/v17/resources/customer_client.proto"; +import "google/ads/googleads/v17/resources/customer_client_link.proto"; +import "google/ads/googleads/v17/resources/customer_conversion_goal.proto"; +import "google/ads/googleads/v17/resources/customer_customizer.proto"; +import "google/ads/googleads/v17/resources/customer_extension_setting.proto"; +import "google/ads/googleads/v17/resources/customer_feed.proto"; +import "google/ads/googleads/v17/resources/customer_label.proto"; +import "google/ads/googleads/v17/resources/customer_lifecycle_goal.proto"; +import "google/ads/googleads/v17/resources/customer_manager_link.proto"; +import "google/ads/googleads/v17/resources/customer_negative_criterion.proto"; +import "google/ads/googleads/v17/resources/customer_search_term_insight.proto"; +import "google/ads/googleads/v17/resources/customer_user_access.proto"; +import "google/ads/googleads/v17/resources/customer_user_access_invitation.proto"; +import "google/ads/googleads/v17/resources/customizer_attribute.proto"; +import "google/ads/googleads/v17/resources/detail_placement_view.proto"; +import "google/ads/googleads/v17/resources/detailed_demographic.proto"; +import "google/ads/googleads/v17/resources/display_keyword_view.proto"; +import "google/ads/googleads/v17/resources/distance_view.proto"; +import "google/ads/googleads/v17/resources/domain_category.proto"; +import "google/ads/googleads/v17/resources/dynamic_search_ads_search_term_view.proto"; +import "google/ads/googleads/v17/resources/expanded_landing_page_view.proto"; +import "google/ads/googleads/v17/resources/experiment.proto"; +import "google/ads/googleads/v17/resources/experiment_arm.proto"; +import "google/ads/googleads/v17/resources/extension_feed_item.proto"; +import "google/ads/googleads/v17/resources/feed.proto"; +import "google/ads/googleads/v17/resources/feed_item.proto"; +import "google/ads/googleads/v17/resources/feed_item_set.proto"; +import "google/ads/googleads/v17/resources/feed_item_set_link.proto"; +import "google/ads/googleads/v17/resources/feed_item_target.proto"; +import "google/ads/googleads/v17/resources/feed_mapping.proto"; +import "google/ads/googleads/v17/resources/feed_placeholder_view.proto"; +import "google/ads/googleads/v17/resources/gender_view.proto"; +import "google/ads/googleads/v17/resources/geo_target_constant.proto"; +import "google/ads/googleads/v17/resources/geographic_view.proto"; +import "google/ads/googleads/v17/resources/group_placement_view.proto"; +import "google/ads/googleads/v17/resources/hotel_group_view.proto"; +import "google/ads/googleads/v17/resources/hotel_performance_view.proto"; +import "google/ads/googleads/v17/resources/hotel_reconciliation.proto"; +import "google/ads/googleads/v17/resources/income_range_view.proto"; +import "google/ads/googleads/v17/resources/keyword_plan.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_ad_group.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_campaign.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto"; +import "google/ads/googleads/v17/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v17/resources/keyword_view.proto"; +import "google/ads/googleads/v17/resources/label.proto"; +import "google/ads/googleads/v17/resources/landing_page_view.proto"; +import "google/ads/googleads/v17/resources/language_constant.proto"; +import "google/ads/googleads/v17/resources/lead_form_submission_data.proto"; +import "google/ads/googleads/v17/resources/life_event.proto"; +import "google/ads/googleads/v17/resources/local_services_employee.proto"; +import "google/ads/googleads/v17/resources/local_services_lead.proto"; +import "google/ads/googleads/v17/resources/local_services_lead_conversation.proto"; +import "google/ads/googleads/v17/resources/local_services_verification_artifact.proto"; +import "google/ads/googleads/v17/resources/location_view.proto"; +import "google/ads/googleads/v17/resources/managed_placement_view.proto"; +import "google/ads/googleads/v17/resources/media_file.proto"; +import "google/ads/googleads/v17/resources/mobile_app_category_constant.proto"; +import "google/ads/googleads/v17/resources/mobile_device_constant.proto"; +import "google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto"; +import "google/ads/googleads/v17/resources/offline_user_data_job.proto"; +import "google/ads/googleads/v17/resources/operating_system_version_constant.proto"; +import "google/ads/googleads/v17/resources/paid_organic_search_term_view.proto"; +import "google/ads/googleads/v17/resources/parental_status_view.proto"; +import "google/ads/googleads/v17/resources/per_store_view.proto"; +import "google/ads/googleads/v17/resources/product_category_constant.proto"; +import "google/ads/googleads/v17/resources/product_group_view.proto"; +import "google/ads/googleads/v17/resources/product_link.proto"; +import "google/ads/googleads/v17/resources/product_link_invitation.proto"; +import "google/ads/googleads/v17/resources/qualifying_question.proto"; +import "google/ads/googleads/v17/resources/recommendation.proto"; +import "google/ads/googleads/v17/resources/recommendation_subscription.proto"; +import "google/ads/googleads/v17/resources/remarketing_action.proto"; +import "google/ads/googleads/v17/resources/search_term_view.proto"; +import "google/ads/googleads/v17/resources/shared_criterion.proto"; +import "google/ads/googleads/v17/resources/shared_set.proto"; +import "google/ads/googleads/v17/resources/shopping_performance_view.proto"; +import "google/ads/googleads/v17/resources/shopping_product.proto"; +import "google/ads/googleads/v17/resources/smart_campaign_search_term_view.proto"; +import "google/ads/googleads/v17/resources/smart_campaign_setting.proto"; +import "google/ads/googleads/v17/resources/third_party_app_analytics_link.proto"; +import "google/ads/googleads/v17/resources/topic_constant.proto"; +import "google/ads/googleads/v17/resources/topic_view.proto"; +import "google/ads/googleads/v17/resources/travel_activity_group_view.proto"; +import "google/ads/googleads/v17/resources/travel_activity_performance_view.proto"; +import "google/ads/googleads/v17/resources/user_interest.proto"; +import "google/ads/googleads/v17/resources/user_list.proto"; +import "google/ads/googleads/v17/resources/user_list_customer_type.proto"; +import "google/ads/googleads/v17/resources/user_location_view.proto"; +import "google/ads/googleads/v17/resources/video.proto"; +import "google/ads/googleads/v17/resources/webpage_view.proto"; +import "google/ads/googleads/v17/services/ad_group_ad_label_service.proto"; +import "google/ads/googleads/v17/services/ad_group_ad_service.proto"; +import "google/ads/googleads/v17/services/ad_group_asset_service.proto"; +import "google/ads/googleads/v17/services/ad_group_bid_modifier_service.proto"; +import "google/ads/googleads/v17/services/ad_group_criterion_customizer_service.proto"; +import "google/ads/googleads/v17/services/ad_group_criterion_label_service.proto"; +import "google/ads/googleads/v17/services/ad_group_criterion_service.proto"; +import "google/ads/googleads/v17/services/ad_group_customizer_service.proto"; +import "google/ads/googleads/v17/services/ad_group_extension_setting_service.proto"; +import "google/ads/googleads/v17/services/ad_group_feed_service.proto"; +import "google/ads/googleads/v17/services/ad_group_label_service.proto"; +import "google/ads/googleads/v17/services/ad_group_service.proto"; +import "google/ads/googleads/v17/services/ad_parameter_service.proto"; +import "google/ads/googleads/v17/services/ad_service.proto"; +import "google/ads/googleads/v17/services/asset_group_asset_service.proto"; +import "google/ads/googleads/v17/services/asset_group_listing_group_filter_service.proto"; +import "google/ads/googleads/v17/services/asset_group_service.proto"; +import "google/ads/googleads/v17/services/asset_group_signal_service.proto"; +import "google/ads/googleads/v17/services/asset_service.proto"; +import "google/ads/googleads/v17/services/asset_set_asset_service.proto"; +import "google/ads/googleads/v17/services/asset_set_service.proto"; +import "google/ads/googleads/v17/services/audience_service.proto"; +import "google/ads/googleads/v17/services/bidding_data_exclusion_service.proto"; +import "google/ads/googleads/v17/services/bidding_seasonality_adjustment_service.proto"; +import "google/ads/googleads/v17/services/bidding_strategy_service.proto"; +import "google/ads/googleads/v17/services/campaign_asset_service.proto"; +import "google/ads/googleads/v17/services/campaign_asset_set_service.proto"; +import "google/ads/googleads/v17/services/campaign_bid_modifier_service.proto"; +import "google/ads/googleads/v17/services/campaign_budget_service.proto"; +import "google/ads/googleads/v17/services/campaign_conversion_goal_service.proto"; +import "google/ads/googleads/v17/services/campaign_criterion_service.proto"; +import "google/ads/googleads/v17/services/campaign_customizer_service.proto"; +import "google/ads/googleads/v17/services/campaign_draft_service.proto"; +import "google/ads/googleads/v17/services/campaign_extension_setting_service.proto"; +import "google/ads/googleads/v17/services/campaign_feed_service.proto"; +import "google/ads/googleads/v17/services/campaign_group_service.proto"; +import "google/ads/googleads/v17/services/campaign_label_service.proto"; +import "google/ads/googleads/v17/services/campaign_service.proto"; +import "google/ads/googleads/v17/services/campaign_shared_set_service.proto"; +import "google/ads/googleads/v17/services/conversion_action_service.proto"; +import "google/ads/googleads/v17/services/conversion_custom_variable_service.proto"; +import "google/ads/googleads/v17/services/conversion_goal_campaign_config_service.proto"; +import "google/ads/googleads/v17/services/conversion_value_rule_service.proto"; +import "google/ads/googleads/v17/services/conversion_value_rule_set_service.proto"; +import "google/ads/googleads/v17/services/custom_conversion_goal_service.proto"; +import "google/ads/googleads/v17/services/customer_asset_service.proto"; +import "google/ads/googleads/v17/services/customer_conversion_goal_service.proto"; +import "google/ads/googleads/v17/services/customer_customizer_service.proto"; +import "google/ads/googleads/v17/services/customer_extension_setting_service.proto"; +import "google/ads/googleads/v17/services/customer_feed_service.proto"; +import "google/ads/googleads/v17/services/customer_label_service.proto"; +import "google/ads/googleads/v17/services/customer_negative_criterion_service.proto"; +import "google/ads/googleads/v17/services/customer_service.proto"; +import "google/ads/googleads/v17/services/customizer_attribute_service.proto"; +import "google/ads/googleads/v17/services/experiment_arm_service.proto"; +import "google/ads/googleads/v17/services/experiment_service.proto"; +import "google/ads/googleads/v17/services/extension_feed_item_service.proto"; +import "google/ads/googleads/v17/services/feed_item_service.proto"; +import "google/ads/googleads/v17/services/feed_item_set_link_service.proto"; +import "google/ads/googleads/v17/services/feed_item_set_service.proto"; +import "google/ads/googleads/v17/services/feed_item_target_service.proto"; +import "google/ads/googleads/v17/services/feed_mapping_service.proto"; +import "google/ads/googleads/v17/services/feed_service.proto"; +import "google/ads/googleads/v17/services/keyword_plan_ad_group_keyword_service.proto"; +import "google/ads/googleads/v17/services/keyword_plan_ad_group_service.proto"; +import "google/ads/googleads/v17/services/keyword_plan_campaign_keyword_service.proto"; +import "google/ads/googleads/v17/services/keyword_plan_campaign_service.proto"; +import "google/ads/googleads/v17/services/keyword_plan_service.proto"; +import "google/ads/googleads/v17/services/label_service.proto"; +import "google/ads/googleads/v17/services/recommendation_subscription_service.proto"; +import "google/ads/googleads/v17/services/remarketing_action_service.proto"; +import "google/ads/googleads/v17/services/shared_criterion_service.proto"; +import "google/ads/googleads/v17/services/shared_set_service.proto"; +import "google/ads/googleads/v17/services/smart_campaign_setting_service.proto"; +import "google/ads/googleads/v17/services/user_list_service.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the GoogleAdsService. @@ -291,7 +309,7 @@ service GoogleAdsService { // [RequestError]() rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/googleAds:search" + post: "/v17/customers/{customer_id=*}/googleAds:search" body: "*" }; option (google.api.method_signature) = "customer_id,query"; @@ -313,7 +331,7 @@ service GoogleAdsService { rpc SearchStream(SearchGoogleAdsStreamRequest) returns (stream SearchGoogleAdsStreamResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/googleAds:searchStream" + post: "/v17/customers/{customer_id=*}/googleAds:searchStream" body: "*" }; option (google.api.method_signature) = "customer_id,query"; @@ -433,7 +451,7 @@ service GoogleAdsService { // [YoutubeVideoRegistrationError]() rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/googleAds:mutate" + post: "/v17/customers/{customer_id=*}/googleAds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,mutate_operations"; @@ -441,7 +459,7 @@ service GoogleAdsService { } // Request message for -// [GoogleAdsService.Search][google.ads.googleads.v14.services.GoogleAdsService.Search]. +// [GoogleAdsService.Search][google.ads.googleads.v17.services.GoogleAdsService.Search]. message SearchGoogleAdsRequest { // Required. The ID of the customer being queried. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -471,12 +489,12 @@ message SearchGoogleAdsRequest { // Determines whether a summary row will be returned. By default, summary row // is not returned. If requested, the summary row will be sent in a response // by itself after all other query results are returned. - google.ads.googleads.v14.enums.SummaryRowSettingEnum.SummaryRowSetting + google.ads.googleads.v17.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 8; } // Response message for -// [GoogleAdsService.Search][google.ads.googleads.v14.services.GoogleAdsService.Search]. +// [GoogleAdsService.Search][google.ads.googleads.v17.services.GoogleAdsService.Search]. message SearchGoogleAdsResponse { // The list of rows that matched the query. repeated GoogleAdsRow results = 1; @@ -498,10 +516,13 @@ message SearchGoogleAdsResponse { // Summary of metrics means aggregation of metrics across all results, // here aggregation could be sum, average, rate, etc. GoogleAdsRow summary_row = 6; + + // The amount of resources consumed to serve the query. + int64 query_resource_consumption = 8; } // Request message for -// [GoogleAdsService.SearchStream][google.ads.googleads.v14.services.GoogleAdsService.SearchStream]. +// [GoogleAdsService.SearchStream][google.ads.googleads.v17.services.GoogleAdsService.SearchStream]. message SearchGoogleAdsStreamRequest { // Required. The ID of the customer being queried. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -512,12 +533,12 @@ message SearchGoogleAdsStreamRequest { // Determines whether a summary row will be returned. By default, summary row // is not returned. If requested, the summary row will be sent in a response // by itself after all other query results are returned. - google.ads.googleads.v14.enums.SummaryRowSettingEnum.SummaryRowSetting + google.ads.googleads.v17.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; } // Response message for -// [GoogleAdsService.SearchStream][google.ads.googleads.v14.services.GoogleAdsService.SearchStream]. +// [GoogleAdsService.SearchStream][google.ads.googleads.v17.services.GoogleAdsService.SearchStream]. message SearchGoogleAdsStreamResponse { // The list of rows that matched the query. repeated GoogleAdsRow results = 1; @@ -532,566 +553,643 @@ message SearchGoogleAdsStreamResponse { // The unique id of the request that is used for debugging purposes. string request_id = 4; + + // The amount of resources consumed to serve the query. + // query_resource_consumption for the Summary row and non-Summary responses + // are returned separately in their respective rows. + // query_resource_consumption for non-Summary responses is returned in the + // final batch of results. + int64 query_resource_consumption = 6; } // A returned row from the query. message GoogleAdsRow { // The account budget in the query. - google.ads.googleads.v14.resources.AccountBudget account_budget = 42; + google.ads.googleads.v17.resources.AccountBudget account_budget = 42; // The account budget proposal referenced in the query. - google.ads.googleads.v14.resources.AccountBudgetProposal + google.ads.googleads.v17.resources.AccountBudgetProposal account_budget_proposal = 43; // The AccountLink referenced in the query. - google.ads.googleads.v14.resources.AccountLink account_link = 143; + google.ads.googleads.v17.resources.AccountLink account_link = 143; + + // The Ad referenced in the query. + google.ads.googleads.v17.resources.Ad ad = 227; // The ad group referenced in the query. - google.ads.googleads.v14.resources.AdGroup ad_group = 3; + google.ads.googleads.v17.resources.AdGroup ad_group = 3; // The ad referenced in the query. - google.ads.googleads.v14.resources.AdGroupAd ad_group_ad = 16; + google.ads.googleads.v17.resources.AdGroupAd ad_group_ad = 16; // The ad group ad asset combination view in the query. - google.ads.googleads.v14.resources.AdGroupAdAssetCombinationView + google.ads.googleads.v17.resources.AdGroupAdAssetCombinationView ad_group_ad_asset_combination_view = 193; // The ad group ad asset view in the query. - google.ads.googleads.v14.resources.AdGroupAdAssetView ad_group_ad_asset_view = + google.ads.googleads.v17.resources.AdGroupAdAssetView ad_group_ad_asset_view = 131; // The ad group ad label referenced in the query. - google.ads.googleads.v14.resources.AdGroupAdLabel ad_group_ad_label = 120; + google.ads.googleads.v17.resources.AdGroupAdLabel ad_group_ad_label = 120; // The ad group asset referenced in the query. - google.ads.googleads.v14.resources.AdGroupAsset ad_group_asset = 154; + google.ads.googleads.v17.resources.AdGroupAsset ad_group_asset = 154; // The ad group asset set referenced in the query. - google.ads.googleads.v14.resources.AdGroupAssetSet ad_group_asset_set = 196; + google.ads.googleads.v17.resources.AdGroupAssetSet ad_group_asset_set = 196; // The ad group audience view referenced in the query. - google.ads.googleads.v14.resources.AdGroupAudienceView + google.ads.googleads.v17.resources.AdGroupAudienceView ad_group_audience_view = 57; // The bid modifier referenced in the query. - google.ads.googleads.v14.resources.AdGroupBidModifier ad_group_bid_modifier = + google.ads.googleads.v17.resources.AdGroupBidModifier ad_group_bid_modifier = 24; // The criterion referenced in the query. - google.ads.googleads.v14.resources.AdGroupCriterion ad_group_criterion = 17; + google.ads.googleads.v17.resources.AdGroupCriterion ad_group_criterion = 17; // The ad group criterion customizer referenced in the query. - google.ads.googleads.v14.resources.AdGroupCriterionCustomizer + google.ads.googleads.v17.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 187; // The ad group criterion label referenced in the query. - google.ads.googleads.v14.resources.AdGroupCriterionLabel + google.ads.googleads.v17.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; // The ad group criterion simulation referenced in the query. - google.ads.googleads.v14.resources.AdGroupCriterionSimulation + google.ads.googleads.v17.resources.AdGroupCriterionSimulation ad_group_criterion_simulation = 110; // The ad group customizer referenced in the query. - google.ads.googleads.v14.resources.AdGroupCustomizer ad_group_customizer = + google.ads.googleads.v17.resources.AdGroupCustomizer ad_group_customizer = 185; // The ad group extension setting referenced in the query. - google.ads.googleads.v14.resources.AdGroupExtensionSetting + google.ads.googleads.v17.resources.AdGroupExtensionSetting ad_group_extension_setting = 112; // The ad group feed referenced in the query. - google.ads.googleads.v14.resources.AdGroupFeed ad_group_feed = 67; + google.ads.googleads.v17.resources.AdGroupFeed ad_group_feed = 67; // The ad group label referenced in the query. - google.ads.googleads.v14.resources.AdGroupLabel ad_group_label = 115; + google.ads.googleads.v17.resources.AdGroupLabel ad_group_label = 115; // The ad group simulation referenced in the query. - google.ads.googleads.v14.resources.AdGroupSimulation ad_group_simulation = + google.ads.googleads.v17.resources.AdGroupSimulation ad_group_simulation = 107; // The ad parameter referenced in the query. - google.ads.googleads.v14.resources.AdParameter ad_parameter = 130; + google.ads.googleads.v17.resources.AdParameter ad_parameter = 130; // The age range view referenced in the query. - google.ads.googleads.v14.resources.AgeRangeView age_range_view = 48; + google.ads.googleads.v17.resources.AgeRangeView age_range_view = 48; // The ad schedule view referenced in the query. - google.ads.googleads.v14.resources.AdScheduleView ad_schedule_view = 89; + google.ads.googleads.v17.resources.AdScheduleView ad_schedule_view = 89; // The domain category referenced in the query. - google.ads.googleads.v14.resources.DomainCategory domain_category = 91; + google.ads.googleads.v17.resources.DomainCategory domain_category = 91; // The asset referenced in the query. - google.ads.googleads.v14.resources.Asset asset = 105; + google.ads.googleads.v17.resources.Asset asset = 105; // The asset field type view referenced in the query. - google.ads.googleads.v14.resources.AssetFieldTypeView asset_field_type_view = + google.ads.googleads.v17.resources.AssetFieldTypeView asset_field_type_view = 168; + // The channel aggregate asset view referenced in the query. + google.ads.googleads.v17.resources.ChannelAggregateAssetView + channel_aggregate_asset_view = 222; + + // The campaign aggregate asset view referenced in the query. + google.ads.googleads.v17.resources.CampaignAggregateAssetView + campaign_aggregate_asset_view = 224; + // The asset group asset referenced in the query. - google.ads.googleads.v14.resources.AssetGroupAsset asset_group_asset = 173; + google.ads.googleads.v17.resources.AssetGroupAsset asset_group_asset = 173; // The asset group signal referenced in the query. - google.ads.googleads.v14.resources.AssetGroupSignal asset_group_signal = 191; + google.ads.googleads.v17.resources.AssetGroupSignal asset_group_signal = 191; // The asset group listing group filter referenced in the query. - google.ads.googleads.v14.resources.AssetGroupListingGroupFilter + google.ads.googleads.v17.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 182; // The asset group product group view referenced in the query. - google.ads.googleads.v14.resources.AssetGroupProductGroupView + google.ads.googleads.v17.resources.AssetGroupProductGroupView asset_group_product_group_view = 189; + // The asset group top combination view referenced in the query. + google.ads.googleads.v17.resources.AssetGroupTopCombinationView + asset_group_top_combination_view = 199; + // The asset group referenced in the query. - google.ads.googleads.v14.resources.AssetGroup asset_group = 172; + google.ads.googleads.v17.resources.AssetGroup asset_group = 172; // The asset set asset referenced in the query. - google.ads.googleads.v14.resources.AssetSetAsset asset_set_asset = 180; + google.ads.googleads.v17.resources.AssetSetAsset asset_set_asset = 180; // The asset set referenced in the query. - google.ads.googleads.v14.resources.AssetSet asset_set = 179; + google.ads.googleads.v17.resources.AssetSet asset_set = 179; // The asset set type view referenced in the query. - google.ads.googleads.v14.resources.AssetSetTypeView asset_set_type_view = 197; + google.ads.googleads.v17.resources.AssetSetTypeView asset_set_type_view = 197; // The batch job referenced in the query. - google.ads.googleads.v14.resources.BatchJob batch_job = 139; + google.ads.googleads.v17.resources.BatchJob batch_job = 139; // The bidding data exclusion referenced in the query. - google.ads.googleads.v14.resources.BiddingDataExclusion + google.ads.googleads.v17.resources.BiddingDataExclusion bidding_data_exclusion = 159; // The bidding seasonality adjustment referenced in the query. - google.ads.googleads.v14.resources.BiddingSeasonalityAdjustment + google.ads.googleads.v17.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 160; // The bidding strategy referenced in the query. - google.ads.googleads.v14.resources.BiddingStrategy bidding_strategy = 18; + google.ads.googleads.v17.resources.BiddingStrategy bidding_strategy = 18; // The bidding strategy simulation referenced in the query. - google.ads.googleads.v14.resources.BiddingStrategySimulation + google.ads.googleads.v17.resources.BiddingStrategySimulation bidding_strategy_simulation = 158; // The billing setup referenced in the query. - google.ads.googleads.v14.resources.BillingSetup billing_setup = 41; + google.ads.googleads.v17.resources.BillingSetup billing_setup = 41; // The call view referenced in the query. - google.ads.googleads.v14.resources.CallView call_view = 152; + google.ads.googleads.v17.resources.CallView call_view = 152; // The campaign budget referenced in the query. - google.ads.googleads.v14.resources.CampaignBudget campaign_budget = 19; + google.ads.googleads.v17.resources.CampaignBudget campaign_budget = 19; // The campaign referenced in the query. - google.ads.googleads.v14.resources.Campaign campaign = 2; + google.ads.googleads.v17.resources.Campaign campaign = 2; // The campaign asset referenced in the query. - google.ads.googleads.v14.resources.CampaignAsset campaign_asset = 142; + google.ads.googleads.v17.resources.CampaignAsset campaign_asset = 142; // The campaign asset set referenced in the query. - google.ads.googleads.v14.resources.CampaignAssetSet campaign_asset_set = 181; + google.ads.googleads.v17.resources.CampaignAssetSet campaign_asset_set = 181; // The campaign audience view referenced in the query. - google.ads.googleads.v14.resources.CampaignAudienceView + google.ads.googleads.v17.resources.CampaignAudienceView campaign_audience_view = 69; // The campaign bid modifier referenced in the query. - google.ads.googleads.v14.resources.CampaignBidModifier campaign_bid_modifier = + google.ads.googleads.v17.resources.CampaignBidModifier campaign_bid_modifier = 26; // The CampaignConversionGoal referenced in the query. - google.ads.googleads.v14.resources.CampaignConversionGoal + google.ads.googleads.v17.resources.CampaignConversionGoal campaign_conversion_goal = 175; // The campaign criterion referenced in the query. - google.ads.googleads.v14.resources.CampaignCriterion campaign_criterion = 20; + google.ads.googleads.v17.resources.CampaignCriterion campaign_criterion = 20; // The campaign customizer referenced in the query. - google.ads.googleads.v14.resources.CampaignCustomizer campaign_customizer = + google.ads.googleads.v17.resources.CampaignCustomizer campaign_customizer = 186; // The campaign draft referenced in the query. - google.ads.googleads.v14.resources.CampaignDraft campaign_draft = 49; + google.ads.googleads.v17.resources.CampaignDraft campaign_draft = 49; // The campaign extension setting referenced in the query. - google.ads.googleads.v14.resources.CampaignExtensionSetting + google.ads.googleads.v17.resources.CampaignExtensionSetting campaign_extension_setting = 113; // The campaign feed referenced in the query. - google.ads.googleads.v14.resources.CampaignFeed campaign_feed = 63; + google.ads.googleads.v17.resources.CampaignFeed campaign_feed = 63; // Campaign Group referenced in AWQL query. - google.ads.googleads.v14.resources.CampaignGroup campaign_group = 25; + google.ads.googleads.v17.resources.CampaignGroup campaign_group = 25; // The campaign label referenced in the query. - google.ads.googleads.v14.resources.CampaignLabel campaign_label = 108; + google.ads.googleads.v17.resources.CampaignLabel campaign_label = 108; + + // The campaign lifecycle goal referenced in the query. + google.ads.googleads.v17.resources.CampaignLifecycleGoal + campaign_lifecycle_goal = 213; // The campaign search term insight referenced in the query. - google.ads.googleads.v14.resources.CampaignSearchTermInsight + google.ads.googleads.v17.resources.CampaignSearchTermInsight campaign_search_term_insight = 204; // Campaign Shared Set referenced in AWQL query. - google.ads.googleads.v14.resources.CampaignSharedSet campaign_shared_set = 30; + google.ads.googleads.v17.resources.CampaignSharedSet campaign_shared_set = 30; // The campaign simulation referenced in the query. - google.ads.googleads.v14.resources.CampaignSimulation campaign_simulation = + google.ads.googleads.v17.resources.CampaignSimulation campaign_simulation = 157; // The carrier constant referenced in the query. - google.ads.googleads.v14.resources.CarrierConstant carrier_constant = 66; + google.ads.googleads.v17.resources.CarrierConstant carrier_constant = 66; // The ChangeEvent referenced in the query. - google.ads.googleads.v14.resources.ChangeEvent change_event = 145; + google.ads.googleads.v17.resources.ChangeEvent change_event = 145; // The ChangeStatus referenced in the query. - google.ads.googleads.v14.resources.ChangeStatus change_status = 37; + google.ads.googleads.v17.resources.ChangeStatus change_status = 37; // The CombinedAudience referenced in the query. - google.ads.googleads.v14.resources.CombinedAudience combined_audience = 148; + google.ads.googleads.v17.resources.CombinedAudience combined_audience = 148; // The Audience referenced in the query. - google.ads.googleads.v14.resources.Audience audience = 190; + google.ads.googleads.v17.resources.Audience audience = 190; // The conversion action referenced in the query. - google.ads.googleads.v14.resources.ConversionAction conversion_action = 103; + google.ads.googleads.v17.resources.ConversionAction conversion_action = 103; // The conversion custom variable referenced in the query. - google.ads.googleads.v14.resources.ConversionCustomVariable + google.ads.googleads.v17.resources.ConversionCustomVariable conversion_custom_variable = 153; // The ConversionGoalCampaignConfig referenced in the query. - google.ads.googleads.v14.resources.ConversionGoalCampaignConfig + google.ads.googleads.v17.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 177; // The conversion value rule referenced in the query. - google.ads.googleads.v14.resources.ConversionValueRule conversion_value_rule = + google.ads.googleads.v17.resources.ConversionValueRule conversion_value_rule = 164; // The conversion value rule set referenced in the query. - google.ads.googleads.v14.resources.ConversionValueRuleSet + google.ads.googleads.v17.resources.ConversionValueRuleSet conversion_value_rule_set = 165; // The ClickView referenced in the query. - google.ads.googleads.v14.resources.ClickView click_view = 122; + google.ads.googleads.v17.resources.ClickView click_view = 122; // The currency constant referenced in the query. - google.ads.googleads.v14.resources.CurrencyConstant currency_constant = 134; + google.ads.googleads.v17.resources.CurrencyConstant currency_constant = 134; // The CustomAudience referenced in the query. - google.ads.googleads.v14.resources.CustomAudience custom_audience = 147; + google.ads.googleads.v17.resources.CustomAudience custom_audience = 147; // The CustomConversionGoal referenced in the query. - google.ads.googleads.v14.resources.CustomConversionGoal + google.ads.googleads.v17.resources.CustomConversionGoal custom_conversion_goal = 176; // The CustomInterest referenced in the query. - google.ads.googleads.v14.resources.CustomInterest custom_interest = 104; + google.ads.googleads.v17.resources.CustomInterest custom_interest = 104; // The customer referenced in the query. - google.ads.googleads.v14.resources.Customer customer = 1; + google.ads.googleads.v17.resources.Customer customer = 1; // The customer asset referenced in the query. - google.ads.googleads.v14.resources.CustomerAsset customer_asset = 155; + google.ads.googleads.v17.resources.CustomerAsset customer_asset = 155; // The customer asset set referenced in the query. - google.ads.googleads.v14.resources.CustomerAssetSet customer_asset_set = 195; + google.ads.googleads.v17.resources.CustomerAssetSet customer_asset_set = 195; // The accessible bidding strategy referenced in the query. - google.ads.googleads.v14.resources.AccessibleBiddingStrategy + google.ads.googleads.v17.resources.AccessibleBiddingStrategy accessible_bidding_strategy = 169; // The customer customizer referenced in the query. - google.ads.googleads.v14.resources.CustomerCustomizer customer_customizer = + google.ads.googleads.v17.resources.CustomerCustomizer customer_customizer = 184; // The CustomerManagerLink referenced in the query. - google.ads.googleads.v14.resources.CustomerManagerLink customer_manager_link = + google.ads.googleads.v17.resources.CustomerManagerLink customer_manager_link = 61; // The CustomerClientLink referenced in the query. - google.ads.googleads.v14.resources.CustomerClientLink customer_client_link = + google.ads.googleads.v17.resources.CustomerClientLink customer_client_link = 62; // The CustomerClient referenced in the query. - google.ads.googleads.v14.resources.CustomerClient customer_client = 70; + google.ads.googleads.v17.resources.CustomerClient customer_client = 70; // The CustomerConversionGoal referenced in the query. - google.ads.googleads.v14.resources.CustomerConversionGoal + google.ads.googleads.v17.resources.CustomerConversionGoal customer_conversion_goal = 174; // The customer extension setting referenced in the query. - google.ads.googleads.v14.resources.CustomerExtensionSetting + google.ads.googleads.v17.resources.CustomerExtensionSetting customer_extension_setting = 114; // The customer feed referenced in the query. - google.ads.googleads.v14.resources.CustomerFeed customer_feed = 64; + google.ads.googleads.v17.resources.CustomerFeed customer_feed = 64; // The customer label referenced in the query. - google.ads.googleads.v14.resources.CustomerLabel customer_label = 124; + google.ads.googleads.v17.resources.CustomerLabel customer_label = 124; + + // The customer lifecycle goal referenced in the query. + google.ads.googleads.v17.resources.CustomerLifecycleGoal + customer_lifecycle_goal = 212; // The customer negative criterion referenced in the query. - google.ads.googleads.v14.resources.CustomerNegativeCriterion + google.ads.googleads.v17.resources.CustomerNegativeCriterion customer_negative_criterion = 88; // The customer search term insight referenced in the query. - google.ads.googleads.v14.resources.CustomerSearchTermInsight + google.ads.googleads.v17.resources.CustomerSearchTermInsight customer_search_term_insight = 205; // The CustomerUserAccess referenced in the query. - google.ads.googleads.v14.resources.CustomerUserAccess customer_user_access = + google.ads.googleads.v17.resources.CustomerUserAccess customer_user_access = 146; // The CustomerUserAccessInvitation referenced in the query. - google.ads.googleads.v14.resources.CustomerUserAccessInvitation + google.ads.googleads.v17.resources.CustomerUserAccessInvitation customer_user_access_invitation = 150; // The customizer attribute referenced in the query. - google.ads.googleads.v14.resources.CustomizerAttribute customizer_attribute = + google.ads.googleads.v17.resources.CustomizerAttribute customizer_attribute = 178; // The detail placement view referenced in the query. - google.ads.googleads.v14.resources.DetailPlacementView detail_placement_view = + google.ads.googleads.v17.resources.DetailPlacementView detail_placement_view = 118; // The detailed demographic referenced in the query. - google.ads.googleads.v14.resources.DetailedDemographic detailed_demographic = + google.ads.googleads.v17.resources.DetailedDemographic detailed_demographic = 166; // The display keyword view referenced in the query. - google.ads.googleads.v14.resources.DisplayKeywordView display_keyword_view = + google.ads.googleads.v17.resources.DisplayKeywordView display_keyword_view = 47; // The distance view referenced in the query. - google.ads.googleads.v14.resources.DistanceView distance_view = 132; + google.ads.googleads.v17.resources.DistanceView distance_view = 132; // The dynamic search ads search term view referenced in the query. - google.ads.googleads.v14.resources.DynamicSearchAdsSearchTermView + google.ads.googleads.v17.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; // The expanded landing page view referenced in the query. - google.ads.googleads.v14.resources.ExpandedLandingPageView + google.ads.googleads.v17.resources.ExpandedLandingPageView expanded_landing_page_view = 128; // The extension feed item referenced in the query. - google.ads.googleads.v14.resources.ExtensionFeedItem extension_feed_item = 85; + google.ads.googleads.v17.resources.ExtensionFeedItem extension_feed_item = 85; // The feed referenced in the query. - google.ads.googleads.v14.resources.Feed feed = 46; + google.ads.googleads.v17.resources.Feed feed = 46; // The feed item referenced in the query. - google.ads.googleads.v14.resources.FeedItem feed_item = 50; + google.ads.googleads.v17.resources.FeedItem feed_item = 50; // The feed item set referenced in the query. - google.ads.googleads.v14.resources.FeedItemSet feed_item_set = 149; + google.ads.googleads.v17.resources.FeedItemSet feed_item_set = 149; // The feed item set link referenced in the query. - google.ads.googleads.v14.resources.FeedItemSetLink feed_item_set_link = 151; + google.ads.googleads.v17.resources.FeedItemSetLink feed_item_set_link = 151; // The feed item target referenced in the query. - google.ads.googleads.v14.resources.FeedItemTarget feed_item_target = 116; + google.ads.googleads.v17.resources.FeedItemTarget feed_item_target = 116; // The feed mapping referenced in the query. - google.ads.googleads.v14.resources.FeedMapping feed_mapping = 58; + google.ads.googleads.v17.resources.FeedMapping feed_mapping = 58; // The feed placeholder view referenced in the query. - google.ads.googleads.v14.resources.FeedPlaceholderView feed_placeholder_view = + google.ads.googleads.v17.resources.FeedPlaceholderView feed_placeholder_view = 97; // The gender view referenced in the query. - google.ads.googleads.v14.resources.GenderView gender_view = 40; + google.ads.googleads.v17.resources.GenderView gender_view = 40; // The geo target constant referenced in the query. - google.ads.googleads.v14.resources.GeoTargetConstant geo_target_constant = 23; + google.ads.googleads.v17.resources.GeoTargetConstant geo_target_constant = 23; // The geographic view referenced in the query. - google.ads.googleads.v14.resources.GeographicView geographic_view = 125; + google.ads.googleads.v17.resources.GeographicView geographic_view = 125; // The group placement view referenced in the query. - google.ads.googleads.v14.resources.GroupPlacementView group_placement_view = + google.ads.googleads.v17.resources.GroupPlacementView group_placement_view = 119; // The hotel group view referenced in the query. - google.ads.googleads.v14.resources.HotelGroupView hotel_group_view = 51; + google.ads.googleads.v17.resources.HotelGroupView hotel_group_view = 51; // The hotel performance view referenced in the query. - google.ads.googleads.v14.resources.HotelPerformanceView + google.ads.googleads.v17.resources.HotelPerformanceView hotel_performance_view = 71; // The hotel reconciliation referenced in the query. - google.ads.googleads.v14.resources.HotelReconciliation hotel_reconciliation = + google.ads.googleads.v17.resources.HotelReconciliation hotel_reconciliation = 188; // The income range view referenced in the query. - google.ads.googleads.v14.resources.IncomeRangeView income_range_view = 138; + google.ads.googleads.v17.resources.IncomeRangeView income_range_view = 138; // The keyword view referenced in the query. - google.ads.googleads.v14.resources.KeywordView keyword_view = 21; + google.ads.googleads.v17.resources.KeywordView keyword_view = 21; // The keyword plan referenced in the query. - google.ads.googleads.v14.resources.KeywordPlan keyword_plan = 32; + google.ads.googleads.v17.resources.KeywordPlan keyword_plan = 32; // The keyword plan campaign referenced in the query. - google.ads.googleads.v14.resources.KeywordPlanCampaign keyword_plan_campaign = + google.ads.googleads.v17.resources.KeywordPlanCampaign keyword_plan_campaign = 33; // The keyword plan campaign keyword referenced in the query. - google.ads.googleads.v14.resources.KeywordPlanCampaignKeyword + google.ads.googleads.v17.resources.KeywordPlanCampaignKeyword keyword_plan_campaign_keyword = 140; // The keyword plan ad group referenced in the query. - google.ads.googleads.v14.resources.KeywordPlanAdGroup keyword_plan_ad_group = + google.ads.googleads.v17.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35; // The keyword plan ad group referenced in the query. - google.ads.googleads.v14.resources.KeywordPlanAdGroupKeyword + google.ads.googleads.v17.resources.KeywordPlanAdGroupKeyword keyword_plan_ad_group_keyword = 141; // The keyword theme constant referenced in the query. - google.ads.googleads.v14.resources.KeywordThemeConstant + google.ads.googleads.v17.resources.KeywordThemeConstant keyword_theme_constant = 163; // The label referenced in the query. - google.ads.googleads.v14.resources.Label label = 52; + google.ads.googleads.v17.resources.Label label = 52; // The landing page view referenced in the query. - google.ads.googleads.v14.resources.LandingPageView landing_page_view = 126; + google.ads.googleads.v17.resources.LandingPageView landing_page_view = 126; // The language constant referenced in the query. - google.ads.googleads.v14.resources.LanguageConstant language_constant = 55; + google.ads.googleads.v17.resources.LanguageConstant language_constant = 55; // The location view referenced in the query. - google.ads.googleads.v14.resources.LocationView location_view = 123; + google.ads.googleads.v17.resources.LocationView location_view = 123; // The managed placement view referenced in the query. - google.ads.googleads.v14.resources.ManagedPlacementView + google.ads.googleads.v17.resources.ManagedPlacementView managed_placement_view = 53; // The media file referenced in the query. - google.ads.googleads.v14.resources.MediaFile media_file = 90; + google.ads.googleads.v17.resources.MediaFile media_file = 90; + + // The local services employee referenced in the query. + google.ads.googleads.v17.resources.LocalServicesEmployee + local_services_employee = 223; + + // The local services verification artifact referenced in the query. + google.ads.googleads.v17.resources.LocalServicesVerificationArtifact + local_services_verification_artifact = 211; // The mobile app category constant referenced in the query. - google.ads.googleads.v14.resources.MobileAppCategoryConstant + google.ads.googleads.v17.resources.MobileAppCategoryConstant mobile_app_category_constant = 87; // The mobile device constant referenced in the query. - google.ads.googleads.v14.resources.MobileDeviceConstant + google.ads.googleads.v17.resources.MobileDeviceConstant mobile_device_constant = 98; + // Offline conversion upload client summary. + google.ads.googleads.v17.resources.OfflineConversionUploadClientSummary + offline_conversion_upload_client_summary = 216; + // The offline user data job referenced in the query. - google.ads.googleads.v14.resources.OfflineUserDataJob offline_user_data_job = + google.ads.googleads.v17.resources.OfflineUserDataJob offline_user_data_job = 137; // The operating system version constant referenced in the query. - google.ads.googleads.v14.resources.OperatingSystemVersionConstant + google.ads.googleads.v17.resources.OperatingSystemVersionConstant operating_system_version_constant = 86; // The paid organic search term view referenced in the query. - google.ads.googleads.v14.resources.PaidOrganicSearchTermView + google.ads.googleads.v17.resources.PaidOrganicSearchTermView paid_organic_search_term_view = 129; // The qualifying question referenced in the query. - google.ads.googleads.v14.resources.QualifyingQuestion qualifying_question = + google.ads.googleads.v17.resources.QualifyingQuestion qualifying_question = 202; // The parental status view referenced in the query. - google.ads.googleads.v14.resources.ParentalStatusView parental_status_view = + google.ads.googleads.v17.resources.ParentalStatusView parental_status_view = 45; // The per store view referenced in the query. - google.ads.googleads.v14.resources.PerStoreView per_store_view = 198; + google.ads.googleads.v17.resources.PerStoreView per_store_view = 198; - // The Product Bidding Category referenced in the query. - google.ads.googleads.v14.resources.ProductBiddingCategoryConstant - product_bidding_category_constant = 109; + // The product category referenced in the query. + google.ads.googleads.v17.resources.ProductCategoryConstant + product_category_constant = 208; // The product group view referenced in the query. - google.ads.googleads.v14.resources.ProductGroupView product_group_view = 54; + google.ads.googleads.v17.resources.ProductGroupView product_group_view = 54; // The product link referenced in the query. - google.ads.googleads.v14.resources.ProductLink product_link = 194; + google.ads.googleads.v17.resources.ProductLink product_link = 194; + + // The product link invitation in the query. + google.ads.googleads.v17.resources.ProductLinkInvitation + product_link_invitation = 209; // The recommendation referenced in the query. - google.ads.googleads.v14.resources.Recommendation recommendation = 22; + google.ads.googleads.v17.resources.Recommendation recommendation = 22; + + // The recommendation subscription referenced in the query. + google.ads.googleads.v17.resources.RecommendationSubscription + recommendation_subscription = 220; // The search term view referenced in the query. - google.ads.googleads.v14.resources.SearchTermView search_term_view = 68; + google.ads.googleads.v17.resources.SearchTermView search_term_view = 68; // The shared set referenced in the query. - google.ads.googleads.v14.resources.SharedCriterion shared_criterion = 29; + google.ads.googleads.v17.resources.SharedCriterion shared_criterion = 29; // The shared set referenced in the query. - google.ads.googleads.v14.resources.SharedSet shared_set = 27; + google.ads.googleads.v17.resources.SharedSet shared_set = 27; // The Smart campaign setting referenced in the query. - google.ads.googleads.v14.resources.SmartCampaignSetting + google.ads.googleads.v17.resources.SmartCampaignSetting smart_campaign_setting = 167; // The shopping performance view referenced in the query. - google.ads.googleads.v14.resources.ShoppingPerformanceView + google.ads.googleads.v17.resources.ShoppingPerformanceView shopping_performance_view = 117; + // The shopping product referenced in the query. + google.ads.googleads.v17.resources.ShoppingProduct shopping_product = 226; + // The Smart campaign search term view referenced in the query. - google.ads.googleads.v14.resources.SmartCampaignSearchTermView + google.ads.googleads.v17.resources.SmartCampaignSearchTermView smart_campaign_search_term_view = 170; // The AccountLink referenced in the query. - google.ads.googleads.v14.resources.ThirdPartyAppAnalyticsLink + google.ads.googleads.v17.resources.ThirdPartyAppAnalyticsLink third_party_app_analytics_link = 144; // The topic view referenced in the query. - google.ads.googleads.v14.resources.TopicView topic_view = 44; + google.ads.googleads.v17.resources.TopicView topic_view = 44; // The travel activity group view referenced in the query. - google.ads.googleads.v14.resources.TravelActivityGroupView + google.ads.googleads.v17.resources.TravelActivityGroupView travel_activity_group_view = 201; // The travel activity performance view referenced in the query. - google.ads.googleads.v14.resources.TravelActivityPerformanceView + google.ads.googleads.v17.resources.TravelActivityPerformanceView travel_activity_performance_view = 200; // The experiment referenced in the query. - google.ads.googleads.v14.resources.Experiment experiment = 133; + google.ads.googleads.v17.resources.Experiment experiment = 133; // The experiment arm referenced in the query. - google.ads.googleads.v14.resources.ExperimentArm experiment_arm = 183; + google.ads.googleads.v17.resources.ExperimentArm experiment_arm = 183; // The user interest referenced in the query. - google.ads.googleads.v14.resources.UserInterest user_interest = 59; + google.ads.googleads.v17.resources.UserInterest user_interest = 59; // The life event referenced in the query. - google.ads.googleads.v14.resources.LifeEvent life_event = 161; + google.ads.googleads.v17.resources.LifeEvent life_event = 161; // The user list referenced in the query. - google.ads.googleads.v14.resources.UserList user_list = 38; + google.ads.googleads.v17.resources.UserList user_list = 38; + + // The user list customer type in the query. + google.ads.googleads.v17.resources.UserListCustomerType + user_list_customer_type = 225; // The user location view referenced in the query. - google.ads.googleads.v14.resources.UserLocationView user_location_view = 135; + google.ads.googleads.v17.resources.UserLocationView user_location_view = 135; // The remarketing action referenced in the query. - google.ads.googleads.v14.resources.RemarketingAction remarketing_action = 60; + google.ads.googleads.v17.resources.RemarketingAction remarketing_action = 60; // The topic constant referenced in the query. - google.ads.googleads.v14.resources.TopicConstant topic_constant = 31; + google.ads.googleads.v17.resources.TopicConstant topic_constant = 31; // The video referenced in the query. - google.ads.googleads.v14.resources.Video video = 39; + google.ads.googleads.v17.resources.Video video = 39; // The webpage view referenced in the query. - google.ads.googleads.v14.resources.WebpageView webpage_view = 162; + google.ads.googleads.v17.resources.WebpageView webpage_view = 162; // The lead form user submission referenced in the query. - google.ads.googleads.v14.resources.LeadFormSubmissionData + google.ads.googleads.v17.resources.LeadFormSubmissionData lead_form_submission_data = 192; + // The local services lead referenced in the query. + google.ads.googleads.v17.resources.LocalServicesLead local_services_lead = + 210; + + // The local services lead conversationreferenced in the query. + google.ads.googleads.v17.resources.LocalServicesLeadConversation + local_services_lead_conversation = 214; + + // The android privacy shared key google ad group referenced in the query. + google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleAdGroup + android_privacy_shared_key_google_ad_group = 217; + + // The android privacy shared key google campaign referenced in the query. + google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleCampaign + android_privacy_shared_key_google_campaign = 218; + + // The android privacy shared key google network type referenced in the query. + google.ads.googleads.v17.resources.AndroidPrivacySharedKeyGoogleNetworkType + android_privacy_shared_key_google_network_type = 219; + // The metrics. - google.ads.googleads.v14.common.Metrics metrics = 4; + google.ads.googleads.v17.common.Metrics metrics = 4; // The segments. - google.ads.googleads.v14.common.Segments segments = 102; + google.ads.googleads.v17.common.Segments segments = 102; } // Request message for -// [GoogleAdsService.Mutate][google.ads.googleads.v14.services.GoogleAdsService.Mutate]. +// [GoogleAdsService.Mutate][google.ads.googleads.v17.services.GoogleAdsService.Mutate]. message MutateGoogleAdsRequest { // Required. The ID of the customer whose resources are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -1114,12 +1212,12 @@ message MutateGoogleAdsRequest { // or just the resource name should be returned post mutation. The mutable // resource will only be returned if the resource has the appropriate response // field. For example, MutateCampaignResult.campaign. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } // Response message for -// [GoogleAdsService.Mutate][google.ads.googleads.v14.services.GoogleAdsService.Mutate]. +// [GoogleAdsService.Mutate][google.ads.googleads.v17.services.GoogleAdsService.Mutate]. message MutateGoogleAdsResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the @@ -1349,8 +1447,9 @@ message MutateOperation { // A label mutate operation. LabelOperation label_operation = 41; - // A media file mutate operation. - MediaFileOperation media_file_operation = 42; + // A recommendation subscription mutate operation. + RecommendationSubscriptionOperation recommendation_subscription_operation = + 86; // A remarketing action mutate operation. RemarketingActionOperation remarketing_action_operation = 43; @@ -1587,8 +1686,9 @@ message MutateOperationResponse { // The result for the label mutate. MutateLabelResult label_result = 41; - // The result for the media file mutate. - MutateMediaFileResult media_file_result = 42; + // The result for the recommendation subscription mutate. + MutateRecommendationSubscriptionResult recommendation_subscription_result = + 85; // The result for the remarketing action mutate. MutateRemarketingActionResult remarketing_action_result = 43; diff --git a/third_party/googleapis/google/ads/googleads/v17/services/identity_verification_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/identity_verification_service.proto new file mode 100644 index 000000000..d81c32b6e --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/identity_verification_service.proto @@ -0,0 +1,148 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/enums/identity_verification_program.proto"; +import "google/ads/googleads/v17/enums/identity_verification_program_status.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Proto file describing the IdentityVerificatio Service. + +// A service for managing Identity Verification Service. +service IdentityVerificationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Starts Identity Verification for a given verification program type. + // Statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc StartIdentityVerification(StartIdentityVerificationRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}:startIdentityVerification" + body: "*" + }; + option (google.api.method_signature) = "customer_id,verification_program"; + } + + // Returns Identity Verification information. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GetIdentityVerification(GetIdentityVerificationRequest) + returns (GetIdentityVerificationResponse) { + option (google.api.http) = { + get: "/v17/customers/{customer_id=*}/getIdentityVerification" + }; + option (google.api.method_signature) = "customer_id"; + } +} + +// Request message for +// [IdentityVerificationService.StartIdentityVerification]. +message StartIdentityVerificationRequest { + // Required. The Id of the customer for whom we are creating this + // verification. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The verification program type for which we want to start the + // verification. + google.ads.googleads.v17.enums.IdentityVerificationProgramEnum + .IdentityVerificationProgram verification_program = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [IdentityVerificationService.GetIdentityVerification]. +message GetIdentityVerificationRequest { + // Required. The ID of the customer for whom we are requesting verification + // information. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [IdentityVerificationService.GetIdentityVerification]. +message GetIdentityVerificationResponse { + // List of identity verifications for the customer. + repeated IdentityVerification identity_verification = 1; +} + +// An identity verification for a customer. +message IdentityVerification { + // The verification program type. + google.ads.googleads.v17.enums.IdentityVerificationProgramEnum + .IdentityVerificationProgram verification_program = 1; + + // The verification requirement for this verification program for this + // customer. + optional IdentityVerificationRequirement identity_verification_requirement = + 2; + + // Information regarding progress for this verification program for this + // customer. + optional IdentityVerificationProgress verification_progress = 3; +} + +// Information regarding the verification progress for a verification program +// type. +message IdentityVerificationProgress { + // Current Status (PENDING_USER_ACTION, SUCCESS, FAILURE etc) + google.ads.googleads.v17.enums.IdentityVerificationProgramStatusEnum + .IdentityVerificationProgramStatus program_status = 1; + + // The timestamp when the action url will expire in "yyyy-MM-dd HH:mm:ss" + // format. + string invitation_link_expiration_time = 2; + + // Action URL for user to complete verification for the given verification + // program type. + string action_url = 3; +} + +// Information regarding the verification requirement for a verification program +// type. +message IdentityVerificationRequirement { + // The deadline to start verification in "yyyy-MM-dd HH:mm:ss" format. + string verification_start_deadline_time = 1; + + // The deadline to submit verification. + string verification_completion_deadline_time = 2; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/invoice_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/invoice_service.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/services/invoice_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/invoice_service.proto index 6001561ae..6e86d5020 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/invoice_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/invoice_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/month_of_year.proto"; -import "google/ads/googleads/v14/resources/invoice.proto"; +import "google/ads/googleads/v17/enums/month_of_year.proto"; +import "google/ads/googleads/v17/resources/invoice.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "InvoiceServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Invoice service. @@ -51,7 +51,7 @@ service InvoiceService { // [RequestError]() rpc ListInvoices(ListInvoicesRequest) returns (ListInvoicesResponse) { option (google.api.http) = { - get: "/v14/customers/{customer_id=*}/invoices" + get: "/v17/customers/{customer_id=*}/invoices" }; option (google.api.method_signature) = "customer_id,billing_setup,issue_year,issue_month"; @@ -74,13 +74,13 @@ message ListInvoicesRequest { string issue_year = 3 [(google.api.field_behavior) = REQUIRED]; // Required. The issue month to retrieve invoices. - google.ads.googleads.v14.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 + google.ads.googleads.v17.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 [(google.api.field_behavior) = REQUIRED]; } // Response message for -// [InvoiceService.ListInvoices][google.ads.googleads.v14.services.InvoiceService.ListInvoices]. +// [InvoiceService.ListInvoices][google.ads.googleads.v17.services.InvoiceService.ListInvoices]. message ListInvoicesResponse { // The list of invoices that match the billing setup and time period. - repeated google.ads.googleads.v14.resources.Invoice invoices = 1; + repeated google.ads.googleads.v17.resources.Invoice invoices = 1; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_ad_group_keyword_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_ad_group_keyword_service.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_ad_group_keyword_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_ad_group_keyword_service.proto index 3e540ec80..cbf32038a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_ad_group_keyword_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_ad_group_keyword_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/keyword_plan_ad_group_keyword.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_ad_group_keyword.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the keyword plan ad group keyword service. @@ -63,7 +63,7 @@ service KeywordPlanAdGroupKeywordService { rpc MutateKeywordPlanAdGroupKeywords(MutateKeywordPlanAdGroupKeywordsRequest) returns (MutateKeywordPlanAdGroupKeywordsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + post: "/v17/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -71,7 +71,7 @@ service KeywordPlanAdGroupKeywordService { } // Request message for -// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v14.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. +// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. message MutateKeywordPlanAdGroupKeywordsRequest { // Required. The ID of the customer whose Keyword Plan ad group keywords are // being modified. @@ -104,11 +104,11 @@ message KeywordPlanAdGroupKeywordOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // ad group keyword. - google.ads.googleads.v14.resources.KeywordPlanAdGroupKeyword create = 1; + google.ads.googleads.v17.resources.KeywordPlanAdGroupKeyword create = 1; // Update operation: The Keyword Plan ad group keyword is expected to have a // valid resource name. - google.ads.googleads.v14.resources.KeywordPlanAdGroupKeyword update = 2; + google.ads.googleads.v17.resources.KeywordPlanAdGroupKeyword update = 2; // Remove operation: A resource name for the removed Keyword Plan ad group // keyword is expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_ad_group_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_ad_group_service.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_ad_group_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_ad_group_service.proto index eed7dd2e2..cb84a1818 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_ad_group_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_ad_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/keyword_plan_ad_group.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_ad_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the keyword plan ad group service. @@ -61,7 +61,7 @@ service KeywordPlanAdGroupService { rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + post: "/v17/customers/{customer_id=*}/keywordPlanAdGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -69,7 +69,7 @@ service KeywordPlanAdGroupService { } // Request message for -// [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v14.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. +// [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v17.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. message MutateKeywordPlanAdGroupsRequest { // Required. The ID of the customer whose Keyword Plan ad groups are being // modified. @@ -101,11 +101,11 @@ message KeywordPlanAdGroupOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // ad group. - google.ads.googleads.v14.resources.KeywordPlanAdGroup create = 1; + google.ads.googleads.v17.resources.KeywordPlanAdGroup create = 1; // Update operation: The Keyword Plan ad group is expected to have a valid // resource name. - google.ads.googleads.v14.resources.KeywordPlanAdGroup update = 2; + google.ads.googleads.v17.resources.KeywordPlanAdGroup update = 2; // Remove operation: A resource name for the removed Keyword Plan ad group // is expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_campaign_keyword_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_campaign_keyword_service.proto similarity index 89% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_campaign_keyword_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_campaign_keyword_service.proto index 22acafe59..bd4069ccc 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_campaign_keyword_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_campaign_keyword_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/keyword_plan_campaign_keyword.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_campaign_keyword.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the keyword plan campaign keyword service. @@ -62,7 +62,7 @@ service KeywordPlanCampaignKeywordService { MutateKeywordPlanCampaignKeywordsRequest) returns (MutateKeywordPlanCampaignKeywordsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + post: "/v17/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -70,7 +70,7 @@ service KeywordPlanCampaignKeywordService { } // Request message for -// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v14.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. +// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. message MutateKeywordPlanCampaignKeywordsRequest { // Required. The ID of the customer whose campaign keywords are being // modified. @@ -103,11 +103,11 @@ message KeywordPlanCampaignKeywordOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // campaign keyword. - google.ads.googleads.v14.resources.KeywordPlanCampaignKeyword create = 1; + google.ads.googleads.v17.resources.KeywordPlanCampaignKeyword create = 1; // Update operation: The Keyword Plan campaign keyword expected to have a // valid resource name. - google.ads.googleads.v14.resources.KeywordPlanCampaignKeyword update = 2; + google.ads.googleads.v17.resources.KeywordPlanCampaignKeyword update = 2; // Remove operation: A resource name for the removed Keyword Plan campaign // keywords expected in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_campaign_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_campaign_service.proto similarity index 87% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_campaign_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_campaign_service.proto index 753dffc4e..42e6823cf 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_campaign_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_campaign_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/keyword_plan_campaign.proto"; +import "google/ads/googleads/v17/resources/keyword_plan_campaign.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the keyword plan campaign service. @@ -62,7 +62,7 @@ service KeywordPlanCampaignService { rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + post: "/v17/customers/{customer_id=*}/keywordPlanCampaigns:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -70,7 +70,7 @@ service KeywordPlanCampaignService { } // Request message for -// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v14.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. +// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v17.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. message MutateKeywordPlanCampaignsRequest { // Required. The ID of the customer whose Keyword Plan campaigns are being // modified. @@ -102,11 +102,11 @@ message KeywordPlanCampaignOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // campaign. - google.ads.googleads.v14.resources.KeywordPlanCampaign create = 1; + google.ads.googleads.v17.resources.KeywordPlanCampaign create = 1; // Update operation: The Keyword Plan campaign is expected to have a valid // resource name. - google.ads.googleads.v14.resources.KeywordPlanCampaign update = 2; + google.ads.googleads.v17.resources.KeywordPlanCampaign update = 2; // Remove operation: A resource name for the removed Keyword Plan campaign // is expected, in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_idea_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_idea_service.proto similarity index 88% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_idea_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_idea_service.proto index a9ff2edaa..1f43bbec9 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_idea_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_idea_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/common/keyword_plan_common.proto"; -import "google/ads/googleads/v14/enums/keyword_match_type.proto"; -import "google/ads/googleads/v14/enums/keyword_plan_keyword_annotation.proto"; -import "google/ads/googleads/v14/enums/keyword_plan_network.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/dates.proto"; +import "google/ads/googleads/v17/common/keyword_plan_common.proto"; +import "google/ads/googleads/v17/enums/keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_keyword_annotation.proto"; +import "google/ads/googleads/v17/enums/keyword_plan_network.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanIdeaServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the keyword plan idea service. @@ -56,7 +56,7 @@ service KeywordPlanIdeaService { rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateKeywordIdeas" + post: "/v17/customers/{customer_id=*}:generateKeywordIdeas" body: "*" }; } @@ -74,7 +74,7 @@ service KeywordPlanIdeaService { rpc GenerateKeywordHistoricalMetrics(GenerateKeywordHistoricalMetricsRequest) returns (GenerateKeywordHistoricalMetricsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + post: "/v17/customers/{customer_id=*}:generateKeywordHistoricalMetrics" body: "*" }; } @@ -93,7 +93,7 @@ service KeywordPlanIdeaService { rpc GenerateAdGroupThemes(GenerateAdGroupThemesRequest) returns (GenerateAdGroupThemesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateAdGroupThemes" + post: "/v17/customers/{customer_id=*}:generateAdGroupThemes" body: "*" }; } @@ -112,14 +112,14 @@ service KeywordPlanIdeaService { rpc GenerateKeywordForecastMetrics(GenerateKeywordForecastMetricsRequest) returns (GenerateKeywordForecastMetricsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateKeywordForecastMetrics" + post: "/v17/customers/{customer_id=*}:generateKeywordForecastMetrics" body: "*" }; } } // Request message for -// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. message GenerateKeywordIdeasRequest { // The ID of the customer with the recommendation. string customer_id = 1; @@ -155,19 +155,19 @@ message GenerateKeywordIdeasRequest { // Targeting network. // If not set, Google Search And Partners Network will be used. - google.ads.googleads.v14.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v17.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9; // The keyword annotations to include in response. - repeated google.ads.googleads.v14.enums.KeywordPlanKeywordAnnotationEnum + repeated google.ads.googleads.v17.enums.KeywordPlanKeywordAnnotationEnum .KeywordPlanKeywordAnnotation keyword_annotation = 17; // The aggregate fields to include in response. - google.ads.googleads.v14.common.KeywordPlanAggregateMetrics + google.ads.googleads.v17.common.KeywordPlanAggregateMetrics aggregate_metrics = 16; // The options for historical metrics data. - google.ads.googleads.v14.common.HistoricalMetricsOptions + google.ads.googleads.v17.common.HistoricalMetricsOptions historical_metrics_options = 18; // The type of seed to generate keyword ideas. @@ -216,13 +216,13 @@ message UrlSeed { } // Response message for -// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. message GenerateKeywordIdeaResponse { // Results of generating keyword ideas. repeated GenerateKeywordIdeaResult results = 1; // The aggregate metrics for all keyword ideas. - google.ads.googleads.v14.common.KeywordPlanAggregateMetricResults + google.ads.googleads.v17.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 4; // Pagination token used to retrieve the next page of results. @@ -244,12 +244,12 @@ message GenerateKeywordIdeaResult { optional string text = 5; // The historical metrics for the keyword. - google.ads.googleads.v14.common.KeywordPlanHistoricalMetrics + google.ads.googleads.v17.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3; // The annotations for the keyword. // The annotation data is only provided if requested. - google.ads.googleads.v14.common.KeywordAnnotations keyword_annotations = 6; + google.ads.googleads.v17.common.KeywordAnnotations keyword_annotations = 6; // The list of close variants from the requested keywords that // are combined into this GenerateKeywordIdeaResult. See @@ -259,7 +259,7 @@ message GenerateKeywordIdeaResult { } // Request message for -// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. message GenerateKeywordHistoricalMetricsRequest { // The ID of the customer with the recommendation. string customer_id = 1; @@ -287,26 +287,26 @@ message GenerateKeywordHistoricalMetricsRequest { // Targeting network. // If not set, Google Search And Partners Network will be used. - google.ads.googleads.v14.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v17.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 7; // The aggregate fields to include in response. - google.ads.googleads.v14.common.KeywordPlanAggregateMetrics + google.ads.googleads.v17.common.KeywordPlanAggregateMetrics aggregate_metrics = 8; // The options for historical metrics data. - google.ads.googleads.v14.common.HistoricalMetricsOptions + google.ads.googleads.v17.common.HistoricalMetricsOptions historical_metrics_options = 3; } // Response message for -// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. message GenerateKeywordHistoricalMetricsResponse { // List of keywords and their historical metrics. repeated GenerateKeywordHistoricalMetricsResult results = 1; // The aggregate metrics for all keywords. - google.ads.googleads.v14.common.KeywordPlanAggregateMetricResults + google.ads.googleads.v17.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; } @@ -325,12 +325,12 @@ message GenerateKeywordHistoricalMetricsResult { repeated string close_variants = 3; // The historical metrics for text and its close variants - google.ads.googleads.v14.common.KeywordPlanHistoricalMetrics keyword_metrics = + google.ads.googleads.v17.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; } // Request message for -// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. +// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. message GenerateAdGroupThemesRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -344,7 +344,7 @@ message GenerateAdGroupThemesRequest { } // Response message for -// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v14.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. +// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. message GenerateAdGroupThemesResponse { // A list of suggested AdGroup/keyword pairings. repeated AdGroupKeywordSuggestion ad_group_keyword_suggestions = 1; @@ -362,7 +362,7 @@ message AdGroupKeywordSuggestion { string suggested_keyword_text = 2; // The suggested keyword match type. - google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v17.enums.KeywordMatchTypeEnum.KeywordMatchType suggested_match_type = 3; // The suggested AdGroup for the keyword. @@ -406,7 +406,7 @@ message GenerateKeywordForecastMetricsRequest { // end date must be within 1 year from today. The reference timezone used is // the one of the Google Ads account belonging to the customer. If not set, a // default date range from next Sunday to the following Saturday will be used. - google.ads.googleads.v14.common.DateRange forecast_period = 3; + google.ads.googleads.v17.common.DateRange forecast_period = 3; // Required. The campaign used in the forecast. CampaignToForecast campaign = 4 [(google.api.field_behavior) = REQUIRED]; @@ -440,12 +440,12 @@ message CampaignToForecast { repeated CriterionBidModifier geo_modifiers = 2; // Required. The network used for targeting. - google.ads.googleads.v14.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v17.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 3 [(google.api.field_behavior) = REQUIRED]; // The list of negative keywords to be used in the campaign when doing the // forecast. - repeated google.ads.googleads.v14.common.KeywordInfo negative_keywords = 4; + repeated google.ads.googleads.v17.common.KeywordInfo negative_keywords = 4; // Required. The bidding strategy for the campaign. CampaignBiddingStrategy bidding_strategy = 5 @@ -475,13 +475,13 @@ message ForecastAdGroup { // The details of the keyword. You should specify both the keyword text and // match type. - repeated google.ads.googleads.v14.common.KeywordInfo negative_keywords = 3; + repeated google.ads.googleads.v17.common.KeywordInfo negative_keywords = 3; } // A biddable keyword part of an ad group. message BiddableKeyword { // Required. Keyword. Must have text and match type. - google.ads.googleads.v14.common.KeywordInfo keyword = 1 + google.ads.googleads.v17.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = REQUIRED]; // A max cpc bid in micros that overrides the ad group level max cpc bid in diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_service.proto index 9197cc812..2825d4ed4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_plan_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_plan_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/keyword_plan.proto"; +import "google/ads/googleads/v17/resources/keyword_plan.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the keyword plan service. @@ -60,7 +60,7 @@ service KeywordPlanService { rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/keywordPlans:mutate" + post: "/v17/customers/{customer_id=*}/keywordPlans:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -68,7 +68,7 @@ service KeywordPlanService { } // Request message for -// [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v14.services.KeywordPlanService.MutateKeywordPlans]. +// [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v17.services.KeywordPlanService.MutateKeywordPlans]. message MutateKeywordPlansRequest { // Required. The ID of the customer whose keyword plans are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -97,11 +97,11 @@ message KeywordPlanOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new keyword plan. - google.ads.googleads.v14.resources.KeywordPlan create = 1; + google.ads.googleads.v17.resources.KeywordPlan create = 1; // Update operation: The keyword plan is expected to have a valid resource // name. - google.ads.googleads.v14.resources.KeywordPlan update = 2; + google.ads.googleads.v17.resources.KeywordPlan update = 2; // Remove operation: A resource name for the removed keyword plan is // expected in this format: diff --git a/third_party/googleapis/google/ads/googleads/v14/services/keyword_theme_constant_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/keyword_theme_constant_service.proto similarity index 79% rename from third_party/googleapis/google/ads/googleads/v14/services/keyword_theme_constant_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/keyword_theme_constant_service.proto index 4d0825b10..04e672138 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/keyword_theme_constant_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/keyword_theme_constant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v17/resources/keyword_theme_constant.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordThemeConstantServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Smart Campaign keyword theme constant service. @@ -48,14 +48,14 @@ service KeywordThemeConstantService { rpc SuggestKeywordThemeConstants(SuggestKeywordThemeConstantsRequest) returns (SuggestKeywordThemeConstantsResponse) { option (google.api.http) = { - post: "/v14/keywordThemeConstants:suggest" + post: "/v17/keywordThemeConstants:suggest" body: "*" }; } } // Request message for -// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v14.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v17.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. message SuggestKeywordThemeConstantsRequest { // The query text of a keyword theme that will be used to map to similar // keyword themes. For example, "plumber" or "roofer". @@ -71,9 +71,9 @@ message SuggestKeywordThemeConstantsRequest { } // Response message for -// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v14.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v17.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. message SuggestKeywordThemeConstantsResponse { // Smart Campaign keyword theme suggestions. - repeated google.ads.googleads.v14.resources.KeywordThemeConstant + repeated google.ads.googleads.v17.resources.KeywordThemeConstant keyword_theme_constants = 1; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/label_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/label_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/label_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/label_service.proto index 19e5d41eb..ae89b2515 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/label_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/label.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "LabelServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to manage labels. service LabelService { @@ -67,7 +67,7 @@ service LabelService { // [StringLengthError]() rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/labels:mutate" + post: "/v17/customers/{customer_id=*}/labels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -75,7 +75,7 @@ service LabelService { } // Request message for -// [LabelService.MutateLabels][google.ads.googleads.v14.services.LabelService.MutateLabels]. +// [LabelService.MutateLabels][google.ads.googleads.v17.services.LabelService.MutateLabels]. message MutateLabelsRequest { // Required. ID of the customer whose labels are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -96,7 +96,7 @@ message MutateLabelsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -108,10 +108,10 @@ message LabelOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new label. - google.ads.googleads.v14.resources.Label create = 1; + google.ads.googleads.v17.resources.Label create = 1; // Update operation: The label is expected to have a valid resource name. - google.ads.googleads.v14.resources.Label update = 2; + google.ads.googleads.v17.resources.Label update = 2; // Remove operation: A resource name for the label being removed, in // this format: @@ -144,5 +144,5 @@ message MutateLabelResult { // The mutated label with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.Label label = 2; + google.ads.googleads.v17.resources.Label label = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v17/services/local_services_lead_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/local_services_lead_service.proto new file mode 100644 index 000000000..fcd10cd8b --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/local_services_lead_service.proto @@ -0,0 +1,96 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// This service allows management of LocalServicesLead resources. +service LocalServicesLeadService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // RPC to append Local Services Lead Conversation resources to Local Services + // Lead resources. + rpc AppendLeadConversation(AppendLeadConversationRequest) + returns (AppendLeadConversationResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/localServices:appendLeadConversation" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversations"; + } +} + +// Request message for +// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v17.services.LocalServicesLeadService.AppendLeadConversation]. +message AppendLeadConversationRequest { + // Required. The Id of the customer which owns the leads onto which the + // conversations will be appended. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Conversations that are being appended. + repeated Conversation conversations = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v17.services.LocalServicesLeadService.AppendLeadConversation]. +message AppendLeadConversationResponse { + // Required. List of append conversation operation results. + repeated ConversationOrError responses = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Details of the conversation that needs to be appended. +message Conversation { + // Required. The resource name of the local services lead that the + // conversation should be applied to. + string local_services_lead = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesLead" + } + ]; + + // Required. Text message that user wanted to append to lead. + string text = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Result of the append conversation operation. +message ConversationOrError { + // Append operation response + oneof append_lead_conversation_response { + // The resource name of the appended local services lead conversation. + string local_services_lead_conversation = 1; + + // Failure status when the request could not be processed. + google.rpc.Status partial_failure_error = 2; + } +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/offline_user_data_job_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/offline_user_data_job_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/offline_user_data_job_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/offline_user_data_job_service.proto index 5ec24361c..8371403d4 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/offline_user_data_job_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/offline_user_data_job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/offline_user_data.proto"; -import "google/ads/googleads/v14/resources/offline_user_data_job.proto"; +import "google/ads/googleads/v17/common/offline_user_data.proto"; +import "google/ads/googleads/v17/resources/offline_user_data_job.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the OfflineUserDataJobService. @@ -58,7 +58,7 @@ service OfflineUserDataJobService { rpc CreateOfflineUserDataJob(CreateOfflineUserDataJobRequest) returns (CreateOfflineUserDataJobResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/offlineUserDataJobs:create" + post: "/v17/customers/{customer_id=*}/offlineUserDataJobs:create" body: "*" }; option (google.api.method_signature) = "customer_id,job"; @@ -80,7 +80,7 @@ service OfflineUserDataJobService { rpc AddOfflineUserDataJobOperations(AddOfflineUserDataJobOperationsRequest) returns (AddOfflineUserDataJobOperationsResponse) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + post: "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" body: "*" }; option (google.api.method_signature) = "resource_name,operations"; @@ -103,26 +103,26 @@ service OfflineUserDataJobService { rpc RunOfflineUserDataJob(RunOfflineUserDataJobRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/offlineUserDataJobs/*}:run" + post: "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:run" body: "*" }; option (google.api.method_signature) = "resource_name"; option (google.longrunning.operation_info) = { response_type: "google.protobuf.Empty" - metadata_type: "google.ads.googleads.v14.resources.OfflineUserDataJobMetadata" + metadata_type: "google.ads.googleads.v17.resources.OfflineUserDataJobMetadata" }; } } // Request message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v14.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v17.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. message CreateOfflineUserDataJobRequest { // Required. The ID of the customer for which to create an offline user data // job. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The offline user data job to be created. - google.ads.googleads.v14.resources.OfflineUserDataJob job = 2 + google.ads.googleads.v17.resources.OfflineUserDataJob job = 2 [(google.api.field_behavior) = REQUIRED]; // If true, the request is validated but not executed. Only errors are @@ -135,7 +135,7 @@ message CreateOfflineUserDataJobRequest { } // Response message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v14.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v17.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. message CreateOfflineUserDataJobResponse { // The resource name of the OfflineUserDataJob. string resource_name = 1 [(google.api.resource_reference) = { @@ -144,7 +144,7 @@ message CreateOfflineUserDataJobResponse { } // Request message for -// [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v14.services.OfflineUserDataJobService.RunOfflineUserDataJob]. +// [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v17.services.OfflineUserDataJobService.RunOfflineUserDataJob]. message RunOfflineUserDataJobRequest { // Required. The resource name of the OfflineUserDataJob to run. string resource_name = 1 [ @@ -160,7 +160,7 @@ message RunOfflineUserDataJobRequest { } // Request message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v14.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v17.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. message AddOfflineUserDataJobOperationsRequest { // Required. The resource name of the OfflineUserDataJob. string resource_name = 1 [ @@ -193,11 +193,11 @@ message OfflineUserDataJobOperation { oneof operation { // Add the provided data to the transaction. Data cannot be retrieved after // being uploaded. - google.ads.googleads.v14.common.UserData create = 1; + google.ads.googleads.v17.common.UserData create = 1; // Remove the provided data from the transaction. Data cannot be retrieved // after being uploaded. - google.ads.googleads.v14.common.UserData remove = 2; + google.ads.googleads.v17.common.UserData remove = 2; // Remove all previously provided data. This is only supported for Customer // Match. @@ -206,7 +206,7 @@ message OfflineUserDataJobOperation { } // Response message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v14.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v17.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. message AddOfflineUserDataJobOperationsResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the diff --git a/third_party/googleapis/google/ads/googleads/v14/services/payments_account_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/payments_account_service.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/services/payments_account_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/payments_account_service.proto index eccbda7f1..e2ad14eb0 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/payments_account_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/payments_account_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/payments_account.proto"; +import "google/ads/googleads/v17/resources/payments_account.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "PaymentsAccountServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the payments account service. @@ -53,7 +53,7 @@ service PaymentsAccountService { rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) { option (google.api.http) = { - get: "/v14/customers/{customer_id=*}/paymentsAccounts" + get: "/v17/customers/{customer_id=*}/paymentsAccounts" }; option (google.api.method_signature) = "customer_id"; } @@ -67,9 +67,9 @@ message ListPaymentsAccountsRequest { } // Response message for -// [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v14.services.PaymentsAccountService.ListPaymentsAccounts]. +// [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v17.services.PaymentsAccountService.ListPaymentsAccounts]. message ListPaymentsAccountsResponse { // The list of accessible payments accounts. - repeated google.ads.googleads.v14.resources.PaymentsAccount + repeated google.ads.googleads.v17.resources.PaymentsAccount payments_accounts = 1; } diff --git a/third_party/googleapis/google/ads/googleads/v17/services/product_link_invitation_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/product_link_invitation_service.proto new file mode 100644 index 000000000..efc6feca0 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/product_link_invitation_service.proto @@ -0,0 +1,145 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/enums/product_link_invitation_status.proto"; +import "google/ads/googleads/v17/resources/product_link_invitation.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ProductLinkInvitationServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// This service allows management of product link invitations from Google Ads +// accounts to other accounts. +service ProductLinkInvitationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a product link invitation. + rpc CreateProductLinkInvitation(CreateProductLinkInvitationRequest) + returns (CreateProductLinkInvitationResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/productLinkInvitations:create" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,product_link_invitation"; + } + + // Update a product link invitation. + rpc UpdateProductLinkInvitation(UpdateProductLinkInvitationRequest) + returns (UpdateProductLinkInvitationResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/productLinkInvitations:update" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,product_link_invitation_status,resource_name"; + } + + // Remove a product link invitation. + rpc RemoveProductLinkInvitation(RemoveProductLinkInvitationRequest) + returns (RemoveProductLinkInvitationResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/productLinkInvitations:remove" + body: "*" + }; + option (google.api.method_signature) = "customer_id,resource_name"; + } +} + +// Request message for +// [ProductLinkInvitationService.CreateProductLinkInvitation][google.ads.googleads.v17.services.ProductLinkInvitationService.CreateProductLinkInvitation]. +message CreateProductLinkInvitationRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The product link invitation to be created. + google.ads.googleads.v17.resources.ProductLinkInvitation + product_link_invitation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for product link invitation create. +message CreateProductLinkInvitationResponse { + // Resource name of the product link invitation. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + }]; +} + +// Request message for +// [ProductLinkInvitationService.UpdateProductLinkInvitation][google.ads.googleads.v17.services.ProductLinkInvitationService.UpdateProductLinkInvitation]. +message UpdateProductLinkInvitationRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The product link invitation to be created. + google.ads.googleads.v17.enums.ProductLinkInvitationStatusEnum + .ProductLinkInvitationStatus product_link_invitation_status = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Resource name of the product link invitation. + string resource_name = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + } + ]; +} + +// Response message for product link invitation update. +message UpdateProductLinkInvitationResponse { + // Result of the update. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + }]; +} + +// Request message for +// [ProductLinkinvitationService.RemoveProductLinkInvitation][]. +message RemoveProductLinkInvitationRequest { + // Required. The ID of the product link invitation being removed. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the product link invitation being removed. + // expected, in this format: + // + // ` ` + string resource_name = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + } + ]; +} + +// Response message for product link invitation removeal. +message RemoveProductLinkInvitationResponse { + // Result for the remove request. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + }]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/product_link_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/product_link_service.proto similarity index 83% rename from third_party/googleapis/google/ads/googleads/v14/services/product_link_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/product_link_service.proto index ac01e77aa..e906e4167 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/product_link_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/product_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/product_link.proto"; +import "google/ads/googleads/v17/resources/product_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ProductLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // This service allows management of links between a Google // Ads customer and another product. @@ -52,7 +52,7 @@ service ProductLinkService { rpc CreateProductLink(CreateProductLinkRequest) returns (CreateProductLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/productLinks:create" + post: "/v17/customers/{customer_id=*}/productLinks:create" body: "*" }; option (google.api.method_signature) = "customer_id,product_link"; @@ -72,7 +72,7 @@ service ProductLinkService { rpc RemoveProductLink(RemoveProductLinkRequest) returns (RemoveProductLinkResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/productLinks:remove" + post: "/v17/customers/{customer_id=*}/productLinks:remove" body: "*" }; option (google.api.method_signature) = "customer_id,resource_name"; @@ -80,18 +80,18 @@ service ProductLinkService { } // Request message for -// [ProductLinkService.CreateProductLink][google.ads.googleads.v14.services.ProductLinkService.CreateProductLink]. +// [ProductLinkService.CreateProductLink][google.ads.googleads.v17.services.ProductLinkService.CreateProductLink]. message CreateProductLinkRequest { // Required. The ID of the customer for which the product link is created. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The product link to be created. - google.ads.googleads.v14.resources.ProductLink product_link = 2 + google.ads.googleads.v17.resources.ProductLink product_link = 2 [(google.api.field_behavior) = REQUIRED]; } // Response message for -// [ProductLinkService.CreateProductLink][google.ads.googleads.v14.services.ProductLinkService.CreateProductLink]. +// [ProductLinkService.CreateProductLink][google.ads.googleads.v17.services.ProductLinkService.CreateProductLink]. message CreateProductLinkResponse { // Returned for successful operations. Resource name of the product link. string resource_name = 1 [(google.api.resource_reference) = { @@ -100,7 +100,7 @@ message CreateProductLinkResponse { } // Request message for -// [ProductLinkService.RemoveProductLink][google.ads.googleads.v14.services.ProductLinkService.RemoveProductLink]. +// [ProductLinkService.RemoveProductLink][google.ads.googleads.v17.services.ProductLinkService.RemoveProductLink]. message RemoveProductLinkRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/third_party/googleapis/google/ads/googleads/v14/services/reach_plan_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/reach_plan_service.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/services/reach_plan_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/reach_plan_service.proto index 621419668..a236e976a 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/reach_plan_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/reach_plan_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/common/dates.proto"; -import "google/ads/googleads/v14/enums/frequency_cap_time_unit.proto"; -import "google/ads/googleads/v14/enums/reach_plan_age_range.proto"; -import "google/ads/googleads/v14/enums/reach_plan_network.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/dates.proto"; +import "google/ads/googleads/v17/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v17/enums/reach_plan_age_range.proto"; +import "google/ads/googleads/v17/enums/reach_plan_network.proto"; +import "google/ads/googleads/v17/enums/reach_plan_surface.proto"; +import "google/ads/googleads/v17/enums/target_frequency_time_unit.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ReachPlanServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the reach plan service. @@ -57,7 +59,7 @@ service ReachPlanService { rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { option (google.api.http) = { - post: "/v14:listPlannableLocations" + post: "/v17:listPlannableLocations" body: "*" }; } @@ -75,7 +77,7 @@ service ReachPlanService { rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { option (google.api.http) = { - post: "/v14:listPlannableProducts" + post: "/v17:listPlannableProducts" body: "*" }; option (google.api.method_signature) = "plannable_location_id"; @@ -96,7 +98,7 @@ service ReachPlanService { rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:generateReachForecast" + post: "/v17/customers/{customer_id=*}:generateReachForecast" body: "*" }; option (google.api.method_signature) = @@ -105,7 +107,7 @@ service ReachPlanService { } // Request message for -// [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. +// [ReachPlanService.ListPlannableLocations][google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations]. message ListPlannableLocationsRequest {} // The list of plannable locations. @@ -128,7 +130,7 @@ message PlannableLocation { // The parent country (not present if location is a country). // If present, will always be a GeoTargetConstant ID. Additional information // such as country name is provided by - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations] + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations] // or GoogleAdsService.Search/SearchStream. optional int64 parent_country_id = 6; @@ -144,7 +146,7 @@ message PlannableLocation { message ListPlannableProductsRequest { // Required. The ID of the selected location for planning. To list the // available plannable location IDs use - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations]. string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -159,7 +161,7 @@ message ProductMetadata { // The code associated with the ad product (for example: BUMPER, // TRUEVIEW_IN_STREAM). // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts]. optional string plannable_product_code = 4; // The name associated with the ad product. @@ -175,28 +177,31 @@ message PlannableTargeting { // reported. Actual targeting is computed by mapping this age range onto // standard Google common.AgeRangeInfo values. repeated - google.ads.googleads.v14.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange + google.ads.googleads.v17.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; // Targetable genders for the ad product. - repeated google.ads.googleads.v14.common.GenderInfo genders = 2; + repeated google.ads.googleads.v17.common.GenderInfo genders = 2; // Targetable devices for the ad product. // TABLET device targeting is automatically applied to reported metrics // when MOBILE targeting is selected for CPM_MASTHEAD, // GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products. - repeated google.ads.googleads.v14.common.DeviceInfo devices = 3; + repeated google.ads.googleads.v17.common.DeviceInfo devices = 3; // Targetable networks for the ad product. - repeated google.ads.googleads.v14.enums.ReachPlanNetworkEnum.ReachPlanNetwork + repeated google.ads.googleads.v17.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; // Targetable YouTube Select Lineups for the ad product. repeated YouTubeSelectLineUp youtube_select_lineups = 5; + + // Targetable surface combinations for the ad product. + SurfaceTargetingCombinations surface_targeting = 6; } // Request message for -// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v14.services.ReachPlanService.GenerateReachForecast]. +// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v17.services.ReachPlanService.GenerateReachForecast]. message GenerateReachForecastRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -283,7 +288,7 @@ message FrequencyCap { int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; // Required. The type of time unit. - google.ads.googleads.v14.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit + google.ads.googleads.v17.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -291,7 +296,7 @@ message FrequencyCap { message Targeting { // The ID of the selected location. Plannable location IDs can be // obtained from - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations]. // // Requests must set either this field or `plannable_location_ids`. // @@ -305,31 +310,31 @@ message Targeting { // `parent_country_id`. Planning for more than `parent_county` is not // supported. Plannable location IDs and their `parent_country_id` can be // obtained from - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v14.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations]. // // Requests must set either this field or `plannable_location_id`. repeated string plannable_location_ids = 8; // Targeted age range. // An unset value is equivalent to targeting all ages. - google.ads.googleads.v14.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange + google.ads.googleads.v17.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; // Targeted genders. // An unset value is equivalent to targeting MALE and FEMALE. - repeated google.ads.googleads.v14.common.GenderInfo genders = 3; + repeated google.ads.googleads.v17.common.GenderInfo genders = 3; // Targeted devices. // If not specified, targets all applicable devices. Applicable devices vary // by product and region and can be obtained from - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. - repeated google.ads.googleads.v14.common.DeviceInfo devices = 4; + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts]. + repeated google.ads.googleads.v17.common.DeviceInfo devices = 4; // Targetable network for the ad product. // If not specified, targets all applicable networks. Applicable networks vary // by product and region and can be obtained from - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. - google.ads.googleads.v14.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts]. + google.ads.googleads.v17.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; // Targeted audiences. @@ -350,7 +355,7 @@ message CampaignDuration { // date range must be <= 92 days long. // // This field cannot be combined with the duration_in_days field. - google.ads.googleads.v14.common.DateRange date_range = 3; + google.ads.googleads.v17.common.DateRange date_range = 3; } // A product being planned for reach. @@ -358,7 +363,7 @@ message PlannedProduct { // Required. Selected product for planning. // The code associated with the ad product (for example: Trueview, Bumper). // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts]. optional string plannable_product_code = 3 [(google.api.field_behavior) = REQUIRED]; @@ -369,7 +374,7 @@ message PlannedProduct { // Targeting settings for the selected product. // To list the available targeting for each product use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v14.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts]. AdvancedProductTargeting advanced_product_targeting = 5; } @@ -459,6 +464,14 @@ message Forecast { // impressions that may fall outside the specified Targeting, due to // insufficient information on signed-in users. optional int64 total_coview_impressions = 14; + + // Number of ad views forecasted for the specified product and targeting. + // A view is counted when a viewer views a larger portion or the entirety of + // an ad beyond an impression. + // + // See https://support.google.com/google-ads/answer/2375431 for + // more information on views. + optional int64 views = 15; } // The forecasted allocation and traffic metrics for a specific product @@ -525,6 +538,22 @@ message PlannedProductForecast { // impressions that may fall outside the specified Targeting, due to // insufficient information on signed-in users. optional int64 total_coview_impressions = 9; + + // The number of times per selected time unit a user will see an ad, averaged + // over the number of time units in the forecast length. This field will only + // be populated for a Target Frequency campaign. + // + // See https://support.google.com/google-ads/answer/12400225 for more + // information about Target Frequency campaigns. + optional double average_frequency = 10; + + // Number of ad views forecasted for the specified product and targeting. + // A view is counted when a viewer views a larger portion or the entirety of + // an ad beyond an impression. + // + // See https://support.google.com/google-ads/answer/2375431 for + // more information on views. + optional int64 views = 11; } // Audience metrics for the planned products. @@ -533,6 +562,7 @@ message PlannedProductForecast { // - Location // - PlannableAgeRange // - Gender +// - AudienceTargeting (only for youtube_audience_size) message OnTargetAudienceMetrics { // Reference audience size matching the considered targeting for YouTube. optional int64 youtube_audience_size = 3; @@ -581,11 +611,21 @@ message ForecastMetricOptions { // Audience targeting for reach forecast. message AudienceTargeting { // List of audiences based on user interests to be targeted. - repeated google.ads.googleads.v14.common.UserInterestInfo user_interest = 1; + repeated google.ads.googleads.v17.common.UserInterestInfo user_interest = 1; } // Advanced targeting settings for products. message AdvancedProductTargeting { + // Surface targeting settings for this product. + SurfaceTargeting surface_targeting_settings = 2; + + // Settings for a Target frequency campaign. Must be set when selecting the + // TARGET_FREQUENCY product. + // + // See https://support.google.com/google-ads/answer/12400225 for more + // information about Target Frequency campaigns. + TargetFrequencySettings target_frequency_settings = 3; + // Targeting options for this product. oneof advanced_targeting { // Settings for YouTube Select targeting. @@ -607,3 +647,32 @@ message YouTubeSelectLineUp { // The unique name of the YouTube Select Lineup. string lineup_name = 2; } + +// The surface targeting combinations available for an ad product. +message SurfaceTargetingCombinations { + // Default surface targeting applied to the ad product. + SurfaceTargeting default_targeting = 1; + + // Available surface target combinations for the ad product. + repeated SurfaceTargeting available_targeting_combinations = 2; +} + +// Container for surfaces for a product. Surfaces refer to the available types +// of ad inventories such as In-Feed, In-Stream, and Shorts. +message SurfaceTargeting { + // List of surfaces available to target. + repeated google.ads.googleads.v17.enums.ReachPlanSurfaceEnum.ReachPlanSurface + surfaces = 1; +} + +// Target Frequency settings for a supported product. +message TargetFrequencySettings { + // Required. The time unit used to describe the time frame for + // target_frequency. + google.ads.googleads.v17.enums.TargetFrequencyTimeUnitEnum + .TargetFrequencyTimeUnit time_unit = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The target frequency goal per selected time unit. + int32 target_frequency = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/recommendation_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/recommendation_service.proto similarity index 61% rename from third_party/googleapis/google/ads/googleads/v14/services/recommendation_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/recommendation_service.proto index e59edf619..7b47c1925 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/recommendation_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/recommendation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,33 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; - -import "google/ads/googleads/v14/common/extensions.proto"; -import "google/ads/googleads/v14/enums/keyword_match_type.proto"; -import "google/ads/googleads/v14/resources/ad.proto"; -import "google/ads/googleads/v14/resources/asset.proto"; +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/common/extensions.proto"; +import "google/ads/googleads/v17/enums/ad_group_type.proto"; +import "google/ads/googleads/v17/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v17/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v17/enums/conversion_tracking_status_enum.proto"; +import "google/ads/googleads/v17/enums/keyword_match_type.proto"; +import "google/ads/googleads/v17/enums/recommendation_type.proto"; +import "google/ads/googleads/v17/resources/ad.proto"; +import "google/ads/googleads/v17/resources/asset.proto"; +import "google/ads/googleads/v17/resources/recommendation.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "RecommendationServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Recommendation service. @@ -59,7 +66,7 @@ service RecommendationService { rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/recommendations:apply" + post: "/v17/customers/{customer_id=*}/recommendations:apply" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,15 +85,35 @@ service RecommendationService { rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/recommendations:dismiss" + post: "/v17/customers/{customer_id=*}/recommendations:dismiss" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; } + + // Generates Recommendations based off the requested recommendation_types. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + rpc GenerateRecommendations(GenerateRecommendationsRequest) + returns (GenerateRecommendationsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/recommendations:generate" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,recommendation_types,advertising_channel_type"; + } } // Request message for -// [RecommendationService.ApplyRecommendation][google.ads.googleads.v14.services.RecommendationService.ApplyRecommendation]. +// [RecommendationService.ApplyRecommendation][google.ads.googleads.v17.services.RecommendationService.ApplyRecommendation]. message ApplyRecommendationRequest { // Required. The ID of the customer with the recommendation. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -130,7 +157,7 @@ message ApplyRecommendationOperation { message TextAdParameters { // New ad to add to recommended ad group. All necessary fields need to be // set in this message. This is a required field. - google.ads.googleads.v14.resources.Ad ad = 1; + google.ads.googleads.v17.resources.Ad ad = 1; } // Parameters to use when applying keyword recommendation. @@ -139,7 +166,7 @@ message ApplyRecommendationOperation { optional string ad_group = 4; // The match type of the keyword. This is a required field. - google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v17.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; // Optional, CPC bid to set for the keyword. If not set, keyword will use @@ -171,20 +198,20 @@ message ApplyRecommendationOperation { // Parameters to use when applying callout extension recommendation. message CalloutExtensionParameters { // Callout extensions to be added. This is a required field. - repeated google.ads.googleads.v14.common.CalloutFeedItem + repeated google.ads.googleads.v17.common.CalloutFeedItem callout_extensions = 1; } // Parameters to use when applying call extension recommendation. message CallExtensionParameters { // Call extensions to be added. This is a required field. - repeated google.ads.googleads.v14.common.CallFeedItem call_extensions = 1; + repeated google.ads.googleads.v17.common.CallFeedItem call_extensions = 1; } // Parameters to use when applying sitelink recommendation. message SitelinkExtensionParameters { // Sitelinks to be added. This is a required field. - repeated google.ads.googleads.v14.common.SitelinkFeedItem + repeated google.ads.googleads.v17.common.SitelinkFeedItem sitelink_extensions = 1; } @@ -240,7 +267,7 @@ message ApplyRecommendationOperation { // The assets to create and attach to a scope. This may be combined with // existing_assets in the same call. - repeated google.ads.googleads.v14.resources.Asset new_assets = 1; + repeated google.ads.googleads.v17.resources.Asset new_assets = 1; // The resource names of existing assets to attach to a scope. This may be // combined with new_assets in the same call. @@ -265,20 +292,20 @@ message ApplyRecommendationOperation { // recommendation. message ResponsiveSearchAdAssetParameters { // Updated ad. The current ad's content will be replaced. - google.ads.googleads.v14.resources.Ad updated_ad = 1; + google.ads.googleads.v17.resources.Ad updated_ad = 1; } // Parameters to use when applying a responsive search ad improve ad strength // recommendation. message ResponsiveSearchAdImproveAdStrengthParameters { // Updated ad. The current ad's content will be replaced. - google.ads.googleads.v14.resources.Ad updated_ad = 1; + google.ads.googleads.v17.resources.Ad updated_ad = 1; } // Parameters to use when applying a responsive search ad recommendation. message ResponsiveSearchAdParameters { // Required. New ad to add to recommended ad group. - google.ads.googleads.v14.resources.Ad ad = 1 + google.ads.googleads.v17.resources.Ad ad = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -297,6 +324,28 @@ message ApplyRecommendationOperation { optional int64 new_budget_amount_micros = 1; } + // Parameters to use when applying a set target CPA recommendation. + message ForecastingSetTargetCpaParameters { + // Average CPA to use for Target CPA bidding strategy. + optional int64 target_cpa_micros = 1; + + // New campaign budget amount to set for a campaign resource. + optional int64 campaign_budget_amount_micros = 2; + } + + // Parameters to use when applying a lead form asset recommendation. + message LeadFormAssetParameters { + // Required. Lead form assets to be added. This is a required field. + AdAssetApplyParameters ad_asset_apply_parameters = 1 + [(google.api.field_behavior) = REQUIRED]; + + // If true, the "Submit Lead Form" goal will be set on the target campaign. + // As a result, ads will be shown as lead form creative ads. If false, + // the "Submit Lead Form" goal will not be set on the campaign and ads will + // contain lead form assets. + optional bool set_submit_lead_form_asset_campaign_goal = 2; + } + // The resource name of the recommendation to apply. string resource_name = 1 [(google.api.resource_reference) = { type: "googleads.googleapis.com/Recommendation" @@ -372,11 +421,26 @@ message ApplyRecommendationOperation { // Parameters to use when applying lower Target ROAS recommendation. LowerTargetRoasParameters lower_target_roas = 21; + + // Parameters to use when applying forecasting set target CPA + // recommendation. + ForecastingSetTargetCpaParameters forecasting_set_target_cpa = 22; + + // Parameters to use when applying set target CPA + // recommendation. + ForecastingSetTargetCpaParameters set_target_cpa = 23; + + // Parameters to use when applying set target ROAS + // recommendation. + ForecastingSetTargetRoasParameters set_target_roas = 24; + + // Parameters to use when applying lead form asset recommendation. + LeadFormAssetParameters lead_form_asset = 25; } } // Response message for -// [RecommendationService.ApplyRecommendation][google.ads.googleads.v14.services.RecommendationService.ApplyRecommendation]. +// [RecommendationService.ApplyRecommendation][google.ads.googleads.v17.services.RecommendationService.ApplyRecommendation]. message ApplyRecommendationResponse { // Results of operations to apply recommendations. repeated ApplyRecommendationResult results = 1; @@ -397,7 +461,7 @@ message ApplyRecommendationResult { } // Request message for -// [RecommendationService.DismissRecommendation][google.ads.googleads.v14.services.RecommendationService.DismissRecommendation]. +// [RecommendationService.DismissRecommendation][google.ads.googleads.v17.services.RecommendationService.DismissRecommendation]. message DismissRecommendationRequest { // Operation to dismiss a single recommendation identified by resource_name. message DismissRecommendationOperation { @@ -422,7 +486,7 @@ message DismissRecommendationRequest { } // Response message for -// [RecommendationService.DismissRecommendation][google.ads.googleads.v14.services.RecommendationService.DismissRecommendation]. +// [RecommendationService.DismissRecommendation][google.ads.googleads.v17.services.RecommendationService.DismissRecommendation]. message DismissRecommendationResponse { // The result of dismissing a recommendation. message DismissRecommendationResult { @@ -439,3 +503,132 @@ message DismissRecommendationResponse { // errors) we return the RPC level error. google.rpc.Status partial_failure_error = 2; } + +// Request message for +// [RecommendationService.GenerateRecommendations][google.ads.googleads.v17.services.RecommendationService.GenerateRecommendations]. +message GenerateRecommendationsRequest { + // Current bidding information of the campaign. Provides a wrapper for + // bidding-related signals that inform recommendations. + message BiddingInfo { + // Current bidding strategy. + // This field is necessary for the following recommendation_types: + // MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + optional google.ads.googleads.v17.enums.BiddingStrategyTypeEnum + .BiddingStrategyType bidding_strategy_type = 1; + + // Optional details related to the bidding_strategy_type. + oneof bidding_strategy_target_info { + // Current target_cpa in micros. + // This can be populated for campaigns with a bidding strategy type of + // TARGET_CPA or MAXIMIZE_CONVERSIONS. + int64 target_cpa_micros = 2; + + // Current target_roas. + // This can be populated for campaigns with a bidding strategy type of + // TARGET_ROAS or MAXIMIZE_CONVERSION_VALUE. + double target_roas = 3; + } + } + + // Current AdGroup Information of the campaign. + message AdGroupInfo { + // Optional. AdGroup Type of the AdGroup. + // This field is necessary for the following recommendation_types if + // ad_group_info is set: + // KEYWORD + optional google.ads.googleads.v17.enums.AdGroupTypeEnum.AdGroupType + ad_group_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current keywords. + // This field is optional for the following recommendation_types if + // ad_group_info is set: + // KEYWORD + repeated google.ads.googleads.v17.common.KeywordInfo keywords = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // A keyword seed and a specific url to generate keywords from. + message SeedInfo { + // A specific url to generate ideas from, for example: www.example.com/cars. + optional string url_seed = 2; + + // Optional. Keywords or phrases to generate ideas from, for example: cars + // or "car dealership near me". + repeated string keyword_seeds = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The ID of the customer generating recommendations. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of eligible recommendation_types to generate. If the + // uploaded criteria isn't sufficient to make a recommendation, or the + // campaign is already in the recommended state, no recommendation will be + // returned for that type. Generally, a recommendation is returned if all + // required fields for that recommendation_type are uploaded, but there are + // cases where this is still not sufficient. + // + // The following recommendation_types are supported for recommendation + // generation: + // KEYWORD, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // SITELINK_ASSET, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + repeated + google.ads.googleads.v17.enums.RecommendationTypeEnum.RecommendationType + recommendation_types = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Advertising channel type of the campaign. + // The following advertising_channel_types are supported for recommendation + // generation: + // PERFORMANCE_MAX and SEARCH + google.ads.googleads.v17.enums.AdvertisingChannelTypeEnum + .AdvertisingChannelType advertising_channel_type = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Number of sitelinks on the campaign. + // This field is necessary for the following recommendation_types: + // SITELINK_ASSET + optional int32 campaign_sitelink_count = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current conversion tracking status. + // This field is necessary for the following recommendation_types: + // MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + optional google.ads.googleads.v17.enums.ConversionTrackingStatusEnum + .ConversionTrackingStatus conversion_tracking_status = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current bidding information of the campaign. + // This field is necessary for the following recommendation_types: + // MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + optional BiddingInfo bidding_info = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current AdGroup Information. + // Supports information from a single AdGroup. + // This field is optional for the following recommendation_types: + // KEYWORD + repeated AdGroupInfo ad_group_info = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Seed information for Keywords. + // This field is necessary for the following recommendation_types: + // KEYWORD + optional SeedInfo seed_info = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [RecommendationService.GenerateRecommendations][google.ads.googleads.v17.services.RecommendationService.GenerateRecommendations]. +message GenerateRecommendationsResponse { + // List of generated recommendations from the passed in set of requested + // recommendation_types. If there isn't sufficient data to generate a + // recommendation for the requested recommendation_types, the result set won't + // contain a recommendation for that type. + repeated google.ads.googleads.v17.resources.Recommendation recommendations = + 1; +} diff --git a/third_party/googleapis/google/ads/googleads/v17/services/recommendation_subscription_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/recommendation_subscription_service.proto new file mode 100644 index 000000000..3455d672b --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/recommendation_subscription_service.proto @@ -0,0 +1,141 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/recommendation_subscription.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationSubscriptionServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Proto file describing the Recommendation service. + +// Service to manage recommendation subscriptions. +service RecommendationSubscriptionService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Mutates given subscription with corresponding apply parameters. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + // [UrlFieldError]() + rpc MutateRecommendationSubscription(MutateRecommendationSubscriptionRequest) + returns (MutateRecommendationSubscriptionResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [RecommendationSubscriptionService.MutateRecommendationSubscription] +message MutateRecommendationSubscriptionRequest { + // Required. The ID of the subscribing customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of create or update operations. + repeated RecommendationSubscriptionOperation operations = 2 + [(google.api.field_behavior) = REQUIRED]; + + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, all operations will be carried + // out in one transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 3; + + // If true, the request is validated but not executed. Only errors are + // returned, not results. + bool validate_only = 4; + + // The response content type setting. Determines whether the mutable resource + // or just the resource name should be returned post mutation. The mutable + // resource will only be returned if the resource has the appropriate response + // field. For example, MutateCampaignResult.campaign. + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType + response_content_type = 5; +} + +// A single operation (create, update) on a recommendation subscription. +// [RecommendationSubscriptionService.MutateRecommendationSubscription] +message RecommendationSubscriptionOperation { + // Optional. FieldMask that determines which resource fields are modified in + // an update. + google.protobuf.FieldMask update_mask = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. Create or update operation. + oneof operation { + // Create operation: No resource name is expected for the new subscription. + google.ads.googleads.v17.resources.RecommendationSubscription create = 1; + + // Update operation: The subscription is expected to have a valid + // resource name. + google.ads.googleads.v17.resources.RecommendationSubscription update = 2; + } +} + +// Response message for +// [RecommendationSubscriptionService.MutateRecommendationSubscription] +message MutateRecommendationSubscriptionResponse { + // Results, one per operation. + repeated MutateRecommendationSubscriptionResult results = 1; + + // Errors that pertain to operation failures in the partial failure mode. + // Returned only when partial_failure = true and all errors occur inside the + // operations. If any errors occur outside the operations (for example, auth + // errors) we return the RPC level error. + google.rpc.Status partial_failure_error = 2; +} + +// Result message for +// [RecommendationSubscriptionService.MutateRecommendationSubscription] +message MutateRecommendationSubscriptionResult { + // Resource name of the subscription that was modified. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/RecommendationSubscription" + }]; + + // The mutated recommendation subscription with only mutable fields after + // mutate. The field will only be returned when response_content_type is set + // to "MUTABLE_RESOURCE". + google.ads.googleads.v17.resources.RecommendationSubscription + recommendation_subscription = 2; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/remarketing_action_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/remarketing_action_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/remarketing_action_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/remarketing_action_service.proto index d1f6b6738..0b1046bd1 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/remarketing_action_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/remarketing_action_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/remarketing_action.proto"; +import "google/ads/googleads/v17/resources/remarketing_action.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "RemarketingActionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Remarketing Action service. @@ -53,7 +53,7 @@ service RemarketingActionService { rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/remarketingActions:mutate" + post: "/v17/customers/{customer_id=*}/remarketingActions:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -61,7 +61,7 @@ service RemarketingActionService { } // Request message for -// [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v14.services.RemarketingActionService.MutateRemarketingActions]. +// [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v17.services.RemarketingActionService.MutateRemarketingActions]. message MutateRemarketingActionsRequest { // Required. The ID of the customer whose remarketing actions are being // modified. @@ -92,11 +92,11 @@ message RemarketingActionOperation { oneof operation { // Create operation: No resource name is expected for the new remarketing // action. - google.ads.googleads.v14.resources.RemarketingAction create = 1; + google.ads.googleads.v17.resources.RemarketingAction create = 1; // Update operation: The remarketing action is expected to have a valid // resource name. - google.ads.googleads.v14.resources.RemarketingAction update = 2; + google.ads.googleads.v17.resources.RemarketingAction update = 2; } } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/shared_criterion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/shared_criterion_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/shared_criterion_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/shared_criterion_service.proto index 50fc8948e..6d9544ded 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/shared_criterion_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/shared_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/shared_criterion.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/shared_criterion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "SharedCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Shared Criterion service. @@ -66,7 +66,7 @@ service SharedCriterionService { rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/sharedCriteria:mutate" + post: "/v17/customers/{customer_id=*}/sharedCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -74,7 +74,7 @@ service SharedCriterionService { } // Request message for -// [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v14.services.SharedCriterionService.MutateSharedCriteria]. +// [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v17.services.SharedCriterionService.MutateSharedCriteria]. message MutateSharedCriteriaRequest { // Required. The ID of the customer whose shared criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -95,7 +95,7 @@ message MutateSharedCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -105,7 +105,7 @@ message SharedCriterionOperation { oneof operation { // Create operation: No resource name is expected for the new shared // criterion. - google.ads.googleads.v14.resources.SharedCriterion create = 1; + google.ads.googleads.v17.resources.SharedCriterion create = 1; // Remove operation: A resource name for the removed shared criterion is // expected, in this format: @@ -139,5 +139,5 @@ message MutateSharedCriterionResult { // The mutated shared criterion with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.SharedCriterion shared_criterion = 2; + google.ads.googleads.v17.resources.SharedCriterion shared_criterion = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/shared_set_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/shared_set_service.proto similarity index 84% rename from third_party/googleapis/google/ads/googleads/v14/services/shared_set_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/shared_set_service.proto index 05c38d40e..29dc8119d 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/shared_set_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/shared_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/resources/shared_set.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/resources/shared_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "SharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Shared Set service. @@ -70,7 +70,7 @@ service SharedSetService { rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/sharedSets:mutate" + post: "/v17/customers/{customer_id=*}/sharedSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service SharedSetService { } // Request message for -// [SharedSetService.MutateSharedSets][google.ads.googleads.v14.services.SharedSetService.MutateSharedSets]. +// [SharedSetService.MutateSharedSets][google.ads.googleads.v17.services.SharedSetService.MutateSharedSets]. message MutateSharedSetsRequest { // Required. The ID of the customer whose shared sets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -99,7 +99,7 @@ message MutateSharedSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -111,11 +111,11 @@ message SharedSetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new shared set. - google.ads.googleads.v14.resources.SharedSet create = 1; + google.ads.googleads.v17.resources.SharedSet create = 1; // Update operation: The shared set is expected to have a valid resource // name. - google.ads.googleads.v14.resources.SharedSet update = 2; + google.ads.googleads.v17.resources.SharedSet update = 2; // Remove operation: A resource name for the removed shared set is expected, // in this format: @@ -149,5 +149,5 @@ message MutateSharedSetResult { // The mutated shared set with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.SharedSet shared_set = 2; + google.ads.googleads.v17.resources.SharedSet shared_set = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/smart_campaign_setting_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/smart_campaign_setting_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/smart_campaign_setting_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/smart_campaign_setting_service.proto index 455a138c9..e588aad63 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/smart_campaign_setting_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/smart_campaign_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,12 +14,12 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/response_content_type.proto"; -import "google/ads/googleads/v14/enums/smart_campaign_not_eligible_reason.proto"; -import "google/ads/googleads/v14/enums/smart_campaign_status.proto"; -import "google/ads/googleads/v14/resources/smart_campaign_setting.proto"; +import "google/ads/googleads/v17/enums/response_content_type.proto"; +import "google/ads/googleads/v17/enums/smart_campaign_not_eligible_reason.proto"; +import "google/ads/googleads/v17/enums/smart_campaign_status.proto"; +import "google/ads/googleads/v17/resources/smart_campaign_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,14 +27,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSettingServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the Smart campaign setting service. @@ -47,7 +47,7 @@ service SmartCampaignSettingService { rpc GetSmartCampaignStatus(GetSmartCampaignStatusRequest) returns (GetSmartCampaignStatusResponse) { option (google.api.http) = { - get: "/v14/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + get: "/v17/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" }; option (google.api.method_signature) = "resource_name"; } @@ -56,7 +56,7 @@ service SmartCampaignSettingService { rpc MutateSmartCampaignSettings(MutateSmartCampaignSettingsRequest) returns (MutateSmartCampaignSettingsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/smartCampaignSettings:mutate" + post: "/v17/customers/{customer_id=*}/smartCampaignSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service SmartCampaignSettingService { } // Request message for -// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v14.services.SmartCampaignSettingService.GetSmartCampaignStatus]. +// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v17.services.SmartCampaignSettingService.GetSmartCampaignStatus]. message GetSmartCampaignStatusRequest { // Required. The resource name of the Smart campaign setting belonging to the // Smart campaign to fetch the status of. @@ -79,7 +79,7 @@ message GetSmartCampaignStatusRequest { // Details related to Smart campaigns that are not eligible to serve. message SmartCampaignNotEligibleDetails { // The reason why the Smart campaign is not eligible to serve. - optional google.ads.googleads.v14.enums.SmartCampaignNotEligibleReasonEnum + optional google.ads.googleads.v17.enums.SmartCampaignNotEligibleReasonEnum .SmartCampaignNotEligibleReason not_eligible_reason = 1; } @@ -122,10 +122,10 @@ message SmartCampaignEndedDetails { } // Response message for -// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v14.services.SmartCampaignSettingService.GetSmartCampaignStatus]. +// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v17.services.SmartCampaignSettingService.GetSmartCampaignStatus]. message GetSmartCampaignStatusResponse { // The status of this Smart campaign. - google.ads.googleads.v14.enums.SmartCampaignStatusEnum.SmartCampaignStatus + google.ads.googleads.v17.enums.SmartCampaignStatusEnum.SmartCampaignStatus smart_campaign_status = 1; // Additional details accompanying the status of a Smart campaign. @@ -148,7 +148,7 @@ message GetSmartCampaignStatusResponse { } // Request message for -// [SmartCampaignSettingService.MutateSmartCampaignSettings][google.ads.googleads.v14.services.SmartCampaignSettingService.MutateSmartCampaignSettings]. +// [SmartCampaignSettingService.MutateSmartCampaignSettings][google.ads.googleads.v17.services.SmartCampaignSettingService.MutateSmartCampaignSettings]. message MutateSmartCampaignSettingsRequest { // Required. The ID of the customer whose Smart campaign settings are being // modified. @@ -171,7 +171,7 @@ message MutateSmartCampaignSettingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v14.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v17.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -179,7 +179,7 @@ message MutateSmartCampaignSettingsRequest { message SmartCampaignSettingOperation { // Update operation: The Smart campaign setting must specify a valid // resource name. - google.ads.googleads.v14.resources.SmartCampaignSetting update = 1; + google.ads.googleads.v17.resources.SmartCampaignSetting update = 1; // FieldMask that determines which resource fields are modified in an update. google.protobuf.FieldMask update_mask = 2; @@ -207,6 +207,6 @@ message MutateSmartCampaignSettingResult { // The mutated Smart campaign setting with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v14.resources.SmartCampaignSetting + google.ads.googleads.v17.resources.SmartCampaignSetting smart_campaign_setting = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/smart_campaign_suggest_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/smart_campaign_suggest_service.proto similarity index 85% rename from third_party/googleapis/google/ads/googleads/v14/services/smart_campaign_suggest_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/smart_campaign_suggest_service.proto index d8b053ba1..0b99a8164 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/smart_campaign_suggest_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/smart_campaign_suggest_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/ad_type_infos.proto"; -import "google/ads/googleads/v14/common/criteria.proto"; -import "google/ads/googleads/v14/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v17/common/ad_type_infos.proto"; +import "google/ads/googleads/v17/common/criteria.proto"; +import "google/ads/googleads/v17/resources/keyword_theme_constant.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSuggestServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to get suggestions for Smart Campaigns. service SmartCampaignSuggestService { @@ -43,7 +43,7 @@ service SmartCampaignSuggestService { SuggestSmartCampaignBudgetOptionsRequest) returns (SuggestSmartCampaignBudgetOptionsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + post: "/v17/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" body: "*" }; } @@ -53,7 +53,7 @@ service SmartCampaignSuggestService { rpc SuggestSmartCampaignAd(SuggestSmartCampaignAdRequest) returns (SuggestSmartCampaignAdResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:suggestSmartCampaignAd" + post: "/v17/customers/{customer_id=*}:suggestSmartCampaignAd" body: "*" }; } @@ -62,14 +62,14 @@ service SmartCampaignSuggestService { rpc SuggestKeywordThemes(SuggestKeywordThemesRequest) returns (SuggestKeywordThemesResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:suggestKeywordThemes" + post: "/v17/customers/{customer_id=*}:suggestKeywordThemes" body: "*" }; } } // Request message for -// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. message SuggestSmartCampaignBudgetOptionsRequest { // Required. The ID of the customer whose budget options are to be suggested. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -98,7 +98,7 @@ message SmartCampaignSuggestionInfo { // A list of locations. message LocationList { // Required. Locations. - repeated google.ads.googleads.v14.common.LocationInfo locations = 1 + repeated google.ads.googleads.v17.common.LocationInfo locations = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -116,12 +116,12 @@ message SmartCampaignSuggestionInfo { string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. The business ad schedule. - repeated google.ads.googleads.v14.common.AdScheduleInfo ad_schedules = 6 + repeated google.ads.googleads.v17.common.AdScheduleInfo ad_schedules = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. Smart campaign keyword themes. This field may greatly improve // suggestion accuracy and we recommend always setting it if possible. - repeated google.ads.googleads.v14.common.KeywordThemeInfo keyword_themes = 7 + repeated google.ads.googleads.v17.common.KeywordThemeInfo keyword_themes = 7 [(google.api.field_behavior) = OPTIONAL]; // The business settings to consider when generating suggestions. @@ -151,13 +151,13 @@ message SmartCampaignSuggestionInfo { LocationList location_list = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. The targeting geo location by proximity. - google.ads.googleads.v14.common.ProximityInfo proximity = 5 + google.ads.googleads.v17.common.ProximityInfo proximity = 5 [(google.api.field_behavior) = OPTIONAL]; } } // Response message for -// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. // Depending on whether the system could suggest the options, either all of the // options or none of them might be returned. message SuggestSmartCampaignBudgetOptionsResponse { @@ -194,7 +194,7 @@ message SuggestSmartCampaignBudgetOptionsResponse { } // Request message for -// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. message SuggestSmartCampaignAdRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -208,16 +208,16 @@ message SuggestSmartCampaignAdRequest { } // Response message for -// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. message SuggestSmartCampaignAdResponse { // Optional. Ad info includes 3 creative headlines and 2 creative // descriptions. - google.ads.googleads.v14.common.SmartCampaignAdInfo ad_info = 1 + google.ads.googleads.v17.common.SmartCampaignAdInfo ad_info = 1 [(google.api.field_behavior) = OPTIONAL]; } // Request message for -// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestKeywordThemes]. message SuggestKeywordThemesRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -237,14 +237,14 @@ message SuggestKeywordThemesRequest { } // Response message for -// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v14.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestKeywordThemes]. message SuggestKeywordThemesResponse { // A Smart campaign keyword theme suggestion. message KeywordTheme { // A keyword theme. oneof keyword_theme { // A Smart campaign keyword theme constant. - google.ads.googleads.v14.resources.KeywordThemeConstant + google.ads.googleads.v17.resources.KeywordThemeConstant keyword_theme_constant = 1; // A free-form text keyword theme. diff --git a/third_party/googleapis/google/ads/googleads/v14/services/third_party_app_analytics_link_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/third_party_app_analytics_link_service.proto similarity index 80% rename from third_party/googleapis/google/ads/googleads/v14/services/third_party_app_analytics_link_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/third_party_app_analytics_link_service.proto index 51c9c99e2..2e8c03a3e 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/third_party_app_analytics_link_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/third_party_app_analytics_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "ThirdPartyAppAnalyticsLinkServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // This service allows management of links between Google Ads and third party // app analytics. @@ -48,14 +48,14 @@ service ThirdPartyAppAnalyticsLinkService { rpc RegenerateShareableLinkId(RegenerateShareableLinkIdRequest) returns (RegenerateShareableLinkIdResponse) { option (google.api.http) = { - post: "/v14/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + post: "/v17/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" body: "*" }; } } // Request message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. message RegenerateShareableLinkIdRequest { // Resource name of the third party app analytics link. string resource_name = 1 [(google.api.resource_reference) = { @@ -64,5 +64,5 @@ message RegenerateShareableLinkIdRequest { } // Response message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v14.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. message RegenerateShareableLinkIdResponse {} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/travel_asset_suggestion_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/travel_asset_suggestion_service.proto similarity index 78% rename from third_party/googleapis/google/ads/googleads/v14/services/travel_asset_suggestion_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/travel_asset_suggestion_service.proto index 005fb1533..00da477ff 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/travel_asset_suggestion_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/travel_asset_suggestion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/enums/asset_field_type.proto"; -import "google/ads/googleads/v14/enums/call_to_action_type.proto"; -import "google/ads/googleads/v14/enums/hotel_asset_suggestion_status.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; +import "google/ads/googleads/v17/enums/call_to_action_type.proto"; +import "google/ads/googleads/v17/enums/hotel_asset_suggestion_status.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "TravelAssetSuggestionServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Service to retrieve Travel asset suggestions. service TravelAssetSuggestionService { @@ -44,7 +44,7 @@ service TravelAssetSuggestionService { rpc SuggestTravelAssets(SuggestTravelAssetsRequest) returns (SuggestTravelAssetsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:suggestTravelAssets" + post: "/v17/customers/{customer_id=*}:suggestTravelAssets" body: "*" }; option (google.api.method_signature) = "customer_id,language_option"; @@ -52,7 +52,7 @@ service TravelAssetSuggestionService { } // Request message for -// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v14.services.TravelAssetSuggestionService.SuggestTravelAssets]. +// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v17.services.TravelAssetSuggestionService.SuggestTravelAssets]. message SuggestTravelAssetsRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -69,7 +69,7 @@ message SuggestTravelAssetsRequest { } // Response message for -// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v14.services.TravelAssetSuggestionService.SuggestTravelAssets]. +// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v17.services.TravelAssetSuggestionService.SuggestTravelAssets]. message SuggestTravelAssetsResponse { // Asset suggestions for each place ID submitted in the request. repeated HotelAssetSuggestion hotel_asset_suggestions = 1; @@ -87,7 +87,7 @@ message HotelAssetSuggestion { string hotel_name = 3; // Call to action type. - google.ads.googleads.v14.enums.CallToActionTypeEnum.CallToActionType + google.ads.googleads.v17.enums.CallToActionTypeEnum.CallToActionType call_to_action = 4; // Text assets such as headline, description, etc. @@ -97,7 +97,7 @@ message HotelAssetSuggestion { repeated HotelImageAsset image_assets = 6; // The status of the hotel asset suggestion. - google.ads.googleads.v14.enums.HotelAssetSuggestionStatusEnum + google.ads.googleads.v17.enums.HotelAssetSuggestionStatusEnum .HotelAssetSuggestionStatus status = 7; } @@ -107,7 +107,7 @@ message HotelTextAsset { string text = 1; // The text asset type. For example, HEADLINE, DESCRIPTION, etc. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType asset_field_type = 2; } @@ -118,6 +118,6 @@ message HotelImageAsset { // The Image asset type. For example, MARKETING_IMAGE, // PORTRAIT_MARKETING_IMAGE, etc. - google.ads.googleads.v14.enums.AssetFieldTypeEnum.AssetFieldType + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType asset_field_type = 2; } diff --git a/third_party/googleapis/google/ads/googleads/v14/services/user_data_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/user_data_service.proto similarity index 81% rename from third_party/googleapis/google/ads/googleads/v14/services/user_data_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/user_data_service.proto index 0eea346cf..df24ae96f 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/user_data_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/user_data_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/common/offline_user_data.proto"; +import "google/ads/googleads/v17/common/offline_user_data.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "UserDataServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the UserDataService. @@ -58,14 +58,14 @@ service UserDataService { // [UserDataError]() rpc UploadUserData(UploadUserDataRequest) returns (UploadUserDataResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}:uploadUserData" + post: "/v17/customers/{customer_id=*}:uploadUserData" body: "*" }; } } // Request message for -// [UserDataService.UploadUserData][google.ads.googleads.v14.services.UserDataService.UploadUserData] +// [UserDataService.UploadUserData][google.ads.googleads.v17.services.UserDataService.UploadUserData] message UploadUserDataRequest { // Required. The ID of the customer for which to update the user data. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -77,7 +77,7 @@ message UploadUserDataRequest { // Metadata of the request. oneof metadata { // Metadata for data updates to a Customer Match user list. - google.ads.googleads.v14.common.CustomerMatchUserListMetadata + google.ads.googleads.v17.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 2; } } @@ -87,15 +87,15 @@ message UserDataOperation { // Operation to be made for the UploadUserDataRequest. oneof operation { // The list of user data to be appended to the user list. - google.ads.googleads.v14.common.UserData create = 1; + google.ads.googleads.v17.common.UserData create = 1; // The list of user data to be removed from the user list. - google.ads.googleads.v14.common.UserData remove = 2; + google.ads.googleads.v17.common.UserData remove = 2; } } // Response message for -// [UserDataService.UploadUserData][google.ads.googleads.v14.services.UserDataService.UploadUserData] +// [UserDataService.UploadUserData][google.ads.googleads.v17.services.UserDataService.UploadUserData] // Uploads made through this service will not be visible under the 'Segment // members' section for the Customer Match List in the Google Ads UI. message UploadUserDataResponse { diff --git a/third_party/googleapis/google/ads/googleads/v17/services/user_list_customer_type_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/user_list_customer_type_service.proto new file mode 100644 index 000000000..6993b7c85 --- /dev/null +++ b/third_party/googleapis/google/ads/googleads/v17/services/user_list_customer_type_service.proto @@ -0,0 +1,123 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +import "google/ads/googleads/v17/resources/user_list_customer_type.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Proto file describing the UserListCustomerType service. + +// Service to manage user list customer types. +service UserListCustomerTypeService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Attach or remove user list customer types. Operation statuses + // are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [UserListCustomerTypeError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateUserListCustomerTypes(MutateUserListCustomerTypesRequest) + returns (MutateUserListCustomerTypesResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}/userListCustomerTypes:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [UserListCustomerTypeService.MutateUserListCustomerTypes][google.ads.googleads.v17.services.UserListCustomerTypeService.MutateUserListCustomerTypes]. +message MutateUserListCustomerTypesRequest { + // Required. The ID of the customer whose user list customer types are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on the user list customer + // types. + repeated UserListCustomerTypeOperation operations = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. If true, successful operations will be carried out and invalid + // operations will return errors. If false, all operations will be carried + // out in one transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, the request is validated but not executed. Only errors + // are returned, not results. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single mutate operation on the user list customer type. +message UserListCustomerTypeOperation { + // The mutate operation. + oneof operation { + // Attach a user list customer type to a user list. + // No resource name is expected for the new user list customer type. + google.ads.googleads.v17.resources.UserListCustomerType create = 1; + + // Remove an existing user list customer type. + // A resource name for the removed user list customer type is + // expected, in this format: + // + // `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserListCustomerType" + }]; + } +} + +// Response message for a user list customer type mutate. +message MutateUserListCustomerTypesResponse { + // Errors that pertain to operation failures in the partial failure mode. + // Returned only when partial_failure = true and all errors occur inside the + // operations. If any errors occur outside the operations (for example, auth + // errors), we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateUserListCustomerTypeResult results = 2; +} + +// The result for the user list customer type mutate. +message MutateUserListCustomerTypeResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserListCustomerType" + }]; +} diff --git a/third_party/googleapis/google/ads/googleads/v14/services/user_list_service.proto b/third_party/googleapis/google/ads/googleads/v17/services/user_list_service.proto similarity index 86% rename from third_party/googleapis/google/ads/googleads/v14/services/user_list_service.proto rename to third_party/googleapis/google/ads/googleads/v17/services/user_list_service.proto index 65e1f0c25..da30a7ee3 100644 --- a/third_party/googleapis/google/ads/googleads/v14/services/user_list_service.proto +++ b/third_party/googleapis/google/ads/googleads/v17/services/user_list_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v14.services; +package google.ads.googleads.v17.services; -import "google/ads/googleads/v14/resources/user_list.proto"; +import "google/ads/googleads/v17/resources/user_list.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V14.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; option java_multiple_files = true; option java_outer_classname = "UserListServiceProto"; -option java_package = "com.google.ads.googleads.v14.services"; +option java_package = "com.google.ads.googleads.v17.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V14::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; // Proto file describing the User List service. @@ -66,7 +66,7 @@ service UserListService { rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) { option (google.api.http) = { - post: "/v14/customers/{customer_id=*}/userLists:mutate" + post: "/v17/customers/{customer_id=*}/userLists:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -74,7 +74,7 @@ service UserListService { } // Request message for -// [UserListService.MutateUserLists][google.ads.googleads.v14.services.UserListService.MutateUserLists]. +// [UserListService.MutateUserLists][google.ads.googleads.v17.services.UserListService.MutateUserLists]. message MutateUserListsRequest { // Required. The ID of the customer whose user lists are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -102,11 +102,11 @@ message UserListOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new user list. - google.ads.googleads.v14.resources.UserList create = 1; + google.ads.googleads.v17.resources.UserList create = 1; // Update operation: The user list is expected to have a valid resource // name. - google.ads.googleads.v14.resources.UserList update = 2; + google.ads.googleads.v17.resources.UserList update = 2; // Remove operation: A resource name for the removed user list is expected, // in this format: diff --git a/third_party/googleapis/google/ads/searchads360/v0/common/metrics.proto b/third_party/googleapis/google/ads/searchads360/v0/common/metrics.proto index 11f8bf13a..33a46d103 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/common/metrics.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/common/metrics.proto @@ -33,8 +33,8 @@ option ruby_package = "Google::Ads::SearchAds360::V0::Common"; // Metrics data. message Metrics { - // The percent of your ad impressions that are shown as the very first ad - // above the organic search results. + // Search absolute top impression share is the percentage of your Search ad + // impressions that are shown in the most prominent Search position. optional double absolute_top_impression_percentage = 183; // All conversions from interactions (as oppose to view through conversions) @@ -290,8 +290,8 @@ message Metrics { // for details. Any value below 0.1 is reported as 0.0999. optional double search_absolute_top_impression_share = 136; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to a low budget. Note: Search + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to a low budget. Note: Search // budget lost absolute top impression share is reported in the range of 0 to // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_budget_lost_absolute_top_impression_share = 137; @@ -302,7 +302,7 @@ message Metrics { // value above 0.9 is reported as 0.9001. optional double search_budget_lost_impression_share = 138; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to a low budget. Note: Search // budget lost top impression share is reported in the range of 0 to 0.9. Any // value above 0.9 is reported as 0.9001. @@ -328,8 +328,8 @@ message Metrics { // value below 0.1 is reported as 0.0999. optional double search_impression_share = 142; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to poor Ad Rank. + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to poor Ad Rank. // Note: Search rank lost absolute top impression share is reported in the // range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_absolute_top_impression_share = 143; @@ -340,20 +340,22 @@ message Metrics { // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_impression_share = 144; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to poor Ad Rank. // Note: Search rank lost top impression share is reported in the range of 0 // to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_top_impression_share = 145; - // The impressions you've received in the top location (anywhere above the - // organic search results) compared to the estimated number of impressions you - // were eligible to receive in the top location. + // The impressions you've received among the top ads compared to the estimated + // number of impressions you were eligible to receive among the top ads. // Note: Search top impression share is reported in the range of 0.1 to 1. Any // value below 0.1 is reported as 0.0999. + // + // Top ads are generally above the top organic results, although they may show + // below the top organic results on certain queries. optional double search_top_impression_share = 146; - // The percent of your ad impressions that are shown anywhere above the + // The percent of your ad impressions that are shown adjacent to the top // organic search results. optional double top_impression_percentage = 148; diff --git a/third_party/googleapis/google/ads/searchads360/v0/enums/asset_field_type.proto b/third_party/googleapis/google/ads/searchads360/v0/enums/asset_field_type.proto index c4c74f3bf..9e3b70aae 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/enums/asset_field_type.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/enums/asset_field_type.proto @@ -119,5 +119,8 @@ message AssetFieldTypeEnum { // The asset is linked for use as a hotel property in a Performance Max for // travel goals campaign. HOTEL_PROPERTY = 28; + + // The asset is linked for use as a discovery carousel card. + DISCOVERY_CAROUSEL_CARD = 29; } } diff --git a/third_party/googleapis/google/ads/searchads360/v0/enums/criterion_type.proto b/third_party/googleapis/google/ads/searchads360/v0/enums/criterion_type.proto index dce3d47eb..b35dafeec 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/enums/criterion_type.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/enums/criterion_type.proto @@ -147,5 +147,8 @@ message CriterionTypeEnum { // Brand List BRAND_LIST = 40; + + // Life Event + LIFE_EVENT = 41; } } diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/authentication_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/authentication_error.proto new file mode 100644 index 000000000..ea0d9023b --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/authentication_error.proto @@ -0,0 +1,101 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AuthenticationErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing authentication errors. + +// Container for enum describing possible authentication errors. +message AuthenticationErrorEnum { + // Enum describing possible authentication errors. + enum AuthenticationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Authentication of the request failed. + AUTHENTICATION_ERROR = 2; + + // Client customer ID is not a number. + CLIENT_CUSTOMER_ID_INVALID = 5; + + // No customer found for the provided customer ID. + CUSTOMER_NOT_FOUND = 8; + + // Client's Google account is deleted. + GOOGLE_ACCOUNT_DELETED = 9; + + // Account login token in the cookie is invalid. + GOOGLE_ACCOUNT_COOKIE_INVALID = 10; + + // A problem occurred during Google account authentication. + GOOGLE_ACCOUNT_AUTHENTICATION_FAILED = 25; + + // The user in the Google account login token does not match the user ID in + // the cookie. + GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH = 12; + + // Login cookie is required for authentication. + LOGIN_COOKIE_REQUIRED = 13; + + // The Google account that generated the OAuth access + // token is not associated with a Search Ads 360 account. Create a new + // account, or add the Google account to an existing Search Ads 360 account. + NOT_ADS_USER = 14; + + // OAuth token in the header is not valid. + OAUTH_TOKEN_INVALID = 15; + + // OAuth token in the header has expired. + OAUTH_TOKEN_EXPIRED = 16; + + // OAuth token in the header has been disabled. + OAUTH_TOKEN_DISABLED = 17; + + // OAuth token in the header has been revoked. + OAUTH_TOKEN_REVOKED = 18; + + // OAuth token HTTP header is malformed. + OAUTH_TOKEN_HEADER_INVALID = 19; + + // Login cookie is not valid. + LOGIN_COOKIE_INVALID = 20; + + // User ID in the header is not a valid ID. + USER_ID_INVALID = 22; + + // An account administrator changed this account's authentication settings. + // To access this account, enable 2-Step Verification in your + // Google account at https://www.google.com/landing/2step. + TWO_STEP_VERIFICATION_NOT_ENROLLED = 23; + + // An account administrator changed this account's authentication settings. + // To access this account, enable Advanced Protection in your + // Google account at https://landing.google.com/advancedprotection. + ADVANCED_PROTECTION_NOT_ENROLLED = 24; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/authorization_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/authorization_error.proto new file mode 100644 index 000000000..ad4a5c89e --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/authorization_error.proto @@ -0,0 +1,82 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AuthorizationErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing authorization errors. + +// Container for enum describing possible authorization errors. +message AuthorizationErrorEnum { + // Enum describing possible authorization errors. + enum AuthorizationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // User doesn't have permission to access customer. Note: If you're + // accessing a client customer, the manager's customer ID must be set in the + // `login-customer-id` header. Learn more at + // https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header + USER_PERMISSION_DENIED = 2; + + // The Google Cloud project sent in the request does not have permission to + // access the api. + PROJECT_DISABLED = 5; + + // Authorization of the client failed. + AUTHORIZATION_ERROR = 6; + + // The user does not have permission to perform this action + // (for example, ADD, UPDATE, REMOVE) on the resource or call a method. + ACTION_NOT_PERMITTED = 7; + + // Signup not complete. + INCOMPLETE_SIGNUP = 8; + + // The customer account can't be accessed because it is not yet enabled or + // has been deactivated. + CUSTOMER_NOT_ENABLED = 24; + + // The developer must sign the terms of service. They can be found here: + // https://developers.google.com/terms + MISSING_TOS = 9; + + // The login customer specified does not have access to the account + // specified, so the request is invalid. + INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION = 11; + + // The developer specified does not have access to the service. + SERVICE_ACCESS_DENIED = 12; + + // The customer (or login customer) isn't allowed in Search Ads 360 API. It + // belongs to another ads system. + ACCESS_DENIED_FOR_ACCOUNT_TYPE = 25; + + // The developer does not have access to the metrics queried. + METRIC_ACCESS_DENIED = 26; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/custom_column_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/custom_column_error.proto new file mode 100644 index 000000000..9023555d4 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/custom_column_error.proto @@ -0,0 +1,46 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "CustomColumnErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing CustomColumn errors. + +// Container for enum describing possible custom column errors. +message CustomColumnErrorEnum { + // Enum describing possible custom column errors. + enum CustomColumnError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The custom column has not been found. + CUSTOM_COLUMN_NOT_FOUND = 2; + + // The custom column is not available. + CUSTOM_COLUMN_NOT_AVAILABLE = 3; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/date_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/date_error.proto new file mode 100644 index 000000000..67fcf8a00 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/date_error.proto @@ -0,0 +1,70 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DateErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing date errors. + +// Container for enum describing possible date errors. +message DateErrorEnum { + // Enum describing possible date errors. + enum DateError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Given field values do not correspond to a valid date. + INVALID_FIELD_VALUES_IN_DATE = 2; + + // Given field values do not correspond to a valid date time. + INVALID_FIELD_VALUES_IN_DATE_TIME = 3; + + // The string date's format should be yyyy-mm-dd. + INVALID_STRING_DATE = 4; + + // The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss. + INVALID_STRING_DATE_TIME_MICROS = 6; + + // The string date time's format should be yyyy-mm-dd hh:mm:ss. + INVALID_STRING_DATE_TIME_SECONDS = 11; + + // The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm. + INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET = 12; + + // Date is before allowed minimum. + EARLIER_THAN_MINIMUM_DATE = 7; + + // Date is after allowed maximum. + LATER_THAN_MAXIMUM_DATE = 8; + + // Date range bounds are not in order. + DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE = 9; + + // Both dates in range are null. + DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL = 10; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/date_range_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/date_range_error.proto new file mode 100644 index 000000000..4ab2bddae --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/date_range_error.proto @@ -0,0 +1,55 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DateRangeErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing date range errors. + +// Container for enum describing possible date range errors. +message DateRangeErrorEnum { + // Enum describing possible date range errors. + enum DateRangeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Invalid date. + INVALID_DATE = 2; + + // The start date was after the end date. + START_DATE_AFTER_END_DATE = 3; + + // Cannot set date to past time + CANNOT_SET_DATE_TO_PAST = 4; + + // A date was used that is past the system "last" date. + AFTER_MAXIMUM_ALLOWABLE_DATE = 5; + + // Trying to change start date on a resource that has started. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 6; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/distinct_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/distinct_error.proto new file mode 100644 index 000000000..77d407fc8 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/distinct_error.proto @@ -0,0 +1,46 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "DistinctErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing distinct errors. + +// Container for enum describing possible distinct errors. +message DistinctErrorEnum { + // Enum describing possible distinct errors. + enum DistinctError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Duplicate element. + DUPLICATE_ELEMENT = 2; + + // Duplicate type. + DUPLICATE_TYPE = 3; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/errors.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/errors.proto new file mode 100644 index 000000000..d39892c73 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/errors.proto @@ -0,0 +1,173 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +import "google/ads/searchads360/v0/common/value.proto"; +import "google/ads/searchads360/v0/errors/authentication_error.proto"; +import "google/ads/searchads360/v0/errors/authorization_error.proto"; +import "google/ads/searchads360/v0/errors/custom_column_error.proto"; +import "google/ads/searchads360/v0/errors/date_error.proto"; +import "google/ads/searchads360/v0/errors/date_range_error.proto"; +import "google/ads/searchads360/v0/errors/distinct_error.proto"; +import "google/ads/searchads360/v0/errors/header_error.proto"; +import "google/ads/searchads360/v0/errors/internal_error.proto"; +import "google/ads/searchads360/v0/errors/invalid_parameter_error.proto"; +import "google/ads/searchads360/v0/errors/query_error.proto"; +import "google/ads/searchads360/v0/errors/quota_error.proto"; +import "google/ads/searchads360/v0/errors/request_error.proto"; +import "google/ads/searchads360/v0/errors/size_limit_error.proto"; +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ErrorsProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing the common error protos + +// Describes how a Search Ads 360 API call failed. It's returned inside +// google.rpc.Status.details when a call fails. +message SearchAds360Failure { + // The list of errors that occurred. + repeated SearchAds360Error errors = 1; + + // The unique ID of the request that is used for debugging purposes. + string request_id = 2; +} + +// SearchAds360-specific error. +message SearchAds360Error { + // An enum value that indicates which error occurred. + ErrorCode error_code = 1; + + // A human-readable description of the error. + string message = 2; + + // The value that triggered the error. + google.ads.searchads360.v0.common.Value trigger = 3; + + // Describes the part of the request proto that caused the error. + ErrorLocation location = 4; + + // Additional error details, which are returned by certain error codes. Most + // error codes do not include details. + ErrorDetails details = 5; +} + +// The error reason represented by type and enum. +message ErrorCode { + // The list of error enums + oneof error_code { + // An error caused by the request + RequestErrorEnum.RequestError request_error = 1; + + // An error with the query + QueryErrorEnum.QueryError query_error = 5; + + // An error encountered when trying to authorize a user. + AuthorizationErrorEnum.AuthorizationError authorization_error = 9; + + // An unexpected server-side error. + InternalErrorEnum.InternalError internal_error = 10; + + // An error with the amount of quota remaining. + QuotaErrorEnum.QuotaError quota_error = 11; + + // Indicates failure to properly authenticate user. + AuthenticationErrorEnum.AuthenticationError authentication_error = 17; + + // The reasons for the date error + DateErrorEnum.DateError date_error = 33; + + // The reasons for the date range error + DateRangeErrorEnum.DateRangeError date_range_error = 34; + + // The reasons for the distinct error + DistinctErrorEnum.DistinctError distinct_error = 35; + + // The reasons for the header error. + HeaderErrorEnum.HeaderError header_error = 66; + + // The reasons for the size limit error + SizeLimitErrorEnum.SizeLimitError size_limit_error = 118; + + // The reasons for the custom column error + CustomColumnErrorEnum.CustomColumnError custom_column_error = 144; + + // The reasons for invalid parameter errors. + InvalidParameterErrorEnum.InvalidParameterError invalid_parameter_error = + 175; + } +} + +// Describes the part of the request proto that caused the error. +message ErrorLocation { + // A part of a field path. + message FieldPathElement { + // The name of a field or a oneof + string field_name = 1; + + // If field_name is a repeated field, this is the element that failed + optional int32 index = 3; + } + + // A field path that indicates which field was invalid in the request. + repeated FieldPathElement field_path_elements = 2; +} + +// Additional error details. +message ErrorDetails { + // The error code that should have been returned, but wasn't. This is used + // when the error code is not published in the client specified version. + string unpublished_error_code = 1; + + // Details on the quota error, including the scope (account or developer), the + // rate bucket name and the retry delay. + QuotaErrorDetails quota_error_details = 4; +} + +// Additional quota error details when there is QuotaError. +message QuotaErrorDetails { + // Enum of possible scopes that quota buckets belong to. + enum QuotaRateScope { + // Unspecified enum + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Per customer account quota + ACCOUNT = 2; + + // Per project quota + DEVELOPER = 3; + } + + // The rate scope of the quota limit. + QuotaRateScope rate_scope = 1; + + // The high level description of the quota bucket. + // Examples are "Get requests for standard access" or "Requests per account". + string rate_name = 2; + + // Backoff period that customers should wait before sending next request. + google.protobuf.Duration retry_delay = 3; +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/header_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/header_error.proto new file mode 100644 index 000000000..ff7696454 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/header_error.proto @@ -0,0 +1,46 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "HeaderErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing header errors. + +// Container for enum describing possible header errors. +message HeaderErrorEnum { + // Enum describing possible header errors. + enum HeaderError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The user selected customer ID could not be validated. + INVALID_USER_SELECTED_CUSTOMER_ID = 2; + + // The login customer ID could not be validated. + INVALID_LOGIN_CUSTOMER_ID = 3; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/internal_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/internal_error.proto new file mode 100644 index 000000000..bb0584836 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/internal_error.proto @@ -0,0 +1,54 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "InternalErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing internal errors. + +// Container for enum describing possible internal errors. +message InternalErrorEnum { + // Enum describing possible internal errors. + enum InternalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // API encountered unexpected internal error. + INTERNAL_ERROR = 2; + + // The intended error code doesn't exist in specified API version. It will + // be released in a future API version. + ERROR_CODE_NOT_PUBLISHED = 3; + + // API encountered an unexpected transient error. The user + // should retry their request in these cases. + TRANSIENT_ERROR = 4; + + // The request took longer than a deadline. + DEADLINE_EXCEEDED = 5; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/invalid_parameter_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/invalid_parameter_error.proto new file mode 100644 index 000000000..db73d4c53 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/invalid_parameter_error.proto @@ -0,0 +1,43 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "InvalidParameterErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing request errors. + +// Container for enum describing possible errors from an invalid parameter. +message InvalidParameterErrorEnum { + // Enum describing possible parameter errors. + enum InvalidParameterError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The specified currency code is invalid. + INVALID_CURRENCY_CODE = 2; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/query_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/query_error.proto new file mode 100644 index 000000000..3bc632b54 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/query_error.proto @@ -0,0 +1,223 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "QueryErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing query errors. + +// Container for enum describing possible query errors. +message QueryErrorEnum { + // Enum describing possible query errors. + enum QueryError { + // Name unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Returned if all other query error reasons are not applicable. + QUERY_ERROR = 50; + + // A condition used in the query references an invalid enum constant. + BAD_ENUM_CONSTANT = 18; + + // Query contains an invalid escape sequence. + BAD_ESCAPE_SEQUENCE = 7; + + // Field name is invalid. + BAD_FIELD_NAME = 12; + + // Limit value is invalid (for example, not a number) + BAD_LIMIT_VALUE = 15; + + // Encountered number can not be parsed. + BAD_NUMBER = 5; + + // Invalid operator encountered. + BAD_OPERATOR = 3; + + // Parameter unknown or not supported. + BAD_PARAMETER_NAME = 61; + + // Parameter have invalid value. + BAD_PARAMETER_VALUE = 62; + + // Invalid resource type was specified in the FROM clause. + BAD_RESOURCE_TYPE_IN_FROM_CLAUSE = 45; + + // Non-ASCII symbol encountered outside of strings. + BAD_SYMBOL = 2; + + // Value is invalid. + BAD_VALUE = 4; + + // Date filters fail to restrict date to a range smaller than 31 days. + // Applicable if the query is segmented by date. + DATE_RANGE_TOO_WIDE = 36; + + // Filters on date/week/month/quarter have a start date after + // end date. + DATE_RANGE_TOO_NARROW = 60; + + // Expected AND between values with BETWEEN operator. + EXPECTED_AND = 30; + + // Expecting ORDER BY to have BY. + EXPECTED_BY = 14; + + // There was no dimension field selected. + EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE = 37; + + // Missing filters on date related fields. + EXPECTED_FILTERS_ON_DATE_RANGE = 55; + + // Missing FROM clause. + EXPECTED_FROM = 44; + + // The operator used in the conditions requires the value to be a list. + EXPECTED_LIST = 41; + + // Fields used in WHERE or ORDER BY clauses are missing from the SELECT + // clause. + EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE = 16; + + // SELECT is missing at the beginning of query. + EXPECTED_SELECT = 13; + + // A list was passed as a value to a condition whose operator expects a + // single value. + EXPECTED_SINGLE_VALUE = 42; + + // Missing one or both values with BETWEEN operator. + EXPECTED_VALUE_WITH_BETWEEN_OPERATOR = 29; + + // Invalid date format. Expected 'YYYY-MM-DD'. + INVALID_DATE_FORMAT = 38; + + // Misaligned date value for the filter. The date should be the start of a + // week/month/quarter if the filtered field is + // segments.week/segments.month/segments.quarter. + MISALIGNED_DATE_FOR_FILTER = 64; + + // Value passed was not a string when it should have been. For example, it + // was a number or unquoted literal. + INVALID_STRING_VALUE = 57; + + // A String value passed to the BETWEEN operator does not parse as a date. + INVALID_VALUE_WITH_BETWEEN_OPERATOR = 26; + + // The value passed to the DURING operator is not a Date range literal + INVALID_VALUE_WITH_DURING_OPERATOR = 22; + + // A value was passed to the LIKE operator. + INVALID_VALUE_WITH_LIKE_OPERATOR = 56; + + // An operator was provided that is inapplicable to the field being + // filtered. + OPERATOR_FIELD_MISMATCH = 35; + + // A Condition was found with an empty list. + PROHIBITED_EMPTY_LIST_IN_CONDITION = 28; + + // A condition used in the query references an unsupported enum constant. + PROHIBITED_ENUM_CONSTANT = 54; + + // Fields that are not allowed to be selected together were included in + // the SELECT clause. + PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE = 31; + + // A field that is not orderable was included in the ORDER BY clause. + PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE = 40; + + // A field that is not selectable was included in the SELECT clause. + PROHIBITED_FIELD_IN_SELECT_CLAUSE = 23; + + // A field that is not filterable was included in the WHERE clause. + PROHIBITED_FIELD_IN_WHERE_CLAUSE = 24; + + // Resource type specified in the FROM clause is not supported by this + // service. + PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE = 43; + + // A field that comes from an incompatible resource was included in the + // SELECT clause. + PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE = 48; + + // A field that comes from an incompatible resource was included in the + // WHERE clause. + PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE = 58; + + // A metric incompatible with the main resource or other selected + // segmenting resources was included in the SELECT or WHERE clause. + PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 49; + + // A segment incompatible with the main resource or other selected + // segmenting resources was included in the SELECT or WHERE clause. + PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE = 51; + + // A segment in the SELECT clause is incompatible with a metric in the + // SELECT or WHERE clause. + PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 53; + + // The value passed to the limit clause is too low. + LIMIT_VALUE_TOO_LOW = 25; + + // Query has a string containing a newline character. + PROHIBITED_NEWLINE_IN_STRING = 8; + + // List contains values of different types. + PROHIBITED_VALUE_COMBINATION_IN_LIST = 10; + + // The values passed to the BETWEEN operator are not of the same type. + PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR = 21; + + // Query contains unterminated string. + STRING_NOT_TERMINATED = 6; + + // Too many segments are specified in SELECT clause. + TOO_MANY_SEGMENTS = 34; + + // Query is incomplete and cannot be parsed. + UNEXPECTED_END_OF_QUERY = 9; + + // FROM clause cannot be specified in this query. + UNEXPECTED_FROM_CLAUSE = 47; + + // Query contains one or more unrecognized fields. + UNRECOGNIZED_FIELD = 32; + + // Query has an unexpected extra part. + UNEXPECTED_INPUT = 11; + + // Metrics cannot be requested for a manager account. To retrieve metrics, + // issue separate requests against each client account under the manager + // account. + REQUESTED_METRICS_FOR_MANAGER = 59; + + // The number of values (right-hand-side operands) in a filter exceeds the + // limit. + FILTER_HAS_TOO_MANY_VALUES = 63; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/quota_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/quota_error.proto new file mode 100644 index 000000000..c3eed380f --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/quota_error.proto @@ -0,0 +1,46 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "QuotaErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing quota errors. + +// Container for enum describing possible quota errors. +message QuotaErrorEnum { + // Enum describing possible quota errors. + enum QuotaError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Too many requests. + RESOURCE_EXHAUSTED = 2; + + // Too many requests in a short amount of time. + RESOURCE_TEMPORARILY_EXHAUSTED = 4; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/request_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/request_error.proto new file mode 100644 index 000000000..eb4686ab4 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/request_error.proto @@ -0,0 +1,123 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RequestErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing request errors. + +// Container for enum describing possible request errors. +message RequestErrorEnum { + // Enum describing possible request errors. + enum RequestError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Resource name is required for this request. + RESOURCE_NAME_MISSING = 3; + + // Resource name provided is malformed. + RESOURCE_NAME_MALFORMED = 4; + + // Resource name provided is malformed. + BAD_RESOURCE_ID = 17; + + // Product name is invalid. + INVALID_PRODUCT_NAME = 35; + + // Customer ID is invalid. + INVALID_CUSTOMER_ID = 16; + + // Mutate operation should have either create, update, or remove specified. + OPERATION_REQUIRED = 5; + + // Requested resource not found. + RESOURCE_NOT_FOUND = 6; + + // Next page token specified in user request is invalid. + INVALID_PAGE_TOKEN = 7; + + // Next page token specified in user request has expired. + EXPIRED_PAGE_TOKEN = 8; + + // Page size specified in user request is invalid. + INVALID_PAGE_SIZE = 22; + + // Required field is missing. + REQUIRED_FIELD_MISSING = 9; + + // The field cannot be modified because it's immutable. It's also possible + // that the field can be modified using 'create' operation but not 'update'. + IMMUTABLE_FIELD = 11; + + // Received too many entries in request. + TOO_MANY_MUTATE_OPERATIONS = 13; + + // Request cannot be executed by a manager account. + CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT = 14; + + // Mutate request was attempting to modify a readonly field. + // For instance, Budget fields can be requested for Ad Group, + // but are read-only for adGroups:mutate. + CANNOT_MODIFY_FOREIGN_FIELD = 15; + + // Enum value is not permitted. + INVALID_ENUM_VALUE = 18; + + // The login-customer-id parameter is required for this request. + LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20; + + // Either login-customer-id or linked-customer-id parameter is required for + // this request. + LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED = 34; + + // page_token is set in the validate only request + VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN = 21; + + // return_summary_row cannot be enabled if request did not select any + // metrics field. + CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS = 29; + + // return_summary_row should not be enabled for validate only requests. + CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS = 30; + + // return_summary_row parameter value should be the same between requests + // with page_token field set and their original request. + INCONSISTENT_RETURN_SUMMARY_ROW_VALUE = 31; + + // The total results count cannot be returned if it was not requested in the + // original request. + TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED = 32; + + // Deadline specified by the client was too short. + RPC_DEADLINE_TOO_SHORT = 33; + + // The product associated with the request is not supported for the current + // request. + PRODUCT_NOT_SUPPORTED = 37; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/errors/size_limit_error.proto b/third_party/googleapis/google/ads/searchads360/v0/errors/size_limit_error.proto new file mode 100644 index 000000000..983819fe0 --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/errors/size_limit_error.proto @@ -0,0 +1,48 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.errors; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "SizeLimitErrorProto"; +option java_package = "com.google.ads.searchads360.v0.errors"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Errors"; +option ruby_package = "Google::Ads::SearchAds360::V0::Errors"; + +// Proto file describing size limit errors. + +// Container for enum describing possible size limit errors. +message SizeLimitErrorEnum { + // Enum describing possible size limit errors. + enum SizeLimitError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The number of entries in the request exceeds the system limit, or the + // contents of the operations exceed transaction limits due to their size + // or complexity. Try reducing the number of entries per request. + REQUEST_SIZE_LIMIT_EXCEEDED = 2; + + // The number of entries in the response exceeds the system limit. + RESPONSE_SIZE_LIMIT_EXCEEDED = 3; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto b/third_party/googleapis/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto new file mode 100644 index 000000000..ca92c01fe --- /dev/null +++ b/third_party/googleapis/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto @@ -0,0 +1,184 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ads.searchads360.v0.resources; + +import "google/ads/searchads360/v0/enums/bidding_strategy_type.proto"; +import "google/ads/searchads360/v0/enums/target_impression_share_location.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AccessibleBiddingStrategyProto"; +option java_package = "com.google.ads.searchads360.v0.resources"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Resources"; +option ruby_package = "Google::Ads::SearchAds360::V0::Resources"; + +// Represents a view of BiddingStrategies owned by and shared with the customer. +// +// In contrast to BiddingStrategy, this resource includes strategies owned by +// managers of the customer and shared with this customer - in addition to +// strategies owned by this customer. This resource does not provide metrics and +// only exposes a limited subset of the BiddingStrategy attributes. +message AccessibleBiddingStrategy { + option (google.api.resource) = { + type: "searchads360.googleapis.com/AccessibleBiddingStrategy" + pattern: "customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}" + }; + + // An automated bidding strategy to help get the most conversion value for + // your campaigns while spending your budget. + message MaximizeConversionValue { + // Output only. The target return on ad spend (ROAS) option. If set, the bid + // strategy will maximize revenue while averaging the target return on ad + // spend. If the target ROAS is high, the bid strategy may not be able to + // spend the full budget. If the target ROAS is not set, the bid strategy + // will aim to achieve the highest possible ROAS for the budget. + double target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An automated bidding strategy to help get the most conversions for your + // campaigns while spending your budget. + message MaximizeConversions { + // Output only. The target cost per acquisition (CPA) option. This is the + // average amount that you would like to spend per acquisition. + int64 target_cpa = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The target cost per acquisition (CPA) option. This is the + // average amount that you would like to spend per acquisition. + int64 target_cpa_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An automated bid strategy that sets bids to help get as many conversions as + // possible at the target cost-per-acquisition (CPA) you set. + message TargetCpa { + // Output only. Average CPA target. + // This target should be greater than or equal to minimum billable unit + // based on the currency for the account. + optional int64 target_cpa_micros = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An automated bidding strategy that sets bids so that a certain percentage + // of search ads are shown at the top of the first page (or other targeted + // location). + message TargetImpressionShare { + // Output only. The targeted location on the search results page. + google.ads.searchads360.v0.enums.TargetImpressionShareLocationEnum + .TargetImpressionShareLocation location = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The chosen fraction of ads to be shown in the targeted location in + // micros. For example, 1% equals 10,000. + optional int64 location_fraction_micros = 2; + + // Output only. The highest CPC bid the automated bidding system is + // permitted to specify. This is a required field entered by the advertiser + // that sets the ceiling and specified in local micros. + optional int64 cpc_bid_ceiling_micros = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An automated bidding strategy that helps you maximize revenue while + // averaging a specific target return on ad spend (ROAS). + message TargetRoas { + // Output only. The chosen revenue (based on conversion data) per unit of + // spend. + optional double target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An automated bid strategy that sets your bids to help get as many clicks + // as possible within your budget. + message TargetSpend { + // Output only. The spend target under which to maximize clicks. + // A TargetSpend bidder will attempt to spend the smaller of this value + // or the natural throttling spend amount. + // If not specified, the budget is used as the spend target. + // This field is deprecated and should no longer be used. See + // https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html + // for details. + optional int64 target_spend_micros = 1 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + optional int64 cpc_bid_ceiling_micros = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the accessible bidding strategy. + // AccessibleBiddingStrategy resource names have the form: + // + // `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/AccessibleBiddingStrategy" + } + ]; + + // Output only. The ID of the bidding strategy. + int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the bidding strategy. + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the bidding strategy. + google.ads.searchads360.v0.enums.BiddingStrategyTypeEnum.BiddingStrategyType + type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the Customer which owns the bidding strategy. + int64 owner_customer_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. descriptive_name of the Customer which owns the bidding + // strategy. + string owner_descriptive_name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The bidding scheme. + // + // Only one can be set. + oneof scheme { + // Output only. An automated bidding strategy to help get the most + // conversion value for your campaigns while spending your budget. + MaximizeConversionValue maximize_conversion_value = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An automated bidding strategy to help get the most + // conversions for your campaigns while spending your budget. + MaximizeConversions maximize_conversions = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A bidding strategy that sets bids to help get as many + // conversions as possible at the target cost-per-acquisition (CPA) you set. + TargetCpa target_cpa = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A bidding strategy that automatically optimizes towards a + // chosen percentage of impressions. + TargetImpressionShare target_impression_share = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A bidding strategy that helps you maximize revenue while + // averaging a specific target Return On Ad Spend (ROAS). + TargetRoas target_roas = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A bid strategy that sets your bids to help get as many + // clicks as possible within your budget. + TargetSpend target_spend = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/third_party/googleapis/google/ads/searchads360/v0/resources/ad_group_criterion.proto b/third_party/googleapis/google/ads/searchads360/v0/resources/ad_group_criterion.proto index 90b7c16be..68d62bb98 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/resources/ad_group_criterion.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/resources/ad_group_criterion.proto @@ -35,6 +35,8 @@ option ruby_package = "Google::Ads::SearchAds360::V0::Resources"; // Proto file describing the ad group criterion resource. // An ad group criterion. +// The ad_group_criterion report only returns criteria that were explicitly +// added to the ad group. message AdGroupCriterion { option (google.api.resource) = { type: "searchads360.googleapis.com/AdGroupCriterion" @@ -183,9 +185,6 @@ message AdGroupCriterion { [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. google.ads.searchads360.v0.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; diff --git a/third_party/googleapis/google/ads/searchads360/v0/resources/campaign.proto b/third_party/googleapis/google/ads/searchads360/v0/resources/campaign.proto index 538c23008..5b9d81c10 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/resources/campaign.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/resources/campaign.proto @@ -269,6 +269,21 @@ message Campaign { google.ads.searchads360.v0.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Resource name of AccessibleBiddingStrategy, a read-only view + // of the unrestricted attributes of the attached portfolio bidding strategy + // identified by 'bidding_strategy'. Empty, if the campaign does not use a + // portfolio strategy. Unrestricted strategy attributes are available to all + // customers with whom the strategy is shared and are read from the + // AccessibleBiddingStrategy resource. In contrast, restricted attributes are + // only available to the owner customer of the strategy and their managers. + // Restricted attributes can only be read from the BiddingStrategy resource. + string accessible_bidding_strategy = 71 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/AccessibleBiddingStrategy" + } + ]; + // The date when campaign started in serving customer's timezone in YYYY-MM-DD // format. optional string start_date = 63; diff --git a/third_party/googleapis/google/ads/searchads360/v0/resources/campaign_criterion.proto b/third_party/googleapis/google/ads/searchads360/v0/resources/campaign_criterion.proto index ccf211e18..9174327c1 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/resources/campaign_criterion.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/resources/campaign_criterion.proto @@ -107,9 +107,6 @@ message CampaignCriterion { [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. google.ads.searchads360.v0.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; diff --git a/third_party/googleapis/google/ads/searchads360/v0/resources/gender_view.proto b/third_party/googleapis/google/ads/searchads360/v0/resources/gender_view.proto index 0d692a8c8..232f7b86e 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/resources/gender_view.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/resources/gender_view.proto @@ -31,6 +31,9 @@ option ruby_package = "Google::Ads::SearchAds360::V0::Resources"; // Proto file describing the gender view resource. // A gender view. +// The gender_view resource reflects the effective serving state, rather than +// what criteria were added. An ad group without gender criteria by default +// shows to all genders, so all genders appear in gender_view with stats. message GenderView { option (google.api.resource) = { type: "searchads360.googleapis.com/GenderView" diff --git a/third_party/googleapis/google/ads/searchads360/v0/resources/location_view.proto b/third_party/googleapis/google/ads/searchads360/v0/resources/location_view.proto index 189e547ef..93b692aff 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/resources/location_view.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/resources/location_view.proto @@ -30,8 +30,8 @@ option ruby_package = "Google::Ads::SearchAds360::V0::Resources"; // Proto file describing the location view resource. -// A location view summarizes the performance of campaigns by -// Location criteria. +// A location view summarizes the performance of campaigns by a Location +// criterion. message LocationView { option (google.api.resource) = { type: "searchads360.googleapis.com/LocationView" diff --git a/third_party/googleapis/google/ads/searchads360/v0/searchads360_grpc_service_config.json b/third_party/googleapis/google/ads/searchads360/v0/searchads360_grpc_service_config.json index 9677960ac..1d6e5dacb 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/searchads360_grpc_service_config.json +++ b/third_party/googleapis/google/ads/searchads360/v0/searchads360_grpc_service_config.json @@ -15,7 +15,7 @@ "service": "google.ads.searchads360.v0.services.SearchAds360Service" } ], - "timeout": "3600s", + "timeout": "14400s", "retryPolicy": { "initialBackoff": "5s", "maxBackoff": "60s", diff --git a/third_party/googleapis/google/ads/searchads360/v0/searchads360_v0.yaml b/third_party/googleapis/google/ads/searchads360/v0/searchads360_v0.yaml index eb93eeb2b..67e854026 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/searchads360_v0.yaml +++ b/third_party/googleapis/google/ads/searchads360/v0/searchads360_v0.yaml @@ -9,6 +9,9 @@ apis: - name: google.ads.searchads360.v0.services.SearchAds360FieldService - name: google.ads.searchads360.v0.services.SearchAds360Service +types: +- name: google.ads.searchads360.v0.errors.SearchAds360Failure + documentation: summary: |- The Search Ads 360 API allows developers to automate downloading reports diff --git a/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_field_service.proto b/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_field_service.proto index 06aa2a53b..b75bd8797 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_field_service.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_field_service.proto @@ -56,7 +56,8 @@ service SearchAds360FieldService { option (google.api.method_signature) = "resource_name"; } - // Returns all fields that match the search query. + // Returns all fields that match the search + // [query](/search-ads/reporting/concepts/field-service#use_a_query_to_get_field_details). // // List of thrown errors: // [AuthenticationError]() diff --git a/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_service.proto b/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_service.proto index 2beb89e90..06983f246 100644 --- a/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_service.proto +++ b/third_party/googleapis/google/ads/searchads360/v0/services/search_ads360_service.proto @@ -20,6 +20,7 @@ import "google/ads/searchads360/v0/common/metrics.proto"; import "google/ads/searchads360/v0/common/segments.proto"; import "google/ads/searchads360/v0/common/value.proto"; import "google/ads/searchads360/v0/enums/summary_row_setting.proto"; +import "google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto"; import "google/ads/searchads360/v0/resources/ad_group.proto"; import "google/ads/searchads360/v0/resources/ad_group_ad.proto"; import "google/ads/searchads360/v0/resources/ad_group_ad_label.proto"; @@ -381,6 +382,10 @@ message SearchAds360Row { google.ads.searchads360.v0.resources.CustomerAssetSet customer_asset_set = 195; + // The accessible bidding strategy referenced in the query. + google.ads.searchads360.v0.resources.AccessibleBiddingStrategy + accessible_bidding_strategy = 169; + // The CustomerManagerLink referenced in the query. google.ads.searchads360.v0.resources.CustomerManagerLink customer_manager_link = 61; diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/BUILD.bazel b/third_party/googleapis/google/ai/generativelanguage/v1/BUILD.bazel index 4070644b2..be1e6dbaf 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/BUILD.bazel +++ b/third_party/googleapis/google/ai/generativelanguage/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "generativelanguage_proto", @@ -48,6 +51,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -112,6 +116,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -163,6 +168,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -202,6 +208,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -239,6 +246,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -269,6 +277,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -315,6 +324,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -325,6 +335,7 @@ load( csharp_proto_library( name = "generativelanguage_csharp_proto", + extra_opts = [], deps = [":generativelanguage_proto"], ) @@ -361,6 +372,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/citation.proto b/third_party/googleapis/google/ai/generativelanguage/v1/citation.proto index f3886df0c..46c4fb425 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/citation.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1/citation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/content.proto b/third_party/googleapis/google/ai/generativelanguage/v1/content.proto index 2beaf60aa..d37707dca 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/content.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1/content.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,8 +62,12 @@ message Part { // Text should not be sent as raw bytes, use the 'text' field. message Blob { // The IANA standard MIME type of the source data. - // Accepted types include: "image/png", "image/jpeg", "image/heic", - // "image/heif", "image/webp". + // Examples: + // - image/png + // - image/jpeg + // If an unsupported MIME type is provided, an error will be returned. For a + // complete list of supported types, see [Supported file + // formats](https://ai.google.dev/gemini-api/docs/prompting_with_media#supported_file_formats). string mime_type = 1; // Raw bytes for media formats. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/generative_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1/generative_service.proto index 45343fac2..67399d8b4 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/generative_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1/generative_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,11 +36,20 @@ service GenerativeService { // Generates a response from the model given an input // `GenerateContentRequest`. + // + // Input capabilities differ between models, including tuned models. See the + // [model guide](https://ai.google.dev/models/gemini) and + // [tuning guide](https://ai.google.dev/docs/model_tuning_guidance) for + // details. rpc GenerateContent(GenerateContentRequest) returns (GenerateContentResponse) { option (google.api.http) = { post: "/v1/{model=models/*}:generateContent" body: "*" + additional_bindings { + post: "/v1/{model=tunedModels/*}:generateContent" + body: "*" + } }; option (google.api.method_signature) = "model,contents"; } @@ -105,6 +114,12 @@ enum TaskType { // Specifies that the embeddings will be used for clustering. CLUSTERING = 5; + + // Specifies that the given text will be used for question answering. + QUESTION_ANSWERING = 6; + + // Specifies that the given text will be used for fact verification. + FACT_VERIFICATION = 7; } // Request to generate a completion from the model. @@ -152,7 +167,7 @@ message GenerateContentRequest { message GenerationConfig { // Optional. Number of generated responses to return. // - // This value must be between [1, 8], inclusive. If unset, this will default + // Currently, this value can only be set to 1. If unset, this will default // to 1. optional int32 candidate_count = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -164,18 +179,16 @@ message GenerationConfig { // Optional. The maximum number of tokens to include in a candidate. // - // If unset, this will default to output_token_limit specified in the `Model` - // specification. + // Note: The default value varies by model, see the `Model.output_token_limit` + // attribute of the `Model` returned from the `getModel` function. optional int32 max_output_tokens = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Controls the randomness of the output. + // // Note: The default value varies by model, see the `Model.temperature` - // attribute of the `Model` returned the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. // - // Values can range from [0.0,1.0], - // inclusive. A value closer to 1.0 will produce responses that are more - // varied and creative, while a value closer to 0.0 will typically result in - // more straightforward responses from the model. + // Values can range from [0.0, 2.0]. optional float temperature = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum cumulative probability of tokens to consider when @@ -189,18 +202,19 @@ message GenerationConfig { // of tokens based on the cumulative probability. // // Note: The default value varies by model, see the `Model.top_p` - // attribute of the `Model` returned the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. optional float top_p = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum number of tokens to consider when sampling. // - // The model uses combined Top-k and nucleus sampling. - // + // Models use nucleus sampling or combined Top-k and nucleus sampling. // Top-k sampling considers the set of `top_k` most probable tokens. - // Defaults to 40. + // Models running with nucleus sampling don't allow top_k setting. // // Note: The default value varies by model, see the `Model.top_k` - // attribute of the `Model` returned the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. Empty + // `top_k` field in `Model` indicates the model doesn't apply top-k sampling + // and doesn't allow setting `top_k` on requests. optional int32 top_k = 7 [(google.api.field_behavior) = OPTIONAL]; } @@ -240,11 +254,26 @@ message GenerateContentResponse { repeated SafetyRating safety_ratings = 2; } + // Metadata on the generation request's token usage. + message UsageMetadata { + // Number of tokens in the prompt. + int32 prompt_token_count = 1; + + // Total number of tokens across the generated candidates. + int32 candidates_token_count = 2; + + // Total token count for the generation request (prompt + candidates). + int32 total_token_count = 3; + } + // Candidate responses from the model. repeated Candidate candidates = 1; // Returns the prompt's feedback related to the content filters. PromptFeedback prompt_feedback = 2; + + // Output only. Metadata on the generation requests' token usage. + UsageMetadata usage_metadata = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A response candidate generated from the model. @@ -330,6 +359,13 @@ message EmbedContentRequest { // Note: Specifying a `title` for `RETRIEVAL_DOCUMENT` provides better quality // embeddings for retrieval. optional string title = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional reduced dimension for the output embedding. If set, + // excessive values in the output embedding are truncated from the end. + // Supported by newer models since 2024, and the earlier model + // (`models/embedding-001`) cannot specify this value. + optional int32 output_dimensionality = 5 + [(google.api.field_behavior) = OPTIONAL]; } // A list of floats representing an embedding. @@ -391,8 +427,14 @@ message CountTokensRequest { } ]; - // Required. The input given to the model as a prompt. - repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. The input given to the model as a prompt. This field is ignored + // when `generate_content_request` is set. + repeated Content contents = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The overall input given to the model. CountTokens will count + // prompt, function calling, etc. + GenerateContentRequest generate_content_request = 3 + [(google.api.field_behavior) = OPTIONAL]; } // A response from `CountTokens`. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/generativeai_grpc_service_config.json b/third_party/googleapis/google/ai/generativelanguage/v1/generativeai_grpc_service_config.json index 7f5f8e43f..66d75c2d8 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/generativeai_grpc_service_config.json +++ b/third_party/googleapis/google/ai/generativelanguage/v1/generativeai_grpc_service_config.json @@ -13,9 +13,7 @@ { "service": "google.ai.generativelanguage.v1beta2.TextService", "method": "EmbedText" }, { "service": "google.ai.generativelanguage.v1beta.DiscussService", "method": "GenerateMessage" }, { "service": "google.ai.generativelanguage.v1beta.DiscussService", "method": "CountMessageTokens" }, - { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "GenerateContent" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "GenerateAnswer" }, - { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "StreamGenerateContent" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "EmbedContent" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "BatchEmbedContents" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "CountTokens" }, @@ -56,8 +54,6 @@ { "service": "google.ai.generativelanguage.v1beta.TextService", "method": "EmbedText" }, { "service": "google.ai.generativelanguage.v1beta.TextService", "method": "BatchEmbedText" }, { "service": "google.ai.generativelanguage.v1beta.TextService", "method": "CountTextTokens" }, - { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "GenerateContent" }, - { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "StreamGenerateContent" }, { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "EmbedContent" }, { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "BatchEmbedContents" }, { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "CountTokens" } @@ -70,5 +66,21 @@ "backoffMultiplier": 1.3, "retryableStatusCodes": ["UNAVAILABLE"] } + }, + { + "name": [ + { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "GenerateContent" }, + { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "StreamGenerateContent" }, + { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "GenerateContent" }, + { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "StreamGenerateContent" } + ], + "timeout": "600s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } }] -} \ No newline at end of file +} diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/generativelanguage_v1.yaml b/third_party/googleapis/google/ai/generativelanguage/v1/generativelanguage_v1.yaml index d89f66c32..33a2ad76c 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/generativelanguage_v1.yaml +++ b/third_party/googleapis/google/ai/generativelanguage/v1/generativelanguage_v1.yaml @@ -11,13 +11,12 @@ apis: documentation: summary: |- The Gemini API allows developers to build generative AI applications using - Gemini models. Gemini is our most capable model in the world, built from - the ground up to be multimodal. It can generalize and seamlessly - understand, operate across, and combine different types of information. - You can use the Gemini - API for use cases like reasoning across text and images, content - generation, dialogue agents, summarization and classification systems, and - more. + Gemini models. Gemini is our most capable model, built from the ground up + to be multimodal. It can generalize and seamlessly understand, operate + across, and combine different types of information including language, + images, audio, video, and code. You can use the Gemini API for use cases + like reasoning across text and images, content generation, dialogue + agents, summarization and classification systems, and more. http: rules: @@ -33,7 +32,7 @@ http: publishing: new_issue_uri: https://github.com/google/generative-ai-python/issues/new - documentation_uri: https://developers.generativeai.google/ + documentation_uri: https://ai.google.dev/docs api_short_name: generativelanguage github_label: 'api: ai' doc_tag_prefix: generativelanguage diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/model.proto b/third_party/googleapis/google/ai/generativelanguage/v1/model.proto index dc442d057..bb7945add 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/model.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -97,5 +97,7 @@ message Model { // Top-k sampling considers the set of `top_k` most probable tokens. // This value specifies default to be used by the backend while making the // call to the model. + // If empty, indicates the model doesn't use top-k sampling, and `top_k` isn't + // allowed as a generation parameter. optional int32 top_k = 11; } diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/model_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1/model_service.proto index 91b033e16..0e9162f42 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/model_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1/safety.proto b/third_party/googleapis/google/ai/generativelanguage/v1/safety.proto index 5362c5d6e..3530b448e 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1/safety.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1/safety.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,10 +34,10 @@ enum HarmCategory { // Negative or harmful comments targeting identity and/or protected attribute. HARM_CATEGORY_DEROGATORY = 1; - // Content that is rude, disrepspectful, or profane. + // Content that is rude, disrespectful, or profane. HARM_CATEGORY_TOXICITY = 2; - // Describes scenarios depictng violence against an individual or group, or + // Describes scenarios depicting violence against an individual or group, or // general descriptions of gore. HARM_CATEGORY_VIOLENCE = 3; @@ -104,7 +104,7 @@ message SafetyRating { // Safety setting, affecting the safety-blocking behavior. // -// Passing a safety setting for a category changes the allowed proability that +// Passing a safety setting for a category changes the allowed probability that // content is blocked. message SafetySetting { // Block at and beyond a specified harm probability. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/BUILD.bazel b/third_party/googleapis/google/ai/generativelanguage/v1beta/BUILD.bazel index 3ac256b1e..cc4681c7e 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/BUILD.bazel @@ -9,21 +9,28 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "generativelanguage_proto", srcs = [ + "cache_service.proto", + "cached_content.proto", "citation.proto", "content.proto", "discuss_service.proto", + "file.proto", + "file_service.proto", "generative_service.proto", "model.proto", "model_service.proto", @@ -41,6 +48,8 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:struct_proto", @@ -59,6 +68,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -99,8 +109,12 @@ java_gapic_library( java_gapic_test( name = "generativelanguage_java_gapic_test_suite", test_classes = [ + "com.google.ai.generativelanguage.v1beta.CacheServiceClientHttpJsonTest", + "com.google.ai.generativelanguage.v1beta.CacheServiceClientTest", "com.google.ai.generativelanguage.v1beta.DiscussServiceClientHttpJsonTest", "com.google.ai.generativelanguage.v1beta.DiscussServiceClientTest", + "com.google.ai.generativelanguage.v1beta.FileServiceClientHttpJsonTest", + "com.google.ai.generativelanguage.v1beta.FileServiceClientTest", "com.google.ai.generativelanguage.v1beta.GenerativeServiceClientHttpJsonTest", "com.google.ai.generativelanguage.v1beta.GenerativeServiceClientTest", "com.google.ai.generativelanguage.v1beta.ModelServiceClientHttpJsonTest", @@ -131,6 +145,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -146,6 +161,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", ], ) @@ -164,6 +180,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], ) @@ -183,6 +200,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -222,6 +240,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -259,6 +278,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -289,6 +309,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -335,6 +356,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -345,6 +367,7 @@ load( csharp_proto_library( name = "generativelanguage_csharp_proto", + extra_opts = [], deps = [":generativelanguage_proto"], ) @@ -381,6 +404,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/cache_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/cache_service.proto new file mode 100644 index 000000000..b2dbe90a4 --- /dev/null +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/cache_service.proto @@ -0,0 +1,147 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ai.generativelanguage.v1beta; + +import "google/ai/generativelanguage/v1beta/cached_content.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb"; +option java_multiple_files = true; +option java_outer_classname = "CacheServiceProto"; +option java_package = "com.google.ai.generativelanguage.v1beta"; + +// API for managing cache of content (CachedContent resources) that can be used +// in GenerativeService requests. This way generate content requests can benefit +// from preprocessing work being done earlier, possibly lowering their +// computational cost. It is intended to be used with large contexts. +service CacheService { + option (google.api.default_host) = "generativelanguage.googleapis.com"; + + // Lists CachedContents. + rpc ListCachedContents(ListCachedContentsRequest) + returns (ListCachedContentsResponse) { + option (google.api.http) = { + get: "/v1beta/cachedContents" + }; + option (google.api.method_signature) = ""; + } + + // Creates CachedContent resource. + rpc CreateCachedContent(CreateCachedContentRequest) returns (CachedContent) { + option (google.api.http) = { + post: "/v1beta/cachedContents" + body: "cached_content" + }; + option (google.api.method_signature) = "cached_content"; + } + + // Reads CachedContent resource. + rpc GetCachedContent(GetCachedContentRequest) returns (CachedContent) { + option (google.api.http) = { + get: "/v1beta/{name=cachedContents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates CachedContent resource (only expiration is updatable). + rpc UpdateCachedContent(UpdateCachedContentRequest) returns (CachedContent) { + option (google.api.http) = { + patch: "/v1beta/{cached_content.name=cachedContents/*}" + body: "cached_content" + }; + option (google.api.method_signature) = "cached_content,update_mask"; + } + + // Deletes CachedContent resource. + rpc DeleteCachedContent(DeleteCachedContentRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=cachedContents/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request to list CachedContents. +message ListCachedContentsRequest { + // Optional. The maximum number of cached contents to return. The service may + // return fewer than this value. If unspecified, some default (under maximum) + // number of items will be returned. The maximum value is 1000; values above + // 1000 will be coerced to 1000. + int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListCachedContents` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCachedContents` must + // match the call that provided the page token. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response with CachedContents list. +message ListCachedContentsResponse { + // List of cached contents. + repeated CachedContent cached_contents = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request to create CachedContent. +message CreateCachedContentRequest { + // Required. The cached content to create. + CachedContent cached_content = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request to read CachedContent. +message GetCachedContentRequest { + // Required. The resource name referring to the content cache entry. + // Format: `cachedContents/{id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/CachedContent" + } + ]; +} + +// Request to update CachedContent. +message UpdateCachedContentRequest { + // Required. The content cache entry to update + CachedContent cached_content = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. + google.protobuf.FieldMask update_mask = 2; +} + +// Request to delete CachedContent. +message DeleteCachedContentRequest { + // Required. The resource name referring to the content cache entry + // Format: `cachedContents/{id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/CachedContent" + } + ]; +} diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/cached_content.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/cached_content.proto new file mode 100644 index 000000000..3d5ec8c3b --- /dev/null +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/cached_content.proto @@ -0,0 +1,125 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ai.generativelanguage.v1beta; + +import "google/ai/generativelanguage/v1beta/content.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb"; +option java_multiple_files = true; +option java_outer_classname = "CachedContentProto"; +option java_package = "com.google.ai.generativelanguage.v1beta"; + +// Content that has been preprocessed and can be used in subsequent request +// to GenerativeService. +// +// Cached content can be only used with model it was created for. +message CachedContent { + option (google.api.resource) = { + type: "generativelanguage.googleapis.com/CachedContent" + pattern: "cachedContents/{id}" + plural: "cachedContents" + singular: "cachedContent" + }; + + // Metadata on the usage of the cached content. + message UsageMetadata { + // Total number of tokens that the cached content consumes. + int32 total_token_count = 1; + } + + // Specifies when this resource will expire. + oneof expiration { + // Timestamp in UTC of when this resource is considered expired. + // This is *always* provided on output, regardless of what was sent + // on input. + google.protobuf.Timestamp expire_time = 9; + + // Input only. New TTL for this resource, input only. + google.protobuf.Duration ttl = 10 + [(google.api.field_behavior) = INPUT_ONLY]; + } + + // Optional. Identifier. The resource name referring to the cached content. + // Format: `cachedContents/{id}` + optional string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Immutable. The user-generated meaningful display name of the + // cached content. Maximum 128 Unicode characters. + optional string display_name = 11 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The name of the `Model` to use for cached content + // Format: `models/{model}` + optional string model = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/Model" + } + ]; + + // Optional. Input only. Immutable. Developer set system instruction. + // Currently text only. + optional Content system_instruction = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Optional. Input only. Immutable. The content to cache. + repeated Content contents = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Optional. Input only. Immutable. A list of `Tools` the model may use to + // generate the next response + repeated Tool tools = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Optional. Input only. Immutable. Tool config. This config is shared for all + // tools. + optional ToolConfig tool_config = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Output only. Creation time of the cache entry. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the cache entry was last updated in UTC time. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata on the usage of the cached content. + UsageMetadata usage_metadata = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/citation.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/citation.proto index d524213fe..a15c85450 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/citation.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/citation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/content.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/content.proto index 4df3e7e8a..6368fe0f7 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/content.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/content.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -91,6 +91,15 @@ message Part { // object containing any output from the function is used as context to // the model. FunctionResponse function_response = 5; + + // URI based data. + FileData file_data = 6; + + // Code generated by the model that is meant to be executed. + ExecutableCode executable_code = 9; + + // Result of executing the `ExecutableCode`. + CodeExecutionResult code_execution_result = 10; } } @@ -99,14 +108,80 @@ message Part { // Text should not be sent as raw bytes, use the 'text' field. message Blob { // The IANA standard MIME type of the source data. - // Accepted types include: "image/png", "image/jpeg", "image/heic", - // "image/heif", "image/webp". + // Examples: + // - image/png + // - image/jpeg + // If an unsupported MIME type is provided, an error will be returned. For a + // complete list of supported types, see [Supported file + // formats](https://ai.google.dev/gemini-api/docs/prompting_with_media#supported_file_formats). string mime_type = 1; // Raw bytes for media formats. bytes data = 2; } +// URI based data. +message FileData { + // Optional. The IANA standard MIME type of the source data. + string mime_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. URI. + string file_uri = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Code generated by the model that is meant to be executed, and the result +// returned to the model. +// +// Only generated when using the `CodeExecution` tool, in which the code will +// be automatically executed, and a corresponding `CodeExecutionResult` will +// also be generated. +message ExecutableCode { + // Supported programming languages for the generated code. + enum Language { + // Unspecified language. This value should not be used. + LANGUAGE_UNSPECIFIED = 0; + + // Python >= 3.10, with numpy and simpy available. + PYTHON = 1; + } + + // Required. Programming language of the `code`. + Language language = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The code to be executed. + string code = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Result of executing the `ExecutableCode`. +// +// Only generated when using the `CodeExecution`, and always follows a `part` +// containing the `ExecutableCode`. +message CodeExecutionResult { + // Enumeration of possible outcomes of the code execution. + enum Outcome { + // Unspecified status. This value should not be used. + OUTCOME_UNSPECIFIED = 0; + + // Code execution completed successfully. + OUTCOME_OK = 1; + + // Code execution finished but with a failure. `stderr` should contain the + // reason. + OUTCOME_FAILED = 2; + + // Code execution ran for too long, and was cancelled. There may or may not + // be a partial output present. + OUTCOME_DEADLINE_EXCEEDED = 3; + } + + // Required. Outcome of the code execution. + Outcome outcome = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Contains stdout when code execution is successful, stderr or + // other description otherwise. + string output = 2 [(google.api.field_behavior) = OPTIONAL]; +} + // Tool details that the model may use to generate response. // // A `Tool` is a piece of code that enables the system to interact with @@ -127,6 +202,61 @@ message Tool { // turn. repeated FunctionDeclaration function_declarations = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enables the model to execute code as part of generation. + CodeExecution code_execution = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Tool that executes code generated by the model, and automatically returns +// the result to the model. +// +// See also `ExecutableCode` and `CodeExecutionResult` which are only generated +// when using this tool. +message CodeExecution {} + +// The Tool configuration containing parameters for specifying `Tool` use +// in the request. +message ToolConfig { + // Optional. Function calling config. + FunctionCallingConfig function_calling_config = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for specifying function calling behavior. +message FunctionCallingConfig { + // Defines the execution behavior for function calling by defining the + // execution mode. + enum Mode { + // Unspecified function calling mode. This value should not be used. + MODE_UNSPECIFIED = 0; + + // Default model behavior, model decides to predict either a function call + // or a natural language response. + AUTO = 1; + + // Model is constrained to always predicting a function call only. + // If "allowed_function_names" are set, the predicted function call will be + // limited to any one of "allowed_function_names", else the predicted + // function call will be any one of the provided "function_declarations". + ANY = 2; + + // Model will not predict any function call. Model behavior is same as when + // not passing any function declarations. + NONE = 3; + } + + // Optional. Specifies the mode in which function calling should execute. If + // unspecified, the default value will be set to AUTO. + Mode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A set of function names that, when provided, limits the functions + // the model will call. + // + // This should only be set when the Mode is ANY. Function names + // should match [FunctionDeclaration.name]. With mode set to ANY, model will + // predict a function call from the set of function names provided. + repeated string allowed_function_names = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Structured representation of a function declaration as defined by the diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/discuss_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/discuss_service.proto index 19ee3ddb3..ebcd1b4eb 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/discuss_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/discuss_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/file.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/file.proto new file mode 100644 index 000000000..653208f3f --- /dev/null +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/file.proto @@ -0,0 +1,112 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ai.generativelanguage.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb"; +option java_multiple_files = true; +option java_outer_classname = "FileProto"; +option java_package = "com.google.ai.generativelanguage.v1beta"; + +// A file uploaded to the API. +message File { + option (google.api.resource) = { + type: "generativelanguage.googleapis.com/File" + pattern: "files/{file}" + plural: "files" + singular: "file" + }; + + // States for the lifecycle of a File. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // File is being processed and cannot be used for inference yet. + PROCESSING = 1; + + // File is processed and available for inference. + ACTIVE = 2; + + // File failed processing. + FAILED = 10; + } + + // Metadata for the File. + oneof metadata { + // Output only. Metadata for a video. + VideoMetadata video_metadata = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Immutable. Identifier. The `File` resource name. The ID (name excluding the + // "files/" prefix) can contain up to 40 characters that are lowercase + // alphanumeric or dashes (-). The ID cannot start or end with a dash. If the + // name is empty on create, a unique name will be generated. Example: + // `files/123-456` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The human-readable display name for the `File`. The display name + // must be no more than 512 characters in length, including spaces. Example: + // "Welcome Image" + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. MIME type of the file. + string mime_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size of the file in bytes. + int64 size_bytes = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp of when the `File` was created. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp of when the `File` was last updated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp of when the `File` will be deleted. Only set if + // the `File` is scheduled to expire. + google.protobuf.Timestamp expiration_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. SHA-256 hash of the uploaded bytes. + bytes sha256_hash = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The uri of the `File`. + string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Processing state of the File. + State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error status if File processing failed. + google.rpc.Status error = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Metadata for a video `File`. +message VideoMetadata { + // Duration of the video. + google.protobuf.Duration video_duration = 1; +} diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/file_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/file_service.proto new file mode 100644 index 000000000..11490e8ca --- /dev/null +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/file_service.proto @@ -0,0 +1,121 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.ai.generativelanguage.v1beta; + +import "google/ai/generativelanguage/v1beta/file.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb"; +option java_multiple_files = true; +option java_outer_classname = "FileServiceProto"; +option java_package = "com.google.ai.generativelanguage.v1beta"; + +// An API for uploading and managing files. +service FileService { + option (google.api.default_host) = "generativelanguage.googleapis.com"; + + // Creates a `File`. + rpc CreateFile(CreateFileRequest) returns (CreateFileResponse) { + option (google.api.http) = { + post: "/v1beta/files" + body: "*" + }; + } + + // Lists the metadata for `File`s owned by the requesting project. + rpc ListFiles(ListFilesRequest) returns (ListFilesResponse) { + option (google.api.http) = { + get: "/v1beta/files" + }; + } + + // Gets the metadata for the given `File`. + rpc GetFile(GetFileRequest) returns (File) { + option (google.api.http) = { + get: "/v1beta/{name=files/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes the `File`. + rpc DeleteFile(DeleteFileRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=files/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request for `CreateFile`. +message CreateFileRequest { + // Optional. Metadata for the file to create. + File file = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for `CreateFile`. +message CreateFileResponse { + // Metadata for the created file. + File file = 1; +} + +// Request for `ListFiles`. +message ListFilesRequest { + // Optional. Maximum number of `File`s to return per page. + // If unspecified, defaults to 10. Maximum `page_size` is 100. + int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token from a previous `ListFiles` call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for `ListFiles`. +message ListFilesResponse { + // The list of `File`s. + repeated File files = 1; + + // A token that can be sent as a `page_token` into a subsequent `ListFiles` + // call. + string next_page_token = 2; +} + +// Request for `GetFile`. +message GetFileRequest { + // Required. The name of the `File` to get. + // Example: `files/abc-123` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/File" + } + ]; +} + +// Request for `DeleteFile`. +message DeleteFileRequest { + // Required. The name of the `File` to delete. + // Example: `files/abc-123` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/File" + } + ]; +} diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/generative_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/generative_service.proto index 7a0dcc0d2..93a530dda 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/generative_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/generative_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,11 +37,20 @@ service GenerativeService { // Generates a response from the model given an input // `GenerateContentRequest`. + // + // Input capabilities differ between models, including tuned models. See the + // [model guide](https://ai.google.dev/models/gemini) and + // [tuning guide](https://ai.google.dev/docs/model_tuning_guidance) for + // details. rpc GenerateContent(GenerateContentRequest) returns (GenerateContentResponse) { option (google.api.http) = { post: "/v1beta/{model=models/*}:generateContent" body: "*" + additional_bindings { + post: "/v1beta/{model=tunedModels/*}:generateContent" + body: "*" + } }; option (google.api.method_signature) = "model,contents"; } @@ -117,6 +126,12 @@ enum TaskType { // Specifies that the embeddings will be used for clustering. CLUSTERING = 5; + + // Specifies that the given text will be used for question answering. + QUESTION_ANSWERING = 6; + + // Specifies that the given text will be used for fact verification. + FACT_VERIFICATION = 7; } // Request to generate a completion from the model. @@ -131,6 +146,10 @@ message GenerateContentRequest { } ]; + // Optional. Developer set system instruction. Currently, text only. + optional Content system_instruction = 8 + [(google.api.field_behavior) = OPTIONAL]; + // Required. The content of the current conversation with the model. // // For single-turn queries, this is a single instance. For multi-turn queries, @@ -147,6 +166,9 @@ message GenerateContentRequest { // `Function`. repeated Tool tools = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Tool configuration for any `Tool` specified in the request. + ToolConfig tool_config = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. A list of unique `SafetySetting` instances for blocking unsafe // content. // @@ -166,6 +188,17 @@ message GenerateContentRequest { // Optional. Configuration options for model generation and outputs. optional GenerationConfig generation_config = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the cached content used as context to serve the + // prediction. Note: only used in explicit caching, where users can have + // control over caching (e.g. what content to cache) and enjoy guaranteed cost + // savings. Format: `cachedContents/{cachedContent}` + optional string cached_content = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/CachedContent" + } + ]; } // Configuration options for model generation and outputs. Not all parameters @@ -173,7 +206,7 @@ message GenerateContentRequest { message GenerationConfig { // Optional. Number of generated responses to return. // - // This value must be between [1, 8], inclusive. If unset, this will default + // Currently, this value can only be set to 1. If unset, this will default // to 1. optional int32 candidate_count = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -185,18 +218,16 @@ message GenerationConfig { // Optional. The maximum number of tokens to include in a candidate. // - // If unset, this will default to output_token_limit specified in the `Model` - // specification. + // Note: The default value varies by model, see the `Model.output_token_limit` + // attribute of the `Model` returned from the `getModel` function. optional int32 max_output_tokens = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Controls the randomness of the output. + // // Note: The default value varies by model, see the `Model.temperature` - // attribute of the `Model` returned the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. // - // Values can range from [0.0,1.0], - // inclusive. A value closer to 1.0 will produce responses that are more - // varied and creative, while a value closer to 0.0 will typically result in - // more straightforward responses from the model. + // Values can range from [0.0, 2.0]. optional float temperature = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum cumulative probability of tokens to consider when @@ -210,19 +241,36 @@ message GenerationConfig { // of tokens based on the cumulative probability. // // Note: The default value varies by model, see the `Model.top_p` - // attribute of the `Model` returned the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. optional float top_p = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum number of tokens to consider when sampling. // - // The model uses combined Top-k and nucleus sampling. - // + // Models use nucleus sampling or combined Top-k and nucleus sampling. // Top-k sampling considers the set of `top_k` most probable tokens. - // Defaults to 40. + // Models running with nucleus sampling don't allow top_k setting. // // Note: The default value varies by model, see the `Model.top_k` - // attribute of the `Model` returned the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. Empty + // `top_k` field in `Model` indicates the model doesn't apply top-k sampling + // and doesn't allow setting `top_k` on requests. optional int32 top_k = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output response mimetype of the generated candidate text. + // Supported mimetype: + // `text/plain`: (default) Text output. + // `application/json`: JSON response in the candidates. + string response_mime_type = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output response schema of the generated candidate text when + // response mime type can have schema. Schema can be objects, primitives or + // arrays and is a subset of [OpenAPI + // schema](https://spec.openapis.org/oas/v3.0.3#schema). + // + // If set, a compatible response_mime_type must also be set. + // Compatible mimetypes: + // `application/json`: Schema for JSON response. + Schema response_schema = 14 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for retrieving grounding content from a `Corpus` or @@ -272,7 +320,7 @@ message GenerateContentResponse { // `safety_ratings` to understand which safety category blocked it. SAFETY = 1; - // Prompt was blocked due to unknown reaasons. + // Prompt was blocked due to unknown reasons. OTHER = 2; } @@ -285,11 +333,32 @@ message GenerateContentResponse { repeated SafetyRating safety_ratings = 2; } + // Metadata on the generation request's token usage. + message UsageMetadata { + // Number of tokens in the prompt. When cached_content is set, this is still + // the total effective prompt size. I.e. this includes the number of tokens + // in the cached content. + int32 prompt_token_count = 1; + + // Number of tokens in the cached part of the prompt, i.e. in the cached + // content. + int32 cached_content_token_count = 4; + + // Total number of tokens across the generated candidates. + int32 candidates_token_count = 2; + + // Total token count for the generation request (prompt + candidates). + int32 total_token_count = 3; + } + // Candidate responses from the model. repeated Candidate candidates = 1; // Returns the prompt's feedback related to the content filters. PromptFeedback prompt_feedback = 2; + + // Output only. Metadata on the generation requests' token usage. + UsageMetadata usage_metadata = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A response candidate generated from the model. @@ -457,7 +526,9 @@ message GenerateAnswerRequest { // overrides the default settings for each `SafetyCategory` specified in the // safety_settings. If there is no `SafetySetting` for a given // `SafetyCategory` provided in the list, the API will use the default safety - // setting for that category. + // setting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH, + // HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, + // HARM_CATEGORY_HARASSMENT are supported. repeated SafetySetting safety_settings = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -566,6 +637,13 @@ message EmbedContentRequest { // Note: Specifying a `title` for `RETRIEVAL_DOCUMENT` provides better quality // embeddings for retrieval. optional string title = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional reduced dimension for the output embedding. If set, + // excessive values in the output embedding are truncated from the end. + // Supported by newer models since 2024, and the earlier model + // (`models/embedding-001`) cannot specify this value. + optional int32 output_dimensionality = 5 + [(google.api.field_behavior) = OPTIONAL]; } // A list of floats representing an embedding. @@ -627,8 +705,14 @@ message CountTokensRequest { } ]; - // Required. The input given to the model as a prompt. - repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. The input given to the model as a prompt. This field is ignored + // when `generate_content_request` is set. + repeated Content contents = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The overall input given to the model. CountTokens will count + // prompt, function calling, etc. + GenerateContentRequest generate_content_request = 3 + [(google.api.field_behavior) = OPTIONAL]; } // A response from `CountTokens`. @@ -637,6 +721,12 @@ message CountTokensRequest { message CountTokensResponse { // The number of tokens that the `model` tokenizes the `prompt` into. // - // Always non-negative. + // Always non-negative. When cached_content is set, this is still the total + // effective prompt size. I.e. this includes the number of tokens in the + // cached content. int32 total_tokens = 1; + + // Number of tokens in the cached part of the prompt, i.e. in the cached + // content. + int32 cached_content_token_count = 5; } diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/generativeai_grpc_service_config.json b/third_party/googleapis/google/ai/generativelanguage/v1beta/generativeai_grpc_service_config.json index 7f5f8e43f..66d75c2d8 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/generativeai_grpc_service_config.json +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/generativeai_grpc_service_config.json @@ -13,9 +13,7 @@ { "service": "google.ai.generativelanguage.v1beta2.TextService", "method": "EmbedText" }, { "service": "google.ai.generativelanguage.v1beta.DiscussService", "method": "GenerateMessage" }, { "service": "google.ai.generativelanguage.v1beta.DiscussService", "method": "CountMessageTokens" }, - { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "GenerateContent" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "GenerateAnswer" }, - { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "StreamGenerateContent" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "EmbedContent" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "BatchEmbedContents" }, { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "CountTokens" }, @@ -56,8 +54,6 @@ { "service": "google.ai.generativelanguage.v1beta.TextService", "method": "EmbedText" }, { "service": "google.ai.generativelanguage.v1beta.TextService", "method": "BatchEmbedText" }, { "service": "google.ai.generativelanguage.v1beta.TextService", "method": "CountTextTokens" }, - { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "GenerateContent" }, - { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "StreamGenerateContent" }, { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "EmbedContent" }, { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "BatchEmbedContents" }, { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "CountTokens" } @@ -70,5 +66,21 @@ "backoffMultiplier": 1.3, "retryableStatusCodes": ["UNAVAILABLE"] } + }, + { + "name": [ + { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "GenerateContent" }, + { "service": "google.ai.generativelanguage.v1beta.GenerativeService", "method": "StreamGenerateContent" }, + { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "GenerateContent" }, + { "service": "google.ai.generativelanguage.v1.GenerativeService", "method": "StreamGenerateContent" } + ], + "timeout": "600s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } }] -} \ No newline at end of file +} diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml b/third_party/googleapis/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml index d79811bac..3aea84b65 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml @@ -4,7 +4,9 @@ name: generativelanguage.googleapis.com title: Generative Language API apis: +- name: google.ai.generativelanguage.v1beta.CacheService - name: google.ai.generativelanguage.v1beta.DiscussService +- name: google.ai.generativelanguage.v1beta.FileService - name: google.ai.generativelanguage.v1beta.GenerativeService - name: google.ai.generativelanguage.v1beta.ModelService - name: google.ai.generativelanguage.v1beta.PermissionService @@ -15,17 +17,16 @@ apis: documentation: summary: |- The Gemini API allows developers to build generative AI applications using - Gemini models. Gemini is our most capable model in the world, built from - the ground up to be multimodal. It can generalize and seamlessly - understand, operate across, and combine different types of information. - You can use the Gemini - API for use cases like reasoning across text and images, content - generation, dialogue agents, summarization and classification systems, and - more. + Gemini models. Gemini is our most capable model, built from the ground up + to be multimodal. It can generalize and seamlessly understand, operate + across, and combine different types of information including language, + images, audio, video, and code. You can use the Gemini API for use cases + like reasoning across text and images, content generation, dialogue + agents, summarization and classification systems, and more. publishing: new_issue_uri: https://github.com/google/generative-ai-python/issues/new - documentation_uri: https://developers.generativeai.google/ + documentation_uri: https://ai.google.dev/docs api_short_name: generativelanguage github_label: 'api: ai' doc_tag_prefix: generativelanguage diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/model.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/model.proto index 46f6113ee..2fe19b36d 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/model.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -77,13 +77,16 @@ message Model { // Controls the randomness of the output. // - // Values can range over `[0.0,1.0]`, inclusive. A value closer to `1.0` will - // produce responses that are more varied, while a value closer to `0.0` will - // typically result in less surprising responses from the model. + // Values can range over `[0.0,max_temperature]`, inclusive. A higher value + // will produce responses that are more varied, while a value closer to `0.0` + // will typically result in less surprising responses from the model. // This value specifies default to be used by the backend while making the // call to the model. optional float temperature = 9; + // The maximum temperature this model can use. + optional float max_temperature = 13; + // For Nucleus sampling. // // Nucleus sampling considers the smallest set of tokens whose probability @@ -97,5 +100,7 @@ message Model { // Top-k sampling considers the set of `top_k` most probable tokens. // This value specifies default to be used by the backend while making the // call to the model. + // If empty, indicates the model doesn't use top-k sampling, and `top_k` isn't + // allowed as a generation parameter. optional int32 top_k = 11; } diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/model_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/model_service.proto index 641c37007..0c22e8e9d 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/model_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/permission.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/permission.proto index 809cdabfc..e9fd76504 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/permission.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/permission.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/permission_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/permission_service.proto index d09114ae2..cf2625172 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/permission_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/permission_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever.proto index 897263dfa..c60672e6c 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever_service.proto index 3de5febed..8601861dc 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/retriever_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/safety.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/safety.proto index 696d4ddc6..fcdb03a03 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/safety.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/safety.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,10 +34,10 @@ enum HarmCategory { // Negative or harmful comments targeting identity and/or protected attribute. HARM_CATEGORY_DEROGATORY = 1; - // Content that is rude, disrepspectful, or profane. + // Content that is rude, disrespectful, or profane. HARM_CATEGORY_TOXICITY = 2; - // Describes scenarios depictng violence against an individual or group, or + // Describes scenarios depicting violence against an individual or group, or // general descriptions of gore. HARM_CATEGORY_VIOLENCE = 3; @@ -143,7 +143,7 @@ message SafetyRating { // Safety setting, affecting the safety-blocking behavior. // -// Passing a safety setting for a category changes the allowed proability that +// Passing a safety setting for a category changes the allowed probability that // content is blocked. message SafetySetting { // Block at and beyond a specified harm probability. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/text_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/text_service.proto index b9a066888..779743bcb 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/text_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/text_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta/tuned_model.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta/tuned_model.proto index f50039237..73a2e5713 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta/tuned_model.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta/tuned_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -174,21 +174,38 @@ message TuningTask { Hyperparameters hyperparameters = 5 [(google.api.field_behavior) = IMMUTABLE]; } -// Hyperparameters controlling the tuning process. +// Hyperparameters controlling the tuning process. Read more at +// https://ai.google.dev/docs/model_tuning_guidance message Hyperparameters { + // Options for specifying learning rate during tuning. + oneof learning_rate_option { + // Optional. Immutable. The learning rate hyperparameter for tuning. + // If not set, a default of 0.001 or 0.0002 will be calculated based on the + // number of training examples. + float learning_rate = 16 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Immutable. The learning rate multiplier is used to calculate a + // final learning_rate based on the default (recommended) value. Actual + // learning rate := learning_rate_multiplier * default learning rate Default + // learning rate is dependent on base model and dataset size. If not set, a + // default of 1.0 will be used. + float learning_rate_multiplier = 17 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; + } + // Immutable. The number of training epochs. An epoch is one pass through the - // training data. If not set, a default of 10 will be used. + // training data. If not set, a default of 5 will be used. optional int32 epoch_count = 14 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The batch size hyperparameter for tuning. - // If not set, a default of 16 or 64 will be used based on the number of + // If not set, a default of 4 or 16 will be used based on the number of // training examples. optional int32 batch_size = 15 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. The learning rate hyperparameter for tuning. - // If not set, a default of 0.0002 or 0.002 will be calculated based on the - // number of training examples. - optional float learning_rate = 16 [(google.api.field_behavior) = IMMUTABLE]; } // Dataset for training or validation. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta2/citation.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta2/citation.proto index 53dad8ce9..f8cf2c9da 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta2/citation.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta2/citation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta2/discuss_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta2/discuss_service.proto index 60ba4226f..6e6e191cc 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta2/discuss_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta2/discuss_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta2/model.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta2/model.proto index 8d13a8712..221cf3ddd 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta2/model.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta2/model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta2/model_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta2/model_service.proto index a26db1259..858b02f67 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta2/model_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta2/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta2/safety.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta2/safety.proto index 1fc508f57..487f84ba2 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta2/safety.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta2/safety.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta2/text_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta2/text_service.proto index a1305cbf1..70910db26 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta2/text_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta2/text_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/citation.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/citation.proto index 0d8b3b9e7..d30d65fdb 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/citation.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/citation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/discuss_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/discuss_service.proto index 2862cde2d..ee3103407 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/discuss_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/discuss_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/model.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/model.proto index 7a85cb5b7..fc0e9f621 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/model.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/model_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/model_service.proto index 713ef3437..f15e7ba4c 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/model_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission.proto index 2f287a163..5fa716541 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission_service.proto index 4250ff628..824052168 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/permission_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/safety.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/safety.proto index 45ccfc87e..cc287bd59 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/safety.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/safety.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/text_service.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/text_service.proto index c86e1f647..2ed04004f 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/text_service.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/text_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/ai/generativelanguage/v1beta3/tuned_model.proto b/third_party/googleapis/google/ai/generativelanguage/v1beta3/tuned_model.proto index e291bf7ba..0163911a3 100644 --- a/third_party/googleapis/google/ai/generativelanguage/v1beta3/tuned_model.proto +++ b/third_party/googleapis/google/ai/generativelanguage/v1beta3/tuned_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/access_report.proto b/third_party/googleapis/google/analytics/admin/v1alpha/access_report.proto index 3875494a8..9acc78c30 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/access_report.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/access_report.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/analytics_admin.proto b/third_party/googleapis/google/analytics/admin/v1alpha/analytics_admin.proto index 62623c63f..70b037d30 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/analytics_admin.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/analytics_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/audience.proto b/third_party/googleapis/google/analytics/admin/v1alpha/audience.proto index 3478ce9dc..853e9bcf1 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/audience.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/channel_group.proto b/third_party/googleapis/google/analytics/admin/v1alpha/channel_group.proto index 2a8aaea73..278e9488a 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/channel_group.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/channel_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/event_create_and_edit.proto b/third_party/googleapis/google/analytics/admin/v1alpha/event_create_and_edit.proto index 9ff020f98..1fb38f6ce 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/event_create_and_edit.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/event_create_and_edit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/expanded_data_set.proto b/third_party/googleapis/google/analytics/admin/v1alpha/expanded_data_set.proto index be98ac8a4..839c0baab 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/expanded_data_set.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/expanded_data_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/resources.proto b/third_party/googleapis/google/analytics/admin/v1alpha/resources.proto index 7d65d26dd..4d84db427 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/resources.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1alpha/subproperty_event_filter.proto b/third_party/googleapis/google/analytics/admin/v1alpha/subproperty_event_filter.proto index b5f06eea3..204bdc33a 100644 --- a/third_party/googleapis/google/analytics/admin/v1alpha/subproperty_event_filter.proto +++ b/third_party/googleapis/google/analytics/admin/v1alpha/subproperty_event_filter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1beta/access_report.proto b/third_party/googleapis/google/analytics/admin/v1beta/access_report.proto index 57b703197..dde5181c3 100644 --- a/third_party/googleapis/google/analytics/admin/v1beta/access_report.proto +++ b/third_party/googleapis/google/analytics/admin/v1beta/access_report.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1beta/analytics_admin.proto b/third_party/googleapis/google/analytics/admin/v1beta/analytics_admin.proto index f7d153c5d..77c1091d4 100644 --- a/third_party/googleapis/google/analytics/admin/v1beta/analytics_admin.proto +++ b/third_party/googleapis/google/analytics/admin/v1beta/analytics_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/admin/v1beta/resources.proto b/third_party/googleapis/google/analytics/admin/v1beta/resources.proto index 46656802b..b58cf2d55 100644 --- a/third_party/googleapis/google/analytics/admin/v1beta/resources.proto +++ b/third_party/googleapis/google/analytics/admin/v1beta/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/data/v1alpha/BUILD.bazel b/third_party/googleapis/google/analytics/data/v1alpha/BUILD.bazel index a3d344961..74f4b61b8 100644 --- a/third_party/googleapis/google/analytics/data/v1alpha/BUILD.bazel +++ b/third_party/googleapis/google/analytics/data/v1alpha/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "data_proto", @@ -46,6 +49,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -108,6 +112,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -160,6 +165,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -199,6 +205,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -236,6 +243,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -266,6 +274,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -312,6 +321,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -322,6 +332,7 @@ load( csharp_proto_library( name = "data_csharp_proto", + extra_opts = [], deps = [":data_proto"], ) @@ -358,6 +369,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/analytics/data/v1alpha/analytics_data_api.proto b/third_party/googleapis/google/analytics/data/v1alpha/analytics_data_api.proto index ca5e5f64b..25d3d4c27 100644 --- a/third_party/googleapis/google/analytics/data/v1alpha/analytics_data_api.proto +++ b/third_party/googleapis/google/analytics/data/v1alpha/analytics_data_api.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -265,6 +265,56 @@ service AlphaAnalyticsData { }; option (google.api.method_signature) = "parent"; } + + // Initiates the creation of a report task. This method quickly + // returns a report task and initiates a long running + // asynchronous request to form a customized report of your Google Analytics + // event data. + rpc CreateReportTask(CreateReportTaskRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/reportTasks" + body: "report_task" + }; + option (google.api.method_signature) = "parent,report_task"; + option (google.longrunning.operation_info) = { + response_type: "ReportTask" + metadata_type: "ReportTaskMetadata" + }; + } + + // Retrieves a report task's content. After requesting the `CreateReportTask`, + // you are able to retrieve the report content once the report is + // ACTIVE. This method will return an error if the report task's state is not + // `ACTIVE`. A query response will return the tabular row & column values of + // the report. + rpc QueryReportTask(QueryReportTaskRequest) + returns (QueryReportTaskResponse) { + option (google.api.http) = { + post: "/v1alpha/{name=properties/*/reportTasks/*}:query" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Gets report metadata about a specific report task. After creating a report + // task, use this method to check its processing state or inspect its + // report definition. + rpc GetReportTask(GetReportTaskRequest) returns (ReportTask) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/reportTasks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all report tasks for a property. + rpc ListReportTasks(ListReportTasksRequest) + returns (ListReportTasksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/reportTasks" + }; + option (google.api.method_signature) = "parent"; + } } // A request to create a new recurring audience list. @@ -898,3 +948,303 @@ message RunFunnelReportResponse { // response types in JSON. string kind = 4; } + +// A specific report task configuration. +message ReportTask { + option (google.api.resource) = { + type: "analyticsdata.googleapis.com/ReportTask" + pattern: "properties/{property}/reportTasks/{report_task}" + plural: "reportTasks" + singular: "reportTask" + }; + + // The definition of how a report should be run. + message ReportDefinition { + // Optional. The dimensions requested and displayed. + repeated Dimension dimensions = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The metrics requested and displayed. + repeated Metric metrics = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Date ranges of data to read. If multiple date ranges are + // requested, each response row will contain a zero based date range index. + // If two date ranges overlap, the event data for the overlapping days is + // included in the response rows for both date ranges. In a cohort request, + // this `dateRanges` must be unspecified. + repeated DateRange date_ranges = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Dimension filters let you ask for only specific dimension + // values in the report. To learn more, see [Fundamentals of Dimension + // Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + // for examples. Metrics cannot be used in this filter. + FilterExpression dimension_filter = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The filter clause of metrics. Applied after aggregating the + // report's rows, similar to SQL having-clause. Dimensions cannot be used in + // this filter. + FilterExpression metric_filter = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The row count of the start row from Google Analytics Storage. + // The first row is counted as row 0. + // + // When creating a report task, the `offset` and `limit` parameters define + // the subset of data rows from Google Analytics storage to be included in + // the generated report. For example, if there are a total of 300,000 rows + // in Google Analytics storage, the initial report task may have the + // first 10,000 rows with a limit of 10,000 and an offset of 0. + // Subsequently, another report task could cover the next 10,000 rows with a + // limit of 10,000 and an offset of 10,000. + int64 offset = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of rows to return in the Report. If unspecified, + // 10,000 rows are returned. The API returns a maximum of 250,000 rows per + // request, no matter how many you ask for. `limit` must be positive. + // + // The API can also return fewer rows than the requested `limit`, if there + // aren't as many dimension values as the `limit`. For instance, there are + // fewer than 300 possible values for the dimension `country`, so when + // reporting on only `country`, you can't get more than 300 rows, even if + // you set `limit` to a higher value. + int64 limit = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Aggregation of metrics. Aggregated metric values will be shown + // in rows where the dimension_values are set to + // "RESERVED_(MetricAggregation)". + repeated MetricAggregation metric_aggregations = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies how rows are ordered in the response. + repeated OrderBy order_bys = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A currency code in ISO4217 format, such as "AED", "USD", "JPY". + // If the field is empty, the report uses the property's default currency. + string currency_code = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cohort group associated with this request. If there is a cohort + // group in the request the 'cohort' dimension must be present. + CohortSpec cohort_spec = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If false or unspecified, each row with all metrics equal to 0 + // will not be returned. If true, these rows will be returned if they are + // not separately removed by a filter. + // + // Regardless of this `keep_empty_rows` setting, only data recorded by the + // Google Analytics (GA4) property can be displayed in a report. + // + // For example if a property never logs a `purchase` event, then a query for + // the `eventName` dimension and `eventCount` metric will not have a row + // containing eventName: "purchase" and eventCount: 0. + bool keep_empty_rows = 13 [(google.api.field_behavior) = OPTIONAL]; + } + + // The report metadata for a specific report task. + message ReportMetadata { + // The processing state. + enum State { + // Unspecified state will never be used. + STATE_UNSPECIFIED = 0; + + // The report is currently creating and will be available in the + // future. Creating occurs immediately after the CreateReport call. + CREATING = 1; + + // The report is fully created and ready for querying. + ACTIVE = 2; + + // The report failed to be created. + FAILED = 3; + } + + // Output only. The current state for this report task. + optional State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when `CreateReportTask` was called and the report + // began the `CREATING` state. + optional google.protobuf.Timestamp begin_creating_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total quota tokens charged during creation of the + // report. Because this token count is based on activity from the `CREATING` + // state, this tokens charge will be fixed once a report task enters the + // `ACTIVE` or `FAILED` state. + int32 creation_quota_tokens_charged = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total number of rows in the report result. This field + // will be populated when the state is active. You can utilize + // `task_row_count` for pagination within the confines of their existing + // report. + optional int32 task_row_count = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error message is populated if a report task fails during + // creation. + optional string error_message = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total number of rows in Google Analytics storage. If you + // want to query additional data rows beyond the current report, they can + // initiate a new report task based on the `total_row_count`. + // + // The `task_row_count` represents the number of rows specifically + // pertaining to the current report, whereas `total_row_count` encompasses + // the total count of rows across all data retrieved from Google + // Analytics storage. + // + // For example, suppose the current report's `task_row_count` is 20, + // displaying the data from the first 20 rows. Simultaneously, the + // `total_row_count` is 30, indicating the presence of data for all 30 rows. + // The `task_row_count` can be utilizated to paginate through the initial 20 + // rows. To expand the report and include data from all 30 rows, a new + // report task can be created using the total_row_count to access the full + // set of 30 rows' worth of data. + optional int32 total_row_count = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Identifier. The report task resource name assigned during + // creation. Format: `properties/{property}/reportTasks/{report_task}` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. A report definition to fetch report data, which describes the + // structure of a report. It typically includes the fields that will be + // included in the report and the criteria that will be used to filter the + // data. + ReportDefinition report_definition = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The report metadata for a specific report task, which provides + // information about a report. It typically includes the following + // information: the resource name of the report, the state of the report, the + // timestamp the report was created, etc, + ReportMetadata report_metadata = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A request to create a report task. +message CreateReportTaskRequest { + // Required. The parent resource where this report task will be created. + // Format: `properties/{propertyId}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsdata.googleapis.com/ReportTask" + } + ]; + + // Required. The report task configuration to create. + ReportTask report_task = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the metadata of a long-running operation. Currently, this metadata +// is blank. +message ReportTaskMetadata {} + +// A request to fetch the report content for a report task. +message QueryReportTaskRequest { + // Required. The report source name. + // Format: `properties/{property}/reportTasks/{report}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The row count of the start row in the report. The first row is + // counted as row 0. + // + // When paging, the first request does not specify offset; or equivalently, + // sets offset to 0; the first request returns the first `limit` of rows. The + // second request sets offset to the `limit` of the first request; the second + // request returns the second `limit` of rows. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int64 offset = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of rows to return from the report. If unspecified, + // 10,000 rows are returned. The API returns a maximum of 250,000 rows per + // request, no matter how many you ask for. `limit` must be positive. + // + // The API can also return fewer rows than the requested `limit`, if there + // aren't as many dimension values as the `limit`. The number of rows + // available to a QueryReportTaskRequest is further limited by the limit of + // the associated ReportTask. A query can retrieve at most ReportTask.limit + // rows. For example, if the ReportTask has a limit of 1,000, then a + // QueryReportTask request with offset=900 and limit=500 will return at most + // 100 rows. + // + // To learn more about this pagination parameter, see + // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). + int64 limit = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The report content corresponding to a report task. +message QueryReportTaskResponse { + // Describes dimension columns. The number of DimensionHeaders and ordering of + // DimensionHeaders matches the dimensions present in rows. + repeated DimensionHeader dimension_headers = 1; + + // Describes metric columns. The number of MetricHeaders and ordering of + // MetricHeaders matches the metrics present in rows. + repeated MetricHeader metric_headers = 2; + + // Rows of dimension value combinations and metric values in the report. + repeated Row rows = 3; + + // If requested, the totaled values of metrics. + repeated Row totals = 4; + + // If requested, the maximum values of metrics. + repeated Row maximums = 5; + + // If requested, the minimum values of metrics. + repeated Row minimums = 6; + + // The total number of rows in the query result. + int32 row_count = 7; + + // Metadata for the report. + ResponseMetaData metadata = 8; +} + +// A request to retrieve configuration metadata about a specific report task. +message GetReportTaskRequest { + // Required. The report task resource name. + // Format: `properties/{property}/reportTasks/{report_task}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsdata.googleapis.com/ReportTask" + } + ]; +} + +// A request to list all report tasks for a property. +message ListReportTasksRequest { + // Required. All report tasks for this property will be listed in the + // response. Format: `properties/{property}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsdata.googleapis.com/ReportTask" + } + ]; + + // Optional. The maximum number of report tasks to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListReportTasks` call. + // Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of all report tasks for a property. +message ListReportTasksResponse { + // Each report task for a property. + repeated ReportTask report_tasks = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + optional string next_page_token = 2; +} diff --git a/third_party/googleapis/google/analytics/data/v1alpha/data.proto b/third_party/googleapis/google/analytics/data/v1alpha/data.proto index dc862ddd3..b861a33ce 100644 --- a/third_party/googleapis/google/analytics/data/v1alpha/data.proto +++ b/third_party/googleapis/google/analytics/data/v1alpha/data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -119,6 +119,43 @@ message DimensionExpression { } } +// The quantitative measurements of a report. For example, the metric +// `eventCount` is the total number of events. Requests are allowed up to 10 +// metrics. +message Metric { + // The name of the metric. See the [API + // Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) + // for the list of metric names supported by core reporting methods such + // as `runReport` and `batchRunReports`. See + // [Realtime + // Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema#metrics) + // for the list of metric names supported by the `runRealtimeReport` + // method. See + // [Funnel + // Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/exploration-api-schema#metrics) + // for the list of metric names supported by the `runFunnelReport` + // method. + // + // If `expression` is specified, `name` can be any string that you would like + // within the allowed character set. For example if `expression` is + // `screenPageViews/sessions`, you could call that metric's name = + // `viewsPerSession`. Metric names that you choose must match the regular + // expression `^[a-zA-Z0-9_]$`. + // + // Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric + // `expression`. + string name = 1; + + // A mathematical expression for derived metrics. For example, the metric + // Event count per user is `eventCount/totalUsers`. + string expression = 2; + + // Indicates if a metric is invisible in the report response. If a metric is + // invisible, the metric will not produce a column in the response, but can be + // used in `metricFilter`, `orderBys`, or a metric `expression`. + bool invisible = 3; +} + // To express dimension or metric filters. The fields in the same // FilterExpression need to be either all dimensions or all metrics. message FilterExpression { @@ -243,6 +280,58 @@ message NumericFilter { NumericValue value = 2; } +// Order bys define how rows will be sorted in the response. For example, +// ordering rows by descending event count is one ordering, and ordering rows by +// the event name string is a different ordering. +message OrderBy { + // Sorts by metric values. + message MetricOrderBy { + // A metric name in the request to order by. + string metric_name = 1; + } + + // Sorts by dimension values. + message DimensionOrderBy { + // Rule to order the string dimension values by. + enum OrderType { + // Unspecified. + ORDER_TYPE_UNSPECIFIED = 0; + + // Alphanumeric sort by Unicode code point. For example, "2" < "A" < "X" < + // "b" < "z". + ALPHANUMERIC = 1; + + // Case insensitive alphanumeric sort by lower case Unicode code point. + // For example, "2" < "A" < "b" < "X" < "z". + CASE_INSENSITIVE_ALPHANUMERIC = 2; + + // Dimension values are converted to numbers before sorting. For example + // in NUMERIC sort, "25" < "100", and in `ALPHANUMERIC` sort, "100" < + // "25". Non-numeric dimension values all have equal ordering value below + // all numeric values. + NUMERIC = 3; + } + + // A dimension name in the request to order by. + string dimension_name = 1; + + // Controls the rule for dimension value ordering. + OrderType order_type = 2; + } + + // Specify one type of order by for `OrderBy`. + oneof one_order_by { + // Sorts results by a metric's values. + MetricOrderBy metric = 1; + + // Sorts results by a dimension's values. + DimensionOrderBy dimension = 2; + } + + // If true, sorts by descending order. + bool desc = 4; +} + // To express that the result needs to be between two numbers (inclusive). message BetweenFilter { // Begins with this number. @@ -264,6 +353,209 @@ message NumericValue { } } +// The specification of cohorts for a cohort report. +// +// Cohort reports create a time series of user retention for the cohort. For +// example, you could select the cohort of users that were acquired in the first +// week of September and follow that cohort for the next six weeks. Selecting +// the users acquired in the first week of September cohort is specified in the +// `cohort` object. Following that cohort for the next six weeks is specified in +// the `cohortsRange` object. +// +// For examples, see [Cohort Report +// Examples](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced#cohort_report_examples). +// +// The report response could show a weekly time series where say your app has +// retained 60% of this cohort after three weeks and 25% of this cohort after +// six weeks. These two percentages can be calculated by the metric +// `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the report. +message CohortSpec { + // Defines the selection criteria to group users into cohorts. + // + // Most cohort reports define only a single cohort. If multiple cohorts are + // specified, each cohort can be recognized in the report by their name. + repeated Cohort cohorts = 1; + + // Cohort reports follow cohorts over an extended reporting date range. This + // range specifies an offset duration to follow the cohorts over. + CohortsRange cohorts_range = 2; + + // Optional settings for a cohort report. + CohortReportSettings cohort_report_settings = 3; +} + +// Defines a cohort selection criteria. A cohort is a group of users who share +// a common characteristic. For example, users with the same `firstSessionDate` +// belong to the same cohort. +message Cohort { + // Assigns a name to this cohort. The dimension `cohort` is valued to this + // name in a report response. If set, cannot begin with `cohort_` or + // `RESERVED_`. If not set, cohorts are named by their zero based index + // `cohort_0`, `cohort_1`, etc. + string name = 1; + + // Dimension used by the cohort. Required and only supports + // `firstSessionDate`. + string dimension = 2; + + // The cohort selects users whose first touch date is between start date and + // end date defined in the `dateRange`. This `dateRange` does not specify the + // full date range of event data that is present in a cohort report. In a + // cohort report, this `dateRange` is extended by the granularity and offset + // present in the `cohortsRange`; event data for the extended reporting date + // range is present in a cohort report. + // + // In a cohort request, this `dateRange` is required and the `dateRanges` in + // the `RunReportRequest` or `RunPivotReportRequest` must be unspecified. + // + // This `dateRange` should generally be aligned with the cohort's granularity. + // If `CohortsRange` uses daily granularity, this `dateRange` can be a single + // day. If `CohortsRange` uses weekly granularity, this `dateRange` can be + // aligned to a week boundary, starting at Sunday and ending Saturday. If + // `CohortsRange` uses monthly granularity, this `dateRange` can be aligned to + // a month, starting at the first and ending on the last day of the month. + DateRange date_range = 3; +} + +// Configures the extended reporting date range for a cohort report. Specifies +// an offset duration to follow the cohorts over. +message CohortsRange { + // The granularity used to interpret the `startOffset` and `endOffset` for the + // extended reporting date range for a cohort report. + enum Granularity { + // Should never be specified. + GRANULARITY_UNSPECIFIED = 0; + + // Daily granularity. Commonly used if the cohort's `dateRange` is a single + // day and the request contains `cohortNthDay`. + DAILY = 1; + + // Weekly granularity. Commonly used if the cohort's `dateRange` is a week + // in duration (starting on Sunday and ending on Saturday) and the request + // contains `cohortNthWeek`. + WEEKLY = 2; + + // Monthly granularity. Commonly used if the cohort's `dateRange` is a month + // in duration and the request contains `cohortNthMonth`. + MONTHLY = 3; + } + + // Required. The granularity used to interpret the `startOffset` and + // `endOffset` for the extended reporting date range for a cohort report. + Granularity granularity = 1; + + // `startOffset` specifies the start date of the extended reporting date range + // for a cohort report. `startOffset` is commonly set to 0 so that reports + // contain data from the acquisition of the cohort forward. + // + // If `granularity` is `DAILY`, the `startDate` of the extended reporting date + // range is `startDate` of the cohort plus `startOffset` days. + // + // If `granularity` is `WEEKLY`, the `startDate` of the extended reporting + // date range is `startDate` of the cohort plus `startOffset * 7` days. + // + // If `granularity` is `MONTHLY`, the `startDate` of the extended reporting + // date range is `startDate` of the cohort plus `startOffset * 30` days. + int32 start_offset = 2; + + // Required. `endOffset` specifies the end date of the extended reporting date + // range for a cohort report. `endOffset` can be any positive integer but is + // commonly set to 5 to 10 so that reports contain data on the cohort for the + // next several granularity time periods. + // + // If `granularity` is `DAILY`, the `endDate` of the extended reporting date + // range is `endDate` of the cohort plus `endOffset` days. + // + // If `granularity` is `WEEKLY`, the `endDate` of the extended reporting date + // range is `endDate` of the cohort plus `endOffset * 7` days. + // + // If `granularity` is `MONTHLY`, the `endDate` of the extended reporting date + // range is `endDate` of the cohort plus `endOffset * 30` days. + int32 end_offset = 3; +} + +// Optional settings of a cohort report. +message CohortReportSettings { + // If true, accumulates the result from first touch day to the end day. Not + // supported in `RunReportRequest`. + bool accumulate = 1; +} + +// Response's metadata carrying additional information about the report content. +message ResponseMetaData { + // The schema restrictions actively enforced in creating this report. To learn + // more, see [Access and data-restriction + // management](https://support.google.com/analytics/answer/10851388). + message SchemaRestrictionResponse { + // A metric actively restricted in creating the report. + message ActiveMetricRestriction { + // The name of the restricted metric. + optional string metric_name = 1; + + // The reason for this metric's restriction. + repeated RestrictedMetricType restricted_metric_types = 2; + } + + // All restrictions actively enforced in creating the report. For example, + // `purchaseRevenue` always has the restriction type `REVENUE_DATA`. + // However, this active response restriction is only populated if the user's + // custom role disallows access to `REVENUE_DATA`. + repeated ActiveMetricRestriction active_metric_restrictions = 1; + } + + // If true, indicates some buckets of dimension combinations are rolled into + // "(other)" row. This can happen for high cardinality reports. + // + // The metadata parameter dataLossFromOtherRow is populated based on the + // aggregated data table used in the report. The parameter will be accurately + // populated regardless of the filters and limits in the report. + // + // For example, the (other) row could be dropped from the report because the + // request contains a filter on sessionSource = google. This parameter will + // still be populated if data loss from other row was present in the input + // aggregate data used to generate this report. + // + // To learn more, see [About the (other) row and data + // sampling](https://support.google.com/analytics/answer/13208658#reports). + bool data_loss_from_other_row = 3; + + // Describes the schema restrictions actively enforced in creating this + // report. To learn more, see [Access and data-restriction + // management](https://support.google.com/analytics/answer/10851388). + optional SchemaRestrictionResponse schema_restriction_response = 4; + + // The currency code used in this report. Intended to be used in formatting + // currency metrics like `purchaseRevenue` for visualization. If currency_code + // was specified in the request, this response parameter will echo the request + // parameter; otherwise, this response parameter is the property's current + // currency_code. + // + // Currency codes are string encodings of currency types from the ISO 4217 + // standard (https://en.wikipedia.org/wiki/ISO_4217); for example "USD", + // "EUR", "JPY". To learn more, see + // https://support.google.com/analytics/answer/9796179. + optional string currency_code = 5; + + // The property's current timezone. Intended to be used to interpret + // time-based dimensions like `hour` and `minute`. Formatted as strings from + // the IANA Time Zone database (https://www.iana.org/time-zones); for example + // "America/New_York" or "Asia/Tokyo". + optional string time_zone = 6; + + // If empty reason is specified, the report is empty for this reason. + optional string empty_reason = 7; + + // If `subjectToThresholding` is true, this report is subject to thresholding + // and only returns data that meets the minimum aggregation thresholds. It is + // possible for a request to be subject to thresholding thresholding and no + // data is absent from the report, and this happens when all data is above the + // thresholds. To learn more, see [Data + // thresholds](https://support.google.com/analytics/answer/9383630) and [About + // Demographics and + // Interests](https://support.google.com/analytics/answer/2799357). + optional bool subject_to_thresholding = 8; +} + // Describes a dimension column in the report. Dimensions requested in a report // produce column entries within rows and DimensionHeaders. However, dimensions // used exclusively within filters or expressions do not produce columns in a @@ -1209,6 +1501,24 @@ message SamplingMetadata { int64 sampling_space_size = 2; } +// Represents aggregation of metrics. +enum MetricAggregation { + // Unspecified operator. + METRIC_AGGREGATION_UNSPECIFIED = 0; + + // SUM operator. + TOTAL = 1; + + // Minimum operator. + MINIMUM = 5; + + // Maximum operator. + MAXIMUM = 6; + + // Count operator. + COUNT = 4; +} + // A metric's value type. enum MetricType { // Unspecified type. @@ -1250,3 +1560,16 @@ enum MetricType { // A length in kilometers; a special floating point type. TYPE_KILOMETERS = 13; } + +// Categories of data that you may be restricted from viewing on certain GA4 +// properties. +enum RestrictedMetricType { + // Unspecified type. + RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0; + + // Cost metrics such as `adCost`. + COST_DATA = 1; + + // Revenue metrics such as `purchaseRevenue`. + REVENUE_DATA = 2; +} diff --git a/third_party/googleapis/google/analytics/data/v1beta/analytics_data_api.proto b/third_party/googleapis/google/analytics/data/v1beta/analytics_data_api.proto index 77c1a456b..d65e20741 100644 --- a/third_party/googleapis/google/analytics/data/v1beta/analytics_data_api.proto +++ b/third_party/googleapis/google/analytics/data/v1beta/analytics_data_api.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/analytics/data/v1beta/data.proto b/third_party/googleapis/google/analytics/data/v1beta/data.proto index 3ea494e7d..af9b73a4b 100644 --- a/third_party/googleapis/google/analytics/data/v1beta/data.proto +++ b/third_party/googleapis/google/analytics/data/v1beta/data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/annotations.proto b/third_party/googleapis/google/api/annotations.proto index efdab3db6..84c48164a 100644 --- a/third_party/googleapis/google/api/annotations.proto +++ b/third_party/googleapis/google/api/annotations.proto @@ -1,4 +1,4 @@ -// Copyright 2015 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/apikeys/v2/BUILD.bazel b/third_party/googleapis/google/api/apikeys/v2/BUILD.bazel index 96d1498d4..f919ee83e 100644 --- a/third_party/googleapis/google/api/apikeys/v2/BUILD.bazel +++ b/third_party/googleapis/google/api/apikeys/v2/BUILD.bazel @@ -220,7 +220,7 @@ php_gapic_library( name = "apikeys_php_gapic", srcs = [":apikeys_proto_with_info"], grpc_service_config = "apikeys_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "apikeys_v2.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/api/apikeys/v2/apikeys.proto b/third_party/googleapis/google/api/apikeys/v2/apikeys.proto index 132a03a45..ea809b15b 100644 --- a/third_party/googleapis/google/api/apikeys/v2/apikeys.proto +++ b/third_party/googleapis/google/api/apikeys/v2/apikeys.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/apikeys/v2/resources.proto b/third_party/googleapis/google/api/apikeys/v2/resources.proto index a4f39c7ae..98dfff24f 100644 --- a/third_party/googleapis/google/api/apikeys/v2/resources.proto +++ b/third_party/googleapis/google/api/apikeys/v2/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/auth.proto b/third_party/googleapis/google/api/auth.proto index ca91bb1bf..19d5924bb 100644 --- a/third_party/googleapis/google/api/auth.proto +++ b/third_party/googleapis/google/api/auth.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/backend.proto b/third_party/googleapis/google/api/backend.proto index 6ff68878b..499737a3e 100644 --- a/third_party/googleapis/google/api/backend.proto +++ b/third_party/googleapis/google/api/backend.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/billing.proto b/third_party/googleapis/google/api/billing.proto index 8b75452fb..234f518fd 100644 --- a/third_party/googleapis/google/api/billing.proto +++ b/third_party/googleapis/google/api/billing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/client.proto b/third_party/googleapis/google/api/client.proto index 39bdde82a..3a5f9290f 100644 --- a/third_party/googleapis/google/api/client.proto +++ b/third_party/googleapis/google/api/client.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -98,6 +98,22 @@ extend google.protobuf.ServiceOptions { // ... // } string oauth_scopes = 1050; + + // The API version of this service, which should be sent by version-aware + // clients to the service. This allows services to abide by the schema and + // behavior of the service at the time this API version was deployed. + // The format of the API version must be treated as opaque by clients. + // Services may use a format with an apparent structure, but clients must + // not rely on this to determine components within an API version, or attempt + // to construct other valid API versions. Note that this is for upcoming + // functionality and may not be implemented for all services. + // + // Example: + // + // service Foo { + // option (google.api.api_version) = "v1_20230821_preview"; + // } + string api_version = 525000001; } // Required information for every language. @@ -192,6 +208,10 @@ message Publishing { // Optional link to proto reference documentation. Example: // https://cloud.google.com/pubsub/lite/docs/reference/rpc string proto_reference_documentation_uri = 110; + + // Optional link to REST reference documentation. Example: + // https://cloud.google.com/pubsub/lite/docs/reference/rest + string rest_reference_documentation_uri = 111; } // Settings for Java client libraries. diff --git a/third_party/googleapis/google/api/cloudquotas/v1/BUILD.bazel b/third_party/googleapis/google/api/cloudquotas/v1/BUILD.bazel index bdae8949a..b4b8cedf0 100644 --- a/third_party/googleapis/google/api/cloudquotas/v1/BUILD.bazel +++ b/third_party/googleapis/google/api/cloudquotas/v1/BUILD.bazel @@ -130,7 +130,7 @@ go_gapic_library( grpc_service_config = "cloudquotas_v1_grpc_service_config.json", importpath = "cloud.google.com/go/cloudquotas/apiv1;cloudquotas", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "cloudquotas_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas.proto b/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas.proto index 2d35f2d09..9cfd0a016 100644 --- a/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas.proto +++ b/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -231,19 +231,16 @@ message ListQuotaPreferencesRequest { // create/update time range. // // Example filters: - // `state=PENDING OR state=PENDING_PARTIALLY_GRANTED` - // `state=PENDING OR state=PENDING_PARTIALLY_GRANTED AND - // creation_time>2022-12-03T10:30:00` - // - // If no filter is provided, returns all pending quota preferences. + // `reconciling=true AND request_type=CLOUD_CONSOLE`, + // `reconciling=true OR creation_time>2022-12-03T10:30:00` string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. How to order of the results. By default, the results are ordered // by create time. // // Example orders: - // `type` - // `state, create_time` + // `quota_id`, + // `service, create_time` string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas_v1.yaml b/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas_v1.yaml index 30ba31c06..d8f7cb308 100644 --- a/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas_v1.yaml +++ b/third_party/googleapis/google/api/cloudquotas/v1/cloudquotas_v1.yaml @@ -21,7 +21,7 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=445904 - documentation_uri: https://cloud.google.com/docs/quota/api-overview + documentation_uri: https://cloud.google.com/docs/quotas/api-overview api_short_name: cloudquotas github_label: 'api: cloudquotas' doc_tag_prefix: cloudquotas diff --git a/third_party/googleapis/google/api/cloudquotas/v1/resources.proto b/third_party/googleapis/google/api/cloudquotas/v1/resources.proto index 9c7ef471d..2f57aeae5 100644 --- a/third_party/googleapis/google/api/cloudquotas/v1/resources.proto +++ b/third_party/googleapis/google/api/cloudquotas/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -126,15 +126,9 @@ message QuotaInfo { // on the total number of concurrent operations in flight at any given time. bool is_concurrent = 15; - // URI to the page where the user can request more quotas for the cloud - // service, such as - // https://docs.google.com/spreadsheet/viewform?formkey=abc123&entry_0={email}&entry_1={id}. - // Google Developers Console UI replace {email} with the current - // user's e-mail, {id} with the current project number, or organization ID - // with "organizations/" prefix. For example, - // https://docs.google.com/spreadsheet/viewform?formkey=abc123&entry_0=johndoe@gmail.com&entry_1=25463754, - // or - // https://docs.google.com/spreadsheet/viewform?formkey=abc123&entry_0=johndoe@gmail.com&entry_1=organizations/26474422. + // URI to the page where users can request more quota for the cloud + // service—for example, + // https://console.cloud.google.com/iam-admin/quotas. string service_request_quota_uri = 17; } @@ -180,9 +174,9 @@ message QuotaPreference { // `projects/123/locations/global/quotaPreferences/my-config-for-us-east1` string name = 1; - // The dimensions that this quota preference applies to. The key of the map - // entry is the name of a dimension, such as "region", "zone", "network_id", - // and the value of the map entry is the dimension value. + // Immutable. The dimensions that this quota preference applies to. The key of + // the map entry is the name of a dimension, such as "region", "zone", + // "network_id", and the value of the map entry is the dimension value. // // If a dimension is missing from the map of dimensions, the quota preference // applies to all the dimension values except for those that have other quota @@ -194,7 +188,7 @@ message QuotaPreference { // // Example: {"provider", "Foo Inc"} where "provider" is a service specific // dimension. - map dimensions = 2; + map dimensions = 2 [(google.api.field_behavior) = IMMUTABLE]; // Required. Preferred quota configuration. QuotaConfig quota_config = 3 [(google.api.field_behavior) = REQUIRED]; @@ -227,17 +221,16 @@ message QuotaPreference { // The reason / justification for this quota preference. string justification = 11; - // Required. Input only. An email address that can be used for quota related - // communication between the Google Cloud and the user in case the Google - // Cloud needs further information to make a decision on whether the user - // preferred quota can be granted. + // Input only. An email address that can be used to contact the the user, in + // case Google Cloud needs more information to make a decision before + // additional quota can be granted. // - // The Google account for the email address must have quota update permission - // for the project, folder or organization this quota preference is for. - string contact_email = 12 [ - (google.api.field_behavior) = INPUT_ONLY, - (google.api.field_behavior) = REQUIRED - ]; + // When requesting a quota increase, the email address is required. + // When requesting a quota decrease, the email address is optional. + // For example, the email address is optional when the + // `QuotaConfig.preferred_value` is smaller than the + // `QuotaDetails.reset_value`. + string contact_email = 12 [(google.api.field_behavior) = INPUT_ONLY]; } // The preferred quota configuration. @@ -272,10 +265,10 @@ message QuotaConfig { // quota decrease requests do not have a trace id. string trace_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The annotations map for clients to store small amounts of arbitrary data. - // Do not put PII or other sensitive information here. - // See https://google.aip.dev/128#annotations - map annotations = 5; + // Optional. The annotations map for clients to store small amounts of + // arbitrary data. Do not put PII or other sensitive information here. See + // https://google.aip.dev/128#annotations + map annotations = 5 [(google.api.field_behavior) = OPTIONAL]; // Output only. The origin of the quota preference request. Origin request_origin = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -308,4 +301,15 @@ message DimensionsInfo { message QuotaDetails { // The value currently in effect and being enforced. int64 value = 1; + + // Rollout information of this quota. + // This field is present only if the effective limit will change due to the + // ongoing rollout of the service config. + RolloutInfo rollout_info = 3; +} + +// [Output only] Rollout information of a quota. +message RolloutInfo { + // Whether there is an ongoing rollout for a quota or not. + bool ongoing_rollout = 1; } diff --git a/third_party/googleapis/google/api/config_change.proto b/third_party/googleapis/google/api/config_change.proto index 1dc8044b9..8bbe91378 100644 --- a/third_party/googleapis/google/api/config_change.proto +++ b/third_party/googleapis/google/api/config_change.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/consumer.proto b/third_party/googleapis/google/api/consumer.proto index b7e5df1c8..d63a2d7a0 100644 --- a/third_party/googleapis/google/api/consumer.proto +++ b/third_party/googleapis/google/api/consumer.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/context.proto b/third_party/googleapis/google/api/context.proto index 1b1651780..78f2813b3 100644 --- a/third_party/googleapis/google/api/context.proto +++ b/third_party/googleapis/google/api/context.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/control.proto b/third_party/googleapis/google/api/control.proto index cbbce6f61..a5b824345 100644 --- a/third_party/googleapis/google/api/control.proto +++ b/third_party/googleapis/google/api/control.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/distribution.proto b/third_party/googleapis/google/api/distribution.proto index b0bc4930f..7e0d32902 100644 --- a/third_party/googleapis/google/api/distribution.proto +++ b/third_party/googleapis/google/api/distribution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/documentation.proto b/third_party/googleapis/google/api/documentation.proto index 0dabdfcf8..1f2a63edf 100644 --- a/third_party/googleapis/google/api/documentation.proto +++ b/third_party/googleapis/google/api/documentation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ option objc_class_prefix = "GAPI"; // content: (== include google/foo/overview.md ==) // - name: Tutorial // content: (== include google/foo/tutorial.md ==) -// subpages; +// subpages: // - name: Java // content: (== include google/foo/tutorial_java.md ==) // rules: diff --git a/third_party/googleapis/google/api/endpoint.proto b/third_party/googleapis/google/api/endpoint.proto index 7f6dca7c1..2dc354b96 100644 --- a/third_party/googleapis/google/api/endpoint.proto +++ b/third_party/googleapis/google/api/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/error_reason.proto b/third_party/googleapis/google/api/error_reason.proto index c0509be4f..a5a8ca57c 100644 --- a/third_party/googleapis/google/api/error_reason.proto +++ b/third_party/googleapis/google/api/error_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -567,4 +567,23 @@ enum ErrorReason { // // This response indicates the associated GCP account has been suspended. GCP_SUSPENDED = 30; + + // The request violates the location policies when creating resources in + // the restricted region. + // + // Example of an ErrorInfo when creating the Cloud Storage Bucket by + // "projects/123" for service storage.googleapis.com: + // + // { "reason": "LOCATION_POLICY_VIOLATED", + // "domain": "googleapis.com", + // "metadata": { + // "consumer": "projects/123", + // "service": "storage.googleapis.com", + // } + // } + // + // This response indicates creating the Cloud Storage Bucket in + // "locations/asia-northeast3" violates at least one location policy. + // The troubleshooting guidance is provided in the Help links. + LOCATION_POLICY_VIOLATED = 31; } diff --git a/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto b/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto index c1ad7aaaf..c0cf2bd1e 100644 --- a/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto +++ b/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1alpha1/checked.proto b/third_party/googleapis/google/api/expr/v1alpha1/checked.proto index 031a651da..c68493485 100644 --- a/third_party/googleapis/google/api/expr/v1alpha1/checked.proto +++ b/third_party/googleapis/google/api/expr/v1alpha1/checked.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1alpha1/eval.proto b/third_party/googleapis/google/api/expr/v1alpha1/eval.proto index 8af43bec9..541bb0bbb 100644 --- a/third_party/googleapis/google/api/expr/v1alpha1/eval.proto +++ b/third_party/googleapis/google/api/expr/v1alpha1/eval.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1alpha1/explain.proto b/third_party/googleapis/google/api/expr/v1alpha1/explain.proto index 8b2cb7ec8..06b6720d2 100644 --- a/third_party/googleapis/google/api/expr/v1alpha1/explain.proto +++ b/third_party/googleapis/google/api/expr/v1alpha1/explain.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto b/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto index 4920a13d8..ab2e3de2f 100644 --- a/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto +++ b/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1alpha1/value.proto b/third_party/googleapis/google/api/expr/v1alpha1/value.proto index 9074fcc7f..69d171d0c 100644 --- a/third_party/googleapis/google/api/expr/v1alpha1/value.proto +++ b/third_party/googleapis/google/api/expr/v1alpha1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1beta1/decl.proto b/third_party/googleapis/google/api/expr/v1beta1/decl.proto index d3d748b4e..652af36a7 100644 --- a/third_party/googleapis/google/api/expr/v1beta1/decl.proto +++ b/third_party/googleapis/google/api/expr/v1beta1/decl.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1beta1/eval.proto b/third_party/googleapis/google/api/expr/v1beta1/eval.proto index 0c6c4d98e..eb6bd8d3d 100644 --- a/third_party/googleapis/google/api/expr/v1beta1/eval.proto +++ b/third_party/googleapis/google/api/expr/v1beta1/eval.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1beta1/expr.proto b/third_party/googleapis/google/api/expr/v1beta1/expr.proto index 77249bafc..fb36385de 100644 --- a/third_party/googleapis/google/api/expr/v1beta1/expr.proto +++ b/third_party/googleapis/google/api/expr/v1beta1/expr.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1beta1/source.proto b/third_party/googleapis/google/api/expr/v1beta1/source.proto index 78bb0a064..9906327b2 100644 --- a/third_party/googleapis/google/api/expr/v1beta1/source.proto +++ b/third_party/googleapis/google/api/expr/v1beta1/source.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/expr/v1beta1/value.proto b/third_party/googleapis/google/api/expr/v1beta1/value.proto index 0978228dc..74f225ae1 100644 --- a/third_party/googleapis/google/api/expr/v1beta1/value.proto +++ b/third_party/googleapis/google/api/expr/v1beta1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/field_behavior.proto b/third_party/googleapis/google/api/field_behavior.proto index 21895bf55..2865ba053 100644 --- a/third_party/googleapis/google/api/field_behavior.proto +++ b/third_party/googleapis/google/api/field_behavior.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/field_info.proto b/third_party/googleapis/google/api/field_info.proto index dd66340a0..b2197b52a 100644 --- a/third_party/googleapis/google/api/field_info.proto +++ b/third_party/googleapis/google/api/field_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -61,9 +61,9 @@ message FieldInfo { // 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, and zero-padded partial and - // empty octets. For example, the value `2001:DB8::` would be normalized to - // `2001:0db8:0:0`. + // 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 diff --git a/third_party/googleapis/google/api/http.proto b/third_party/googleapis/google/api/http.proto index 31d867a27..afa00aede 100644 --- a/third_party/googleapis/google/api/http.proto +++ b/third_party/googleapis/google/api/http.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/httpbody.proto b/third_party/googleapis/google/api/httpbody.proto index 7f1685e80..920612dc7 100644 --- a/third_party/googleapis/google/api/httpbody.proto +++ b/third_party/googleapis/google/api/httpbody.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/label.proto b/third_party/googleapis/google/api/label.proto index 698f6bd4d..3c5588b82 100644 --- a/third_party/googleapis/google/api/label.proto +++ b/third_party/googleapis/google/api/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/launch_stage.proto b/third_party/googleapis/google/api/launch_stage.proto index 9802de795..9863fc23d 100644 --- a/third_party/googleapis/google/api/launch_stage.proto +++ b/third_party/googleapis/google/api/launch_stage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/log.proto b/third_party/googleapis/google/api/log.proto index 416c4f6c2..5a458e77e 100644 --- a/third_party/googleapis/google/api/log.proto +++ b/third_party/googleapis/google/api/log.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/logging.proto b/third_party/googleapis/google/api/logging.proto index 650786fde..ccefb1201 100644 --- a/third_party/googleapis/google/api/logging.proto +++ b/third_party/googleapis/google/api/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/metric.proto b/third_party/googleapis/google/api/metric.proto index 9bf043c49..126f526cd 100644 --- a/third_party/googleapis/google/api/metric.proto +++ b/third_party/googleapis/google/api/metric.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/monitored_resource.proto b/third_party/googleapis/google/api/monitored_resource.proto index c6f975928..d7588ddff 100644 --- a/third_party/googleapis/google/api/monitored_resource.proto +++ b/third_party/googleapis/google/api/monitored_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ message MonitoredResourceDescriptor { // Required. The monitored resource type. For example, the type // `"cloudsql_database"` represents databases in Google Cloud SQL. - // For a list of types, see [Monitoring resource + // For a list of types, see [Monitored resource // types](https://cloud.google.com/monitoring/api/resources) // and [Logging resource // types](https://cloud.google.com/logging/docs/api/v2/resource-list). diff --git a/third_party/googleapis/google/api/monitoring.proto b/third_party/googleapis/google/api/monitoring.proto index 753703e54..3bac622dc 100644 --- a/third_party/googleapis/google/api/monitoring.proto +++ b/third_party/googleapis/google/api/monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/policy.proto b/third_party/googleapis/google/api/policy.proto index dd202bc87..25b75f3a4 100644 --- a/third_party/googleapis/google/api/policy.proto +++ b/third_party/googleapis/google/api/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/quota.proto b/third_party/googleapis/google/api/quota.proto index 7ccc102fc..eb80cb6f0 100644 --- a/third_party/googleapis/google/api/quota.proto +++ b/third_party/googleapis/google/api/quota.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/resource.proto b/third_party/googleapis/google/api/resource.proto index bf0cbec5d..f17520d20 100644 --- a/third_party/googleapis/google/api/resource.proto +++ b/third_party/googleapis/google/api/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/routing.proto b/third_party/googleapis/google/api/routing.proto index b35289be8..9c0cdc07c 100644 --- a/third_party/googleapis/google/api/routing.proto +++ b/third_party/googleapis/google/api/routing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/service.proto b/third_party/googleapis/google/api/service.proto index 3de5b6675..48e9ef0b9 100644 --- a/third_party/googleapis/google/api/service.proto +++ b/third_party/googleapis/google/api/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/check_error.proto b/third_party/googleapis/google/api/servicecontrol/v1/check_error.proto index 5c97e910c..e9a619ebc 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/check_error.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/check_error.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/distribution.proto b/third_party/googleapis/google/api/servicecontrol/v1/distribution.proto index 17c92e91a..ce4d34659 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/distribution.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/distribution.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/http_request.proto b/third_party/googleapis/google/api/servicecontrol/v1/http_request.proto index 9d51a04c1..3102e3b0f 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/http_request.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/http_request.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/log_entry.proto b/third_party/googleapis/google/api/servicecontrol/v1/log_entry.proto index 410b2ae66..782dd42eb 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/log_entry.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/metric_value.proto b/third_party/googleapis/google/api/servicecontrol/v1/metric_value.proto index c84f47c6a..701749c19 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/metric_value.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/metric_value.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/operation.proto b/third_party/googleapis/google/api/servicecontrol/v1/operation.proto index e477a48a7..d01d95e0c 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/operation.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/quota_controller.proto b/third_party/googleapis/google/api/servicecontrol/v1/quota_controller.proto index b4b1198f4..d44837661 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/quota_controller.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/quota_controller.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v1/service_controller.proto b/third_party/googleapis/google/api/servicecontrol/v1/service_controller.proto index 94297441a..2bc17c73c 100644 --- a/third_party/googleapis/google/api/servicecontrol/v1/service_controller.proto +++ b/third_party/googleapis/google/api/servicecontrol/v1/service_controller.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicecontrol/v2/service_controller.proto b/third_party/googleapis/google/api/servicecontrol/v2/service_controller.proto index ff226a021..4258ee762 100644 --- a/third_party/googleapis/google/api/servicecontrol/v2/service_controller.proto +++ b/third_party/googleapis/google/api/servicecontrol/v2/service_controller.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicemanagement/v1/resources.proto b/third_party/googleapis/google/api/servicemanagement/v1/resources.proto index fd984dd1e..1719ac8c1 100644 --- a/third_party/googleapis/google/api/servicemanagement/v1/resources.proto +++ b/third_party/googleapis/google/api/servicemanagement/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/servicemanagement/v1/servicemanager.proto b/third_party/googleapis/google/api/servicemanagement/v1/servicemanager.proto index 0aa966c59..971ef6498 100644 --- a/third_party/googleapis/google/api/servicemanagement/v1/servicemanager.proto +++ b/third_party/googleapis/google/api/servicemanagement/v1/servicemanager.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/serviceusage/v1/resources.proto b/third_party/googleapis/google/api/serviceusage/v1/resources.proto index e7c54052e..724feb5e2 100644 --- a/third_party/googleapis/google/api/serviceusage/v1/resources.proto +++ b/third_party/googleapis/google/api/serviceusage/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/serviceusage/v1/serviceusage.proto b/third_party/googleapis/google/api/serviceusage/v1/serviceusage.proto index d6a079ef1..3db79850d 100644 --- a/third_party/googleapis/google/api/serviceusage/v1/serviceusage.proto +++ b/third_party/googleapis/google/api/serviceusage/v1/serviceusage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/serviceusage/v1beta1/resources.proto b/third_party/googleapis/google/api/serviceusage/v1beta1/resources.proto index 74116587a..b2980721b 100644 --- a/third_party/googleapis/google/api/serviceusage/v1beta1/resources.proto +++ b/third_party/googleapis/google/api/serviceusage/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/serviceusage/v1beta1/serviceusage.proto b/third_party/googleapis/google/api/serviceusage/v1beta1/serviceusage.proto index 5db546509..a7c18db83 100644 --- a/third_party/googleapis/google/api/serviceusage/v1beta1/serviceusage.proto +++ b/third_party/googleapis/google/api/serviceusage/v1beta1/serviceusage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/source_info.proto b/third_party/googleapis/google/api/source_info.proto index 51fe27901..c9b1c9a16 100644 --- a/third_party/googleapis/google/api/source_info.proto +++ b/third_party/googleapis/google/api/source_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/system_parameter.proto b/third_party/googleapis/google/api/system_parameter.proto index 8d29057f7..4eb4f4782 100644 --- a/third_party/googleapis/google/api/system_parameter.proto +++ b/third_party/googleapis/google/api/system_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/usage.proto b/third_party/googleapis/google/api/usage.proto index b9384b44a..5c6d6d81c 100644 --- a/third_party/googleapis/google/api/usage.proto +++ b/third_party/googleapis/google/api/usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/api/visibility.proto b/third_party/googleapis/google/api/visibility.proto index 8b1f946fd..bb378bf00 100644 --- a/third_party/googleapis/google/api/visibility.proto +++ b/third_party/googleapis/google/api/visibility.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/legacy/audit_data.proto b/third_party/googleapis/google/appengine/legacy/audit_data.proto index e5217262c..a77db19c4 100644 --- a/third_party/googleapis/google/appengine/legacy/audit_data.proto +++ b/third_party/googleapis/google/appengine/legacy/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/logging/v1/request_log.proto b/third_party/googleapis/google/appengine/logging/v1/request_log.proto index f44d31e3f..026f1b107 100644 --- a/third_party/googleapis/google/appengine/logging/v1/request_log.proto +++ b/third_party/googleapis/google/appengine/logging/v1/request_log.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/app_yaml.proto b/third_party/googleapis/google/appengine/v1/app_yaml.proto index 72a383115..91464fde0 100644 --- a/third_party/googleapis/google/appengine/v1/app_yaml.proto +++ b/third_party/googleapis/google/appengine/v1/app_yaml.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/appengine.proto b/third_party/googleapis/google/appengine/v1/appengine.proto index 1c73419f4..0d63466ed 100644 --- a/third_party/googleapis/google/appengine/v1/appengine.proto +++ b/third_party/googleapis/google/appengine/v1/appengine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/application.proto b/third_party/googleapis/google/appengine/v1/application.proto index a7c50795f..3dbce8b70 100644 --- a/third_party/googleapis/google/appengine/v1/application.proto +++ b/third_party/googleapis/google/appengine/v1/application.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/audit_data.proto b/third_party/googleapis/google/appengine/v1/audit_data.proto index 66d62c06e..929d23aba 100644 --- a/third_party/googleapis/google/appengine/v1/audit_data.proto +++ b/third_party/googleapis/google/appengine/v1/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/certificate.proto b/third_party/googleapis/google/appengine/v1/certificate.proto index ab8a62926..b3b1912e4 100644 --- a/third_party/googleapis/google/appengine/v1/certificate.proto +++ b/third_party/googleapis/google/appengine/v1/certificate.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/deploy.proto b/third_party/googleapis/google/appengine/v1/deploy.proto index a3a8b5986..0b31a0ba0 100644 --- a/third_party/googleapis/google/appengine/v1/deploy.proto +++ b/third_party/googleapis/google/appengine/v1/deploy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/deployed_files.proto b/third_party/googleapis/google/appengine/v1/deployed_files.proto index ba0f5d672..f10041d22 100644 --- a/third_party/googleapis/google/appengine/v1/deployed_files.proto +++ b/third_party/googleapis/google/appengine/v1/deployed_files.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/domain.proto b/third_party/googleapis/google/appengine/v1/domain.proto index 6a619a2e7..a49248685 100644 --- a/third_party/googleapis/google/appengine/v1/domain.proto +++ b/third_party/googleapis/google/appengine/v1/domain.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/domain_mapping.proto b/third_party/googleapis/google/appengine/v1/domain_mapping.proto index 1b81436c6..819477612 100644 --- a/third_party/googleapis/google/appengine/v1/domain_mapping.proto +++ b/third_party/googleapis/google/appengine/v1/domain_mapping.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/firewall.proto b/third_party/googleapis/google/appengine/v1/firewall.proto index d2e5f1f06..15c189eb2 100644 --- a/third_party/googleapis/google/appengine/v1/firewall.proto +++ b/third_party/googleapis/google/appengine/v1/firewall.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/instance.proto b/third_party/googleapis/google/appengine/v1/instance.proto index b0efe0513..e50fc619e 100644 --- a/third_party/googleapis/google/appengine/v1/instance.proto +++ b/third_party/googleapis/google/appengine/v1/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/location.proto b/third_party/googleapis/google/appengine/v1/location.proto index c4605e5cb..c5fb300a7 100644 --- a/third_party/googleapis/google/appengine/v1/location.proto +++ b/third_party/googleapis/google/appengine/v1/location.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/network_settings.proto b/third_party/googleapis/google/appengine/v1/network_settings.proto index 7ed59abd0..cc340ff5d 100644 --- a/third_party/googleapis/google/appengine/v1/network_settings.proto +++ b/third_party/googleapis/google/appengine/v1/network_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/operation.proto b/third_party/googleapis/google/appengine/v1/operation.proto index fd2a2b9eb..04d638199 100644 --- a/third_party/googleapis/google/appengine/v1/operation.proto +++ b/third_party/googleapis/google/appengine/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/service.proto b/third_party/googleapis/google/appengine/v1/service.proto index 63ffd6cb3..5471174de 100644 --- a/third_party/googleapis/google/appengine/v1/service.proto +++ b/third_party/googleapis/google/appengine/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1/version.proto b/third_party/googleapis/google/appengine/v1/version.proto index ee22ef006..5327adfd2 100644 --- a/third_party/googleapis/google/appengine/v1/version.proto +++ b/third_party/googleapis/google/appengine/v1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/app_yaml.proto b/third_party/googleapis/google/appengine/v1beta/app_yaml.proto index a18e9d588..ec221a8a5 100644 --- a/third_party/googleapis/google/appengine/v1beta/app_yaml.proto +++ b/third_party/googleapis/google/appengine/v1beta/app_yaml.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/appengine.proto b/third_party/googleapis/google/appengine/v1beta/appengine.proto index 9b26daba7..67b62c0e0 100644 --- a/third_party/googleapis/google/appengine/v1beta/appengine.proto +++ b/third_party/googleapis/google/appengine/v1beta/appengine.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/application.proto b/third_party/googleapis/google/appengine/v1beta/application.proto index f99046dc7..743de1e8c 100644 --- a/third_party/googleapis/google/appengine/v1beta/application.proto +++ b/third_party/googleapis/google/appengine/v1beta/application.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/audit_data.proto b/third_party/googleapis/google/appengine/v1beta/audit_data.proto index 254a46ddf..c76d1b576 100644 --- a/third_party/googleapis/google/appengine/v1beta/audit_data.proto +++ b/third_party/googleapis/google/appengine/v1beta/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/certificate.proto b/third_party/googleapis/google/appengine/v1beta/certificate.proto index fda072de1..6bae0c3d5 100644 --- a/third_party/googleapis/google/appengine/v1beta/certificate.proto +++ b/third_party/googleapis/google/appengine/v1beta/certificate.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/deploy.proto b/third_party/googleapis/google/appengine/v1beta/deploy.proto index 4714915a3..784003153 100644 --- a/third_party/googleapis/google/appengine/v1beta/deploy.proto +++ b/third_party/googleapis/google/appengine/v1beta/deploy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/domain.proto b/third_party/googleapis/google/appengine/v1beta/domain.proto index 91b7518d3..87cea7882 100644 --- a/third_party/googleapis/google/appengine/v1beta/domain.proto +++ b/third_party/googleapis/google/appengine/v1beta/domain.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto b/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto index 9a0bebc75..0b69e4364 100644 --- a/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto +++ b/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/firewall.proto b/third_party/googleapis/google/appengine/v1beta/firewall.proto index f853327c8..da5b87be4 100644 --- a/third_party/googleapis/google/appengine/v1beta/firewall.proto +++ b/third_party/googleapis/google/appengine/v1beta/firewall.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/instance.proto b/third_party/googleapis/google/appengine/v1beta/instance.proto index f54445081..740ed34ee 100644 --- a/third_party/googleapis/google/appengine/v1beta/instance.proto +++ b/third_party/googleapis/google/appengine/v1beta/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/location.proto b/third_party/googleapis/google/appengine/v1beta/location.proto index e4689d230..48afcbe62 100644 --- a/third_party/googleapis/google/appengine/v1beta/location.proto +++ b/third_party/googleapis/google/appengine/v1beta/location.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/network_settings.proto b/third_party/googleapis/google/appengine/v1beta/network_settings.proto index 1e84f69f8..d5c99cd8b 100644 --- a/third_party/googleapis/google/appengine/v1beta/network_settings.proto +++ b/third_party/googleapis/google/appengine/v1beta/network_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/operation.proto b/third_party/googleapis/google/appengine/v1beta/operation.proto index 10c5ea31a..14df057f9 100644 --- a/third_party/googleapis/google/appengine/v1beta/operation.proto +++ b/third_party/googleapis/google/appengine/v1beta/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/service.proto b/third_party/googleapis/google/appengine/v1beta/service.proto index 7c4a2a88b..982a9b67e 100644 --- a/third_party/googleapis/google/appengine/v1beta/service.proto +++ b/third_party/googleapis/google/appengine/v1beta/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/appengine/v1beta/version.proto b/third_party/googleapis/google/appengine/v1beta/version.proto index e32f2d26f..90a69f17b 100644 --- a/third_party/googleapis/google/appengine/v1beta/version.proto +++ b/third_party/googleapis/google/appengine/v1beta/version.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/alertcenter/v1beta1/alertcenter.proto b/third_party/googleapis/google/apps/alertcenter/v1beta1/alertcenter.proto index c2240c612..9aa08a8c2 100644 --- a/third_party/googleapis/google/apps/alertcenter/v1beta1/alertcenter.proto +++ b/third_party/googleapis/google/apps/alertcenter/v1beta1/alertcenter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/card/v1/BUILD.bazel b/third_party/googleapis/google/apps/card/v1/BUILD.bazel index 35360f73f..d173691cb 100644 --- a/third_party/googleapis/google/apps/card/v1/BUILD.bazel +++ b/third_party/googleapis/google/apps/card/v1/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -21,6 +23,7 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_proto_library", @@ -44,6 +47,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", @@ -70,28 +74,45 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", + "moved_proto_library", + "py_grpc_library", "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", +) + +moved_proto_library( + name = "card_moved_proto", + srcs = [":card_proto"], + deps = [ + "//google/type:color_proto", + ], ) py_proto_library( name = "card_py_proto", - deps = [":card_proto"], + deps = [":card_moved_proto"], +) + +py_grpc_library( + name = "card_py_grpc", + srcs = [":card_moved_proto"], + deps = [":card_py_proto"], ) py_gapic_library( name = "card_py_gapic", srcs = [":card_proto"], rest_numeric_enums = False, - transport = "grpc", + transport = "grpc+rest", ) # Open Source Packages py_gapic_assembly_pkg( - name = "card-v1-py", + name = "google-apps-card-v1-py", deps = [ ":card_py_gapic", ], @@ -100,6 +121,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -121,6 +143,7 @@ php_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -141,6 +164,7 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", @@ -165,6 +189,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/apps/card/v1/README.md b/third_party/googleapis/google/apps/card/v1/README.md new file mode 100644 index 000000000..b06de1c99 --- /dev/null +++ b/third_party/googleapis/google/apps/card/v1/README.md @@ -0,0 +1,3 @@ +# Card + +These protos represent the Card interface displayed in a Google Chat message or Google Workspace Add-on. diff --git a/third_party/googleapis/google/apps/card/v1/card.proto b/third_party/googleapis/google/apps/card/v1/card.proto index 538a785b3..fbc5b3c49 100644 --- a/third_party/googleapis/google/apps/card/v1/card.proto +++ b/third_party/googleapis/google/apps/card/v1/card.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,15 +38,15 @@ option ruby_package = "Google::Apps::Card::V1"; // To learn how // to build cards, see the following documentation: // -// * For Google Chat apps, see [Design dynamic, interactive, and consistent UIs -// with cards](https://developers.google.com/chat/ui). +// * For Google Chat apps, see [Design the components of a card or +// dialog](https://developers.google.com/workspace/chat/design-components-card-dialog). // * For Google Workspace Add-ons, see [Card-based // interfaces](https://developers.google.com/apps-script/add-ons/concepts/cards). // // **Example: Card message for a Google Chat app** // // ![Example contact -// card](https://developers.google.com/chat/images/card_api_reference.png) +// card](https://developers.google.com/workspace/chat/images/card_api_reference.png) // // To create the sample card message in Google Chat, use the following JSON: // @@ -57,82 +57,82 @@ option ruby_package = "Google::Apps::Card::V1"; // "cardId": "unique-card-id", // "card": { // "header": { -// "title": "Sasha", -// "subtitle": "Software Engineer", -// "imageUrl": -// "https://developers.google.com/chat/images/quickstart-app-avatar.png", -// "imageType": "CIRCLE", -// "imageAltText": "Avatar for Sasha", -// }, -// "sections": [ -// { -// "header": "Contact Info", -// "collapsible": true, -// "uncollapsibleWidgetsCount": 1, -// "widgets": [ -// { -// "decoratedText": { -// "startIcon": { -// "knownIcon": "EMAIL", -// }, -// "text": "sasha@example.com", -// } -// }, -// { -// "decoratedText": { -// "startIcon": { -// "knownIcon": "PERSON", -// }, -// "text": "Online", -// }, -// }, -// { -// "decoratedText": { -// "startIcon": { -// "knownIcon": "PHONE", -// }, -// "text": "+1 (555) 555-1234", -// } -// }, -// { -// "buttonList": { -// "buttons": [ -// { -// "text": "Share", -// "onClick": { +// "title": "Sasha", +// "subtitle": "Software Engineer", +// "imageUrl": +// "https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png", +// "imageType": "CIRCLE", +// "imageAltText": "Avatar for Sasha" +// }, +// "sections": [ +// { +// "header": "Contact Info", +// "collapsible": true, +// "uncollapsibleWidgetsCount": 1, +// "widgets": [ +// { +// "decoratedText": { +// "startIcon": { +// "knownIcon": "EMAIL" +// }, +// "text": "sasha@example.com" +// } +// }, +// { +// "decoratedText": { +// "startIcon": { +// "knownIcon": "PERSON" +// }, +// "text": "Online" +// } +// }, +// { +// "decoratedText": { +// "startIcon": { +// "knownIcon": "PHONE" +// }, +// "text": "+1 (555) 555-1234" +// } +// }, +// { +// "buttonList": { +// "buttons": [ +// { +// "text": "Share", +// "onClick": { // "openLink": { -// "url": "https://example.com/share", -// } -// } -// }, -// { -// "text": "Edit", -// "onClick": { -// "action": { -// "function": "goToView", -// "parameters": [ -// { -// "key": "viewType", -// "value": "EDIT", -// } -// ], -// } -// } -// }, -// ], -// } -// }, -// ], -// }, -// ], -// }, +// "url": "https://example.com/share" +// } +// } +// }, +// { +// "text": "Edit", +// "onClick": { +// "action": { +// "function": "goToView", +// "parameters": [ +// { +// "key": "viewType", +// "value": "EDIT" +// } +// ] +// } +// } +// } +// ] +// } +// } +// ] +// } +// ] +// } // } -// ], +// ] // } // ``` message Card { - // Represents a card header. For an example in Google Chat apps, see [Card - // header](https://developers.google.com/chat/ui/widgets/card-header). + // Represents a card header. For an example in Google Chat apps, see [Add a + // header](https://developers.google.com/workspace/chat/design-components-card-dialog#add_a_header). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -170,7 +170,7 @@ message Card { // Supports simple HTML formatted text. For more information // about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -238,11 +238,11 @@ message Card { // `secondaryButton` causes an error. // // For Chat apps, you can use fixed footers in - // [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not + // [dialogs](https://developers.google.com/workspace/chat/dialogs), but not // [card - // messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). - // For an example in Google Chat apps, see [Card - // footer](https://developers.google.com/chat/ui/widgets/card-fixed-footer). + // messages](https://developers.google.com/workspace/chat/create-messages#create). + // For an example in Google Chat apps, see [Add a persistent + // footer](https://developers.google.com/workspace/chat/design-components-card-dialog#add_a_persistent_footer). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -283,8 +283,8 @@ message Card { // Contains a collection of widgets. Each section has its own, optional // header. Sections are visually separated by a line divider. For an example - // in Google Chat apps, see [Card - // section](https://developers.google.com/chat/ui/widgets/card-section). + // in Google Chat apps, see [Define a section of a + // card](https://developers.google.com/workspace/chat/design-components-card-dialog#define_a_section_of_a_card). repeated Section sections = 2; // The divider style between sections. @@ -338,9 +338,9 @@ message Card { // Setting `fixedFooter` without specifying a `primaryButton` or a // `secondaryButton` causes an error. For Chat apps, you can use fixed footers // in - // [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not + // [dialogs](https://developers.google.com/workspace/chat/dialogs), but not // [card - // messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). + // messages](https://developers.google.com/workspace/chat/create-messages#create). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -383,7 +383,7 @@ message Widget { // Specifies whether widgets align to the left, right, or center of a column. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): enum HorizontalAlignment { // Don't use. Unspecified. HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0; @@ -408,7 +408,7 @@ message Widget { // Displays a text paragraph. Supports simple HTML formatted text. For more // information about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -428,7 +428,7 @@ message Widget { // ``` // "image": { // "imageUrl": - // "https://developers.google.com/chat/images/quickstart-app-avatar.png", + // "https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png", // "altText": "Chat app avatar" // } // ``` @@ -680,12 +680,12 @@ message Widget { } // A paragraph of text that supports formatting. For an example in -// Google Chat apps, see [Text -// paragraph](https://developers.google.com/chat/ui/widgets/text-paragraph). +// Google Chat apps, see [Add a paragraph of formatted +// text](https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_a_paragraph_of_formatted_text). // For more information // about formatting text, see // [Formatting text in Google Chat -// apps](https://developers.google.com/chat/format-messages#card-formatting) +// apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -699,7 +699,8 @@ message TextParagraph { } // An image that is specified by a URL and can have an `onClick` action. For an -// example, see [Image](https://developers.google.com/chat/ui/widgets/image). +// example, see [Add an +// image](https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_an_image). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -709,7 +710,7 @@ message Image { // For example: // // ``` - // https://developers.google.com/chat/images/quickstart-app-avatar.png + // https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png // ``` string image_url = 1; @@ -722,7 +723,8 @@ message Image { // Displays a divider between widgets as a horizontal line. For an example in // Google Chat apps, see -// [Divider](https://developers.google.com/chat/ui/widgets/divider). +// [Add a horizontal divider between +// widgets](https://developers.google.com/workspace/chat/format-structure-card-dialog#add_a_horizontal_divider_between_widgets). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -737,8 +739,8 @@ message Divider {} // A widget that displays text with optional decorations such as a label above // or below the text, an icon in front of the text, a selection widget, or a // button after the text. For an example in -// Google Chat apps, see [Decorated -// text](https://developers.google.com/chat/ui/widgets/decorated-text). +// Google Chat apps, see [Display text with decorative +// text](https://developers.google.com/workspace/chat/add-text-image-card-dialog#display_text_with_decorative_elements). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -768,13 +770,13 @@ message DecoratedText { // The name by which the switch widget is identified in a form input event. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string name = 1; // The value entered by a user, returned as part of a form input event. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string value = 2; // When `true`, the switch is selected. @@ -805,7 +807,7 @@ message DecoratedText { // Supports simple formatting. For more information // about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -837,21 +839,22 @@ message DecoratedText { // An icon displayed after the text. // // Supports - // [built-in](https://developers.google.com/chat/format-messages#builtinicons) + // [built-in](https://developers.google.com/workspace/chat/format-messages#builtinicons) // and - // [custom](https://developers.google.com/chat/format-messages#customicons) + // [custom](https://developers.google.com/workspace/chat/format-messages#customicons) // icons. Icon end_icon = 11; } } // A field in which users can enter text. Supports suggestions and on-change -// actions. For an example in Google Chat apps, see [Text -// input](https://developers.google.com/chat/ui/widgets/text-input). +// actions. For an example in Google Chat apps, see [Add a field in which a user +// can enter +// text](https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_field_in_which_a_user_can_enter_text). // // Chat apps receive and can process the value of entered text during form input // events. For details about working with form inputs, see [Receive form -// data](https://developers.google.com/chat/ui/read-form-data). +// data](https://developers.google.com/workspace/chat/read-form-data). // // When you need to collect undefined or abstract data from users, // use a text input. To collect defined or enumerated data from users, use the @@ -878,7 +881,7 @@ message TextInput { // The name by which the text input is identified in a form input event. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string name = 1; // The text that appears above the text input field in the user interface. @@ -899,7 +902,7 @@ message TextInput { // The value entered by a user, returned as part of a form input event. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string value = 4; // How a text input field appears in the user interface. @@ -910,7 +913,7 @@ message TextInput { // user adding to the field or deleting text. // // Examples of actions to take include running a custom function or opening - // a [dialog](https://developers.google.com/chat/how-tos/dialogs) + // a [dialog](https://developers.google.com/workspace/chat/dialogs) // in Google Chat. Action on_change_action = 6; @@ -951,7 +954,7 @@ message TextInput { // Use this text to prompt users to enter a value. For example, `Enter a // number from 0 to 100`. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): string placeholder_text = 12; } @@ -993,7 +996,8 @@ message Suggestions { // A list of buttons layed out horizontally. For an example in // Google Chat apps, see -// [Button list](https://developers.google.com/chat/ui/widgets/button-list). +// [Add a +// button](https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_button). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -1005,12 +1009,12 @@ message ButtonList { // A widget that creates one or more UI items that users can select. // For example, a dropdown menu or checkboxes. You can use this widget to // collect data that can be predicted or enumerated. For an example in Google -// Chat apps, see [Selection -// input](https://developers.google.com/chat/ui/widgets/selection-input). +// Chat apps, see [Add selectable UI +// elements](/workspace/chat/design-interactive-card-dialog#add_selectable_ui_elements). // // Chat apps can process the value of items that users select or input. For // details about working with form inputs, see [Receive form -// data](https://developers.google.com/chat/ui/read-form-data). +// data](https://developers.google.com/workspace/chat/read-form-data). // // To collect undefined or abstract data from users, use // the [TextInput][google.apps.card.v1.TextInput] widget. @@ -1055,14 +1059,14 @@ message SelectionInput { // * External data: Items are populated from an external data // source outside of Google Workspace. // - // For examples of how to implement multiselect menus, see the - // [`SelectionInput` widget - // page](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu). + // For examples of how to implement multiselect menus, see + // [Add a multiselect + // menu](https://developers.google.com/workspace/chat/design-interactive-card-dialog#multiselect-menu). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): - // multiselect for Google Workspace Add-ons are in - // [Developer Preview](https://developers.google.com/workspace/preview). + // Multiselect for Google Workspace Add-ons are in + // Developer Preview. MULTI_SELECT = 4; } @@ -1079,7 +1083,7 @@ message SelectionInput { // input value. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string value = 2; // Whether the item is selected by default. If the selection input only @@ -1090,7 +1094,7 @@ message SelectionInput { // For multiselect menus, the URL for the icon displayed next to // the item's `text` field. Supports PNG and JPEG files. Must be an `HTTPS` // URL. For example, - // `https://developers.google.com/chat/images/quickstart-app-avatar.png`. + // `https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png`. string start_icon_uri = 4; // For multiselect menus, a text description or label that's @@ -1103,13 +1107,13 @@ message SelectionInput { // multiselect menu, a data source from Google Workspace. Used to populate // items in a multiselect menu. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): message PlatformDataSource { // A data source shared by all [Google Workspace // applications] - // (https://developers.google.com/chat/api/reference/rest/v1/HostApp). + // (https://developers.google.com/workspace/chat/api/reference/rest/v1/HostApp). // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): enum CommonDataSource { // Default value. Don't use. UNKNOWN = 0; @@ -1130,7 +1134,7 @@ message SelectionInput { // The name that identifies the selection input in a form input event. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string name = 1; // The text that appears above the selection input field in the user @@ -1155,7 +1159,7 @@ message SelectionInput { // specified, you must specify a separate button that submits the form. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). Action on_change_action = 5; // For multiselect menus, the maximum number of items that a user can select. @@ -1163,7 +1167,7 @@ message SelectionInput { int32 multi_select_max_selected_items = 6; // For multiselect menus, the number of text characters that a user inputs - // before the Chat app queries autocomplete and displays suggested items + // before the app queries autocomplete and displays suggested items // in the menu. // // If unspecified, defaults to 0 characters for static data sources and 3 @@ -1173,7 +1177,7 @@ message SelectionInput { // For a multiselect menu, the data source that populates // selection items. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): oneof multi_select_data_source { // An external data source, such as a relational data base. Action external_data_source = 8; @@ -1184,8 +1188,8 @@ message SelectionInput { } // Lets users input a date, a time, or both a date and a time. For an example in -// Google Chat apps, see [Date time -// picker](https://developers.google.com/chat/ui/widgets/date-time-picker). +// Google Chat apps, see [Let a user pick a date and +// time](https://developers.google.com/workspace/chat/design-interactive-card-dialog#let_a_user_pick_a_date_and_time). // // Users can input text or use the picker to select dates and times. If users // input an invalid date or time, the picker shows an error that prompts users @@ -1213,7 +1217,7 @@ message DateTimePicker { // The name by which the `DateTimePicker` is identified in a form input event. // // For details about working with form inputs, see [Receive form - // data](https://developers.google.com/chat/ui/read-form-data). + // data](https://developers.google.com/workspace/chat/read-form-data). string name = 1; // The text that prompts users to input a date, a time, or a date and time. @@ -1249,7 +1253,8 @@ message DateTimePicker { // A text, icon, or text and icon button that users can click. For an example in // Google Chat apps, see -// [Button list](https://developers.google.com/chat/ui/widgets/button-list). +// [Add a +// button](https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_button). // // To make an image a clickable button, specify an // [`Image`][google.apps.card.v1.Image] (not an @@ -1313,17 +1318,18 @@ message Button { // Set descriptive text that lets users know what the button does. For // example, if a button opens a hyperlink, you might write: "Opens a new // browser tab and navigates to the Google Chat developer documentation at - // https://developers.google.com/chat". + // https://developers.google.com/workspace/chat". string alt_text = 6; } // An icon displayed in a widget on a card. For an example in Google Chat apps, -// see [Icon](https://developers.google.com/chat/ui/widgets/icon). +// see [Add an +// icon](https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_an_icon). // // Supports -// [built-in](https://developers.google.com/chat/format-messages#builtinicons) +// [built-in](https://developers.google.com/workspace/chat/format-messages#builtinicons) // and -// [custom](https://developers.google.com/chat/format-messages#customicons) +// [custom](https://developers.google.com/workspace/chat/format-messages#customicons) // icons. // // [Google Workspace Add-ons and Chat @@ -1337,7 +1343,7 @@ message Icon { // For a bus, specify `BUS`. // // For a full list of supported icons, see [built-in - // icons](https://developers.google.com/chat/format-messages#builtinicons). + // icons](https://developers.google.com/workspace/chat/format-messages#builtinicons). string known_icon = 1; // Display a custom icon hosted at an HTTPS URL. @@ -1346,11 +1352,26 @@ message Icon { // // ``` // "iconUrl": - // "https://developers.google.com/chat/images/quickstart-app-avatar.png" + // "https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png" // ``` // // Supported file types include `.png` and `.jpg`. string icon_url = 2; + + // Display one of the [Google Material + // Icons](https://fonts.google.com/icons). + // + // For example, to display a [checkbox + // icon](https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048), + // use + // ``` + // "material_icon": { + // "name": "check_box" + // } + // ``` + // + // [Google Chat apps](https://developers.google.com/workspace/chat): + MaterialIcon material_icon = 5; } // Optional. A description of the icon used for accessibility. @@ -1358,7 +1379,7 @@ message Icon { // you should set a helpful description for what the icon displays, and if // applicable, what it does. For example, `A user's account portrait`, or // `Opens a new browser tab and navigates to the Google Chat developer - // documentation at https://developers.google.com/chat`. + // documentation at https://developers.google.com/workspace/chat`. // // If the icon is set in a [`Button`][google.apps.card.v1.Button], the // `altText` appears as helper text when the user hovers over the button. @@ -1371,6 +1392,57 @@ message Icon { Widget.ImageType image_type = 4; } +// A [Google Material Icon](https://fonts.google.com/icons), which includes over +// 2500+ options. +// +// For example, to display a [checkbox +// icon](https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048) +// with customized weight and grade, write the following: +// +// ``` +// { +// "name": "check_box", +// "fill": true, +// "weight": 300, +// "grade": -25 +// } +// ``` +// +// [Google Chat apps](https://developers.google.com/workspace/chat): +message MaterialIcon { + // The icon name defined in the [Google Material + // Icon](https://fonts.google.com/icons), for example, `check_box`. Any + // invalid names are abandoned and replaced with empty string and + // results in the icon failing to render. + string name = 1; + + // Whether the icon renders as filled. Default value is false. + // + // To preview different icon settings, go to + // [Google Font Icons](https://fonts.google.com/icons) and adjust the + // settings under **Customize**. + bool fill = 2; + + // The stroke weight of the icon. Choose from {100, 200, 300, 400, + // 500, 600, 700}. If absent, default value is 400. If any other value is + // specified, the default value is used. + // + // To preview different icon settings, go to + // [Google Font Icons](https://fonts.google.com/icons) and adjust the + // settings under **Customize**. + int32 weight = 3; + + // Weight and grade affect a symbol’s thickness. Adjustments to grade are more + // granular than adjustments to weight and have a small impact on the size of + // the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If + // any other value is specified, the default value is used. + // + // To preview different icon settings, go to + // [Google Font Icons](https://fonts.google.com/icons) and adjust the + // settings under **Customize**. + int32 grade = 4; +} + // Represents the crop style applied to an image. // // [Google Workspace Add-ons and @@ -1475,7 +1547,8 @@ message ImageComponent { // Displays a grid with a collection of items. Items can only include text or // images. For responsive columns, or to include more than text or images, use // [`Columns`][google.apps.card.v1.Columns]. For an example in Google Chat apps, -// see [Grid](https://developers.google.com/chat/ui/widgets/grid). +// see [Display a Grid with a collection of +// items](https://developers.google.com/workspace/chat/format-structure-card-dialog#display_a_grid_with_a_collection_of_items). // // A grid supports any number of columns and items. The number of rows is // determined by items divided by columns. A grid with @@ -1580,7 +1653,8 @@ message Grid { // The `Columns` widget displays up to 2 columns in a card or dialog. You can // add widgets to each column; the widgets appear in the order that they are // specified. For an example in Google Chat apps, see -// [Columns](https://developers.google.com/chat/ui/widgets/columns). +// [Display cards and dialogs in +// columns](https://developers.google.com/workspace/chat/format-structure-card-dialog#display_cards_and_dialogs_in_columns). // // The height of each column is determined by the taller column. For example, if // the first column is taller than the second column, both columns have the @@ -1605,17 +1679,23 @@ message Grid { // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): // Columns for Google Workspace Add-ons are in -// [Developer Preview](https://developers.google.com/workspace/preview). +// Developer Preview. message Columns { // A column. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Workspace Add-ons and Chat + // apps](https://developers.google.com/workspace/extend): + // Columns for Google Workspace Add-ons are in + // Developer Preview. message Column { // Specifies how a column fills the width of the card. The width of each // column depends on both the `HorizontalSizeStyle` and the width of the // widgets within the column. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Workspace Add-ons and Chat + // apps](https://developers.google.com/workspace/extend): + // Columns for Google Workspace Add-ons are in + // Developer Preview. enum HorizontalSizeStyle { // Don't use. Unspecified. HORIZONTAL_SIZE_STYLE_UNSPECIFIED = 0; @@ -1633,7 +1713,10 @@ message Columns { // Specifies whether widgets align to the top, bottom, or center of a // column. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Workspace Add-ons and Chat + // apps](https://developers.google.com/workspace/extend): + // Columns for Google Workspace Add-ons are in + // Developer Preview. enum VerticalAlignment { // Don't use. Unspecified. VERTICAL_ALIGNMENT_UNSPECIFIED = 0; @@ -1650,7 +1733,10 @@ message Columns { // The supported widgets that you can include in a column. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Workspace Add-ons and Chat + // apps](https://developers.google.com/workspace/extend): + // Columns for Google Workspace Add-ons are in + // Developer Preview. message Widgets { oneof data { // [TextParagraph][google.apps.card.v1.TextParagraph] widget. @@ -1677,8 +1763,6 @@ message Columns { } // Specifies how a column fills the width of the card. - // - // [Google Chat apps](https://developers.google.com/chat): HorizontalSizeStyle horizontal_size_style = 1; // Specifies whether widgets align to the left, right, or center of a @@ -1687,8 +1771,6 @@ message Columns { // Specifies whether widgets align to the top, bottom, or center of a // column. - // - // [Google Chat apps](https://developers.google.com/chat): VerticalAlignment vertical_alignment = 3; // An array of widgets included in a column. Widgets appear in the order @@ -1805,7 +1887,7 @@ message Action { // snooze type and snooze time in the list of string parameters. // // To learn more, see - // [`CommonEventObject`](https://developers.google.com/chat/api/reference/rest/v1/Event#commoneventobject). + // [`CommonEventObject`](https://developers.google.com/workspace/chat/api/reference/rest/v1/Event#commoneventobject). // // [Google Workspace Add-ons and Chat // apps](https://developers.google.com/workspace/extend): @@ -1831,7 +1913,7 @@ message Action { } // Optional. Required when opening a - // [dialog](https://developers.google.com/chat/how-tos/dialogs). + // [dialog](https://developers.google.com/workspace/chat/dialogs). // // What to do in response to an interaction with a user, such as a user // clicking a button in a card message. @@ -1841,17 +1923,17 @@ message Action { // // By specifying an `interaction`, the app can respond in special interactive // ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can - // open a [dialog](https://developers.google.com/chat/how-tos/dialogs). + // open a [dialog](https://developers.google.com/workspace/chat/dialogs). // // When specified, a loading indicator isn't shown. If specified for // an add-on, the entire card is stripped and nothing is shown in the client. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): enum Interaction { // Default value. The `action` executes as normal. INTERACTION_UNSPECIFIED = 0; - // Opens a [dialog](https://developers.google.com/chat/how-tos/dialogs), a + // Opens a [dialog](https://developers.google.com/workspace/chat/dialogs), a // windowed, card-based interface that Chat apps use to interact with users. // // Only supported by Chat apps in response to button-clicks on card @@ -1859,15 +1941,15 @@ message Action { // an add-on, the entire card is stripped and nothing is shown in the // client. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): OPEN_DIALOG = 1; } // A custom function to invoke when the containing element is // clicked or othrwise activated. // - // For example usage, see [Create interactive - // cards](https://developers.google.com/chat/how-tos/cards-onclick). + // For example usage, see [Read form + // data](https://developers.google.com/workspace/chat/read-form-data). string function = 1; // List of action parameters. @@ -1884,11 +1966,11 @@ message Action { // user make changes while the action is being processed, set // [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) // to `NONE`. For [card - // messages](https://developers.google.com/chat/api/guides/v1/messages/create#create) + // messages](https://developers.google.com/workspace/chat/api/guides/v1/messages/create#create) // in Chat apps, you must also set the action's - // [`ResponseType`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#responsetype) + // [`ResponseType`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#responsetype) // to `UPDATE_MESSAGE` and use the same - // [`card_id`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#CardWithId) + // [`card_id`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#CardWithId) // from the card that contained the action. // // If `false`, the form values are cleared when the action is triggered. @@ -1899,7 +1981,7 @@ message Action { bool persist_values = 4; // Optional. Required when opening a - // [dialog](https://developers.google.com/chat/how-tos/dialogs). + // [dialog](https://developers.google.com/workspace/chat/dialogs). // // What to do in response to an interaction with a user, such as a user // clicking a button in a card message. @@ -1909,10 +1991,10 @@ message Action { // // By specifying an `interaction`, the app can respond in special interactive // ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can - // open a [dialog](https://developers.google.com/chat/how-tos/dialogs). When + // open a [dialog](https://developers.google.com/workspace/chat/dialogs). When // specified, a loading indicator isn't shown. If specified for // an add-on, the entire card is stripped and nothing is shown in the client. // - // [Google Chat apps](https://developers.google.com/chat): + // [Google Chat apps](https://developers.google.com/workspace/chat): Interaction interaction = 5; } diff --git a/third_party/googleapis/google/apps/drive/activity/v2/action.proto b/third_party/googleapis/google/apps/drive/activity/v2/action.proto index e7a00ae0b..8bc3afe3a 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/action.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/action.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/activity/v2/actor.proto b/third_party/googleapis/google/apps/drive/activity/v2/actor.proto index 32447815d..1c58675cc 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/actor.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/actor.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/activity/v2/common.proto b/third_party/googleapis/google/apps/drive/activity/v2/common.proto index cf1a6b2ad..66db7be84 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/common.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/activity/v2/drive_activity_service.proto b/third_party/googleapis/google/apps/drive/activity/v2/drive_activity_service.proto index dd7dfbd83..c43b09375 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/drive_activity_service.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/drive_activity_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_request.proto b/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_request.proto index 3f1a108a5..bad8161e5 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_request.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_request.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_response.proto b/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_response.proto index 61ca30ed5..d01305607 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_response.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/query_drive_activity_response.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/activity/v2/target.proto b/third_party/googleapis/google/apps/drive/activity/v2/target.proto index 06a6b7188..a4c508578 100644 --- a/third_party/googleapis/google/apps/drive/activity/v2/target.proto +++ b/third_party/googleapis/google/apps/drive/activity/v2/target.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/common.proto b/third_party/googleapis/google/apps/drive/labels/v2/common.proto index 5b7f726eb..17a0b1827 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/common.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/error_details.proto b/third_party/googleapis/google/apps/drive/labels/v2/error_details.proto index a9efd74f3..191f13593 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/error_details.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/error_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -115,8 +115,11 @@ message PreconditionFailure { // The Field type cannot be changed because the Field has been published. CANNOT_CHANGE_PUBLISHED_FIELD_TYPE = 9; - // The Label component is locked and cannot be modified + // The Label component is locked and cannot be deleted CANNOT_MODIFY_LOCKED_COMPONENT = 10; + + // The Label cannot be enabled in the target application or applications. + UNSUPPORT_ENABLED_APP_SETTINGS = 11; } // The path to the field where this violation occurred. This path is diff --git a/third_party/googleapis/google/apps/drive/labels/v2/exception_detail.proto b/third_party/googleapis/google/apps/drive/labels/v2/exception_detail.proto index 42ee1886d..c13f3b8d2 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/exception_detail.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/exception_detail.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/field.proto b/third_party/googleapis/google/apps/drive/labels/v2/field.proto index b2f6eaae1..462c49c16 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/field.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/label.proto b/third_party/googleapis/google/apps/drive/labels/v2/label.proto index d79996871..6b735397a 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/label.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/label_limits.proto b/third_party/googleapis/google/apps/drive/labels/v2/label_limits.proto index 2c7493308..27a264ae6 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/label_limits.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/label_limits.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/label_lock.proto b/third_party/googleapis/google/apps/drive/labels/v2/label_lock.proto index a386bcc3a..971bd841d 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/label_lock.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/label_lock.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/label_permission.proto b/third_party/googleapis/google/apps/drive/labels/v2/label_permission.proto index 318c32884..8d63bebd9 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/label_permission.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/label_permission.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/label_service.proto b/third_party/googleapis/google/apps/drive/labels/v2/label_service.proto index adb510935..bea390140 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/label_service.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/requests.proto b/third_party/googleapis/google/apps/drive/labels/v2/requests.proto index 332747746..d66403b98 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/requests.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/requests.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2/user_capabilities.proto b/third_party/googleapis/google/apps/drive/labels/v2/user_capabilities.proto index d62b1ec9c..6e68dbac8 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2/user_capabilities.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2/user_capabilities.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/common.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/common.proto index d932ffa39..cd17d5ba0 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/common.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/error_details.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/error_details.proto index 79ef17fc4..fb2fe25e5 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/error_details.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/error_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -115,8 +115,11 @@ message PreconditionFailure { // The Field type cannot be changed because the Field has been published. CANNOT_CHANGE_PUBLISHED_FIELD_TYPE = 9; - // The Label component is locked and cannot be modified + // The Label component is locked and cannot be deleted CANNOT_MODIFY_LOCKED_COMPONENT = 10; + + // The Label cannot be enabled in the target application or applications. + UNSUPPORT_ENABLED_APP_SETTINGS = 11; } // The path to the field where this violation occurred. This path is diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/exception_detail.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/exception_detail.proto index 420b0dd85..6ff0eb822 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/exception_detail.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/exception_detail.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/field.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/field.proto index 938126f26..bc7b82de8 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/field.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/label.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/label.proto index c13b10cf2..64a74f17b 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/label.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/label_limits.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/label_limits.proto index c73c1952e..270ce85a8 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/label_limits.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/label_limits.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/label_lock.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/label_lock.proto index 811b5f816..32bd32d6e 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/label_lock.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/label_lock.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/label_permission.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/label_permission.proto index 5b1377cab..57701e6d6 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/label_permission.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/label_permission.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/label_service.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/label_service.proto index c5457ea40..7ea3e0349 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/label_service.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/requests.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/requests.proto index 32d289e28..9f4eed6b1 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/requests.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/requests.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/drive/labels/v2beta/user_capabilities.proto b/third_party/googleapis/google/apps/drive/labels/v2beta/user_capabilities.proto index 6f49d4753..0746b4f45 100644 --- a/third_party/googleapis/google/apps/drive/labels/v2beta/user_capabilities.proto +++ b/third_party/googleapis/google/apps/drive/labels/v2beta/user_capabilities.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/events/subscriptions/v1/BUILD.bazel b/third_party/googleapis/google/apps/events/subscriptions/v1/BUILD.bazel index 420821aef..c20c68d66 100644 --- a/third_party/googleapis/google/apps/events/subscriptions/v1/BUILD.bazel +++ b/third_party/googleapis/google/apps/events/subscriptions/v1/BUILD.bazel @@ -178,6 +178,10 @@ py_gapic_library( transport = "grpc+rest", deps = [ ], + opt_args = [ + "python-gapic-namespace=google.apps", + "python-gapic-name=events_subscriptions", + ], ) py_test( diff --git a/third_party/googleapis/google/apps/events/subscriptions/v1/subscription_resource.proto b/third_party/googleapis/google/apps/events/subscriptions/v1/subscription_resource.proto index b29dbf6b1..8f3a52419 100644 --- a/third_party/googleapis/google/apps/events/subscriptions/v1/subscription_resource.proto +++ b/third_party/googleapis/google/apps/events/subscriptions/v1/subscription_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -40,7 +40,7 @@ option (google.api.resource_definition) = { // A subscription to receive events about a Google Workspace resource. To learn // more about subscriptions, see the [Google Workspace Events API -// overview](https://developers.google.com/workspace/events/guides). +// overview](https://developers.google.com/workspace/events). message Subscription { option (google.api.resource) = { type: "workspaceevents.googleapis.com/Subscription" @@ -155,8 +155,9 @@ message Subscription { // Required. Immutable. The Google Workspace resource that's monitored for // events, formatted as the [full resource // name](https://google.aip.dev/122#full-resource-names). To learn about - // target resources, see [Supported Google Workspace - // resources](https://developers.google.com/workspace/events/guides#supported-resources). + // target resources and the events that they support, see [Supported Google + // Workspace + // events](https://developers.google.com/workspace/events#supported-events). // // A user can only authorize your app to create one subscription for a given // target resource. If your app tries to create another subscription with the @@ -171,12 +172,9 @@ message Subscription { // Otherwise, output only. One or more types of events to receive about the // target resource. Formatted according to the CloudEvents specification. // - // For a list of supported event types, see the following documentation: - // - // * [Google Chat - // events](https://developers.google.com/workspace/events/guides/events-chat) - // * [Google Meet - // events](https://developers.google.com/workspace/events/guides/events-meet) + // The supported event types depend on the target resource of your + // subscription. For details, see [Supported Google Workspace + // events](https://developers.google.com/workspace/events/guides#supported-events). // // By default, you also receive events about the [lifecycle of your // subscription](https://developers.google.com/workspace/events/guides/events-lifecycle). diff --git a/third_party/googleapis/google/apps/events/subscriptions/v1/subscriptions_service.proto b/third_party/googleapis/google/apps/events/subscriptions/v1/subscriptions_service.proto index e019711f8..acea3bb1e 100644 --- a/third_party/googleapis/google/apps/events/subscriptions/v1/subscriptions_service.proto +++ b/third_party/googleapis/google/apps/events/subscriptions/v1/subscriptions_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -98,7 +98,7 @@ service SubscriptionsService { option (google.api.http) = { get: "/v1/subscriptions" }; - option (google.api.method_signature) = "page_size, page_token, filter"; + option (google.api.method_signature) = "filter"; } // Updates or renews a Google Workspace subscription. To learn how to use this diff --git a/third_party/googleapis/google/apps/market/v2/BUILD.bazel b/third_party/googleapis/google/apps/market/v2/BUILD.bazel deleted file mode 100644 index 385a01d26..000000000 --- a/third_party/googleapis/google/apps/market/v2/BUILD.bazel +++ /dev/null @@ -1,302 +0,0 @@ -# This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/rules_gapic/tree/master/bazel - -# Most of the manual changes to this file will be overwritten. -# It's **only** allowed to change the following rule attribute values: -# - names of *_gapic_assembly_* rules -# - certain parameters of *_gapic_library rules, including but not limited to: -# * extra_protoc_parameters -# * extra_protoc_file_parameters -# The complete list of preserved parameters can be found in the source code. - -############################################################################## -# Common -############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") -load( - "@com_google_googleapis_imports//:imports.bzl", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", - "java_grpc_library", - "java_proto_library", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", - "proto_library_with_info", - "py_gapic_assembly_pkg", - "py_gapic_library", - "py_test", - "ruby_cloud_gapic_library", - "ruby_gapic_assembly_pkg", - "ruby_grpc_library", - "ruby_proto_library", -) - -# This is an API workspace, having public visibility by default makes perfect sense. -package(default_visibility = ["//visibility:public"]) - -proto_library( - name = "marketplace_proto", - srcs = [ - "resources.proto", - "services.proto", - ], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - ], -) - -proto_library_with_info( - name = "marketplace_proto_with_info", - deps = [ - ":marketplace_proto", - "//google/cloud:common_resources_proto", - ], -) - -java_proto_library( - name = "marketplace_java_proto", - deps = [":marketplace_proto"], -) - -java_grpc_library( - name = "marketplace_java_grpc", - srcs = [":marketplace_proto"], - deps = [":marketplace_java_proto"], -) - -java_gapic_library( - name = "marketplace_java_gapic", - srcs = [":marketplace_proto_with_info"], - grpc_service_config = "service_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - test_deps = [ - ":marketplace_java_grpc", - ], - transport = "grpc+rest", - deps = [ - ":marketplace_java_proto", - ], -) - -java_gapic_test( - name = "marketplace_java_gapic_test_suite", - test_classes = [ - "com.google.ccc.hosted.marketplace.v2.CustomerLicenseServiceClientHttpJsonTest", - "com.google.ccc.hosted.marketplace.v2.CustomerLicenseServiceClientTest", - "com.google.ccc.hosted.marketplace.v2.LicenseNotificationServiceClientHttpJsonTest", - "com.google.ccc.hosted.marketplace.v2.LicenseNotificationServiceClientTest", - "com.google.ccc.hosted.marketplace.v2.UserLicenseServiceClientHttpJsonTest", - "com.google.ccc.hosted.marketplace.v2.UserLicenseServiceClientTest", - ], - runtime_deps = [":marketplace_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-hosted-marketplace-v2-java", - include_samples = True, - transport = "grpc+rest", - deps = [ - ":marketplace_java_gapic", - ":marketplace_java_grpc", - ":marketplace_java_proto", - ":marketplace_proto", - ], -) - -go_proto_library( - name = "marketplace_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/ccc/hosted/marketplace/v2", - protos = [":marketplace_proto"], - deps = [ - "//google/api:annotations_go_proto", - ], -) - -go_gapic_library( - name = "marketplace_go_gapic", - srcs = [":marketplace_proto_with_info"], - grpc_service_config = "service_grpc_service_config.json", - importpath = "google.golang.org/ccc/hosted/marketplace/v2;marketplace", - metadata = True, - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - deps = [ - ":marketplace_go_proto", - ], -) - -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-hosted-marketplace-v2-go", - deps = [ - ":marketplace_go_gapic", - ":marketplace_go_gapic_srcjar-metadata.srcjar", - ":marketplace_go_gapic_srcjar-snippets.srcjar", - ":marketplace_go_gapic_srcjar-test.srcjar", - ":marketplace_go_proto", - ], -) - -py_gapic_library( - name = "marketplace_py_gapic", - srcs = [":marketplace_proto"], - grpc_service_config = "service_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - transport = "grpc+rest", -) - -py_test( - name = "marketplace_py_gapic_test", - srcs = [ - "marketplace_py_gapic_pytest.py", - "marketplace_py_gapic_test.py", - ], - legacy_create_init = False, - deps = [":marketplace_py_gapic"], -) - -# Open Source Packages -py_gapic_assembly_pkg( - name = "hosted-marketplace-v2-py", - deps = [ - ":marketplace_py_gapic", - ], -) - -php_proto_library( - name = "marketplace_php_proto", - deps = [":marketplace_proto"], -) - -php_gapic_library( - name = "marketplace_php_gapic", - srcs = [":marketplace_proto_with_info"], - grpc_service_config = "service_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - transport = "grpc+rest", - deps = [":marketplace_php_proto"], -) - -# Open Source Packages -php_gapic_assembly_pkg( - name = "google-cloud-hosted-marketplace-v2-php", - deps = [ - ":marketplace_php_gapic", - ":marketplace_php_proto", - ], -) - -nodejs_gapic_library( - name = "marketplace_nodejs_gapic", - package_name = "@google-cloud/marketplace", - src = ":marketplace_proto_with_info", - extra_protoc_parameters = ["metadata"], - grpc_service_config = "service_grpc_service_config.json", - package = "ccc.hosted.marketplace.v2", - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - transport = "grpc+rest", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "hosted-marketplace-v2-nodejs", - deps = [ - ":marketplace_nodejs_gapic", - ":marketplace_proto", - ], -) - -ruby_proto_library( - name = "marketplace_ruby_proto", - deps = [":marketplace_proto"], -) - -ruby_grpc_library( - name = "marketplace_ruby_grpc", - srcs = [":marketplace_proto"], - deps = [":marketplace_ruby_proto"], -) - -ruby_cloud_gapic_library( - name = "marketplace_ruby_gapic", - srcs = [":marketplace_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-hosted-marketplace-v2", - ], - grpc_service_config = "service_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - transport = "grpc+rest", - deps = [ - ":marketplace_ruby_grpc", - ":marketplace_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-hosted-marketplace-v2-ruby", - deps = [ - ":marketplace_ruby_gapic", - ":marketplace_ruby_grpc", - ":marketplace_ruby_proto", - ], -) - -csharp_proto_library( - name = "marketplace_csharp_proto", - deps = [":marketplace_proto"], -) - -csharp_grpc_library( - name = "marketplace_csharp_grpc", - srcs = [":marketplace_proto"], - deps = [":marketplace_csharp_proto"], -) - -csharp_gapic_library( - name = "marketplace_csharp_gapic", - srcs = [":marketplace_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "service_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "appsmarket_v2.yaml", - transport = "grpc+rest", - deps = [ - ":marketplace_csharp_grpc", - ":marketplace_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-hosted-marketplace-v2-csharp", - deps = [ - ":marketplace_csharp_gapic", - ":marketplace_csharp_grpc", - ":marketplace_csharp_proto", - ], -) - -############################################################################## -# C++ -############################################################################## -# Put your C++ rules here diff --git a/third_party/googleapis/google/apps/market/v2/appsmarket_v2.yaml b/third_party/googleapis/google/apps/market/v2/appsmarket_v2.yaml deleted file mode 100644 index 1fb992cda..000000000 --- a/third_party/googleapis/google/apps/market/v2/appsmarket_v2.yaml +++ /dev/null @@ -1,38 +0,0 @@ -type: google.api.Service -config_version: 3 -name: appsmarket.googleapis.com -title: Google Workspace Marketplace API - -apis: -- name: ccc.hosted.marketplace.v2.CustomerLicenseService -- name: ccc.hosted.marketplace.v2.LicenseNotificationService -- name: ccc.hosted.marketplace.v2.UserLicenseService - -documentation: - summary: |- - Lets your Google Workspace Marketplace applications integrate with Google's - licensing and billing services. - -backend: - rules: - - selector: ccc.hosted.marketplace.v2.CustomerLicenseService.Get - deadline: 20.0 - - selector: ccc.hosted.marketplace.v2.LicenseNotificationService.List - deadline: 20.0 - - selector: ccc.hosted.marketplace.v2.UserLicenseService.Get - deadline: 20.0 - -authentication: - rules: - - selector: ccc.hosted.marketplace.v2.CustomerLicenseService.Get - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/appsmarketplace.license - - selector: ccc.hosted.marketplace.v2.LicenseNotificationService.List - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/appsmarketplace.license - - selector: ccc.hosted.marketplace.v2.UserLicenseService.Get - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/appsmarketplace.license diff --git a/third_party/googleapis/google/apps/market/v2/resources.proto b/third_party/googleapis/google/apps/market/v2/resources.proto deleted file mode 100644 index 782edab30..000000000 --- a/third_party/googleapis/google/apps/market/v2/resources.proto +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright 2021 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package ccc.hosted.marketplace.v2; - - -option go_package = "google.golang.org/genproto/googleapis/ccc/hosted/marketplace/v2;marketplace"; -option java_multiple_files = true; -option java_outer_classname = "ResourcesProto"; -option java_package = "com.google.ccc.hosted.marketplace.v2"; -option php_namespace = "Google\\Apps\\Market\\V2"; - -message CustomerLicense { - message Editions { - // (Deprecated) - string edition_id = 405 [deprecated = true]; - - // (Deprecated) - int32 seat_count = 406 [deprecated = true]; - - // (Deprecated) - int32 assigned_seats = 409 [deprecated = true]; - } - - // The type of API resource. This is always appsmarket#customerLicense. - string kind = 1; - - // The customer's license status. One of: - // - // - `ACTIVE`: The customer has a valid license. - // - `UNLICENSED`: There is no license: either this customer has never - // installed your application, or else has deleted it. - string state = 2; - - // The ID of the application corresponding to this license query. - string application_id = 3; - - // (Deprecated) - repeated Editions editions = 4 [deprecated = true]; - - // The ID of the customer license. - string id = 101; - - // The domain name of the customer. - string customer_id = 102; -} - -message LicenseNotification { - message Deletes { - string kind = 1; - - // (Deprecated) - string edition_id = 901 [deprecated = true]; - } - - message Expiries { - string kind = 1; - - // (Deprecated) - string edition_id = 701 [deprecated = true]; - } - - message Provisions { - string kind = 1; - - // (Deprecated) - string edition_id = 601 [deprecated = true]; - - // The number of seats that were provisioned. - int64 seat_count = 602; - } - - message Reassignments { - string kind = 1; - - // The email address of the reassigned user. - string user_id = 801; - - string type = 802; - - // (Deprecated) - string edition_id = 803 [deprecated = true]; - } - - // The ID of the license notification. - string id = 1; - - // The ID of the application according to this notification. - string application_id = 2; - - // The time the event occurred, measuring in milliseconds since the UNIX - // epoch. - int64 timestamp = 3; - - // The domain name of the customer corresponding to this notification. - string customer_id = 4; - - // The type of API resource. This is always appsmarket#licenseNotification. - string kind = 5; - - // The list of provisioning notifications. - repeated Provisions provisions = 6; - - // The list of expiry notifications. - repeated Expiries expiries = 7; - - // The list of reassignment notifications. - repeated Reassignments reassignments = 8; - - // The list of deletion notifications. - repeated Deletes deletes = 9; -} - -message LicenseNotificationList { - string kind = 1; - - // The list of notifications. One or more of: - // - // - `provisions`: A new license of the application has been provisioned. - // - `expiries`: A license of the application has expired. - // - `deletions`: An application has been deleted from a domain. - // - `reassignments`: An administrator has assigned or revoked a seat license - // for the application on the provided domain. - repeated LicenseNotification notifications = 1007; - - // The token used to continue querying for notifications after the final - // notification in the current result set. - string next_page_token = 100602; -} - -message UserLicense { - // The type of API resource. This is always appsmarket#userLicense. - string kind = 1; - - // The domain administrator has activated the application for this domain. - bool enabled = 2; - - // The user's licensing status. One of: - // - // - `ACTIVE`: The user has a valid license and should be permitted to use the - // application. - // - `UNLICENSED`: The administrator of this user's domain never assigned a - // seat for the application to this user. - // - `EXPIRED`: The administrator assigned a seat to this user, but the - // license is expired. - string state = 3; - - // (Deprecated) - string edition_id = 4 [deprecated = true]; - - // The domain name of the user. - string customer_id = 5; - - // The ID of the application corresponding to the license query. - string application_id = 6; - - // The ID of user license. - string id = 101; - - // The email address of the user. - string user_id = 102; -} diff --git a/third_party/googleapis/google/apps/market/v2/service_grpc_service_config.json b/third_party/googleapis/google/apps/market/v2/service_grpc_service_config.json deleted file mode 100644 index 65501070d..000000000 --- a/third_party/googleapis/google/apps/market/v2/service_grpc_service_config.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "ccc.hosted.marketplace.v2.CustomerLicenseService", - "method": "Get" - }, - { - "service": "ccc.hosted.marketplace.v2.LicenseNotificationService", - "method": "List" - }, - { - "service": "ccc.hosted.marketplace.v2.UserLicenseService", - "method": "Get" - } - ], - "timeout": "60s", - "retryPolicy": { - "initialBackoff": "1s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": ["UNAVAILABLE", "UNKNOWN"] - } - } - ] -} diff --git a/third_party/googleapis/google/apps/market/v2/services.proto b/third_party/googleapis/google/apps/market/v2/services.proto deleted file mode 100644 index 83855e77e..000000000 --- a/third_party/googleapis/google/apps/market/v2/services.proto +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2021 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package ccc.hosted.marketplace.v2; - -import "google/api/annotations.proto"; -import "google/apps/market/v2/resources.proto"; -import "google/api/client.proto"; - -option go_package = "google.golang.org/genproto/googleapis/ccc/hosted/marketplace/v2;marketplace"; -option java_multiple_files = true; -option java_outer_classname = "ServiceProto"; -option java_package = "com.google.ccc.hosted.marketplace.v2"; -option php_namespace = "Google\\Apps\\Market\\V2"; - -service CustomerLicenseService { - option (google.api.default_host) = "appsmarket.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/appsmarketplace.license"; - - // Get the status of a license for a customer to determine if they have access - // for a given app. - rpc Get(CustomerLicenseGetRequest) returns (CustomerLicense) { - option (google.api.http) = { - get: "/appsmarket/v2/customerLicense/{application_id}/{customer_id}" - }; - } -} - -service LicenseNotificationService { - option (google.api.default_host) = "appsmarket.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/appsmarketplace.license"; - - // Get a list of licensing notifications with regards to a given app. - rpc List(LicenseNotificationListRequest) returns (LicenseNotificationList) { - option (google.api.http) = { - get: "/appsmarket/v2/licenseNotification/{application_id}" - body: "*" - }; - } -} - -service UserLicenseService { - option (google.api.default_host) = "appsmarket.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/appsmarketplace.license"; - - // Get the user's licensing status for their permission to use a given app. - rpc Get(UserLicenseGetRequest) returns (UserLicense) { - option (google.api.http) = { - get: "/appsmarket/v2/userLicense/{application_id}/{user_id}" - }; - } -} - -message CustomerLicenseGetRequest { - // Application Id - string application_id = 1; - - // Customer Id - string customer_id = 2; -} - -message LicenseNotificationListRequest { - // Application Id - string application_id = 1; - - uint32 max_results = 2; - - string start_token = 3; - - // Timestamp in milliseconds since epoch - uint64 timestamp = 4; -} - -message UserLicenseGetRequest { - // Application Id - string application_id = 1; - - // User Id - string user_id = 2; -} diff --git a/third_party/googleapis/google/apps/meet/v2/BUILD.bazel b/third_party/googleapis/google/apps/meet/v2/BUILD.bazel index a75216398..b98321caf 100644 --- a/third_party/googleapis/google/apps/meet/v2/BUILD.bazel +++ b/third_party/googleapis/google/apps/meet/v2/BUILD.bazel @@ -241,7 +241,7 @@ load( nodejs_gapic_library( name = "meet_nodejs_gapic", - package_name = "@google-cloud/meet", + package_name = "@google-apps/meet", src = ":meet_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "meet_v2_grpc_service_config.json", diff --git a/third_party/googleapis/google/apps/meet/v2/resource.proto b/third_party/googleapis/google/apps/meet/v2/resource.proto index 139eef020..4b4abcf5b 100644 --- a/third_party/googleapis/google/apps/meet/v2/resource.proto +++ b/third_party/googleapis/google/apps/meet/v2/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/meet/v2/service.proto b/third_party/googleapis/google/apps/meet/v2/service.proto index d519f3e86..2a5f9d30c 100644 --- a/third_party/googleapis/google/apps/meet/v2/service.proto +++ b/third_party/googleapis/google/apps/meet/v2/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/meet/v2beta/BUILD.bazel b/third_party/googleapis/google/apps/meet/v2beta/BUILD.bazel index 7802c8648..406918c34 100644 --- a/third_party/googleapis/google/apps/meet/v2beta/BUILD.bazel +++ b/third_party/googleapis/google/apps/meet/v2beta/BUILD.bazel @@ -241,7 +241,7 @@ load( nodejs_gapic_library( name = "meet_nodejs_gapic", - package_name = "@google-cloud/meet", + package_name = "@google-apps/meet", src = ":meet_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "meet_v2beta_grpc_service_config.json", diff --git a/third_party/googleapis/google/apps/meet/v2beta/resource.proto b/third_party/googleapis/google/apps/meet/v2beta/resource.proto index b2605a2ce..69ae99b13 100644 --- a/third_party/googleapis/google/apps/meet/v2beta/resource.proto +++ b/third_party/googleapis/google/apps/meet/v2beta/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/meet/v2beta/service.proto b/third_party/googleapis/google/apps/meet/v2beta/service.proto index 347280ee5..970585033 100644 --- a/third_party/googleapis/google/apps/meet/v2beta/service.proto +++ b/third_party/googleapis/google/apps/meet/v2beta/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/addon_widget_set.proto b/third_party/googleapis/google/apps/script/type/addon_widget_set.proto index 477ff90f7..fd8a39d50 100644 --- a/third_party/googleapis/google/apps/script/type/addon_widget_set.proto +++ b/third_party/googleapis/google/apps/script/type/addon_widget_set.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/calendar/calendar_addon_manifest.proto b/third_party/googleapis/google/apps/script/type/calendar/calendar_addon_manifest.proto index 3d21cd28c..021d31874 100644 --- a/third_party/googleapis/google/apps/script/type/calendar/calendar_addon_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/calendar/calendar_addon_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/docs/docs_addon_manifest.proto b/third_party/googleapis/google/apps/script/type/docs/docs_addon_manifest.proto index 395523be5..5ded7c0f4 100644 --- a/third_party/googleapis/google/apps/script/type/docs/docs_addon_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/docs/docs_addon_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/drive/drive_addon_manifest.proto b/third_party/googleapis/google/apps/script/type/drive/drive_addon_manifest.proto index 55da161cf..e6e6cfaed 100644 --- a/third_party/googleapis/google/apps/script/type/drive/drive_addon_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/drive/drive_addon_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/extension_point.proto b/third_party/googleapis/google/apps/script/type/extension_point.proto index f387c8642..69802a9ba 100644 --- a/third_party/googleapis/google/apps/script/type/extension_point.proto +++ b/third_party/googleapis/google/apps/script/type/extension_point.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/gmail/gmail_addon_manifest.proto b/third_party/googleapis/google/apps/script/type/gmail/gmail_addon_manifest.proto index eda200782..b654c39b8 100644 --- a/third_party/googleapis/google/apps/script/type/gmail/gmail_addon_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/gmail/gmail_addon_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/script_manifest.proto b/third_party/googleapis/google/apps/script/type/script_manifest.proto index 572d5da98..f4baca739 100644 --- a/third_party/googleapis/google/apps/script/type/script_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/script_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/sheets/sheets_addon_manifest.proto b/third_party/googleapis/google/apps/script/type/sheets/sheets_addon_manifest.proto index c34bca71f..7bedf73db 100644 --- a/third_party/googleapis/google/apps/script/type/sheets/sheets_addon_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/sheets/sheets_addon_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/apps/script/type/slides/slides_addon_manifest.proto b/third_party/googleapis/google/apps/script/type/slides/slides_addon_manifest.proto index 6a51bb2f4..d3d81e4b7 100644 --- a/third_party/googleapis/google/apps/script/type/slides/slides_addon_manifest.proto +++ b/third_party/googleapis/google/apps/script/type/slides/slides_addon_manifest.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/area120/tables/v1alpha1/tables.proto b/third_party/googleapis/google/area120/tables/v1alpha1/tables.proto index ad3dc1ae2..bcb889155 100644 --- a/third_party/googleapis/google/area120/tables/v1alpha1/tables.proto +++ b/third_party/googleapis/google/area120/tables/v1alpha1/tables.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto b/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto index 79aa6cbca..92448eb7b 100644 --- a/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto +++ b/third_party/googleapis/google/assistant/embedded/v1alpha1/embedded_assistant.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/assistant/embedded/v1alpha2/embedded_assistant.proto b/third_party/googleapis/google/assistant/embedded/v1alpha2/embedded_assistant.proto index eccd17611..0e40834a9 100755 --- a/third_party/googleapis/google/assistant/embedded/v1alpha2/embedded_assistant.proto +++ b/third_party/googleapis/google/assistant/embedded/v1alpha2/embedded_assistant.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/bigtable/admin/v2/BUILD.bazel b/third_party/googleapis/google/bigtable/admin/v2/BUILD.bazel index 83e88e6f4..9515a8872 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/BUILD.bazel +++ b/third_party/googleapis/google/bigtable/admin/v2/BUILD.bazel @@ -46,6 +46,7 @@ proto_library( "common.proto", "instance.proto", "table.proto", + "types.proto", ], deps = [ "//google/api:annotations_proto", @@ -125,7 +126,7 @@ java_gapic_assembly_gradle_pkg( go_proto_library( name = "admin_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/bigtable/admin/v2", + importpath = "cloud.google.com/go/bigtable/admin/apiv2/adminpb", protos = [":admin_proto"], deps = [ "//google/api:annotations_go_proto", @@ -208,7 +209,7 @@ php_gapic_library( name = "admin_php_gapic", srcs = [":admin_proto_with_info"], gapic_yaml = "bigtableadmin_gapic.yaml", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "bigtableadmin_v2.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/bigtable/admin/v2/bigtable_instance_admin.proto b/third_party/googleapis/google/bigtable/admin/v2/bigtable_instance_admin.proto index 3d1877a49..5e3fe7aff 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/bigtable_instance_admin.proto +++ b/third_party/googleapis/google/bigtable/admin/v2/bigtable_instance_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; +option go_package = "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "BigtableInstanceAdminProto"; option java_package = "com.google.bigtable.admin.v2"; diff --git a/third_party/googleapis/google/bigtable/admin/v2/bigtable_table_admin.proto b/third_party/googleapis/google/bigtable/admin/v2/bigtable_table_admin.proto index 62cd7d655..8614750af 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/bigtable_table_admin.proto +++ b/third_party/googleapis/google/bigtable/admin/v2/bigtable_table_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,7 +31,7 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; +option go_package = "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "BigtableTableAdminProto"; option java_package = "com.google.bigtable.admin.v2"; @@ -136,6 +136,61 @@ service BigtableTableAdmin { }; } + // Creates a new AuthorizedView in a table. + rpc CreateAuthorizedView(CreateAuthorizedViewRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/instances/*/tables/*}/authorizedViews" + body: "authorized_view" + }; + option (google.api.method_signature) = + "parent,authorized_view,authorized_view_id"; + option (google.longrunning.operation_info) = { + response_type: "AuthorizedView" + metadata_type: "CreateAuthorizedViewMetadata" + }; + } + + // Lists all AuthorizedViews from a specific table. + rpc ListAuthorizedViews(ListAuthorizedViewsRequest) + returns (ListAuthorizedViewsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/instances/*/tables/*}/authorizedViews" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets information from a specified AuthorizedView. + rpc GetAuthorizedView(GetAuthorizedViewRequest) returns (AuthorizedView) { + option (google.api.http) = { + get: "/v2/{name=projects/*/instances/*/tables/*/authorizedViews/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an AuthorizedView in a table. + rpc UpdateAuthorizedView(UpdateAuthorizedViewRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{authorized_view.name=projects/*/instances/*/tables/*/authorizedViews/*}" + body: "authorized_view" + }; + option (google.api.method_signature) = "authorized_view,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AuthorizedView" + metadata_type: "UpdateAuthorizedViewMetadata" + }; + } + + // Permanently deletes a specified AuthorizedView. + rpc DeleteAuthorizedView(DeleteAuthorizedViewRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/instances/*/tables/*/authorizedViews/*}" + }; + option (google.api.method_signature) = "name"; + } + // Performs a series of column family modifications on the specified table. // Either all or none of the modifications will occur before this method // returns, but data requests received prior to that point may see a table @@ -716,6 +771,12 @@ message ModifyColumnFamiliesRequest { // family exists. bool drop = 4; } + + // Optional. A mask specifying which fields (e.g. `gc_rule`) in the `update` + // mod should be updated, ignored for other modification types. If unset or + // empty, we treat it as updating `gc_rule` to be backward compatible. + google.protobuf.FieldMask update_mask = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Required. The unique name of the table whose families should be modified. @@ -775,8 +836,30 @@ message CheckConsistencyRequest { // Required. The token created using GenerateConsistencyToken for the Table. string consistency_token = 2 [(google.api.field_behavior) = REQUIRED]; + + // Which type of read needs to consistently observe which type of write? + // Default: `standard_read_remote_writes` + oneof mode { + // Checks that reads using an app profile with `StandardIsolation` can + // see all writes committed before the token was created, even if the + // read and write target different clusters. + StandardReadRemoteWrites standard_read_remote_writes = 3; + + // Checks that reads using an app profile with `DataBoostIsolationReadOnly` + // can see all writes committed before the token was created, but only if + // the read and write target the same cluster. + DataBoostReadLocalWrites data_boost_read_local_writes = 4; + } } +// Checks that all writes before the consistency token was generated are +// replicated in every cluster and readable. +message StandardReadRemoteWrites {} + +// Checks that all writes before the consistency token was generated in the same +// cluster are readable by Databoost. +message DataBoostReadLocalWrites {} + // Response message for // [google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency][google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency] message CheckConsistencyResponse { @@ -1194,3 +1277,158 @@ message CopyBackupMetadata { // operation. OperationProgress progress = 3; } + +// The request for +// [CreateAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.CreateAuthorizedView] +message CreateAuthorizedViewRequest { + // Required. This is the name of the table the AuthorizedView belongs to. + // Values are of the form + // `projects/{project}/instances/{instance}/tables/{table}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + + // Required. The id of the AuthorizedView to create. This AuthorizedView must + // not already exist. The `authorized_view_id` appended to `parent` forms the + // full AuthorizedView name of the form + // `projects/{project}/instances/{instance}/tables/{table}/authorizedView/{authorized_view}`. + string authorized_view_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AuthorizedView to create. + AuthorizedView authorized_view = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The metadata for the Operation returned by CreateAuthorizedView. +message CreateAuthorizedViewMetadata { + // The request that prompted the initiation of this CreateInstance operation. + CreateAuthorizedViewRequest original_request = 1; + + // The time at which the original request was received. + google.protobuf.Timestamp request_time = 2; + + // The time at which the operation failed or was completed successfully. + google.protobuf.Timestamp finish_time = 3; +} + +// Request message for +// [google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews][google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews] +message ListAuthorizedViewsRequest { + // Required. The unique name of the table for which AuthorizedViews should be + // listed. Values are of the form + // `projects/{project}/instances/{instance}/tables/{table}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + + // Optional. Maximum number of results per page. + // + // A page_size of zero lets the server choose the number of items to return. + // A page_size which is strictly positive will return at most that many items. + // A negative page_size will cause an error. + // + // Following the first request, subsequent paginated calls are not required + // to pass a page_size. If a page_size is set in subsequent calls, it must + // match the page_size given in the first request. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of `next_page_token` returned by a previous call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The resource_view to be applied to the returned views' fields. + // Default to NAME_ONLY. + AuthorizedView.ResponseView view = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews][google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews] +message ListAuthorizedViewsResponse { + // The AuthorizedViews present in the requested table. + repeated AuthorizedView authorized_views = 1; + + // Set if not all tables could be returned in a single response. + // Pass this value to `page_token` in another request to get the next + // page of results. + string next_page_token = 2; +} + +// Request message for +// [google.bigtable.admin.v2.BigtableTableAdmin.GetAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.GetAuthorizedView] +message GetAuthorizedViewRequest { + // Required. The unique name of the requested AuthorizedView. + // Values are of the form + // `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + + // Optional. The resource_view to be applied to the returned AuthorizedView's + // fields. Default to BASIC. + AuthorizedView.ResponseView view = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request for +// [UpdateAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.UpdateAuthorizedView]. +message UpdateAuthorizedViewRequest { + // Required. The AuthorizedView to update. The `name` in `authorized_view` is + // used to identify the AuthorizedView. AuthorizedView name must in this + // format + // projects//instances//tables//authorizedViews/ + AuthorizedView authorized_view = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of fields to update. + // A mask specifying which fields in the AuthorizedView resource should be + // updated. This mask is relative to the AuthorizedView resource, not to the + // request message. A field will be overwritten if it is in the mask. If + // empty, all fields set in the request will be overwritten. A special value + // `*` means to overwrite all fields (including fields not set in the + // request). + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, ignore the safety checks when updating the + // AuthorizedView. + bool ignore_warnings = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata for the google.longrunning.Operation returned by +// [UpdateAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.UpdateAuthorizedView]. +message UpdateAuthorizedViewMetadata { + // The request that prompted the initiation of this UpdateAuthorizedView + // operation. + UpdateAuthorizedViewRequest original_request = 1; + + // The time at which the original request was received. + google.protobuf.Timestamp request_time = 2; + + // The time at which the operation failed or was completed successfully. + google.protobuf.Timestamp finish_time = 3; +} + +// Request message for +// [google.bigtable.admin.v2.BigtableTableAdmin.DeleteAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.DeleteAuthorizedView] +message DeleteAuthorizedViewRequest { + // Required. The unique name of the AuthorizedView to be deleted. + // Values are of the form + // `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + + // Optional. The current etag of the AuthorizedView. + // If an etag is provided and does not match the current etag of the + // AuthorizedView, deletion will be blocked and an ABORTED error will be + // returned. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/bigtable/admin/v2/bigtableadmin_v2.yaml b/third_party/googleapis/google/bigtable/admin/v2/bigtableadmin_v2.yaml index 9581f5249..5e88a48b8 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/bigtableadmin_v2.yaml +++ b/third_party/googleapis/google/bigtable/admin/v2/bigtableadmin_v2.yaml @@ -10,6 +10,7 @@ apis: types: - name: google.bigtable.admin.v2.Backup - name: google.bigtable.admin.v2.CopyBackupMetadata +- name: google.bigtable.admin.v2.CreateAuthorizedViewMetadata - name: google.bigtable.admin.v2.CreateBackupMetadata - name: google.bigtable.admin.v2.CreateClusterMetadata - name: google.bigtable.admin.v2.CreateInstanceMetadata @@ -20,6 +21,7 @@ types: - name: google.bigtable.admin.v2.SnapshotTableMetadata - name: google.bigtable.admin.v2.UndeleteTableMetadata - name: google.bigtable.admin.v2.UpdateAppProfileMetadata +- name: google.bigtable.admin.v2.UpdateAuthorizedViewMetadata - name: google.bigtable.admin.v2.UpdateClusterMetadata - name: google.bigtable.admin.v2.UpdateInstanceMetadata - name: google.bigtable.admin.v2.UpdateTableMetadata diff --git a/third_party/googleapis/google/bigtable/admin/v2/common.proto b/third_party/googleapis/google/bigtable/admin/v2/common.proto index 9d8f06549..fe28f5fa8 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/common.proto +++ b/third_party/googleapis/google/bigtable/admin/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ package google.bigtable.admin.v2; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; +option go_package = "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "CommonProto"; option java_package = "com.google.bigtable.admin.v2"; diff --git a/third_party/googleapis/google/bigtable/admin/v2/instance.proto b/third_party/googleapis/google/bigtable/admin/v2/instance.proto index 950d9f488..188dae7eb 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/instance.proto +++ b/third_party/googleapis/google/bigtable/admin/v2/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ import "google/bigtable/admin/v2/common.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; +option go_package = "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "InstanceProto"; option java_package = "com.google.bigtable.admin.v2"; @@ -297,6 +297,35 @@ message AppProfile { Priority priority = 1; } + // Data Boost is a serverless compute capability that lets you run + // high-throughput read jobs on your Bigtable data, without impacting the + // performance of the clusters that handle your application traffic. + // Currently, Data Boost exclusively supports read-only use-cases with + // single-cluster routing. + // + // Data Boost reads are only guaranteed to see the results of writes that + // were written at least 30 minutes ago. This means newly written values may + // not become visible for up to 30m, and also means that old values may + // remain visible for up to 30m after being deleted or overwritten. To + // mitigate the staleness of the data, users may either wait 30m, or use + // CheckConsistency. + message DataBoostIsolationReadOnly { + // Compute Billing Owner specifies how usage should be accounted when using + // Data Boost. Compute Billing Owner also configures which Cloud Project is + // charged for relevant quota. + enum ComputeBillingOwner { + // Unspecified value. + COMPUTE_BILLING_OWNER_UNSPECIFIED = 0; + + // The host Cloud Project containing the targeted Bigtable Instance / + // Table pays for compute. + HOST_PAYS = 1; + } + + // The Compute Billing Owner for this Data Boost App Profile. + optional ComputeBillingOwner compute_billing_owner = 1; + } + // The unique name of the app profile. Values are of the form // `projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`. string name = 1; @@ -335,6 +364,10 @@ message AppProfile { // The standard options used for isolating this app profile's traffic from // other use cases. StandardIsolation standard_isolation = 11; + + // Specifies that this app profile is intended for read-only usage via the + // Data Boost feature. + DataBoostIsolationReadOnly data_boost_isolation_read_only = 10; } } diff --git a/third_party/googleapis/google/bigtable/admin/v2/table.proto b/third_party/googleapis/google/bigtable/admin/v2/table.proto index 4d02d3036..bdd53b6c5 100644 --- a/third_party/googleapis/google/bigtable/admin/v2/table.proto +++ b/third_party/googleapis/google/bigtable/admin/v2/table.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,12 +18,13 @@ package google.bigtable.admin.v2; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/bigtable/admin/v2/types.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin"; +option go_package = "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "TableProto"; option java_package = "com.google.bigtable.admin.v2"; @@ -142,6 +143,19 @@ message Table { FULL = 4; } + // Defines an automated backup policy for a table + message AutomatedBackupPolicy { + // Required. How long the automated backups should be retained. The only + // supported value at this time is 3 days. + google.protobuf.Duration retention_period = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. How frequently automated backups should occur. The only + // supported value at this time is 24 hours. + google.protobuf.Duration frequency = 2 + [(google.api.field_behavior) = REQUIRED]; + } + // The unique name of the table. Values are of the form // `projects/{project}/instances/{instance}/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`. // Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL` @@ -184,6 +198,85 @@ message Table { // // Note one can still delete the data stored in the table through Data APIs. bool deletion_protection = 9; + + oneof automated_backup_config { + // If specified, automated backups are enabled for this table. + // Otherwise, automated backups are disabled. + AutomatedBackupPolicy automated_backup_policy = 13; + } +} + +// AuthorizedViews represent subsets of a particular Cloud Bigtable table. Users +// can configure access to each Authorized View independently from the table and +// use the existing Data APIs to access the subset of data. +message AuthorizedView { + option (google.api.resource) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + pattern: "projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}" + plural: "authorizedViews" + singular: "authorizedView" + }; + + // Subsets of a column family that are included in this AuthorizedView. + message FamilySubsets { + // Individual exact column qualifiers to be included in the AuthorizedView. + repeated bytes qualifiers = 1; + + // Prefixes for qualifiers to be included in the AuthorizedView. Every + // qualifier starting with one of these prefixes is included in the + // AuthorizedView. To provide access to all qualifiers, include the empty + // string as a prefix + // (""). + repeated bytes qualifier_prefixes = 2; + } + + // Defines a simple AuthorizedView that is a subset of the underlying Table. + message SubsetView { + // Row prefixes to be included in the AuthorizedView. + // To provide access to all rows, include the empty string as a prefix (""). + repeated bytes row_prefixes = 1; + + // Map from column family name to the columns in this family to be included + // in the AuthorizedView. + map family_subsets = 2; + } + + // Defines a subset of an AuthorizedView's fields. + enum ResponseView { + // Uses the default view for each method as documented in the request. + RESPONSE_VIEW_UNSPECIFIED = 0; + + // Only populates `name`. + NAME_ONLY = 1; + + // Only populates the AuthorizedView's basic metadata. This includes: + // name, deletion_protection, etag. + BASIC = 2; + + // Populates every fields. + FULL = 3; + } + + // Identifier. The name of this AuthorizedView. + // Values are of the form + // `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The type of this AuthorizedView. + oneof authorized_view { + // An AuthorizedView permitting access to an explicit subset of a Table. + SubsetView subset_view = 2; + } + + // The etag for this AuthorizedView. + // If this is provided on update, it must match the server's etag. The server + // returns ABORTED error on a mismatched etag. + string etag = 3; + + // Set to true to make the AuthorizedView protected against deletion. + // The parent Table and containing Instance cannot be deleted if an + // AuthorizedView has this bit set. + bool deletion_protection = 4; } // A set of columns within a table which share a common configuration. @@ -195,6 +288,18 @@ message ColumnFamily { // so it's possible for reads to return a cell even if it matches the active // GC expression for its family. GcRule gc_rule = 1; + + // The type of data stored in each of this family's cell values, including its + // full encoding. If omitted, the family only serves raw untyped bytes. + // + // For now, only the `Aggregate` type is supported. + // + // `Aggregate` can only be set at family creation and is immutable afterwards. + // + // + // If `value_type` is `Aggregate`, written data must be compatible with: + // * `value_type.input_type` for `AddInput` mutations + Type value_type = 3; } // Rule for determining which cells to delete during garbage collection. diff --git a/third_party/googleapis/google/bigtable/admin/v2/types.proto b/third_party/googleapis/google/bigtable/admin/v2/types.proto new file mode 100644 index 000000000..6cbabc068 --- /dev/null +++ b/third_party/googleapis/google/bigtable/admin/v2/types.proto @@ -0,0 +1,177 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.bigtable.admin.v2; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Bigtable.Admin.V2"; +option go_package = "cloud.google.com/go/bigtable/admin/apiv2/adminpb;adminpb"; +option java_multiple_files = true; +option java_outer_classname = "TypesProto"; +option java_package = "com.google.bigtable.admin.v2"; +option php_namespace = "Google\\Cloud\\Bigtable\\Admin\\V2"; +option ruby_package = "Google::Cloud::Bigtable::Admin::V2"; + +// `Type` represents the type of data that is written to, read from, or stored +// in Bigtable. It is heavily based on the GoogleSQL standard to help maintain +// 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. +// This might involve composing a series of steps into an "encoding chain," for +// example to convert from INT64 -> STRING -> raw bytes. In most cases, a "link" +// in the encoding chain will be based an on existing GoogleSQL conversion +// function like `CAST`. +// +// Each link in the encoding chain also defines the following properties: +// * Natural sort: 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 to a fixed-width STRING does *not* +// preserve sort order when dealing with negative numbers. +// INT64(1) > INT64(-1), but STRING("-00001") > STRING("00001). +// - The overall encoding chain has this property if *every* link does. +// * 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. +// - The overall encoding chain has this property if *any* link does. +// * Compatibility: Which other systems have matching encoding schemes? For +// example, does this encoding have a GoogleSQL equivalent? HBase? Java? +message Type { + // Bytes + // Values of type `Bytes` are stored in `Value.bytes_value`. + message Bytes { + // Rules used to convert to/from lower level types. + message Encoding { + // Leaves the value "as-is" + // * Natural sort? Yes + // * Self-delimiting? No + // * Compatibility? N/A + message Raw {} + + // Which encoding to use. + oneof encoding { + // Use `Raw` encoding. + Raw raw = 1; + } + } + + // The encoding to use when converting to/from lower level types. + Encoding encoding = 1; + } + + // String + // Values of type `String` are stored in `Value.string_value`. + message String { + // Rules used to convert to/from lower level types. + message Encoding { + // UTF-8 encoding + // * Natural sort? No (ASCII characters only) + // * Self-delimiting? No + // * Compatibility? + // - BigQuery Federation `TEXT` encoding + // - HBase `Bytes.toBytes` + // - Java `String#getBytes(StandardCharsets.UTF_8)` + message Utf8Raw {} + + // Which encoding to use. + oneof encoding { + // Use `Utf8Raw` encoding. + Utf8Raw utf8_raw = 1; + } + } + + // The encoding to use when converting to/from lower level types. + Encoding encoding = 1; + } + + // Int64 + // Values of type `Int64` are stored in `Value.int_value`. + message Int64 { + // Rules used to convert to/from lower level types. + message Encoding { + // Encodes the value as an 8-byte big endian twos complement `Bytes` + // value. + // * Natural sort? No (positive values only) + // * Self-delimiting? Yes + // * Compatibility? + // - BigQuery Federation `BINARY` encoding + // - HBase `Bytes.toBytes` + // - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN` + message BigEndianBytes { + // The underlying `Bytes` type, which may be able to encode further. + Bytes bytes_type = 1; + } + + // Which encoding to use. + oneof encoding { + // Use `BigEndianBytes` encoding. + BigEndianBytes big_endian_bytes = 1; + } + } + + // The encoding to use when converting to/from lower level types. + Encoding encoding = 1; + } + + // 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` . + message Aggregate { + // Computes the sum of the input values. + // Allowed input: `Int64` + // State: same as input + message Sum {} + + // Type of the inputs that are accumulated by this `Aggregate`, which must + // specify a full encoding. + // Use `AddInput` mutations to accumulate new inputs. + Type input_type = 1; + + // 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. + Type state_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Which aggregator function to use. The configured types must match. + oneof aggregator { + // Sum aggregator. + Sum sum = 4; + } + } + + // The kind of type that this represents. + oneof kind { + // Bytes + Bytes bytes_type = 1; + + // String + String string_type = 2; + + // Int64 + Int64 int64_type = 5; + + // Aggregate + Aggregate aggregate_type = 6; + } +} diff --git a/third_party/googleapis/google/bigtable/v2/BUILD.bazel b/third_party/googleapis/google/bigtable/v2/BUILD.bazel index 3883c28c1..583d6c2c3 100644 --- a/third_party/googleapis/google/bigtable/v2/BUILD.bazel +++ b/third_party/googleapis/google/bigtable/v2/BUILD.bazel @@ -46,6 +46,7 @@ proto_library( "feature_flags.proto", "request_stats.proto", "response_params.proto", + "types.proto", ], deps = [ "//google/api:annotations_proto", @@ -54,6 +55,7 @@ proto_library( "//google/api:resource_proto", "//google/api:routing_proto", "//google/rpc:status_proto", + "//google/type:date_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", @@ -119,11 +121,12 @@ java_gapic_assembly_gradle_pkg( go_proto_library( name = "bigtable_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/bigtable/v2", + importpath = "cloud.google.com/go/bigtable/apiv2/bigtablepb", protos = [":bigtable_proto"], deps = [ "//google/api:annotations_go_proto", "//google/rpc:status_go_proto", + "//google/type:date_go_proto", ], ) @@ -192,7 +195,7 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "bigtable_v2.yaml", transport = "grpc+rest", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", deps = [":bigtable_php_proto"], ) diff --git a/third_party/googleapis/google/bigtable/v2/bigtable.proto b/third_party/googleapis/google/bigtable/v2/bigtable.proto index aca13f586..7c85b3f75 100644 --- a/third_party/googleapis/google/bigtable/v2/bigtable.proto +++ b/third_party/googleapis/google/bigtable/v2/bigtable.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ import "google/protobuf/wrappers.proto"; import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.Bigtable.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option go_package = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb"; option java_multiple_files = true; option java_outer_classname = "BigtableProto"; option java_package = "com.google.bigtable.v2"; @@ -43,6 +43,10 @@ option (google.api.resource_definition) = { type: "bigtableadmin.googleapis.com/Table" pattern: "projects/{project}/instances/{instance}/tables/{table}" }; +option (google.api.resource_definition) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + pattern: "projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}" +}; // Service for reading from and writing to existing Bigtable tables. service Bigtable { @@ -64,6 +68,10 @@ service Bigtable { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:readRows" body: "*" + additional_bindings { + post: "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readRows" + body: "*" + } }; option (google.api.routing) = { routing_parameters { @@ -71,6 +79,10 @@ service Bigtable { path_template: "{table_name=projects/*/instances/*/tables/*}" } routing_parameters { field: "app_profile_id" } + routing_parameters { + field: "authorized_view_name" + path_template: "{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}" + } }; option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; @@ -84,6 +96,9 @@ service Bigtable { returns (stream SampleRowKeysResponse) { option (google.api.http) = { get: "/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys" + additional_bindings { + get: "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:sampleRowKeys" + } }; option (google.api.routing) = { routing_parameters { @@ -91,6 +106,10 @@ service Bigtable { path_template: "{table_name=projects/*/instances/*/tables/*}" } routing_parameters { field: "app_profile_id" } + routing_parameters { + field: "authorized_view_name" + path_template: "{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}" + } }; option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; @@ -102,6 +121,10 @@ service Bigtable { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow" body: "*" + additional_bindings { + post: "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRow" + body: "*" + } }; option (google.api.routing) = { routing_parameters { @@ -109,6 +132,10 @@ service Bigtable { path_template: "{table_name=projects/*/instances/*/tables/*}" } routing_parameters { field: "app_profile_id" } + routing_parameters { + field: "authorized_view_name" + path_template: "{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}" + } }; option (google.api.method_signature) = "table_name,row_key,mutations"; option (google.api.method_signature) = @@ -122,6 +149,10 @@ service Bigtable { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows" body: "*" + additional_bindings { + post: "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRows" + body: "*" + } }; option (google.api.routing) = { routing_parameters { @@ -129,6 +160,10 @@ service Bigtable { path_template: "{table_name=projects/*/instances/*/tables/*}" } routing_parameters { field: "app_profile_id" } + routing_parameters { + field: "authorized_view_name" + path_template: "{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}" + } }; option (google.api.method_signature) = "table_name,entries"; option (google.api.method_signature) = "table_name,entries,app_profile_id"; @@ -140,6 +175,10 @@ service Bigtable { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow" body: "*" + additional_bindings { + post: "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:checkAndMutateRow" + body: "*" + } }; option (google.api.routing) = { routing_parameters { @@ -147,6 +186,10 @@ service Bigtable { path_template: "{table_name=projects/*/instances/*/tables/*}" } routing_parameters { field: "app_profile_id" } + routing_parameters { + field: "authorized_view_name" + path_template: "{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}" + } }; option (google.api.method_signature) = "table_name,row_key,predicate_filter,true_mutations,false_mutations"; @@ -182,6 +225,10 @@ service Bigtable { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow" body: "*" + additional_bindings { + post: "/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readModifyWriteRow" + body: "*" + } }; option (google.api.routing) = { routing_parameters { @@ -189,6 +236,10 @@ service Bigtable { path_template: "{table_name=projects/*/instances/*/tables/*}" } routing_parameters { field: "app_profile_id" } + routing_parameters { + field: "authorized_view_name" + path_template: "{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}" + } }; option (google.api.method_signature) = "table_name,row_key,rules"; option (google.api.method_signature) = @@ -223,6 +274,23 @@ service Bigtable { option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; } + + // Executes a BTQL query against a particular Cloud Bigtable instance. + rpc ExecuteQuery(ExecuteQueryRequest) returns (stream ExecuteQueryResponse) { + option (google.api.http) = { + post: "/v2/{instance_name=projects/*/instances/*}:executeQuery" + body: "*" + }; + option (google.api.routing) = { + routing_parameters { + field: "instance_name" + path_template: "{name=projects/*/instances/*}" + } + routing_parameters { field: "app_profile_id" } + }; + option (google.api.method_signature) = "instance_name,query"; + option (google.api.method_signature) = "instance_name,query,app_profile_id"; + } } // Request message for Bigtable.ReadRows. @@ -243,16 +311,28 @@ message ReadRowsRequest { REQUEST_STATS_FULL = 2; } - // Required. The unique name of the table from which to read. + // Optional. The unique name of the table from which to read. + // // Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "bigtableadmin.googleapis.com/Table" } ]; + // Optional. The unique name of the AuthorizedView from which to read. + // + // Values are of the form + // `projects//instances//tables/
/authorizedViews/`. + string authorized_view_name = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + // This value specifies routing for replication. If not specified, the // "default" application profile will be used. string app_profile_id = 5; @@ -390,16 +470,29 @@ message ReadRowsResponse { // Request message for Bigtable.SampleRowKeys. message SampleRowKeysRequest { - // Required. The unique name of the table from which to sample row keys. + // Optional. The unique name of the table from which to sample row keys. + // // Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "bigtableadmin.googleapis.com/Table" } ]; + // Optional. The unique name of the AuthorizedView from which to sample row + // keys. + // + // Values are of the form + // `projects//instances//tables/
/authorizedViews/`. + string authorized_view_name = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + // This value specifies routing for replication. If not specified, the // "default" application profile will be used. string app_profile_id = 2; @@ -425,16 +518,30 @@ message SampleRowKeysResponse { // Request message for Bigtable.MutateRow. message MutateRowRequest { - // Required. The unique name of the table to which the mutation should be - // applied. Values are of the form + // Optional. The unique name of the table to which the mutation should be + // applied. + // + // Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "bigtableadmin.googleapis.com/Table" } ]; + // Optional. The unique name of the AuthorizedView to which the mutation + // should be applied. + // + // Values are of the form + // `projects//instances//tables/
/authorizedViews/`. + string authorized_view_name = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + // This value specifies routing for replication. If not specified, the // "default" application profile will be used. string app_profile_id = 4; @@ -464,15 +571,30 @@ message MutateRowsRequest { repeated Mutation mutations = 2 [(google.api.field_behavior) = REQUIRED]; } - // Required. The unique name of the table to which the mutations should be + // Optional. The unique name of the table to which the mutations should be // applied. + // + // Values are of the form + // `projects//instances//tables/
`. string table_name = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "bigtableadmin.googleapis.com/Table" } ]; + // Optional. The unique name of the AuthorizedView to which the mutations + // should be applied. + // + // Values are of the form + // `projects//instances//tables/
/authorizedViews/`. + string authorized_view_name = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + // This value specifies routing for replication. If not specified, the // "default" application profile will be used. string app_profile_id = 3; @@ -533,16 +655,30 @@ message RateLimitInfo { // Request message for Bigtable.CheckAndMutateRow. message CheckAndMutateRowRequest { - // Required. The unique name of the table to which the conditional mutation - // should be applied. Values are of the form + // Optional. The unique name of the table to which the conditional mutation + // should be applied. + // + // Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "bigtableadmin.googleapis.com/Table" } ]; + // Optional. The unique name of the AuthorizedView to which the conditional + // mutation should be applied. + // + // Values are of the form + // `projects//instances//tables/
/authorizedViews/`. + string authorized_view_name = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + // This value specifies routing for replication. If not specified, the // "default" application profile will be used. string app_profile_id = 7; @@ -601,16 +737,30 @@ message PingAndWarmResponse {} // Request message for Bigtable.ReadModifyWriteRow. message ReadModifyWriteRowRequest { - // Required. The unique name of the table to which the read/modify/write rules - // should be applied. Values are of the form + // Optional. The unique name of the table to which the read/modify/write rules + // should be applied. + // + // Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "bigtableadmin.googleapis.com/Table" } ]; + // Optional. The unique name of the AuthorizedView to which the + // read/modify/write rules should be applied. + // + // Values are of the form + // `projects//instances//tables/
/authorizedViews/`. + string authorized_view_name = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/AuthorizedView" + } + ]; + // This value specifies routing for replication. If not specified, the // "default" application profile will be used. string app_profile_id = 4; @@ -873,3 +1023,80 @@ message ReadChangeStreamResponse { CloseStream close_stream = 3; } } + +// Request message for Bigtable.ExecuteQuery +message ExecuteQueryRequest { + // Required. The unique name of the instance against which the query should be + // executed. + // Values are of the form `projects//instances/` + string instance_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Instance" + } + ]; + + // Optional. This value specifies routing for replication. If not specified, + // the `default` application profile will be used. + string app_profile_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The query string. + string query = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Requested data format for the response. + oneof data_format { + // Protocol buffer format as described by ProtoSchema and ProtoRows + // messages. + ProtoFormat proto_format = 4; + } + + // Optional. If this request is resuming a previously interrupted query + // execution, `resume_token` should be copied from the last + // PartialResultSet yielded before the interruption. Doing this + // enables the query execution to resume where the last one left + // off. + // The rest of the request parameters must exactly match the + // request that yielded this token. Otherwise the request will fail. + bytes resume_token = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Required. params contains string type keys and Bigtable type values that + // bind to placeholders in the query string. In query string, a parameter + // placeholder consists of the + // `@` character followed by the parameter name (for example, `@firstName`) in + // the query string. + // + // For example, if + // `params["firstName"] = bytes_value: "foo" type {bytes_type {}}` + // then `@firstName` will be replaced with googlesql bytes value "foo" in the + // query string during query evaluation. + // + // In case of Value.kind is not set, it will be set to corresponding null + // value in googlesql. + // `params["firstName"] = type {string_type {}}` + // then `@firstName` will be replaced with googlesql null string. + // + // Value.type should always be set and no inference of type will be made from + // Value.kind. If Value.type is not set, we will return INVALID_ARGUMENT + // error. + map params = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for Bigtable.ExecuteQuery +message ExecuteQueryResponse { + // The first response streamed from the server is of type `ResultSetMetadata` + // and includes information about the columns and types of the result set. + // From there on, we stream `PartialResultSet` messages with no additional + // information. `PartialResultSet` will contain `resume_token` to restart the + // response if query interrupts. In case of resumption with `resume_token`, + // the server will not resend the ResultSetMetadata. + oneof response { + // Structure of rows in this response stream. The first (and only the first) + // response streamed from the server will be of this type. + ResultSetMetadata metadata = 1; + + // A partial result set with row data potentially including additional + // instructions on how recent past and future partial responses should be + // interpreted. + PartialResultSet results = 2; + } +} diff --git a/third_party/googleapis/google/bigtable/v2/bigtable_v2.yaml b/third_party/googleapis/google/bigtable/v2/bigtable_v2.yaml index d67359152..1d7064802 100644 --- a/third_party/googleapis/google/bigtable/v2/bigtable_v2.yaml +++ b/third_party/googleapis/google/bigtable/v2/bigtable_v2.yaml @@ -8,13 +8,14 @@ apis: types: - name: google.bigtable.v2.FeatureFlags +- name: google.bigtable.v2.ProtoRows - name: google.bigtable.v2.RequestStats - name: google.bigtable.v2.ResponseParams documentation: summary: |- - API for reading and writing the contents of Bigtables associated with a - cloud project. + API for reading and writing the contents of Bigtable tables associated with + a Google Cloud project. authentication: rules: diff --git a/third_party/googleapis/google/bigtable/v2/data.proto b/third_party/googleapis/google/bigtable/v2/data.proto index 1e7d463c7..26d45fc68 100644 --- a/third_party/googleapis/google/bigtable/v2/data.proto +++ b/third_party/googleapis/google/bigtable/v2/data.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,8 +16,13 @@ syntax = "proto3"; package google.bigtable.v2; +import "google/api/field_behavior.proto"; +import "google/bigtable/v2/types.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; + option csharp_namespace = "Google.Cloud.Bigtable.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option go_package = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb"; option java_multiple_files = true; option java_outer_classname = "DataProto"; option java_package = "com.google.bigtable.v2"; @@ -85,6 +90,77 @@ message Cell { repeated string labels = 3; } +// `Value` represents a dynamically typed value. +// The typed fields in `Value` are used as a transport encoding for the actual +// value (which may be of a more complex type). See the documentation of the +// `Type` message for more details. +message Value { + // The verified `Type` of this `Value`, if it cannot be inferred. + // + // Read results will never specify the encoding for `type` since the value + // will already have been decoded by the server. Furthermore, the `type` will + // be omitted entirely if it can be inferred from a previous response. The + // exact semantics for inferring `type` will vary, and are therefore + // documented separately for each read method. + // + // When using composite types (Struct, Array, Map) only the outermost `Value` + // will specify the `type`. This top-level `type` will define the types for + // any nested `Struct' fields, `Array` elements, or `Map` key/value pairs. + // If a nested `Value` provides a `type` on write, the request will be + // rejected with INVALID_ARGUMENT. + Type type = 7; + + // Options for transporting values within the protobuf type system. A given + // `kind` may support more than one `type` and vice versa. On write, this is + // roughly analogous to a GoogleSQL literal. + // + // The value is `NULL` if none of the fields in `kind` is set. If `type` is + // also omitted on write, we will infer it based on the schema. + oneof kind { + // Represents a raw byte sequence with no type information. + // The `type` field must be omitted. + bytes raw_value = 8; + + // Represents a raw cell timestamp with no type information. + // The `type` field must be omitted. + int64 raw_timestamp_micros = 9; + + // Represents a typed value transported as a byte sequence. + bytes bytes_value = 2; + + // Represents a typed value transported as a string. + string string_value = 3; + + // Represents a typed value transported as an integer. + int64 int_value = 6; + + // Represents a typed value transported as a boolean. + bool bool_value = 10; + + // Represents a typed value transported as a floating point number. + double float_value = 11; + + // Represents a typed value transported as a timestamp. + google.protobuf.Timestamp timestamp_value = 12; + + // Represents a typed value transported as a date. + google.type.Date date_value = 13; + + // Represents a typed value transported as a sequence of values. + // To differentiate between `Struct`, `Array`, and `Map`, the outermost + // `Value` must provide an explicit `type` on write. This `type` will + // apply recursively to the nested `Struct` fields, `Array` elements, + // or `Map` key/value pairs, which *must not* supply their own `type`. + ArrayValue array_value = 4; + } +} + +// `ArrayValue` is an ordered list of `Value`. +message ArrayValue { + // The ordered elements in the array. + repeated Value values = 1; +} + // Specifies a contiguous range of rows. message RowRange { // The row key at which to start the range. @@ -463,6 +539,26 @@ message Mutation { bytes value = 4; } + // A Mutation which incrementally updates a cell in an `Aggregate` family. + message AddToCell { + // The name of the `Aggregate` family into which new data should be added. + // This must be a family with a `value_type` of `Aggregate`. + // Format: `[-_.a-zA-Z0-9]+` + string family_name = 1; + + // The qualifier of the column into which new data should be added. This + // must be a `raw_value`. + Value column_qualifier = 2; + + // The timestamp of the cell to which new data should be added. This must + // be a `raw_timestamp_micros` that matches the table's `granularity`. + Value timestamp = 3; + + // The input value to be accumulated into the specified cell. This must be + // compatible with the family's `value_type.input_type`. + Value input = 4; + } + // A Mutation which deletes cells from the specified column, optionally // restricting the deletions to a given timestamp range. message DeleteFromColumn { @@ -493,6 +589,9 @@ message Mutation { // Set a cell's value. SetCell set_cell = 1; + // Incrementally updates an `Aggregate` cell. + AddToCell add_to_cell = 5; + // Deletes cells from a column. DeleteFromColumn delete_from_column = 2; @@ -558,3 +657,96 @@ message StreamContinuationToken { // An encoded position in the stream to restart reading from. string token = 2; } + +// Protocol buffers format descriptor, as described by Messages ProtoSchema and +// ProtoRows +message ProtoFormat {} + +// Describes a column in a Bigtable Query Language result set. +message ColumnMetadata { + // The name of the column. + string name = 1; + + // The type of the column. + Type type = 2; +} + +// ResultSet schema in proto format +message ProtoSchema { + // The columns in the result set. + repeated ColumnMetadata columns = 1; +} + +// Describes the structure of a Bigtable result set. +message ResultSetMetadata { + // The schema of the ResultSet, contains ordered list of column names + // with types + oneof schema { + // Schema in proto format + ProtoSchema proto_schema = 1; + } +} + +// Rows represented in proto format. +// +// This should be constructed by concatenating the `batch_data` from each +// of the relevant `ProtoRowsBatch` messages and parsing the result as a +// `ProtoRows` message. +message ProtoRows { + // A proto rows message consists of a list of values. Every N complete values + // defines a row, where N is equal to the number of entries in the + // `metadata.proto_schema.columns` value received in the first response. + repeated Value values = 2; +} + +// Batch of serialized ProtoRows. +message ProtoRowsBatch { + // Merge partial results by concatenating these bytes, then parsing the + // overall value as a `ProtoRows` message. + bytes batch_data = 1; +} + +// A partial result set from the streaming query API. +// CBT client will buffer partial_rows from result_sets until it gets a +// resumption_token. +message PartialResultSet { + // Partial Rows in one of the supported formats. It may require many + // PartialResultSets to stream a batch of rows that can decoded on the client. + // The client should buffer partial_rows until it gets a `resume_token`, + // at which point the batch is complete and can be decoded and yielded to the + // user. Each sub-message documents the appropriate way to combine results. + oneof partial_rows { + // Partial rows in serialized ProtoRows format. + ProtoRowsBatch proto_rows_batch = 3; + } + + // An opaque token sent by the server to allow query resumption and signal + // the client to accumulate `partial_rows` since the last non-empty + // `resume_token`. On resumption, the resumed query will return the remaining + // rows for this query. + // + // If there is a batch in progress, a non-empty `resume_token` + // means that that the batch of `partial_rows` will be complete after merging + // the `partial_rows` from this response. The client must only yield + // completed batches to the application, and must ensure that any future + // retries send the latest token to avoid returning duplicate data. + // + // The server may set 'resume_token' without a 'partial_rows'. If there is a + // batch in progress the client should yield it. + // + // The server will also send a sentinel `resume_token` when last batch of + // `partial_rows` is sent. If the client retries the ExecuteQueryRequest with + // the sentinel `resume_token`, the server will emit it again without any + // `partial_rows`, then return OK. + bytes resume_token = 5; + + // Estimated size of a new batch. The server will always set this when + // returning the first `partial_rows` of a batch, and will not set it at any + // other time. + // + // The client can use this estimate to allocate an initial buffer for the + // batched results. This helps minimize the number of allocations required, + // though the buffer size may still need to be increased if the estimate is + // too low. + int32 estimated_batch_size = 4; +} diff --git a/third_party/googleapis/google/bigtable/v2/feature_flags.proto b/third_party/googleapis/google/bigtable/v2/feature_flags.proto index d3128c5c6..e97f23e15 100644 --- a/third_party/googleapis/google/bigtable/v2/feature_flags.proto +++ b/third_party/googleapis/google/bigtable/v2/feature_flags.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ syntax = "proto3"; package google.bigtable.v2; option csharp_namespace = "Google.Cloud.Bigtable.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option go_package = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb"; option java_multiple_files = true; option java_outer_classname = "FeatureFlagsProto"; option java_package = "com.google.bigtable.v2"; @@ -58,4 +58,7 @@ message FeatureFlags { // Notify the server that the client supports using retry info back off // durations to retry requests with. bool retry_info = 7; + + // Notify the server that the client has client side metrics enabled. + bool client_side_metrics_enabled = 8; } diff --git a/third_party/googleapis/google/bigtable/v2/request_stats.proto b/third_party/googleapis/google/bigtable/v2/request_stats.proto index f650abe09..c82876876 100644 --- a/third_party/googleapis/google/bigtable/v2/request_stats.proto +++ b/third_party/googleapis/google/bigtable/v2/request_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ package google.bigtable.v2; import "google/protobuf/duration.proto"; option csharp_namespace = "Google.Cloud.Bigtable.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option go_package = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb"; option java_multiple_files = true; option java_outer_classname = "RequestStatsProto"; option java_package = "com.google.bigtable.v2"; diff --git a/third_party/googleapis/google/bigtable/v2/response_params.proto b/third_party/googleapis/google/bigtable/v2/response_params.proto index a8105911c..feb0f7d2a 100644 --- a/third_party/googleapis/google/bigtable/v2/response_params.proto +++ b/third_party/googleapis/google/bigtable/v2/response_params.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ syntax = "proto3"; package google.bigtable.v2; option csharp_namespace = "Google.Cloud.Bigtable.V2"; -option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option go_package = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb"; option java_multiple_files = true; option java_outer_classname = "ResponseParamsProto"; option java_package = "com.google.bigtable.v2"; diff --git a/third_party/googleapis/google/bigtable/v2/types.proto b/third_party/googleapis/google/bigtable/v2/types.proto new file mode 100644 index 000000000..d9c014850 --- /dev/null +++ b/third_party/googleapis/google/bigtable/v2/types.proto @@ -0,0 +1,286 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.bigtable.v2; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Bigtable.V2"; +option go_package = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb"; +option java_multiple_files = true; +option java_outer_classname = "TypesProto"; +option java_package = "com.google.bigtable.v2"; +option php_namespace = "Google\\Cloud\\Bigtable\\V2"; +option ruby_package = "Google::Cloud::Bigtable::V2"; + +// `Type` represents the type of data that is written to, read from, or stored +// in Bigtable. It is heavily based on the GoogleSQL standard to help maintain +// 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. +// +// Each encoding also defines the following properties: +// +// * 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? +message Type { + // Bytes + // Values of type `Bytes` are stored in `Value.bytes_value`. + message Bytes { + // Rules used to convert to/from lower level types. + message Encoding { + // Leaves the value "as-is" + // * Order-preserving? Yes + // * Self-delimiting? No + // * Compatibility? N/A + message Raw {} + + // Which encoding to use. + oneof encoding { + // Use `Raw` encoding. + Raw raw = 1; + } + } + + // The encoding to use when converting to/from lower level types. + Encoding encoding = 1; + } + + // String + // Values of type `String` are stored in `Value.string_value`. + message String { + // Rules used to convert to/from lower level types. + message Encoding { + // 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)` + message Utf8Bytes {} + + // Which encoding to use. + oneof encoding { + // Use `Utf8Bytes` encoding. + Utf8Bytes utf8_bytes = 2; + } + } + + // The encoding to use when converting to/from lower level types. + Encoding encoding = 1; + } + + // Int64 + // Values of type `Int64` are stored in `Value.int_value`. + message Int64 { + // Rules used to convert to/from lower level types. + message Encoding { + // 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` + message BigEndianBytes { + // Deprecated: ignored if set. + Bytes bytes_type = 1; + } + + // Which encoding to use. + oneof encoding { + // Use `BigEndianBytes` encoding. + BigEndianBytes big_endian_bytes = 1; + } + } + + // The encoding to use when converting to/from lower level types. + Encoding encoding = 1; + } + + // bool + // Values of type `Bool` are stored in `Value.bool_value`. + message Bool {} + + // Float32 + // Values of type `Float32` are stored in `Value.float_value`. + message Float32 {} + + // Float64 + // Values of type `Float64` are stored in `Value.float_value`. + message Float64 {} + + // Timestamp + // Values of type `Timestamp` are stored in `Value.timestamp_value`. + message Timestamp {} + + // Date + // Values of type `Date` are stored in `Value.date_value`. + message Date {} + + // A structured data value, consisting of fields which map to dynamically + // typed values. + // Values of type `Struct` are stored in `Value.array_value` where entries are + // in the same order and number as `field_types`. + message Struct { + // A struct field and its type. + message Field { + // The field name (optional). Fields without a `field_name` are considered + // anonymous and cannot be referenced by name. + string field_name = 1; + + // The type of values in this field. + Type type = 2; + } + + // The names and types of the fields in this struct. + repeated Field fields = 1; + } + + // An ordered list of elements of a given type. + // Values of type `Array` are stored in `Value.array_value`. + message Array { + // The type of the elements in the array. This must not be `Array`. + Type element_type = 1; + } + + // A mapping of keys to values of a given type. + // Values of type `Map` are stored in a `Value.array_value` where each entry + // is another `Value.array_value` with two elements (the key and the value, + // in that order). + // Normally encoded Map values won't have repeated keys, however, clients are + // expected to handle the case in which they do. If the same key appears + // multiple times, the _last_ value takes precedence. + message Map { + // The type of a map key. + // Only `Bytes`, `String`, and `Int64` are allowed as key types. + Type key_type = 1; + + // The type of the values in a map. + Type value_type = 2; + } + + // 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` . + message Aggregate { + // Computes the sum of the input values. + // Allowed input: `Int64` + // State: same as input + message Sum {} + + // Computes the max of the input values. + // Allowed input: `Int64` + // State: same as input + message Max {} + + // Computes the min of the input values. + // Allowed input: `Int64` + // State: same as input + message Min {} + + // Computes an approximate unique count over the input values. When using + // raw data as input, be careful to use a consistent encoding. Otherwise + // the same value encoded differently could count more than once, or two + // distinct values could count as identical. + // Input: Any, or omit for Raw + // State: TBD + // Special state conversions: `Int64` (the unique count estimate) + message HyperLogLogPlusPlusUniqueCount {} + + // Type of the inputs that are accumulated by this `Aggregate`, which must + // specify a full encoding. + // Use `AddInput` mutations to accumulate new inputs. + Type input_type = 1; + + // 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. + Type state_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Which aggregator function to use. The configured types must match. + oneof aggregator { + // Sum aggregator. + Sum sum = 4; + + // HyperLogLogPlusPlusUniqueCount aggregator. + HyperLogLogPlusPlusUniqueCount hllpp_unique_count = 5; + + // Max aggregator. + Max max = 6; + + // Min aggregator. + Min min = 7; + } + } + + // The kind of type that this represents. + oneof kind { + // Bytes + Bytes bytes_type = 1; + + // String + String string_type = 2; + + // Int64 + Int64 int64_type = 5; + + // Float32 + Float32 float32_type = 12; + + // Float64 + Float64 float64_type = 9; + + // Bool + Bool bool_type = 8; + + // Timestamp + Timestamp timestamp_type = 10; + + // Date + Date date_type = 11; + + // Aggregate + Aggregate aggregate_type = 6; + + // Struct + Struct struct_type = 7; + + // Array + Array array_type = 3; + + // Map + Map map_type = 4; + } +} diff --git a/third_party/googleapis/google/bytestream/bytestream.proto b/third_party/googleapis/google/bytestream/bytestream.proto index 2974601b7..8029f2d5a 100644 --- a/third_party/googleapis/google/bytestream/bytestream.proto +++ b/third_party/googleapis/google/bytestream/bytestream.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/chat/BUILD.bazel b/third_party/googleapis/google/chat/BUILD.bazel new file mode 100644 index 000000000..638c4e03c --- /dev/null +++ b/third_party/googleapis/google/chat/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-apps-chat. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for chat. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "chat_ruby_wrapper", + srcs = ["//google/chat/v1:chat_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-apps-chat", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/chat/v1:chat_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-chat-ruby", + deps = [ + ":chat_ruby_wrapper", + ], +) \ No newline at end of file diff --git a/third_party/googleapis/google/chat/logging/v1/chat_app_log_entry.proto b/third_party/googleapis/google/chat/logging/v1/chat_app_log_entry.proto index fd8425543..eca7fbf75 100644 --- a/third_party/googleapis/google/chat/logging/v1/chat_app_log_entry.proto +++ b/third_party/googleapis/google/chat/logging/v1/chat_app_log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/chat/v1/BUILD.bazel b/third_party/googleapis/google/chat/v1/BUILD.bazel index 29e0a71b6..d7fb42781 100644 --- a/third_party/googleapis/google/chat/v1/BUILD.bazel +++ b/third_party/googleapis/google/chat/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "chat_proto", @@ -27,6 +30,7 @@ proto_library( "chat_service.proto", "contextual_addon.proto", "deletion_metadata.proto", + "event_payload.proto", "group.proto", "history_state.proto", "matched_url.proto", @@ -35,7 +39,10 @@ proto_library( "reaction.proto", "slash_command.proto", "space.proto", + "space_event.proto", + "space_read_state.proto", "space_setup.proto", + "thread_read_state.proto", "user.proto", "widgets.proto", ], @@ -63,6 +70,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -119,12 +127,14 @@ java_gapic_assembly_gradle_pkg( ":chat_java_grpc", ":chat_java_proto", ":chat_proto", + "//google/apps/card/v1:card_java_proto", # Added manually ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -174,18 +184,28 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_import", "py_test", ) +py_import( + name="card", + srcs = [ + "//google/apps/card/v1:card_py_gapic", + ], +) + py_gapic_library( name = "chat_py_gapic", srcs = [":chat_proto"], grpc_service_config = "chat_grpc_service_config.json", opt_args = [ + "proto-plus-deps=google.apps.card.v1", "python-gapic-namespace=google.apps", "warehouse-package-name=google-apps-chat", ], @@ -193,7 +213,7 @@ py_gapic_library( service_yaml = "chat_v1.yaml", transport = "grpc+rest", deps = [ - "//google/apps/card/v1:card_py_proto", + ":card", ], ) @@ -234,7 +254,7 @@ php_gapic_library( name = "chat_php_gapic", srcs = [":chat_proto_with_info"], grpc_service_config = "chat_grpc_service_config.json", - migration_mode = "PRE_MIGRATION_SURFACE_ONLY", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "chat_v1.yaml", transport = "grpc+rest", @@ -255,6 +275,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -263,7 +284,7 @@ load( nodejs_gapic_library( name = "chat_nodejs_gapic", - package_name = "@google-cloud/chat", + package_name = "@google-apps/chat", src = ":chat_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "chat_grpc_service_config.json", @@ -286,6 +307,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -308,7 +330,10 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "chat_ruby_gapic", srcs = [":chat_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-chat-v1"], + extra_protoc_parameters = [ + "ruby-cloud-extra-dependencies=google-apps-card-v1=>0.0+<2.a", + "ruby-cloud-gem-name=google-apps-chat-v1", + ], grpc_service_config = "chat_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "chat_v1.yaml", @@ -332,6 +357,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -342,7 +368,6 @@ load( csharp_proto_library( name = "chat_csharp_proto", - extra_opts = [], deps = [":chat_proto"], ) @@ -379,6 +404,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/chat/v1/action_status.proto b/third_party/googleapis/google/chat/v1/action_status.proto index 4bf4f842b..192022327 100644 --- a/third_party/googleapis/google/chat/v1/action_status.proto +++ b/third_party/googleapis/google/chat/v1/action_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,16 +18,17 @@ package google.chat.v1; import "google/rpc/code.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "ActionStatusProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // Represents the status for a request to either invoke or submit a -// [dialog](https://developers.google.com/chat/how-tos/dialogs). +// [dialog](https://developers.google.com/workspace/chat/dialogs). message ActionStatus { // The status code. google.rpc.Code status_code = 1; diff --git a/third_party/googleapis/google/chat/v1/annotation.proto b/third_party/googleapis/google/chat/v1/annotation.proto index 55f6a9c0a..cdb24119d 100644 --- a/third_party/googleapis/google/chat/v1/annotation.proto +++ b/third_party/googleapis/google/chat/v1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,20 +16,23 @@ syntax = "proto3"; package google.chat.v1; +import "google/api/resource.proto"; +import "google/chat/v1/attachment.proto"; import "google/chat/v1/user.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "AnnotationProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // Output only. Annotations associated with the plain-text body of the message. // To add basic formatting to a text message, see // [Format text -// messages](https://developers.google.com/chat/format-messages). +// messages](https://developers.google.com/workspace/chat/format-messages). // // Example plain-text message body: // ``` @@ -72,6 +75,9 @@ message Annotation { // The metadata for a slash command. SlashCommandMetadata slash_command = 5; + + // The metadata for a rich link. + RichLinkMetadata rich_link_metadata = 6; } } @@ -124,6 +130,41 @@ message SlashCommandMetadata { bool triggers_dialog = 5; } +// A rich link to a resource. +message RichLinkMetadata { + // The rich link type. More types might be added in the future. + enum RichLinkType { + // Default value for the enum. Don't use. + RICH_LINK_TYPE_UNSPECIFIED = 0; + + // A Google Drive rich link type. + DRIVE_FILE = 1; + } + + // The URI of this link. + string uri = 1; + + // The rich link type. + RichLinkType rich_link_type = 2; + + // Data for the linked resource. + oneof data { + // Data for a drive link. + DriveLinkData drive_link_data = 3; + } +} + +// Data for Google Drive links. +message DriveLinkData { + // A + // [DriveDataRef](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.attachments#drivedataref) + // which references a Google Drive file. + DriveDataRef drive_data_ref = 1; + + // The mime type of the linked Google Drive resource. + string mime_type = 2; +} + // Type of the annotation. enum AnnotationType { // Default value for the enum. Don't use. @@ -134,4 +175,7 @@ enum AnnotationType { // A slash command is invoked. SLASH_COMMAND = 2; + + // A rich link annotation. + RICH_LINK = 3; } diff --git a/third_party/googleapis/google/chat/v1/attachment.proto b/third_party/googleapis/google/chat/v1/attachment.proto index 2e3285c6f..c500959e5 100644 --- a/third_party/googleapis/google/chat/v1/attachment.proto +++ b/third_party/googleapis/google/chat/v1/attachment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,13 +19,14 @@ package google.chat.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "AttachmentProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // An attachment in Google Chat. message Attachment { @@ -34,16 +35,20 @@ message Attachment { pattern: "spaces/{space}/messages/{message}/attachments/{attachment}" }; + // The source of the attachment. enum Source { + // Reserved. SOURCE_UNSPECIFIED = 0; + // The file is a Google Drive file. DRIVE_FILE = 1; + // The file is uploaded to Chat. UPLOADED_CONTENT = 2; } // Resource name of the attachment, in the form - // `spaces/*/messages/*/attachments/*`. + // `spaces/{space}/messages/{message}/attachments/{attachment}`. string name = 1; // Output only. The original file name for the content, not the full path. @@ -52,6 +57,7 @@ message Attachment { // Output only. The content type (MIME type) of the file. string content_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The data reference to the attachment. oneof data_ref { // A reference to the attachment data. This field is used with the media API // to download the attachment data. @@ -82,6 +88,7 @@ message DriveDataRef { string drive_file_id = 2; } +// A reference to the attachment data. message AttachmentDataRef { // The resource name of the attachment data. This field is used with the media // API to download the attachment data. @@ -93,15 +100,17 @@ message AttachmentDataRef { string attachment_upload_token = 2; } +// Request to get an attachment. message GetAttachmentRequest { // Required. Resource name of the attachment, in the form - // `spaces/*/messages/*/attachments/*`. + // `spaces/{space}/messages/{message}/attachments/{attachment}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Attachment" } ]; } +// Request to upload an attachment. message UploadAttachmentRequest { // Required. Resource name of the Chat space in which the attachment is // uploaded. Format "spaces/{space}". @@ -116,6 +125,7 @@ message UploadAttachmentRequest { string filename = 4 [(google.api.field_behavior) = REQUIRED]; } +// Response of uploading an attachment. message UploadAttachmentResponse { // Reference to the uploaded attachment. AttachmentDataRef attachment_data_ref = 1; diff --git a/third_party/googleapis/google/chat/v1/chat_grpc_service_config.json b/third_party/googleapis/google/chat/v1/chat_grpc_service_config.json index d2f47bd9e..be3bae06a 100644 --- a/third_party/googleapis/google/chat/v1/chat_grpc_service_config.json +++ b/third_party/googleapis/google/chat/v1/chat_grpc_service_config.json @@ -26,7 +26,9 @@ { "service": "google.chat.v1.ChatService", "method": "UpdateSpaceReadState" }, { "service": "google.chat.v1.ChatService", "method": "GetSpaceReadState" }, { "service": "google.chat.v1.ChatService", "method": "GetThreadReadState" }, - { "service": "google.chat.v1.ChatService", "method": "GetAttachment" } + { "service": "google.chat.v1.ChatService", "method": "GetAttachment" }, + { "service": "google.chat.v1.ChatService", "method": "GetSpaceEvent" }, + { "service": "google.chat.v1.ChatService", "method": "ListSpaceEvents" } ], "timeout": "30s", "retryPolicy": { diff --git a/third_party/googleapis/google/chat/v1/chat_service.proto b/third_party/googleapis/google/chat/v1/chat_service.proto index e055bb32b..01f080ee3 100644 --- a/third_party/googleapis/google/chat/v1/chat_service.proto +++ b/third_party/googleapis/google/chat/v1/chat_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,22 +23,31 @@ import "google/chat/v1/membership.proto"; import "google/chat/v1/message.proto"; import "google/chat/v1/reaction.proto"; import "google/chat/v1/space.proto"; +import "google/chat/v1/space_event.proto"; +import "google/chat/v1/space_read_state.proto"; import "google/chat/v1/space_setup.proto"; +import "google/chat/v1/thread_read_state.proto"; import "google/protobuf/empty.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "ChatServiceProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // Enables developers to build Chat apps and // integrations on Google Chat Platform. service ChatService { option (google.api.default_host) = "chat.googleapis.com"; option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/chat.admin.delete," + "https://www.googleapis.com/auth/chat.admin.memberships," + "https://www.googleapis.com/auth/chat.admin.memberships.readonly," + "https://www.googleapis.com/auth/chat.admin.spaces," + "https://www.googleapis.com/auth/chat.admin.spaces.readonly," "https://www.googleapis.com/auth/chat.bot," "https://www.googleapis.com/auth/chat.delete," "https://www.googleapis.com/auth/chat.import," @@ -53,14 +62,17 @@ service ChatService { "https://www.googleapis.com/auth/chat.messages.readonly," "https://www.googleapis.com/auth/chat.spaces," "https://www.googleapis.com/auth/chat.spaces.create," - "https://www.googleapis.com/auth/chat.spaces.readonly"; + "https://www.googleapis.com/auth/chat.spaces.readonly," + "https://www.googleapis.com/auth/chat.users.readstate," + "https://www.googleapis.com/auth/chat.users.readstate.readonly"; - // Creates a message in a Google Chat space. For an example, see [Create a - // message](https://developers.google.com/chat/api/guides/v1/messages/create). + // Creates a message in a Google Chat space. The maximum message size, + // including text and cards, is 32,000 bytes. For an example, see [Send a + // message](https://developers.google.com/workspace/chat/create-messages). // // Calling this method requires - // [authentication](https://developers.google.com/chat/api/guides/auth) and - // supports the following authentication types: + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize) + // and supports the following authentication types: // // - For text messages, user authentication or app authentication are // supported. @@ -78,7 +90,7 @@ service ChatService { // messages from blocked members and spaces. For an example, see // [List messages](/chat/api/guides/v1/messages/list). // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc ListMessages(ListMessagesRequest) returns (ListMessagesResponse) { option (google.api.http) = { get: "/v1/{parent=spaces/*}/messages" @@ -86,25 +98,25 @@ service ChatService { option (google.api.method_signature) = "parent"; } - // Lists memberships in a space. For an example, see [List - // memberships](https://developers.google.com/chat/api/guides/v1/members/list). - // Listing memberships with - // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // Lists memberships in a space. For an example, see [List users and Google + // Chat apps in a + // space](https://developers.google.com/workspace/chat/list-members). Listing + // memberships with [app + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // lists memberships in spaces that the Chat app has // access to, but excludes Chat app memberships, // including its own. Listing memberships with // [User - // authentication](https://developers.google.com/chat/api/guides/auth/users) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) // lists memberships in spaces that the authenticated user has access to. // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc ListMemberships(ListMembershipsRequest) returns (ListMembershipsResponse) { option (google.api.http) = { @@ -114,16 +126,16 @@ service ChatService { } // Returns details about a membership. For an example, see - // [Get a - // membership](https://developers.google.com/chat/api/guides/v1/members/get). + // [Get details about a user's or Google Chat app's + // membership](https://developers.google.com/workspace/chat/get-members). // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc GetMembership(GetMembershipRequest) returns (Membership) { option (google.api.http) = { get: "/v1/{name=spaces/*/members/*}" @@ -132,16 +144,16 @@ service ChatService { } // Returns details about a message. - // For an example, see [Read a - // message](https://developers.google.com/chat/api/guides/v1/messages/get). + // For an example, see [Get details about a + // message](https://developers.google.com/workspace/chat/get-messages). // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // // Note: Might return a message from a blocked member or space. rpc GetMessage(GetMessageRequest) returns (Message) { @@ -156,15 +168,15 @@ service ChatService { // method uses a `patch` request while the `update` method uses a `put` // request. We recommend using the `patch` method. For an example, see // [Update a - // message](https://developers.google.com/chat/api/guides/v1/messages/update). + // message](https://developers.google.com/workspace/chat/update-messages). // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // When using app authentication, requests can only update messages // created by the calling Chat app. rpc UpdateMessage(UpdateMessageRequest) returns (Message) { @@ -181,15 +193,15 @@ service ChatService { // Deletes a message. // For an example, see [Delete a - // message](https://developers.google.com/chat/api/guides/v1/messages/delete). + // message](https://developers.google.com/workspace/chat/delete-messages). // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // When using app authentication, requests can only delete messages // created by the calling Chat app. rpc DeleteMessage(DeleteMessageRequest) returns (google.protobuf.Empty) { @@ -201,12 +213,12 @@ service ChatService { // Gets the metadata of a message attachment. The attachment data is fetched // using the [media - // API](https://developers.google.com/chat/api/reference/rest/v1/media/download). + // API](https://developers.google.com/workspace/chat/api/reference/rest/v1/media/download). // For an example, see - // [Get a message - // attachment](https://developers.google.com/chat/api/guides/v1/media-and-attachments/get). + // [Get metadata about a message + // attachment](https://developers.google.com/workspace/chat/get-media-attachments). // Requires [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). rpc GetAttachment(GetAttachmentRequest) returns (Attachment) { option (google.api.http) = { get: "/v1/{name=spaces/*/messages/*/attachments/*}" @@ -216,9 +228,9 @@ service ChatService { // Uploads an attachment. For an example, see // [Upload media as a file - // attachment](https://developers.google.com/chat/api/guides/v1/media-and-attachments/upload). + // attachment](https://developers.google.com/workspace/chat/upload-media-attachments). // Requires user - // [authentication](https://developers.google.com/chat/api/guides/auth/users). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // // You can upload attachments up to 200 MB. Certain file types aren't // supported. For details, see [File types blocked by Google @@ -234,18 +246,22 @@ service ChatService { // Lists spaces the caller is a member of. Group chats and DMs aren't listed // until the first message is sent. For an example, see // [List - // spaces](https://developers.google.com/chat/api/guides/v1/spaces/list). + // spaces](https://developers.google.com/workspace/chat/list-spaces). // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // // Lists spaces visible to the caller or authenticated user. Group chats // and DMs aren't listed until the first message is sent. + // + // To list all named spaces by Google Workspace organization, use the + // [`spaces.search()`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search) + // method using Workspace administrator privileges instead. rpc ListSpaces(ListSpacesRequest) returns (ListSpacesResponse) { option (google.api.http) = { get: "/v1/spaces" @@ -254,15 +270,16 @@ service ChatService { } // Returns details about a space. For an example, see - // [Get a space](https://developers.google.com/chat/api/guides/v1/spaces/get). + // [Get details about a + // space](https://developers.google.com/workspace/chat/get-spaces). // // Requires - // [authentication](https://developers.google.com/chat/api/guides/auth). + // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). // Supports // [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) // and [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc GetSpace(GetSpaceRequest) returns (Space) { option (google.api.http) = { get: "/v1/{name=spaces/*}" @@ -272,14 +289,14 @@ service ChatService { // Creates a named space. Spaces grouped by topics aren't supported. For an // example, see [Create a - // space](https://developers.google.com/chat/api/guides/v1/spaces/create). + // space](https://developers.google.com/workspace/chat/create-spaces). // // If you receive the error message `ALREADY_EXISTS` when creating // a space, try a different `displayName`. An existing space within // the Google Workspace organization might already use this display name. // // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc CreateSpace(CreateSpaceRequest) returns (Space) { option (google.api.http) = { post: "/v1/spaces" @@ -291,21 +308,32 @@ service ChatService { // Creates a space and adds specified users to it. The calling user is // automatically added to the space, and shouldn't be specified as a // membership in the request. For an example, see - // [Set up a - // space](https://developers.google.com/chat/api/guides/v1/spaces/set-up). + // [Set up a space with initial + // members](https://developers.google.com/workspace/chat/set-up-spaces). // // To specify the human members to add, add memberships with the appropriate - // `member.name` in the `SetUpSpaceRequest`. To add a human user, use - // `users/{user}`, where `{user}` can be the email address for the user. For - // users in the same Workspace organization `{user}` can also be the `id` for - // the person from the People API, or the `id` for the user in the Directory - // API. For example, if the People API Person profile ID for - // `user@example.com` is `123456789`, you can add the user to the space by - // setting the `membership.member.name` to `users/user@example.com` or - // `users/123456789`. - // - // For a space or group chat, if the caller blocks or is blocked by some - // members, then those members aren't added to the created space. + // `membership.member.name`. To add a human user, use `users/{user}`, where + // `{user}` can be the email address for the user. For users in the same + // Workspace organization `{user}` can also be the `id` for the person from + // the People API, or the `id` for the user in the Directory API. For example, + // if the People API Person profile ID for `user@example.com` is `123456789`, + // you can add the user to the space by setting the `membership.member.name` + // to `users/user@example.com` or `users/123456789`. + // + // To specify the Google groups to add, add memberships with the + // appropriate `membership.group_member.name`. To add or invite a Google + // group, use `groups/{group}`, where `{group}` is the `id` for the group from + // the Cloud Identity Groups API. For example, you can use [Cloud Identity + // Groups lookup + // API](https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup) + // to retrieve the ID `123456789` for group email `group@example.com`, then + // you can add the group to the space by setting the + // `membership.group_member.name` to `groups/123456789`. Group email is not + // supported, and Google groups can only be added as members in named spaces. + // + // For a named space or group chat, if the caller blocks, or is blocked + // by some members, or doesn't have permission to add some members, then + // those members aren't added to the created space. // // To create a direct message (DM) between the calling user and another human // user, specify exactly one membership to represent the human user. If @@ -316,8 +344,8 @@ service ChatService { // can only use this method to set up a DM with the calling app. To add the // calling app as a member of a space or an existing DM between two human // users, see - // [create a - // membership](https://developers.google.com/chat/api/guides/v1/members/create). + // [Invite or add a user or app to a + // space](https://developers.google.com/workspace/chat/create-members). // // If a DM already exists between two users, even when one user blocks the // other at the time a request is made, then the existing DM is returned. @@ -328,7 +356,7 @@ service ChatService { // might already use this display name. // // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc SetUpSpace(SetUpSpaceRequest) returns (Space) { option (google.api.http) = { post: "/v1/spaces:setup" @@ -338,14 +366,14 @@ service ChatService { // Updates a space. For an example, see // [Update a - // space](https://developers.google.com/chat/api/guides/v1/spaces/update). + // space](https://developers.google.com/workspace/chat/update-spaces). // // If you're updating the `displayName` field and receive the error message // `ALREADY_EXISTS`, try a different display name.. An existing space within // the Google Workspace organization might already use this display name. // // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc UpdateSpace(UpdateSpaceRequest) returns (Space) { option (google.api.http) = { patch: "/v1/{space.name=spaces/*}" @@ -358,9 +386,9 @@ service ChatService { // that the space's child resources—like messages posted in the space and // memberships in the space—are also deleted. For an example, see // [Delete a - // space](https://developers.google.com/chat/api/guides/v1/spaces/delete). + // space](https://developers.google.com/workspace/chat/delete-spaces). // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) // from a user who has permission to delete the space. rpc DeleteSpace(DeleteSpaceRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -370,11 +398,11 @@ service ChatService { } // Completes the - // [import process](https://developers.google.com/chat/api/guides/import-data) + // [import process](https://developers.google.com/workspace/chat/import-data) // for the specified space and makes it visible to users. // Requires app authentication and domain-wide delegation. For more // information, see [Authorize Google Chat apps to import - // data](https://developers.google.com/chat/api/guides/authorize-import). + // data](https://developers.google.com/workspace/chat/authorize-import). rpc CompleteImportSpace(CompleteImportSpaceRequest) returns (CompleteImportSpaceResponse) { option (google.api.http) = { @@ -389,19 +417,19 @@ service ChatService { // [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). // // With [user - // authentication](https://developers.google.com/chat/api/guides/auth/users), + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), // returns the direct message space between the specified user and the // authenticated user. // // With [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts), + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app), // returns the direct message space between the specified user and the calling // Chat app. // // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users) + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) // or [app - // authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). rpc FindDirectMessage(FindDirectMessageRequest) returns (Space) { option (google.api.http) = { get: "/v1/spaces:findDirectMessage" @@ -410,16 +438,17 @@ service ChatService { // Creates a human membership or app membership for the calling app. Creating // memberships for other apps isn't supported. For an example, see - // [ Create a - // membership](https://developers.google.com/chat/api/guides/v1/members/create). + // [Invite or add a user or a Google Chat app to a + // space](https://developers.google.com/workspace/chat/create-members). // When creating a membership, if the specified member has their auto-accept // policy turned off, then they're invited, and must accept the space // invitation before joining. Otherwise, creating a membership adds the member // directly to the specified space. Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // - // To specify the member to add, set the `membership.member.name` in the - // `CreateMembershipRequest`: + // To specify the member to add, set the `membership.member.name` for the + // human or app member, or set the `membership.group_member.name` for the + // group member. // // - To add the calling app to a space or a direct message between two human // users, use `users/app`. Unable to add other @@ -432,6 +461,15 @@ service ChatService { // profile ID for `user@example.com` is `123456789`, you can add the user to // the space by setting the `membership.member.name` to // `users/user@example.com` or `users/123456789`. + // + // - To add or invite a Google group in a named space, use + // `groups/{group}`, where `{group}` is the `id` for the group from the Cloud + // Identity Groups API. For example, you can use [Cloud Identity Groups lookup + // API](https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup) + // to retrieve the ID `123456789` for group email `group@example.com`, then + // you can add or invite the group to a named space by setting the + // `membership.group_member.name` to `groups/123456789`. Group email is not + // supported, and Google groups can only be added as members in named spaces. rpc CreateMembership(CreateMembershipRequest) returns (Membership) { option (google.api.http) = { post: "/v1/{parent=spaces/*}/members" @@ -440,12 +478,25 @@ service ChatService { option (google.api.method_signature) = "parent,membership"; } + // Updates a membership. For an example, see [Update a user's membership in + // a space](https://developers.google.com/workspace/chat/update-members). + // + // Requires [user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + rpc UpdateMembership(UpdateMembershipRequest) returns (Membership) { + option (google.api.http) = { + patch: "/v1/{membership.name=spaces/*/members/*}" + body: "membership" + }; + option (google.api.method_signature) = "membership,update_mask"; + } + // Deletes a membership. For an example, see - // [Delete a - // membership](https://developers.google.com/chat/api/guides/v1/members/delete). + // [Remove a user or a Google Chat app from a + // space](https://developers.google.com/workspace/chat/delete-members). // // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc DeleteMembership(DeleteMembershipRequest) returns (Membership) { option (google.api.http) = { delete: "/v1/{name=spaces/*/members/*}" @@ -453,12 +504,12 @@ service ChatService { option (google.api.method_signature) = "name"; } - // Creates a reaction and adds it to a message. For an example, see - // [Create a - // reaction](https://developers.google.com/chat/api/guides/v1/reactions/create). + // Creates a reaction and adds it to a message. Only unicode emojis are + // supported. For an example, see + // [Add a reaction to a + // message](https://developers.google.com/workspace/chat/create-reactions). // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). - // Only unicode emoji are supported. + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc CreateReaction(CreateReactionRequest) returns (Reaction) { option (google.api.http) = { post: "/v1/{parent=spaces/*/messages/*}/reactions" @@ -468,10 +519,10 @@ service ChatService { } // Lists reactions to a message. For an example, see - // [List - // reactions](https://developers.google.com/chat/api/guides/v1/reactions/list). + // [List reactions for a + // message](https://developers.google.com/workspace/chat/list-reactions). // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc ListReactions(ListReactionsRequest) returns (ListReactionsResponse) { option (google.api.http) = { get: "/v1/{parent=spaces/*/messages/*}/reactions" @@ -479,15 +530,102 @@ service ChatService { option (google.api.method_signature) = "parent"; } - // Deletes a reaction to a message. For an example, see + // Deletes a reaction to a message. Only unicode emojis are supported. + // For an example, see // [Delete a - // reaction](https://developers.google.com/chat/api/guides/v1/reactions/delete). + // reaction](https://developers.google.com/workspace/chat/delete-reactions). // Requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc DeleteReaction(DeleteReactionRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/{name=spaces/*/messages/*/reactions/*}" }; option (google.api.method_signature) = "name"; } + + // Returns details about a user's read state within a space, used to identify + // read and unread messages. For an example, see [Get details about a user's + // space read + // state](https://developers.google.com/workspace/chat/get-space-read-state). + // + // Requires [user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + rpc GetSpaceReadState(GetSpaceReadStateRequest) returns (SpaceReadState) { + option (google.api.http) = { + get: "/v1/{name=users/*/spaces/*/spaceReadState}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a user's read state within a space, used to identify read and + // unread messages. For an example, see [Update a user's space read + // state](https://developers.google.com/workspace/chat/update-space-read-state). + // + // Requires [user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + rpc UpdateSpaceReadState(UpdateSpaceReadStateRequest) + returns (SpaceReadState) { + option (google.api.http) = { + patch: "/v1/{space_read_state.name=users/*/spaces/*/spaceReadState}" + body: "space_read_state" + }; + option (google.api.method_signature) = "space_read_state,update_mask"; + } + + // Returns details about a user's read state within a thread, used to identify + // read and unread messages. For an example, see [Get details about a user's + // thread read + // state](https://developers.google.com/workspace/chat/get-thread-read-state). + // + // Requires [user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + rpc GetThreadReadState(GetThreadReadStateRequest) returns (ThreadReadState) { + option (google.api.http) = { + get: "/v1/{name=users/*/spaces/*/threads/*/threadReadState}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns an event from a Google Chat space. The [event + // payload](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload) + // contains the most recent version of the resource that changed. For example, + // if you request an event about a new message but the message was later + // updated, the server returns the updated `Message` resource in the event + // payload. + // + // Requires [user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + // To get an event, the authenticated user must be a member of the space. + // + // For an example, see [Get details about an + // event from a Google Chat + // space](https://developers.google.com/workspace/chat/get-space-event). + rpc GetSpaceEvent(GetSpaceEventRequest) returns (SpaceEvent) { + option (google.api.http) = { + get: "/v1/{name=spaces/*/spaceEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists events from a Google Chat space. For each event, the + // [payload](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload) + // contains the most recent version of the Chat resource. For example, if you + // list events about new space members, the server returns `Membership` + // resources that contain the latest membership details. If new members were + // removed during the requested period, the event payload contains an empty + // `Membership` resource. + // + // Requires [user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + // To list events, the authenticated user must be a member of the space. + // + // For an example, see [List events from a Google Chat + // space](https://developers.google.com/workspace/chat/list-space-events). + rpc ListSpaceEvents(ListSpaceEventsRequest) + returns (ListSpaceEventsResponse) { + option (google.api.http) = { + get: "/v1/{parent=spaces/*}/spaceEvents" + }; + option (google.api.method_signature) = "parent,filter"; + } } diff --git a/third_party/googleapis/google/chat/v1/chat_v1.yaml b/third_party/googleapis/google/chat/v1/chat_v1.yaml index 8cfd6b28b..bcb755fa7 100644 --- a/third_party/googleapis/google/chat/v1/chat_v1.yaml +++ b/third_party/googleapis/google/chat/v1/chat_v1.yaml @@ -21,6 +21,7 @@ authentication: - selector: google.chat.v1.ChatService.CreateMembership oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.memberships, https://www.googleapis.com/auth/chat.import, https://www.googleapis.com/auth/chat.memberships, https://www.googleapis.com/auth/chat.memberships.app @@ -47,6 +48,7 @@ authentication: - selector: google.chat.v1.ChatService.DeleteMembership oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.memberships, https://www.googleapis.com/auth/chat.import, https://www.googleapis.com/auth/chat.memberships, https://www.googleapis.com/auth/chat.memberships.app @@ -65,6 +67,7 @@ authentication: - selector: google.chat.v1.ChatService.DeleteSpace oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.delete, https://www.googleapis.com/auth/chat.delete, https://www.googleapis.com/auth/chat.import - selector: google.chat.v1.ChatService.FindDirectMessage @@ -80,6 +83,8 @@ authentication: - selector: google.chat.v1.ChatService.GetMembership oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.memberships, + https://www.googleapis.com/auth/chat.admin.memberships.readonly, https://www.googleapis.com/auth/chat.bot, https://www.googleapis.com/auth/chat.memberships, https://www.googleapis.com/auth/chat.memberships.readonly @@ -92,12 +97,37 @@ authentication: - selector: google.chat.v1.ChatService.GetSpace oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.spaces, + https://www.googleapis.com/auth/chat.admin.spaces.readonly, https://www.googleapis.com/auth/chat.bot, https://www.googleapis.com/auth/chat.spaces, https://www.googleapis.com/auth/chat.spaces.readonly + - selector: google.chat.v1.ChatService.GetSpaceEvent + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.memberships, + https://www.googleapis.com/auth/chat.memberships.readonly, + https://www.googleapis.com/auth/chat.messages, + https://www.googleapis.com/auth/chat.messages.reactions, + https://www.googleapis.com/auth/chat.messages.reactions.readonly, + https://www.googleapis.com/auth/chat.messages.readonly, + https://www.googleapis.com/auth/chat.spaces, + https://www.googleapis.com/auth/chat.spaces.readonly + - selector: google.chat.v1.ChatService.GetSpaceReadState + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.users.readstate, + https://www.googleapis.com/auth/chat.users.readstate.readonly + - selector: google.chat.v1.ChatService.GetThreadReadState + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.users.readstate, + https://www.googleapis.com/auth/chat.users.readstate.readonly - selector: google.chat.v1.ChatService.ListMemberships oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.memberships, + https://www.googleapis.com/auth/chat.admin.memberships.readonly, https://www.googleapis.com/auth/chat.bot, https://www.googleapis.com/auth/chat.import, https://www.googleapis.com/auth/chat.memberships, @@ -115,6 +145,17 @@ authentication: https://www.googleapis.com/auth/chat.messages.reactions, https://www.googleapis.com/auth/chat.messages.reactions.readonly, https://www.googleapis.com/auth/chat.messages.readonly + - selector: google.chat.v1.ChatService.ListSpaceEvents + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.memberships, + https://www.googleapis.com/auth/chat.memberships.readonly, + https://www.googleapis.com/auth/chat.messages, + https://www.googleapis.com/auth/chat.messages.reactions, + https://www.googleapis.com/auth/chat.messages.reactions.readonly, + https://www.googleapis.com/auth/chat.messages.readonly, + https://www.googleapis.com/auth/chat.spaces, + https://www.googleapis.com/auth/chat.spaces.readonly - selector: google.chat.v1.ChatService.ListSpaces oauth: canonical_scopes: |- @@ -126,6 +167,12 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/chat.spaces, https://www.googleapis.com/auth/chat.spaces.create + - selector: google.chat.v1.ChatService.UpdateMembership + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.memberships, + https://www.googleapis.com/auth/chat.import, + https://www.googleapis.com/auth/chat.memberships - selector: google.chat.v1.ChatService.UpdateMessage oauth: canonical_scopes: |- @@ -135,8 +182,13 @@ authentication: - selector: google.chat.v1.ChatService.UpdateSpace oauth: canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.spaces, https://www.googleapis.com/auth/chat.import, https://www.googleapis.com/auth/chat.spaces + - selector: google.chat.v1.ChatService.UpdateSpaceReadState + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.users.readstate - selector: google.chat.v1.ChatService.UploadAttachment oauth: canonical_scopes: |- diff --git a/third_party/googleapis/google/chat/v1/contextual_addon.proto b/third_party/googleapis/google/chat/v1/contextual_addon.proto index c4c6876d9..9daa7346c 100644 --- a/third_party/googleapis/google/chat/v1/contextual_addon.proto +++ b/third_party/googleapis/google/chat/v1/contextual_addon.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,13 +18,14 @@ package google.chat.v1; import "google/chat/v1/widgets.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "ContextualAddOnProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // The markup for developers to specify the contents of a contextual AddOn. message ContextualAddOnMarkup { @@ -66,7 +67,7 @@ message ContextualAddOnMarkup { // supported. For more information // about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace diff --git a/third_party/googleapis/google/chat/v1/deletion_metadata.proto b/third_party/googleapis/google/chat/v1/deletion_metadata.proto index e7fcab726..4b208755e 100644 --- a/third_party/googleapis/google/chat/v1/deletion_metadata.proto +++ b/third_party/googleapis/google/chat/v1/deletion_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,13 +16,14 @@ syntax = "proto3"; package google.chat.v1; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "DeletionMetadataProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // Information about a deleted message. A message is deleted when `delete_time` // is set. diff --git a/third_party/googleapis/google/chat/v1/event_payload.proto b/third_party/googleapis/google/chat/v1/event_payload.proto new file mode 100644 index 000000000..bd7674124 --- /dev/null +++ b/third_party/googleapis/google/chat/v1/event_payload.proto @@ -0,0 +1,177 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.chat.v1; + +import "google/api/field_behavior.proto"; +import "google/chat/v1/membership.proto"; +import "google/chat/v1/message.proto"; +import "google/chat/v1/reaction.proto"; +import "google/chat/v1/space.proto"; + +option csharp_namespace = "Google.Apps.Chat.V1"; +option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; +option java_multiple_files = true; +option java_outer_classname = "EventPayloadProto"; +option java_package = "com.google.chat.v1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; + +// Event payload for a new membership. +// +// Event type: `google.workspace.chat.membership.v1.created`. +message MembershipCreatedEventData { + // The new membership. + Membership membership = 1; +} + +// Event payload for a deleted membership. +// +// Event type: `google.workspace.chat.membership.v1.deleted` +message MembershipDeletedEventData { + // The deleted membership. Only the `name` and `state` fields are populated. + Membership membership = 1; +} + +// Event payload for an updated membership. +// +// Event type: `google.workspace.chat.membership.v1.updated` +message MembershipUpdatedEventData { + // The updated membership. + Membership membership = 1; +} + +// Event payload for multiple new memberships. +// +// Event type: `google.workspace.chat.membership.v1.batchCreated` +message MembershipBatchCreatedEventData { + // A list of new memberships. + repeated MembershipCreatedEventData memberships = 1; +} + +// Event payload for multiple updated memberships. +// +// Event type: `google.workspace.chat.membership.v1.batchUpdated` +message MembershipBatchUpdatedEventData { + // A list of updated memberships. + repeated MembershipUpdatedEventData memberships = 1; +} + +// Event payload for multiple deleted memberships. +// +// Event type: `google.workspace.chat.membership.v1.batchDeleted` +message MembershipBatchDeletedEventData { + // A list of deleted memberships. + repeated MembershipDeletedEventData memberships = 1; +} + +// Event payload for a new message. +// +// Event type: `google.workspace.chat.message.v1.created` +message MessageCreatedEventData { + // The new message. + Message message = 1; +} + +// Event payload for an updated message. +// +// Event type: `google.workspace.chat.message.v1.updated` +message MessageUpdatedEventData { + // The updated message. + Message message = 1; +} + +// Event payload for a deleted message. +// +// Event type: `google.workspace.chat.message.v1.deleted` +message MessageDeletedEventData { + // The deleted message. Only the `name`, `createTime`, `deleteTime`, and + // `deletionMetadata` fields are populated. + Message message = 1; +} + +// Event payload for multiple new messages. +// +// Event type: `google.workspace.chat.message.v1.batchCreated` +message MessageBatchCreatedEventData { + // A list of new messages. + repeated MessageCreatedEventData messages = 1; +} + +// Event payload for multiple updated messages. +// +// Event type: `google.workspace.chat.message.v1.batchUpdated` +message MessageBatchUpdatedEventData { + // A list of updated messages. + repeated MessageUpdatedEventData messages = 1; +} + +// Event payload for multiple deleted messages. +// +// Event type: `google.workspace.chat.message.v1.batchDeleted` +message MessageBatchDeletedEventData { + // A list of deleted messages. + repeated MessageDeletedEventData messages = 1; +} + +// Event payload for an updated space. +// +// Event type: `google.workspace.chat.space.v1.updated` +message SpaceUpdatedEventData { + // The updated space. + Space space = 1; +} + +// Event payload for multiple updates to a space. +// +// Event type: `google.workspace.chat.space.v1.batchUpdated` +message SpaceBatchUpdatedEventData { + // A list of updated spaces. + repeated SpaceUpdatedEventData spaces = 1; +} + +// Event payload for a new reaction. +// +// Event type: `google.workspace.chat.reaction.v1.created` +message ReactionCreatedEventData { + // The new reaction. + Reaction reaction = 1; +} + +// Event payload for a deleted reaction. +// +// Type: `google.workspace.chat.reaction.v1.deleted` +message ReactionDeletedEventData { + // The deleted reaction. + Reaction reaction = 1; +} + +// Event payload for multiple new reactions. +// +// Event type: `google.workspace.chat.reaction.v1.batchCreated` +message ReactionBatchCreatedEventData { + // A list of new reactions. + repeated ReactionCreatedEventData reactions = 1; +} + +// Event payload for multiple deleted reactions. +// +// Event type: `google.workspace.chat.reaction.v1.batchDeleted` +message ReactionBatchDeletedEventData { + // A list of deleted reactions. + repeated ReactionDeletedEventData reactions = 1; +} diff --git a/third_party/googleapis/google/chat/v1/group.proto b/third_party/googleapis/google/chat/v1/group.proto index bf9147c6d..068828e3b 100644 --- a/third_party/googleapis/google/chat/v1/group.proto +++ b/third_party/googleapis/google/chat/v1/group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,13 +16,14 @@ syntax = "proto3"; package google.chat.v1; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "GroupProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A Google Group in Google Chat. message Group { diff --git a/third_party/googleapis/google/chat/v1/history_state.proto b/third_party/googleapis/google/chat/v1/history_state.proto index 34f744271..41828c8a7 100644 --- a/third_party/googleapis/google/chat/v1/history_state.proto +++ b/third_party/googleapis/google/chat/v1/history_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,13 +16,14 @@ syntax = "proto3"; package google.chat.v1; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "HistoryStateProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // The history state for messages and spaces. Specifies how long messages and // conversation threads are kept after creation. diff --git a/third_party/googleapis/google/chat/v1/matched_url.proto b/third_party/googleapis/google/chat/v1/matched_url.proto index ee987e37b..89c95c635 100644 --- a/third_party/googleapis/google/chat/v1/matched_url.proto +++ b/third_party/googleapis/google/chat/v1/matched_url.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,13 +18,14 @@ package google.chat.v1; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "MatchedUrlProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A matched URL in a Chat message. Chat apps can preview matched URLs. For more // information, see [Preview diff --git a/third_party/googleapis/google/chat/v1/membership.proto b/third_party/googleapis/google/chat/v1/membership.proto index e4fb69c23..1441df09b 100644 --- a/third_party/googleapis/google/chat/v1/membership.proto +++ b/third_party/googleapis/google/chat/v1/membership.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,15 +20,17 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/chat/v1/group.proto"; import "google/chat/v1/user.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "MembershipProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // Represents a membership relation in Google Chat, such as whether a user or // Chat app is invited to, part of, or absent from a space. @@ -89,7 +91,6 @@ message Membership { // Optional. User's role within a Chat space, which determines their permitted // actions in the space. // - // [Developer Preview](https://developers.google.com/workspace/preview): // This field can only be used as input in `UpdateMembership`. MembershipRole role = 7 [(google.api.field_behavior) = OPTIONAL]; @@ -98,15 +99,13 @@ message Membership { oneof memberType { // The Google Chat user or app the membership corresponds to. // If your Chat app [authenticates as a - // user](https://developers.google.com/chat/api/guides/auth/users), the - // output populates the - // [user](https://developers.google.com/chat/api/reference/rest/v1/User) + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // the output populates the + // [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) // `name` and `type`. User member = 3; // The Google Group the membership corresponds to. - // Only supports read operations. Other operations, like creating or - // updating a membership, aren't currently supported. Group group_member = 5; } @@ -127,6 +126,7 @@ message Membership { ]; } +// Request message for creating a membership. message CreateMembershipRequest { // Required. The resource name of the space for which to create the // membership. @@ -158,6 +158,23 @@ message CreateMembershipRequest { Membership membership = 2 [(google.api.field_behavior) = REQUIRED]; } +// Request message for updating a membership. +message UpdateMembershipRequest { + // Required. The membership to update. Only fields specified by `update_mask` + // are updated. + Membership membership = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The field paths to update. Separate multiple values with commas + // or use `*` to update all field paths. + // + // Currently supported field paths: + // + // - `role` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for listing memberships. message ListMembershipsRequest { // Required. The resource name of the space for which to fetch a membership // list. @@ -175,8 +192,8 @@ message ListMembershipsRequest { // // If unspecified, at most 100 memberships are returned. // - // The maximum value is 1,000. If you use a value more than 1,000, it's - // automatically changed to 1,000. + // The maximum value is 1000. If you use a value more than 1000, it's + // automatically changed to 1000. // // Negative values return an `INVALID_ARGUMENT` error. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -192,22 +209,29 @@ message ListMembershipsRequest { // Optional. A query filter. // // You can filter memberships by a member's role - // ([`role`](https://developers.google.com/chat/api/reference/rest/v1/spaces.members#membershiprole)) + // ([`role`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members#membershiprole)) // and type - // ([`member.type`](https://developers.google.com/chat/api/reference/rest/v1/User#type)). + // ([`member.type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/User#type)). // // To filter by role, set `role` to `ROLE_MEMBER` or `ROLE_MANAGER`. // - // To filter by type, set `member.type` to `HUMAN` or `BOT`. + // To filter by type, set `member.type` to `HUMAN` or `BOT`. Developer + // Preview: You can also filter for `member.type` using the `!=` operator. // // To filter by both role and type, use the `AND` operator. To filter by // either role or type, use the `OR` operator. // + // Either `member.type = "HUMAN"` or `member.type != "BOT"` is required + // when `use_admin_access` is set to true. Other member type filters will be + // rejected. + // // For example, the following queries are valid: // // ``` // role = "ROLE_MANAGER" OR role = "ROLE_MEMBER" // member.type = "HUMAN" AND role = "ROLE_MANAGER" + // + // member.type != "BOT" // ``` // // The following queries are invalid: @@ -237,10 +261,11 @@ message ListMembershipsRequest { // that don't match the filter criteria aren't returned. // // Currently requires [user - // authentication](https://developers.google.com/chat/api/guides/auth/users). + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). bool show_invited = 7 [(google.api.field_behavior) = OPTIONAL]; } +// Response to list memberships of the space. message ListMembershipsResponse { // Unordered list. List of memberships in the requested (or first) page. repeated Membership memberships = 1 @@ -251,17 +276,19 @@ message ListMembershipsResponse { string next_page_token = 2; } +// Request to get a membership of a space. message GetMembershipRequest { // Required. Resource name of the membership to retrieve. // - // To get the app's own membership, you can optionally use - // `spaces/{space}/members/app`. + // To get the app's own membership [by using user + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // you can optionally use `spaces/{space}/members/app`. // // Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app` // // When [authenticated as a - // user](https://developers.google.com/chat/api/guides/auth/users), you can - // use the user's email as an alias for `{member}`. For example, + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // you can use the user's email as an alias for `{member}`. For example, // `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the // email of the Google Chat user. string name = 1 [ @@ -270,6 +297,7 @@ message GetMembershipRequest { ]; } +// Request to delete a membership in a space. message DeleteMembershipRequest { // Required. Resource name of the membership to delete. Chat apps can delete // human users' or their own memberships. Chat apps can't delete other apps' diff --git a/third_party/googleapis/google/chat/v1/message.proto b/third_party/googleapis/google/chat/v1/message.proto index 2e1385240..ca6a432c8 100644 --- a/third_party/googleapis/google/chat/v1/message.proto +++ b/third_party/googleapis/google/chat/v1/message.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,13 +32,14 @@ import "google/chat/v1/user.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "MessageProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A message in a Google Chat space. message Message { @@ -61,14 +62,14 @@ message Message { // from the `clientAssignedMessageId` field. For example, // `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name // a - // message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + // message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message). string name = 1; // Output only. The user who created the message. // If your Chat app [authenticates as a - // user](https://developers.google.com/chat/api/guides/auth/users), the output - // populates the - // [user](https://developers.google.com/chat/api/reference/rest/v1/User) + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // the output populates the + // [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) // `name` and `type`. User sender = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -96,13 +97,13 @@ message Message { // Plain-text body of the message. The first link to an image, video, or web // page generates a - // [preview chip](https://developers.google.com/chat/how-tos/preview-links). + // [preview chip](https://developers.google.com/workspace/chat/preview-links). // You can also [@mention a Google Chat - // user](https://developers.google.com/chat/format-messages#messages-@mention), + // user](https://developers.google.com/workspace/chat/format-messages#messages-@mention), // or everyone in the space. // // To learn about creating text messages, see [Send a text - // message](https://developers.google.com/chat/api/guides/v1/messages/create#create-text-messages). + // message](https://developers.google.com/workspace/chat/create-messages#create-text-messages). string text = 4; // Output only. Contains the message `text` with markups added to communicate @@ -110,23 +111,24 @@ message Message { // but includes the following: // // * [Markup - // syntax](https://developers.google.com/chat/format-messages) - // for bold, italic, strikethrough, monospace, and monospace block. + // syntax](https://developers.google.com/workspace/chat/format-messages) + // for bold, italic, strikethrough, monospace, monospace block, and bulleted + // list. // // * [User - // mentions](https://developers.google.com/chat/format-messages#messages-@mention) - // using the format ``. + // mentions](https://developers.google.com/workspace/chat/format-messages#messages-@mention) + // using the format ``. // // * Custom hyperlinks using the format `<{url}|{rendered_text}>` where the - // first string is the URL and the second is the rendered text—for example, - // ``. + // first string is the URL and the second is the rendered text—for example, + // ``. // // * Custom emoji using the format `:{emoji_name}:`—for example, `:smile:`. - // This doesn't apply to Unicode emoji, such as `U+1F600` for a grinning + // This doesn't apply to Unicode emoji, such as `U+1F600` for a grinning // face emoji. // // For more information, see [View text formatting sent in a - // message](https://developers.google.com/chat/format-messages#view_text_formatting_sent_in_a_message) + // message](https://developers.google.com/workspace/chat/format-messages#view_text_formatting_sent_in_a_message) string formatted_text = 43 [(google.api.field_behavior) = OUTPUT_ONLY]; // Deprecated: Use `cards_v2` instead. @@ -138,15 +140,14 @@ message Message { repeated ContextualAddOnMarkup.Card cards = 5 [deprecated = true]; // An array of - // [cards](https://developers.google.com/chat/api/reference/rest/v1/cards). + // [cards](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards). // // Only Chat apps can create cards. If your Chat app [authenticates as a - // user](https://developers.google.com/chat/api/guides/auth/users), the - // messages can't contain cards. + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // the messages can't contain cards. // - // To learn about cards and how to create them, see [Design dynamic, - // interactive, and consistent UIs with - // cards](https://developers.google.com/chat/ui). + // To learn about cards and how to create them, see [Send card + // messages](https://developers.google.com/workspace/chat/create-messages#create). // // [Card builder](https://addons.gsuite.google.com/uikit/builder) repeated CardWithId cards_v2 = 22; @@ -157,13 +158,13 @@ message Message { // The thread the message belongs to. For example usage, see // [Start or reply to a message - // thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread). + // thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread). Thread thread = 11; // If your Chat app [authenticates as a - // user](https://developers.google.com/chat/api/guides/auth/users), the output - // populates the - // [space](https://developers.google.com/chat/api/reference/rest/v1/spaces) + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // the output populates the + // [space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) // `name`. Space space = 12; @@ -188,7 +189,7 @@ message Message { // Output only. A URL in `spaces.messages.text` that matches a link preview // pattern. For more information, see [Preview - // links](https://developers.google.com/chat/how-tos/preview-links). + // links](https://developers.google.com/workspace/chat/preview-links). MatchedUrl matched_url = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. When `true`, the message is a response in a reply thread. When @@ -202,9 +203,9 @@ message Message { // Optional. A custom ID for the message. You can use field to identify a // message, or to get, delete, or update a message. To set a custom ID, // specify the - // [`messageId`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id) + // [`messageId`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id) // field when you create the message. For details, see [Name a - // message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + // message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message). string client_assigned_message_id = 32; // Output only. The list of emoji reaction summaries on the message. @@ -217,11 +218,12 @@ message Message { // attachments aren't supported for private messages. // // Only Chat apps can send private messages. If your Chat app [authenticates - // as a user](https://developers.google.com/chat/api/guides/auth/users) to - // send a message, the message can't be private and must omit this field. + // as a + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) + // to send a message, the message can't be private and must omit this field. // // For details, see [Send private messages to Google Chat - // users](https://developers.google.com/chat/api/guides/v1/messages/private). + // users](https://developers.google.com/workspace/chat/private-messages). User private_message_viewer = 36 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Information about a deleted message. A message is deleted when @@ -237,6 +239,17 @@ message Message { // Output only. GIF images that are attached to the message. repeated AttachedGif attached_gifs = 42 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // One or more interactive widgets that appear at the bottom of a message. + // You can add accessory widgets to messages that contain text, cards, or both + // text and cards. Not supported for messages that contain dialogs. For + // details, see [Add interactive widgets at the bottom of a + // message](https://developers.google.com/workspace/chat/create-messages#add-accessory-widgets). + // + // Creating a message with accessory widgets requires [app + // authentication] + // (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). + repeated AccessoryWidget accessory_widgets = 44; } // A GIF image that's specified by a URL. @@ -268,10 +281,10 @@ message QuotedMessageMetadata { // A thread in a Google Chat space. For example usage, see // [Start or reply to a message -// thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread). +// thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread). // // If you specify a thread when creating a message, you can set the -// [`messageReplyOption`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#messagereplyoption) +// [`messageReplyOption`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create#messagereplyoption) // field to determine what happens if no matching thread is found. message Thread { option (google.api.resource) = { @@ -318,7 +331,7 @@ message ActionResponse { REQUEST_CONFIG = 3; // Presents a - // [dialog](https://developers.google.com/chat/how-tos/dialogs). + // [dialog](https://developers.google.com/workspace/chat/dialogs). DIALOG = 4; // Widget text autocomplete options query. @@ -334,6 +347,7 @@ message ActionResponse { // The response of the updated widget. // Used to provide autocomplete options for a widget. message UpdatedWidget { + // The widget updated in response to a user action. oneof updated_widget { // List of widget autocomplete results SelectionItems suggestions = 1; @@ -352,7 +366,7 @@ message ActionResponse { string url = 2 [(google.api.field_behavior) = INPUT_ONLY]; // Input only. A response to an interaction event related to a - // [dialog](https://developers.google.com/chat/how-tos/dialogs). Must be + // [dialog](https://developers.google.com/workspace/chat/dialogs). Must be // accompanied by `ResponseType.Dialog`. DialogAction dialog_action = 3 [(google.api.field_behavior) = INPUT_ONLY]; @@ -360,6 +374,18 @@ message ActionResponse { UpdatedWidget updated_widget = 4 [(google.api.field_behavior) = INPUT_ONLY]; } +// One or more interactive widgets that appear at the bottom of a message. For +// details, see [Add interactive widgets at the bottom of a +// message](https://developers.google.com/workspace/chat/create-messages#add-accessory-widgets). +message AccessoryWidget { + // The type of action. + oneof action { + // A list of buttons. + google.apps.card.v1.ButtonList button_list = 1; + } +} + +// Request to get a message. message GetMessageRequest { // Required. Resource name of the message. // @@ -368,13 +394,14 @@ message GetMessageRequest { // If you've set a custom ID for your message, you can use the value from the // `clientAssignedMessageId` field for `{message}`. For details, see [Name a // message] - // (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + // (https://developers.google.com/workspace/chat/create-messages#name_a_created_message). string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Message" } ]; } +// Request to delete a message. message DeleteMessageRequest { // Required. Resource name of the message. // @@ -383,7 +410,7 @@ message DeleteMessageRequest { // If you've set a custom ID for your message, you can use the value from the // `clientAssignedMessageId` field for `{message}`. For details, see [Name a // message] - // (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + // (https://developers.google.com/workspace/chat/create-messages#name_a_created_message). string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Message" } @@ -393,12 +420,13 @@ message DeleteMessageRequest { // `false`, if a message has threaded replies, deletion fails. // // Only applies when [authenticating as a - // user](https://developers.google.com/chat/api/guides/auth/users). Has no - // effect when [authenticating as a Chat app] - // (https://developers.google.com/chat/api/guides/auth/service-accounts). + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). + // Has no effect when [authenticating as a Chat app] + // (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). bool force = 2; } +// Request to update a message. message UpdateMessageRequest { // Required. Message with fields updated. Message message = 1 [(google.api.field_behavior) = REQUIRED]; @@ -418,13 +446,13 @@ message UpdateMessageRequest { // - `cards_v2` (Requires [app // authentication](/chat/api/guides/auth/service-accounts).) // - // - Developer Preview: `accessory_widgets` (Requires [app + // - `accessory_widgets` (Requires [app // authentication](/chat/api/guides/auth/service-accounts).) google.protobuf.FieldMask update_mask = 2; // Optional. If `true` and the message isn't found, a new message is created // and `updateMask` is ignored. The specified message ID must be - // [client-assigned](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message) + // [client-assigned](https://developers.google.com/workspace/chat/create-messages#name_a_created_message) // or the request fails. bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -472,7 +500,7 @@ message CreateMessageRequest { // a message and specify a `threadKey` or the // [thread.name][google.chat.v1.Thread.name]. For example usage, see [Start or // reply to a message - // thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread). + // thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread). string thread_key = 6 [deprecated = true, (google.api.field_behavior) = OPTIONAL]; @@ -500,7 +528,7 @@ message CreateMessageRequest { // different messages. // // For details, see [Name a - // message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + // message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message). string message_id = 9 [(google.api.field_behavior) = OPTIONAL]; } @@ -521,8 +549,8 @@ message ListMessagesRequest { // // If unspecified, at most 25 are returned. // - // The maximum value is 1,000. If you use a value more than 1,000, it's - // automatically changed to 1,000. + // The maximum value is 1000. If you use a value more than 1000, it's + // automatically changed to 1000. // // Negative values return an `INVALID_ARGUMENT` error. int32 page_size = 2; @@ -593,6 +621,7 @@ message ListMessagesRequest { bool show_deleted = 6; } +// Response message for listing messages. message ListMessagesResponse { // List of messages. repeated Message messages = 1; @@ -603,17 +632,19 @@ message ListMessagesResponse { } // Contains a -// [dialog](https://developers.google.com/chat/how-tos/dialogs) and request +// [dialog](https://developers.google.com/workspace/chat/dialogs) and request // status code. message DialogAction { + // Action to perform. oneof action { - // Input only. [Dialog](https://developers.google.com/chat/how-tos/dialogs) - // for the request. + // Input only. + // [Dialog](https://developers.google.com/workspace/chat/dialogs) for the + // request. Dialog dialog = 1 [(google.api.field_behavior) = INPUT_ONLY]; } // Input only. Status for a request to either invoke or submit a - // [dialog](https://developers.google.com/chat/how-tos/dialogs). Displays + // [dialog](https://developers.google.com/workspace/chat/dialogs). Displays // a status and message to users, if necessary. // For example, in case of an error or success. ActionStatus action_status = 2 [(google.api.field_behavior) = INPUT_ONLY]; @@ -627,12 +658,13 @@ message Dialog { google.apps.card.v1.Card body = 1 [(google.api.field_behavior) = INPUT_ONLY]; } -// A [card](https://developers.google.com/chat/api/reference/rest/v1/cards) in a -// Google Chat message. +// A +// [card](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards) +// in a Google Chat message. // // Only Chat apps can create cards. If your Chat app [authenticates as a -// user](https://developers.google.com/chat/api/guides/auth/users), the message -// can't contain cards. +// user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), +// the message can't contain cards. // // [Card builder](https://addons.gsuite.google.com/uikit/builder) message CardWithId { diff --git a/third_party/googleapis/google/chat/v1/reaction.proto b/third_party/googleapis/google/chat/v1/reaction.proto index d96c3471b..9639b1f5b 100644 --- a/third_party/googleapis/google/chat/v1/reaction.proto +++ b/third_party/googleapis/google/chat/v1/reaction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,13 +20,14 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/chat/v1/user.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "ReactionProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A reaction to a message. message Reaction { @@ -49,6 +50,7 @@ message Reaction { // An emoji that is used as a reaction to a message. message Emoji { + // The content of the emoji. oneof content { // A basic emoji represented by a unicode string. string unicode = 1; @@ -60,8 +62,8 @@ message Emoji { // Represents a custom emoji. message CustomEmoji { - // Unique key for the custom emoji resource. - string uid = 1; + // Output only. Unique key for the custom emoji resource. + string uid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The number of people who reacted to a message with a specific emoji. @@ -118,9 +120,9 @@ message ListReactionsRequest { // Optional. A query filter. // // You can filter reactions by - // [emoji](https://developers.google.com/chat/api/reference/rest/v1/Emoji) + // [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji) // (either `emoji.unicode` or `emoji.custom_emoji.uid`) and - // [user](https://developers.google.com/chat/api/reference/rest/v1/User) + // [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) // (`user.name`). // // To filter reactions for multiple emojis or users, join similar fields @@ -162,6 +164,7 @@ message ListReactionsRequest { string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } +// Response to a list reactions request. message ListReactionsResponse { // List of reactions in the requested (or first) page. repeated Reaction reactions = 1; diff --git a/third_party/googleapis/google/chat/v1/slash_command.proto b/third_party/googleapis/google/chat/v1/slash_command.proto index 68192f9c4..75f213549 100644 --- a/third_party/googleapis/google/chat/v1/slash_command.proto +++ b/third_party/googleapis/google/chat/v1/slash_command.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,16 +16,18 @@ syntax = "proto3"; package google.chat.v1; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "SlashCommandProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; -// A [slash command](https://developers.google.com/chat/how-tos/slash-commands) -// in Google Chat. +// A [slash +// command](https://developers.google.com/workspace/chat/slash-commands) in +// Google Chat. message SlashCommand { // The ID of the slash command invoked. int64 command_id = 1; diff --git a/third_party/googleapis/google/chat/v1/space.proto b/third_party/googleapis/google/chat/v1/space.proto index d1e9e10c4..6bc022a90 100644 --- a/third_party/googleapis/google/chat/v1/space.proto +++ b/third_party/googleapis/google/chat/v1/space.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,13 +22,14 @@ import "google/chat/v1/history_state.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "SpaceProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A space in Google Chat. Spaces are conversations between two or more users // or 1:1 messages between a user and a Chat app. @@ -40,6 +41,7 @@ message Space { // Deprecated: Use `SpaceType` instead. enum Type { + // Reserved. TYPE_UNSPECIFIED = 0; // Conversations between two or more humans. @@ -101,6 +103,39 @@ message Space { string guidelines = 2; } + // Represents the [access + // setting](https://support.google.com/chat/answer/11971020) of the space. + message AccessSettings { + // Represents the access state of the space. + enum AccessState { + // Access state is unknown or not supported in this API. + ACCESS_STATE_UNSPECIFIED = 0; + + // Space is discoverable by added or invited members or groups. + PRIVATE = 1; + + // Space is discoverable by the selected [target + // audience](https://support.google.com/a/answer/9934697), as well as + // added or invited members or groups. + DISCOVERABLE = 2; + } + + // Output only. Indicates the access state of the space. + AccessState access_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The resource name of the [target + // audience](https://support.google.com/a/answer/9934697) who can discover + // the space, join the space, and preview the messages in the space. For + // details, see [Make a space discoverable to a target + // audience](https://developers.google.com/workspace/chat/space-target-audience). + // + // Format: `audiences/{audience}` + // + // To use the default target audience for the Google Workspace organization, + // set to `audiences/default`. + string audience = 3 [(google.api.field_behavior) = OPTIONAL]; + } + // Resource name of the space. // // Format: `spaces/{space}` @@ -124,7 +159,7 @@ message Space { [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // The space's display name. Required when [creating a - // space](https://developers.google.com/chat/api/reference/rest/v1/spaces/create). + // space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create). // If you receive the error message `ALREADY_EXISTS` when creating a space or // updating the `displayName`, try a different `displayName`. An // existing space within the Google Workspace organization might already use @@ -139,13 +174,18 @@ message Space { // Input when creating a space in a Google Workspace organization. Omit this // field when creating spaces in the following conditions: // - // * The authenticated user uses a Google Account. By default, - // the space permits any Google Chat user. + // * The authenticated user uses a consumer account (unmanaged user + // account). By default, a space created by a consumer account permits any + // Google Chat user. // // * The space is used to [import data to Google Chat] - // (https://developers.google.com/chat/api/guides/import-data-overview). - // Import mode spaces must only permit members from the same Google - // Workspace organization. + // (https://developers.google.com/chat/api/guides/import-data-overview) + // because import mode spaces must only permit members from the same + // Google Workspace organization. However, as part of the [Google + // Workspace Developer Preview + // Program](https://developers.google.com/workspace/preview), import mode + // spaces can permit any Google Chat user so this field can then be set + // for import mode spaces. // // For existing spaces, this field is output only. bool external_user_allowed = 8 [(google.api.field_behavior) = IMMUTABLE]; @@ -178,16 +218,24 @@ message Space { (google.api.field_behavior) = OPTIONAL ]; - // Output only. Whether the Chat app was installed by a Google Workspace - // administrator. Administrators can install a Chat app for their domain, - // organizational unit, or a group of users. + // Output only. For direct message (DM) spaces with a Chat app, whether the + // space was created by a Google Workspace administrator. Administrators can + // install and set up a direct message with a Chat app on behalf of users in + // their organization. // - // Administrators can only install Chat apps for direct messaging between - // users and the app. To support admin install, your app must feature direct - // messaging. + // To support admin install, your Chat app must feature direct messaging. bool admin_installed = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Specifies the [access + // setting](https://support.google.com/chat/answer/11971020) of the space. + // Only populated when the `space_type` is `SPACE`. + AccessSettings access_settings = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The URI for a user to access the space. + string space_uri = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// A request to create a named space. message CreateSpaceRequest { // Required. The `displayName` and `spaceType` fields must be populated. Only // `SpaceType.SPACE` is supported. @@ -216,8 +264,8 @@ message ListSpacesRequest { // // If unspecified, at most 100 spaces are returned. // - // The maximum value is 1,000. If you use a value more than 1,000, it's - // automatically changed to 1,000. + // The maximum value is 1000. If you use a value more than 1000, it's + // automatically changed to 1000. // // Negative values return an `INVALID_ARGUMENT` error. int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -232,7 +280,7 @@ message ListSpacesRequest { // Optional. A query filter. // // You can filter spaces by the space type - // ([`space_type`](https://developers.google.com/chat/api/reference/rest/v1/spaces#spacetype)). + // ([`space_type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spacetype)). // // To filter by space type, you must specify valid enum value, such as // `SPACE` or `GROUP_CHAT` (the `space_type` can't be @@ -251,6 +299,7 @@ message ListSpacesRequest { string filter = 3 [(google.api.field_behavior) = OPTIONAL]; } +// The response for a list spaces request. message ListSpacesResponse { // List of spaces in the requested (or first) page. repeated Space spaces = 1; @@ -262,7 +311,7 @@ message ListSpacesResponse { // A request to return a single space. message GetSpaceRequest { - // Required. Resource name of the space, in the form "spaces/*". + // Required. Resource name of the space, in the form `spaces/{space}`. // // Format: `spaces/{space}` string name = 1 [ @@ -282,8 +331,8 @@ message FindDirectMessageRequest { // in the Directory API. For example, if the People API profile ID is // `123456789`, you can find a direct message with that person by using // `users/123456789` as the `name`. When [authenticated as a - // user](https://developers.google.com/chat/api/guides/auth/users), you can - // use the email as an alias for `{user}`. For example, + // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), + // you can use the email as an alias for `{user}`. For example, // `users/example@gmail.com` where `example@gmail.com` is the email of the // Google Chat user. string name = 1 [(google.api.field_behavior) = REQUIRED]; @@ -310,12 +359,14 @@ message UpdateSpaceRequest { // Google Workspace organization might already use this display name.) // // - `space_type` (Only supports changing a `GROUP_CHAT` space type to - // `SPACE`. Include `display_name` together with `space_type` in the update - // mask and ensure that the specified space has a non-empty display name and - // the `SPACE` space type. Including the `space_type` mask and the `SPACE` - // type in the specified space when updating the display name is optional if - // the existing space already has the `SPACE` type. Trying to update the - // space type in other ways results in an invalid argument error). + // `SPACE`. Include `display_name` together + // with `space_type` in the update mask and ensure that the specified space + // has a non-empty display name and the `SPACE` space type. Including the + // `space_type` mask and the `SPACE` type in the specified space when updating + // the display name is optional if the existing space already has the `SPACE` + // type. Trying to update the space type in other ways results in an invalid + // argument error). + // `space_type` is not supported with admin access. // // - `space_details` // @@ -324,11 +375,27 @@ message UpdateSpaceRequest { // allows users to change their history // setting](https://support.google.com/a/answer/7664184). // Warning: mutually exclusive with all other field paths.) - // - Developer Preview: `access_settings.audience` (Supports changing the - // [access setting](https://support.google.com/chat/answer/11971020) of a - // space. If no audience is specified in the access setting, the space's - // access setting is updated to restricted. Warning: mutually exclusive with - // all other field paths.) + // `space_history_state` is not supported with admin access. + // + // - `access_settings.audience` (Supports changing the [access + // setting](https://support.google.com/chat/answer/11971020) of who can + // discover the space, join the space, and preview the messages in space. If + // no audience is specified in the access setting, the space's access setting + // is updated to private. Warning: mutually exclusive with all other field + // paths.) + // `access_settings.audience` is not supported with admin access. + // + // - Developer Preview: Supports changing the [permission + // settings](https://support.google.com/chat/answer/13340792) of a space, + // supported field paths + // include: `permission_settings.manage_members_and_groups`, + // `permission_settings.modify_space_details`, + // `permission_settings.toggle_history`, + // `permission_settings.use_at_mention_all`, + // `permission_settings.manage_apps`, `permission_settings.manage_webhooks`, + // `permission_settings.reply_messages` + // (Warning: mutually exclusive with all other non-permission settings field + // paths). `permission_settings` is not supported with admin access. google.protobuf.FieldMask update_mask = 2; } @@ -354,6 +421,7 @@ message CompleteImportSpaceRequest { ]; } +// Response message for completing the import process for a space. message CompleteImportSpaceResponse { // The import mode space. Space space = 1; diff --git a/third_party/googleapis/google/chat/v1/space_event.proto b/third_party/googleapis/google/chat/v1/space_event.proto new file mode 100644 index 000000000..84379a096 --- /dev/null +++ b/third_party/googleapis/google/chat/v1/space_event.proto @@ -0,0 +1,292 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.chat.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/chat/v1/event_payload.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Apps.Chat.V1"; +option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; +option java_multiple_files = true; +option java_outer_classname = "SpaceEventProto"; +option java_package = "com.google.chat.v1"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; + +// An event that represents a change or activity in a Google Chat space. To +// learn more, see [Work with events from Google +// Chat](https://developers.google.com/workspace/chat/events-overview). +message SpaceEvent { + option (google.api.resource) = { + type: "chat.googleapis.com/SpaceEvent" + pattern: "spaces/{space}/spaceEvents/{space_event}" + }; + + // Resource name of the space event. + // + // Format: `spaces/{space}/spaceEvents/{spaceEvent}` + string name = 1; + + // Time when the event occurred. + google.protobuf.Timestamp event_time = 3; + + // Type of space event. Each event type has a batch version, which + // represents multiple instances of the event type that occur in a short + // period of time. For `spaceEvents.list()` requests, omit batch event types + // in your query filter. By default, the server returns both event type and + // its batch version. + // + // Supported event types for + // [messages](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages): + // + // * New message: `google.workspace.chat.message.v1.created` + // * Updated message: `google.workspace.chat.message.v1.updated` + // * Deleted message: `google.workspace.chat.message.v1.deleted` + // * Multiple new messages: `google.workspace.chat.message.v1.batchCreated` + // * Multiple updated messages: + // `google.workspace.chat.message.v1.batchUpdated` + // * Multiple deleted messages: + // `google.workspace.chat.message.v1.batchDeleted` + // + // Supported event types for + // [memberships](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members): + // + // * New membership: `google.workspace.chat.membership.v1.created` + // * Updated membership: `google.workspace.chat.membership.v1.updated` + // * Deleted membership: `google.workspace.chat.membership.v1.deleted` + // * Multiple new memberships: + // `google.workspace.chat.membership.v1.batchCreated` + // * Multiple updated memberships: + // `google.workspace.chat.membership.v1.batchUpdated` + // * Multiple deleted memberships: + // `google.workspace.chat.membership.v1.batchDeleted` + // + // Supported event types for + // [reactions](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions): + // + // * New reaction: `google.workspace.chat.reaction.v1.created` + // * Deleted reaction: `google.workspace.chat.reaction.v1.deleted` + // * Multiple new reactions: + // `google.workspace.chat.reaction.v1.batchCreated` + // * Multiple deleted reactions: + // `google.workspace.chat.reaction.v1.batchDeleted` + // + // Supported event types about the + // [space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces): + // + // * Updated space: `google.workspace.chat.space.v1.updated` + // * Multiple space updates: `google.workspace.chat.space.v1.batchUpdated` + string event_type = 6; + + oneof payload { + // Event payload for a new message. + // + // Event type: `google.workspace.chat.message.v1.created` + MessageCreatedEventData message_created_event_data = 12; + + // Event payload for an updated message. + // + // Event type: `google.workspace.chat.message.v1.updated` + MessageUpdatedEventData message_updated_event_data = 13; + + // Event payload for a deleted message. + // + // Event type: `google.workspace.chat.message.v1.deleted` + MessageDeletedEventData message_deleted_event_data = 14; + + // Event payload for multiple new messages. + // + // Event type: `google.workspace.chat.message.v1.batchCreated` + MessageBatchCreatedEventData message_batch_created_event_data = 26; + + // Event payload for multiple updated messages. + // + // Event type: `google.workspace.chat.message.v1.batchUpdated` + MessageBatchUpdatedEventData message_batch_updated_event_data = 27; + + // Event payload for multiple deleted messages. + // + // Event type: `google.workspace.chat.message.v1.batchDeleted` + MessageBatchDeletedEventData message_batch_deleted_event_data = 28; + + // Event payload for a space update. + // + // Event type: `google.workspace.chat.space.v1.updated` + SpaceUpdatedEventData space_updated_event_data = 15; + + // Event payload for multiple updates to a space. + // + // Event type: `google.workspace.chat.space.v1.batchUpdated` + SpaceBatchUpdatedEventData space_batch_updated_event_data = 29; + + // Event payload for a new membership. + // + // Event type: `google.workspace.chat.membership.v1.created` + MembershipCreatedEventData membership_created_event_data = 17; + + // Event payload for an updated membership. + // + // Event type: `google.workspace.chat.membership.v1.updated` + MembershipUpdatedEventData membership_updated_event_data = 18; + + // Event payload for a deleted membership. + // + // Event type: `google.workspace.chat.membership.v1.deleted` + MembershipDeletedEventData membership_deleted_event_data = 219; + + // Event payload for multiple new memberships. + // + // Event type: `google.workspace.chat.membership.v1.batchCreated` + MembershipBatchCreatedEventData membership_batch_created_event_data = 31; + + // Event payload for multiple updated memberships. + // + // Event type: `google.workspace.chat.membership.v1.batchUpdated` + MembershipBatchUpdatedEventData membership_batch_updated_event_data = 32; + + // Event payload for multiple deleted memberships. + // + // Event type: `google.workspace.chat.membership.v1.batchDeleted` + MembershipBatchDeletedEventData membership_batch_deleted_event_data = 33; + + // Event payload for a new reaction. + // + // Event type: `google.workspace.chat.reaction.v1.created` + ReactionCreatedEventData reaction_created_event_data = 21; + + // Event payload for a deleted reaction. + // + // Event type: `google.workspace.chat.reaction.v1.deleted` + ReactionDeletedEventData reaction_deleted_event_data = 22; + + // Event payload for multiple new reactions. + // + // Event type: `google.workspace.chat.reaction.v1.batchCreated` + ReactionBatchCreatedEventData reaction_batch_created_event_data = 34; + + // Event payload for multiple deleted reactions. + // + // Event type: `google.workspace.chat.reaction.v1.batchDeleted` + ReactionBatchDeletedEventData reaction_batch_deleted_event_data = 35; + } +} + +// Request message for getting a space event. +message GetSpaceEventRequest { + // Required. The resource name of the space event. + // + // Format: `spaces/{space}/spaceEvents/{spaceEvent}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "chat.googleapis.com/SpaceEvent" } + ]; +} + +// Request message for listing space events. +message ListSpaceEventsRequest { + // Required. Resource name of the [Google Chat + // space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) + // where the events occurred. + // + // Format: `spaces/{space}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "chat.googleapis.com/SpaceEvent" + } + ]; + + // Optional. The maximum number of space events returned. The service might + // return fewer than this value. + // + // Negative values return an `INVALID_ARGUMENT` error. + int32 page_size = 5; + + // A page token, received from a previous list space events call. Provide this + // to retrieve the subsequent page. + // + // When paginating, all other parameters provided to list space events must + // match the call that provided the page token. Passing different values to + // the other parameters might lead to unexpected results. + string page_token = 6; + + // Required. A query filter. + // + // You must specify at least one event type (`event_type`) + // using the has `:` operator. To filter by multiple event types, use the `OR` + // operator. Omit batch event types in your filter. The request automatically + // returns any related batch events. For example, if you filter by new + // reactions + // (`google.workspace.chat.reaction.v1.created`), the server also returns + // batch new reactions events + // (`google.workspace.chat.reaction.v1.batchCreated`). For a list of supported + // event types, see the [`SpaceEvents` reference + // documentation](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.event_type). + // + // Optionally, you can also filter by start time (`start_time`) and + // end time (`end_time`): + // + // * `start_time`: Exclusive timestamp from which to start listing space + // events. + // You can list events that occurred up to 28 days ago. If unspecified, lists + // space events from the past 28 days. + // * `end_time`: Inclusive timestamp until which space events are listed. + // If unspecified, lists events up to the time of the request. + // + // To specify a start or end time, use the equals `=` operator and format in + // [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339). To filter by both + // `start_time` and `end_time`, use the `AND` operator. + // + // For example, the following queries are valid: + // + // ``` + // start_time="2023-08-23T19:20:33+00:00" AND + // end_time="2023-08-23T19:21:54+00:00" + // ``` + // ``` + // start_time="2023-08-23T19:20:33+00:00" AND + // (event_types:"google.workspace.chat.space.v1.updated" OR + // event_types:"google.workspace.chat.message.v1.created") + // ``` + // + // The following queries are invalid: + // + // ``` + // start_time="2023-08-23T19:20:33+00:00" OR + // end_time="2023-08-23T19:21:54+00:00" + // ``` + // ``` + // event_types:"google.workspace.chat.space.v1.updated" AND + // event_types:"google.workspace.chat.message.v1.created" + // ``` + // + // Invalid queries are rejected by the server with an `INVALID_ARGUMENT` + // error. + string filter = 8 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for listing space events. +message ListSpaceEventsResponse { + // Results are returned in chronological order (oldest event first). + repeated SpaceEvent space_events = 1; + + // Continuation token used to fetch more events. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/chat/v1/space_read_state.proto b/third_party/googleapis/google/chat/v1/space_read_state.proto new file mode 100644 index 000000000..24c4f56b8 --- /dev/null +++ b/third_party/googleapis/google/chat/v1/space_read_state.proto @@ -0,0 +1,113 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.chat.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Apps.Chat.V1"; +option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; +option java_multiple_files = true; +option java_outer_classname = "SpaceReadStateProto"; +option java_package = "com.google.chat.v1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; + +// A user's read state within a space, used to identify read and unread +// messages. +message SpaceReadState { + option (google.api.resource) = { + type: "chat.googleapis.com/SpaceReadState" + pattern: "users/{user}/spaces/{space}/spaceReadState" + singular: "spaceReadState" + }; + + // Resource name of the space read state. + // + // Format: `users/{user}/spaces/{space}/spaceReadState` + string name = 1; + + // Optional. The time when the user's space read state was updated. Usually + // this corresponds with either the timestamp of the last read message, or a + // timestamp specified by the user to mark the last read position in a space. + google.protobuf.Timestamp last_read_time = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for GetSpaceReadState API. +message GetSpaceReadStateRequest { + // Required. Resource name of the space read state to retrieve. + // + // Only supports getting read state for the calling user. + // + // To refer to the calling user, set one of the following: + // + // - The `me` alias. For example, `users/me/spaces/{space}/spaceReadState`. + // + // - Their Workspace email address. For example, + // `users/user@example.com/spaces/{space}/spaceReadState`. + // + // - Their user id. For example, + // `users/123456789/spaces/{space}/spaceReadState`. + // + // Format: users/{user}/spaces/{space}/spaceReadState + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "chat.googleapis.com/SpaceReadState" + } + ]; +} + +// Request message for UpdateSpaceReadState API. +message UpdateSpaceReadStateRequest { + // Required. The space read state and fields to update. + // + // Only supports updating read state for the calling user. + // + // To refer to the calling user, set one of the following: + // + // - The `me` alias. For example, `users/me/spaces/{space}/spaceReadState`. + // + // - Their Workspace email address. For example, + // `users/user@example.com/spaces/{space}/spaceReadState`. + // + // - Their user id. For example, + // `users/123456789/spaces/{space}/spaceReadState`. + // + // Format: users/{user}/spaces/{space}/spaceReadState + SpaceReadState space_read_state = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The field paths to update. Currently supported field paths: + // + // - `last_read_time` + // + // When the `last_read_time` is before the latest message create time, the + // space appears as unread in the UI. + // + // To mark the space as read, set `last_read_time` to any value later (larger) + // than the latest message create time. The `last_read_time` is coerced to + // match the latest message create time. Note that the space read state only + // affects the read state of messages that are visible in the space's + // top-level conversation. Replies in threads are unaffected by this + // timestamp, and instead rely on the thread read state. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/chat/v1/space_setup.proto b/third_party/googleapis/google/chat/v1/space_setup.proto index 31757a7e1..2377d2829 100644 --- a/third_party/googleapis/google/chat/v1/space_setup.proto +++ b/third_party/googleapis/google/chat/v1/space_setup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,14 +20,16 @@ import "google/api/field_behavior.proto"; import "google/chat/v1/membership.proto"; import "google/chat/v1/space.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "SpaceSetupProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; +// Request to create a space and add specified users to it. message SetUpSpaceRequest { // Required. The `Space.spaceType` field is required. // @@ -62,19 +64,23 @@ message SetUpSpaceRequest { // authenticated user returns an error. string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The Google Chat users to invite to join the space. Omit the - // calling user, as they are added automatically. + // Optional. The Google Chat users or groups to invite to join the space. Omit + // the calling user, as they are added automatically. // // The set currently allows up to 20 memberships (in addition to the caller). // - // The `Membership.member` field must contain a `user` with `name` populated - // (format: `users/{user}`) and `type` set to `User.Type.HUMAN`. You can only - // add human users when setting up a space (adding Chat apps is only supported - // for direct message setup with the calling app). You can also add members - // using the user's email as an alias for {user}. For example, the `user.name` - // can be `users/example@gmail.com`." To invite Gmail users or users from - // external Google Workspace domains, user's email must be used for - // `{user}`. + // For human membership, the `Membership.member` field must contain a `user` + // with `name` populated (format: `users/{user}`) and `type` set to + // `User.Type.HUMAN`. You can only add human users when setting up a space + // (adding Chat apps is only supported for direct message setup with the + // calling app). You can also add members using the user's email as an alias + // for {user}. For example, the `user.name` can be `users/example@gmail.com`. + // To invite Gmail users or users from external Google Workspace domains, + // user's email must be used for `{user}`. + // + // For Google group membership, the `Membership.group_member` field must + // contain a `group` with `name` populated (format `groups/{group}`). You + // can only add Google groups when setting `Space.spaceType` to `SPACE`. // // Optional when setting `Space.spaceType` to `SPACE`. // diff --git a/third_party/googleapis/google/chat/v1/thread_read_state.proto b/third_party/googleapis/google/chat/v1/thread_read_state.proto new file mode 100644 index 000000000..38c86feb7 --- /dev/null +++ b/third_party/googleapis/google/chat/v1/thread_read_state.proto @@ -0,0 +1,75 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.chat.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Apps.Chat.V1"; +option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; +option java_multiple_files = true; +option java_outer_classname = "ThreadReadStateProto"; +option java_package = "com.google.chat.v1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; + +// A user's read state within a thread, used to identify read and unread +// messages. +message ThreadReadState { + option (google.api.resource) = { + type: "chat.googleapis.com/ThreadReadState" + pattern: "users/{user}/spaces/{space}/threads/{thread}/threadReadState" + singular: "threadReadState" + }; + + // Resource name of the thread read state. + // + // Format: `users/{user}/spaces/{space}/threads/{thread}/threadReadState` + string name = 1; + + // The time when the user's thread read state was updated. Usually this + // corresponds with the timestamp of the last read message in a thread. + google.protobuf.Timestamp last_read_time = 2; +} + +// Request message for GetThreadReadStateRequest API. +message GetThreadReadStateRequest { + // Required. Resource name of the thread read state to retrieve. + // + // Only supports getting read state for the calling user. + // + // To refer to the calling user, set one of the following: + // + // - The `me` alias. For example, + // `users/me/spaces/{space}/threads/{thread}/threadReadState`. + // + // - Their Workspace email address. For example, + // `users/user@example.com/spaces/{space}/threads/{thread}/threadReadState`. + // + // - Their user id. For example, + // `users/123456789/spaces/{space}/threads/{thread}/threadReadState`. + // + // Format: users/{user}/spaces/{space}/threads/{thread}/threadReadState + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "chat.googleapis.com/ThreadReadState" + } + ]; +} diff --git a/third_party/googleapis/google/chat/v1/user.proto b/third_party/googleapis/google/chat/v1/user.proto index 5feba2a04..8e02de760 100644 --- a/third_party/googleapis/google/chat/v1/user.proto +++ b/third_party/googleapis/google/chat/v1/user.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,18 +19,20 @@ package google.chat.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "UserProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A user in Google Chat. // When returned as an output from a request, if your Chat app [authenticates as -// a user](https://developers.google.com/chat/api/guides/auth/users), the output -// for a `User` resource only populates the user's `name` and `type`. +// a +// user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), +// the output for a `User` resource only populates the user's `name` and `type`. message User { enum Type { // Default value for the enum. DO NOT USE. diff --git a/third_party/googleapis/google/chat/v1/widgets.proto b/third_party/googleapis/google/chat/v1/widgets.proto index f2defb5de..c28c969fe 100644 --- a/third_party/googleapis/google/chat/v1/widgets.proto +++ b/third_party/googleapis/google/chat/v1/widgets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,20 +16,21 @@ syntax = "proto3"; package google.chat.v1; -option csharp_namespace = "Google.Chat.V1"; +option csharp_namespace = "Google.Apps.Chat.V1"; option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; option java_multiple_files = true; option java_outer_classname = "WidgetsProto"; option java_package = "com.google.chat.v1"; -option php_namespace = "Google\\Chat\\V1"; -option ruby_package = "Google::Chat::V1"; +option objc_class_prefix = "DYNAPIProto"; +option php_namespace = "Google\\Apps\\Chat\\V1"; +option ruby_package = "Google::Apps::Chat::V1"; // A widget is a UI element that presents text and images. message WidgetMarkup { // A paragraph of text. Formatted text supported. For more information // about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -139,7 +140,7 @@ message WidgetMarkup { // The text of the top label. Formatted text supported. For more information // about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -150,7 +151,7 @@ message WidgetMarkup { // For more information // about formatting text, see // [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace @@ -162,7 +163,7 @@ message WidgetMarkup { // The text of the bottom label. Formatted text supported. For more // information about formatting text, see [Formatting text in Google Chat - // apps](https://developers.google.com/chat/format-messages#card-formatting) + // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) // and // [Formatting // text in Google Workspace diff --git a/third_party/googleapis/google/chromeos/moblab/v1beta1/build_service.proto b/third_party/googleapis/google/chromeos/moblab/v1beta1/build_service.proto index 25ac0008c..f3e353208 100644 --- a/third_party/googleapis/google/chromeos/moblab/v1beta1/build_service.proto +++ b/third_party/googleapis/google/chromeos/moblab/v1beta1/build_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/chromeos/moblab/v1beta1/resources.proto b/third_party/googleapis/google/chromeos/moblab/v1beta1/resources.proto index de83f2a4a..62eebd776 100644 --- a/third_party/googleapis/google/chromeos/moblab/v1beta1/resources.proto +++ b/third_party/googleapis/google/chromeos/moblab/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/chromeos/uidetection/v1/ui_detection.proto b/third_party/googleapis/google/chromeos/uidetection/v1/ui_detection.proto index c6f4a2747..7d275821b 100644 --- a/third_party/googleapis/google/chromeos/uidetection/v1/ui_detection.proto +++ b/third_party/googleapis/google/chromeos/uidetection/v1/ui_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/abuseevent/logging/v1/BUILD.bazel b/third_party/googleapis/google/cloud/abuseevent/logging/v1/BUILD.bazel new file mode 100644 index 000000000..83a898564 --- /dev/null +++ b/third_party/googleapis/google/cloud/abuseevent/logging/v1/BUILD.bazel @@ -0,0 +1,209 @@ +# This file was automatically generated by BuildFileGenerator + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "logging_proto", + srcs = [ + "abuse_event.proto", + ], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", + "java_gapic_assembly_gradle_pkg", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-abuseevent-logging-v1-java", + deps = [ + ":logging_proto", + ":logging_java_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", + "go_gapic_assembly_pkg", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/abuseevent/logging/apiv1/loggingpb", + protos = [":logging_proto"], + deps = [ + + ], +) + +go_gapic_assembly_pkg( + name = "google-cloud-abuseevent-logging-v1-go", + deps = [ + ":logging_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + +py_proto_library( + name = "logging_py_proto", + deps = [":logging_moved_proto"], +) + +py_grpc_library( + name = "logging_py_grpc", + srcs = [":logging_moved_proto"], + deps = [":logging_py_proto"], +) + +py_gapic_library( + name = "logging_py_gapic", + srcs = [":logging_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-cloud-abuseevent-logging-v1-py", + deps = [ + ":logging_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_gapic_assembly_pkg( + name = "google-cloud-abuseevent-logging-v1-php", + deps = [ + ":logging_php_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "logging_ruby_proto", + deps = [":logging_proto"], +) + +ruby_grpc_library( + name = "logging_ruby_grpc", + srcs = [":logging_proto"], + deps = [":logging_ruby_proto"], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", + "csharp_gapic_assembly_pkg", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-abuseevent-logging-v1-csharp", + package_name = "Google.Cloud.AbuseEvent.Logging.V1", + generate_nongapic_package = True, + deps = [ + ":logging_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "logging_cc_proto", + deps = [":logging_proto"], +) + +cc_grpc_library( + name = "logging_cc_grpc", + srcs = [":logging_proto"], + grpc_only = True, + deps = [":logging_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/abuseevent/logging/v1/abuse_event.proto b/third_party/googleapis/google/cloud/abuseevent/logging/v1/abuse_event.proto new file mode 100644 index 000000000..ce9f17092 --- /dev/null +++ b/third_party/googleapis/google/cloud/abuseevent/logging/v1/abuse_event.proto @@ -0,0 +1,170 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.abuseevent.logging.v1; + +import "google/protobuf/timestamp.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.AbuseEvent.Logging.V1"; +option go_package = "cloud.google.com/go/abuseevent/logging/apiv1/loggingpb;loggingpb"; +option java_multiple_files = true; +option java_outer_classname = "AbuseEventProto"; +option java_package = "com.google.cloud.abuseevent.logging.v1"; + +// Logged event discussing an abuse finding on the monitored resource. +message AbuseEvent { + // Indicates the type of abuse detected on the monitored resource. + enum DetectionType { + // Default/unspecified abuse detection type. + DETECTION_TYPE_UNSPECIFIED = 0; + + // The monitored resource is used to mine cryptocurrencies. + CRYPTO_MINING = 1; + + // The monitored resource's credentials have accidentally been leaked on the + // internet. + LEAKED_CREDENTIALS = 2; + + // The monitored resource is used for phishing attacks. + PHISHING = 3; + + // The monitored resource is associated with content that is infected or + // infects users with malicious software. + MALWARE = 4; + + // No abuse is detected on the monitored resource, but its abuse state may + // have been updated. + NO_ABUSE = 5; + } + + // Indicates any action taken on the monitored resource due to abuse + // detection. + enum ActionType { + // The monitored resource state is unspecified. + ACTION_TYPE_UNSPECIFIED = 0; + + // The owner of the monitored resource needs to be notified about a finding. + NOTIFY = 1; + + // The associated cloud project has been suspended. + PROJECT_SUSPENSION = 2; + + // The monitored resource has been reinstated. + REINSTATE = 3; + + // The owner of the monitored resource needs to be warned about abusive + // behavior. This notification could lead to future enforcements if remedial + // actions are not taken. This action should not be confused with NOTIFY. + WARN = 4; + + // The resource (eg: VM) has been suspended. + RESOURCE_SUSPENSION = 5; + } + + // REQUIRED Correlates to the abuse finding causing the notification. + DetectionType detection_type = 1; + + // REQUIRED Explains the meaning of the detection_type. + string reason = 2; + + // REQUIRED Correlates to the action taken on the monitored resource. + ActionType action = 3; + + // REQUIRED Contains addiional metadata about the detected abuse event. + oneof event_type { + // Information about a cryptocurrency mining event observed on the monitored + // resource. + CryptoMiningEvent crypto_mining_event = 4; + + // Information about the leaked client credentials observed on the monitored + // resource. + LeakedCredentialEvent leaked_credential_event = 5; + + // Information about the phishing/malware URI(s) associated with the + // monitored resource. + HarmfulContentEvent harmful_content_event = 6; + + // Information about the reinstatement issued on the monitored resource. + ReinstatementEvent reinstatement_event = 8; + + // Information about the escalation of enforcement action on the monitored + // resource. + DecisionEscalationEvent decision_escalation_event = 9; + } + + // Contains the umbrella link for remediation after an abuse notification. + string remediation_link = 7; +} + +// Information about a cryptocurrency mining event observed on the monitored +// resource. +message CryptoMiningEvent { + // VM and zone in which cryptocurrency mining occurred. + // Format: projects/{project}/zones/{zone}/instances/{instance} + repeated string vm_resource = 1; + + // Detected start time of the cryptocurrency mining. + google.protobuf.Timestamp detected_mining_start_time = 2; + + // Detected end time of the cryptocurrency mining. + google.protobuf.Timestamp detected_mining_end_time = 3; +} + +// Information about the leaked client credentials observed on the monitored +// resource. +message LeakedCredentialEvent { + // Indicates the type of credential leaked. + oneof credential_type { + // Information about leaked service accounts. + ServiceAccountCredential service_account_credential = 1; + + // Information about leaked API keys. + ApiKeyCredential api_key_credential = 2; + } + + // URI where the client credentials were found. + string detected_uri = 3; +} + +// Information about leaked service accounts. +message ServiceAccountCredential { + // Service account whose credentials were leaked. + string service_account = 1; + + // Private Key ID for any leaked keys. + string key_id = 2; +} + +// Information about leaked API keys. +message ApiKeyCredential { + // API key that was leaked. + string api_key = 1; +} + +// Information about the phishing/malware URIs associated with the monitored +// resource. +message HarmfulContentEvent { + // URIs associated with the phishing/malware finding. + repeated string uri = 1; +} + +// Information about the reinstatement issued on the monitored resource. +message ReinstatementEvent {} + +// Information about the escalation of enforcement action on the monitored +// resource. Eg: Used for repeat offenders. +message DecisionEscalationEvent {} diff --git a/third_party/googleapis/google/cloud/accessapproval/v1/accessapproval.proto b/third_party/googleapis/google/cloud/accessapproval/v1/accessapproval.proto index fae4db7a3..9f5502ec6 100644 --- a/third_party/googleapis/google/cloud/accessapproval/v1/accessapproval.proto +++ b/third_party/googleapis/google/cloud/accessapproval/v1/accessapproval.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/advisorynotifications/v1/BUILD.bazel b/third_party/googleapis/google/cloud/advisorynotifications/v1/BUILD.bazel index 699317474..3d56aba7d 100644 --- a/third_party/googleapis/google/cloud/advisorynotifications/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/advisorynotifications/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "advisorynotifications_proto", @@ -42,6 +45,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -104,6 +108,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -151,6 +156,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -190,6 +196,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -206,7 +213,7 @@ php_gapic_library( name = "advisorynotifications_php_gapic", srcs = [":advisorynotifications_proto_with_info"], grpc_service_config = "advisorynotifications_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "advisorynotifications_v1.yaml", transport = "grpc+rest", @@ -227,6 +234,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -257,6 +265,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -303,6 +312,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -348,6 +358,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/advisorynotifications/v1/service.proto b/third_party/googleapis/google/cloud/advisorynotifications/v1/service.proto index 87947ba21..fd08c8871 100644 --- a/third_party/googleapis/google/cloud/advisorynotifications/v1/service.proto +++ b/third_party/googleapis/google/cloud/advisorynotifications/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -68,6 +68,7 @@ service AdvisoryNotificationsService { rpc GetSettings(GetSettingsRequest) returns (Settings) { option (google.api.http) = { get: "/v1/{name=organizations/*/locations/*/settings}" + additional_bindings { get: "/v1/{name=projects/*/locations/*/settings}" } }; option (google.api.method_signature) = "name"; } @@ -77,6 +78,10 @@ service AdvisoryNotificationsService { option (google.api.http) = { patch: "/v1/{settings.name=organizations/*/locations/*/settings}" body: "settings" + additional_bindings { + patch: "/v1/{settings.name=projects/*/locations/*/settings}" + body: "settings" + } }; option (google.api.method_signature) = "settings"; } @@ -238,7 +243,7 @@ message Csv { message ListNotificationsRequest { // Required. The parent, which owns this collection of notifications. // Must be of the form "organizations/{organization}/locations/{location}" - // or "projects/{project}/locations/{location}" + // or "projects/{project}/locations/{location}". string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -308,12 +313,16 @@ message Settings { option (google.api.resource) = { type: "advisorynotifications.googleapis.com/Settings" pattern: "organizations/{organization}/locations/{location}/settings" + pattern: "projects/{project}/locations/{location}/settings" + plural: "settings" + singular: "settings" }; - // Output only. The resource name of the settings to retrieve. + // Identifier. The resource name of the settings to retrieve. // Format: - // organizations/{organization}/locations/{location}/settings. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // organizations/{organization}/locations/{location}/settings or + // projects/{projects}/locations/{location}/settings. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Required. Map of each notification type and its settings to get/set all // settings at once. The server will validate the value for each notification @@ -338,7 +347,8 @@ message NotificationSettings { message GetSettingsRequest { // Required. The resource name of the settings to retrieve. // Format: - // organizations/{organization}/locations/{location}/settings. + // organizations/{organization}/locations/{location}/settings or + // projects/{projects}/locations/{location}/settings. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/aiplatform/logging/prediction.proto b/third_party/googleapis/google/cloud/aiplatform/logging/prediction.proto index 6a15a1554..fb3074d71 100644 --- a/third_party/googleapis/google/cloud/aiplatform/logging/prediction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/logging/prediction.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/BUILD.bazel b/third_party/googleapis/google/cloud/aiplatform/v1/BUILD.bazel index 78399af13..03a61a3ae 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/aiplatform/v1/BUILD.bazel @@ -70,6 +70,7 @@ proto_library( "featurestore_monitoring.proto", "featurestore_online_service.proto", "featurestore_service.proto", + "genai_tuning_service.proto", "hyperparameter_tuning_job.proto", "index.proto", "index_endpoint.proto", @@ -92,12 +93,20 @@ proto_library( "model_deployment_monitoring_job.proto", "model_evaluation.proto", "model_evaluation_slice.proto", + "model_garden_service.proto", "model_monitoring.proto", "model_service.proto", - "model_garden_service.proto", "nas_job.proto", + "network_spec.proto", + "notebook_euc_config.proto", + "notebook_idle_shutdown_config.proto", + "notebook_runtime.proto", + "notebook_runtime_template_ref.proto", + "notebook_service.proto", "openapi.proto", "operation.proto", + "persistent_resource.proto", + "persistent_resource_service.proto", "pipeline_failure_policy.proto", "pipeline_job.proto", "pipeline_service.proto", @@ -105,9 +114,9 @@ proto_library( "prediction_service.proto", "publisher_model.proto", "saved_query.proto", - "service_networking.proto", "schedule.proto", "schedule_service.proto", + "service_networking.proto", "specialist_pool.proto", "specialist_pool_service.proto", "study.proto", @@ -119,6 +128,7 @@ proto_library( "tensorboard_time_series.proto", "tool.proto", "training_pipeline.proto", + "tuning_job.proto", "types.proto", "unmanaged_container_model.proto", "user_action_reference.proto", @@ -133,9 +143,9 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", + "//google/type:date_proto", "//google/type:interval_proto", "//google/type:money_proto", - "//google/type:date_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -197,7 +207,7 @@ java_gapic_library( srcs = [":aiplatform_proto_with_info"], gapic_yaml = "aiplatform_gapic.yaml", grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1.yaml", test_deps = [ ":aiplatform_java_grpc", @@ -217,18 +227,28 @@ java_gapic_test( name = "aiplatform_java_gapic_test_suite", test_classes = [ "com.google.cloud.aiplatform.v1.DatasetServiceClientTest", + "com.google.cloud.aiplatform.v1.DeploymentResourcePoolServiceClientTest", "com.google.cloud.aiplatform.v1.EndpointServiceClientTest", + "com.google.cloud.aiplatform.v1.FeatureOnlineStoreAdminServiceClientTest", + "com.google.cloud.aiplatform.v1.FeatureOnlineStoreServiceClientTest", + "com.google.cloud.aiplatform.v1.FeatureRegistryServiceClientTest", "com.google.cloud.aiplatform.v1.FeaturestoreOnlineServingServiceClientTest", "com.google.cloud.aiplatform.v1.FeaturestoreServiceClientTest", + "com.google.cloud.aiplatform.v1.GenAiTuningServiceClientTest", "com.google.cloud.aiplatform.v1.IndexEndpointServiceClientTest", "com.google.cloud.aiplatform.v1.IndexServiceClientTest", "com.google.cloud.aiplatform.v1.JobServiceClientTest", "com.google.cloud.aiplatform.v1.LlmUtilityServiceClientTest", + "com.google.cloud.aiplatform.v1.MatchServiceClientTest", "com.google.cloud.aiplatform.v1.MetadataServiceClientTest", "com.google.cloud.aiplatform.v1.MigrationServiceClientTest", + "com.google.cloud.aiplatform.v1.ModelGardenServiceClientTest", "com.google.cloud.aiplatform.v1.ModelServiceClientTest", + "com.google.cloud.aiplatform.v1.NotebookServiceClientTest", + "com.google.cloud.aiplatform.v1.PersistentResourceServiceClientTest", "com.google.cloud.aiplatform.v1.PipelineServiceClientTest", "com.google.cloud.aiplatform.v1.PredictionServiceClientTest", + "com.google.cloud.aiplatform.v1.ScheduleServiceClientTest", "com.google.cloud.aiplatform.v1.SpecialistPoolServiceClientTest", "com.google.cloud.aiplatform.v1.TensorboardServiceClientTest", "com.google.cloud.aiplatform.v1.VizierServiceClientTest", @@ -269,9 +289,9 @@ go_proto_library( "//google/api:httpbody_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", + "//google/type:date_go_proto", "//google/type:interval_go_proto", "//google/type:money_go_proto", - "//google/type:date_go_proto", ], ) @@ -282,7 +302,7 @@ go_gapic_library( importpath = "cloud.google.com/go/aiplatform/apiv1;aiplatform", metadata = True, release_level = "ga", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1.yaml", transport = "grpc", deps = [ @@ -331,7 +351,7 @@ py_gapic_library( name = "aiplatform_py_gapic", srcs = [":aiplatform_proto"], grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1.yaml", transport = "grpc+rest", deps = [ @@ -376,11 +396,13 @@ php_gapic_library( name = "aiplatform_php_gapic", srcs = [":aiplatform_proto_with_info"], grpc_service_config = "aiplatform_grpc_service_config.json", - migration_mode = "MIGRATING", - rest_numeric_enums = False, + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, service_yaml = "aiplatform_v1.yaml", transport = "grpc+rest", - deps = [":aiplatform_php_proto"], + deps = [ + ":aiplatform_php_proto", + ], ) # Open Source Packages @@ -408,7 +430,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "aiplatform_grpc_service_config.json", package = "google.cloud.aiplatform.v1", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1.yaml", transport = "grpc", deps = [], @@ -456,10 +478,11 @@ ruby_cloud_gapic_library( "ruby-cloud-service-override=AiPlatform=AIPlatform", ], grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, ruby_cloud_description = "Vertex AI enables data scientists, developers, and AI newcomers to create custom machine learning models specific to their business needs by leveraging Google's state-of-the-art transfer learning and innovative AI research.", ruby_cloud_title = "Vertex AI V1", service_yaml = "aiplatform_v1.yaml", + transport = "grpc+rest", deps = [ ":aiplatform_ruby_grpc", ":aiplatform_ruby_proto", @@ -496,6 +519,7 @@ _CSHARP_PROTO_SUBPACKAGE_DEPS = [ csharp_proto_library( name = "aiplatform_csharp_proto", + extra_opts = [], deps = [":aiplatform_proto"], ) @@ -510,8 +534,9 @@ csharp_gapic_library( srcs = [":aiplatform_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1.yaml", + transport = "grpc+rest", deps = [ ":aiplatform_csharp_grpc", ":aiplatform_csharp_proto", diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/accelerator_type.proto b/third_party/googleapis/google/cloud/aiplatform/v1/accelerator_type.proto index de62b281e..bd01f486b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/accelerator_type.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/accelerator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -53,6 +53,9 @@ enum AcceleratorType { // Nvidia L4 GPU. NVIDIA_L4 = 11; + // Nvidia H100 80Gb GPU. + NVIDIA_H100_80GB = 13; + // TPU v2. TPU_V2 = 6; @@ -61,4 +64,7 @@ enum AcceleratorType { // TPU v4. TPU_V4_POD = 10; + + // TPU v5. + TPU_V5_LITEPOD = 12; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/aiplatform_v1.yaml b/third_party/googleapis/google/cloud/aiplatform/v1/aiplatform_v1.yaml index 18d28df11..95aeba514 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/aiplatform_v1.yaml +++ b/third_party/googleapis/google/cloud/aiplatform/v1/aiplatform_v1.yaml @@ -12,6 +12,7 @@ apis: - name: google.cloud.aiplatform.v1.FeatureRegistryService - name: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService - name: google.cloud.aiplatform.v1.FeaturestoreService +- name: google.cloud.aiplatform.v1.GenAiTuningService - name: google.cloud.aiplatform.v1.IndexEndpointService - name: google.cloud.aiplatform.v1.IndexService - name: google.cloud.aiplatform.v1.JobService @@ -21,6 +22,8 @@ apis: - name: google.cloud.aiplatform.v1.MigrationService - name: google.cloud.aiplatform.v1.ModelGardenService - name: google.cloud.aiplatform.v1.ModelService +- name: google.cloud.aiplatform.v1.NotebookService +- name: google.cloud.aiplatform.v1.PersistentResourceService - name: google.cloud.aiplatform.v1.PipelineService - name: google.cloud.aiplatform.v1.PredictionService - name: google.cloud.aiplatform.v1.ScheduleService @@ -32,6 +35,7 @@ apis: - name: google.longrunning.Operations types: +- name: google.cloud.aiplatform.v1.AssignNotebookRuntimeOperationMetadata - name: google.cloud.aiplatform.v1.BatchCreateFeaturesOperationMetadata - name: google.cloud.aiplatform.v1.BatchCreateFeaturesResponse - name: google.cloud.aiplatform.v1.BatchMigrateResourcesOperationMetadata @@ -55,6 +59,8 @@ types: - name: google.cloud.aiplatform.v1.CreateIndexEndpointOperationMetadata - name: google.cloud.aiplatform.v1.CreateIndexOperationMetadata - name: google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata +- name: google.cloud.aiplatform.v1.CreateNotebookRuntimeTemplateOperationMetadata +- name: google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1.CreateRegistryFeatureOperationMetadata - name: google.cloud.aiplatform.v1.CreateSpecialistPoolOperationMetadata - name: google.cloud.aiplatform.v1.CreateTensorboardOperationMetadata @@ -86,8 +92,10 @@ types: - name: google.cloud.aiplatform.v1.PurgeContextsResponse - name: google.cloud.aiplatform.v1.PurgeExecutionsMetadata - name: google.cloud.aiplatform.v1.PurgeExecutionsResponse +- name: google.cloud.aiplatform.v1.RebootPersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1.RestoreDatasetVersionOperationMetadata - name: google.cloud.aiplatform.v1.SpecialistPool +- name: google.cloud.aiplatform.v1.StartNotebookRuntimeOperationMetadata - name: google.cloud.aiplatform.v1.SuggestTrialsMetadata - name: google.cloud.aiplatform.v1.SuggestTrialsResponse - name: google.cloud.aiplatform.v1.UndeployIndexOperationMetadata @@ -104,8 +112,10 @@ types: - name: google.cloud.aiplatform.v1.UpdateFeaturestoreOperationMetadata - name: google.cloud.aiplatform.v1.UpdateIndexOperationMetadata - name: google.cloud.aiplatform.v1.UpdateModelDeploymentMonitoringJobOperationMetadata +- name: google.cloud.aiplatform.v1.UpdatePersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1.UpdateSpecialistPoolOperationMetadata - name: google.cloud.aiplatform.v1.UpdateTensorboardOperationMetadata +- name: google.cloud.aiplatform.v1.UpgradeNotebookRuntimeOperationMetadata - name: google.cloud.aiplatform.v1.UploadModelOperationMetadata - name: google.cloud.aiplatform.v1.UploadModelResponse - name: google.cloud.aiplatform.v1.schema.ImageBoundingBoxAnnotation @@ -177,6 +187,8 @@ http: - post: '/ui/{resource=projects/*/locations/*/endpoints/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/publishers/*/models/*}:getIamPolicy' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' body: '*' @@ -197,6 +209,10 @@ http: body: '*' - post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy' body: '*' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy' + body: '*' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' additional_bindings: @@ -208,9 +224,13 @@ http: - post: '/ui/{resource=projects/*/locations/*/models/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/endpoints/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions' - selector: google.longrunning.Operations.CancelOperation post: '/ui/{name=projects/*/locations/*/operations/*}:cancel' additional_bindings: + - post: '/ui/{name=projects/*/locations/*/agents/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/apps/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' @@ -227,6 +247,7 @@ http: - post: '/ui/{name=projects/*/locations/*/customJobs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/tuningJobs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/indexes/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/indexEndpoints/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/metadataStores/*/operations/*}:cancel' @@ -238,6 +259,10 @@ http: - post: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/models/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/studies/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:cancel' @@ -262,6 +287,7 @@ http: - post: '/v1/{name=projects/*/locations/*/customJobs/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/locations/*/tuningJobs/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/indexes/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/indexEndpoints/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/metadataStores/*/operations/*}:cancel' @@ -272,6 +298,10 @@ http: - post: '/v1/{name=projects/*/locations/*/migratableResources/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/models/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:cancel' + - post: '/v1/{name=projects/*/locations/*/persistentResources/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/studies/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:cancel' - post: '/v1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:cancel' @@ -285,6 +315,8 @@ http: - selector: google.longrunning.Operations.DeleteOperation delete: '/ui/{name=projects/*/locations/*/operations/*}' additional_bindings: + - delete: '/ui/{name=projects/*/locations/*/agents/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/apps/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' @@ -312,6 +344,10 @@ http: - delete: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/models/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/studies/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}' @@ -350,9 +386,13 @@ http: - delete: '/v1/{name=projects/*/locations/*/migratableResources/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/models/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - delete: '/v1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - delete: '/v1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - delete: '/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/studies/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}' + - delete: '/v1/{name=projects/*/locations/*/persistentResources/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/schedules/*/operations/*}' - delete: '/v1/{name=projects/*/locations/*/specialistPools/*/operations/*}' @@ -367,6 +407,8 @@ http: - selector: google.longrunning.Operations.GetOperation get: '/ui/{name=projects/*/locations/*/operations/*}' additional_bindings: + - get: '/ui/{name=projects/*/locations/*/agents/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/apps/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' @@ -384,6 +426,7 @@ http: - get: '/ui/{name=projects/*/locations/*/customJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/tuningJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/indexes/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/indexEndpoints/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/metadataStores/*/operations/*}' @@ -395,6 +438,10 @@ http: - get: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/models/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/studies/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}' @@ -423,6 +470,7 @@ http: - get: '/v1/{name=projects/*/locations/*/customJobs/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/tuningJobs/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/indexes/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/indexEndpoints/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/metadataStores/*/operations/*}' @@ -433,9 +481,13 @@ http: - get: '/v1/{name=projects/*/locations/*/migratableResources/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/models/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/studies/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/persistentResources/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/schedules/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/specialistPools/*/operations/*}' @@ -450,6 +502,8 @@ http: - selector: google.longrunning.Operations.ListOperations get: '/ui/{name=projects/*/locations/*}/operations' additional_bindings: + - get: '/ui/{name=projects/*/locations/*/agents/*}/operations' + - get: '/ui/{name=projects/*/locations/*/apps/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' @@ -466,6 +520,7 @@ http: - get: '/ui/{name=projects/*/locations/*/customJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*}/operations' + - get: '/ui/{name=projects/*/locations/*/tuningJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/indexes/*}/operations' - get: '/ui/{name=projects/*/locations/*/indexEndpoints/*}/operations' - get: '/ui/{name=projects/*/locations/*/metadataStores/*}/operations' @@ -477,9 +532,13 @@ http: - get: '/ui/{name=projects/*/locations/*/migratableResources/*}/operations' - get: '/ui/{name=projects/*/locations/*/models/*}/operations' - get: '/ui/{name=projects/*/locations/*/models/*/evaluations/*}/operations' + - get: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*}/operations' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimes/*}/operations' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*}/operations' - get: '/ui/{name=projects/*/locations/*/studies/*}/operations' - get: '/ui/{name=projects/*/locations/*/studies/*/trials/*}/operations' - get: '/ui/{name=projects/*/locations/*/trainingPipelines/*}/operations' + - get: '/ui/{name=projects/*/locations/*/persistentResources/*}/operations' - get: '/ui/{name=projects/*/locations/*/pipelineJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/schedules/*}/operations' - get: '/ui/{name=projects/*/locations/*/specialistPools/*}/operations' @@ -505,6 +564,7 @@ http: - get: '/v1/{name=projects/*/locations/*/customJobs/*}/operations' - get: '/v1/{name=projects/*/locations/*/dataLabelingJobs/*}/operations' - get: '/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}/operations' + - get: '/v1/{name=projects/*/locations/*/tuningJobs/*}/operations' - get: '/v1/{name=projects/*/locations/*/indexes/*}/operations' - get: '/v1/{name=projects/*/locations/*/indexEndpoints/*}/operations' - get: '/v1/{name=projects/*/locations/*/metadataStores/*}/operations' @@ -515,9 +575,13 @@ http: - get: '/v1/{name=projects/*/locations/*/migratableResources/*}/operations' - get: '/v1/{name=projects/*/locations/*/models/*}/operations' - get: '/v1/{name=projects/*/locations/*/models/*/evaluations/*}/operations' + - get: '/v1/{name=projects/*/locations/*/notebookExecutionJobs/*}/operations' + - get: '/v1/{name=projects/*/locations/*/notebookRuntimes/*}/operations' + - get: '/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}/operations' - get: '/v1/{name=projects/*/locations/*/studies/*}/operations' - get: '/v1/{name=projects/*/locations/*/studies/*/trials/*}/operations' - get: '/v1/{name=projects/*/locations/*/trainingPipelines/*}/operations' + - get: '/v1/{name=projects/*/locations/*/persistentResources/*}/operations' - get: '/v1/{name=projects/*/locations/*/pipelineJobs/*}/operations' - get: '/v1/{name=projects/*/locations/*/schedules/*}/operations' - get: '/v1/{name=projects/*/locations/*/specialistPools/*}/operations' @@ -532,6 +596,8 @@ http: - selector: google.longrunning.Operations.WaitOperation post: '/ui/{name=projects/*/locations/*/operations/*}:wait' additional_bindings: + - post: '/ui/{name=projects/*/locations/*/agents/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/apps/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' @@ -548,6 +614,7 @@ http: - post: '/ui/{name=projects/*/locations/*/customJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/tuningJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/indexes/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/indexEndpoints/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/metadataStores/*/operations/*}:wait' @@ -559,9 +626,13 @@ http: - post: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/models/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/studies/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/schedules/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/specialistPools/*/operations/*}:wait' @@ -597,9 +668,13 @@ http: - post: '/v1/{name=projects/*/locations/*/migratableResources/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/models/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:wait' + - post: '/v1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:wait' + - post: '/v1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:wait' + - post: '/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/studies/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:wait' + - post: '/v1/{name=projects/*/locations/*/persistentResources/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/schedules/*/operations/*}:wait' - post: '/v1/{name=projects/*/locations/*/specialistPools/*/operations/*}:wait' @@ -650,6 +725,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1.GenAiTuningService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1.IndexEndpointService.*' oauth: canonical_scopes: |- @@ -703,6 +782,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1.NotebookService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1.PersistentResourceService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1.PipelineService.*' oauth: canonical_scopes: |- @@ -710,7 +797,8 @@ authentication: - selector: 'google.cloud.aiplatform.v1.PredictionService.*' oauth: canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only - selector: 'google.cloud.aiplatform.v1.ScheduleService.*' oauth: canonical_scopes: |- @@ -795,6 +883,7 @@ authentication: https://www.googleapis.com/auth/cloud-platform publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1130925&template=1637248 documentation_uri: https://cloud.google.com/ai-platform/docs github_label: 'api: aiplatform' organization: CLOUD diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/annotation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/annotation.proto index 2a9a0cca6..41e5f3059 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/annotation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/annotation_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1/annotation_spec.proto index fbb809432..6da4a73ea 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/annotation_spec.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/artifact.proto b/third_party/googleapis/google/cloud/aiplatform/v1/artifact.proto index 77ba15c1c..17210f8f5 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/artifact.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/batch_prediction_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/batch_prediction_job.proto index d06e4157d..1b0a032aa 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/batch_prediction_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/batch_prediction_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/completion_stats.proto b/third_party/googleapis/google/cloud/aiplatform/v1/completion_stats.proto index 033c13f8a..164474e0c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/completion_stats.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/completion_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/content.proto b/third_party/googleapis/google/cloud/aiplatform/v1/content.proto index e9678f035..82cdb3f63 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/content.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/content.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; +import "google/cloud/aiplatform/v1/openapi.proto"; import "google/cloud/aiplatform/v1/tool.proto"; import "google/protobuf/duration.proto"; import "google/type/date.proto"; @@ -102,14 +103,15 @@ message Part { } } -// Raw media bytes. +// Content blob. // -// Text should not be sent as raw bytes, use the 'text' field. +// It's preferred to send as [text][google.cloud.aiplatform.v1.Part.text] +// directly rather than raw bytes. message Blob { // Required. The IANA standard MIME type of the source data. string mime_type = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Raw bytes for media formats. + // Required. Raw bytes. bytes data = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -152,6 +154,30 @@ message GenerationConfig { // Optional. Stop sequences. repeated string stop_sequences = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Positive penalties. + optional float presence_penalty = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Frequency penalties. + optional float frequency_penalty = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output response mimetype of the generated candidate text. + // Supported mimetype: + // - `text/plain`: (default) Text output. + // - `application/json`: JSON response in the candidates. + // The model needs to be prompted to output the appropriate response type, + // otherwise the behavior is undefined. + // This is a preview feature. + string response_mime_type = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `Schema` object allows the definition of input and output + // data types. These types can be objects, but also primitives and arrays. + // Represents a select subset of an [OpenAPI 3.0 schema + // object](https://spec.openapis.org/oas/v3.0.3#schema). + // If set, a compatible response_mime_type must also be set. + // Compatible mimetypes: + // `application/json`: Schema for JSON response. + optional Schema response_schema = 16 [(google.api.field_behavior) = OPTIONAL]; } // Safety settings. @@ -174,11 +200,27 @@ message SafetySetting { BLOCK_NONE = 4; } + // Probability vs severity. + enum 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; + } + // Required. Harm category. HarmCategory category = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The harm block threshold. HarmBlockThreshold threshold = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specify if the threshold is used for probability or severity + // score. If not specified, the threshold is used for probability score. + HarmBlockMethod method = 4 [(google.api.field_behavior) = OPTIONAL]; } // Safety rating corresponding to the generated content. @@ -201,12 +243,39 @@ message SafetyRating { HIGH = 4; } + // Harm severity levels. + enum HarmSeverity { + // Harm severity unspecified. + HARM_SEVERITY_UNSPECIFIED = 0; + + // Negligible level of harm severity. + HARM_SEVERITY_NEGLIGIBLE = 1; + + // Low level of harm severity. + HARM_SEVERITY_LOW = 2; + + // Medium level of harm severity. + HARM_SEVERITY_MEDIUM = 3; + + // High level of harm severity. + HARM_SEVERITY_HIGH = 4; + } + // Output only. Harm category. HarmCategory category = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Harm probability levels in the content. HarmProbability probability = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Harm probability score. + float probability_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Harm severity levels in the content. + HarmSeverity severity = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Harm severity score. + float severity_score = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Indicates whether the content was filtered out because of this // rating. bool blocked = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -265,6 +334,21 @@ message Candidate { // All other reasons that stopped the token generation OTHER = 5; + + // The token generation was stopped as the response was flagged for the + // terms which are included from the terminology blocklist. + BLOCKLIST = 6; + + // The token generation was stopped as the response was flagged for + // the prohibited contents. + PROHIBITED_CONTENT = 7; + + // The token generation was stopped as the response was flagged for + // Sensitive Personally Identifiable Information (SPII) contents. + SPII = 8; + + // The function call generated by the model is invalid. + MALFORMED_FUNCTION_CALL = 9; } // Output only. Index of the candidate. @@ -291,4 +375,30 @@ message Candidate { // Output only. Source attribution of the generated content. CitationMetadata citation_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata specifies sources used to ground generated content. + GroundingMetadata grounding_metadata = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Metadata returned to client when grounding is enabled. +message GroundingMetadata { + // Optional. Web search queries for the following-up web search. + repeated string web_search_queries = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Google search entry for the following-up web searches. + optional SearchEntryPoint search_entry_point = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Google search entry point. +message SearchEntryPoint { + // Optional. Web content snippet that can be embedded in a web page or an app + // webview. + string rendered_content = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Base64 encoded JSON representing array of tuple. + bytes sdk_blob = 2 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/context.proto b/third_party/googleapis/google/cloud/aiplatform/v1/context.proto index 8122ddb69..f46e48e44 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/context.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/context.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/custom_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/custom_job.proto index f9fdbb17e..5c4bb4791 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/custom_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/custom_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -113,6 +113,20 @@ message CustomJob { // Represents the spec of a CustomJob. message CustomJobSpec { + // Optional. The ID of the PersistentResource in the same Project and Location + // which to run + // + // If this is specified, the job will be run on existing machines held by the + // PersistentResource instead of on-demand short-live machines. + // The network and CMEK configs on the job should be consistent with those on + // the PersistentResource, otherwise, the job will be rejected. + string persistent_resource_id = 14 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PersistentResource" + } + ]; + // Required. The spec of the worker pools including machine type and Docker // image. All worker pools except the first one are optional and can be // skipped by providing an empty value. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/data_item.proto b/third_party/googleapis/google/cloud/aiplatform/v1/data_item.proto index e8a936b07..bb4f03831 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/data_item.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/data_item.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/data_labeling_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/data_labeling_job.proto index afcc03539..9db138823 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/data_labeling_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/data_labeling_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/dataset.proto b/third_party/googleapis/google/cloud/aiplatform/v1/dataset.proto index b4ddbfce5..66b4e3efa 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/dataset.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -111,6 +111,10 @@ message Dataset { // is // `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. string metadata_artifact = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Reference to the public base model last used by the dataset. Only + // set for prompt datasets. + string model_reference = 18 [(google.api.field_behavior) = OPTIONAL]; } // Describes the location from where we import data into a Dataset, together diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/dataset_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/dataset_service.proto index 5dfd0bfe3..8637c667b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/dataset_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/dataset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -138,6 +138,16 @@ service DatasetService { }; } + // Updates a DatasetVersion. + rpc UpdateDatasetVersion(UpdateDatasetVersionRequest) + returns (DatasetVersion) { + option (google.api.http) = { + patch: "/v1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" + body: "dataset_version" + }; + option (google.api.method_signature) = "dataset_version,update_mask"; + } + // Deletes a Dataset version. rpc DeleteDatasetVersion(DeleteDatasetVersionRequest) returns (google.longrunning.Operation) { @@ -292,6 +302,21 @@ message UpdateDatasetRequest { [(google.api.field_behavior) = REQUIRED]; } +// Request message for +// [DatasetService.UpdateDatasetVersion][google.cloud.aiplatform.v1.DatasetService.UpdateDatasetVersion]. +message UpdateDatasetVersionRequest { + // Required. The DatasetVersion which replaces the resource on the server. + DatasetVersion dataset_version = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see + // [google.protobuf.FieldMask][google.protobuf.FieldMask]. Updatable fields: + // + // * `display_name` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + // Request message for // [DatasetService.ListDatasets][google.cloud.aiplatform.v1.DatasetService.ListDatasets]. message ListDatasetsRequest { diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/dataset_version.proto b/third_party/googleapis/google/cloud/aiplatform/v1/dataset_version.proto index 5a6dd1110..9ecf3a274 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/dataset_version.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/dataset_version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; @@ -52,4 +53,19 @@ message DatasetVersion { // Output only. Name of the associated BigQuery dataset. string big_query_dataset_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The user-defined name of the DatasetVersion. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 7; + + // Required. Output only. Additional information about the DatasetVersion. + google.protobuf.Value metadata = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + + // Output only. Reference to the public base model last used by the dataset + // version. Only set for prompt dataset versions. + string model_reference = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/deployed_index_ref.proto b/third_party/googleapis/google/cloud/aiplatform/v1/deployed_index_ref.proto index 219b4d596..b37f05d19 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/deployed_index_ref.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/deployed_index_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/deployed_model_ref.proto b/third_party/googleapis/google/cloud/aiplatform/v1/deployed_model_ref.proto index c5b9bba39..a1504270c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/deployed_model_ref.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/deployed_model_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool.proto b/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool.proto index dc71b2b7b..0f16f38d9 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/machine_resources.proto"; import "google/protobuf/timestamp.proto"; @@ -47,6 +48,29 @@ message DeploymentResourcePool { DedicatedResources dedicated_resources = 2 [(google.api.field_behavior) = REQUIRED]; + // Customer-managed encryption key spec for a DeploymentResourcePool. If set, + // this DeploymentResourcePool will be secured by this key. Endpoints and the + // DeploymentResourcePool they deploy in need to have the same EncryptionSpec. + EncryptionSpec encryption_spec = 5; + + // The service account that the DeploymentResourcePool's container(s) run as. + // Specify the email address of the service account. If this service account + // is not specified, the container(s) run as a service account that doesn't + // have access to the resource project. + // + // Users deploying the Models to this DeploymentResourcePool must have the + // `iam.serviceAccounts.actAs` permission on this service account. + string service_account = 6; + + // If the DeploymentResourcePool is deployed with custom-trained Models or + // AutoML Tabular Models, the container(s) of the DeploymentResourcePool will + // send `stderr` and `stdout` streams to Cloud Logging by default. + // Please note that the logs incur cost, which are subject to [Cloud Logging + // pricing](https://cloud.google.com/logging/pricing). + // + // User can disable container logging by setting this flag to true. + bool disable_container_logging = 7; + // Output only. Timestamp when this DeploymentResourcePool was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool_service.proto index b9e974a06..7d42ed150 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/deployment_resource_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import "google/cloud/aiplatform/v1/endpoint.proto"; import "google/cloud/aiplatform/v1/operation.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; @@ -74,6 +75,21 @@ service DeploymentResourcePoolService { option (google.api.method_signature) = "parent"; } + // Update a DeploymentResourcePool. + rpc UpdateDeploymentResourcePool(UpdateDeploymentResourcePoolRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{deployment_resource_pool.name=projects/*/locations/*/deploymentResourcePools/*}" + body: "deployment_resource_pool" + }; + option (google.api.method_signature) = + "deployment_resource_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "DeploymentResourcePool" + metadata_type: "UpdateDeploymentResourcePoolOperationMetadata" + }; + } + // Delete a DeploymentResourcePool. rpc DeleteDeploymentResourcePool(DeleteDeploymentResourcePoolRequest) returns (google.longrunning.Operation) { @@ -175,6 +191,22 @@ message ListDeploymentResourcePoolsResponse { string next_page_token = 2; } +// Request message for UpdateDeploymentResourcePool method. +message UpdateDeploymentResourcePoolRequest { + // Required. The DeploymentResourcePool to update. + // + // The DeploymentResourcePool's `name` field is used to identify the + // DeploymentResourcePool to update. + // Format: + // `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}` + DeploymentResourcePool deployment_resource_pool = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + // Runtime operation information for UpdateDeploymentResourcePool method. message UpdateDeploymentResourcePoolOperationMetadata { // The operation generic information. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/encryption_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1/encryption_spec.proto index a8a73291a..5f60be954 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/encryption_spec.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/encryption_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/endpoint.proto b/third_party/googleapis/google/cloud/aiplatform/v1/endpoint.proto index 0d305a672..5c8292eb7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/endpoint.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/explanation.proto"; import "google/cloud/aiplatform/v1/io.proto"; import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/cloud/aiplatform/v1/service_networking.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; @@ -126,6 +127,14 @@ message Endpoint { // can be set. bool enable_private_service_connect = 17 [deprecated = true]; + // Optional. Configuration for private service connect. + // + // [network][google.cloud.aiplatform.v1.Endpoint.network] and + // [private_service_connect_config][google.cloud.aiplatform.v1.Endpoint.private_service_connect_config] + // are mutually exclusive. + PrivateServiceConnectConfig private_service_connect_config = 21 + [(google.api.field_behavior) = OPTIONAL]; + // Output only. Resource name of the Model Monitoring job associated with this // Endpoint if monitoring is enabled by // [JobService.CreateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob]. @@ -221,6 +230,13 @@ message DeployedModel { // will be used for the explanation configuration. ExplanationSpec explanation_spec = 9; + // If true, deploy the model without explainable feature, regardless the + // existence of + // [Model.explanation_spec][google.cloud.aiplatform.v1.Model.explanation_spec] + // or + // [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec]. + bool disable_explanations = 19; + // The service account that the DeployedModel's container runs as. Specify the // email address of the service account. If this service account is not // specified, the container runs as a service account that doesn't have access diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/endpoint_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/endpoint_service.proto index c1bd96271..85b047460 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/endpoint_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -210,20 +210,22 @@ message ListEndpointsRequest { // Optional. An expression for filtering the results of the request. For field // names both snake_case and camelCase are supported. // - // * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID, - // i.e. the last segment of the Endpoint's [resource - // name][google.cloud.aiplatform.v1.Endpoint.name]. - // * `display_name` supports = and, != + // * `endpoint` supports `=` and `!=`. `endpoint` represents the Endpoint + // ID, i.e. the last segment of the Endpoint's + // [resource name][google.cloud.aiplatform.v1.Endpoint.name]. + // * `display_name` supports `=` and `!=`. // * `labels` supports general map functions that is: // * `labels.key=value` - key:value equality - // * `labels.key:* or labels:key - key existence + // * `labels.key:*` or `labels:key` - key existence // * A key including a space must be quoted. `labels."a key"`. + // * `base_model_name` only supports `=`. // // Some examples: // // * `endpoint=1` // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` + // * `baseModelName="text-bison"` string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The standard list page size. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/entity_type.proto b/third_party/googleapis/google/cloud/aiplatform/v1/entity_type.proto index 8e70ea2a3..9d239ae6d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/entity_type.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/env_var.proto b/third_party/googleapis/google/cloud/aiplatform/v1/env_var.proto index b54875721..e7719a373 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/env_var.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/env_var.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/evaluated_annotation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/evaluated_annotation.proto index 2d74effd9..853b24456 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/evaluated_annotation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/evaluated_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/event.proto b/third_party/googleapis/google/cloud/aiplatform/v1/event.proto index 65e9d7a09..bb5d8d429 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/event.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/execution.proto b/third_party/googleapis/google/cloud/aiplatform/v1/execution.proto index 915c58dae..81da7ca3f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/execution.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/explanation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/explanation.proto index 10cf3d484..b311c608e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/explanation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/explanation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/explanation_metadata.proto b/third_party/googleapis/google/cloud/aiplatform/v1/explanation_metadata.proto index 45f24d3a7..28e735e00 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/explanation_metadata.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/explanation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature.proto index e47a5287d..c85bbe5d2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -103,6 +103,9 @@ message Feature { // Used for Feature that is bytes. BYTES = 13; + + // Used for Feature that is struct. + STRUCT = 14; } // Immutable. Name of the Feature. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_group.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_group.proto index f92f5f619..63b44b1a4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_group.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -47,17 +47,17 @@ message FeatureGroup { (google.api.field_behavior) = REQUIRED ]; - // Optional. Columns to construct entity_id / row keys. Currently only - // supports 1 entity_id_column. If not provided defaults to `entity_id`. + // Optional. Columns to construct entity_id / row keys. + // If not provided defaults to `entity_id`. repeated string entity_id_columns = 2 [(google.api.field_behavior) = OPTIONAL]; } oneof source { // Indicates that features for this group come from BigQuery Table/View. - // By default treats the source as a sparse time series source, which is - // required to have an entity_id and a feature_timestamp column in the - // source. + // By default treats the source as a sparse time series source. The BigQuery + // source table or view must have at least one entity ID column and a column + // named `feature_timestamp`. BigQuery big_query = 7; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_monitoring_stats.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_monitoring_stats.proto index c1828a726..50f7e203e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_monitoring_stats.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_monitoring_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store.proto index a6a2040ab..4e6231173 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,8 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/service_networking.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; @@ -60,6 +62,32 @@ message FeatureOnlineStore { AutoScaling auto_scaling = 1 [(google.api.field_behavior) = REQUIRED]; } + // Optimized storage type + message Optimized {} + + // The dedicated serving endpoint for this FeatureOnlineStore. Only need to + // set when you choose Optimized storage type. Public endpoint is provisioned + // by default. + message DedicatedServingEndpoint { + // Output only. This field will be populated with the domain name to use for + // this FeatureOnlineStore + string public_endpoint_domain_name = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Private service connect config. The private service connection + // is available only for Optimized storage type, not for embedding + // management now. If + // [PrivateServiceConnectConfig.enable_private_service_connect][google.cloud.aiplatform.v1.PrivateServiceConnectConfig.enable_private_service_connect] + // set to true, customers will use private service connection to send + // request. Otherwise, the connection will set to public endpoint. + PrivateServiceConnectConfig private_service_connect_config = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The name of the service attachment resource. Populated if + // private service connect is enabled and after FeatureViewSync is created. + string service_attachment = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Possible states a featureOnlineStore can have. enum State { // Default value. This value is unused. @@ -82,6 +110,13 @@ message FeatureOnlineStore { // to serve featureValues for all FeatureViews under this // FeatureOnlineStore. Bigtable bigtable = 8; + + // Contains settings for the Optimized store that will be created + // to serve featureValues for all FeatureViews under this + // FeatureOnlineStore. When choose Optimized storage type, need to set + // [PrivateServiceConnectConfig.enable_private_service_connect][google.cloud.aiplatform.v1.PrivateServiceConnectConfig.enable_private_service_connect] + // to use private endpoint. Otherwise will use public endpoint by default. + Optimized optimized = 12; } // Identifier. Name of the FeatureOnlineStore. Format: @@ -115,4 +150,13 @@ message FeatureOnlineStore { // Output only. State of the featureOnlineStore. State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The dedicated serving endpoint for this FeatureOnlineStore, which + // is different from common Vertex service endpoint. + DedicatedServingEndpoint dedicated_serving_endpoint = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Customer-managed encryption key spec for data storage. If set, + // online store will be secured by this key. + EncryptionSpec encryption_spec = 13 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto index 13ce4a114..9e762747b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_service.proto index bb451126e..2e3e82ce3 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_online_store_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -141,6 +141,11 @@ message FetchFeatureValuesResponse { // Feature values in proto Struct format. google.protobuf.Struct proto_struct = 2; } + + // The data key associated with this response. + // Will only be populated for + // [FeatureOnlineStoreService.StreamingFetchFeatureValues][] RPCs. + FeatureViewDataKey data_key = 4; } // A query to find a number of similar entities. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_registry_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_registry_service.proto index e02ca56c1..951ab8d45 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_registry_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_registry_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -165,7 +165,7 @@ service FeatureRegistryService { message CreateFeatureGroupRequest { // Required. The resource name of the Location to create FeatureGroups. // Format: - // `projects/{project}/locations/{location}'` + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_selector.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_selector.proto index 9f6ff203a..b16facd9e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_selector.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_selector.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_view.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_view.proto index 6ffec4762..4c0cb4438 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_view.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,8 +41,7 @@ message FeatureView { // trigger based on FeatureView.SyncConfig. string uri = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Columns to construct entity_id / row keys. Start by supporting - // 1 only. + // Required. Columns to construct entity_id / row keys. repeated string entity_id_columns = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -58,6 +57,85 @@ message FeatureView { string cron = 1; } + // Configuration for vector indexing. + message IndexConfig { + // Configuration options for using brute force search. + message BruteForceConfig {} + + // Configuration options for the tree-AH algorithm. + message TreeAHConfig { + // Optional. Number of embeddings on each leaf node. The default value is + // 1000 if not set. + optional int64 leaf_node_embedding_count = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // The distance measure used in nearest neighbor search. + enum DistanceMeasureType { + // Should not be set. + DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0; + + // Euclidean (L_2) Distance. + SQUARED_L2_DISTANCE = 1; + + // Cosine Distance. Defined as 1 - cosine similarity. + // + // We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead + // of COSINE distance. Our algorithms have been more optimized for + // DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is + // mathematically equivalent to COSINE distance and results in the same + // ranking. + COSINE_DISTANCE = 2; + + // Dot Product Distance. Defined as a negative of the dot product. + DOT_PRODUCT_DISTANCE = 3; + } + + // The configuration with regard to the algorithms used for efficient + // search. + oneof algorithm_config { + // Optional. Configuration options for the tree-AH algorithm (Shallow tree + // + Asymmetric Hashing). Please refer to this paper for more details: + // https://arxiv.org/abs/1908.10396 + TreeAHConfig tree_ah_config = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration options for using brute force search, which + // simply implements the standard linear search in the database for each + // query. It is primarily meant for benchmarking and to generate the + // ground truth for approximate search. + BruteForceConfig brute_force_config = 7 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Column of embedding. This column contains the source data to + // create index for vector search. embedding_column must be set when using + // vector search. + string embedding_column = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Columns of features that're used to filter vector search + // results. + repeated string filter_columns = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Column of crowding. This column contains crowding attribute + // which is a constraint on a neighbor list produced by + // [FeatureOnlineStoreService.SearchNearestEntities][google.cloud.aiplatform.v1.FeatureOnlineStoreService.SearchNearestEntities] + // to diversify search results. If + // [NearestNeighborQuery.per_crowding_attribute_neighbor_count][google.cloud.aiplatform.v1.NearestNeighborQuery.per_crowding_attribute_neighbor_count] + // is set to K in + // [SearchNearestEntitiesRequest][google.cloud.aiplatform.v1.SearchNearestEntitiesRequest], + // it's guaranteed that no more than K entities of the same crowding + // attribute are returned in the response. + string crowding_column = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of dimensions of the input embedding. + optional int32 embedding_dimension = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The distance measure used in nearest neighbor search. + DistanceMeasureType distance_measure_type = 5 + [(google.api.field_behavior) = OPTIONAL]; + } + // A Feature Registry source for features that need to be synced to Online // Store. message FeatureRegistrySource { @@ -74,6 +152,9 @@ message FeatureView { // Required. List of features that need to be synced to Online Store. repeated FeatureGroup feature_groups = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The project number of the parent project of the Feature Groups. + optional int64 project_number = 2 [(google.api.field_behavior) = OPTIONAL]; } oneof source { @@ -121,4 +202,10 @@ message FeatureView { // end of the sync the latest featureValues for each entityId of this // FeatureView are made ready for online serving. SyncConfig sync_config = 7; + + // Optional. Configuration for index preparation for vector search. It + // contains the required configurations to create an index from source data, + // so that approximate nearest neighbor (a.k.a ANN) algorithms search can be + // performed during online serving. + IndexConfig index_config = 15 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/feature_view_sync.proto b/third_party/googleapis/google/cloud/aiplatform/v1/feature_view_sync.proto index 20357882b..c50817da9 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/feature_view_sync.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/feature_view_sync.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,6 +38,16 @@ message FeatureViewSync { pattern: "projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/feature_view_sync" }; + // Summary from the Sync job. For continuous syncs, the summary is updated + // periodically. For batch syncs, it gets updated on completion of the sync. + message SyncSummary { + // Output only. Total number of rows synced. + int64 row_synced = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. BigQuery slot milliseconds consumed for the sync job. + int64 total_slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Identifier. Name of the FeatureViewSync. Format: // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; @@ -54,4 +64,7 @@ message FeatureViewSync { // Output only. Final status of the FeatureViewSync. google.rpc.Status final_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of the sync job. + SyncSummary sync_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore.proto b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore.proto index bcaf8ac3e..9c7dd9819 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_monitoring.proto b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_monitoring.proto index a169e6c71..f8dfe0bff 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_monitoring.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_online_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_online_service.proto index 6cc4e6775..9f973bdad 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_online_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_online_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -272,12 +272,30 @@ message FeatureValue { // Bytes feature value. bytes bytes_value = 13; + + // A struct type feature value. + StructValue struct_value = 15; } // Metadata of feature value. Metadata metadata = 14; } +// Struct (or object) type feature value. +message StructValue { + // A list of field values. + repeated StructFieldValue values = 1; +} + +// One field of a Struct (or object) type feature value. +message StructFieldValue { + // Name of the field in the struct feature. + string name = 1; + + // The value for this field. + FeatureValue value = 2; +} + // Container for list of values. message FeatureValueList { // A list of feature values. All of them should be the same data type. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_service.proto index 527c76c8b..d7d5758a2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/featurestore_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/genai_tuning_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/genai_tuning_service.proto new file mode 100644 index 000000000..d0c369d3b --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/genai_tuning_service.proto @@ -0,0 +1,164 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/tuning_job.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "GenAiTuningServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for creating and managing GenAI Tuning Jobs. +service GenAiTuningService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a TuningJob. A created TuningJob right away will be attempted to + // be run. + rpc CreateTuningJob(CreateTuningJobRequest) returns (TuningJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/tuningJobs" + body: "tuning_job" + }; + option (google.api.method_signature) = "parent,tuning_job"; + } + + // Gets a TuningJob. + rpc GetTuningJob(GetTuningJobRequest) returns (TuningJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/tuningJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists TuningJobs in a Location. + rpc ListTuningJobs(ListTuningJobsRequest) returns (ListTuningJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/tuningJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Cancels a TuningJob. + // Starts asynchronous cancellation on the TuningJob. The server makes a best + // effort to cancel the job, but success is not guaranteed. Clients can use + // [GenAiTuningService.GetTuningJob][google.cloud.aiplatform.v1.GenAiTuningService.GetTuningJob] + // or other methods to check whether the cancellation succeeded or whether the + // job completed despite cancellation. On successful cancellation, the + // TuningJob is not deleted; instead it becomes a job with a + // [TuningJob.error][google.cloud.aiplatform.v1.TuningJob.error] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`, and + // [TuningJob.state][google.cloud.aiplatform.v1.TuningJob.state] is set to + // `CANCELLED`. + rpc CancelTuningJob(CancelTuningJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/tuningJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for +// [GenAiTuningService.CreateTuningJob][google.cloud.aiplatform.v1.GenAiTuningService.CreateTuningJob]. +message CreateTuningJobRequest { + // Required. The resource name of the Location to create the TuningJob in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The TuningJob to create. + TuningJob tuning_job = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [GenAiTuningService.GetTuningJob][google.cloud.aiplatform.v1.GenAiTuningService.GetTuningJob]. +message GetTuningJobRequest { + // Required. The name of the TuningJob resource. Format: + // `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TuningJob" + } + ]; +} + +// Request message for +// [GenAiTuningService.ListTuningJobs][google.cloud.aiplatform.v1.GenAiTuningService.ListTuningJobs]. +message ListTuningJobsRequest { + // Required. The resource name of the Location to list the TuningJobs from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The standard list filter. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via [ListTuningJob.next_page_token][] of the + // previous GenAiTuningService.ListTuningJob][] call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [GenAiTuningService.ListTuningJobs][google.cloud.aiplatform.v1.GenAiTuningService.ListTuningJobs] +message ListTuningJobsResponse { + // List of TuningJobs in the requested page. + repeated TuningJob tuning_jobs = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListTuningJobsRequest.page_token][google.cloud.aiplatform.v1.ListTuningJobsRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [GenAiTuningService.CancelTuningJob][google.cloud.aiplatform.v1.GenAiTuningService.CancelTuningJob]. +message CancelTuningJobRequest { + // Required. The name of the TuningJob to cancel. Format: + // `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TuningJob" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto index 9699d36fc..df860b268 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/index.proto b/third_party/googleapis/google/cloud/aiplatform/v1/index.proto index 676674124..fa435b67a 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/index.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -129,6 +129,17 @@ message Index { // A datapoint of Index. message IndexDatapoint { + // Feature embedding vector for sparse index. An array of numbers whose values + // are located in the specified dimensions. + message SparseEmbedding { + // Required. The list of embedding values of the sparse vector. + repeated float values = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of indexes for the embedding values of the sparse + // vector. + repeated int64 dimensions = 2 [(google.api.field_behavior) = REQUIRED]; + } + // Restriction of a datapoint which describe its attributes(tokens) from each // of several attribute categories(namespaces). message Restriction { @@ -168,6 +179,9 @@ message IndexDatapoint { // Datapoints are eligible iff their value is > the query's. GREATER = 5; + + // Datapoints are eligible iff their value is != the query's. + NOT_EQUAL = 6; } // The type of Value must be consistent for all datapoints with a given @@ -206,10 +220,13 @@ message IndexDatapoint { // Required. Unique identifier of the datapoint. string datapoint_id = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Feature embedding vector. An array of numbers with the length of - // [NearestNeighborSearchConfig.dimensions]. + // Required. Feature embedding vector for dense index. An array of numbers + // with the length of [NearestNeighborSearchConfig.dimensions]. repeated float feature_vector = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. Feature embedding vector for sparse index. + SparseEmbedding sparse_embedding = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of Restrict of the datapoint, used to perform "restricted // searches" where boolean rule are used to filter the subset of the database // eligible for matching. This uses categorical tokens. See: @@ -229,9 +246,12 @@ message IndexDatapoint { // Stats of the Index. message IndexStats { - // Output only. The number of vectors in the Index. + // Output only. The number of dense vectors in the Index. int64 vectors_count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The number of sparse vectors in the Index. + int64 sparse_vectors_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The number of shards in the Index. int32 shards_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint.proto b/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint.proto index 013c95bc9..a0780dfc8 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint_service.proto index 36fb8e297..037154084 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/index_endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/index_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/index_service.proto index aef257993..dcb763274 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/index_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/index_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -311,8 +311,8 @@ message NearestNeighborSearchOperationMetadata { // The embedding id is not valid. INVALID_EMBEDDING_ID = 5; - // The size of the embedding vectors does not match with the specified - // dimension. + // The size of the dense embedding vectors does not match with the + // specified dimension. EMBEDDING_SIZE_MISMATCH = 6; // The `namespace` field is missing. @@ -336,6 +336,18 @@ message NearestNeighborSearchOperationMetadata { // File is not in UTF_8 format. INVALID_ENCODING = 13; + + // Error parsing sparse dimensions field. + INVALID_SPARSE_DIMENSIONS = 14; + + // Token restrict value is invalid. + INVALID_TOKEN_VALUE = 15; + + // Invalid sparse embedding. + INVALID_SPARSE_EMBEDDING = 16; + + // Invalid dense embedding. + INVALID_EMBEDDING = 17; } // The error type of this record. @@ -370,6 +382,12 @@ message NearestNeighborSearchOperationMetadata { // invalid records that couldn't be parsed. // Up to 50 partial errors will be reported. repeated RecordError partial_errors = 4; + + // Number of sparse records in this file that were successfully processed. + int64 valid_sparse_record_count = 5; + + // Number of sparse records in this file we skipped due to validate errors. + int64 invalid_sparse_record_count = 6; } // The validation stats of the content (per file) to be inserted or diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/io.proto b/third_party/googleapis/google/cloud/aiplatform/v1/io.proto index 016601d86..5c1684d3d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/io.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/job_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/job_service.proto index a9feae428..7bce9b05d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/job_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/job_state.proto b/third_party/googleapis/google/cloud/aiplatform/v1/job_state.proto index 2f75694dd..4af86b923 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/job_state.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/job_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/lineage_subgraph.proto b/third_party/googleapis/google/cloud/aiplatform/v1/lineage_subgraph.proto index 67a06d98a..a38a78535 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/lineage_subgraph.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/lineage_subgraph.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/llm_utility_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/llm_utility_service.proto index 3cd98bd08..e6e8d8e8d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/llm_utility_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/llm_utility_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/content.proto"; import "google/cloud/aiplatform/v1/prediction_service.proto"; import "google/protobuf/struct.proto"; @@ -75,11 +76,19 @@ message ComputeTokensRequest { } ]; - // Required. The instances that are the input to token computing API call. + // Optional. The instances that are the input to token computing API call. // Schema is identical to the prediction schema of the text model, even for // the non-text models, like chat models, or Codey models. repeated google.protobuf.Value instances = 2 - [(google.api.field_behavior) = REQUIRED]; + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the publisher model requested to serve the + // prediction. Format: + // projects/{project}/locations/{location}/publishers/*/models/* + string model = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input content. + repeated Content contents = 4 [(google.api.field_behavior) = OPTIONAL]; } // Tokens info with a list of tokens and the corresponding list of token ids. @@ -89,6 +98,9 @@ message TokensInfo { // A list of token ids from the input. repeated int64 token_ids = 2; + + // Optional. Optional fields for the role from the corresponding Content. + string role = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ComputeTokens RPC call. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/machine_resources.proto b/third_party/googleapis/google/cloud/aiplatform/v1/machine_resources.proto index 041ea2e3d..30bad8f79 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/machine_resources.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/machine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -232,3 +232,17 @@ message AutoscalingMetricSpec { // (representing 60%) if not provided. int32 target = 2; } + +// A set of Shielded Instance options. +// See [Images using supported Shielded VM +// features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). +message ShieldedVmConfig { + // Defines whether the instance has [Secure + // Boot](https://cloud.google.com/compute/shielded-vm/docs/shielded-vm#secure-boot) + // enabled. + // + // Secure Boot helps ensure that the system only runs authentic software by + // verifying the digital signature of all boot components, and halting the + // boot process if signature verification fails. + bool enable_secure_boot = 1; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto b/third_party/googleapis/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto index 6d5db1ea8..27dfc8f43 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/match_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/match_service.proto index 5b56a08b5..9fc1e191c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/match_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/match_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,6 +62,19 @@ message FindNeighborsRequest { // A query to find a number of the nearest neighbors (most similar vectors) // of a vector. message Query { + // Parameters for RRF algorithm that combines search results. + message RRF { + // Required. Users can provide an alpha value to give more weight to dense + // vs sparse results. For example, if the alpha is 0, we only return + // sparse and if the alpha is 1, we only return dense. + float alpha = 1 [(google.api.field_behavior) = REQUIRED]; + } + + oneof ranking { + // Optional. Represents RRF algorithm that combines search results. + RRF rrf = 6 [(google.api.field_behavior) = OPTIONAL]; + } + // Required. The datapoint/vector whose nearest neighbors should be searched // for. IndexDatapoint datapoint = 1 [(google.api.field_behavior) = REQUIRED]; @@ -131,8 +144,11 @@ message FindNeighborsResponse { // fields are populated. IndexDatapoint datapoint = 1; - // The distance between the neighbor and the query vector. + // The distance between the neighbor and the dense embedding query. double distance = 2; + + // The distance between the neighbor and the query sparse_embedding. + double sparse_distance = 3; } // Nearest neighbors for one query. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/metadata_schema.proto b/third_party/googleapis/google/cloud/aiplatform/v1/metadata_schema.proto index 65f1bdb83..96ce4ed7a 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/metadata_schema.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/metadata_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/metadata_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/metadata_service.proto index 017b0df2e..8a720115c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/metadata_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/metadata_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/metadata_store.proto b/third_party/googleapis/google/cloud/aiplatform/v1/metadata_store.proto index a2f38308c..54cfb888f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/metadata_store.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/metadata_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,6 +43,13 @@ message MetadataStore { int64 disk_utilization_bytes = 1; } + // Represents Dataplex integration settings. + message DataplexConfig { + // Optional. Whether or not Data Lineage synchronization is enabled for + // Vertex Pipelines. + bool enabled_pipelines_lineage = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Output only. The resource name of the MetadataStore instance. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -64,4 +71,7 @@ message MetadataStore { // Output only. State information of the MetadataStore. MetadataStoreState state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Dataplex integration settings. + DataplexConfig dataplex_config = 8 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/migratable_resource.proto b/third_party/googleapis/google/cloud/aiplatform/v1/migratable_resource.proto index 891085249..baa805879 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/migratable_resource.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/migratable_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/migration_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/migration_service.proto index 41605fa1f..39c101b1f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/migration_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model.proto index fa1a9eb8b..ad721bc7c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -133,6 +133,18 @@ message Model { ]; } + // User input field to specify the base model source. Currently it only + // supports specifing the Model Garden models and Genie models. + message BaseModelSource { + oneof source { + // Source information of Model Garden models. + ModelGardenSource model_garden_source = 1; + + // Information about the base model of Genie models. + GenieSource genie_source = 2; + } + } + // Identifies a type of Model's prediction resources. enum DeploymentResourcesType { // Should not be used. @@ -452,6 +464,17 @@ message Model { // is // `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. string metadata_artifact = 44 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. User input field to specify the base model source. Currently it + // only supports specifing the Model Garden models and Genie models. + BaseModelSource base_model_source = 50 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 51 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains information about the Large Model. @@ -462,6 +485,20 @@ message LargeModelReference { string name = 1 [(google.api.field_behavior) = REQUIRED]; } +// Contains information about the source of the models generated from Model +// Garden. +message ModelGardenSource { + // Required. The model garden source model resource name. + string public_model_name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Contains information about the source of the models generated from Generative +// AI Studio. +message GenieSource { + // Required. The public base model URI. + string base_model_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + // Contains the schemata used in Model's predictions and explanations via // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict], // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain] @@ -821,7 +858,7 @@ message Probe { } oneof probe_type { - // Exec specifies the action to take. + // ExecAction probes the health of a container by executing a command. ExecAction exec = 1; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto index 02b7eae53..8e65d15a4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation.proto index 5cf507a43..8e3c1e329 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation_slice.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation_slice.proto index 059a3abdd..5c0ed2c3a 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation_slice.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model_evaluation_slice.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model_garden_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model_garden_service.proto index 3a5802378..06959c2c2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model_garden_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model_garden_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model_monitoring.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model_monitoring.proto index de5828447..b3d43b7d2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model_monitoring.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/model_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/model_service.proto index 957d92e8a..98c7d2a45 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/model_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -358,12 +358,14 @@ message ListModelsRequest { // * `labels.key=value` - key:value equality // * `labels.key:* or labels:key - key existence // * A key including a space must be quoted. `labels."a key"`. + // * `base_model_name` only supports = // // Some examples: // // * `model=1234` // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` + // * `baseModelName="text-bison"` string filter = 2; // The standard list page size. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/nas_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/nas_job.proto index a5baba8f7..b2c038efd 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/nas_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/nas_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/network_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1/network_spec.proto new file mode 100644 index 000000000..804d186c7 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/network_spec.proto @@ -0,0 +1,50 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NetworkSpecProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Subnetwork" + pattern: "projects/{project}/regions/{region}/subnetworks/{subnetwork}" +}; + +// Network spec. +message NetworkSpec { + // Whether to enable public internet access. Default false. + bool enable_internet_access = 1; + + // The full name of the Google Compute Engine + // [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) + string network = 2 [ + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // The name of the subnet that this instance is in. + // Format: + // `projects/{project_id_or_number}/regions/{region}/subnetworks/{subnetwork_id}` + string subnetwork = 3 [(google.api.resource_reference) = { + type: "compute.googleapis.com/Subnetwork" + }]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/notebook_euc_config.proto b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_euc_config.proto new file mode 100644 index 000000000..4875c68da --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_euc_config.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookEucConfigProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// The euc configuration of NotebookRuntimeTemplate. +message NotebookEucConfig { + // Input only. Whether EUC is disabled in this NotebookRuntimeTemplate. + // In proto3, the default value of a boolean is false. In this way, by default + // EUC will be enabled for NotebookRuntimeTemplate. + bool euc_disabled = 1 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. Whether ActAs check is bypassed for service account attached + // to the VM. If false, we need ActAs check for the default Compute Engine + // Service account. When a Runtime is created, a VM is allocated using Default + // Compute Engine Service Account. Any user requesting to use this Runtime + // requires Service Account User (ActAs) permission over this SA. If true, + // Runtime owner is using EUC and does not require the above permission as VM + // no longer use default Compute Engine SA, but a P4SA. + bool bypass_actas_check = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/notebook_idle_shutdown_config.proto b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_idle_shutdown_config.proto new file mode 100644 index 000000000..6960903e1 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_idle_shutdown_config.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookIdleShutdownConfigProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// The idle shutdown configuration of NotebookRuntimeTemplate, which contains +// the idle_timeout as required field. +message NotebookIdleShutdownConfig { + // Required. Duration is accurate to the second. In Notebook, Idle Timeout is + // accurate to minute so the range of idle_timeout (second) is: 10 * 60 ~ 1440 + // * 60. + google.protobuf.Duration idle_timeout = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Whether Idle Shutdown is disabled in this NotebookRuntimeTemplate. + bool idle_shutdown_disabled = 2; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/notebook_runtime.proto b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_runtime.proto new file mode 100644 index 000000000..31b5704c1 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_runtime.proto @@ -0,0 +1,292 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/cloud/aiplatform/v1/network_spec.proto"; +import "google/cloud/aiplatform/v1/notebook_euc_config.proto"; +import "google/cloud/aiplatform/v1/notebook_idle_shutdown_config.proto"; +import "google/cloud/aiplatform/v1/notebook_runtime_template_ref.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookRuntimeProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents a notebook runtime type. +enum NotebookRuntimeType { + // Unspecified notebook runtime type, NotebookRuntimeType will default to + // USER_DEFINED. + NOTEBOOK_RUNTIME_TYPE_UNSPECIFIED = 0; + + // runtime or template with coustomized configurations from user. + USER_DEFINED = 1; + + // runtime or template with system defined configurations. + ONE_CLICK = 2; +} + +// A template that specifies runtime configurations such as machine type, +// runtime version, network configurations, etc. +// Multiple runtimes can be created from a runtime template. +message NotebookRuntimeTemplate { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + pattern: "projects/{project}/locations/{location}/notebookRuntimeTemplates/{notebook_runtime_template}" + }; + + // The resource name of the NotebookRuntimeTemplate. + string name = 1; + + // Required. The display name of the NotebookRuntimeTemplate. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // The description of the NotebookRuntimeTemplate. + string description = 3; + + // Output only. The default template to use if not specified. + bool is_default = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. The specification of a single machine for the + // template. + MachineSpec machine_spec = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The specification of [persistent + // disk][https://cloud.google.com/compute/docs/disks/persistent-disks] + // attached to the runtime as data disk storage. + PersistentDiskSpec data_persistent_disk_spec = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Network spec. + NetworkSpec network_spec = 12 [(google.api.field_behavior) = OPTIONAL]; + + // The service account that the runtime workload runs as. + // You can use any service account within the same project, but you + // must have the service account user permission to use the instance. + // + // If not specified, the [Compute Engine default service + // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) + // is used. + string service_account = 13; + + // Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 14; + + // The labels with user-defined metadata to organize the + // NotebookRuntimeTemplates. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + map labels = 15; + + // The idle shutdown configuration of NotebookRuntimeTemplate. This config + // will only be set when idle shutdown is enabled. + NotebookIdleShutdownConfig idle_shutdown_config = 17; + + // EUC configuration of the NotebookRuntimeTemplate. + NotebookEucConfig euc_config = 18; + + // Output only. Timestamp when this NotebookRuntimeTemplate was created. + google.protobuf.Timestamp create_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookRuntimeTemplate was most recently + // updated. + google.protobuf.Timestamp update_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. The type of the notebook runtime template. + NotebookRuntimeType notebook_runtime_type = 19 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Immutable. Runtime Shielded VM spec. + ShieldedVmConfig shielded_vm_config = 20 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The Compute Engine tags to add to runtime (see [Tagging + // instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). + repeated string network_tags = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Customer-managed encryption key spec for the notebook runtime. + EncryptionSpec encryption_spec = 23; +} + +// A runtime is a virtual machine allocated to a particular user for a +// particular Notebook file on temporary basis with lifetime limited to 24 +// hours. +message NotebookRuntime { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + pattern: "projects/{project}/locations/{location}/notebookRuntimes/{notebook_runtime}" + }; + + // The substate of the NotebookRuntime to display health information. + enum HealthState { + // Unspecified health state. + HEALTH_STATE_UNSPECIFIED = 0; + + // NotebookRuntime is in healthy state. Applies to ACTIVE state. + HEALTHY = 1; + + // NotebookRuntime is in unhealthy state. Applies to ACTIVE state. + UNHEALTHY = 2; + } + + // The substate of the NotebookRuntime to display state of runtime. + // The resource of NotebookRuntime is in ACTIVE state for these sub state. + enum RuntimeState { + // Unspecified runtime state. + RUNTIME_STATE_UNSPECIFIED = 0; + + // NotebookRuntime is in running state. + RUNNING = 1; + + // NotebookRuntime is in starting state. + BEING_STARTED = 2; + + // NotebookRuntime is in stopping state. + BEING_STOPPED = 3; + + // NotebookRuntime is in stopped state. + STOPPED = 4; + + // NotebookRuntime is in upgrading state. It is in the middle of upgrading + // process. + BEING_UPGRADED = 5; + + // NotebookRuntime was unable to start/stop properly. + ERROR = 100; + + // NotebookRuntime is in invalid state. Cannot be recovered. + INVALID = 101; + } + + // Output only. The resource name of the NotebookRuntime. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user email of the NotebookRuntime. + string runtime_user = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The pointer to NotebookRuntimeTemplate this NotebookRuntime is + // created from. + NotebookRuntimeTemplateRef notebook_runtime_template_ref = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proxy endpoint used to access the NotebookRuntime. + string proxy_uri = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookRuntime was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookRuntime was most recently updated. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The health state of the NotebookRuntime. + HealthState health_state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the NotebookRuntime. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 10 [(google.api.field_behavior) = REQUIRED]; + + // The description of the NotebookRuntime. + string description = 11; + + // Output only. The service account that the NotebookRuntime workload runs as. + string service_account = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The runtime (instance) state of the NotebookRuntime. + RuntimeState runtime_state = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether NotebookRuntime is upgradable. + bool is_upgradable = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize your + // NotebookRuntime. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // No more than 64 user labels can be associated with one NotebookRuntime + // (System labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. Following system labels exist for NotebookRuntime: + // + // * "aiplatform.googleapis.com/notebook_runtime_gce_instance_id": output + // only, its value is the Compute Engine instance id. + // * "aiplatform.googleapis.com/colab_enterprise_entry_service": its value is + // either "bigquery" or "vertex"; if absent, it should be "vertex". This is to + // describe the entry service, either BigQuery or Vertex. + map labels = 16; + + // Output only. Timestamp when this NotebookRuntime will be expired: + // 1. System Predefined NotebookRuntime: 24 hours after creation. After + // expiration, system predifined runtime will be deleted. + // 2. User created NotebookRuntime: 6 months after last upgrade. After + // expiration, user created runtime will be stopped and allowed for upgrade. + google.protobuf.Timestamp expiration_time = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The VM os image version of NotebookRuntime. + string version = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the notebook runtime. + NotebookRuntimeType notebook_runtime_type = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The idle shutdown configuration of the notebook runtime. + NotebookIdleShutdownConfig idle_shutdown_config = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The Compute Engine tags to add to runtime (see [Tagging + // instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). + repeated string network_tags = 25 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Customer-managed encryption key spec for the notebook runtime. + EncryptionSpec encryption_spec = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/notebook_runtime_template_ref.proto b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_runtime_template_ref.proto new file mode 100644 index 000000000..ef5e9b6fa --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_runtime_template_ref.proto @@ -0,0 +1,39 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookRuntimeTemplateRefProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Points to a NotebookRuntimeTemplateRef. +message NotebookRuntimeTemplateRef { + // Immutable. A resource name of the NotebookRuntimeTemplate. + string notebook_runtime_template = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/notebook_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_service.proto new file mode 100644 index 000000000..ae5ba9f49 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/notebook_service.proto @@ -0,0 +1,540 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/notebook_runtime.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// The interface for Vertex Notebook service (a.k.a. Colab on Workbench). +service NotebookService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a NotebookRuntimeTemplate. + rpc CreateNotebookRuntimeTemplate(CreateNotebookRuntimeTemplateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + body: "notebook_runtime_template" + }; + option (google.api.method_signature) = + "parent,notebook_runtime_template,notebook_runtime_template_id"; + option (google.longrunning.operation_info) = { + response_type: "NotebookRuntimeTemplate" + metadata_type: "CreateNotebookRuntimeTemplateOperationMetadata" + }; + } + + // Gets a NotebookRuntimeTemplate. + rpc GetNotebookRuntimeTemplate(GetNotebookRuntimeTemplateRequest) + returns (NotebookRuntimeTemplate) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists NotebookRuntimeTemplates in a Location. + rpc ListNotebookRuntimeTemplates(ListNotebookRuntimeTemplatesRequest) + returns (ListNotebookRuntimeTemplatesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a NotebookRuntimeTemplate. + rpc DeleteNotebookRuntimeTemplate(DeleteNotebookRuntimeTemplateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Updates a NotebookRuntimeTemplate. + rpc UpdateNotebookRuntimeTemplate(UpdateNotebookRuntimeTemplateRequest) + returns (NotebookRuntimeTemplate) { + option (google.api.http) = { + patch: "/v1/{notebook_runtime_template.name=projects/*/locations/*/notebookRuntimeTemplates/*}" + body: "notebook_runtime_template" + }; + option (google.api.method_signature) = + "notebook_runtime_template,update_mask"; + } + + // Assigns a NotebookRuntime to a user for a particular Notebook file. This + // method will either returns an existing assignment or generates a new one. + rpc AssignNotebookRuntime(AssignNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/notebookRuntimes:assign" + body: "*" + }; + option (google.api.method_signature) = + "parent,notebook_runtime_template,notebook_runtime,notebook_runtime_id"; + option (google.longrunning.operation_info) = { + response_type: "NotebookRuntime" + metadata_type: "AssignNotebookRuntimeOperationMetadata" + }; + } + + // Gets a NotebookRuntime. + rpc GetNotebookRuntime(GetNotebookRuntimeRequest) returns (NotebookRuntime) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/notebookRuntimes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists NotebookRuntimes in a Location. + rpc ListNotebookRuntimes(ListNotebookRuntimesRequest) + returns (ListNotebookRuntimesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/notebookRuntimes" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a NotebookRuntime. + rpc DeleteNotebookRuntime(DeleteNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/notebookRuntimes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Upgrades a NotebookRuntime. + rpc UpgradeNotebookRuntime(UpgradeNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/notebookRuntimes/*}:upgrade" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "UpgradeNotebookRuntimeResponse" + metadata_type: "UpgradeNotebookRuntimeOperationMetadata" + }; + } + + // Starts a NotebookRuntime. + rpc StartNotebookRuntime(StartNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/notebookRuntimes/*}:start" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "StartNotebookRuntimeResponse" + metadata_type: "StartNotebookRuntimeOperationMetadata" + }; + } +} + +// Request message for +// [NotebookService.CreateNotebookRuntimeTemplate][google.cloud.aiplatform.v1.NotebookService.CreateNotebookRuntimeTemplate]. +message CreateNotebookRuntimeTemplateRequest { + // Required. The resource name of the Location to create the + // NotebookRuntimeTemplate. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The NotebookRuntimeTemplate to create. + NotebookRuntimeTemplate notebook_runtime_template = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified ID for the notebook runtime template. + string notebook_runtime_template_id = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata information for +// [NotebookService.CreateNotebookRuntimeTemplate][google.cloud.aiplatform.v1.NotebookService.CreateNotebookRuntimeTemplate]. +message CreateNotebookRuntimeTemplateOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [NotebookService.GetNotebookRuntimeTemplate][google.cloud.aiplatform.v1.NotebookService.GetNotebookRuntimeTemplate] +message GetNotebookRuntimeTemplateRequest { + // Required. The name of the NotebookRuntimeTemplate resource. + // Format: + // `projects/{project}/locations/{location}/notebookRuntimeTemplates/{notebook_runtime_template}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; +} + +// Request message for +// [NotebookService.ListNotebookRuntimeTemplates][google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimeTemplates]. +message ListNotebookRuntimeTemplatesRequest { + // Required. The resource name of the Location from which to list the + // NotebookRuntimeTemplates. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field + // names both snake_case and camelCase are supported. + // + // * `notebookRuntimeTemplate` supports = and !=. `notebookRuntimeTemplate` + // represents the NotebookRuntimeTemplate ID, + // i.e. the last segment of the NotebookRuntimeTemplate's [resource name] + // [google.cloud.aiplatform.v1.NotebookRuntimeTemplate.name]. + // * `display_name` supports = and != + // * `labels` supports general map functions that is: + // * `labels.key=value` - key:value equality + // * `labels.key:* or labels:key - key existence + // * A key including a space must be quoted. `labels."a key"`. + // * `notebookRuntimeType` supports = and !=. notebookRuntimeType enum: + // [USER_DEFINED, ONE_CLICK]. + // + // Some examples: + // + // * `notebookRuntimeTemplate=notebookRuntimeTemplate123` + // * `displayName="myDisplayName"` + // * `labels.myKey="myValue"` + // * `notebookRuntimeType=USER_DEFINED` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListNotebookRuntimeTemplatesResponse.next_page_token][google.cloud.aiplatform.v1.ListNotebookRuntimeTemplatesResponse.next_page_token] + // of the previous + // [NotebookService.ListNotebookRuntimeTemplates][google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimeTemplates] + // call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [NotebookService.ListNotebookRuntimeTemplates][google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimeTemplates]. +message ListNotebookRuntimeTemplatesResponse { + // List of NotebookRuntimeTemplates in the requested page. + repeated NotebookRuntimeTemplate notebook_runtime_templates = 1; + + // A token to retrieve next page of results. + // Pass to + // [ListNotebookRuntimeTemplatesRequest.page_token][google.cloud.aiplatform.v1.ListNotebookRuntimeTemplatesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [NotebookService.DeleteNotebookRuntimeTemplate][google.cloud.aiplatform.v1.NotebookService.DeleteNotebookRuntimeTemplate]. +message DeleteNotebookRuntimeTemplateRequest { + // Required. The name of the NotebookRuntimeTemplate resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/notebookRuntimeTemplates/{notebook_runtime_template}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; +} + +// Request message for +// [NotebookService.UpdateNotebookRuntimeTemplate][google.cloud.aiplatform.v1.NotebookService.UpdateNotebookRuntimeTemplate]. +message UpdateNotebookRuntimeTemplateRequest { + // Required. The NotebookRuntimeTemplate to update. + NotebookRuntimeTemplate notebook_runtime_template = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see + // [google.protobuf.FieldMask][google.protobuf.FieldMask]. Input format: + // `{paths: "${updated_filed}"}` Updatable fields: + // + // * `encryption_spec.kms_key_name` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [NotebookService.AssignNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.AssignNotebookRuntime]. +message AssignNotebookRuntimeRequest { + // Required. The resource name of the Location to get the NotebookRuntime + // assignment. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The resource name of the NotebookRuntimeTemplate based on which a + // NotebookRuntime will be assigned (reuse or create a new one). + string notebook_runtime_template = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; + + // Required. Provide runtime specific information (e.g. runtime owner, + // notebook id) used for NotebookRuntime assignment. + NotebookRuntime notebook_runtime = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified ID for the notebook runtime. + string notebook_runtime_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata information for +// [NotebookService.AssignNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.AssignNotebookRuntime]. +message AssignNotebookRuntimeOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Request message for +// [NotebookService.GetNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.GetNotebookRuntime] +message GetNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Request message for +// [NotebookService.ListNotebookRuntimes][google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimes]. +message ListNotebookRuntimesRequest { + // Required. The resource name of the Location from which to list the + // NotebookRuntimes. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field + // names both snake_case and camelCase are supported. + // + // * `notebookRuntime` supports = and !=. `notebookRuntime` represents the + // NotebookRuntime ID, + // i.e. the last segment of the NotebookRuntime's [resource name] + // [google.cloud.aiplatform.v1.NotebookRuntime.name]. + // * `displayName` supports = and != and regex. + // * `notebookRuntimeTemplate` supports = and !=. `notebookRuntimeTemplate` + // represents the NotebookRuntimeTemplate ID, + // i.e. the last segment of the NotebookRuntimeTemplate's [resource name] + // [google.cloud.aiplatform.v1.NotebookRuntimeTemplate.name]. + // * `healthState` supports = and !=. healthState enum: [HEALTHY, UNHEALTHY, + // HEALTH_STATE_UNSPECIFIED]. + // * `runtimeState` supports = and !=. runtimeState enum: + // [RUNTIME_STATE_UNSPECIFIED, RUNNING, BEING_STARTED, BEING_STOPPED, + // STOPPED, BEING_UPGRADED, ERROR, INVALID]. + // * `runtimeUser` supports = and !=. + // * API version is UI only: `uiState` supports = and !=. uiState enum: + // [UI_RESOURCE_STATE_UNSPECIFIED, UI_RESOURCE_STATE_BEING_CREATED, + // UI_RESOURCE_STATE_ACTIVE, UI_RESOURCE_STATE_BEING_DELETED, + // UI_RESOURCE_STATE_CREATION_FAILED]. + // * `notebookRuntimeType` supports = and !=. notebookRuntimeType enum: + // [USER_DEFINED, ONE_CLICK]. + // + // Some examples: + // + // * `notebookRuntime="notebookRuntime123"` + // * `displayName="myDisplayName"` and `displayName=~"myDisplayNameRegex"` + // * `notebookRuntimeTemplate="notebookRuntimeTemplate321"` + // * `healthState=HEALTHY` + // * `runtimeState=RUNNING` + // * `runtimeUser="test@google.com"` + // * `uiState=UI_RESOURCE_STATE_BEING_DELETED` + // * `notebookRuntimeType=USER_DEFINED` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListNotebookRuntimesResponse.next_page_token][google.cloud.aiplatform.v1.ListNotebookRuntimesResponse.next_page_token] + // of the previous + // [NotebookService.ListNotebookRuntimes][google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimes] + // call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [NotebookService.ListNotebookRuntimes][google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimes]. +message ListNotebookRuntimesResponse { + // List of NotebookRuntimes in the requested page. + repeated NotebookRuntime notebook_runtimes = 1; + + // A token to retrieve next page of results. + // Pass to + // [ListNotebookRuntimesRequest.page_token][google.cloud.aiplatform.v1.ListNotebookRuntimesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [NotebookService.DeleteNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.DeleteNotebookRuntime]. +message DeleteNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource to be deleted. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Request message for +// [NotebookService.UpgradeNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.UpgradeNotebookRuntime]. +message UpgradeNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource to be upgrade. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Metadata information for +// [NotebookService.UpgradeNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.UpgradeNotebookRuntime]. +message UpgradeNotebookRuntimeOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Response message for +// [NotebookService.UpgradeNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.UpgradeNotebookRuntime]. +message UpgradeNotebookRuntimeResponse {} + +// Request message for +// [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.StartNotebookRuntime]. +message StartNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource to be started. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Metadata information for +// [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.StartNotebookRuntime]. +message StartNotebookRuntimeOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Response message for +// [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.StartNotebookRuntime]. +message StartNotebookRuntimeResponse {} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/openapi.proto b/third_party/googleapis/google/cloud/aiplatform/v1/openapi.proto index dfdcd0a42..243670446 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/openapi.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/openapi.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,30 +62,69 @@ message Schema { // Optional. The format of the data. // Supported formats: - // for NUMBER type: float, double - // for INTEGER type: int32, int64 + // for NUMBER type: "float", "double" + // for INTEGER type: "int32", "int64" + // for STRING type: "email", "byte", etc string format = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The title of the Schema. + string title = 24 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The description of the data. string description = 8 [(google.api.field_behavior) = OPTIONAL]; // Optional. Indicates if the value may be null. bool nullable = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Schema of the elements of Type.ARRAY. + // Optional. Default value of the data. + google.protobuf.Value default = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SCHEMA FIELDS FOR TYPE ARRAY + // Schema of the elements of Type.ARRAY. Schema items = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Minimum number of the elements for Type.ARRAY. + int64 min_items = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of the elements for Type.ARRAY. + int64 max_items = 22 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Possible values of the element of Type.STRING with enum format. // For example we can define an Enum Direction as : // {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} repeated string enum = 9 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Properties of Type.OBJECT. + // Optional. SCHEMA FIELDS FOR TYPE OBJECT + // Properties of Type.OBJECT. map properties = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Required properties of Type.OBJECT. repeated string required = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Minimum number of the properties for Type.OBJECT. + int64 min_properties = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of the properties for Type.OBJECT. + int64 max_properties = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER + // Minimum value of the Type.INTEGER and Type.NUMBER + double minimum = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum value of the Type.INTEGER and Type.NUMBER + double maximum = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SCHEMA FIELDS FOR TYPE STRING + // Minimum length of the Type.STRING + int64 min_length = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum length of the Type.STRING + int64 max_length = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Pattern of the Type.STRING to restrict a string to a regular + // expression. + string pattern = 20 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Example of the object. Will only populated when the object is the // root. google.protobuf.Value example = 4 [(google.api.field_behavior) = OPTIONAL]; diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/operation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/operation.proto index 8f8604124..2147af54f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/operation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/persistent_resource.proto b/third_party/googleapis/google/cloud/aiplatform/v1/persistent_resource.proto new file mode 100644 index 000000000..83707aa22 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/persistent_resource.proto @@ -0,0 +1,297 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "PersistentResourceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents long-lasting resources that are dedicated to users to runs custom +// workloads. +// A PersistentResource can have multiple node pools and each node +// pool can have its own machine spec. +message PersistentResource { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/PersistentResource" + pattern: "projects/{project}/locations/{location}/persistentResources/{persistent_resource}" + }; + + // Describes the PersistentResource state. + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // The PROVISIONING state indicates the persistent resources is being + // created. + PROVISIONING = 1; + + // The RUNNING state indicates the persistent resource is healthy and fully + // usable. + RUNNING = 3; + + // The STOPPING state indicates the persistent resource is being deleted. + STOPPING = 4; + + // The ERROR state indicates the persistent resource may be unusable. + // Details can be found in the `error` field. + ERROR = 5; + + // The REBOOTING state indicates the persistent resource is being rebooted + // (PR is not available right now but is expected to be ready again later). + REBOOTING = 6; + + // The UPDATING state indicates the persistent resource is being updated. + UPDATING = 7; + } + + // Immutable. Resource name of a PersistentResource. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. The display name of the PersistentResource. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The spec of the pools of different resources. + repeated ResourcePool resource_pools = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of a Study. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when persistent resource's state is `STOPPING` + // or `ERROR`. + google.rpc.Status error = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the PersistentResource was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the PersistentResource for the first time entered + // the `RUNNING` state. + google.protobuf.Timestamp start_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the PersistentResource was most recently updated. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The labels with user-defined metadata to organize + // PersistentResource. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The full name of the Compute Engine + // [network](/compute/docs/networks-and-firewalls#networks) to peered with + // Vertex AI to host the persistent resources. + // For example, `projects/12345/global/networks/myVPC`. + // [Format](/compute/docs/reference/rest/v1/networks/insert) + // is of the form `projects/{project}/global/networks/{network}`. + // Where {project} is a project number, as in `12345`, and {network} is a + // network name. + // + // To specify this field, you must have already [configured VPC Network + // Peering for Vertex + // AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). + // + // If this field is left unspecified, the resources aren't peered with any + // network. + string network = 11 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Optional. Customer-managed encryption key spec for a PersistentResource. + // If set, this PersistentResource and all sub-resources of this + // PersistentResource will be secured by this key. + EncryptionSpec encryption_spec = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Persistent Resource runtime spec. + // For example, used for Ray cluster configuration. + ResourceRuntimeSpec resource_runtime_spec = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Runtime information of the Persistent Resource. + ResourceRuntime resource_runtime = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A list of names for the reserved IP ranges under the VPC network + // that can be used for this persistent resource. + // + // If set, we will deploy the persistent resource within the provided IP + // ranges. Otherwise, the persistent resource is deployed to any IP + // ranges under the provided VPC network. + // + // Example: ['vertex-ai-ip-range']. + repeated string reserved_ip_ranges = 15 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the spec of a group of resources of the same type, +// for example machine type, disk, and accelerators, in a PersistentResource. +message ResourcePool { + // The min/max number of replicas allowed if enabling autoscaling + message AutoscalingSpec { + // Optional. min replicas in the node pool, + // must be ≤ replica_count and < max_replica_count or will throw error. + // For autoscaling enabled Ray-on-Vertex, we allow min_replica_count of a + // resource_pool to be 0 to match the OSS Ray + // behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). + // As for Persistent Resource, the min_replica_count must be > 0, we added + // a corresponding validation inside + // CreatePersistentResourceRequestValidator.java. + optional int64 min_replica_count = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. max replicas in the node pool, + // must be ≥ replica_count and > min_replica_count or will throw error + optional int64 max_replica_count = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Immutable. The unique ID in a PersistentResource for referring to this + // resource pool. User can specify it if necessary. Otherwise, it's generated + // automatically. + string id = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Immutable. The specification of a single machine. + MachineSpec machine_spec = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The total number of machines to use for this resource pool. + optional int64 replica_count = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disk spec for the machine in this node pool. + DiskSpec disk_spec = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The number of machines currently in use by training jobs for + // this resource pool. Will replace idle_replica_count. + int64 used_replica_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Optional spec to configure GKE or Ray-on-Vertex autoscaling + AutoscalingSpec autoscaling_spec = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for the runtime on a PersistentResource instance, including +// but not limited to: +// +// * Service accounts used to run the workloads. +// * Whether to make it a dedicated Ray Cluster. +message ResourceRuntimeSpec { + // Optional. Configure the use of workload identity on the PersistentResource + ServiceAccountSpec service_account_spec = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Ray cluster configuration. + // Required when creating a dedicated RayCluster on the PersistentResource. + RaySpec ray_spec = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration information for the Ray cluster. +// For experimental launch, Ray cluster creation and Persistent +// cluster creation are 1:1 mapping: We will provision all the nodes within the +// Persistent cluster as Ray nodes. +message RaySpec { + // Optional. Default image for user to choose a preferred ML framework + // (for example, TensorFlow or Pytorch) by choosing from [Vertex prebuilt + // images](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). + // Either this or the resource_pool_images is required. Use this field if + // you need all the resource pools to have the same Ray image. Otherwise, use + // the {@code resource_pool_images} field. + string image_uri = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Required if image_uri isn't set. A map of resource_pool_id to + // prebuild Ray image if user need to use different images for different + // head/worker pools. This map needs to cover all the resource pool ids. + // Example: + // { + // "ray_head_node_pool": "head image" + // "ray_worker_node_pool1": "worker image" + // "ray_worker_node_pool2": "another worker image" + // } + map resource_pool_images = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This will be used to indicate which resource pool will serve as + // the Ray head node(the first node within that pool). Will use the machine + // from the first workerpool as the head node by default if this field isn't + // set. + string head_node_resource_pool_id = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Ray metrics configurations. + RayMetricSpec ray_metric_spec = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Persistent Cluster runtime information as output +message ResourceRuntime { + // Output only. URIs for user to connect to the Cluster. + // Example: + // { + // "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" + // "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" + // } + map access_uris = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for the use of custom service account to run the workloads. +message ServiceAccountSpec { + // Required. If true, custom user-managed service account is enforced to run + // any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses + // the [Vertex AI Custom Code Service + // Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents). + bool enable_custom_service_account = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Required when all below conditions are met + // * `enable_custom_service_account` is true; + // * any runtime is specified via `ResourceRuntimeSpec` on creation time, + // for example, Ray + // + // The users must have `iam.serviceAccounts.actAs` permission on this service + // account and then the specified runtime containers will run as it. + // + // Do not set this field if you want to submit jobs using custom service + // account to this PersistentResource after creation, but only specify the + // `service_account` inside the job. + string service_account = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for the Ray metrics. +message RayMetricSpec { + // Optional. Flag to disable the Ray metrics collection. + bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/persistent_resource_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/persistent_resource_service.proto new file mode 100644 index 000000000..fc9586575 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/persistent_resource_service.proto @@ -0,0 +1,258 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/cloud/aiplatform/v1/persistent_resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "PersistentResourceServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for managing Vertex AI's machine learning PersistentResource. +service PersistentResourceService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a PersistentResource. + rpc CreatePersistentResource(CreatePersistentResourceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/persistentResources" + body: "persistent_resource" + }; + option (google.api.method_signature) = + "parent,persistent_resource,persistent_resource_id"; + option (google.longrunning.operation_info) = { + response_type: "PersistentResource" + metadata_type: "CreatePersistentResourceOperationMetadata" + }; + } + + // Gets a PersistentResource. + rpc GetPersistentResource(GetPersistentResourceRequest) + returns (PersistentResource) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/persistentResources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists PersistentResources in a Location. + rpc ListPersistentResources(ListPersistentResourcesRequest) + returns (ListPersistentResourcesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/persistentResources" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a PersistentResource. + rpc DeletePersistentResource(DeletePersistentResourceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/persistentResources/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Updates a PersistentResource. + rpc UpdatePersistentResource(UpdatePersistentResourceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{persistent_resource.name=projects/*/locations/*/persistentResources/*}" + body: "persistent_resource" + }; + option (google.api.method_signature) = "persistent_resource,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "PersistentResource" + metadata_type: "UpdatePersistentResourceOperationMetadata" + }; + } + + // Reboots a PersistentResource. + rpc RebootPersistentResource(RebootPersistentResourceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/persistentResources/*}:reboot" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "PersistentResource" + metadata_type: "RebootPersistentResourceOperationMetadata" + }; + } +} + +// Request message for +// [PersistentResourceService.CreatePersistentResource][google.cloud.aiplatform.v1.PersistentResourceService.CreatePersistentResource]. +message CreatePersistentResourceRequest { + // Required. The resource name of the Location to create the + // PersistentResource in. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The PersistentResource to create. + PersistentResource persistent_resource = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the PersistentResource, which become the final + // component of the PersistentResource's resource name. + // + // The maximum length is 63 characters, and valid characters + // are `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`. + string persistent_resource_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of operations that perform create PersistentResource. +message CreatePersistentResourceOperationMetadata { + // Operation metadata for PersistentResource. + GenericOperationMetadata generic_metadata = 1; + + // Progress Message for Create LRO + string progress_message = 2; +} + +// Details of operations that perform update PersistentResource. +message UpdatePersistentResourceOperationMetadata { + // Operation metadata for PersistentResource. + GenericOperationMetadata generic_metadata = 1; + + // Progress Message for Update LRO + string progress_message = 2; +} + +// Details of operations that perform reboot PersistentResource. +message RebootPersistentResourceOperationMetadata { + // Operation metadata for PersistentResource. + GenericOperationMetadata generic_metadata = 1; + + // Progress Message for Reboot LRO + string progress_message = 2; +} + +// Request message for +// [PersistentResourceService.GetPersistentResource][google.cloud.aiplatform.v1.PersistentResourceService.GetPersistentResource]. +message GetPersistentResourceRequest { + // Required. The name of the PersistentResource resource. + // Format: + // `projects/{project_id_or_number}/locations/{location_id}/persistentResources/{persistent_resource_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PersistentResource" + } + ]; +} + +// Request message for [PersistentResourceService.ListPersistentResource][]. +message ListPersistentResourcesRequest { + // Required. The resource name of the Location to list the PersistentResources + // from. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListPersistentResourceResponse.next_page_token][] of the previous + // [PersistentResourceService.ListPersistentResource][] call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [PersistentResourceService.ListPersistentResources][google.cloud.aiplatform.v1.PersistentResourceService.ListPersistentResources] +message ListPersistentResourcesResponse { + repeated PersistentResource persistent_resources = 1; + + // A token to retrieve next page of results. + // Pass to + // [ListPersistentResourcesRequest.page_token][google.cloud.aiplatform.v1.ListPersistentResourcesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [PersistentResourceService.DeletePersistentResource][google.cloud.aiplatform.v1.PersistentResourceService.DeletePersistentResource]. +message DeletePersistentResourceRequest { + // Required. The name of the PersistentResource to be deleted. + // Format: + // `projects/{project}/locations/{location}/persistentResources/{persistent_resource}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PersistentResource" + } + ]; +} + +// Request message for UpdatePersistentResource method. +message UpdatePersistentResourceRequest { + // Required. The PersistentResource to update. + // + // The PersistentResource's `name` field is used to identify the + // PersistentResource to update. Format: + // `projects/{project}/locations/{location}/persistentResources/{persistent_resource}` + PersistentResource persistent_resource = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Specify the fields to be overwritten in the PersistentResource by + // the update method. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [PersistentResourceService.RebootPersistentResource][google.cloud.aiplatform.v1.PersistentResourceService.RebootPersistentResource]. +message RebootPersistentResourceRequest { + // Required. The name of the PersistentResource resource. + // Format: + // `projects/{project_id_or_number}/locations/{location_id}/persistentResources/{persistent_resource_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PersistentResource" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_failure_policy.proto b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_failure_policy.proto index fc33dacd3..3473c4e9d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_failure_policy.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_failure_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_job.proto index e48cd9546..e31290cb9 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -213,6 +213,9 @@ message PipelineJob { // Output only. The schedule resource name. // Only returned if the Pipeline is created by Schedule API. string schedule_name = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Whether to do component level validations before job creation. + bool preflight_validations = 26 [(google.api.field_behavior) = OPTIONAL]; } // Pipeline template metadata if diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_service.proto index c500559d9..9a40f0abe 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -148,6 +148,22 @@ service PipelineService { }; } + // Batch deletes PipelineJobs + // The Operation is atomic. If it fails, none of the PipelineJobs are deleted. + // If it succeeds, all of the PipelineJobs are deleted. + rpc BatchDeletePipelineJobs(BatchDeletePipelineJobsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/pipelineJobs:batchDelete" + body: "*" + }; + option (google.api.method_signature) = "parent,names"; + option (google.longrunning.operation_info) = { + response_type: "BatchDeletePipelineJobsResponse" + metadata_type: "DeleteOperationMetadata" + }; + } + // Cancels a PipelineJob. // Starts asynchronous cancellation on the PipelineJob. The server // makes a best effort to cancel the pipeline, but success is not @@ -169,6 +185,33 @@ service PipelineService { }; option (google.api.method_signature) = "name"; } + + // Batch cancel PipelineJobs. + // Firstly the server will check if all the jobs are in non-terminal states, + // and skip the jobs that are already terminated. + // If the operation failed, none of the pipeline jobs are cancelled. + // The server will poll the states of all the pipeline jobs periodically + // to check the cancellation status. + // This operation will return an LRO. + rpc BatchCancelPipelineJobs(BatchCancelPipelineJobsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/pipelineJobs:batchCancel" + body: "*" + }; + option (google.api.method_signature) = "parent,names"; + option (google.longrunning.operation_info) = { + response_type: "BatchCancelPipelineJobsResponse" + metadata_type: "BatchCancelPipelineJobsOperationMetadata" + }; + } +} + +// Runtime operation information for +// [PipelineService.BatchCancelPipelineJobs][google.cloud.aiplatform.v1.PipelineService.BatchCancelPipelineJobs]. +message BatchCancelPipelineJobsOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; } // Request message for @@ -435,6 +478,37 @@ message DeletePipelineJobRequest { ]; } +// Request message for +// [PipelineService.BatchDeletePipelineJobs][google.cloud.aiplatform.v1.PipelineService.BatchDeletePipelineJobs]. +message BatchDeletePipelineJobsRequest { + // Required. The name of the PipelineJobs' parent resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/PipelineJob" + } + ]; + + // Required. The names of the PipelineJobs to delete. + // A maximum of 32 PipelineJobs can be deleted in a batch. + // Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipelineJob}` + repeated string names = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + } + ]; +} + +// Response message for +// [PipelineService.BatchDeletePipelineJobs][google.cloud.aiplatform.v1.PipelineService.BatchDeletePipelineJobs]. +message BatchDeletePipelineJobsResponse { + // PipelineJobs deleted. + repeated PipelineJob pipeline_jobs = 1; +} + // Request message for // [PipelineService.CancelPipelineJob][google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob]. message CancelPipelineJobRequest { @@ -448,3 +522,34 @@ message CancelPipelineJobRequest { } ]; } + +// Request message for +// [PipelineService.BatchCancelPipelineJobs][google.cloud.aiplatform.v1.PipelineService.BatchCancelPipelineJobs]. +message BatchCancelPipelineJobsRequest { + // Required. The name of the PipelineJobs' parent resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/PipelineJob" + } + ]; + + // Required. The names of the PipelineJobs to cancel. + // A maximum of 32 PipelineJobs can be cancelled in a batch. + // Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipelineJob}` + repeated string names = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + } + ]; +} + +// Response message for +// [PipelineService.BatchCancelPipelineJobs][google.cloud.aiplatform.v1.PipelineService.BatchCancelPipelineJobs]. +message BatchCancelPipelineJobsResponse { + // PipelineJobs cancelled. + repeated PipelineJob pipeline_jobs = 1; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_state.proto b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_state.proto index b48373700..baac04b25 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_state.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/pipeline_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/prediction_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/prediction_service.proto index e37bdb8fc..9e609e918 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/prediction_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,7 +39,8 @@ option ruby_package = "Google::Cloud::AIPlatform::V1"; service PredictionService { option (google.api.default_host) = "aiplatform.googleapis.com"; option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; // Perform an online prediction. rpc Predict(PredictRequest) returns (PredictResponse) { @@ -648,6 +649,12 @@ message GenerateContentRequest { // request. repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. The user provided system instructions for the model. + // Note: only text should be used in parts and content in each part will be in + // a separate paragraph. + optional Content system_instruction = 8 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. A list of `Tools` the model may use to generate the next // response. // @@ -656,6 +663,10 @@ message GenerateContentRequest { // knowledge and scope of the model. repeated Tool tools = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Tool config. This config is shared for all tools provided in the + // request. + ToolConfig tool_config = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Per request settings for blocking unsafe content. // Enforced on GenerateContentResponse.candidates. repeated SafetySetting safety_settings = 3 @@ -680,6 +691,13 @@ message GenerateContentResponse { // Candidates blocked due to other reason. OTHER = 2; + + // Candidates blocked due to the terms which are included from the + // terminology blocklist. + BLOCKLIST = 3; + + // Candidates blocked due to prohibited content. + PROHIBITED_CONTENT = 4; } // Output only. Blocked reason. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/publisher_model.proto b/third_party/googleapis/google/cloud/aiplatform/v1/publisher_model.proto index 4bfe02119..bf99e150f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/publisher_model.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/publisher_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -115,6 +115,14 @@ message PublisherModel { // Model metadata that is needed for UploadModel or // DeployModel/CreateEndpoint requests. message Deploy { + // Metadata information about the deployment for managing deployment + // config. + message DeployMetadata { + // Optional. Labels for the deployment. For managing deployment config + // like verifying, source of deployment config, etc. + map labels = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // The prediction (for example, the machine) resources that the // DeployedModel uses. oneof prediction_resources { @@ -149,6 +157,15 @@ message PublisherModel { // any of its supporting files. string artifact_uri = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The name of the deploy task (e.g., "text to image + // generation"). + optional string deploy_task_name = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Metadata information about this deployment config. + optional DeployMetadata deploy_metadata = 11 + [(google.api.field_behavior) = OPTIONAL]; + // Required. The title of the regional resource reference. string title = 8 [(google.api.field_behavior) = REQUIRED]; @@ -243,16 +260,23 @@ message PublisherModel { // The model launch stage is unspecified. LAUNCH_STAGE_UNSPECIFIED = 0; - // Used to indicate the PublisherModel is at Experimental launch stage. + // Used to indicate the PublisherModel is at Experimental launch stage, + // available to a small set of customers. EXPERIMENTAL = 1; - // Used to indicate the PublisherModel is at Private Preview launch stage. + // Used to indicate the PublisherModel is at Private Preview launch stage, + // only available to a small set of customers, although a larger set of + // customers than an Experimental launch. Previews are the first launch + // stage used to get feedback from customers. PRIVATE_PREVIEW = 2; - // Used to indicate the PublisherModel is at Public Preview launch stage. + // Used to indicate the PublisherModel is at Public Preview launch stage, + // available to all customers, although not supported for production + // workloads. PUBLIC_PREVIEW = 3; - // Used to indicate the PublisherModel is at GA launch stage. + // Used to indicate the PublisherModel is at GA launch stage, available to + // all customers and ready for production workload. GA = 4; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/saved_query.proto b/third_party/googleapis/google/cloud/aiplatform/v1/saved_query.proto index 55e5044b9..2c7eb4fba 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/saved_query.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/saved_query.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schedule.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schedule.proto index e40028b41..aa513cf95 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schedule.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schedule.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schedule_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schedule_service.proto index 67b922fa0..6af25b476 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schedule_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schedule_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto index e7f14c262..495cbf0ec 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto index cf6995dd6..46dd2763b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto index 0916ae560..aff8b190b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto index acf3ad888..84661a137 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto index 492d907d5..53b587392 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto index cb3b732a4..f7e558cad 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto index 0cc58f06d..24937f982 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto index d849d0476..673df70b6 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto index 4418c4926..ab60a9fcb 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto index 68b6d402c..8883a1bb1 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto index 6def9cb3d..1dbfc0801 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto index 83e12562c..4fb5be4d7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto index d7778531d..f557fadd0 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto index acf7ce0d9..f60652381 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto index 721a08056..f40a2d50c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto index a727b42bd..5f3eaf06d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto index 8a449d2b6..7f4802048 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto index 5510a6c42..b9f3176ea 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto index cd49449de..ede4d7a6c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto index d3ebc73e0..cac7cccb8 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto index a16ce5c21..b5ff45a3d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto index e5352b60d..64100755d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto index ea44f1e1d..0a85460fb 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto index d06450871..9ba67f2c1 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto index 415c03d77..0447492aa 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto index 697a9b61d..1d8f2f2e6 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto index a930bf140..0b596d0dc 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto index 69e7e893c..4f1362fd5 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto index b0fcfbf43..8f1bb867e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto index ad75ea174..181513138 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto index e12c49409..d909a908f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto index 642e9d50e..3bbfe71ba 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto index 870066f76..f0d183d05 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto index 672601224..d7d58a7db 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto index c941b5c8c..8335daac4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto index f5eaa303a..5c8777099 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/service_networking.proto b/third_party/googleapis/google/cloud/aiplatform/v1/service_networking.proto index 1e7cfffb6..e941e04b3 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/service_networking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/service_networking.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool.proto b/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool.proto index 158b0b201..3495da68e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool_service.proto index cfd0b05c7..2aba7cfc7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/specialist_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/study.proto b/third_party/googleapis/google/cloud/aiplatform/v1/study.proto index 6e39f3f40..231587ddb 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/study.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/study.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard.proto index d22b961d7..887888326 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -93,4 +93,10 @@ message Tensorboard { // TensorBoard instance to be default will mark all other TensorBoard // instances (if any) as non default. bool is_default = 12; + + // Output only. Reserved for future use. + bool satisfies_pzs = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_data.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_data.proto index 291e88a0d..43ae6a13a 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_data.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_experiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_experiment.proto index e6bfa6f8e..8da4d6276 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_experiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_run.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_run.proto index 1dc445e54..a14cf776f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_run.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_run.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_service.proto index a732b55c4..52c84fc7d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_time_series.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_time_series.proto index ef669d839..f316460e4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_time_series.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tensorboard_time_series.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tool.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tool.proto index 0837b8095..48c10074b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/tool.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/openapi.proto"; import "google/protobuf/struct.proto"; @@ -32,18 +33,31 @@ option ruby_package = "Google::Cloud::AIPlatform::V1"; // // A `Tool` is a piece of code that enables the system to interact with // external systems to perform an action, or set of actions, outside of -// knowledge and scope of the model. +// knowledge and scope of the model. A Tool object should contain exactly +// one type of Tool (e.g FunctionDeclaration, Retrieval or +// GoogleSearchRetrieval). message Tool { - // Optional. One or more function declarations to be passed to the model along - // with the current user query. Model may decide to call a subset of these - // functions by populating [FunctionCall][content.part.function_call] in the - // response. User should provide a - // [FunctionResponse][content.part.function_response] for each function call - // in the next turn. Based on the function responses, Model will generate the - // final response back to the user. Maximum 64 function declarations can be - // provided. + // Optional. Function tool type. + // One or more function declarations to be passed to the model along with the + // current user query. Model may decide to call a subset of these functions + // by populating [FunctionCall][content.part.function_call] in the response. + // User should provide a [FunctionResponse][content.part.function_response] + // for each function call in the next turn. Based on the function responses, + // Model will generate the final response back to the user. + // Maximum 64 function declarations can be provided. repeated FunctionDeclaration function_declarations = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Retrieval tool type. + // System will always execute the provided retrieval tool(s) to get external + // knowledge to answer the prompt. Retrieval results are presented to the + // model for generation. + Retrieval retrieval = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. GoogleSearchRetrieval tool type. + // Specialized retrieval tool that is powered by Google search. + GoogleSearchRetrieval google_search_retrieval = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Structured representation of a function declaration as defined by the @@ -54,8 +68,8 @@ message Tool { message FunctionDeclaration { // Required. The name of the function to call. // Must start with a letter or an underscore. - // Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum - // length of 64. + // Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a + // maximum length of 64. string name = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Description and purpose of the function. @@ -66,8 +80,10 @@ message FunctionDeclaration { // format. Reflects the Open API 3.03 Parameter Object. string Key: the name // of the parameter. Parameter names are case sensitive. Schema Value: the // Schema defining the type used for the parameter. For function with no - // parameters, this can be left unset. Example with 1 required and 1 optional - // parameter: type: OBJECT properties: + // parameters, this can be left unset. Parameter names must start with a + // letter or an underscore and must only contain chars a-z, A-Z, 0-9, or + // underscores with a maximum length of 64. Example with 1 required and 1 + // optional parameter: type: OBJECT properties: // param1: // type: STRING // param2: @@ -102,3 +118,68 @@ message FunctionResponse { // Required. The function response in JSON object format. google.protobuf.Struct response = 2 [(google.api.field_behavior) = REQUIRED]; } + +// Defines a retrieval tool that model can call to access external knowledge. +message Retrieval { + // The source of the retrieval. + oneof source { + // Set to use data source powered by Vertex AI Search. + VertexAISearch vertex_ai_search = 2; + } + + // Optional. Disable using the result from this tool in detecting grounding + // attribution. This does not affect how the result is given to the model for + // generation. + bool disable_attribution = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Retrieve from Vertex AI Search datastore for grounding. +// See https://cloud.google.com/vertex-ai-search-and-conversation +message VertexAISearch { + // Required. Fully-qualified Vertex AI Search's datastore resource ID. + // Format: + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}` + string datastore = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Tool to retrieve public web data for grounding, powered by Google. +message GoogleSearchRetrieval {} + +// Tool config. This config is shared for all tools provided in the request. +message ToolConfig { + // Optional. Function calling config. + FunctionCallingConfig function_calling_config = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Function calling config. +message FunctionCallingConfig { + // Function calling mode. + enum Mode { + // Unspecified function calling mode. This value should not be used. + MODE_UNSPECIFIED = 0; + + // Default model behavior, model decides to predict either a function call + // or a natural language repspose. + AUTO = 1; + + // Model is constrained to always predicting a function call only. + // If "allowed_function_names" are set, the predicted function call will be + // limited to any one of "allowed_function_names", else the predicted + // function call will be any one of the provided "function_declarations". + ANY = 2; + + // Model will not predict any function call. Model behavior is same as when + // not passing any function declarations. + NONE = 3; + } + + // Optional. Function calling mode. + Mode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Function names to call. Only set when the Mode is ANY. Function + // names should match [FunctionDeclaration.name]. With mode set to ANY, model + // will predict a function call from the set of function names provided. + repeated string allowed_function_names = 2 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/training_pipeline.proto b/third_party/googleapis/google/cloud/aiplatform/v1/training_pipeline.proto index 11c8f28fc..d8a1b2c9d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/training_pipeline.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/training_pipeline.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/tuning_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1/tuning_job.proto new file mode 100644 index 000000000..803df1820 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1/tuning_job.proto @@ -0,0 +1,286 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/content.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/job_state.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "TuningJobProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents a TuningJob that runs with Google owned models. +message TuningJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TuningJob" + pattern: "projects/{project}/locations/{location}/tuningJobs/{tuning_job}" + plural: "tuningJobs" + singular: "tuningJob" + }; + + oneof source_model { + // The base model that is being tuned, e.g., "gemini-1.0-pro-002". + string base_model = 4; + } + + oneof tuning_spec { + // Tuning Spec for Supervised Fine Tuning. + SupervisedTuningSpec supervised_tuning_spec = 5; + } + + // Output only. Identifier. Resource name of a TuningJob. Format: + // `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. The display name of the + // [TunedModel][google.cloud.aiplatform.v1.Model]. The name can be up to 128 + // characters long and can consist of any UTF-8 characters. + string tuned_model_display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The description of the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The detailed state of the job. + JobState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] for the first time + // entered the `JOB_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TuningJob entered any of the following + // [JobStates][google.cloud.aiplatform.v1.JobState]: `JOB_STATE_SUCCEEDED`, + // `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`, `JOB_STATE_EXPIRED`. + google.protobuf.Timestamp end_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] was most recently + // updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when job's state is `JOB_STATE_FAILED` or + // `JOB_STATE_CANCELLED`. + google.rpc.Status error = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The labels with user-defined metadata to organize + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] and generated resources + // such as [Model][google.cloud.aiplatform.v1.Model] and + // [Endpoint][google.cloud.aiplatform.v1.Endpoint]. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + map labels = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The Experiment associated with this + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + string experiment = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + } + ]; + + // Output only. The tuned model resources assiociated with this + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + TunedModel tuned_model = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The tuning data statistics associated with this + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + TuningDataStats tuning_data_stats = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Customer-managed encryption key options for a TuningJob. If this is set, + // then all resources created by the TuningJob will be encrypted with the + // provided encryption key. + EncryptionSpec encryption_spec = 16; +} + +// The Model Registry Model and Online Prediction Endpoint assiociated with +// this [TuningJob][google.cloud.aiplatform.v1.TuningJob]. +message TunedModel { + // Output only. The resource name of the TunedModel. Format: + // `projects/{project}/locations/{location}/models/{model}`. + string model = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Output only. A resource name of an Endpoint. Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}`. + string endpoint = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; +} + +// Dataset distribution for Supervised Tuning. +message SupervisedTuningDatasetDistribution { + // Dataset bucket used to create a histogram for the distribution given a + // population of values. + message DatasetBucket { + // Output only. Number of values in the bucket. + double count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Left bound of the bucket. + double left = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Right bound of the bucket. + double right = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Sum of a given population of values. + int64 sum = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum of the population values. + double min = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum of the population values. + double max = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The arithmetic mean of the values in the population. + double mean = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The median of the values in the population. + double median = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The 5th percentile of the values in the population. + double p5 = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The 95th percentile of the values in the population. + double p95 = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Defines the histogram bucket. + repeated DatasetBucket buckets = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tuning data statistics for Supervised Tuning. +message SupervisedTuningDataStats { + // Output only. Number of examples in the tuning dataset. + int64 tuning_dataset_example_count = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of tuning characters in the tuning dataset. + int64 total_tuning_character_count = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of billable characters in the tuning dataset. + int64 total_billable_character_count = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of tuning steps for this Tuning Job. + int64 tuning_step_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the user input tokens. + SupervisedTuningDatasetDistribution user_input_token_distribution = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the user output tokens. + SupervisedTuningDatasetDistribution user_output_token_distribution = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the messages per example. + SupervisedTuningDatasetDistribution user_message_per_example_distribution = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Sample user messages in the training dataset uri. + repeated Content user_dataset_examples = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The tuning data statistic values for +// [TuningJob][google.cloud.aiplatform.v1.TuningJob]. +message TuningDataStats { + oneof tuning_data_stats { + // The SFT Tuning data stats. + SupervisedTuningDataStats supervised_tuning_data_stats = 1; + } +} + +// Hyperparameters for SFT. +message SupervisedHyperParameters { + // Supported adapter sizes for tuning. + enum AdapterSize { + // Adapter size is unspecified. + ADAPTER_SIZE_UNSPECIFIED = 0; + + // Adapter size 1. + ADAPTER_SIZE_ONE = 1; + + // Adapter size 4. + ADAPTER_SIZE_FOUR = 2; + + // Adapter size 8. + ADAPTER_SIZE_EIGHT = 3; + + // Adapter size 16. + ADAPTER_SIZE_SIXTEEN = 4; + } + + // Optional. Number of complete passes the model makes over the entire + // training dataset during training. + int64 epoch_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Multiplier for adjusting the default learning rate. + double learning_rate_multiplier = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Adapter size for tuning. + AdapterSize adapter_size = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Tuning Spec for Supervised Tuning. +message SupervisedTuningSpec { + // Required. Cloud Storage path to file containing training dataset for + // tuning. The dataset must be formatted as a JSONL file. + string training_dataset_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Cloud Storage path to file containing validation dataset for + // tuning. The dataset must be formatted as a JSONL file. + string validation_dataset_uri = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hyperparameters for SFT. + SupervisedHyperParameters hyper_parameters = 3 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/types.proto b/third_party/googleapis/google/cloud/aiplatform/v1/types.proto index 16ab0139d..9bacf67f1 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/types.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/unmanaged_container_model.proto b/third_party/googleapis/google/cloud/aiplatform/v1/unmanaged_container_model.proto index 1482385bc..18951652e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/unmanaged_container_model.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/unmanaged_container_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/user_action_reference.proto b/third_party/googleapis/google/cloud/aiplatform/v1/user_action_reference.proto index f40e89178..03b7ca3c5 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/user_action_reference.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/user_action_reference.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/value.proto b/third_party/googleapis/google/cloud/aiplatform/v1/value.proto index d60870f3f..6caef88aa 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/value.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1/vizier_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1/vizier_service.proto index 60465ee96..7407c0956 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1/vizier_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1/vizier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/aiplatform/v1beta1/BUILD.bazel index bce74322b..9349147fe 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/BUILD.bazel @@ -26,9 +26,10 @@ proto_library( "annotation_spec.proto", "artifact.proto", "batch_prediction_job.proto", + "cached_content.proto", "completion_stats.proto", - "context.proto", "content.proto", + "context.proto", "custom_job.proto", "data_item.proto", "data_labeling_job.proto", @@ -45,24 +46,30 @@ proto_library( "entity_type.proto", "env_var.proto", "evaluated_annotation.proto", + "evaluation_service.proto", "event.proto", "execution.proto", "explanation.proto", "explanation_metadata.proto", + "extension.proto", + "extension_execution_service.proto", + "extension_registry_service.proto", "feature.proto", - "feature_monitoring_stats.proto", - "feature_selector.proto", - "featurestore.proto", "feature_group.proto", - "feature_view.proto", + "feature_monitoring_stats.proto", "feature_online_store.proto", "feature_online_store_admin_service.proto", + "feature_online_store_service.proto", "feature_registry_service.proto", + "feature_selector.proto", + "feature_view.proto", "feature_view_sync.proto", - "feature_online_store_service.proto", + "featurestore.proto", "featurestore_monitoring.proto", "featurestore_online_service.proto", "featurestore_service.proto", + "gen_ai_cache_service.proto", + "genai_tuning_service.proto", "hyperparameter_tuning_job.proto", "index.proto", "index_endpoint.proto", @@ -86,9 +93,22 @@ proto_library( "model_evaluation.proto", "model_evaluation_slice.proto", "model_garden_service.proto", + "model_monitor.proto", "model_monitoring.proto", + "model_monitoring_alert.proto", + "model_monitoring_job.proto", + "model_monitoring_service.proto", + "model_monitoring_spec.proto", + "model_monitoring_stats.proto", "model_service.proto", "nas_job.proto", + "network_spec.proto", + "notebook_euc_config.proto", + "notebook_execution_job.proto", + "notebook_idle_shutdown_config.proto", + "notebook_runtime.proto", + "notebook_runtime_template_ref.proto", + "notebook_service.proto", "openapi.proto", "operation.proto", "persistent_resource.proto", @@ -99,6 +119,9 @@ proto_library( "pipeline_state.proto", "prediction_service.proto", "publisher_model.proto", + "reasoning_engine.proto", + "reasoning_engine_execution_service.proto", + "reasoning_engine_service.proto", "saved_query.proto", "schedule.proto", "schedule_service.proto", @@ -114,10 +137,14 @@ proto_library( "tensorboard_time_series.proto", "tool.proto", "training_pipeline.proto", + "tuning_job.proto", "types.proto", "unmanaged_container_model.proto", "user_action_reference.proto", "value.proto", + "vertex_rag_data.proto", + "vertex_rag_data_service.proto", + "vertex_rag_service.proto", "vizier_service.proto", ], deps = [ @@ -128,9 +155,9 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", + "//google/type:date_proto", "//google/type:interval_proto", "//google/type:money_proto", - "//google/type:date_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -192,7 +219,7 @@ java_gapic_library( srcs = [":aiplatform_proto_with_info"], gapic_yaml = None, grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", test_deps = [ ":aiplatform_java_grpc", @@ -212,20 +239,39 @@ java_gapic_test( name = "aiplatform_java_gapic_test_suite", test_classes = [ "com.google.cloud.aiplatform.v1beta1.DatasetServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.DeploymentResourcePoolServiceClientTest", "com.google.cloud.aiplatform.v1beta1.EndpointServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.EvaluationServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ExtensionExecutionServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ExtensionRegistryServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.FeatureOnlineStoreServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.FeatureRegistryServiceClientTest", "com.google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingServiceClientTest", "com.google.cloud.aiplatform.v1beta1.FeaturestoreServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.GenAiCacheServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.GenAiTuningServiceClientTest", "com.google.cloud.aiplatform.v1beta1.IndexEndpointServiceClientTest", "com.google.cloud.aiplatform.v1beta1.IndexServiceClientTest", "com.google.cloud.aiplatform.v1beta1.JobServiceClientTest", "com.google.cloud.aiplatform.v1beta1.LlmUtilityServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.MatchServiceClientTest", "com.google.cloud.aiplatform.v1beta1.MetadataServiceClientTest", "com.google.cloud.aiplatform.v1beta1.MigrationServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ModelGardenServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ModelMonitoringServiceClientTest", "com.google.cloud.aiplatform.v1beta1.ModelServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.NotebookServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.PersistentResourceServiceClientTest", "com.google.cloud.aiplatform.v1beta1.PipelineServiceClientTest", "com.google.cloud.aiplatform.v1beta1.PredictionServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ReasoningEngineExecutionServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ReasoningEngineServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.ScheduleServiceClientTest", "com.google.cloud.aiplatform.v1beta1.SpecialistPoolServiceClientTest", "com.google.cloud.aiplatform.v1beta1.TensorboardServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.VertexRagDataServiceClientTest", + "com.google.cloud.aiplatform.v1beta1.VertexRagServiceClientTest", "com.google.cloud.aiplatform.v1beta1.VizierServiceClientTest", ], runtime_deps = [":aiplatform_java_gapic_test"], @@ -264,9 +310,9 @@ go_proto_library( "//google/api:httpbody_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", + "//google/type:date_go_proto", "//google/type:interval_go_proto", "//google/type:money_go_proto", - "//google/type:date_go_proto", ], ) @@ -277,7 +323,7 @@ go_gapic_library( importpath = "cloud.google.com/go/aiplatform/apiv1beta1;aiplatform", metadata = True, release_level = "beta", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", transport = "grpc+rest", deps = [ @@ -326,7 +372,7 @@ py_gapic_library( name = "aiplatform_py_gapic", srcs = [":aiplatform_proto"], grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", transport = "grpc+rest", deps = [ @@ -371,7 +417,7 @@ php_gapic_library( name = "aiplatform_php_gapic", srcs = [":aiplatform_proto_with_info"], grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", transport = "grpc+rest", deps = [":aiplatform_php_proto"], @@ -402,7 +448,7 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "aiplatform_grpc_service_config.json", package = "google.cloud.aiplatform.v1beta1", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", transport = "grpc+rest", deps = [], @@ -443,8 +489,9 @@ ruby_cloud_gapic_library( srcs = [":aiplatform_proto_with_info"], extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-aiplatform-v1beta1"], grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":aiplatform_ruby_grpc", ":aiplatform_ruby_proto", @@ -474,6 +521,7 @@ load( csharp_proto_library( name = "aiplatform_csharp_proto", + extra_opts = [], deps = [":aiplatform_proto"], ) @@ -488,8 +536,9 @@ csharp_gapic_library( srcs = [":aiplatform_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "aiplatform_grpc_service_config.json", - rest_numeric_enums = False, + rest_numeric_enums = True, service_yaml = "aiplatform_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":aiplatform_csharp_grpc", ":aiplatform_csharp_proto", @@ -509,4 +558,21 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "aiplatform_cc_proto", + deps = [":aiplatform_proto"], +) + +cc_grpc_library( + name = "aiplatform_cc_grpc", + srcs = [":aiplatform_proto"], + grpc_only = True, + deps = [":aiplatform_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/accelerator_type.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/accelerator_type.proto index d1e55286e..c617d9491 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/accelerator_type.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/accelerator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json b/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json index 680d2e893..81e1c4cf7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json @@ -46,7 +46,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.EndpointService", "method": "CreateEndpoint" @@ -79,7 +79,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.IndexService", "method": "CreateIndex" @@ -104,7 +104,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.IndexEndpointService", "method": "CreateIndexEndpoint" @@ -137,7 +137,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.JobService", "method": "CreateCustomJob" @@ -250,7 +250,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.JobService", "method": "CreateModelDeploymentMonitoringJob" @@ -259,7 +259,7 @@ "timeout": "60s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.MetadataService", "method": "AddContextArtifactsAndExecutions" @@ -364,7 +364,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.ModelService", "method": "UploadModel" @@ -417,7 +417,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.PipelineService", "method": "CreateTrainingPipeline" @@ -442,7 +442,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.PredictionService", "method": "Predict" @@ -455,7 +455,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.SpecialistPoolService", "method": "CreateSpecialistPool" @@ -480,7 +480,7 @@ "timeout": "5s" }, { - "name":[ + "name": [ { "service": "google.cloud.aiplatform.v1beta1.VizierService", "method": "CreateStudy" @@ -694,6 +694,36 @@ } ], "timeout": "5s" + }, + { + "name": [ + { + "service": "google.cloud.aiplatform.v1beta1.EvaluationService", + "method": "EvaluateInstances" + } + ], + "timeout": "60s" + }, + { + "name": [ + { + "service": "google.cloud.aiplatform.v1beta1.EvaluationTaskService", + "method": "CreateEvaluationTask" + }, + { + "service": "google.cloud.aiplatform.v1beta1.EvaluationTaskService", + "method": "GetEvaluationTask" + }, + { + "service": "google.cloud.aiplatform.v1beta1.EvaluationTaskService", + "method": "ListEvaluationTasks" + }, + { + "service": "google.cloud.aiplatform.v1beta1.EvaluationTaskService", + "method": "DeleteEvaluationTask" + } + ], + "timeout": "5s" } ] } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml b/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml index 17bfaa07e..a51d59b03 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml @@ -7,11 +7,16 @@ apis: - name: google.cloud.aiplatform.v1beta1.DatasetService - name: google.cloud.aiplatform.v1beta1.DeploymentResourcePoolService - name: google.cloud.aiplatform.v1beta1.EndpointService +- name: google.cloud.aiplatform.v1beta1.EvaluationService +- name: google.cloud.aiplatform.v1beta1.ExtensionExecutionService +- name: google.cloud.aiplatform.v1beta1.ExtensionRegistryService - name: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService - name: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService - name: google.cloud.aiplatform.v1beta1.FeatureRegistryService - name: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService - name: google.cloud.aiplatform.v1beta1.FeaturestoreService +- name: google.cloud.aiplatform.v1beta1.GenAiCacheService +- name: google.cloud.aiplatform.v1beta1.GenAiTuningService - name: google.cloud.aiplatform.v1beta1.IndexEndpointService - name: google.cloud.aiplatform.v1beta1.IndexService - name: google.cloud.aiplatform.v1beta1.JobService @@ -20,19 +25,26 @@ apis: - name: google.cloud.aiplatform.v1beta1.MetadataService - name: google.cloud.aiplatform.v1beta1.MigrationService - name: google.cloud.aiplatform.v1beta1.ModelGardenService +- name: google.cloud.aiplatform.v1beta1.ModelMonitoringService - name: google.cloud.aiplatform.v1beta1.ModelService +- name: google.cloud.aiplatform.v1beta1.NotebookService - name: google.cloud.aiplatform.v1beta1.PersistentResourceService - name: google.cloud.aiplatform.v1beta1.PipelineService - name: google.cloud.aiplatform.v1beta1.PredictionService +- name: google.cloud.aiplatform.v1beta1.ReasoningEngineExecutionService +- name: google.cloud.aiplatform.v1beta1.ReasoningEngineService - name: google.cloud.aiplatform.v1beta1.ScheduleService - name: google.cloud.aiplatform.v1beta1.SpecialistPoolService - name: google.cloud.aiplatform.v1beta1.TensorboardService +- name: google.cloud.aiplatform.v1beta1.VertexRagDataService +- name: google.cloud.aiplatform.v1beta1.VertexRagService - name: google.cloud.aiplatform.v1beta1.VizierService - name: google.cloud.location.Locations - name: google.iam.v1.IAMPolicy - name: google.longrunning.Operations types: +- name: google.cloud.aiplatform.v1beta1.AssignNotebookRuntimeOperationMetadata - name: google.cloud.aiplatform.v1beta1.BatchCancelPipelineJobsResponse - name: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesOperationMetadata - name: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesResponse @@ -58,6 +70,9 @@ types: - name: google.cloud.aiplatform.v1beta1.CreateIndexEndpointOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateIndexOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateMetadataStoreOperationMetadata +- name: google.cloud.aiplatform.v1beta1.CreateModelMonitorOperationMetadata +- name: google.cloud.aiplatform.v1beta1.CreateNotebookExecutionJobOperationMetadata +- name: google.cloud.aiplatform.v1beta1.CreateNotebookRuntimeTemplateOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreatePersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateRegistryFeatureOperationMetadata - name: google.cloud.aiplatform.v1beta1.CreateSpecialistPoolOperationMetadata @@ -82,6 +97,7 @@ types: - name: google.cloud.aiplatform.v1beta1.FeatureView - name: google.cloud.aiplatform.v1beta1.ImportDataOperationMetadata - name: google.cloud.aiplatform.v1beta1.ImportDataResponse +- name: google.cloud.aiplatform.v1beta1.ImportExtensionOperationMetadata - name: google.cloud.aiplatform.v1beta1.ImportFeatureValuesOperationMetadata - name: google.cloud.aiplatform.v1beta1.ImportFeatureValuesResponse - name: google.cloud.aiplatform.v1beta1.MutateDeployedIndexOperationMetadata @@ -94,8 +110,10 @@ types: - name: google.cloud.aiplatform.v1beta1.PurgeContextsResponse - name: google.cloud.aiplatform.v1beta1.PurgeExecutionsMetadata - name: google.cloud.aiplatform.v1beta1.PurgeExecutionsResponse +- name: google.cloud.aiplatform.v1beta1.RebootPersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1beta1.RestoreDatasetVersionOperationMetadata - name: google.cloud.aiplatform.v1beta1.SpecialistPool +- name: google.cloud.aiplatform.v1beta1.StartNotebookRuntimeOperationMetadata - name: google.cloud.aiplatform.v1beta1.SuggestTrialsMetadata - name: google.cloud.aiplatform.v1beta1.SuggestTrialsResponse - name: google.cloud.aiplatform.v1beta1.UndeployIndexOperationMetadata @@ -112,9 +130,11 @@ types: - name: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateIndexOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateModelDeploymentMonitoringJobOperationMetadata +- name: google.cloud.aiplatform.v1beta1.UpdateModelMonitorOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdatePersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateSpecialistPoolOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateTensorboardOperationMetadata +- name: google.cloud.aiplatform.v1beta1.UpgradeNotebookRuntimeOperationMetadata - name: google.cloud.aiplatform.v1beta1.UploadModelOperationMetadata - name: google.cloud.aiplatform.v1beta1.UploadModelResponse - name: google.cloud.aiplatform.v1beta1.schema.ImageDataItem @@ -174,12 +194,16 @@ http: - post: '/v1beta1/{resource=projects/*/locations/*/endpoints/*}:getIamPolicy' - post: '/v1beta1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy' - post: '/v1beta1/{resource=projects/*/locations/*/publishers/*/models/*}:getIamPolicy' + - post: '/v1beta1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy' + - post: '/v1beta1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/models/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/endpoints/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/publishers/*/models/*}:getIamPolicy' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' body: '*' @@ -192,6 +216,10 @@ http: body: '*' - post: '/v1beta1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy' body: '*' + - post: '/v1beta1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy' + body: '*' + - post: '/v1beta1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy' + body: '*' - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' body: '*' - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:setIamPolicy' @@ -202,6 +230,10 @@ http: body: '*' - post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy' body: '*' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy' + body: '*' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' body: '*' @@ -210,14 +242,20 @@ http: - post: '/v1beta1/{resource=projects/*/locations/*/models/*}:testIamPermissions' - post: '/v1beta1/{resource=projects/*/locations/*/endpoints/*}:testIamPermissions' - post: '/v1beta1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions' + - post: '/v1beta1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions' + - post: '/v1beta1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/models/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/endpoints/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions' + - post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions' - selector: google.longrunning.Operations.CancelOperation post: '/ui/{name=projects/*/locations/*/operations/*}:cancel' additional_bindings: + - post: '/ui/{name=projects/*/locations/*/agents/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/apps/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' @@ -234,6 +272,7 @@ http: - post: '/ui/{name=projects/*/locations/*/customJobs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/tuningJobs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/indexes/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/indexEndpoints/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/metadataStores/*/operations/*}:cancel' @@ -245,6 +284,10 @@ http: - post: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/models/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:cancel' + - post: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/studies/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:cancel' @@ -256,6 +299,8 @@ http: - post: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}:cancel' - post: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/agents/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/apps/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel' @@ -267,7 +312,6 @@ http: - post: '/v1beta1/{name=projects/*/locations/*/exampleStores/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/extensionControllers/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/extensions/*/operations/*}:cancel' - - post: '/v1beta1/{name=projects/*/locations/*/extensions/*/deployments/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}:cancel' @@ -285,7 +329,12 @@ http: - post: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/persistentResources/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/operations/*}:cancel' + - post: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:cancel' - post: '/v1beta1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:cancel' @@ -300,6 +349,8 @@ http: - selector: google.longrunning.Operations.DeleteOperation delete: '/ui/{name=projects/*/locations/*/operations/*}' additional_bindings: + - delete: '/ui/{name=projects/*/locations/*/agents/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/apps/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' @@ -327,6 +378,10 @@ http: - delete: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/models/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' + - delete: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/studies/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}' @@ -342,6 +397,8 @@ http: - delete: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}' - delete: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/agents/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/apps/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' @@ -359,7 +416,6 @@ http: - delete: '/v1beta1/{name=projects/*/locations/*/exampleStores/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/extensionControllers/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/extensions/*/operations/*}' - - delete: '/v1beta1/{name=projects/*/locations/*/extensions/*/deployments/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/indexes/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/indexEndpoints/*/operations/*}' @@ -372,7 +428,12 @@ http: - delete: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/persistentResources/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/operations/*}' + - delete: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/reasoningEngines/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/solvers/*/operations/*}' - delete: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}' @@ -392,6 +453,8 @@ http: - selector: google.longrunning.Operations.GetOperation get: '/ui/{name=projects/*/locations/*/operations/*}' additional_bindings: + - get: '/ui/{name=projects/*/locations/*/agents/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/apps/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' @@ -409,6 +472,7 @@ http: - get: '/ui/{name=projects/*/locations/*/customJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/tuningJobs/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/indexes/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/indexEndpoints/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/metadataStores/*/operations/*}' @@ -420,6 +484,10 @@ http: - get: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/models/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' + - get: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/studies/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}' @@ -435,6 +503,8 @@ http: - get: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}' - get: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/agents/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/apps/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}' @@ -447,7 +517,6 @@ http: - get: '/v1beta1/{name=projects/*/locations/*/exampleStores/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/extensionControllers/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/extensions/*/operations/*}' - - get: '/v1beta1/{name=projects/*/locations/*/extensions/*/deployments/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}' @@ -465,7 +534,12 @@ http: - get: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/persistentResources/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/operations/*}' + - get: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/reasoningEngines/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/solvers/*/operations/*}' - get: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}' @@ -485,6 +559,8 @@ http: - selector: google.longrunning.Operations.ListOperations get: '/ui/{name=projects/*/locations/*}/operations' additional_bindings: + - get: '/ui/{name=projects/*/locations/*/agents/*}/operations' + - get: '/ui/{name=projects/*/locations/*/apps/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*}/operations' - get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' @@ -501,6 +577,7 @@ http: - get: '/ui/{name=projects/*/locations/*/customJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*}/operations' + - get: '/ui/{name=projects/*/locations/*/tuningJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/indexes/*}/operations' - get: '/ui/{name=projects/*/locations/*/indexEndpoints/*}/operations' - get: '/ui/{name=projects/*/locations/*/metadataStores/*}/operations' @@ -512,9 +589,13 @@ http: - get: '/ui/{name=projects/*/locations/*/migratableResources/*}/operations' - get: '/ui/{name=projects/*/locations/*/models/*}/operations' - get: '/ui/{name=projects/*/locations/*/models/*/evaluations/*}/operations' + - get: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*}/operations' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimes/*}/operations' + - get: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*}/operations' - get: '/ui/{name=projects/*/locations/*/studies/*}/operations' - get: '/ui/{name=projects/*/locations/*/studies/*/trials/*}/operations' - get: '/ui/{name=projects/*/locations/*/trainingPipelines/*}/operations' + - get: '/ui/{name=projects/*/locations/*/persistentResources/*}/operations' - get: '/ui/{name=projects/*/locations/*/pipelineJobs/*}/operations' - get: '/ui/{name=projects/*/locations/*/schedules/*}/operations' - get: '/ui/{name=projects/*/locations/*/specialistPools/*}/operations' @@ -527,6 +608,8 @@ http: - get: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}:wait' - get: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}:wait' - get: '/v1beta1/{name=projects/*/locations/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/agents/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/apps/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations' @@ -539,7 +622,6 @@ http: - get: '/v1beta1/{name=projects/*/locations/*/exampleStores/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/extensionControllers/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/extensions/*}/operations' - - get: '/v1beta1/{name=projects/*/locations/*/extensions/*/deployments/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}/operations' @@ -557,7 +639,12 @@ http: - get: '/v1beta1/{name=projects/*/locations/*/migratableResources/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/models/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/persistentResources/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*}/operations' + - get: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/solvers/*}/operations' - get: '/v1beta1/{name=projects/*/locations/*/studies/*}/operations' @@ -577,6 +664,8 @@ http: - selector: google.longrunning.Operations.WaitOperation post: '/ui/{name=projects/*/locations/*/operations/*}:wait' additional_bindings: + - post: '/ui/{name=projects/*/locations/*/agents/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/apps/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' @@ -593,6 +682,7 @@ http: - post: '/ui/{name=projects/*/locations/*/customJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/dataLabelingJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/hyperparameterTuningJobs/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/tuningJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/indexes/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/indexEndpoints/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/metadataStores/*/operations/*}:wait' @@ -604,9 +694,13 @@ http: - post: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/models/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/studies/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:wait' + - post: '/ui/{name=projects/*/locations/*/persistentResources/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/schedules/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/specialistPools/*/operations/*}:wait' @@ -619,6 +713,8 @@ http: - post: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}:wait' - post: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/agents/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/apps/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait' @@ -631,7 +727,6 @@ http: - post: '/v1beta1/{name=projects/*/locations/*/exampleStores/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/extensionControllers/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/extensions/*/operations/*}:wait' - - post: '/v1beta1/{name=projects/*/locations/*/extensions/*/deployments/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}:wait' @@ -649,7 +744,12 @@ http: - post: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/persistentResources/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/operations/*}:wait' + - post: '/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/reasoningEngines/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}:wait' - post: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:wait' @@ -680,15 +780,27 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService.*' + - selector: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateInstances + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.aiplatform.v1beta1.ExtensionExecutionService.ExecuteExtension + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.aiplatform.v1beta1.ExtensionExecutionService.QueryExtension oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues + - selector: 'google.cloud.aiplatform.v1beta1.ExtensionRegistryService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities + - selector: 'google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform @@ -704,6 +816,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.GenAiCacheService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.GenAiTuningService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1beta1.IndexEndpointService.*' oauth: canonical_scopes: |- @@ -753,10 +873,18 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.ModelMonitoringService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1beta1.ModelService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.NotebookService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1beta1.PersistentResourceService.*' oauth: canonical_scopes: |- @@ -766,6 +894,15 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1beta1.PredictionService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.aiplatform.v1beta1.ReasoningEngineExecutionService.QueryReasoningEngine + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.ReasoningEngineService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform @@ -781,6 +918,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.aiplatform.v1beta1.VertexRagDataService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.aiplatform.v1beta1.VertexRagService.RetrieveContexts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1beta1.VizierService.*' oauth: canonical_scopes: |- @@ -803,6 +948,7 @@ authentication: https://www.googleapis.com/auth/cloud-platform publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1130925&template=1637248 documentation_uri: https://cloud.google.com/ai-platform/docs github_label: 'api: aiplatform' organization: CLOUD diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation.proto index a7e494bf1..fc6b09b1b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation_spec.proto index 3a25408c4..ad1e26574 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation_spec.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/artifact.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/artifact.proto index 445dfe85b..d32d601d2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/artifact.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto index d6797d82d..0e7d1edf8 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/cached_content.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/cached_content.proto new file mode 100644 index 000000000..b57cdea1a --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/cached_content.proto @@ -0,0 +1,108 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/content.proto"; +import "google/cloud/aiplatform/v1beta1/tool.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "CachedContentProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A resource used in LLM queries for users to explicitly specify what to cache +// and how to cache. +message CachedContent { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/CachedContent" + pattern: "projects/{project}/locations/{location}/cachedContents/{cached_content}" + plural: "cachedContents" + singular: "cachedContent" + }; + + // Expiration time of the cached content. + oneof expiration { + // Timestamp of when this resource is considered expired. + // This is *always* provided on output, regardless of what was sent + // on input. + google.protobuf.Timestamp expire_time = 9; + + // Input only. The TTL for this resource. The expiration time is computed: + // now + TTL. + google.protobuf.Duration ttl = 10 + [(google.api.field_behavior) = INPUT_ONLY]; + } + + // Immutable. Identifier. The server-generated resource name of the cached + // content Format: + // projects/{project}/locations/{location}/cachedContents/{cached_content} + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. The name of the publisher model to use for cached content. + // Format: + // projects/{project}/locations/{location}/publishers/{publisher}/models/{model} + string model = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Input only. Immutable. Developer set system instruction. + // Currently, text only + Content system_instruction = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Optional. Input only. Immutable. The content to cache + repeated Content contents = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Optional. Input only. Immutable. A list of `Tools` the model may use to + // generate the next response + repeated Tool tools = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Optional. Input only. Immutable. Tool config. This config is shared for all + // tools + ToolConfig tool_config = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Output only. Creatation time of the cache entry. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the cache entry was last updated in UTC time. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/completion_stats.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/completion_stats.proto index e97245e30..7c85e7a91 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/completion_stats.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/completion_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/content.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/content.proto index b5df1dbaa..f139feb2b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/content.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/content.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; +import "google/cloud/aiplatform/v1beta1/openapi.proto"; import "google/cloud/aiplatform/v1beta1/tool.proto"; import "google/protobuf/duration.proto"; import "google/type/date.proto"; @@ -102,14 +103,15 @@ message Part { } } -// Raw media bytes. +// Content blob. // -// Text should not be sent as raw bytes, use the 'text' field. +// It's preferred to send as [text][google.cloud.aiplatform.v1beta1.Part.text] +// directly rather than raw bytes. message Blob { // Required. The IANA standard MIME type of the source data. string mime_type = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Raw bytes for media formats. + // Required. Raw bytes. bytes data = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -152,6 +154,30 @@ message GenerationConfig { // Optional. Stop sequences. repeated string stop_sequences = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Positive penalties. + optional float presence_penalty = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Frequency penalties. + optional float frequency_penalty = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output response mimetype of the generated candidate text. + // Supported mimetype: + // - `text/plain`: (default) Text output. + // - `application/json`: JSON response in the candidates. + // The model needs to be prompted to output the appropriate response type, + // otherwise the behavior is undefined. + // This is a preview feature. + string response_mime_type = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `Schema` object allows the definition of input and output + // data types. These types can be objects, but also primitives and arrays. + // Represents a select subset of an [OpenAPI 3.0 schema + // object](https://spec.openapis.org/oas/v3.0.3#schema). + // If set, a compatible response_mime_type must also be set. + // Compatible mimetypes: + // `application/json`: Schema for JSON response. + optional Schema response_schema = 16 [(google.api.field_behavior) = OPTIONAL]; } // Safety settings. @@ -174,11 +200,27 @@ message SafetySetting { BLOCK_NONE = 4; } + // Probability vs severity. + enum 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; + } + // Required. Harm category. HarmCategory category = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The harm block threshold. HarmBlockThreshold threshold = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specify if the threshold is used for probability or severity + // score. If not specified, the threshold is used for probability score. + HarmBlockMethod method = 4 [(google.api.field_behavior) = OPTIONAL]; } // Safety rating corresponding to the generated content. @@ -201,12 +243,39 @@ message SafetyRating { HIGH = 4; } + // Harm severity levels. + enum HarmSeverity { + // Harm severity unspecified. + HARM_SEVERITY_UNSPECIFIED = 0; + + // Negligible level of harm severity. + HARM_SEVERITY_NEGLIGIBLE = 1; + + // Low level of harm severity. + HARM_SEVERITY_LOW = 2; + + // Medium level of harm severity. + HARM_SEVERITY_MEDIUM = 3; + + // High level of harm severity. + HARM_SEVERITY_HIGH = 4; + } + // Output only. Harm category. HarmCategory category = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Harm probability levels in the content. HarmProbability probability = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Harm probability score. + float probability_score = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Harm severity levels in the content. + HarmSeverity severity = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Harm severity score. + float severity_score = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Indicates whether the content was filtered out because of this // rating. bool blocked = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -265,6 +334,21 @@ message Candidate { // All other reasons that stopped the token generation OTHER = 5; + + // The token generation was stopped as the response was flagged for the + // terms which are included from the terminology blocklist. + BLOCKLIST = 6; + + // The token generation was stopped as the response was flagged for + // the prohibited contents. + PROHIBITED_CONTENT = 7; + + // The token generation was stopped as the response was flagged for + // Sensitive Personally Identifiable Information (SPII) contents. + SPII = 8; + + // The function call generated by the model is invalid. + MALFORMED_FUNCTION_CALL = 9; } // Output only. Index of the candidate. @@ -309,6 +393,56 @@ message Segment { // Output only. End index in the given Part, measured in bytes. Offset from // the start of the Part, exclusive, starting at zero. int32 end_index = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The text corresponding to the segment from the response. + string text = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Grounding chunk. +message GroundingChunk { + // Chunk from the web. + message Web { + // URI reference of the chunk. + optional string uri = 1; + + // Title of the chunk. + optional string title = 2; + } + + // Chunk from context retrieved by the retrieval tools. + message RetrievedContext { + // URI reference of the attribution. + optional string uri = 1; + + // Title of the attribution. + optional string title = 2; + } + + // Chunk type. + oneof chunk_type { + // Grounding chunk from the web. + Web web = 1; + + // Grounding chunk from context retrieved by the retrieval tools. + RetrievedContext retrieved_context = 2; + } +} + +// Grounding support. +message GroundingSupport { + // Segment of the content this support belongs to. + optional Segment segment = 1; + + // A list of indices (into 'grounding_chunk') specifying the + // citations associated with the claim. For instance [1,3,4] means + // that grounding_chunk[1], grounding_chunk[3], + // grounding_chunk[4] are the retrieved content attributed to the claim. + repeated int32 grounding_chunk_indices = 2; + + // Confidence score of the support references. Ranges from 0 to 1. 1 is the + // most confident. This list must have the same size as the + // grounding_chunk_indices. + repeated float confidence_scores = 3; } // Grounding attribution. @@ -322,9 +456,22 @@ message GroundingAttribution { string title = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Attribution from context retrieved by the retrieval tools. + message RetrievedContext { + // Output only. URI reference of the attribution. + string uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Title of the attribution. + string title = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + oneof reference { // Optional. Attribution from the web. Web web = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Attribution from context retrieved by the retrieval tools. + RetrievedContext retrieved_context = 4 + [(google.api.field_behavior) = OPTIONAL]; } // Output only. Segment of the content this attribution belongs to. @@ -344,7 +491,33 @@ message GroundingMetadata { repeated string web_search_queries = 1 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Google search entry for the following-up web searches. + optional SearchEntryPoint search_entry_point = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Queries executed by the retrieval tools. + repeated string retrieval_queries = 3 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of grounding attributions. repeated GroundingAttribution grounding_attributions = 2 [(google.api.field_behavior) = OPTIONAL]; + + // List of supporting references retrieved from specified grounding source. + repeated GroundingChunk grounding_chunks = 5; + + // Optional. List of grounding support. + repeated GroundingSupport grounding_supports = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Google search entry point. +message SearchEntryPoint { + // Optional. Web content snippet that can be embedded in a web page or an app + // webview. + string rendered_content = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Base64 encoded JSON representing array of tuple. + bytes sdk_blob = 2 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/context.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/context.proto index 19d59cdac..7cfff9ff8 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/context.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/context.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/custom_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/custom_job.proto index 5689a62ef..42474266b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/custom_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/custom_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_item.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_item.proto index 93e389938..50dbad174 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_item.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_item.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_labeling_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_labeling_job.proto index 42b597f31..208e8ee0f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_labeling_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/data_labeling_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset.proto index d60329b03..640759a4b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -111,6 +111,10 @@ message Dataset { // is // `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. string metadata_artifact = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Reference to the public base model last used by the dataset. Only + // set for prompt datasets. + string model_reference = 18 [(google.api.field_behavior) = OPTIONAL]; } // Describes the location from where we import data into a Dataset, together diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_service.proto index 81f763a62..76a46750d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -137,6 +137,16 @@ service DatasetService { }; } + // Updates a DatasetVersion. + rpc UpdateDatasetVersion(UpdateDatasetVersionRequest) + returns (DatasetVersion) { + option (google.api.http) = { + patch: "/v1beta1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" + body: "dataset_version" + }; + option (google.api.method_signature) = "dataset_version,update_mask"; + } + // Deletes a Dataset version. rpc DeleteDatasetVersion(DeleteDatasetVersionRequest) returns (google.longrunning.Operation) { @@ -291,6 +301,21 @@ message UpdateDatasetRequest { [(google.api.field_behavior) = REQUIRED]; } +// Request message for +// [DatasetService.UpdateDatasetVersion][google.cloud.aiplatform.v1beta1.DatasetService.UpdateDatasetVersion]. +message UpdateDatasetVersionRequest { + // Required. The DatasetVersion which replaces the resource on the server. + DatasetVersion dataset_version = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see + // [google.protobuf.FieldMask][google.protobuf.FieldMask]. Updatable fields: + // + // * `display_name` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + // Request message for // [DatasetService.ListDatasets][google.cloud.aiplatform.v1beta1.DatasetService.ListDatasets]. message ListDatasetsRequest { diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_version.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_version.proto index 7bac1f0de..11c2a6e5f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_version.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/dataset_version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; @@ -52,4 +53,19 @@ message DatasetVersion { // Output only. Name of the associated BigQuery dataset. string big_query_dataset_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The user-defined name of the DatasetVersion. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 7; + + // Required. Output only. Additional information about the DatasetVersion. + google.protobuf.Value metadata = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + + // Output only. Reference to the public base model last used by the dataset + // version. Only set for prompt dataset versions. + string model_reference = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto index 9dbeade28..f72380017 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto index 68fc304ba..0408fff91 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto index 5ab75189f..ecd781a21 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; import "google/protobuf/timestamp.proto"; @@ -47,6 +48,29 @@ message DeploymentResourcePool { DedicatedResources dedicated_resources = 2 [(google.api.field_behavior) = REQUIRED]; + // Customer-managed encryption key spec for a DeploymentResourcePool. If set, + // this DeploymentResourcePool will be secured by this key. Endpoints and the + // DeploymentResourcePool they deploy in need to have the same EncryptionSpec. + EncryptionSpec encryption_spec = 5; + + // The service account that the DeploymentResourcePool's container(s) run as. + // Specify the email address of the service account. If this service account + // is not specified, the container(s) run as a service account that doesn't + // have access to the resource project. + // + // Users deploying the Models to this DeploymentResourcePool must have the + // `iam.serviceAccounts.actAs` permission on this service account. + string service_account = 6; + + // If the DeploymentResourcePool is deployed with custom-trained Models or + // AutoML Tabular Models, the container(s) of the DeploymentResourcePool will + // send `stderr` and `stdout` streams to Cloud Logging by default. + // Please note that the logs incur cost, which are subject to [Cloud Logging + // pricing](https://cloud.google.com/logging/pricing). + // + // User can disable container logging by setting this flag to true. + bool disable_container_logging = 7; + // Output only. Timestamp when this DeploymentResourcePool was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto index 63b3c4386..86394bd95 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/deployment_resource_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import "google/cloud/aiplatform/v1beta1/endpoint.proto"; import "google/cloud/aiplatform/v1beta1/operation.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; @@ -74,6 +75,21 @@ service DeploymentResourcePoolService { option (google.api.method_signature) = "parent"; } + // Update a DeploymentResourcePool. + rpc UpdateDeploymentResourcePool(UpdateDeploymentResourcePoolRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{deployment_resource_pool.name=projects/*/locations/*/deploymentResourcePools/*}" + body: "deployment_resource_pool" + }; + option (google.api.method_signature) = + "deployment_resource_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "DeploymentResourcePool" + metadata_type: "UpdateDeploymentResourcePoolOperationMetadata" + }; + } + // Delete a DeploymentResourcePool. rpc DeleteDeploymentResourcePool(DeleteDeploymentResourcePoolRequest) returns (google.longrunning.Operation) { @@ -175,6 +191,22 @@ message ListDeploymentResourcePoolsResponse { string next_page_token = 2; } +// Request message for UpdateDeploymentResourcePool method. +message UpdateDeploymentResourcePoolRequest { + // Required. The DeploymentResourcePool to update. + // + // The DeploymentResourcePool's `name` field is used to identify the + // DeploymentResourcePool to update. + // Format: + // `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}` + DeploymentResourcePool deployment_resource_pool = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + // Runtime operation information for UpdateDeploymentResourcePool method. message UpdateDeploymentResourcePoolOperationMetadata { // The operation generic information. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/encryption_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/encryption_spec.proto index 47788c222..025c1be08 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/encryption_spec.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/encryption_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint.proto index c8023626a..785d8a577 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/explanation.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; +import "google/cloud/aiplatform/v1beta1/service_networking.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; @@ -126,6 +127,14 @@ message Endpoint { // can be set. bool enable_private_service_connect = 17 [deprecated = true]; + // Optional. Configuration for private service connect. + // + // [network][google.cloud.aiplatform.v1beta1.Endpoint.network] and + // [private_service_connect_config][google.cloud.aiplatform.v1beta1.Endpoint.private_service_connect_config] + // are mutually exclusive. + PrivateServiceConnectConfig private_service_connect_config = 21 + [(google.api.field_behavior) = OPTIONAL]; + // Output only. Resource name of the Model Monitoring job associated with this // Endpoint if monitoring is enabled by // [JobService.CreateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob]. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint_service.proto index ed53e1652..f9e9504f4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -210,20 +210,22 @@ message ListEndpointsRequest { // Optional. An expression for filtering the results of the request. For field // names both snake_case and camelCase are supported. // - // * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID, - // i.e. the last segment of the Endpoint's [resource - // name][google.cloud.aiplatform.v1beta1.Endpoint.name]. - // * `display_name` supports = and, != + // * `endpoint` supports `=` and `!=`. `endpoint` represents the Endpoint + // ID, i.e. the last segment of the Endpoint's + // [resource name][google.cloud.aiplatform.v1beta1.Endpoint.name]. + // * `display_name` supports `=` and `!=`. // * `labels` supports general map functions that is: // * `labels.key=value` - key:value equality - // * `labels.key:* or labels:key - key existence + // * `labels.key:*` or `labels:key` - key existence // * A key including a space must be quoted. `labels."a key"`. + // * `base_model_name` only supports `=`. // // Some examples: // // * `endpoint=1` // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` + // * `baseModelName="text-bison"` string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The standard list page size. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/entity_type.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/entity_type.proto index 400707742..f37a185a6 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/entity_type.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/env_var.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/env_var.proto index aa61f4a2d..64dbf029e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/env_var.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/env_var.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluated_annotation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluated_annotation.proto index 239b55cdb..9675ffb3c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluated_annotation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluated_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluation_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluation_service.proto new file mode 100644 index 000000000..beac5d5cd --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/evaluation_service.proto @@ -0,0 +1,1105 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "EvaluationServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Vertex AI Online Evaluation Service. +service EvaluationService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Evaluates instances based on a given metric. + rpc EvaluateInstances(EvaluateInstancesRequest) + returns (EvaluateInstancesResponse) { + option (google.api.http) = { + post: "/v1beta1/{location=projects/*/locations/*}:evaluateInstances" + body: "*" + }; + } +} + +// Pairwise prediction autorater preference. +enum PairwiseChoice { + // Unspecified prediction choice. + PAIRWISE_CHOICE_UNSPECIFIED = 0; + + // Baseline prediction wins + BASELINE = 1; + + // Candidate prediction wins + CANDIDATE = 2; + + // Winner cannot be determined + TIE = 3; +} + +// Request message for EvaluationService.EvaluateInstances. +message EvaluateInstancesRequest { + // Instances and specs for evaluation + oneof metric_inputs { + // Auto metric instances. + // Instances and metric spec for exact match metric. + ExactMatchInput exact_match_input = 2; + + // Instances and metric spec for bleu metric. + BleuInput bleu_input = 3; + + // Instances and metric spec for rouge metric. + RougeInput rouge_input = 4; + + // LLM-based metric instance. + // General text generation metrics, applicable to other categories. + // Input for fluency metric. + FluencyInput fluency_input = 5; + + // Input for coherence metric. + CoherenceInput coherence_input = 6; + + // Input for safety metric. + SafetyInput safety_input = 8; + + // Input for groundedness metric. + GroundednessInput groundedness_input = 9; + + // Input for fulfillment metric. + FulfillmentInput fulfillment_input = 12; + + // Input for summarization quality metric. + SummarizationQualityInput summarization_quality_input = 7; + + // Input for pairwise summarization quality metric. + PairwiseSummarizationQualityInput pairwise_summarization_quality_input = 23; + + // Input for summarization helpfulness metric. + SummarizationHelpfulnessInput summarization_helpfulness_input = 14; + + // Input for summarization verbosity metric. + SummarizationVerbosityInput summarization_verbosity_input = 15; + + // Input for question answering quality metric. + QuestionAnsweringQualityInput question_answering_quality_input = 10; + + // Input for pairwise question answering quality metric. + PairwiseQuestionAnsweringQualityInput + pairwise_question_answering_quality_input = 24; + + // Input for question answering relevance metric. + QuestionAnsweringRelevanceInput question_answering_relevance_input = 16; + + // Input for question answering helpfulness + // metric. + QuestionAnsweringHelpfulnessInput question_answering_helpfulness_input = 17; + + // Input for question answering correctness + // metric. + QuestionAnsweringCorrectnessInput question_answering_correctness_input = 18; + + // Tool call metric instances. + // Input for tool call valid metric. + ToolCallValidInput tool_call_valid_input = 19; + + // Input for tool name match metric. + ToolNameMatchInput tool_name_match_input = 20; + + // Input for tool parameter key match metric. + ToolParameterKeyMatchInput tool_parameter_key_match_input = 21; + + // Input for tool parameter key value match metric. + ToolParameterKVMatchInput tool_parameter_kv_match_input = 22; + } + + // Required. The resource name of the Location to evaluate the instances. + // Format: `projects/{project}/locations/{location}` + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response message for EvaluationService.EvaluateInstances. +message EvaluateInstancesResponse { + // Evaluation results will be served in the same order as presented in + // EvaluationRequest.instances. + oneof evaluation_results { + // Auto metric evaluation results. + // Results for exact match metric. + ExactMatchResults exact_match_results = 1; + + // Results for bleu metric. + BleuResults bleu_results = 2; + + // Results for rouge metric. + RougeResults rouge_results = 3; + + // LLM-based metric evaluation result. + // General text generation metrics, applicable to other categories. + // Result for fluency metric. + FluencyResult fluency_result = 4; + + // Result for coherence metric. + CoherenceResult coherence_result = 5; + + // Result for safety metric. + SafetyResult safety_result = 7; + + // Result for groundedness metric. + GroundednessResult groundedness_result = 8; + + // Result for fulfillment metric. + FulfillmentResult fulfillment_result = 11; + + // Summarization only metrics. + // Result for summarization quality metric. + SummarizationQualityResult summarization_quality_result = 6; + + // Result for pairwise summarization quality metric. + PairwiseSummarizationQualityResult pairwise_summarization_quality_result = + 22; + + // Result for summarization helpfulness metric. + SummarizationHelpfulnessResult summarization_helpfulness_result = 13; + + // Result for summarization verbosity metric. + SummarizationVerbosityResult summarization_verbosity_result = 14; + + // Question answering only metrics. + // Result for question answering quality metric. + QuestionAnsweringQualityResult question_answering_quality_result = 9; + + // Result for pairwise question answering quality metric. + PairwiseQuestionAnsweringQualityResult + pairwise_question_answering_quality_result = 23; + + // Result for question answering relevance metric. + QuestionAnsweringRelevanceResult question_answering_relevance_result = 15; + + // Result for question answering helpfulness metric. + QuestionAnsweringHelpfulnessResult question_answering_helpfulness_result = + 16; + + // Result for question answering correctness metric. + QuestionAnsweringCorrectnessResult question_answering_correctness_result = + 17; + + // Tool call metrics. + // Results for tool call valid metric. + ToolCallValidResults tool_call_valid_results = 18; + + // Results for tool name match metric. + ToolNameMatchResults tool_name_match_results = 19; + + // Results for tool parameter key match metric. + ToolParameterKeyMatchResults tool_parameter_key_match_results = 20; + + // Results for tool parameter key value match metric. + ToolParameterKVMatchResults tool_parameter_kv_match_results = 21; + } +} + +// Input for exact match metric. +message ExactMatchInput { + // Required. Spec for exact match metric. + ExactMatchSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated exact match instances. + repeated ExactMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for exact match instance. +message ExactMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for exact match metric - returns 1 if prediction and reference exactly +// matches, otherwise 0. +message ExactMatchSpec {} + +// Results for exact match metric. +message ExactMatchResults { + // Output only. Exact match metric values. + repeated ExactMatchMetricValue exact_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Exact match metric value for an instance. +message ExactMatchMetricValue { + // Output only. Exact match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for bleu metric. +message BleuInput { + // Required. Spec for bleu score metric. + BleuSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated bleu instances. + repeated BleuInstance instances = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for bleu instance. +message BleuInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for bleu score metric - calculates the precision of n-grams in the +// prediction as compared to reference - returns a score ranging between 0 to 1. +message BleuSpec { + // Optional. Whether to use_effective_order to compute bleu score. + bool use_effective_order = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Results for bleu metric. +message BleuResults { + // Output only. Bleu metric values. + repeated BleuMetricValue bleu_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Bleu metric value for an instance. +message BleuMetricValue { + // Output only. Bleu score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for rouge metric. +message RougeInput { + // Required. Spec for rouge score metric. + RougeSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated rouge instances. + repeated RougeInstance instances = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for rouge instance. +message RougeInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for rouge score metric - calculates the recall of n-grams in prediction +// as compared to reference - returns a score ranging between 0 and 1. +message RougeSpec { + // Optional. Supported rouge types are rougen[1-9], rougeL, and rougeLsum. + string rouge_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to use stemmer to compute rouge score. + bool use_stemmer = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to split summaries while using rougeLsum. + bool split_summaries = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Results for rouge metric. +message RougeResults { + // Output only. Rouge metric values. + repeated RougeMetricValue rouge_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Rouge metric value for an instance. +message RougeMetricValue { + // Output only. Rouge score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for coherence metric. +message CoherenceInput { + // Required. Spec for coherence score metric. + CoherenceSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Coherence instance. + CoherenceInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for coherence instance. +message CoherenceInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for coherence score metric. +message CoherenceSpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for coherence result. +message CoherenceResult { + // Output only. Coherence score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for coherence score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for coherence score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for fluency metric. +message FluencyInput { + // Required. Spec for fluency score metric. + FluencySpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Fluency instance. + FluencyInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fluency instance. +message FluencyInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fluency score metric. +message FluencySpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for fluency result. +message FluencyResult { + // Output only. Fluency score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for fluency score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for fluency score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for safety metric. +message SafetyInput { + // Required. Spec for safety metric. + SafetySpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Safety instance. + SafetyInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for safety instance. +message SafetyInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for safety metric. +message SafetySpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for safety result. +message SafetyResult { + // Output only. Safety score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for safety score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for safety score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for groundedness metric. +message GroundednessInput { + // Required. Spec for groundedness metric. + GroundednessSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Groundedness instance. + GroundednessInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for groundedness instance. +message GroundednessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Background information provided in context used to compare + // against the prediction. + optional string context = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for groundedness metric. +message GroundednessSpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for groundedness result. +message GroundednessResult { + // Output only. Groundedness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for groundedness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for groundedness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for fulfillment metric. +message FulfillmentInput { + // Required. Spec for fulfillment score metric. + FulfillmentSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Fulfillment instance. + FulfillmentInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fulfillment instance. +message FulfillmentInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inference instruction prompt to compare prediction with. + optional string instruction = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fulfillment metric. +message FulfillmentSpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for fulfillment result. +message FulfillmentResult { + // Output only. Fulfillment score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for fulfillment score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for fulfillment score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for summarization quality metric. +message SummarizationQualityInput { + // Required. Spec for summarization quality score metric. + SummarizationQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization quality instance. + SummarizationQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization quality instance. +message SummarizationQualityInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization quality score metric. +message SummarizationQualitySpec { + // Optional. Whether to use instance.reference to compute summarization + // quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization quality result. +message SummarizationQualityResult { + // Output only. Summarization Quality score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pairwise summarization quality metric. +message PairwiseSummarizationQualityInput { + // Required. Spec for pairwise summarization quality score metric. + PairwiseSummarizationQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Pairwise summarization quality instance. + PairwiseSummarizationQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise summarization quality instance. +message PairwiseSummarizationQualityInstance { + // Required. Output of the candidate model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Output of the baseline model. + optional string baseline_prediction = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization prompt for LLM. + optional string instruction = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise summarization quality score metric. +message PairwiseSummarizationQualitySpec { + // Optional. Whether to use instance.reference to compute pairwise + // summarization quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for pairwise summarization quality result. +message PairwiseSummarizationQualityResult { + // Output only. Pairwise summarization prediction choice. + PairwiseChoice pairwise_choice = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for summarization helpfulness metric. +message SummarizationHelpfulnessInput { + // Required. Spec for summarization helpfulness score metric. + SummarizationHelpfulnessSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization helpfulness instance. + SummarizationHelpfulnessInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization helpfulness instance. +message SummarizationHelpfulnessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Summarization prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization helpfulness score metric. +message SummarizationHelpfulnessSpec { + // Optional. Whether to use instance.reference to compute summarization + // helpfulness. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization helpfulness result. +message SummarizationHelpfulnessResult { + // Output only. Summarization Helpfulness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization helpfulness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization helpfulness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for summarization verbosity metric. +message SummarizationVerbosityInput { + // Required. Spec for summarization verbosity score metric. + SummarizationVerbositySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization verbosity instance. + SummarizationVerbosityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization verbosity instance. +message SummarizationVerbosityInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Summarization prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization verbosity score metric. +message SummarizationVerbositySpec { + // Optional. Whether to use instance.reference to compute summarization + // verbosity. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization verbosity result. +message SummarizationVerbosityResult { + // Output only. Summarization Verbosity score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization verbosity score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization verbosity score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering quality metric. +message QuestionAnsweringQualityInput { + // Required. Spec for question answering quality score metric. + QuestionAnsweringQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering quality instance. + QuestionAnsweringQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering quality instance. +message QuestionAnsweringQualityInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to answer the question. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Question Answering prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering quality score metric. +message QuestionAnsweringQualitySpec { + // Optional. Whether to use instance.reference to compute question answering + // quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering quality result. +message QuestionAnsweringQualityResult { + // Output only. Question Answering Quality score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pairwise question answering quality metric. +message PairwiseQuestionAnsweringQualityInput { + // Required. Spec for pairwise question answering quality score metric. + PairwiseQuestionAnsweringQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Pairwise question answering quality instance. + PairwiseQuestionAnsweringQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise question answering quality instance. +message PairwiseQuestionAnsweringQualityInstance { + // Required. Output of the candidate model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Output of the baseline model. + optional string baseline_prediction = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to answer the question. + optional string context = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Question Answering prompt for LLM. + optional string instruction = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise question answering quality score metric. +message PairwiseQuestionAnsweringQualitySpec { + // Optional. Whether to use instance.reference to compute question answering + // quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for pairwise question answering quality result. +message PairwiseQuestionAnsweringQualityResult { + // Output only. Pairwise question answering prediction choice. + PairwiseChoice pairwise_choice = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering relevance metric. +message QuestionAnsweringRelevanceInput { + // Required. Spec for question answering relevance score metric. + QuestionAnsweringRelevanceSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering relevance instance. + QuestionAnsweringRelevanceInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering relevance instance. +message QuestionAnsweringRelevanceInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Text provided as context to answer the question. + optional string context = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The question asked and other instruction in the inference prompt. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering relevance metric. +message QuestionAnsweringRelevanceSpec { + // Optional. Whether to use instance.reference to compute question answering + // relevance. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering relevance result. +message QuestionAnsweringRelevanceResult { + // Output only. Question Answering Relevance score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering relevance score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering relevance score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering helpfulness metric. +message QuestionAnsweringHelpfulnessInput { + // Required. Spec for question answering helpfulness score metric. + QuestionAnsweringHelpfulnessSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering helpfulness instance. + QuestionAnsweringHelpfulnessInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering helpfulness instance. +message QuestionAnsweringHelpfulnessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Text provided as context to answer the question. + optional string context = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The question asked and other instruction in the inference prompt. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering helpfulness metric. +message QuestionAnsweringHelpfulnessSpec { + // Optional. Whether to use instance.reference to compute question answering + // helpfulness. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering helpfulness result. +message QuestionAnsweringHelpfulnessResult { + // Output only. Question Answering Helpfulness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering helpfulness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering helpfulness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering correctness metric. +message QuestionAnsweringCorrectnessInput { + // Required. Spec for question answering correctness score metric. + QuestionAnsweringCorrectnessSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering correctness instance. + QuestionAnsweringCorrectnessInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering correctness instance. +message QuestionAnsweringCorrectnessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Text provided as context to answer the question. + optional string context = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The question asked and other instruction in the inference prompt. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering correctness metric. +message QuestionAnsweringCorrectnessSpec { + // Optional. Whether to use instance.reference to compute question answering + // correctness. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering correctness result. +message QuestionAnsweringCorrectnessResult { + // Output only. Question Answering Correctness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering correctness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering correctness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool call valid metric. +message ToolCallValidInput { + // Required. Spec for tool call valid metric. + ToolCallValidSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool call valid instances. + repeated ToolCallValidInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool call valid metric. +message ToolCallValidSpec {} + +// Spec for tool call valid instance. +message ToolCallValidInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool call valid metric. +message ToolCallValidResults { + // Output only. Tool call valid metric values. + repeated ToolCallValidMetricValue tool_call_valid_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool call valid metric value for an instance. +message ToolCallValidMetricValue { + // Output only. Tool call valid score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool name match metric. +message ToolNameMatchInput { + // Required. Spec for tool name match metric. + ToolNameMatchSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool name match instances. + repeated ToolNameMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool name match metric. +message ToolNameMatchSpec {} + +// Spec for tool name match instance. +message ToolNameMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool name match metric. +message ToolNameMatchResults { + // Output only. Tool name match metric values. + repeated ToolNameMatchMetricValue tool_name_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool name match metric value for an instance. +message ToolNameMatchMetricValue { + // Output only. Tool name match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool parameter key match metric. +message ToolParameterKeyMatchInput { + // Required. Spec for tool parameter key match metric. + ToolParameterKeyMatchSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool parameter key match instances. + repeated ToolParameterKeyMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool parameter key match metric. +message ToolParameterKeyMatchSpec {} + +// Spec for tool parameter key match instance. +message ToolParameterKeyMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool parameter key match metric. +message ToolParameterKeyMatchResults { + // Output only. Tool parameter key match metric values. + repeated ToolParameterKeyMatchMetricValue + tool_parameter_key_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool parameter key match metric value for an instance. +message ToolParameterKeyMatchMetricValue { + // Output only. Tool parameter key match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool parameter key value match metric. +message ToolParameterKVMatchInput { + // Required. Spec for tool parameter key value match metric. + ToolParameterKVMatchSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool parameter key value match instances. + repeated ToolParameterKVMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool parameter key value match metric. +message ToolParameterKVMatchSpec { + // Optional. Whether to use STRCIT string match on parameter values. + bool use_strict_string_match = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for tool parameter key value match instance. +message ToolParameterKVMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool parameter key value match metric. +message ToolParameterKVMatchResults { + // Output only. Tool parameter key value match metric values. + repeated ToolParameterKVMatchMetricValue + tool_parameter_kv_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool parameter key value match metric value for an instance. +message ToolParameterKVMatchMetricValue { + // Output only. Tool parameter key value match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/event.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/event.proto index 22a229fa4..d6190b54b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/event.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/execution.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/execution.proto index da6811978..78a8c4de8 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/execution.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation.proto index 72cee5a14..2b75e992e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation_metadata.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation_metadata.proto index 25ba8a417..563faf6ac 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation_metadata.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/explanation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension.proto new file mode 100644 index 000000000..a9ef88fb6 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension.proto @@ -0,0 +1,393 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/tool.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{secret_version}" + pattern: "projects/{project}/locations/{location}/secrets/{secret}/versions/{secret_version}" +}; +option (google.api.resource_definition) = { + type: "servicedirectory.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}" +}; + +// Enum of location an HTTP element can be. +enum HttpElementLocation { + HTTP_IN_UNSPECIFIED = 0; + + // Element is in the HTTP request query. + HTTP_IN_QUERY = 1; + + // Element is in the HTTP request header. + HTTP_IN_HEADER = 2; + + // Element is in the HTTP request path. + HTTP_IN_PATH = 3; + + // Element is in the HTTP request body. + HTTP_IN_BODY = 4; + + // Element is in the HTTP request cookie. + HTTP_IN_COOKIE = 5; +} + +// Type of Auth. +enum AuthType { + AUTH_TYPE_UNSPECIFIED = 0; + + // No Auth. + NO_AUTH = 1; + + // API Key Auth. + API_KEY_AUTH = 2; + + // HTTP Basic Auth. + HTTP_BASIC_AUTH = 3; + + // Google Service Account Auth. + GOOGLE_SERVICE_ACCOUNT_AUTH = 4; + + // OAuth auth. + OAUTH = 6; + + // OpenID Connect (OIDC) Auth. + OIDC_AUTH = 8; +} + +// Extensions are tools for large language models to access external data, run +// computations, etc. +message Extension { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Extension" + pattern: "projects/{project}/locations/{location}/extensions/{extension}" + plural: "extensions" + singular: "extension" + }; + + // Identifier. The resource name of the Extension. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the Extension. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the Extension. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Timestamp when this Extension was created. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Extension was most recently updated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Used to perform consistent read-modify-write updates. If not set, + // a blind "overwrite" update happens. + string etag = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Manifest of the Extension. + ExtensionManifest manifest = 9 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Supported operations. + repeated ExtensionOperation extension_operations = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Runtime config controlling the runtime behavior of this + // Extension. + RuntimeConfig runtime_config = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Examples to illustrate the usage of the extension as a tool. + repeated ToolUseExample tool_use_examples = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The PrivateServiceConnect config for the extension. + // If specified, the service endpoints associated with the + // Extension should be registered with private network access in the provided + // Service Directory + // (https://cloud.google.com/service-directory/docs/configuring-private-network-access). + // + // If the service contains more than one endpoint with a network, the service + // will arbitrarilty choose one of the endpoints to use for extension + // execution. + ExtensionPrivateServiceConnectConfig private_service_connect_config = 16 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Manifest spec of an Extension needed for runtime execution. +message ExtensionManifest { + // The API specification shown to the LLM. + message ApiSpec { + oneof api_spec { + // The API spec in Open API standard and YAML format. + string open_api_yaml = 1; + + // Cloud Storage URI pointing to the OpenAPI spec. + string open_api_gcs_uri = 2; + } + } + + // Required. Extension name shown to the LLM. + // The name can be up to 128 characters long. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The natural language description shown to the LLM. + // It should describe the usage of the extension, and is essential for the LLM + // to perform reasoning. e.g., if the extension is a data store, you can let + // the LLM know what data it contains. + string description = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The API specification shown to the LLM. + ApiSpec api_spec = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. Immutable. Type of auth supported by this extension. + AuthConfig auth_config = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; +} + +// Operation of an extension. +message ExtensionOperation { + // Operation ID that uniquely identifies the operations among the extension. + // See: "Operation Object" in https://swagger.io/specification/. + // + // This field is parsed from the OpenAPI spec. For HTTP extensions, if it does + // not exist in the spec, we will generate one from the HTTP method and path. + string operation_id = 1; + + // Output only. Structured representation of a function declaration as defined + // by the OpenAPI Spec. + FunctionDeclaration function_declaration = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Auth configuration to run the extension. +message AuthConfig { + // Config for authentication with API key. + message ApiKeyConfig { + // 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. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the SecretManager secret version resource storing + // the API key. Format: + // `projects/{project}/secrets/{secrete}/versions/{version}` + // + // - If specified, the `secretmanager.versions.access` permission should be + // granted to Vertex AI Extension Service Agent + // (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) + // on the specified resource. + string api_key_secret = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Required. The location of the API key. + HttpElementLocation http_element_location = 3 + [(google.api.field_behavior) = REQUIRED]; + } + + // Config for HTTP Basic Authentication. + message HttpBasicAuthConfig { + // Required. The name of the SecretManager secret version resource storing + // the base64 encoded credentials. Format: + // `projects/{project}/secrets/{secrete}/versions/{version}` + // + // - If specified, the `secretmanager.versions.access` permission should be + // granted to Vertex AI Extension Service Agent + // (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) + // on the specified resource. + string credential_secret = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + } + + // Config for Google Service Account Authentication. + message GoogleServiceAccountConfig { + // Optional. The service account that the extension execution service runs + // as. + // + // - If the service account is specified, + // the `iam.serviceAccounts.getAccessToken` permission should be granted to + // Vertex AI Extension Service Agent + // (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) + // on the specified service account. + // + // - If not specified, the Vertex AI Extension Service Agent + // will be used to execute the Extension. + string service_account = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Config for user oauth. + message OauthConfig { + oneof oauth_config { + // Access token for extension endpoint. + // Only used to propagate token from + // [[ExecuteExtensionRequest.runtime_auth_config]] at request time. + string access_token = 1; + + // The service account used to generate access tokens for executing the + // Extension. + // + // - If the service account is specified, + // the `iam.serviceAccounts.getAccessToken` permission should be granted + // to Vertex AI Extension Service Agent + // (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) + // on the provided service account. + string service_account = 2; + } + } + + // Config for user OIDC auth. + message OidcConfig { + oneof oidc_config { + // OpenID Connect formatted ID token for extension endpoint. + // Only used to propagate token from + // [[ExecuteExtensionRequest.runtime_auth_config]] at request time. + string id_token = 1; + + // The service account used to generate an OpenID Connect + // (OIDC)-compatible JWT token signed by the Google OIDC Provider + // (accounts.google.com) for extension endpoint + // (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). + // + // - The audience for the token will be set to the URL in the server url + // defined in the OpenApi spec. + // + // - If the service account is provided, the service account should grant + // `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension + // Service Agent + // (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents). + string service_account = 2; + } + } + + oneof auth_config { + // Config for API key auth. + ApiKeyConfig api_key_config = 2; + + // Config for HTTP Basic auth. + HttpBasicAuthConfig http_basic_auth_config = 3; + + // Config for Google Service Account auth. + GoogleServiceAccountConfig google_service_account_config = 4; + + // Config for user oauth. + OauthConfig oauth_config = 5; + + // Config for user OIDC auth. + OidcConfig oidc_config = 7; + } + + // Type of auth scheme. + AuthType auth_type = 101; +} + +// Runtime configuration to run the extension. +message RuntimeConfig { + message CodeInterpreterRuntimeConfig { + // Optional. The Cloud Storage bucket for file input of this Extension. + // If specified, support input from the Cloud Storage bucket. + // Vertex Extension Custom Code Service Agent should be granted + // file reader to this bucket. + // If not specified, the extension will only accept file contents from + // request body and reject Cloud Storage file inputs. + string file_input_gcs_bucket = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Cloud Storage bucket for file output of this Extension. + // If specified, write all output files to the Cloud Storage bucket. + // Vertex Extension Custom Code Service Agent should be granted + // file writer to this bucket. + // If not specified, the file content will be output in response body. + string file_output_gcs_bucket = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + message VertexAISearchRuntimeConfig { + // Optional. Vertex AI Search serving config name. Format: + // `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}` + string serving_config_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Vertex AI Search engine ID. This is used to construct the + // search request. By setting this engine_id, API will construct the serving + // config using the default value to call search API for the user. The + // engine_id and serving_config_name cannot both be empty at the same time. + string engine_id = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Runtime configurations for Google first party extensions. + oneof GoogleFirstPartyExtensionConfig { + // Code execution runtime configurations for code interpreter extension. + CodeInterpreterRuntimeConfig code_interpreter_runtime_config = 2; + + // Runtime configuration for Vertex AI Search extension. + VertexAISearchRuntimeConfig vertex_ai_search_runtime_config = 6; + } + + // Optional. Default parameters that will be set for all the execution of this + // extension. If specified, the parameter values can be overridden by values + // in [[ExecuteExtensionRequest.operation_params]] at request time. + // + // The struct should be in a form of map with param name as the key and actual + // param value as the value. + // E.g. If this operation requires a param "name" to be set to "abc". you can + // set this to something like {"name": "abc"}. + google.protobuf.Struct default_params = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// PrivateExtensionConfig configuration for the extension. +message ExtensionPrivateServiceConnectConfig { + // Required. The Service Directory resource name in which the service + // endpoints associated to the extension are registered. Format: + // `projects/{project_id}/locations/{location_id}/namespaces/{namespace_id}/services/{service_id}` + // + // - The Vertex AI Extension Service Agent + // (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) + // should be granted `servicedirectory.viewer` and + // `servicedirectory.pscAuthorizedService` roles on the resource. + string service_directory = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "servicedirectory.googleapis.com/Service" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension_execution_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension_execution_service.proto new file mode 100644 index 000000000..4afbdde38 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension_execution_service.proto @@ -0,0 +1,135 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/content.proto"; +import "google/cloud/aiplatform/v1beta1/extension.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionExecutionServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for Extension execution. +service ExtensionExecutionService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Executes the request against a given extension. + rpc ExecuteExtension(ExecuteExtensionRequest) + returns (ExecuteExtensionResponse) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/extensions/*}:execute" + body: "*" + }; + option (google.api.method_signature) = "name,operation_id"; + } + + // Queries an extension with a default controller. + rpc QueryExtension(QueryExtensionRequest) returns (QueryExtensionResponse) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/extensions/*}:query" + body: "*" + }; + option (google.api.method_signature) = "name,contents"; + } +} + +// Request message for +// [ExtensionExecutionService.ExecuteExtension][google.cloud.aiplatform.v1beta1.ExtensionExecutionService.ExecuteExtension]. +message ExecuteExtensionRequest { + // Required. Name (identifier) of the extension; + // Format: + // `projects/{project}/locations/{location}/extensions/{extension}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Extension" + } + ]; + + // Required. The desired ID of the operation to be executed in this extension + // as defined in + // [ExtensionOperation.operation_id][google.cloud.aiplatform.v1beta1.ExtensionOperation.operation_id]. + string operation_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Request parameters that will be used for executing this + // operation. + // + // The struct should be in a form of map with param name as the key and actual + // param value as the value. + // E.g. If this operation requires a param "name" to be set to "abc". you can + // set this to something like {"name": "abc"}. + google.protobuf.Struct operation_params = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Auth config provided at runtime to override the default value in + // [Extension.manifest.auth_config][]. + // The AuthConfig.auth_type should match the value in + // [Extension.manifest.auth_config][]. + AuthConfig runtime_auth_config = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [ExtensionExecutionService.ExecuteExtension][google.cloud.aiplatform.v1beta1.ExtensionExecutionService.ExecuteExtension]. +message ExecuteExtensionResponse { + // Response content from the extension. The content should be conformant to + // the response.content schema in the extension's manifest/OpenAPI spec. + string content = 2; +} + +// Request message for +// [ExtensionExecutionService.QueryExtension][google.cloud.aiplatform.v1beta1.ExtensionExecutionService.QueryExtension]. +message QueryExtensionRequest { + // Required. Name (identifier) of the extension; + // Format: + // `projects/{project}/locations/{location}/extensions/{extension}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Extension" + } + ]; + + // Required. The content of the current conversation with the model. + // + // For single-turn queries, this is a single instance. For multi-turn queries, + // this is a repeated field that contains conversation history + latest + // request. + repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [ExtensionExecutionService.QueryExtension][google.cloud.aiplatform.v1beta1.ExtensionExecutionService.QueryExtension]. +message QueryExtensionResponse { + // Steps of extension or LLM interaction, can contain function call, + // function response, or text response. The last step contains the final + // response to the query. + repeated Content steps = 1; + + // Failure message if any. + string failure_message = 2; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension_registry_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension_registry_service.proto new file mode 100644 index 000000000..11cb82dc9 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/extension_registry_service.proto @@ -0,0 +1,214 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/extension.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ExtensionRegistryServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for managing Vertex AI's Extension registry. +service ExtensionRegistryService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Imports an Extension. + rpc ImportExtension(ImportExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/extensions:import" + body: "extension" + }; + option (google.api.method_signature) = "parent,extension"; + option (google.longrunning.operation_info) = { + response_type: "Extension" + metadata_type: "ImportExtensionOperationMetadata" + }; + } + + // Gets an Extension. + rpc GetExtension(GetExtensionRequest) returns (Extension) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/extensions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Extensions in a location. + rpc ListExtensions(ListExtensionsRequest) returns (ListExtensionsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/extensions" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates an Extension. + rpc UpdateExtension(UpdateExtensionRequest) returns (Extension) { + option (google.api.http) = { + patch: "/v1beta1/{extension.name=projects/*/locations/*/extensions/*}" + body: "extension" + }; + option (google.api.method_signature) = "extension,update_mask"; + } + + // Deletes an Extension. + rpc DeleteExtension(DeleteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/extensions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } +} + +// Request message for +// [ExtensionRegistryService.ImportExtension][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.ImportExtension]. +message ImportExtensionRequest { + // Required. The resource name of the Location to import the Extension in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The Extension to import. + Extension extension = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of +// [ExtensionRegistryService.ImportExtension][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.ImportExtension] +// operation. +message ImportExtensionOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [ExtensionRegistryService.GetExtension][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.GetExtension]. +message GetExtensionRequest { + // Required. The name of the Extension resource. + // Format: + // `projects/{project}/locations/{location}/extensions/{extension}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Extension" + } + ]; +} + +// Request message for +// [ExtensionRegistryService.UpdateExtension][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.UpdateExtension]. +message UpdateExtensionRequest { + // Required. The Extension which replaces the resource on the server. + Extension extension = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask specifying which fields to update. + // Supported fields: + // + // * `display_name` + // * `description` + // * `runtime_config` + // * `tool_use_examples` + // * `manifest.description` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [ExtensionRegistryService.ListExtensions][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.ListExtensions]. +message ListExtensionsRequest { + // Required. The resource name of the Location to list the Extensions from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The standard list filter. + // Supported fields: + // * `display_name` + // * `create_time` + // * `update_time` + // + // More detail in [AIP-160](https://google.aip.dev/160). + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [ExtensionRegistryService.ListExtensions][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.ListExtensions] +message ListExtensionsResponse { + // List of Extension in the requested page. + repeated Extension extensions = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListExtensionsRequest.page_token][google.cloud.aiplatform.v1beta1.ListExtensionsRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [ExtensionRegistryService.DeleteExtension][google.cloud.aiplatform.v1beta1.ExtensionRegistryService.DeleteExtension]. +message DeleteExtensionRequest { + // Required. The name of the Extension resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/extensions/{extension}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Extension" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature.proto index f88981051..e253f1a7c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -104,6 +104,9 @@ message Feature { // Used for Feature that is bytes. BYTES = 13; + + // Used for Feature that is struct. + STRUCT = 14; } // Immutable. Name of the Feature. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_group.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_group.proto index 93f1e062b..611dcfb8c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_group.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -47,17 +47,17 @@ message FeatureGroup { (google.api.field_behavior) = REQUIRED ]; - // Optional. Columns to construct entity_id / row keys. Currently only - // supports 1 entity_id_column. If not provided defaults to `entity_id`. + // Optional. Columns to construct entity_id / row keys. + // If not provided defaults to `entity_id`. repeated string entity_id_columns = 2 [(google.api.field_behavior) = OPTIONAL]; } oneof source { // Indicates that features for this group come from BigQuery Table/View. - // By default treats the source as a sparse time series source, which is - // required to have an entity_id and a feature_timestamp column in the - // source. + // By default treats the source as a sparse time series source. The BigQuery + // source table or view must have at least one entity ID column and a column + // named `feature_timestamp`. BigQuery big_query = 7; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto index f1caf42c9..4e0f15136 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store.proto index a9a94c603..cd37404e4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/service_networking.proto"; import "google/protobuf/timestamp.proto"; @@ -65,10 +66,8 @@ message FeatureOnlineStore { message Optimized {} // The dedicated serving endpoint for this FeatureOnlineStore. Only need to - // set when you choose Optimized storage type or enable EmbeddingManagement. - // Will use public endpoint by default. Note, for EmbeddingManagement use - // case, only [DedicatedServingEndpoint.public_endpoint_domain_name] is - // available now. + // set when you choose Optimized storage type. Public endpoint is provisioned + // by default. message DedicatedServingEndpoint { // Output only. This field will be populated with the domain name to use for // this FeatureOnlineStore @@ -89,8 +88,12 @@ message FeatureOnlineStore { string service_attachment = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Deprecated: This sub message is no longer needed anymore and embedding + // management is automatically enabled when specifying Optimized storage type. // Contains settings for embedding management. message EmbeddingManagement { + option deprecated = true; + // Optional. Immutable. Whether to enable embedding management in this // FeatureOnlineStore. It's immutable after creation to ensure the // FeatureOnlineStore availability. @@ -168,7 +171,12 @@ message FeatureOnlineStore { DedicatedServingEndpoint dedicated_serving_endpoint = 10 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The settings for embedding management in FeatureOnlineStore. + // Optional. Deprecated: This field is no longer needed anymore and embedding + // management is automatically enabled when specifying Optimized storage type. EmbeddingManagement embedding_management = 11 - [(google.api.field_behavior) = OPTIONAL]; + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Optional. Customer-managed encryption key spec for data storage. If set, + // online store will be secured by this key. + EncryptionSpec encryption_spec = 13 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto index aefb99807..4e7bf701e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto index d5876ac91..8fc70adda 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/featurestore_online_service.proto"; import "google/protobuf/struct.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; @@ -47,6 +48,18 @@ service FeatureOnlineStoreService { option (google.api.method_signature) = "feature_view, data_key"; } + // Bidirectional streaming RPC to fetch feature values under a FeatureView. + // Requests may not have a one-to-one mapping to responses and responses may + // be returned out-of-order to reduce latency. + rpc StreamingFetchFeatureValues(stream StreamingFetchFeatureValuesRequest) + returns (stream StreamingFetchFeatureValuesResponse) { + option (google.api.http) = { + post: "/v1beta1/{feature_view=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:streamingFetchFeatureValues" + body: "*" + }; + option (google.api.method_signature) = "feature_view, data_keys"; + } + // Search the nearest entities under a FeatureView. // Search only works for indexable feature view; if a feature view isn't // indexable, returns Invalid argument response. @@ -169,6 +182,50 @@ message FetchFeatureValuesResponse { // Feature values in proto Struct format. google.protobuf.Struct proto_struct = 2; } + + // The data key associated with this response. + // Will only be populated for + // [FeatureOnlineStoreService.StreamingFetchFeatureValues][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.StreamingFetchFeatureValues] + // RPCs. + FeatureViewDataKey data_key = 4; +} + +// Request message for +// [FeatureOnlineStoreService.StreamingFetchFeatureValues][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.StreamingFetchFeatureValues]. +// For the entities requested, all features under the requested feature view +// will be returned. +message StreamingFetchFeatureValuesRequest { + // Required. FeatureView resource format + // `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}` + string feature_view = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/FeatureView" + } + ]; + + repeated FeatureViewDataKey data_keys = 2; + + // Specify response data format. If not set, KeyValue format will be used. + FeatureViewDataFormat data_format = 3; +} + +// Response message for +// [FeatureOnlineStoreService.StreamingFetchFeatureValues][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.StreamingFetchFeatureValues]. +message StreamingFetchFeatureValuesResponse { + // Response status. + // If OK, then + // [StreamingFetchFeatureValuesResponse.data][google.cloud.aiplatform.v1beta1.StreamingFetchFeatureValuesResponse.data] + // will be populated. Otherwise + // [StreamingFetchFeatureValuesResponse.data_keys_with_error][google.cloud.aiplatform.v1beta1.StreamingFetchFeatureValuesResponse.data_keys_with_error] + // will be populated with the appropriate data keys. The error only applies to + // the listed data keys - the stream will remain open for further + // [FeatureOnlineStoreService.StreamingFetchFeatureValuesRequest][] requests. + google.rpc.Status status = 1; + + repeated FetchFeatureValuesResponse data = 2; + + repeated FeatureViewDataKey data_keys_with_error = 3; } // A query to find a number of similar entities. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_registry_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_registry_service.proto index 6492f9d5f..d9e792e35 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_registry_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_registry_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -165,7 +165,7 @@ service FeatureRegistryService { message CreateFeatureGroupRequest { // Required. The resource name of the Location to create FeatureGroups. // Format: - // `projects/{project}/locations/{location}'` + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_selector.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_selector.proto index a44e9f024..d51b99917 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_selector.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_selector.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view.proto index e24188e27..0afe17230 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,8 +41,7 @@ message FeatureView { // trigger based on FeatureView.SyncConfig. string uri = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Columns to construct entity_id / row keys. Start by supporting - // 1 only. + // Required. Columns to construct entity_id / row keys. repeated string entity_id_columns = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -58,8 +57,12 @@ message FeatureView { string cron = 1; } - // Configuration for vector search. + // Deprecated. Use + // [IndexConfig][google.cloud.aiplatform.v1beta1.FeatureView.IndexConfig] + // instead. message VectorSearchConfig { + option deprecated = true; + message BruteForceConfig {} message TreeAHConfig { @@ -115,9 +118,14 @@ message FeatureView { repeated string filter_columns = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Column of crowding. This column contains crowding attribute - // which is a constraint on a neighbor list produced by nearest neighbor - // search requiring that no more than some value k' of the k neighbors - // returned have the same value of crowding_attribute. + // which is a constraint on a neighbor list produced by + // [FeatureOnlineStoreService.SearchNearestEntities][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities] + // to diversify search results. If + // [NearestNeighborQuery.per_crowding_attribute_neighbor_count][google.cloud.aiplatform.v1beta1.NearestNeighborQuery.per_crowding_attribute_neighbor_count] + // is set to K in + // [SearchNearestEntitiesRequest][google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest], + // it's guaranteed that no more than K entities of the same crowding + // attribute are returned in the response. string crowding_column = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. The number of dimensions of the input embedding. @@ -129,6 +137,85 @@ message FeatureView { [(google.api.field_behavior) = OPTIONAL]; } + // Configuration for vector indexing. + message IndexConfig { + // Configuration options for using brute force search. + message BruteForceConfig {} + + // Configuration options for the tree-AH algorithm. + message TreeAHConfig { + // Optional. Number of embeddings on each leaf node. The default value is + // 1000 if not set. + optional int64 leaf_node_embedding_count = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // The distance measure used in nearest neighbor search. + enum DistanceMeasureType { + // Should not be set. + DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0; + + // Euclidean (L_2) Distance. + SQUARED_L2_DISTANCE = 1; + + // Cosine Distance. Defined as 1 - cosine similarity. + // + // We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead + // of COSINE distance. Our algorithms have been more optimized for + // DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is + // mathematically equivalent to COSINE distance and results in the same + // ranking. + COSINE_DISTANCE = 2; + + // Dot Product Distance. Defined as a negative of the dot product. + DOT_PRODUCT_DISTANCE = 3; + } + + // The configuration with regard to the algorithms used for efficient + // search. + oneof algorithm_config { + // Optional. Configuration options for the tree-AH algorithm (Shallow tree + // + Asymmetric Hashing). Please refer to this paper for more details: + // https://arxiv.org/abs/1908.10396 + TreeAHConfig tree_ah_config = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration options for using brute force search, which + // simply implements the standard linear search in the database for each + // query. It is primarily meant for benchmarking and to generate the + // ground truth for approximate search. + BruteForceConfig brute_force_config = 7 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Column of embedding. This column contains the source data to + // create index for vector search. embedding_column must be set when using + // vector search. + string embedding_column = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Columns of features that're used to filter vector search + // results. + repeated string filter_columns = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Column of crowding. This column contains crowding attribute + // which is a constraint on a neighbor list produced by + // [FeatureOnlineStoreService.SearchNearestEntities][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities] + // to diversify search results. If + // [NearestNeighborQuery.per_crowding_attribute_neighbor_count][google.cloud.aiplatform.v1beta1.NearestNeighborQuery.per_crowding_attribute_neighbor_count] + // is set to K in + // [SearchNearestEntitiesRequest][google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest], + // it's guaranteed that no more than K entities of the same crowding + // attribute are returned in the response. + string crowding_column = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of dimensions of the input embedding. + optional int32 embedding_dimension = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The distance measure used in nearest neighbor search. + DistanceMeasureType distance_measure_type = 5 + [(google.api.field_behavior) = OPTIONAL]; + } + // A Feature Registry source for features that need to be synced to Online // Store. message FeatureRegistrySource { @@ -145,6 +232,9 @@ message FeatureView { // Required. List of features that need to be synced to Online Store. repeated FeatureGroup feature_groups = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The project number of the parent project of the Feature Groups. + optional int64 project_number = 2 [(google.api.field_behavior) = OPTIONAL]; } // Service agent type used during data sync. @@ -209,12 +299,17 @@ message FeatureView { // FeatureView are made ready for online serving. SyncConfig sync_config = 7; - // Optional. Configuration for vector search. It contains the required - // configurations to create an index from source data, so that approximate - // nearest neighbor (a.k.a ANN) algorithms search can be performed during - // online serving. + // Optional. Deprecated: please use + // [FeatureView.index_config][google.cloud.aiplatform.v1beta1.FeatureView.index_config] + // instead. VectorSearchConfig vector_search_config = 8 - [(google.api.field_behavior) = OPTIONAL]; + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration for index preparation for vector search. It + // contains the required configurations to create an index from source data, + // so that approximate nearest neighbor (a.k.a ANN) algorithms search can be + // performed during online serving. + IndexConfig index_config = 15 [(google.api.field_behavior) = OPTIONAL]; // Optional. Service agent type used during data sync. By default, the Vertex // AI Service Agent is used. When using an IAM Policy to isolate this diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view_sync.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view_sync.proto index 4f2514fe6..eac71f7bb 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view_sync.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/feature_view_sync.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,6 +38,16 @@ message FeatureViewSync { pattern: "projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/feature_view_sync" }; + // Summary from the Sync job. For continuous syncs, the summary is updated + // periodically. For batch syncs, it gets updated on completion of the sync. + message SyncSummary { + // Output only. Total number of rows synced. + int64 row_synced = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. BigQuery slot milliseconds consumed for the sync job. + int64 total_slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Identifier. Name of the FeatureViewSync. Format: // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; @@ -54,4 +64,7 @@ message FeatureViewSync { // Output only. Final status of the FeatureViewSync. google.rpc.Status final_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of the sync job. + SyncSummary sync_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore.proto index b935b2736..90371930f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto index 134f10941..b2d2f71ea 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto index 5c26efb6f..7a2e3a9cd 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -272,12 +272,30 @@ message FeatureValue { // Bytes feature value. bytes bytes_value = 13; + + // A struct type feature value. + StructValue struct_value = 15; } // Metadata of feature value. Metadata metadata = 14; } +// Struct (or object) type feature value. +message StructValue { + // A list of field values. + repeated StructFieldValue values = 1; +} + +// One field of a Struct (or object) type feature value. +message StructFieldValue { + // Name of the field in the struct feature. + string name = 1; + + // The value for this field. + FeatureValue value = 2; +} + // Container for list of values. message FeatureValueList { // A list of feature values. All of them should be the same data type. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_service.proto index 87dbb5abf..2a32aca23 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/featurestore_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/gen_ai_cache_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/gen_ai_cache_service.proto new file mode 100644 index 000000000..e2e5139e9 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/gen_ai_cache_service.proto @@ -0,0 +1,170 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/cached_content.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "GenAiCacheServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Service for managing Vertex AI's CachedContent resource. +service GenAiCacheService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates cached content, this call will initialize the cached content in the + // data storage, and users need to pay for the cache data storage. + rpc CreateCachedContent(CreateCachedContentRequest) returns (CachedContent) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/cachedContents" + body: "cached_content" + }; + option (google.api.method_signature) = "parent,cached_content"; + } + + // Gets cached content configurations + rpc GetCachedContent(GetCachedContentRequest) returns (CachedContent) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/cachedContents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates cached content configurations + rpc UpdateCachedContent(UpdateCachedContentRequest) returns (CachedContent) { + option (google.api.http) = { + patch: "/v1beta1/{cached_content.name=projects/*/locations/*/cachedContents/*}" + body: "cached_content" + }; + option (google.api.method_signature) = "cached_content,update_mask"; + } + + // Deletes cached content + rpc DeleteCachedContent(DeleteCachedContentRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/cachedContents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists cached contents in a project + rpc ListCachedContents(ListCachedContentsRequest) + returns (ListCachedContentsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/cachedContents" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for +// [GenAiCacheService.CreateCachedContent][google.cloud.aiplatform.v1beta1.GenAiCacheService.CreateCachedContent]. +message CreateCachedContentRequest { + // Required. The parent resource where the cached content will be created + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/CachedContent" + } + ]; + + // Required. The cached content to create + CachedContent cached_content = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [GenAiCacheService.GetCachedContent][google.cloud.aiplatform.v1beta1.GenAiCacheService.GetCachedContent]. +message GetCachedContentRequest { + // Required. The resource name referring to the cached content + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CachedContent" + } + ]; +} + +// Request message for +// [GenAiCacheService.UpdateCachedContent][google.cloud.aiplatform.v1beta1.GenAiCacheService.UpdateCachedContent]. +// Only expire_time or ttl can be updated. +message UpdateCachedContentRequest { + // Required. The cached content to update + CachedContent cached_content = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [GenAiCacheService.DeleteCachedContent][google.cloud.aiplatform.v1beta1.GenAiCacheService.DeleteCachedContent]. +message DeleteCachedContentRequest { + // Required. The resource name referring to the cached content + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CachedContent" + } + ]; +} + +// Request to list CachedContents. +message ListCachedContentsRequest { + // Required. The parent, which owns this collection of cached contents. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/CachedContent" + } + ]; + + // Optional. The maximum number of cached contents to return. The service may + // return fewer than this value. If unspecified, some default (under maximum) + // number of items will be returned. The maximum value is 1000; values above + // 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListCachedContents` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCachedContents` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response with a list of CachedContents. +message ListCachedContentsResponse { + // List of cached contents. + repeated CachedContent cached_contents = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto new file mode 100644 index 000000000..cc44a829f --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto @@ -0,0 +1,164 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/tuning_job.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "GenAiTuningServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for creating and managing GenAI Tuning Jobs. +service GenAiTuningService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a TuningJob. A created TuningJob right away will be attempted to + // be run. + rpc CreateTuningJob(CreateTuningJobRequest) returns (TuningJob) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/tuningJobs" + body: "tuning_job" + }; + option (google.api.method_signature) = "parent,tuning_job"; + } + + // Gets a TuningJob. + rpc GetTuningJob(GetTuningJobRequest) returns (TuningJob) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/tuningJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists TuningJobs in a Location. + rpc ListTuningJobs(ListTuningJobsRequest) returns (ListTuningJobsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/tuningJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Cancels a TuningJob. + // Starts asynchronous cancellation on the TuningJob. The server makes a best + // effort to cancel the job, but success is not guaranteed. Clients can use + // [GenAiTuningService.GetTuningJob][google.cloud.aiplatform.v1beta1.GenAiTuningService.GetTuningJob] + // or other methods to check whether the cancellation succeeded or whether the + // job completed despite cancellation. On successful cancellation, the + // TuningJob is not deleted; instead it becomes a job with a + // [TuningJob.error][google.cloud.aiplatform.v1beta1.TuningJob.error] value + // with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding + // to `Code.CANCELLED`, and + // [TuningJob.state][google.cloud.aiplatform.v1beta1.TuningJob.state] is set + // to `CANCELLED`. + rpc CancelTuningJob(CancelTuningJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/tuningJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for +// [GenAiTuningService.CreateTuningJob][google.cloud.aiplatform.v1beta1.GenAiTuningService.CreateTuningJob]. +message CreateTuningJobRequest { + // Required. The resource name of the Location to create the TuningJob in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The TuningJob to create. + TuningJob tuning_job = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [GenAiTuningService.GetTuningJob][google.cloud.aiplatform.v1beta1.GenAiTuningService.GetTuningJob]. +message GetTuningJobRequest { + // Required. The name of the TuningJob resource. Format: + // `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TuningJob" + } + ]; +} + +// Request message for +// [GenAiTuningService.ListTuningJobs][google.cloud.aiplatform.v1beta1.GenAiTuningService.ListTuningJobs]. +message ListTuningJobsRequest { + // Required. The resource name of the Location to list the TuningJobs from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The standard list filter. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via [ListTuningJob.next_page_token][] of the + // previous GenAiTuningService.ListTuningJob][] call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [GenAiTuningService.ListTuningJobs][google.cloud.aiplatform.v1beta1.GenAiTuningService.ListTuningJobs] +message ListTuningJobsResponse { + // List of TuningJobs in the requested page. + repeated TuningJob tuning_jobs = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListTuningJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTuningJobsRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [GenAiTuningService.CancelTuningJob][google.cloud.aiplatform.v1beta1.GenAiTuningService.CancelTuningJob]. +message CancelTuningJobRequest { + // Required. The name of the TuningJob to cancel. Format: + // `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TuningJob" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto index 83d2697a5..abc835822 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index.proto index 2f191141a..af235fbe7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -129,6 +129,17 @@ message Index { // A datapoint of Index. message IndexDatapoint { + // Feature embedding vector for sparse index. An array of numbers whose values + // are located in the specified dimensions. + message SparseEmbedding { + // Required. The list of embedding values of the sparse vector. + repeated float values = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of indexes for the embedding values of the sparse + // vector. + repeated int64 dimensions = 2 [(google.api.field_behavior) = REQUIRED]; + } + // Restriction of a datapoint which describe its attributes(tokens) from each // of several attribute categories(namespaces). message Restriction { @@ -168,6 +179,9 @@ message IndexDatapoint { // Datapoints are eligible iff their value is > the query's. GREATER = 5; + + // Datapoints are eligible iff their value is != the query's. + NOT_EQUAL = 6; } // The type of Value must be consistent for all datapoints with a given @@ -206,10 +220,13 @@ message IndexDatapoint { // Required. Unique identifier of the datapoint. string datapoint_id = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Feature embedding vector. An array of numbers with the length of - // [NearestNeighborSearchConfig.dimensions]. + // Required. Feature embedding vector for dense index. An array of numbers + // with the length of [NearestNeighborSearchConfig.dimensions]. repeated float feature_vector = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. Feature embedding vector for sparse index. + SparseEmbedding sparse_embedding = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of Restrict of the datapoint, used to perform "restricted // searches" where boolean rule are used to filter the subset of the database // eligible for matching. This uses categorical tokens. See: @@ -229,9 +246,12 @@ message IndexDatapoint { // Stats of the Index. message IndexStats { - // Output only. The number of vectors in the Index. + // Output only. The number of dense vectors in the Index. int64 vectors_count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The number of sparse vectors in the Index. + int64 sparse_vectors_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The number of shards in the Index. int32 shards_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint.proto index 33f196baa..4fa4b3b3e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto index 14d6fc58e..e60bde89c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_service.proto index 007e6d1c5..49d162c45 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/index_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -311,8 +311,8 @@ message NearestNeighborSearchOperationMetadata { // The embedding id is not valid. INVALID_EMBEDDING_ID = 5; - // The size of the embedding vectors does not match with the specified - // dimension. + // The size of the dense embedding vectors does not match with the + // specified dimension. EMBEDDING_SIZE_MISMATCH = 6; // The `namespace` field is missing. @@ -336,6 +336,18 @@ message NearestNeighborSearchOperationMetadata { // File is not in UTF_8 format. INVALID_ENCODING = 13; + + // Error parsing sparse dimensions field. + INVALID_SPARSE_DIMENSIONS = 14; + + // Token restrict value is invalid. + INVALID_TOKEN_VALUE = 15; + + // Invalid sparse embedding. + INVALID_SPARSE_EMBEDDING = 16; + + // Invalid dense embedding. + INVALID_EMBEDDING = 17; } // The error type of this record. @@ -370,6 +382,12 @@ message NearestNeighborSearchOperationMetadata { // invalid records that couldn't be parsed. // Up to 50 partial errors will be reported. repeated RecordError partial_errors = 4; + + // Number of sparse records in this file that were successfully processed. + int64 valid_sparse_record_count = 5; + + // Number of sparse records in this file we skipped due to validate errors. + int64 invalid_sparse_record_count = 6; } // The validation stats of the content (per file) to be inserted or diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/io.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/io.proto index d9ed3c458..42cea8ccf 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/io.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -107,3 +107,33 @@ message ContainerRegistryDestination { // If a tag is not specified, "latest" will be used as the default tag. string output_uri = 1 [(google.api.field_behavior) = REQUIRED]; } + +// The Google Drive location for the input content. +message GoogleDriveSource { + // The type and ID of the Google Drive resource. + message ResourceId { + // The type of the Google Drive resource. + enum ResourceType { + // Unspecified resource type. + RESOURCE_TYPE_UNSPECIFIED = 0; + + // File resource type. + RESOURCE_TYPE_FILE = 1; + + // Folder resource type. + RESOURCE_TYPE_FOLDER = 2; + } + + // Required. The type of the Google Drive resource. + ResourceType resource_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the Google Drive resource. + string resource_id = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Google Drive resource IDs. + repeated ResourceId resource_ids = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The input content is encapsulated and uploaded in the request. +message DirectUploadSource {} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_service.proto index f0668a631..0d9828452 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_state.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_state.proto index dd8f7332a..cbf4930bd 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_state.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/job_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto index 3e7e99a3b..7238a5ef4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/llm_utility_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/llm_utility_service.proto index 3fddf3acc..f5f554937 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/llm_utility_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/llm_utility_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/content.proto"; import "google/protobuf/struct.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; @@ -61,11 +62,19 @@ message ComputeTokensRequest { } ]; - // Required. The instances that are the input to token computing API call. + // Optional. The instances that are the input to token computing API call. // Schema is identical to the prediction schema of the text model, even for // the non-text models, like chat models, or Codey models. repeated google.protobuf.Value instances = 2 - [(google.api.field_behavior) = REQUIRED]; + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the publisher model requested to serve the + // prediction. Format: + // projects/{project}/locations/{location}/publishers/*/models/* + string model = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input content. + repeated Content contents = 4 [(google.api.field_behavior) = OPTIONAL]; } // Tokens info with a list of tokens and the corresponding list of token ids. @@ -75,6 +84,9 @@ message TokensInfo { // A list of token ids from the input. repeated int64 token_ids = 2; + + // Optional. Optional fields for the role from the corresponding Content. + string role = 3 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ComputeTokens RPC call. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/machine_resources.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/machine_resources.proto index c51246f85..b2fc44926 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/machine_resources.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/machine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -232,3 +232,17 @@ message AutoscalingMetricSpec { // (representing 60%) if not provided. int32 target = 2; } + +// A set of Shielded Instance options. +// See [Images using supported Shielded VM +// features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). +message ShieldedVmConfig { + // Defines whether the instance has [Secure + // Boot](https://cloud.google.com/compute/shielded-vm/docs/shielded-vm#secure-boot) + // enabled. + // + // Secure Boot helps ensure that the system only runs authentic software by + // verifying the digital signature of all boot components, and halting the + // boot process if signature verification fails. + bool enable_secure_boot = 1; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto index 59eec6954..23330e43f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/match_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/match_service.proto index 88f1ba11b..619775b71 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/match_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/match_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,6 +62,19 @@ message FindNeighborsRequest { // A query to find a number of the nearest neighbors (most similar vectors) // of a vector. message Query { + // Parameters for RRF algorithm that combines search results. + message RRF { + // Required. Users can provide an alpha value to give more weight to dense + // vs sparse results. For example, if the alpha is 0, we only return + // sparse and if the alpha is 1, we only return dense. + float alpha = 1 [(google.api.field_behavior) = REQUIRED]; + } + + oneof ranking { + // Optional. Represents RRF algorithm that combines search results. + RRF rrf = 6 [(google.api.field_behavior) = OPTIONAL]; + } + // Required. The datapoint/vector whose nearest neighbors should be searched // for. IndexDatapoint datapoint = 1 [(google.api.field_behavior) = REQUIRED]; @@ -131,8 +144,11 @@ message FindNeighborsResponse { // fields are populated. IndexDatapoint datapoint = 1; - // The distance between the neighbor and the query vector. + // The distance between the neighbor and the dense embedding query. double distance = 2; + + // The distance between the neighbor and the query sparse_embedding. + double sparse_distance = 3; } // Nearest neighbors for one query. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_schema.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_schema.proto index 01d3bdde9..dfcfcf545 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_schema.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_service.proto index dc000c727..9a89dd54d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_store.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_store.proto index c4d16500e..9c4c2dbd5 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_store.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/metadata_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,6 +43,13 @@ message MetadataStore { int64 disk_utilization_bytes = 1; } + // Represents Dataplex integration settings. + message DataplexConfig { + // Optional. Whether or not Data Lineage synchronization is enabled for + // Vertex Pipelines. + bool enabled_pipelines_lineage = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Output only. The resource name of the MetadataStore instance. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -64,4 +71,7 @@ message MetadataStore { // Output only. State information of the MetadataStore. MetadataStoreState state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Dataplex integration settings. + DataplexConfig dataplex_config = 8 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/migratable_resource.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/migratable_resource.proto index 907f06c23..93e297d6d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/migratable_resource.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/migratable_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/migration_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/migration_service.proto index f67773bc7..5a14e0f9f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/migration_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model.proto index 900cd8c0d..2059db649 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -104,6 +104,18 @@ message Model { ]; } + // User input field to specify the base model source. Currently it only + // supports specifing the Model Garden models and Genie models. + message BaseModelSource { + oneof source { + // Source information of Model Garden models. + ModelGardenSource model_garden_source = 1; + + // Information about the base model of Genie models. + GenieSource genie_source = 2; + } + } + // Identifies a type of Model's prediction resources. enum DeploymentResourcesType { // Should not be used. @@ -411,6 +423,17 @@ message Model { // is // `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. string metadata_artifact = 44 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. User input field to specify the base model source. Currently it + // only supports specifing the Model Garden models and Genie models. + BaseModelSource base_model_source = 50 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 51 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains information about the Large Model. @@ -421,6 +444,20 @@ message LargeModelReference { string name = 1 [(google.api.field_behavior) = REQUIRED]; } +// Contains information about the source of the models generated from Model +// Garden. +message ModelGardenSource { + // Required. The model garden source model resource name. + string public_model_name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Contains information about the source of the models generated from Generative +// AI Studio. +message GenieSource { + // Required. The public base model URI. + string base_model_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + // Contains the schemata used in Model's predictions and explanations via // [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict], // [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain] @@ -787,7 +824,7 @@ message Probe { } oneof probe_type { - // Exec specifies the action to take. + // ExecAction probes the health of a container by executing a command. ExecAction exec = 1; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto index 80b0ba28f..a83fa1253 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation.proto index 065e44447..d015eec81 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto index e1aba074a..3bb4917ea 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_garden_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_garden_service.proto index 9ff41b9d5..972964282 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_garden_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_garden_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitor.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitor.proto new file mode 100644 index 000000000..b9b3c7095 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitor.proto @@ -0,0 +1,178 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/explanation.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_spec.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ModelMonitorProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Vertex AI Model Monitoring Service serves as a central hub for the analysis +// and visualization of data quality and performance related to models. +// ModelMonitor stands as a top level resource for overseeing your model +// monitoring tasks. +message ModelMonitor { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/ModelMonitor" + pattern: "projects/{project}/locations/{location}/modelMonitors/{model_monitor}" + }; + + // The monitoring target refers to the entity that is subject to analysis. + // e.g. Vertex AI Model version. + message ModelMonitoringTarget { + // Model in Vertex AI Model Registry. + message VertexModelSource { + // Model resource name. Format: + // projects/{project}/locations/{location}/models/{model}. + string model = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; + + // Model version id. + string model_version_id = 2; + } + + oneof source { + // Model in Vertex AI Model Registry. + VertexModelSource vertex_model = 1; + } + } + + // Optional default monitoring objective, it can be overridden in the + // ModelMonitoringJob objective spec. + oneof default_objective { + // Optional default tabular model monitoring objective. + ModelMonitoringObjectiveSpec.TabularObjective tabular_objective = 11; + } + + // Immutable. Resource name of the ModelMonitor. Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}`. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The display name of the ModelMonitor. + // The name can be up to 128 characters long and can consist of any UTF-8. + string display_name = 2; + + // The entity that is subject to analysis. + // Currently only models in Vertex AI Model Registry are supported. If you + // want to analyze the model which is outside the Vertex AI, you could + // register a model in Vertex AI Model Registry using just a display name. + ModelMonitoringTarget model_monitoring_target = 3; + + // Optional training dataset used to train the model. + // It can serve as a reference dataset to identify changes in production. + ModelMonitoringInput training_dataset = 10; + + // Optional default notification spec, it can be overridden in the + // ModelMonitoringJob notification spec. + ModelMonitoringNotificationSpec notification_spec = 12; + + // Optional default monitoring metrics/logs export spec, it can be overridden + // in the ModelMonitoringJob output spec. + // If not specified, a default Google Cloud Storage bucket will be created + // under your project. + ModelMonitoringOutputSpec output_spec = 13; + + // Optional model explanation spec. It is used for feature attribution + // monitoring. + ExplanationSpec explanation_spec = 16; + + // Monitoring Schema is to specify the model's features, prediction outputs + // and ground truth properties. It is used to extract pertinent data from the + // dataset and to process features based on their properties. + // Make sure that the schema aligns with your dataset, if it does not, we will + // be unable to extract data from the dataset. + // It is required for most models, but optional for Vertex AI AutoML Tables + // unless the schem information is not available. + ModelMonitoringSchema model_monitoring_schema = 9; + + // Output only. Timestamp when this ModelMonitor was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this ModelMonitor was updated most recently. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The Model Monitoring Schema definition. +message ModelMonitoringSchema { + // Schema field definition. + message FieldSchema { + // Field name. + string name = 1; + + // Supported data types are: + // `float` + // `integer` + // `boolean` + // `string` + // `categorical` + string data_type = 2; + + // Describes if the schema field is an array of given data type. + bool repeated = 3; + } + + // Feature names of the model. Vertex AI will try to match the features from + // your dataset as follows: + // * For 'csv' files, the header names are required, and we will extract the + // corresponding feature values when the header names align with the + // feature names. + // * For 'jsonl' files, we will extract the corresponding feature values if + // the key names match the feature names. + // Note: Nested features are not supported, so please ensure your features + // are flattened. Ensure the feature values are scalar or an array of + // scalars. + // * For 'bigquery' dataset, we will extract the corresponding feature values + // if the column names match the feature names. + // Note: The column type can be a scalar or an array of scalars. STRUCT or + // JSON types are not supported. You may use SQL queries to select or + // aggregate the relevant features from your original table. However, + // ensure that the 'schema' of the query results meets our requirements. + // * For the Vertex AI Endpoint Request Response Logging table or Vertex AI + // Batch Prediction Job results. If the + // [instance_type][google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.instance_type] + // is an array, ensure that the sequence in + // [feature_fields][google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.feature_fields] + // matches the order of features in the prediction instance. We will match + // the feature with the array in the order specified in [feature_fields]. + repeated FieldSchema feature_fields = 1; + + // Prediction output names of the model. The requirements are the same as the + // [feature_fields][google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.feature_fields]. + // For AutoML Tables, the prediction output name presented in schema will be: + // `predicted_{target_column}`, the `target_column` is the one you specified + // when you train the model. + // For Prediction output drift analysis: + // * AutoML Classification, the distribution of the argmax label will be + // analyzed. + // * AutoML Regression, the distribution of the value will be analyzed. + repeated FieldSchema prediction_fields = 2; + + // Target /ground truth names of the model. + repeated FieldSchema ground_truth_fields = 3; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring.proto index de17145ec..6808e4d28 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_alert.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_alert.proto new file mode 100644 index 000000000..f3d3d7db3 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_alert.proto @@ -0,0 +1,91 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ModelMonitoringAlertProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Monitoring alert triggered condition. +message ModelMonitoringAlertCondition { + // Alert triggered condition. + oneof condition { + // A condition that compares a stats value against a threshold. Alert will + // be triggered if value above the threshold. + double threshold = 1; + } +} + +// Represents a single model monitoring anomaly. +message ModelMonitoringAnomaly { + // Tabular anomaly details. + message TabularAnomaly { + // Additional anomaly information. e.g. Google Cloud Storage uri. + string anomaly_uri = 1; + + // Overview of this anomaly. + string summary = 2; + + // Anomaly body. + google.protobuf.Value anomaly = 3; + + // The time the anomaly was triggered. + google.protobuf.Timestamp trigger_time = 4; + + // The alert condition associated with this anomaly. + ModelMonitoringAlertCondition condition = 5; + } + + oneof anomaly { + // Tabular anomaly. + TabularAnomaly tabular_anomaly = 1; + } + + // Model monitoring job resource name. + string model_monitoring_job = 2; + + // Algorithm used to calculated the metrics, eg: jensen_shannon_divergence, + // l_infinity. + string algorithm = 3; +} + +// Represents a single monitoring alert. This is currently used in the +// SearchModelMonitoringAlerts api, thus the alert wrapped in this message +// belongs to the resource asked in the request. +message ModelMonitoringAlert { + // The stats name. + string stats_name = 1; + + // One of the supported monitoring objectives: + // `raw-feature-drift` + // `prediction-output-drift` + // `feature-attribution` + string objective_type = 2; + + // Alert creation time. + google.protobuf.Timestamp alert_time = 3; + + // Anomaly details. + ModelMonitoringAnomaly anomaly = 4; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_job.proto new file mode 100644 index 000000000..6eb233c50 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_job.proto @@ -0,0 +1,118 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/job_state.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_spec.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ModelMonitoringJobProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Represents a model monitoring job that analyze dataset using different +// monitoring algorithm. +message ModelMonitoringJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/ModelMonitoringJob" + pattern: "projects/{project}/locations/{location}/modelMonitors/{model_monitor}/modelMonitoringJobs/{model_monitoring_job}" + }; + + // Output only. Resource name of a ModelMonitoringJob. Format: + // `projects/{project_id}/locations/{location_id}/modelMonitors/{model_monitor_id}/modelMonitoringJobs/{model_monitoring_job_id}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The display name of the ModelMonitoringJob. + // The name can be up to 128 characters long and can consist of any UTF-8. + string display_name = 2; + + // Monitoring monitoring job spec. It outlines the specifications for + // monitoring objectives, notifications, and result exports. If left blank, + // the default monitoring specifications from the top-level resource + // 'ModelMonitor' will be applied. If provided, we will use the specification + // defined here rather than the default one. + ModelMonitoringSpec model_monitoring_spec = 3; + + // Output only. Timestamp when this ModelMonitoringJob was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this ModelMonitoringJob was updated most + // recently. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of the monitoring job. + // * When the job is still creating, the state will be 'JOB_STATE_PENDING'. + // * Once the job is successfully created, the state will be + // 'JOB_STATE_RUNNING'. + // * Once the job is finished, the state will be one of + // 'JOB_STATE_FAILED', 'JOB_STATE_SUCCEEDED', + // 'JOB_STATE_PARTIALLY_SUCCEEDED'. + JobState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Schedule resource name. It will only appear when this job is + // triggered by a schedule. + string schedule = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Schedule" + } + ]; + + // Output only. Execution results for all the monitoring objectives. + ModelMonitoringJobExecutionDetail job_execution_detail = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this ModelMonitoringJob was scheduled. It will + // only appear when this job is triggered by a schedule. + google.protobuf.Timestamp schedule_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represent the execution details of the job. +message ModelMonitoringJobExecutionDetail { + // Processed dataset information. + message ProcessedDataset { + // Actual data location of the processed dataset. + string location = 1; + + // Dataset time range information if any. + google.type.Interval time_range = 2; + } + + // Processed baseline datasets. + repeated ProcessedDataset baseline_datasets = 1; + + // Processed target datasets. + repeated ProcessedDataset target_datasets = 2; + + // Status of data processing for each monitoring objective. + // Key is the objective. + map objective_status = 3; + + // Additional job error status. + google.rpc.Status error = 4; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_service.proto new file mode 100644 index 000000000..b4eb648e2 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_service.proto @@ -0,0 +1,475 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitor.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_alert.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_job.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_stats.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ModelMonitoringServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for creating and managing Vertex AI Model moitoring. This includes +// `ModelMonitor` resources, `ModelMonitoringJob` resources. +service ModelMonitoringService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a ModelMonitor. + rpc CreateModelMonitor(CreateModelMonitorRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/modelMonitors" + body: "model_monitor" + }; + option (google.api.method_signature) = "parent,model_monitor"; + option (google.longrunning.operation_info) = { + response_type: "ModelMonitor" + metadata_type: "CreateModelMonitorOperationMetadata" + }; + } + + // Updates a ModelMonitor. + rpc UpdateModelMonitor(UpdateModelMonitorRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{model_monitor.name=projects/*/locations/*/modelMonitors/*}" + body: "model_monitor" + }; + option (google.api.method_signature) = "model_monitor,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "ModelMonitor" + metadata_type: "UpdateModelMonitorOperationMetadata" + }; + } + + // Gets a ModelMonitor. + rpc GetModelMonitor(GetModelMonitorRequest) returns (ModelMonitor) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/modelMonitors/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists ModelMonitors in a Location. + rpc ListModelMonitors(ListModelMonitorsRequest) + returns (ListModelMonitorsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/modelMonitors" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a ModelMonitor. + rpc DeleteModelMonitor(DeleteModelMonitorRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/modelMonitors/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Creates a ModelMonitoringJob. + rpc CreateModelMonitoringJob(CreateModelMonitoringJobRequest) + returns (ModelMonitoringJob) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/modelMonitors/*}/modelMonitoringJobs" + body: "model_monitoring_job" + }; + option (google.api.method_signature) = "parent,model_monitoring_job"; + } + + // Gets a ModelMonitoringJob. + rpc GetModelMonitoringJob(GetModelMonitoringJobRequest) + returns (ModelMonitoringJob) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/modelMonitors/*/modelMonitoringJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists ModelMonitoringJobs. + // Callers may choose to read across multiple Monitors as per + // [AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash + // character) as a wildcard character instead of modelMonitor id in the + // parent. Format + // `projects/{project_id}/locations/{location}/moodelMonitors/-/modelMonitoringJobs` + rpc ListModelMonitoringJobs(ListModelMonitoringJobsRequest) + returns (ListModelMonitoringJobsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/modelMonitors/*}/modelMonitoringJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a ModelMonitoringJob. + rpc DeleteModelMonitoringJob(DeleteModelMonitoringJobRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/modelMonitors/*/modelMonitoringJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Searches Model Monitoring Stats generated within a given time window. + rpc SearchModelMonitoringStats(SearchModelMonitoringStatsRequest) + returns (SearchModelMonitoringStatsResponse) { + option (google.api.http) = { + post: "/v1beta1/{model_monitor=projects/*/locations/*/modelMonitors/*}:searchModelMonitoringStats" + body: "*" + }; + option (google.api.method_signature) = "model_monitor"; + } + + // Returns the Model Monitoring alerts. + rpc SearchModelMonitoringAlerts(SearchModelMonitoringAlertsRequest) + returns (SearchModelMonitoringAlertsResponse) { + option (google.api.http) = { + post: "/v1beta1/{model_monitor=projects/*/locations/*/modelMonitors/*}:searchModelMonitoringAlerts" + body: "*" + }; + option (google.api.method_signature) = "model_monitor"; + } +} + +// Request message for +// [ModelMonitoringService.CreateModelMonitor][google.cloud.aiplatform.v1beta1.ModelMonitoringService.CreateModelMonitor]. +message CreateModelMonitorRequest { + // Required. The resource name of the Location to create the ModelMonitor in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The ModelMonitor to create. + ModelMonitor model_monitor = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ID to use for the Model Monitor, which will become the final + // component of the model monitor resource name. + // + // The maximum length is 63 characters, and valid characters are + // `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`. + string model_monitor_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Runtime operation information for +// [ModelMonitoringService.CreateModelMonitor][google.cloud.aiplatform.v1beta1.ModelMonitoringService.CreateModelMonitor]. +message CreateModelMonitorOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [ModelMonitoringService.UpdateModelMonitor][google.cloud.aiplatform.v1beta1.ModelMonitoringService.UpdateModelMonitor]. +message UpdateModelMonitorRequest { + // Required. The model monitoring configuration which replaces the resource on + // the server. + ModelMonitor model_monitor = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask specifying which fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for +// [ModelMonitoringService.UpdateModelMonitor][google.cloud.aiplatform.v1beta1.ModelMonitoringService.UpdateModelMonitor]. +message UpdateModelMonitorOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [ModelMonitoringService.GetModelMonitor][google.cloud.aiplatform.v1beta1.ModelMonitoringService.GetModelMonitor]. +message GetModelMonitorRequest { + // Required. The name of the ModelMonitor resource. + // Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitor" + } + ]; +} + +// Request message for +// [ModelMonitoringService.ListModelMonitors][google.cloud.aiplatform.v1beta1.ModelMonitoringService.ListModelMonitors]. +message ListModelMonitorsRequest { + // Required. The resource name of the Location to list the ModelMonitors from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list filter. + // More detail in [AIP-160](https://google.aip.dev/160). + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for +// [ModelMonitoringService.ListModelMonitors][google.cloud.aiplatform.v1beta1.ModelMonitoringService.ListModelMonitors] +message ListModelMonitorsResponse { + // List of ModelMonitor in the requested page. + repeated ModelMonitor model_monitors = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListModelMonitorsRequest.page_token][google.cloud.aiplatform.v1beta1.ListModelMonitorsRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [ModelMonitoringService.DeleteModelMonitor][google.cloud.aiplatform.v1beta1.ModelMonitoringService.DeleteModelMonitor]. +message DeleteModelMonitorRequest { + // Required. The name of the ModelMonitor resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/modelMonitords/{model_monitor}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitor" + } + ]; + + // Optional. Force delete the model monitor with schedules. + bool force = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [ModelMonitoringService.CreateModelMonitoringJob][google.cloud.aiplatform.v1beta1.ModelMonitoringService.CreateModelMonitoringJob]. +message CreateModelMonitoringJobRequest { + // Required. The parent of the ModelMonitoringJob. + // Format: + // `projects/{project}/locations/{location}/modelMoniitors/{model_monitor}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitor" + } + ]; + + // Required. The ModelMonitoringJob to create + ModelMonitoringJob model_monitoring_job = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ID to use for the Model Monitoring Job, which will become the + // final component of the model monitoring job resource name. + // + // The maximum length is 63 characters, and valid characters are + // `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`. + string model_monitoring_job_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [ModelMonitoringService.GetModelMonitoringJob][google.cloud.aiplatform.v1beta1.ModelMonitoringService.GetModelMonitoringJob]. +message GetModelMonitoringJobRequest { + // Required. The resource name of the ModelMonitoringJob. + // Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}/modelMonitoringJobs/{model_monitoring_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitoringJob" + } + ]; +} + +// Request message for +// [ModelMonitoringService.ListModelMonitoringJobs][google.cloud.aiplatform.v1beta1.ModelMonitoringService.ListModelMonitoringJobs]. +message ListModelMonitoringJobsRequest { + // Required. The parent of the ModelMonitoringJob. + // Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitor" + } + ]; + + // The standard list filter. + // More detail in [AIP-160](https://google.aip.dev/160). + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; + + // Mask specifying which fields to read + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for +// [ModelMonitoringService.ListModelMonitoringJobs][google.cloud.aiplatform.v1beta1.ModelMonitoringService.ListModelMonitoringJobs]. +message ListModelMonitoringJobsResponse { + // A list of ModelMonitoringJobs that matches the specified filter + // in the request. + repeated ModelMonitoringJob model_monitoring_jobs = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for +// [ModelMonitoringService.DeleteModelMonitoringJob][google.cloud.aiplatform.v1beta1.ModelMonitoringService.DeleteModelMonitoringJob]. +message DeleteModelMonitoringJobRequest { + // Required. The resource name of the model monitoring job to delete. + // Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}/modelMonitoringJobs/{model_monitoring_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitoringJob" + } + ]; +} + +// Request message for +// [ModelMonitoringService.SearchModelMonitoringStats][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringStats]. +message SearchModelMonitoringStatsRequest { + // Required. ModelMonitor resource name. + // Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}` + string model_monitor = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitor" + } + ]; + + // Filter for search different stats. + SearchModelMonitoringStatsFilter stats_filter = 2; + + // The time interval for which results should be returned. + google.type.Interval time_interval = 3; + + // The standard list page size. + int32 page_size = 4; + + // A page token received from a previous + // [ModelMonitoringService.SearchModelMonitoringStats][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringStats] + // call. + string page_token = 5; +} + +// Response message for +// [ModelMonitoringService.SearchModelMonitoringStats][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringStats]. +message SearchModelMonitoringStatsResponse { + // Stats retrieved for requested objectives. + repeated ModelMonitoringStats monitoring_stats = 1; + + // The page token that can be used by the next + // [ModelMonitoringService.SearchModelMonitoringStats][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringStats] + // call. + string next_page_token = 2; +} + +// Request message for +// [ModelMonitoringService.SearchModelMonitoringAlerts][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringAlerts]. +message SearchModelMonitoringAlertsRequest { + // Required. ModelMonitor resource name. + // Format: + // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}` + string model_monitor = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelMonitor" + } + ]; + + // If non-empty, returns the alerts of this model monitoring job. + string model_monitoring_job = 2; + + // If non-empty, returns the alerts in this time interval. + google.type.Interval alert_time_interval = 3; + + // If non-empty, returns the alerts of this stats_name. + string stats_name = 4; + + // If non-empty, returns the alerts of this objective type. + // Supported monitoring objectives: + // `raw-feature-drift` + // `prediction-output-drift` + // `feature-attribution` + string objective_type = 5; + + // The standard list page size. + int32 page_size = 6; + + // A page token received from a previous + // [ModelMonitoringService.SearchModelMonitoringAlerts][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringAlerts] + // call. + string page_token = 7; +} + +// Response message for +// [ModelMonitoringService.SearchModelMonitoringAlerts][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringAlerts]. +message SearchModelMonitoringAlertsResponse { + // Alerts retrieved for the requested objectives. Sorted by alert time + // descendingly. + repeated ModelMonitoringAlert model_monitoring_alerts = 1; + + // The total number of alerts retrieved by the requested objectives. + int64 total_number_alerts = 2; + + // The page token that can be used by the next + // [ModelMonitoringService.SearchModelMonitoringAlerts][google.cloud.aiplatform.v1beta1.ModelMonitoringService.SearchModelMonitoringAlerts] + // call. + string next_page_token = 3; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_spec.proto new file mode 100644 index 000000000..cfb2e4720 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_spec.proto @@ -0,0 +1,294 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/explanation.proto"; +import "google/cloud/aiplatform/v1beta1/io.proto"; +import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_alert.proto"; +import "google/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ModelMonitoringSpecProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Monitoring monitoring job spec. It outlines the specifications for monitoring +// objectives, notifications, and result exports. +message ModelMonitoringSpec { + // The monitoring objective spec. + ModelMonitoringObjectiveSpec objective_spec = 1; + + // The model monitoring notification spec. + ModelMonitoringNotificationSpec notification_spec = 2; + + // The Output destination spec for metrics, error logs, etc. + ModelMonitoringOutputSpec output_spec = 3; +} + +// Monitoring objectives spec. +message ModelMonitoringObjectiveSpec { + // Data drift monitoring spec. + // Data drift measures the distribution distance between the current dataset + // and a baseline dataset. A typical use case is to detect data drift between + // the recent production serving dataset and the training dataset, or to + // compare the recent production dataset with a dataset from a previous + // period. + message DataDriftSpec { + // Feature names / Prediction output names interested in monitoring. + // These should be a subset of the input feature names or prediction output + // names specified in the monitoring schema. + // If the field is not specified all features / prediction outputs outlied + // in the monitoring schema will be used. + repeated string features = 1; + + // Supported metrics type: + // * l_infinity + // * jensen_shannon_divergence + string categorical_metric_type = 2; + + // Supported metrics type: + // * jensen_shannon_divergence + string numeric_metric_type = 3; + + // Default alert condition for all the categorical features. + ModelMonitoringAlertCondition default_categorical_alert_condition = 4; + + // Default alert condition for all the numeric features. + ModelMonitoringAlertCondition default_numeric_alert_condition = 5; + + // Per feature alert condition will override default alert condition. + map feature_alert_conditions = 6; + } + + // Feature attribution monitoring spec. + message FeatureAttributionSpec { + // Feature names interested in monitoring. + // These should be a subset of the input feature names specified in the + // monitoring schema. If the field is not specified all features outlied in + // the monitoring schema will be used. + repeated string features = 1; + + // Default alert condition for all the features. + ModelMonitoringAlertCondition default_alert_condition = 2; + + // Per feature alert condition will override default alert condition. + map feature_alert_conditions = 3; + + // The config of resources used by the Model Monitoring during the batch + // explanation for non-AutoML models. If not set, `n1-standard-2` machine + // type will be used by default. + BatchDedicatedResources batch_explanation_dedicated_resources = 4; + } + + // Tabular monitoring objective. + message TabularObjective { + // Input feature distribution drift monitoring spec. + DataDriftSpec feature_drift_spec = 10; + + // Prediction output distribution drift monitoring spec. + DataDriftSpec prediction_output_drift_spec = 11; + + // Feature attribution monitoring spec. + FeatureAttributionSpec feature_attribution_spec = 12; + } + + // The monitoring objective. + oneof objective { + // Tabular monitoring objective. + TabularObjective tabular_objective = 1; + } + + // The explanation spec. + // This spec is required when the objectives spec includes feature attribution + // objectives. + ExplanationSpec explanation_spec = 3; + + // Baseline dataset. + // It could be the training dataset or production serving dataset from a + // previous period. + ModelMonitoringInput baseline_dataset = 4; + + // Target dataset. + ModelMonitoringInput target_dataset = 5; +} + +// Specification for the export destination of monitoring results, including +// metrics, logs, etc. +message ModelMonitoringOutputSpec { + // Google Cloud Storage base folder path for metrics, error logs, etc. + GcsDestination gcs_base_directory = 1; +} + +// Model monitoring data input spec. +message ModelMonitoringInput { + // Input dataset spec. + message ModelMonitoringDataset { + // Dataset spec for data stored in Google Cloud Storage. + message ModelMonitoringGcsSource { + // Supported data format. + enum DataFormat { + // Data format unspecified, used when this field is unset. + DATA_FORMAT_UNSPECIFIED = 0; + + // CSV files. + CSV = 1; + + // TfRecord files + TF_RECORD = 2; + + // JsonL files. + JSONL = 3; + } + + // Google Cloud Storage URI to the input file(s). May contain + // wildcards. For more information on wildcards, see + // https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames. + string gcs_uri = 1; + + // Data format of the dataset. + DataFormat format = 2; + } + + // Dataset spec for data sotred in BigQuery. + message ModelMonitoringBigQuerySource { + oneof connection { + // BigQuery URI to a table, up to 2000 characters long. All the columns + // in the table will be selected. Accepted forms: + // + // * BigQuery path. For example: + // `bq://projectId.bqDatasetId.bqTableId`. + string table_uri = 1; + + // Standard SQL to be used instead of the `table_uri`. + string query = 2; + } + } + + // Choose one of supported data location for columnized dataset. + oneof data_location { + // Resource name of the Vertex AI managed dataset. + string vertex_dataset = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + }]; + + // Google Cloud Storage data source. + ModelMonitoringGcsSource gcs_source = 2; + + // BigQuery data source. + ModelMonitoringBigQuerySource bigquery_source = 6; + } + + // The timestamp field. Usually for serving data. + string timestamp_field = 7; + } + + // Data from Vertex AI Batch prediction job output. + message BatchPredictionOutput { + // Vertex AI Batch prediction job resource name. The job must match the + // model version specified in [ModelMonitor].[model_monitoring_target]. + string batch_prediction_job = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/BatchPredictionJob" + }]; + } + + // Data from Vertex AI Endpoint request response logging. + message VertexEndpointLogs { + // List of endpoint resource names. The endpoints must enable the logging + // with the [Endpoint].[request_response_logging_config], and must contain + // the deployed model corresponding to the model version specified in + // [ModelMonitor].[model_monitoring_target]. + repeated string endpoints = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + }]; + } + + // Time offset setting. + message TimeOffset { + // [offset] is the time difference from the cut-off time. + // For scheduled jobs, the cut-off time is the scheduled time. + // For non-scheduled jobs, it's the time when the job was created. + // Currently we support the following format: + // 'w|W': Week, 'd|D': Day, 'h|H': Hour + // E.g. '1h' stands for 1 hour, '2d' stands for 2 days. + string offset = 1; + + // [window] refers to the scope of data selected for analysis. + // It allows you to specify the quantity of data you wish to examine. + // Currently we support the following format: + // 'w|W': Week, 'd|D': Day, 'h|H': Hour + // E.g. '1h' stands for 1 hour, '2d' stands for 2 days. + string window = 2; + } + + // Dataset source. + oneof dataset { + // Columnized dataset. + ModelMonitoringDataset columnized_dataset = 1; + + // Vertex AI Batch prediction Job. + BatchPredictionOutput batch_prediction_output = 2; + + // Vertex AI Endpoint request & response logging. + VertexEndpointLogs vertex_endpoint_logs = 3; + } + + // Time specification for the dataset. + oneof time_spec { + // The time interval (pair of start_time and end_time) for which results + // should be returned. + google.type.Interval time_interval = 6; + + // The time offset setting for which results should be returned. + TimeOffset time_offset = 7; + } +} + +// Notification spec(email, notification channel) for model monitoring +// statistics/alerts. +message ModelMonitoringNotificationSpec { + // The config for email alerts. + message EmailConfig { + // The email addresses to send the alerts. + repeated string user_emails = 1; + } + + // Google Cloud Notification Channel config. + message NotificationChannelConfig { + // Resource names of the NotificationChannels. + // Must be of the format + // `projects//notificationChannels/` + string notification_channel = 1; + } + + // Email alert config. + EmailConfig email_config = 1; + + // Dump the anomalies to Cloud Logging. The anomalies will be put to json + // payload encoded from proto + // [google.cloud.aiplatform.logging.ModelMonitoringAnomaliesLogEntry][]. + // This can be further sinked to Pub/Sub or any other services supported + // by Cloud Logging. + bool enable_cloud_logging = 2; + + // Notification channel config. + repeated NotificationChannelConfig notification_channel_configs = 3; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_stats.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_stats.proto new file mode 100644 index 000000000..23188e990 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_monitoring_stats.proto @@ -0,0 +1,138 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ModelMonitoringStatsProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Represents the collection of statistics for a metric. +message ModelMonitoringStats { + oneof stats { + // Generated tabular statistics. + ModelMonitoringTabularStats tabular_stats = 1; + } +} + +// Represents a single statistics data point. +message ModelMonitoringStatsDataPoint { + // Typed value of the statistics. + message TypedValue { + // Summary statistics for a population of values. + message DistributionDataValue { + // Predictive monitoring drift distribution in + // `tensorflow.metadata.v0.DatasetFeatureStatistics` format. + google.protobuf.Value distribution = 1; + + // Distribution distance deviation from the current dataset's statistics + // to baseline dataset's statistics. + // * For categorical feature, the distribution distance is calculated + // by L-inifinity norm or Jensen–Shannon divergence. + // * For numerical feature, the distribution distance is calculated by + // Jensen–Shannon divergence. + double distribution_deviation = 2; + } + + // The typed value. + oneof value { + // Double. + double double_value = 1; + + // Distribution. + DistributionDataValue distribution_value = 2; + } + } + + // Statistics from current dataset. + TypedValue current_stats = 1; + + // Statistics from baseline dataset. + TypedValue baseline_stats = 2; + + // Threshold value. + double threshold_value = 3; + + // Indicate if the statistics has anomaly. + bool has_anomaly = 4; + + // Model monitoring job resource name. + string model_monitoring_job = 5; + + // Schedule resource name. + string schedule = 6; + + // Statistics create time. + google.protobuf.Timestamp create_time = 7; + + // Algorithm used to calculated the metrics, eg: jensen_shannon_divergence, + // l_infinity. + string algorithm = 8; +} + +// A collection of data points that describes the time-varying values of a +// tabular metric. +message ModelMonitoringTabularStats { + // The stats name. + string stats_name = 1; + + // One of the supported monitoring objectives: + // `raw-feature-drift` + // `prediction-output-drift` + // `feature-attribution` + string objective_type = 2; + + // The data points of this time series. When listing time series, points are + // returned in reverse time order. + repeated ModelMonitoringStatsDataPoint data_points = 3; +} + +// Filter for searching ModelMonitoringStats. +message SearchModelMonitoringStatsFilter { + // Tabular statistics filter. + message TabularStatsFilter { + // If not specified, will return all the stats_names. + string stats_name = 1; + + // One of the supported monitoring objectives: + // `raw-feature-drift` + // `prediction-output-drift` + // `feature-attribution` + string objective_type = 2; + + // From a particular monitoring job. + string model_monitoring_job = 3; + + // From a particular monitoring schedule. + string model_monitoring_schedule = 4; + + // Specify the algorithm type used for distance calculation, eg: + // jensen_shannon_divergence, l_infinity. + string algorithm = 5; + } + + oneof filter { + // Tabular statistics filter. + TabularStatsFilter tabular_stats_filter = 1; + } +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_service.proto index 04552c013..f708148db 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -358,12 +358,14 @@ message ListModelsRequest { // * `labels.key=value` - key:value equality // * `labels.key:* or labels:key - key existence // * A key including a space must be quoted. `labels."a key"`. + // * `base_model_name` only supports = // // Some examples: // // * `model=1234` // * `displayName="myDisplayName"` // * `labels.myKey="myValue"` + // * `baseModelName="text-bison"` string filter = 2; // The standard list page size. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/nas_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/nas_job.proto index d58dae4b3..18a0e011b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/nas_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/nas_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/network_spec.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/network_spec.proto new file mode 100644 index 000000000..f29de0a05 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/network_spec.proto @@ -0,0 +1,50 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NetworkSpecProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Subnetwork" + pattern: "projects/{project}/regions/{region}/subnetworks/{subnetwork}" +}; + +// Network spec. +message NetworkSpec { + // Whether to enable public internet access. Default false. + bool enable_internet_access = 1; + + // The full name of the Google Compute Engine + // [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) + string network = 2 [ + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // The name of the subnet that this instance is in. + // Format: + // `projects/{project_id_or_number}/regions/{region}/subnetworks/{subnetwork_id}` + string subnetwork = 3 [(google.api.resource_reference) = { + type: "compute.googleapis.com/Subnetwork" + }]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_euc_config.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_euc_config.proto new file mode 100644 index 000000000..ccad8cb78 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_euc_config.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookEucConfigProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// The euc configuration of NotebookRuntimeTemplate. +message NotebookEucConfig { + // Input only. Whether EUC is disabled in this NotebookRuntimeTemplate. + // In proto3, the default value of a boolean is false. In this way, by default + // EUC will be enabled for NotebookRuntimeTemplate. + bool euc_disabled = 1 [(google.api.field_behavior) = INPUT_ONLY]; + + // Output only. Whether ActAs check is bypassed for service account attached + // to the VM. If false, we need ActAs check for the default Compute Engine + // Service account. When a Runtime is created, a VM is allocated using Default + // Compute Engine Service Account. Any user requesting to use this Runtime + // requires Service Account User (ActAs) permission over this SA. If true, + // Runtime owner is using EUC and does not require the above permission as VM + // no longer use default Compute Engine SA, but a P4SA. + bool bypass_actas_check = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto new file mode 100644 index 000000000..3b544a27d --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto @@ -0,0 +1,158 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/job_state.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookExecutionJobProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// NotebookExecutionJob represents an instance of a notebook execution. +message NotebookExecutionJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/NotebookExecutionJob" + pattern: "projects/{project}/locations/{location}/notebookExecutionJobs/{notebook_execution_job}" + plural: "notebookExecutionJobs" + singular: "notebookExecutionJob" + }; + + // The Dataform Repository containing the input notebook. + message DataformRepositorySource { + // The resource name of the Dataform Repository. Format: + // `projects/{project_id}/locations/{location}/repositories/{repository_id}` + string dataform_repository_resource_name = 1; + + // The commit SHA to read repository with. If unset, the file will be read + // at HEAD. + string commit_sha = 2; + } + + // The Cloud Storage uri for the input notebook. + message GcsNotebookSource { + // The Cloud Storage uri pointing to the ipynb file. Format: + // `gs://bucket/notebook_file.ipynb` + string uri = 1; + + // The version of the Cloud Storage object to read. If unset, the current + // version of the object is read. See + // https://cloud.google.com/storage/docs/metadata#generation-number. + string generation = 2; + } + + // The content of the input notebook in ipynb format. + message DirectNotebookSource { + // The base64-encoded contents of the input notebook file. + bytes content = 1; + } + + // The input notebook. + oneof notebook_source { + // The Dataform Repository pointing to a single file notebook repository. + DataformRepositorySource dataform_repository_source = 3; + + // The Cloud Storage url pointing to the ipynb file. Format: + // `gs://bucket/notebook_file.ipynb` + GcsNotebookSource gcs_notebook_source = 4; + + // The contents of an input notebook file. + DirectNotebookSource direct_notebook_source = 17; + } + + // The compute config to use for an execution job. + oneof environment_spec { + // The NotebookRuntimeTemplate to source compute configuration from. + string notebook_runtime_template_resource_name = 14 + [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + }]; + } + + // The location to store the notebook execution result. + oneof execution_sink { + // The Cloud Storage location to upload the result to. Format: + // `gs://bucket-name` + string gcs_output_uri = 8; + } + + // The identity to run the execution as. + oneof execution_identity { + // The user email to run the execution as. Only supported by Colab runtimes. + string execution_user = 9; + + // The service account to run the execution as. + string service_account = 18; + } + + // Output only. The resource name of this NotebookExecutionJob. Format: + // `projects/{project_id}/locations/{location}/notebookExecutionJobs/{job_id}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The display name of the NotebookExecutionJob. The name can be up to 128 + // characters long and can consist of any UTF-8 characters. + string display_name = 2; + + // Max running time of the execution job in seconds (default 86400s / 24 hrs). + google.protobuf.Duration execution_timeout = 5; + + // Output only. The Schedule resource name if this job is triggered by one. + // Format: + // `projects/{project_id}/locations/{location}/schedules/{schedule_id}` + string schedule_resource_name = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Schedule" + } + ]; + + // Output only. The state of the NotebookExecutionJob. + JobState job_state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Populated when the NotebookExecutionJob is completed. When + // there is an error during notebook execution, the error details are + // populated. + google.rpc.Status status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookExecutionJob was created. + google.protobuf.Timestamp create_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookExecutionJob was most recently + // updated. + google.protobuf.Timestamp update_time = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize NotebookExecutionJobs. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. + map labels = 19; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_idle_shutdown_config.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_idle_shutdown_config.proto new file mode 100644 index 000000000..5dc681bf5 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_idle_shutdown_config.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookIdleShutdownConfigProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// The idle shutdown configuration of NotebookRuntimeTemplate, which contains +// the idle_timeout as required field. +message NotebookIdleShutdownConfig { + // Required. Duration is accurate to the second. In Notebook, Idle Timeout is + // accurate to minute so the range of idle_timeout (second) is: 10 * 60 ~ 1440 + // * 60. + google.protobuf.Duration idle_timeout = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Whether Idle Shutdown is disabled in this NotebookRuntimeTemplate. + bool idle_shutdown_disabled = 2; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_runtime.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_runtime.proto new file mode 100644 index 000000000..034653ff9 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_runtime.proto @@ -0,0 +1,292 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; +import "google/cloud/aiplatform/v1beta1/network_spec.proto"; +import "google/cloud/aiplatform/v1beta1/notebook_euc_config.proto"; +import "google/cloud/aiplatform/v1beta1/notebook_idle_shutdown_config.proto"; +import "google/cloud/aiplatform/v1beta1/notebook_runtime_template_ref.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookRuntimeProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Represents a notebook runtime type. +enum NotebookRuntimeType { + // Unspecified notebook runtime type, NotebookRuntimeType will default to + // USER_DEFINED. + NOTEBOOK_RUNTIME_TYPE_UNSPECIFIED = 0; + + // runtime or template with coustomized configurations from user. + USER_DEFINED = 1; + + // runtime or template with system defined configurations. + ONE_CLICK = 2; +} + +// A template that specifies runtime configurations such as machine type, +// runtime version, network configurations, etc. +// Multiple runtimes can be created from a runtime template. +message NotebookRuntimeTemplate { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + pattern: "projects/{project}/locations/{location}/notebookRuntimeTemplates/{notebook_runtime_template}" + }; + + // The resource name of the NotebookRuntimeTemplate. + string name = 1; + + // Required. The display name of the NotebookRuntimeTemplate. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // The description of the NotebookRuntimeTemplate. + string description = 3; + + // Output only. The default template to use if not specified. + bool is_default = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. The specification of a single machine for the + // template. + MachineSpec machine_spec = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The specification of [persistent + // disk][https://cloud.google.com/compute/docs/disks/persistent-disks] + // attached to the runtime as data disk storage. + PersistentDiskSpec data_persistent_disk_spec = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Network spec. + NetworkSpec network_spec = 12 [(google.api.field_behavior) = OPTIONAL]; + + // The service account that the runtime workload runs as. + // You can use any service account within the same project, but you + // must have the service account user permission to use the instance. + // + // If not specified, the [Compute Engine default service + // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) + // is used. + string service_account = 13; + + // Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 14; + + // The labels with user-defined metadata to organize the + // NotebookRuntimeTemplates. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + map labels = 15; + + // The idle shutdown configuration of NotebookRuntimeTemplate. This config + // will only be set when idle shutdown is enabled. + NotebookIdleShutdownConfig idle_shutdown_config = 17; + + // EUC configuration of the NotebookRuntimeTemplate. + NotebookEucConfig euc_config = 18; + + // Output only. Timestamp when this NotebookRuntimeTemplate was created. + google.protobuf.Timestamp create_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookRuntimeTemplate was most recently + // updated. + google.protobuf.Timestamp update_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. The type of the notebook runtime template. + NotebookRuntimeType notebook_runtime_type = 19 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Immutable. Runtime Shielded VM spec. + ShieldedVmConfig shielded_vm_config = 20 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The Compute Engine tags to add to runtime (see [Tagging + // instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). + repeated string network_tags = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Customer-managed encryption key spec for the notebook runtime. + EncryptionSpec encryption_spec = 23; +} + +// A runtime is a virtual machine allocated to a particular user for a +// particular Notebook file on temporary basis with lifetime limited to 24 +// hours. +message NotebookRuntime { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + pattern: "projects/{project}/locations/{location}/notebookRuntimes/{notebook_runtime}" + }; + + // The substate of the NotebookRuntime to display health information. + enum HealthState { + // Unspecified health state. + HEALTH_STATE_UNSPECIFIED = 0; + + // NotebookRuntime is in healthy state. Applies to ACTIVE state. + HEALTHY = 1; + + // NotebookRuntime is in unhealthy state. Applies to ACTIVE state. + UNHEALTHY = 2; + } + + // The substate of the NotebookRuntime to display state of runtime. + // The resource of NotebookRuntime is in ACTIVE state for these sub state. + enum RuntimeState { + // Unspecified runtime state. + RUNTIME_STATE_UNSPECIFIED = 0; + + // NotebookRuntime is in running state. + RUNNING = 1; + + // NotebookRuntime is in starting state. + BEING_STARTED = 2; + + // NotebookRuntime is in stopping state. + BEING_STOPPED = 3; + + // NotebookRuntime is in stopped state. + STOPPED = 4; + + // NotebookRuntime is in upgrading state. It is in the middle of upgrading + // process. + BEING_UPGRADED = 5; + + // NotebookRuntime was unable to start/stop properly. + ERROR = 100; + + // NotebookRuntime is in invalid state. Cannot be recovered. + INVALID = 101; + } + + // Output only. The resource name of the NotebookRuntime. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user email of the NotebookRuntime. + string runtime_user = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The pointer to NotebookRuntimeTemplate this NotebookRuntime is + // created from. + NotebookRuntimeTemplateRef notebook_runtime_template_ref = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The proxy endpoint used to access the NotebookRuntime. + string proxy_uri = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookRuntime was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookRuntime was most recently updated. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The health state of the NotebookRuntime. + HealthState health_state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the NotebookRuntime. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 10 [(google.api.field_behavior) = REQUIRED]; + + // The description of the NotebookRuntime. + string description = 11; + + // Output only. The service account that the NotebookRuntime workload runs as. + string service_account = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The runtime (instance) state of the NotebookRuntime. + RuntimeState runtime_state = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether NotebookRuntime is upgradable. + bool is_upgradable = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize your + // NotebookRuntime. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // No more than 64 user labels can be associated with one NotebookRuntime + // (System labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. Following system labels exist for NotebookRuntime: + // + // * "aiplatform.googleapis.com/notebook_runtime_gce_instance_id": output + // only, its value is the Compute Engine instance id. + // * "aiplatform.googleapis.com/colab_enterprise_entry_service": its value is + // either "bigquery" or "vertex"; if absent, it should be "vertex". This is to + // describe the entry service, either BigQuery or Vertex. + map labels = 16; + + // Output only. Timestamp when this NotebookRuntime will be expired: + // 1. System Predefined NotebookRuntime: 24 hours after creation. After + // expiration, system predifined runtime will be deleted. + // 2. User created NotebookRuntime: 6 months after last upgrade. After + // expiration, user created runtime will be stopped and allowed for upgrade. + google.protobuf.Timestamp expiration_time = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The VM os image version of NotebookRuntime. + string version = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the notebook runtime. + NotebookRuntimeType notebook_runtime_type = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The idle shutdown configuration of the notebook runtime. + NotebookIdleShutdownConfig idle_shutdown_config = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The Compute Engine tags to add to runtime (see [Tagging + // instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). + repeated string network_tags = 25 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Customer-managed encryption key spec for the notebook runtime. + EncryptionSpec encryption_spec = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_runtime_template_ref.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_runtime_template_ref.proto new file mode 100644 index 000000000..0f9cfb866 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_runtime_template_ref.proto @@ -0,0 +1,39 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookRuntimeTemplateRefProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Points to a NotebookRuntimeTemplateRef. +message NotebookRuntimeTemplateRef { + // Immutable. A resource name of the NotebookRuntimeTemplate. + string notebook_runtime_template = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_service.proto new file mode 100644 index 000000000..66880fd49 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/notebook_service.proto @@ -0,0 +1,715 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/notebook_execution_job.proto"; +import "google/cloud/aiplatform/v1beta1/notebook_runtime.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// The interface for Vertex Notebook service (a.k.a. Colab on Workbench). +service NotebookService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a NotebookRuntimeTemplate. + rpc CreateNotebookRuntimeTemplate(CreateNotebookRuntimeTemplateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + body: "notebook_runtime_template" + }; + option (google.api.method_signature) = + "parent,notebook_runtime_template,notebook_runtime_template_id"; + option (google.longrunning.operation_info) = { + response_type: "NotebookRuntimeTemplate" + metadata_type: "CreateNotebookRuntimeTemplateOperationMetadata" + }; + } + + // Gets a NotebookRuntimeTemplate. + rpc GetNotebookRuntimeTemplate(GetNotebookRuntimeTemplateRequest) + returns (NotebookRuntimeTemplate) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists NotebookRuntimeTemplates in a Location. + rpc ListNotebookRuntimeTemplates(ListNotebookRuntimeTemplatesRequest) + returns (ListNotebookRuntimeTemplatesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimeTemplates" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a NotebookRuntimeTemplate. + rpc DeleteNotebookRuntimeTemplate(DeleteNotebookRuntimeTemplateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/notebookRuntimeTemplates/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Updates a NotebookRuntimeTemplate. + rpc UpdateNotebookRuntimeTemplate(UpdateNotebookRuntimeTemplateRequest) + returns (NotebookRuntimeTemplate) { + option (google.api.http) = { + patch: "/v1beta1/{notebook_runtime_template.name=projects/*/locations/*/notebookRuntimeTemplates/*}" + body: "notebook_runtime_template" + }; + option (google.api.method_signature) = + "notebook_runtime_template,update_mask"; + } + + // Assigns a NotebookRuntime to a user for a particular Notebook file. This + // method will either returns an existing assignment or generates a new one. + rpc AssignNotebookRuntime(AssignNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimes:assign" + body: "*" + }; + option (google.api.method_signature) = + "parent,notebook_runtime_template,notebook_runtime,notebook_runtime_id"; + option (google.longrunning.operation_info) = { + response_type: "NotebookRuntime" + metadata_type: "AssignNotebookRuntimeOperationMetadata" + }; + } + + // Gets a NotebookRuntime. + rpc GetNotebookRuntime(GetNotebookRuntimeRequest) returns (NotebookRuntime) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists NotebookRuntimes in a Location. + rpc ListNotebookRuntimes(ListNotebookRuntimesRequest) + returns (ListNotebookRuntimesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/notebookRuntimes" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a NotebookRuntime. + rpc DeleteNotebookRuntime(DeleteNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Upgrades a NotebookRuntime. + rpc UpgradeNotebookRuntime(UpgradeNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}:upgrade" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "UpgradeNotebookRuntimeResponse" + metadata_type: "UpgradeNotebookRuntimeOperationMetadata" + }; + } + + // Starts a NotebookRuntime. + rpc StartNotebookRuntime(StartNotebookRuntimeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/notebookRuntimes/*}:start" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "StartNotebookRuntimeResponse" + metadata_type: "StartNotebookRuntimeOperationMetadata" + }; + } + + // Creates a NotebookExecutionJob. + rpc CreateNotebookExecutionJob(CreateNotebookExecutionJobRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/notebookExecutionJobs" + body: "notebook_execution_job" + }; + option (google.api.method_signature) = + "parent,notebook_execution_job,notebook_execution_job_id"; + option (google.longrunning.operation_info) = { + response_type: "NotebookExecutionJob" + metadata_type: "CreateNotebookExecutionJobOperationMetadata" + }; + } + + // Gets a NotebookExecutionJob. + rpc GetNotebookExecutionJob(GetNotebookExecutionJobRequest) + returns (NotebookExecutionJob) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists NotebookExecutionJobs in a Location. + rpc ListNotebookExecutionJobs(ListNotebookExecutionJobsRequest) + returns (ListNotebookExecutionJobsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/notebookExecutionJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a NotebookExecutionJob. + rpc DeleteNotebookExecutionJob(DeleteNotebookExecutionJobRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } +} + +// Views for Get/List NotebookExecutionJob +enum NotebookExecutionJobView { + // When unspecified, the API defaults to the BASIC view. + NOTEBOOK_EXECUTION_JOB_VIEW_UNSPECIFIED = 0; + + // Includes all fields except for direct notebook inputs. + NOTEBOOK_EXECUTION_JOB_VIEW_BASIC = 1; + + // Includes all fields. + NOTEBOOK_EXECUTION_JOB_VIEW_FULL = 2; +} + +// Request message for +// [NotebookService.CreateNotebookRuntimeTemplate][google.cloud.aiplatform.v1beta1.NotebookService.CreateNotebookRuntimeTemplate]. +message CreateNotebookRuntimeTemplateRequest { + // Required. The resource name of the Location to create the + // NotebookRuntimeTemplate. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The NotebookRuntimeTemplate to create. + NotebookRuntimeTemplate notebook_runtime_template = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified ID for the notebook runtime template. + string notebook_runtime_template_id = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata information for +// [NotebookService.CreateNotebookRuntimeTemplate][google.cloud.aiplatform.v1beta1.NotebookService.CreateNotebookRuntimeTemplate]. +message CreateNotebookRuntimeTemplateOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [NotebookService.GetNotebookRuntimeTemplate][google.cloud.aiplatform.v1beta1.NotebookService.GetNotebookRuntimeTemplate] +message GetNotebookRuntimeTemplateRequest { + // Required. The name of the NotebookRuntimeTemplate resource. + // Format: + // `projects/{project}/locations/{location}/notebookRuntimeTemplates/{notebook_runtime_template}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; +} + +// Request message for +// [NotebookService.ListNotebookRuntimeTemplates][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimeTemplates]. +message ListNotebookRuntimeTemplatesRequest { + // Required. The resource name of the Location from which to list the + // NotebookRuntimeTemplates. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field + // names both snake_case and camelCase are supported. + // + // * `notebookRuntimeTemplate` supports = and !=. `notebookRuntimeTemplate` + // represents the NotebookRuntimeTemplate ID, + // i.e. the last segment of the NotebookRuntimeTemplate's [resource name] + // [google.cloud.aiplatform.v1beta1.NotebookRuntimeTemplate.name]. + // * `display_name` supports = and != + // * `labels` supports general map functions that is: + // * `labels.key=value` - key:value equality + // * `labels.key:* or labels:key - key existence + // * A key including a space must be quoted. `labels."a key"`. + // * `notebookRuntimeType` supports = and !=. notebookRuntimeType enum: + // [USER_DEFINED, ONE_CLICK]. + // + // Some examples: + // + // * `notebookRuntimeTemplate=notebookRuntimeTemplate123` + // * `displayName="myDisplayName"` + // * `labels.myKey="myValue"` + // * `notebookRuntimeType=USER_DEFINED` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListNotebookRuntimeTemplatesResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListNotebookRuntimeTemplatesResponse.next_page_token] + // of the previous + // [NotebookService.ListNotebookRuntimeTemplates][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimeTemplates] + // call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [NotebookService.ListNotebookRuntimeTemplates][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimeTemplates]. +message ListNotebookRuntimeTemplatesResponse { + // List of NotebookRuntimeTemplates in the requested page. + repeated NotebookRuntimeTemplate notebook_runtime_templates = 1; + + // A token to retrieve next page of results. + // Pass to + // [ListNotebookRuntimeTemplatesRequest.page_token][google.cloud.aiplatform.v1beta1.ListNotebookRuntimeTemplatesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [NotebookService.DeleteNotebookRuntimeTemplate][google.cloud.aiplatform.v1beta1.NotebookService.DeleteNotebookRuntimeTemplate]. +message DeleteNotebookRuntimeTemplateRequest { + // Required. The name of the NotebookRuntimeTemplate resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/notebookRuntimeTemplates/{notebook_runtime_template}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; +} + +// Request message for +// [NotebookService.UpdateNotebookRuntimeTemplate][google.cloud.aiplatform.v1beta1.NotebookService.UpdateNotebookRuntimeTemplate]. +message UpdateNotebookRuntimeTemplateRequest { + // Required. The NotebookRuntimeTemplate to update. + NotebookRuntimeTemplate notebook_runtime_template = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see + // [google.protobuf.FieldMask][google.protobuf.FieldMask]. Input format: + // `{paths: "${updated_filed}"}` Updatable fields: + // + // * `encryption_spec.kms_key_name` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [NotebookService.AssignNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.AssignNotebookRuntime]. +message AssignNotebookRuntimeRequest { + // Required. The resource name of the Location to get the NotebookRuntime + // assignment. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The resource name of the NotebookRuntimeTemplate based on which a + // NotebookRuntime will be assigned (reuse or create a new one). + string notebook_runtime_template = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; + + // Required. Provide runtime specific information (e.g. runtime owner, + // notebook id) used for NotebookRuntime assignment. + NotebookRuntime notebook_runtime = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified ID for the notebook runtime. + string notebook_runtime_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata information for +// [NotebookService.AssignNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.AssignNotebookRuntime]. +message AssignNotebookRuntimeOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Request message for +// [NotebookService.GetNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.GetNotebookRuntime] +message GetNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Request message for +// [NotebookService.ListNotebookRuntimes][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimes]. +message ListNotebookRuntimesRequest { + // Required. The resource name of the Location from which to list the + // NotebookRuntimes. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field + // names both snake_case and camelCase are supported. + // + // * `notebookRuntime` supports = and !=. `notebookRuntime` represents the + // NotebookRuntime ID, + // i.e. the last segment of the NotebookRuntime's [resource name] + // [google.cloud.aiplatform.v1beta1.NotebookRuntime.name]. + // * `displayName` supports = and != and regex. + // * `notebookRuntimeTemplate` supports = and !=. `notebookRuntimeTemplate` + // represents the NotebookRuntimeTemplate ID, + // i.e. the last segment of the NotebookRuntimeTemplate's [resource name] + // [google.cloud.aiplatform.v1beta1.NotebookRuntimeTemplate.name]. + // * `healthState` supports = and !=. healthState enum: [HEALTHY, UNHEALTHY, + // HEALTH_STATE_UNSPECIFIED]. + // * `runtimeState` supports = and !=. runtimeState enum: + // [RUNTIME_STATE_UNSPECIFIED, RUNNING, BEING_STARTED, BEING_STOPPED, + // STOPPED, BEING_UPGRADED, ERROR, INVALID]. + // * `runtimeUser` supports = and !=. + // * API version is UI only: `uiState` supports = and !=. uiState enum: + // [UI_RESOURCE_STATE_UNSPECIFIED, UI_RESOURCE_STATE_BEING_CREATED, + // UI_RESOURCE_STATE_ACTIVE, UI_RESOURCE_STATE_BEING_DELETED, + // UI_RESOURCE_STATE_CREATION_FAILED]. + // * `notebookRuntimeType` supports = and !=. notebookRuntimeType enum: + // [USER_DEFINED, ONE_CLICK]. + // + // Some examples: + // + // * `notebookRuntime="notebookRuntime123"` + // * `displayName="myDisplayName"` and `displayName=~"myDisplayNameRegex"` + // * `notebookRuntimeTemplate="notebookRuntimeTemplate321"` + // * `healthState=HEALTHY` + // * `runtimeState=RUNNING` + // * `runtimeUser="test@google.com"` + // * `uiState=UI_RESOURCE_STATE_BEING_DELETED` + // * `notebookRuntimeType=USER_DEFINED` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListNotebookRuntimesResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListNotebookRuntimesResponse.next_page_token] + // of the previous + // [NotebookService.ListNotebookRuntimes][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimes] + // call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [NotebookService.ListNotebookRuntimes][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookRuntimes]. +message ListNotebookRuntimesResponse { + // List of NotebookRuntimes in the requested page. + repeated NotebookRuntime notebook_runtimes = 1; + + // A token to retrieve next page of results. + // Pass to + // [ListNotebookRuntimesRequest.page_token][google.cloud.aiplatform.v1beta1.ListNotebookRuntimesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [NotebookService.DeleteNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.DeleteNotebookRuntime]. +message DeleteNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource to be deleted. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Request message for +// [NotebookService.UpgradeNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.UpgradeNotebookRuntime]. +message UpgradeNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource to be upgrade. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Metadata information for +// [NotebookService.UpgradeNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.UpgradeNotebookRuntime]. +message UpgradeNotebookRuntimeOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Response message for +// [NotebookService.UpgradeNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.UpgradeNotebookRuntime]. +message UpgradeNotebookRuntimeResponse {} + +// Request message for +// [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.StartNotebookRuntime]. +message StartNotebookRuntimeRequest { + // Required. The name of the NotebookRuntime resource to be started. + // Instead of checking whether the name is in valid NotebookRuntime resource + // name format, directly throw NotFound exception if there is no such + // NotebookRuntime in spanner. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntime" + } + ]; +} + +// Metadata information for +// [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.StartNotebookRuntime]. +message StartNotebookRuntimeOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Response message for +// [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1beta1.NotebookService.StartNotebookRuntime]. +message StartNotebookRuntimeResponse {} + +// Request message for [NotebookService.CreateNotebookExecutionJob] +message CreateNotebookExecutionJobRequest { + // Required. The resource name of the Location to create the + // NotebookExecutionJob. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The NotebookExecutionJob to create. + NotebookExecutionJob notebook_execution_job = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified ID for the NotebookExecutionJob. + string notebook_execution_job_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata information for +// [NotebookService.CreateNotebookExecutionJob][google.cloud.aiplatform.v1beta1.NotebookService.CreateNotebookExecutionJob]. +message CreateNotebookExecutionJobOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Request message for [NotebookService.GetNotebookExecutionJob] +message GetNotebookExecutionJobRequest { + // Required. The name of the NotebookExecutionJob resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookExecutionJob" + } + ]; + + // Optional. The NotebookExecutionJob view. Defaults to BASIC. + NotebookExecutionJobView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for [NotebookService.ListNotebookExecutionJobs] +message ListNotebookExecutionJobsRequest { + // Required. The resource name of the Location from which to list the + // NotebookExecutionJobs. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field + // names both snake_case and camelCase are supported. + // + // * `notebookExecutionJob` supports = and !=. `notebookExecutionJob` + // represents the NotebookExecutionJob ID. + // * `displayName` supports = and != and regex. + // * `schedule` supports = and != and regex. + // + // Some examples: + // * `notebookExecutionJob="123"` + // * `notebookExecutionJob="my-execution-job"` + // * `displayName="myDisplayName"` and `displayName=~"myDisplayNameRegex"` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListNotebookExecutionJobs.next_page_token][] of the previous + // [NotebookService.ListNotebookExecutionJobs][google.cloud.aiplatform.v1beta1.NotebookService.ListNotebookExecutionJobs] + // call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The NotebookExecutionJob view. Defaults to BASIC. + NotebookExecutionJobView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for [NotebookService.CreateNotebookExecutionJob] +message ListNotebookExecutionJobsResponse { + // List of NotebookExecutionJobs in the requested page. + repeated NotebookExecutionJob notebook_execution_jobs = 1; + + // A token to retrieve next page of results. + // Pass to [ListNotebookExecutionJobs.page_token][] to obtain that + // page. + string next_page_token = 2; +} + +// Request message for [NotebookService.DeleteNotebookExecutionJob] +message DeleteNotebookExecutionJobRequest { + // Required. The name of the NotebookExecutionJob resource to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookExecutionJob" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/openapi.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/openapi.proto index f0759d7ce..ba8f6a753 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/openapi.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/openapi.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,30 +62,69 @@ message Schema { // Optional. The format of the data. // Supported formats: - // for NUMBER type: float, double - // for INTEGER type: int32, int64 + // for NUMBER type: "float", "double" + // for INTEGER type: "int32", "int64" + // for STRING type: "email", "byte", etc string format = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The title of the Schema. + string title = 24 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The description of the data. string description = 8 [(google.api.field_behavior) = OPTIONAL]; // Optional. Indicates if the value may be null. bool nullable = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Schema of the elements of Type.ARRAY. + // Optional. Default value of the data. + google.protobuf.Value default = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SCHEMA FIELDS FOR TYPE ARRAY + // Schema of the elements of Type.ARRAY. Schema items = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Minimum number of the elements for Type.ARRAY. + int64 min_items = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of the elements for Type.ARRAY. + int64 max_items = 22 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Possible values of the element of Type.STRING with enum format. // For example we can define an Enum Direction as : // {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} repeated string enum = 9 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Properties of Type.OBJECT. + // Optional. SCHEMA FIELDS FOR TYPE OBJECT + // Properties of Type.OBJECT. map properties = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Required properties of Type.OBJECT. repeated string required = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Minimum number of the properties for Type.OBJECT. + int64 min_properties = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of the properties for Type.OBJECT. + int64 max_properties = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER + // Minimum value of the Type.INTEGER and Type.NUMBER + double minimum = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum value of the Type.INTEGER and Type.NUMBER + double maximum = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SCHEMA FIELDS FOR TYPE STRING + // Minimum length of the Type.STRING + int64 min_length = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum length of the Type.STRING + int64 max_length = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Pattern of the Type.STRING to restrict a string to a regular + // expression. + string pattern = 20 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Example of the object. Will only populated when the object is the // root. google.protobuf.Value example = 4 [(google.api.field_behavior) = OPTIONAL]; diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/operation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/operation.proto index 965d57a61..99adffe6b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/operation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource.proto index 8e2aa894b..78a279edf 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -60,6 +60,13 @@ message PersistentResource { // The ERROR state indicates the persistent resource may be unusable. // Details can be found in the `error` field. ERROR = 5; + + // The REBOOTING state indicates the persistent resource is being rebooted + // (PR is not available right now but is expected to be ready again later). + REBOOTING = 6; + + // The UPDATING state indicates the persistent resource is being updated. + UPDATING = 7; } // Immutable. Resource name of a PersistentResource. @@ -156,7 +163,13 @@ message ResourcePool { // The min/max number of replicas allowed if enabling autoscaling message AutoscalingSpec { // Optional. min replicas in the node pool, - // must be ≤ replica_count and < max_replica_count or will throw error + // must be ≤ replica_count and < max_replica_count or will throw error. + // For autoscaling enabled Ray-on-Vertex, we allow min_replica_count of a + // resource_pool to be 0 to match the OSS Ray + // behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). + // As for Persistent Resource, the min_replica_count must be > 0, we added + // a corresponding validation inside + // CreatePersistentResourceRequestValidator.java. optional int64 min_replica_count = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -187,7 +200,7 @@ message ResourcePool { // this resource pool. Will replace idle_replica_count. int64 used_replica_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Optional spec to configure GKE autoscaling + // Optional. Optional spec to configure GKE or Ray-on-Vertex autoscaling AutoscalingSpec autoscaling_spec = 7 [(google.api.field_behavior) = OPTIONAL]; } @@ -252,6 +265,19 @@ message ResourceRuntime { // } map access_uris = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of NotebookRuntimeTemplate for the RoV + // Persistent Cluster The NotebokRuntimeTemplate is created in the same VPC + // (if set), and with the same Ray and Python version as the Persistent + // Cluster. Example: + // "projects/1000/locations/us-central1/notebookRuntimeTemplates/abc123" + string notebook_runtime_template = 2 [ + deprecated = true, + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + } + ]; } // Configuration for the use of custom service account to run the workloads. @@ -263,18 +289,17 @@ message ServiceAccountSpec { bool enable_custom_service_account = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. Default service account that this PersistentResource's workloads - // run as. The workloads include: - // - // * Any runtime specified via `ResourceRuntimeSpec` on creation time, - // for example, Ray. - // * Jobs submitted to PersistentResource, if no other service account - // specified in the job specs. + // Optional. Required when all below conditions are met + // * `enable_custom_service_account` is true; + // * any runtime is specified via `ResourceRuntimeSpec` on creation time, + // for example, Ray // - // Only works when custom service account is enabled and users have the - // `iam.serviceAccounts.actAs` permission on this service account. + // The users must have `iam.serviceAccounts.actAs` permission on this service + // account and then the specified runtime containers will run as it. // - // Required if any containers are specified in `ResourceRuntimeSpec`. + // Do not set this field if you want to submit jobs using custom service + // account to this PersistentResource after creation, but only specify the + // `service_account` inside the job. string service_account = 2 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource_service.proto index 2213921cc..c73f4d94d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/persistent_resource_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -99,6 +99,20 @@ service PersistentResourceService { metadata_type: "UpdatePersistentResourceOperationMetadata" }; } + + // Reboots a PersistentResource. + rpc RebootPersistentResource(RebootPersistentResourceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/persistentResources/*}:reboot" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "PersistentResource" + metadata_type: "RebootPersistentResourceOperationMetadata" + }; + } } // Request message for @@ -129,12 +143,27 @@ message CreatePersistentResourceRequest { message CreatePersistentResourceOperationMetadata { // Operation metadata for PersistentResource. GenericOperationMetadata generic_metadata = 1; + + // Progress Message for Create LRO + string progress_message = 2; } // Details of operations that perform update PersistentResource. message UpdatePersistentResourceOperationMetadata { // Operation metadata for PersistentResource. GenericOperationMetadata generic_metadata = 1; + + // Progress Message for Update LRO + string progress_message = 2; +} + +// Details of operations that perform reboot PersistentResource. +message RebootPersistentResourceOperationMetadata { + // Operation metadata for PersistentResource. + GenericOperationMetadata generic_metadata = 1; + + // Progress Message for Reboot LRO + string progress_message = 2; } // Request message for @@ -213,3 +242,17 @@ message UpdatePersistentResourceRequest { google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } + +// Request message for +// [PersistentResourceService.RebootPersistentResource][google.cloud.aiplatform.v1beta1.PersistentResourceService.RebootPersistentResource]. +message RebootPersistentResourceRequest { + // Required. The name of the PersistentResource resource. + // Format: + // `projects/{project_id_or_number}/locations/{location_id}/persistentResources/{persistent_resource_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PersistentResource" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto index 14501c2f9..4e902797c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_failure_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_job.proto index b97931f7b..7a602ce17 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_job.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -213,6 +213,9 @@ message PipelineJob { // Output only. The schedule resource name. // Only returned if the Pipeline is created by Schedule API. string schedule_name = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Whether to do component level validations before job creation. + bool preflight_validations = 26 [(google.api.field_behavior) = OPTIONAL]; } // Pipeline template metadata if diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_service.proto index 116acce39..40ce5ca69 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -357,10 +357,6 @@ message CreatePipelineJobRequest { // This value should be less than 128 characters, and valid characters // are `/[a-z][0-9]-/`. string pipeline_job_id = 3; - - // Optional. Whether to do component level validations before job creation. - // Currently we only support Google First Party Component/Pipelines. - bool preflight_validations = 4 [(google.api.field_behavior) = OPTIONAL]; } // Request message for diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_state.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_state.proto index d7cf152d6..651396661 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_state.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/pipeline_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/prediction_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/prediction_service.proto index 5eafeabf3..05650bd27 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/prediction_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,7 +39,8 @@ option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; service PredictionService { option (google.api.default_host) = "aiplatform.googleapis.com"; option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; // Perform an online prediction. rpc Predict(PredictRequest) returns (PredictResponse) { @@ -77,6 +78,20 @@ service PredictionService { option (google.api.method_signature) = "endpoint,http_body"; } + // Perform a streaming online prediction with an arbitrary HTTP payload. + rpc StreamRawPredict(StreamRawPredictRequest) + returns (stream google.api.HttpBody) { + option (google.api.http) = { + post: "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:streamRawPredict" + body: "*" + additional_bindings { + post: "/v1beta1/{endpoint=projects/*/locations/*/publishers/*/models/*}:streamRawPredict" + body: "*" + } + }; + option (google.api.method_signature) = "endpoint,http_body"; + } + // Perform an unary online prediction request to a gRPC model server for // Vertex first-party products and frameworks. rpc DirectPredict(DirectPredictRequest) returns (DirectPredictResponse) { @@ -189,6 +204,16 @@ service PredictionService { }; option (google.api.method_signature) = "model,contents"; } + + // Exposes an OpenAI-compatible endpoint for chat completions. + rpc ChatCompletions(ChatCompletionsRequest) + returns (stream google.api.HttpBody) { + option (google.api.http) = { + post: "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}/chat/completions" + body: "http_body" + }; + option (google.api.method_signature) = "endpoint,http_body"; + } } // Request message for @@ -294,6 +319,23 @@ message RawPredictRequest { google.api.HttpBody http_body = 2; } +// Request message for +// [PredictionService.StreamRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamRawPredict]. +message StreamRawPredictRequest { + // Required. The name of the Endpoint requested to serve the prediction. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string endpoint = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // The prediction input. Supports HTTP headers and arbitrary data payload. + google.api.HttpBody http_body = 2; +} + // Request message for // [PredictionService.DirectPredict][google.cloud.aiplatform.v1beta1.PredictionService.DirectPredict]. message DirectPredictRequest { @@ -661,6 +703,24 @@ message GenerateContentRequest { // request. repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. The user provided system instructions for the model. + // Note: only text should be used in parts and content in each part will be in + // a separate paragraph. + optional Content system_instruction = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the cached content used as context to serve the + // prediction. Note: only used in explicit caching, where users can have + // control over caching (e.g. what content to cache) and enjoy guaranteed cost + // savings. Format: + // `projects/{project}/locations/{location}/cachedContents/{cachedContent}` + string cached_content = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CachedContent" + } + ]; + // Optional. A list of `Tools` the model may use to generate the next // response. // @@ -669,6 +729,10 @@ message GenerateContentRequest { // knowledge and scope of the model. repeated Tool tools = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Tool config. This config is shared for all tools provided in the + // request. + ToolConfig tool_config = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Per request settings for blocking unsafe content. // Enforced on GenerateContentResponse.candidates. repeated SafetySetting safety_settings = 3 @@ -693,6 +757,13 @@ message GenerateContentResponse { // Candidates blocked due to other reason. OTHER = 2; + + // Candidates blocked due to the terms which are included from the + // terminology blocklist. + BLOCKLIST = 3; + + // Candidates blocked due to prohibited content. + PROHIBITED_CONTENT = 4; } // Output only. Blocked reason. @@ -729,3 +800,20 @@ message GenerateContentResponse { // Usage metadata about the response(s). UsageMetadata usage_metadata = 4; } + +// Request message for [PredictionService.ChatCompletions] +message ChatCompletionsRequest { + // Required. The name of the Endpoint requested to serve the prediction. + // Format: + // `projects/{project}/locations/{location}/endpoints/openapi` + string endpoint = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // Optional. The prediction input. Supports HTTP headers and arbitrary data + // payload. + google.api.HttpBody http_body = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/publisher_model.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/publisher_model.proto index 98e556fba..eff93af47 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/publisher_model.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/publisher_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -125,6 +125,14 @@ message PublisherModel { // Model metadata that is needed for UploadModel or // DeployModel/CreateEndpoint requests. message Deploy { + // Metadata information about the deployment for managing deployment + // config. + message DeployMetadata { + // Optional. Labels for the deployment. For managing deployment config + // like verifying, source of deployment config, etc. + map labels = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // The prediction (for example, the machine) resources that the // DeployedModel uses. oneof prediction_resources { @@ -159,6 +167,15 @@ message PublisherModel { // any of its supporting files. string artifact_uri = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The name of the deploy task (e.g., "text to image + // generation"). + optional string deploy_task_name = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Metadata information about this deployment config. + optional DeployMetadata deploy_metadata = 11 + [(google.api.field_behavior) = OPTIONAL]; + // Required. The title of the regional resource reference. string title = 8 [(google.api.field_behavior) = REQUIRED]; @@ -253,16 +270,23 @@ message PublisherModel { // The model launch stage is unspecified. LAUNCH_STAGE_UNSPECIFIED = 0; - // Used to indicate the PublisherModel is at Experimental launch stage. + // Used to indicate the PublisherModel is at Experimental launch stage, + // available to a small set of customers. EXPERIMENTAL = 1; - // Used to indicate the PublisherModel is at Private Preview launch stage. + // Used to indicate the PublisherModel is at Private Preview launch stage, + // only available to a small set of customers, although a larger set of + // customers than an Experimental launch. Previews are the first launch + // stage used to get feedback from customers. PRIVATE_PREVIEW = 2; - // Used to indicate the PublisherModel is at Public Preview launch stage. + // Used to indicate the PublisherModel is at Public Preview launch stage, + // available to all customers, although not supported for production + // workloads. PUBLIC_PREVIEW = 3; - // Used to indicate the PublisherModel is at GA launch stage. + // Used to indicate the PublisherModel is at GA launch stage, available to + // all customers and ready for production workload. GA = 4; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine.proto new file mode 100644 index 000000000..4fa15aa9a --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine.proto @@ -0,0 +1,92 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ReasoningEngineProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// ReasoningEngine configurations +message ReasoningEngineSpec { + // User provided package spec like pickled object and package requirements. + message PackageSpec { + // Optional. The Cloud Storage URI of the pickled python object. + string pickle_object_gcs_uri = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Cloud Storage URI of the dependency files in tar.gz format. + string dependency_files_gcs_uri = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Cloud Storage URI of the `requirements.txt` file + string requirements_gcs_uri = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Python version. Currently support 3.8, 3.9, 3.10, 3.11. + // If not specified, default value is 3.10. + string python_version = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. User provided package spec of the ReasoningEngine. + PackageSpec package_spec = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Declarations for object class methods. + repeated google.protobuf.Struct class_methods = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// ReasoningEngine provides a customizable runtime for models to determine +// which actions to take and in which order. +message ReasoningEngine { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/ReasoningEngine" + pattern: "projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}" + plural: "reasoningEngines" + singular: "reasoningEngine" + }; + + // Identifier. The resource name of the ReasoningEngine. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the ReasoningEngine. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the ReasoningEngine. + string description = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Configurations of the ReasoningEngine + ReasoningEngineSpec spec = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when this ReasoningEngine was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this ReasoningEngine was most recently updated. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Used to perform consistent read-modify-write updates. If not set, + // a blind "overwrite" update happens. + string etag = 6 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine_execution_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine_execution_service.proto new file mode 100644 index 000000000..49364b9cf --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine_execution_service.proto @@ -0,0 +1,70 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ReasoningEngineExecutionServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for executing queries on Reasoning Engine. +service ReasoningEngineExecutionService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Queries using a reasoning engine. + rpc QueryReasoningEngine(QueryReasoningEngineRequest) + returns (QueryReasoningEngineResponse) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}:query" + body: "*" + }; + } +} + +// Request message for [ReasoningEngineExecutionService.Query][]. +message QueryReasoningEngineRequest { + // Required. The name of the ReasoningEngine resource to use. + // Format: + // `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ReasoningEngine" + } + ]; + + // Optional. Input content provided by users in JSON object format. Examples + // include text query, function calling parameters, media bytes, etc. + google.protobuf.Struct input = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for [ReasoningEngineExecutionService.Query][] +message QueryReasoningEngineResponse { + // Response provided by users in JSON object format. + google.protobuf.Value output = 1; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine_service.proto new file mode 100644 index 000000000..c6726c875 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/reasoning_engine_service.proto @@ -0,0 +1,207 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/cloud/aiplatform/v1beta1/reasoning_engine.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ReasoningEngineServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for managing Vertex AI's Reasoning Engines. +service ReasoningEngineService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a reasoning engine. + rpc CreateReasoningEngine(CreateReasoningEngineRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/reasoningEngines" + body: "reasoning_engine" + }; + option (google.api.method_signature) = "parent,reasoning_engine"; + option (google.longrunning.operation_info) = { + response_type: "ReasoningEngine" + metadata_type: "CreateReasoningEngineOperationMetadata" + }; + } + + // Gets a reasoning engine. + rpc GetReasoningEngine(GetReasoningEngineRequest) returns (ReasoningEngine) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists reasoning engines in a location. + rpc ListReasoningEngines(ListReasoningEnginesRequest) + returns (ListReasoningEnginesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/reasoningEngines" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a reasoning engine. + rpc UpdateReasoningEngine(UpdateReasoningEngineRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{reasoning_engine.name=projects/*/locations/*/reasoningEngines/*}" + body: "reasoning_engine" + }; + option (google.api.method_signature) = "reasoning_engine,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "ReasoningEngine" + metadata_type: "UpdateReasoningEngineOperationMetadata" + }; + } + + // Deletes a reasoning engine. + rpc DeleteReasoningEngine(DeleteReasoningEngineRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/reasoningEngines/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } +} + +// Request message for +// [ReasoningEngineService.CreateReasoningEngine][google.cloud.aiplatform.v1beta1.ReasoningEngineService.CreateReasoningEngine]. +message CreateReasoningEngineRequest { + // Required. The resource name of the Location to create the ReasoningEngine + // in. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The ReasoningEngine to create. + ReasoningEngine reasoning_engine = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of +// [ReasoningEngineService.CreateReasoningEngine][google.cloud.aiplatform.v1beta1.ReasoningEngineService.CreateReasoningEngine] +// operation. +message CreateReasoningEngineOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [ReasoningEngineService.GetReasoningEngine][google.cloud.aiplatform.v1beta1.ReasoningEngineService.GetReasoningEngine]. +message GetReasoningEngineRequest { + // Required. The name of the ReasoningEngine resource. + // Format: + // `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ReasoningEngine" + } + ]; +} + +// Request message for +// [ReasoningEngineService.UpdateReasoningEngine][google.cloud.aiplatform.v1beta1.ReasoningEngineService.UpdateReasoningEngine]. +message UpdateReasoningEngineRequest { + // Required. The ReasoningEngine which replaces the resource on the server. + ReasoningEngine reasoning_engine = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask specifying which fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Details of +// [ReasoningEngineService.UpdateReasoningEngine][google.cloud.aiplatform.v1beta1.ReasoningEngineService.UpdateReasoningEngine] +// operation. +message UpdateReasoningEngineOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for +// [ReasoningEngineService.ListReasoningEngines][google.cloud.aiplatform.v1beta1.ReasoningEngineService.ListReasoningEngines]. +message ListReasoningEnginesRequest { + // Required. The resource name of the Location to list the ReasoningEngines + // from. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The standard list filter. + // More detail in [AIP-160](https://google.aip.dev/160). + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [ReasoningEngineService.ListReasoningEngines][google.cloud.aiplatform.v1beta1.ReasoningEngineService.ListReasoningEngines] +message ListReasoningEnginesResponse { + // List of ReasoningEngines in the requested page. + repeated ReasoningEngine reasoning_engines = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListReasoningEnginesRequest.page_token][google.cloud.aiplatform.v1beta1.ListReasoningEnginesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [ReasoningEngineService.DeleteReasoningEngine][google.cloud.aiplatform.v1beta1.ReasoningEngineService.DeleteReasoningEngine]. +message DeleteReasoningEngineRequest { + // Required. The name of the ReasoningEngine resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ReasoningEngine" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/saved_query.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/saved_query.proto index d2abc0538..715d59e18 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/saved_query.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/saved_query.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule.proto index 266dc394d..ae5349ee0 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,8 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/model_monitoring_service.proto"; +import "google/cloud/aiplatform/v1beta1/notebook_service.proto"; import "google/cloud/aiplatform/v1beta1/pipeline_service.proto"; import "google/protobuf/timestamp.proto"; @@ -86,6 +88,15 @@ message Schedule { // CreatePipelineJobRequest.parent field is required (format: // projects/{project}/locations/{location}). CreatePipelineJobRequest create_pipeline_job_request = 14; + + // Request for + // [ModelMonitoringService.CreateModelMonitoringJob][google.cloud.aiplatform.v1beta1.ModelMonitoringService.CreateModelMonitoringJob]. + CreateModelMonitoringJobRequest create_model_monitoring_job_request = 15; + + // Request for + // [NotebookService.CreateNotebookExecutionJob][google.cloud.aiplatform.v1beta1.NotebookService.CreateNotebookExecutionJob]. + CreateNotebookExecutionJobRequest create_notebook_execution_job_request = + 20; } // Immutable. The resource name of the Schedule. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule_service.proto index ea6a1328d..09691dab7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schedule_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto index 18950e844..1d32b0214 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto index b5ae22ffc..339a3b03c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto index 8911cd607..32c3ca44e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto index 730280aee..f54eebe1c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/geometry.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/geometry.proto index f196fe352..b9b3e4b00 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/geometry.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/io_format.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/io_format.proto index 120558d6d..e4a040ebc 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/io_format.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/io_format.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto index 3a9cd5b3b..1ee81b335 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto index 1edc6cc8e..3b3342b79 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto index 5056881c1..17bb13c92 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto index bf773184d..f11683a22 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto index 764eeea7e..4fe074768 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto index 73bf08939..b78478609 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto index 570f0394e..4a9e606aa 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto index 52eee2a81..a719ab45c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto index b347e9925..54c74a31b 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto index 808219511..ed8115f43 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto index 637d1569e..97f675728 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto index 47d8ddcf2..7463d13ba 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto index fad0f06ef..8fc2e0fa1 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto index 57dc95f67..839579033 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto index 8232278bb..d9ceb381a 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto index 1bd03d4de..9695d4034 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto index 3521f7955..e81a19d14 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto index edd3a740b..fc8f8641e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto index ffdb99576..2f0f8ddd6 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto index 65fd7cfcc..f4783b297 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto index 1b42997ee..4ccaf98d4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto index 23c1b68a9..4500a89a7 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto index c9f641e65..58dead678 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto index 30bfd9963..7a0fb53e5 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto index faac51147..acaa7497c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto index 6af9eea3d..007c8a524 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto index 1a2c9ede4..1921ee77d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto index b80309b50..799fe7254 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto index b4385fbc0..8cb5ab136 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto index 5930e1699..c7e1150f8 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto index 61c16c434..d38fe236c 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto index f92b0b467..2e6e917c6 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto index 75563ff2a..e2f6963dd 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto index 130a2f0eb..eb10a3d18 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto index 750ddfa4b..99ab77c94 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto index e69c1ab03..508d223f1 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto index 72132b3e3..41b3cdb02 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto index 0fec2c855..edb1ed7e2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/service_networking.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/service_networking.proto index 9d94191e6..7131038e2 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/service_networking.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/service_networking.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool.proto index c579bafb7..bfd174ccb 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto index db722c0e4..c2c25c243 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/study.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/study.proto index 7f0d690d1..69daae1b6 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/study.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/study.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard.proto index 83738c6fa..b24a29515 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -93,4 +93,10 @@ message Tensorboard { // TensorBoard instance to be default will mark all other TensorBoard // instances (if any) as non default. bool is_default = 12; + + // Output only. Reserved for future use. + bool satisfies_pzs = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_data.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_data.proto index 86048f416..a884570fe 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_data.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto index 30813202f..3ad40566f 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_run.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_run.proto index 682c20891..c0fb3385d 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_run.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_run.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_service.proto index 30352d754..0351c608e 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto index 9985d67ee..da0500765 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tool.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tool.proto index 98f105eb4..290001c42 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tool.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/openapi.proto"; import "google/protobuf/struct.proto"; @@ -33,29 +34,70 @@ option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; // A `Tool` is a piece of code that enables the system to interact with // external systems to perform an action, or set of actions, outside of // knowledge and scope of the model. A Tool object should contain exactly -// one type of Tool. +// one type of Tool (e.g FunctionDeclaration, Retrieval or +// GoogleSearchRetrieval). message Tool { - // Optional. One or more function declarations to be passed to the model along - // with the current user query. Model may decide to call a subset of these - // functions by populating [FunctionCall][content.part.function_call] in the - // response. User should provide a - // [FunctionResponse][content.part.function_response] for each function call - // in the next turn. Based on the function responses, Model will generate the - // final response back to the user. Maximum 64 function declarations can be - // provided. + // Optional. Function tool type. + // One or more function declarations to be passed to the model along with the + // current user query. Model may decide to call a subset of these functions + // by populating [FunctionCall][content.part.function_call] in the response. + // User should provide a [FunctionResponse][content.part.function_response] + // for each function call in the next turn. Based on the function responses, + // Model will generate the final response back to the user. + // Maximum 64 function declarations can be provided. repeated FunctionDeclaration function_declarations = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. System will always execute the provided retrieval tool(s) to get - // external knowledge to answer the prompt. Retrieval results are presented to - // the model for generation. + // Optional. Retrieval tool type. + // System will always execute the provided retrieval tool(s) to get external + // knowledge to answer the prompt. Retrieval results are presented to the + // model for generation. Retrieval retrieval = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Specialized retrieval tool that is powered by Google search. + // Optional. GoogleSearchRetrieval tool type. + // Specialized retrieval tool that is powered by Google search. GoogleSearchRetrieval google_search_retrieval = 3 [(google.api.field_behavior) = OPTIONAL]; } +// A single example of the tool usage. +message ToolUseExample { + // Identifies one operation of the extension. + message ExtensionOperation { + // Resource name of the extension. + string extension = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Extension" + }]; + + // Required. Operation ID of the extension. + string operation_id = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Target tool to use. + oneof Target { + // Extension operation to call. + ExtensionOperation extension_operation = 10; + + // Function name to call. + string function_name = 11; + } + + // Required. The display name for example. + string display_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Query that should be routed to this tool. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Request parameters used for executing this tool. + google.protobuf.Struct request_params = 3; + + // Response parameters generated by this tool. + google.protobuf.Struct response_params = 4; + + // Summary of the tool response to the user query. + string response_summary = 5; +} + // Structured representation of a function declaration as defined by the // [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included // in this declaration are the function name and parameters. This @@ -64,8 +106,8 @@ message Tool { message FunctionDeclaration { // Required. The name of the function to call. // Must start with a letter or an underscore. - // Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum - // length of 64. + // Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a + // maximum length of 64. string name = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Description and purpose of the function. @@ -76,8 +118,10 @@ message FunctionDeclaration { // format. Reflects the Open API 3.03 Parameter Object. string Key: the name // of the parameter. Parameter names are case sensitive. Schema Value: the // Schema defining the type used for the parameter. For function with no - // parameters, this can be left unset. Example with 1 required and 1 optional - // parameter: type: OBJECT properties: + // parameters, this can be left unset. Parameter names must start with a + // letter or an underscore and must only contain chars a-z, A-Z, 0-9, or + // underscores with a maximum length of 64. Example with 1 required and 1 + // optional parameter: type: OBJECT properties: // param1: // type: STRING // param2: @@ -85,6 +129,11 @@ message FunctionDeclaration { // required: // - param1 Schema parameters = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Describes the output from this function in JSON Schema format. + // Reflects the Open API 3.03 Response Object. The Schema defines the type + // used for the response value of the function. + Schema response = 4 [(google.api.field_behavior) = OPTIONAL]; } // A predicted [FunctionCall] returned from the model that contains a string @@ -115,9 +164,14 @@ message FunctionResponse { // Defines a retrieval tool that model can call to access external knowledge. message Retrieval { + // The source of the retrieval. oneof source { // Set to use data source powered by Vertex AI Search. VertexAISearch vertex_ai_search = 2; + + // Set to use data source powered by Vertex RAG store. + // User data is uploaded via the VertexRagDataService. + VertexRagStore vertex_rag_store = 4; } // Optional. Disable using the result from this tool in detecting grounding @@ -126,11 +180,56 @@ message Retrieval { bool disable_attribution = 3 [(google.api.field_behavior) = OPTIONAL]; } +// Retrieve from Vertex RAG Store for grounding. +message VertexRagStore { + // The definition of the Rag resource. + message RagResource { + // Optional. RagCorpora resource name. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string rag_corpus = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Optional. rag_file_id. The files should be in the same rag_corpus set in + // rag_corpus field. + repeated string rag_file_ids = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Deprecated. Please use rag_resources instead. + repeated string rag_corpora = 1 [ + deprecated = true, + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Optional. The representation of the rag source. It can be used to specify + // corpus only or ragfiles. Currently only support one corpus or multiple + // files from one corpus. In the future we may open up multiple corpora + // support. + repeated RagResource rag_resources = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of top k results to return from the selected corpora. + optional int32 similarity_top_k = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only return results with vector distance smaller than the + // threshold. + optional double vector_distance_threshold = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + // Retrieve from Vertex AI Search datastore for grounding. // See https://cloud.google.com/vertex-ai-search-and-conversation message VertexAISearch { // Required. Fully-qualified Vertex AI Search's datastore resource ID. - // projects/<>/locations/<>/collections/<>/dataStores/<> + // Format: + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}` string datastore = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -141,3 +240,42 @@ message GoogleSearchRetrieval { // generation. bool disable_attribution = 1 [(google.api.field_behavior) = OPTIONAL]; } + +// Tool config. This config is shared for all tools provided in the request. +message ToolConfig { + // Optional. Function calling config. + FunctionCallingConfig function_calling_config = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Function calling config. +message FunctionCallingConfig { + // Function calling mode. + enum Mode { + // Unspecified function calling mode. This value should not be used. + MODE_UNSPECIFIED = 0; + + // Default model behavior, model decides to predict either a function call + // or a natural language repspose. + AUTO = 1; + + // Model is constrained to always predicting a function call only. + // If "allowed_function_names" are set, the predicted function call will be + // limited to any one of "allowed_function_names", else the predicted + // function call will be any one of the provided "function_declarations". + ANY = 2; + + // Model will not predict any function call. Model behavior is same as when + // not passing any function declarations. + NONE = 3; + } + + // Optional. Function calling mode. + Mode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Function names to call. Only set when the Mode is ANY. Function + // names should match [FunctionDeclaration.name]. With mode set to ANY, model + // will predict a function call from the set of function names provided. + repeated string allowed_function_names = 2 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/training_pipeline.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/training_pipeline.proto index b631633c6..4fc779a65 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/training_pipeline.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/training_pipeline.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/tuning_job.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tuning_job.proto new file mode 100644 index 000000000..7dd52c504 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/tuning_job.proto @@ -0,0 +1,286 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/content.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1beta1/job_state.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "TuningJobProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Represents a TuningJob that runs with Google owned models. +message TuningJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TuningJob" + pattern: "projects/{project}/locations/{location}/tuningJobs/{tuning_job}" + plural: "tuningJobs" + singular: "tuningJob" + }; + + oneof source_model { + // The base model that is being tuned, e.g., "gemini-1.0-pro-002". + string base_model = 4; + } + + oneof tuning_spec { + // Tuning Spec for Supervised Fine Tuning. + SupervisedTuningSpec supervised_tuning_spec = 5; + } + + // Output only. Identifier. Resource name of a TuningJob. Format: + // `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. The display name of the + // [TunedModel][google.cloud.aiplatform.v1.Model]. The name can be up to 128 + // characters long and can consist of any UTF-8 characters. + string tuned_model_display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The description of the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The detailed state of the job. + JobState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] for the first time + // entered the `JOB_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TuningJob entered any of the following + // [JobStates][google.cloud.aiplatform.v1.JobState]: `JOB_STATE_SUCCEEDED`, + // `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`, `JOB_STATE_EXPIRED`. + google.protobuf.Timestamp end_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] was most recently + // updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when job's state is `JOB_STATE_FAILED` or + // `JOB_STATE_CANCELLED`. + google.rpc.Status error = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The labels with user-defined metadata to organize + // [TuningJob][google.cloud.aiplatform.v1.TuningJob] and generated resources + // such as [Model][google.cloud.aiplatform.v1.Model] and + // [Endpoint][google.cloud.aiplatform.v1.Endpoint]. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + map labels = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The Experiment associated with this + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + string experiment = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + } + ]; + + // Output only. The tuned model resources assiociated with this + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + TunedModel tuned_model = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The tuning data statistics associated with this + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. + TuningDataStats tuning_data_stats = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Customer-managed encryption key options for a TuningJob. If this is set, + // then all resources created by the TuningJob will be encrypted with the + // provided encryption key. + EncryptionSpec encryption_spec = 16; +} + +// The Model Registry Model and Online Prediction Endpoint assiociated with +// this [TuningJob][google.cloud.aiplatform.v1.TuningJob]. +message TunedModel { + // Output only. The resource name of the TunedModel. Format: + // `projects/{project}/locations/{location}/models/{model}`. + string model = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Output only. A resource name of an Endpoint. Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}`. + string endpoint = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; +} + +// Dataset distribution for Supervised Tuning. +message SupervisedTuningDatasetDistribution { + // Dataset bucket used to create a histogram for the distribution given a + // population of values. + message DatasetBucket { + // Output only. Number of values in the bucket. + double count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Left bound of the bucket. + double left = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Right bound of the bucket. + double right = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Sum of a given population of values. + int64 sum = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum of the population values. + double min = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum of the population values. + double max = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The arithmetic mean of the values in the population. + double mean = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The median of the values in the population. + double median = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The 5th percentile of the values in the population. + double p5 = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The 95th percentile of the values in the population. + double p95 = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Defines the histogram bucket. + repeated DatasetBucket buckets = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tuning data statistics for Supervised Tuning. +message SupervisedTuningDataStats { + // Output only. Number of examples in the tuning dataset. + int64 tuning_dataset_example_count = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of tuning characters in the tuning dataset. + int64 total_tuning_character_count = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of billable characters in the tuning dataset. + int64 total_billable_character_count = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of tuning steps for this Tuning Job. + int64 tuning_step_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the user input tokens. + SupervisedTuningDatasetDistribution user_input_token_distribution = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the user output tokens. + SupervisedTuningDatasetDistribution user_output_token_distribution = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the messages per example. + SupervisedTuningDatasetDistribution user_message_per_example_distribution = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Sample user messages in the training dataset uri. + repeated Content user_dataset_examples = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The tuning data statistic values for +// [TuningJob][google.cloud.aiplatform.v1.TuningJob]. +message TuningDataStats { + oneof tuning_data_stats { + // The SFT Tuning data stats. + SupervisedTuningDataStats supervised_tuning_data_stats = 1; + } +} + +// Hyperparameters for SFT. +message SupervisedHyperParameters { + // Supported adapter sizes for tuning. + enum AdapterSize { + // Adapter size is unspecified. + ADAPTER_SIZE_UNSPECIFIED = 0; + + // Adapter size 1. + ADAPTER_SIZE_ONE = 1; + + // Adapter size 4. + ADAPTER_SIZE_FOUR = 2; + + // Adapter size 8. + ADAPTER_SIZE_EIGHT = 3; + + // Adapter size 16. + ADAPTER_SIZE_SIXTEEN = 4; + } + + // Optional. Number of complete passes the model makes over the entire + // training dataset during training. + int64 epoch_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Multiplier for adjusting the default learning rate. + double learning_rate_multiplier = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Adapter size for tuning. + AdapterSize adapter_size = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Tuning Spec for Supervised Tuning. +message SupervisedTuningSpec { + // Required. Cloud Storage path to file containing training dataset for + // tuning. The dataset must be formatted as a JSONL file. + string training_dataset_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Cloud Storage path to file containing validation dataset for + // tuning. The dataset must be formatted as a JSONL file. + string validation_dataset_uri = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hyperparameters for SFT. + SupervisedHyperParameters hyper_parameters = 3 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/types.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/types.proto index 721f13f92..9364a0c46 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/types.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto index 1ae32e986..3d4c41047 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/unmanaged_container_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/user_action_reference.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/user_action_reference.proto index c42eb0dbc..cdf54d552 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/user_action_reference.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/user_action_reference.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/value.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/value.proto index ae0109c8d..8c04a0434 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/value.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto new file mode 100644 index 000000000..42aae758e --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto @@ -0,0 +1,214 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/io.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "VertexRagDataProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// Config for the embedding model to use for RAG. +message RagEmbeddingModelConfig { + // Config representing a model hosted on Vertex Prediction Endpoint. + message VertexPredictionEndpoint { + // Required. The endpoint resource name. + // Format: + // `projects/{project}/locations/{location}/publishers/{publisher}/models/{model}` + // or + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string endpoint = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // Output only. The resource name of the model that is deployed on the + // endpoint. Present only when the endpoint is not a publisher model. + // Pattern: + // `projects/{project}/locations/{location}/models/{model}` + string model = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Output only. Version ID of the model that is deployed on the endpoint. + // Present only when the endpoint is not a publisher model. + string model_version_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The model config to use. + oneof model_config { + // The Vertex AI Prediction Endpoint that either refers to a publisher model + // or an endpoint that is hosting a 1P fine-tuned text embedding model. + // Endpoints hosting non-1P fine-tuned text embedding models are + // currently not supported. + VertexPredictionEndpoint vertex_prediction_endpoint = 1; + } +} + +// A RagCorpus is a RagFile container and a project can have multiple +// RagCorpora. +message RagCorpus { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/RagCorpus" + pattern: "projects/{project}/locations/{location}/ragCorpora/{rag_corpus}" + plural: "ragCorpora" + singular: "ragCorpus" + }; + + // Output only. The resource name of the RagCorpus. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the RagCorpus. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the RagCorpus. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Immutable. The embedding model config of the RagCorpus. + RagEmbeddingModelConfig rag_embedding_model_config = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. Timestamp when this RagCorpus was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this RagCorpus was last updated. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A RagFile contains user data for chunking, embedding and indexing. +message RagFile { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/RagFile" + pattern: "projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}" + plural: "ragFiles" + singular: "ragFile" + }; + + // The type of the RagFile. + enum RagFileType { + // RagFile type is unspecified. + RAG_FILE_TYPE_UNSPECIFIED = 0; + + // RagFile type is TXT. + RAG_FILE_TYPE_TXT = 1; + + // RagFile type is PDF. + RAG_FILE_TYPE_PDF = 2; + } + + // The origin location of the RagFile if it is imported from Google Cloud + // Storage or Google Drive. + oneof rag_file_source { + // Output only. Google Cloud Storage location of the RagFile. + // It does not support wildcards in the Cloud Storage uri for now. + GcsSource gcs_source = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Google Drive location. Supports importing individual files + // as well as Google Drive folders. + GoogleDriveSource google_drive_source = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The RagFile is encapsulated and uploaded in the + // UploadRagFile request. + DirectUploadSource direct_upload_source = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the RagFile. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the RagFile. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the RagFile. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The size of the RagFile in bytes. + int64 size_bytes = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the RagFile. + RagFileType rag_file_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this RagFile was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this RagFile was last updated. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Specifies the size and overlap of chunks for RagFiles. +message RagFileChunkingConfig { + // The size of the chunks. + int32 chunk_size = 1; + + // The overlap between chunks. + int32 chunk_overlap = 2; +} + +// Config for uploading RagFile. +message UploadRagFileConfig { + // Specifies the size and overlap of chunks after uploading RagFile. + RagFileChunkingConfig rag_file_chunking_config = 1; +} + +// Config for importing RagFiles. +message ImportRagFilesConfig { + oneof import_source { + // Google Cloud Storage location. Supports importing individual files as + // well as entire Google Cloud Storage directories. Sample formats: + // - `gs://bucket_name/my_directory/object_name/my_file.txt` + // - `gs://bucket_name/my_directory` + GcsSource gcs_source = 2; + + // Google Drive location. Supports importing individual files as + // well as Google Drive folders. + GoogleDriveSource google_drive_source = 3; + } + + // Specifies the size and overlap of chunks after importing RagFiles. + RagFileChunkingConfig rag_file_chunking_config = 4; + + // Optional. The max number of queries per minute that this job is allowed to + // make to the embedding model specified on the corpus. This value is specific + // to this job and not shared across other import jobs. Consult the Quotas + // page on the project to set an appropriate value here. + // If unspecified, a default value of 1,000 QPM would be used. + int32 max_embedding_requests_per_min = 5 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto new file mode 100644 index 000000000..7ded7ed20 --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto @@ -0,0 +1,383 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/cloud/aiplatform/v1beta1/vertex_rag_data.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "VertexRagDataServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for managing user data for RAG. +service VertexRagDataService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a RagCorpus. + rpc CreateRagCorpus(CreateRagCorpusRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/ragCorpora" + body: "rag_corpus" + }; + option (google.api.method_signature) = "parent,rag_corpus"; + option (google.longrunning.operation_info) = { + response_type: "RagCorpus" + metadata_type: "CreateRagCorpusOperationMetadata" + }; + } + + // Gets a RagCorpus. + rpc GetRagCorpus(GetRagCorpusRequest) returns (RagCorpus) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/ragCorpora/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists RagCorpora in a Location. + rpc ListRagCorpora(ListRagCorporaRequest) returns (ListRagCorporaResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/ragCorpora" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a RagCorpus. + rpc DeleteRagCorpus(DeleteRagCorpusRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/ragCorpora/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Upload a file into a RagCorpus. + rpc UploadRagFile(UploadRagFileRequest) returns (UploadRagFileResponse) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/ragCorpora/*}/ragFiles:upload" + body: "*" + }; + option (google.api.method_signature) = + "parent,rag_file,upload_rag_file_config"; + } + + // Import files from Google Cloud Storage or Google Drive into a RagCorpus. + rpc ImportRagFiles(ImportRagFilesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/ragCorpora/*}/ragFiles:import" + body: "*" + }; + option (google.api.method_signature) = "parent,import_rag_files_config"; + option (google.longrunning.operation_info) = { + response_type: "ImportRagFilesResponse" + metadata_type: "ImportRagFilesOperationMetadata" + }; + } + + // Gets a RagFile. + rpc GetRagFile(GetRagFileRequest) returns (RagFile) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists RagFiles in a RagCorpus. + rpc ListRagFiles(ListRagFilesRequest) returns (ListRagFilesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/ragCorpora/*}/ragFiles" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a RagFile. + rpc DeleteRagFile(DeleteRagFileRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/ragCorpora/*/ragFiles/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } +} + +// Request message for +// [VertexRagDataService.CreateRagCorpus][google.cloud.aiplatform.v1beta1.VertexRagDataService.CreateRagCorpus]. +message CreateRagCorpusRequest { + // Required. The resource name of the Location to create the RagCorpus in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The RagCorpus to create. + RagCorpus rag_corpus = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [VertexRagDataService.GetRagCorpus][google.cloud.aiplatform.v1beta1.VertexRagDataService.GetRagCorpus] +message GetRagCorpusRequest { + // Required. The name of the RagCorpus resource. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; +} + +// Request message for +// [VertexRagDataService.ListRagCorpora][google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagCorpora]. +message ListRagCorporaRequest { + // Required. The resource name of the Location from which to list the + // RagCorpora. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The standard list page size. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListRagCorporaResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListRagCorporaResponse.next_page_token] + // of the previous + // [VertexRagDataService.ListRagCorpora][google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagCorpora] + // call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [VertexRagDataService.ListRagCorpora][google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagCorpora]. +message ListRagCorporaResponse { + // List of RagCorpora in the requested page. + repeated RagCorpus rag_corpora = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListRagCorporaRequest.page_token][google.cloud.aiplatform.v1beta1.ListRagCorporaRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [VertexRagDataService.DeleteRagCorpus][google.cloud.aiplatform.v1beta1.VertexRagDataService.DeleteRagCorpus]. +message DeleteRagCorpusRequest { + // Required. The name of the RagCorpus resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Optional. If set to true, any RagFiles in this RagCorpus will also be + // deleted. Otherwise, the request will only work if the RagCorpus has no + // RagFiles. + bool force = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [VertexRagDataService.UploadRagFile][google.cloud.aiplatform.v1beta1.VertexRagDataService.UploadRagFile]. +message UploadRagFileRequest { + // Required. The name of the RagCorpus resource into which to upload the file. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Required. The RagFile to upload. + RagFile rag_file = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The config for the RagFiles to be uploaded into the RagCorpus. + // [VertexRagDataService.UploadRagFile][google.cloud.aiplatform.v1beta1.VertexRagDataService.UploadRagFile]. + UploadRagFileConfig upload_rag_file_config = 5 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [VertexRagDataService.UploadRagFile][google.cloud.aiplatform.v1beta1.VertexRagDataService.UploadRagFile]. +message UploadRagFileResponse { + oneof result { + // The RagFile that had been uploaded into the RagCorpus. + RagFile rag_file = 1; + + // The error that occurred while processing the RagFile. + google.rpc.Status error = 4; + } +} + +// Request message for +// [VertexRagDataService.ImportRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles]. +message ImportRagFilesRequest { + // Required. The name of the RagCorpus resource into which to import files. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Required. The config for the RagFiles to be synced and imported into the + // RagCorpus. + // [VertexRagDataService.ImportRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles]. + ImportRagFilesConfig import_rag_files_config = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [VertexRagDataService.ImportRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles]. +message ImportRagFilesResponse { + // The number of RagFiles that had been imported into the RagCorpus. + int64 imported_rag_files_count = 1; + + // The number of RagFiles that had failed while importing into the RagCorpus. + int64 failed_rag_files_count = 2; + + // The number of RagFiles that was skipped while importing into the RagCorpus. + int64 skipped_rag_files_count = 3; +} + +// Request message for +// [VertexRagDataService.GetRagFile][google.cloud.aiplatform.v1beta1.VertexRagDataService.GetRagFile] +message GetRagFileRequest { + // Required. The name of the RagFile resource. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagFile" + } + ]; +} + +// Request message for +// [VertexRagDataService.ListRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagFiles]. +message ListRagFilesRequest { + // Required. The resource name of the RagCorpus from which to list the + // RagFiles. Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Optional. The standard list page size. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListRagFilesResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListRagFilesResponse.next_page_token] + // of the previous + // [VertexRagDataService.ListRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagFiles] + // call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [VertexRagDataService.ListRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ListRagFiles]. +message ListRagFilesResponse { + // List of RagFiles in the requested page. + repeated RagFile rag_files = 1; + + // A token to retrieve the next page of results. + // Pass to + // [ListRagFilesRequest.page_token][google.cloud.aiplatform.v1beta1.ListRagFilesRequest.page_token] + // to obtain that page. + string next_page_token = 2; +} + +// Request message for +// [VertexRagDataService.DeleteRagFile][google.cloud.aiplatform.v1beta1.VertexRagDataService.DeleteRagFile]. +message DeleteRagFileRequest { + // Required. The name of the RagFile resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagFile" + } + ]; +} + +// Runtime operation information for +// [VertexRagDataService.CreateRagCorpus][google.cloud.aiplatform.v1beta1.VertexRagDataService.CreateRagCorpus]. +message CreateRagCorpusOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Runtime operation information for +// [VertexRagDataService.ImportRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles]. +message ImportRagFilesOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // The resource ID of RagCorpus that this operation is executed on. + int64 rag_corpus_id = 2; + + // Output only. The config that was passed in the ImportRagFilesRequest. + ImportRagFilesConfig import_rag_files_config = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The progress percentage of the operation. Value is in the range [0, 100]. + // This percentage is calculated as follows: + // progress_percentage = 100 * (successes + failures + skips) / total + int32 progress_percentage = 4; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto new file mode 100644 index 000000000..58fe6869e --- /dev/null +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto @@ -0,0 +1,148 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "VertexRagServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// A service for retrieving relevant contexts. +service VertexRagService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Retrieves relevant contexts for a query. + rpc RetrieveContexts(RetrieveContextsRequest) + returns (RetrieveContextsResponse) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}:retrieveContexts" + body: "*" + }; + option (google.api.method_signature) = "parent,query"; + } +} + +// A query to retrieve relevant contexts. +message RagQuery { + // The query to retrieve contexts. + // Currently only text query is supported. + oneof query { + // Optional. The query in text format to get relevant contexts. + string text = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The number of contexts to retrieve. + int32 similarity_top_k = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [VertexRagService.RetrieveContexts][google.cloud.aiplatform.v1beta1.VertexRagService.RetrieveContexts]. +message RetrieveContextsRequest { + // The data source for Vertex RagStore. + message VertexRagStore { + // The definition of the Rag resource. + message RagResource { + // Optional. RagCorpora resource name. + // Format: + // `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}` + string rag_corpus = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/RagCorpus" + } + ]; + + // Optional. rag_file_id. The files should be in the same rag_corpus set + // in rag_corpus field. + repeated string rag_file_ids = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Deprecated. Please use rag_resources to specify the data + // source. + repeated string rag_corpora = 1 + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Optional. The representation of the rag source. It can be used to specify + // corpus only or ragfiles. Currently only support one corpus or multiple + // files from one corpus. In the future we may open up multiple corpora + // support. + repeated RagResource rag_resources = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only return contexts with vector distance smaller than the + // threshold. + optional double vector_distance_threshold = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Data Source to retrieve contexts. + oneof data_source { + // The data source for Vertex RagStore. + VertexRagStore vertex_rag_store = 2; + } + + // Required. The resource name of the Location from which to retrieve + // RagContexts. The users must have permission to make a call in the project. + // Format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Single RAG retrieve query. + RagQuery query = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Relevant contexts for one query. +message RagContexts { + // A context of the query. + message Context { + // For vertex RagStore, if the file is imported from Cloud Storage or Google + // Drive, source_uri will be original file URI in Cloud Storage or Google + // Drive; if file is uploaded, source_uri will be file display name. + string source_uri = 1; + + // The text chunk. + string text = 2; + + // The distance between the query vector and the context text vector. + double distance = 3; + } + + // All its contexts. + repeated Context contexts = 1; +} + +// Response message for +// [VertexRagService.RetrieveContexts][google.cloud.aiplatform.v1beta1.VertexRagService.RetrieveContexts]. +message RetrieveContextsResponse { + // The contexts of the query. + RagContexts contexts = 1; +} diff --git a/third_party/googleapis/google/cloud/aiplatform/v1beta1/vizier_service.proto b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vizier_service.proto index af0d3e616..25c888de4 100644 --- a/third_party/googleapis/google/cloud/aiplatform/v1beta1/vizier_service.proto +++ b/third_party/googleapis/google/cloud/aiplatform/v1beta1/vizier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/connectors/v1/resources.proto b/third_party/googleapis/google/cloud/alloydb/connectors/v1/resources.proto index 00f00cfbe..392a59470 100644 --- a/third_party/googleapis/google/cloud/alloydb/connectors/v1/resources.proto +++ b/third_party/googleapis/google/cloud/alloydb/connectors/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/connectors/v1alpha/resources.proto b/third_party/googleapis/google/cloud/alloydb/connectors/v1alpha/resources.proto index cdbf8e5b5..91778da4c 100644 --- a/third_party/googleapis/google/cloud/alloydb/connectors/v1alpha/resources.proto +++ b/third_party/googleapis/google/cloud/alloydb/connectors/v1alpha/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/connectors/v1beta/resources.proto b/third_party/googleapis/google/cloud/alloydb/connectors/v1beta/resources.proto index 9aefe2617..90e36c2fb 100644 --- a/third_party/googleapis/google/cloud/alloydb/connectors/v1beta/resources.proto +++ b/third_party/googleapis/google/cloud/alloydb/connectors/v1beta/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/v1/BUILD.bazel b/third_party/googleapis/google/cloud/alloydb/v1/BUILD.bazel index 11ae63406..2ae1864b5 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/alloydb/v1/BUILD.bazel @@ -233,7 +233,7 @@ php_gapic_library( name = "alloydb_php_gapic", srcs = [":alloydb_proto_with_info"], grpc_service_config = "alloydb_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "alloydb_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/alloydb/v1/resources.proto b/third_party/googleapis/google/cloud/alloydb/v1/resources.proto index 9042f00fa..5b7cf9750 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1/resources.proto +++ b/third_party/googleapis/google/cloud/alloydb/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/v1/service.proto b/third_party/googleapis/google/cloud/alloydb/v1/service.proto index 8c47a29b6..a3eba091f 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1/service.proto +++ b/third_party/googleapis/google/cloud/alloydb/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/v1alpha/resources.proto b/third_party/googleapis/google/cloud/alloydb/v1alpha/resources.proto index c3b347765..0067e0e9a 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1alpha/resources.proto +++ b/third_party/googleapis/google/cloud/alloydb/v1alpha/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/v1alpha/service.proto b/third_party/googleapis/google/cloud/alloydb/v1alpha/service.proto index 8ffe3d046..2b558324f 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1alpha/service.proto +++ b/third_party/googleapis/google/cloud/alloydb/v1alpha/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/v1beta/resources.proto b/third_party/googleapis/google/cloud/alloydb/v1beta/resources.proto index 59e443ff5..d6c3927f6 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1beta/resources.proto +++ b/third_party/googleapis/google/cloud/alloydb/v1beta/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/alloydb/v1beta/service.proto b/third_party/googleapis/google/cloud/alloydb/v1beta/service.proto index b8c6c660a..5a7a1cb0f 100644 --- a/third_party/googleapis/google/cloud/alloydb/v1beta/service.proto +++ b/third_party/googleapis/google/cloud/alloydb/v1beta/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigateway/v1/apigateway.proto b/third_party/googleapis/google/cloud/apigateway/v1/apigateway.proto index 436435b20..514d7f7b8 100644 --- a/third_party/googleapis/google/cloud/apigateway/v1/apigateway.proto +++ b/third_party/googleapis/google/cloud/apigateway/v1/apigateway.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigateway/v1/apigateway_service.proto b/third_party/googleapis/google/cloud/apigateway/v1/apigateway_service.proto index 84d8b2a9e..da4bba3e9 100644 --- a/third_party/googleapis/google/cloud/apigateway/v1/apigateway_service.proto +++ b/third_party/googleapis/google/cloud/apigateway/v1/apigateway_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigeeconnect/v1/connection.proto b/third_party/googleapis/google/cloud/apigeeconnect/v1/connection.proto index 5800b36ec..097ceea09 100644 --- a/third_party/googleapis/google/cloud/apigeeconnect/v1/connection.proto +++ b/third_party/googleapis/google/cloud/apigeeconnect/v1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigeeconnect/v1/tether.proto b/third_party/googleapis/google/cloud/apigeeconnect/v1/tether.proto index abd36c822..c435ab376 100644 --- a/third_party/googleapis/google/cloud/apigeeconnect/v1/tether.proto +++ b/third_party/googleapis/google/cloud/apigeeconnect/v1/tether.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigeeregistry/v1/provisioning_service.proto b/third_party/googleapis/google/cloud/apigeeregistry/v1/provisioning_service.proto index cca6753c6..fe7af1e2d 100644 --- a/third_party/googleapis/google/cloud/apigeeregistry/v1/provisioning_service.proto +++ b/third_party/googleapis/google/cloud/apigeeregistry/v1/provisioning_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_models.proto b/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_models.proto index a1c29b4d5..5cf06f765 100644 --- a/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_models.proto +++ b/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_models.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_service.proto b/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_service.proto index 041796be4..092b174d1 100644 --- a/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_service.proto +++ b/third_party/googleapis/google/cloud/apigeeregistry/v1/registry_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/apphub/BUILD.bazel b/third_party/googleapis/google/cloud/apphub/BUILD.bazel new file mode 100644 index 000000000..c9a78b2c3 --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-app_hub. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for app_hub. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "app_hub_ruby_wrapper", + srcs = ["//google/cloud/apphub/v1:apphub_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-app_hub", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/apphub/v1:apphub_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-app_hub-ruby", + deps = [ + ":app_hub_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/apphub/v1/BUILD.bazel b/third_party/googleapis/google/cloud/apphub/v1/BUILD.bazel new file mode 100644 index 000000000..7fd546495 --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/BUILD.bazel @@ -0,0 +1,405 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "apphub_proto", + srcs = [ + "apphub_service.proto", + "application.proto", + "attributes.proto", + "service.proto", + "service_project_attachment.proto", + "workload.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "apphub_proto_with_info", + deps = [ + ":apphub_proto", + "//google/cloud/location:location_proto", + "//google/cloud:common_resources_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "apphub_java_proto", + deps = [":apphub_proto"], +) + +java_grpc_library( + name = "apphub_java_grpc", + srcs = [":apphub_proto"], + deps = [":apphub_java_proto"], +) + +java_gapic_library( + name = "apphub_java_gapic", + srcs = [":apphub_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "apphub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apphub_v1.yaml", + test_deps = [ + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ":apphub_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":apphub_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "apphub_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.apphub.v1.AppHubClientHttpJsonTest", + "com.google.cloud.apphub.v1.AppHubClientTest", + ], + runtime_deps = [":apphub_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-apphub-v1-java", + transport = "grpc+rest", + deps = [ + ":apphub_java_gapic", + ":apphub_java_grpc", + ":apphub_java_proto", + ":apphub_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "apphub_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/apphub/apiv1/apphubpb", + protos = [":apphub_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "apphub_go_gapic", + srcs = [":apphub_proto_with_info"], + grpc_service_config = "apphub_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/apphub/apiv1;apphub", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "apphub_v1.yaml", + transport = "grpc+rest", + deps = [ + ":apphub_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-apphub-v1-go", + deps = [ + ":apphub_go_gapic", + ":apphub_go_gapic_srcjar-test.srcjar", + ":apphub_go_gapic_srcjar-metadata.srcjar", + ":apphub_go_gapic_srcjar-snippets.srcjar", + ":apphub_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "apphub_py_gapic", + srcs = [":apphub_proto"], + grpc_service_config = "apphub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apphub_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "apphub_py_gapic_test", + srcs = [ + "apphub_py_gapic_pytest.py", + "apphub_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":apphub_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "apphub-v1-py", + deps = [ + ":apphub_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "apphub_php_proto", + deps = [":apphub_proto"], +) + +php_gapic_library( + name = "apphub_php_gapic", + srcs = [":apphub_proto_with_info"], + grpc_service_config = "apphub_v1_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "apphub_v1.yaml", + transport = "grpc+rest", + deps = [ + ":apphub_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-apphub-v1-php", + deps = [ + ":apphub_php_gapic", + ":apphub_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "apphub_nodejs_gapic", + package_name = "@google-cloud/apphub", + src = ":apphub_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "apphub_v1_grpc_service_config.json", + package = "google.cloud.apphub.v1", + rest_numeric_enums = True, + service_yaml = "apphub_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "apphub-v1-nodejs", + deps = [ + ":apphub_nodejs_gapic", + ":apphub_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "apphub_ruby_proto", + deps = [":apphub_proto"], +) + +ruby_grpc_library( + name = "apphub_ruby_grpc", + srcs = [":apphub_proto"], + deps = [":apphub_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "apphub_ruby_gapic", + srcs = [":apphub_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-app_hub-v1", + ], + grpc_service_config = "apphub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apphub_v1.yaml", + transport = "grpc+rest", + deps = [ + ":apphub_ruby_grpc", + ":apphub_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-app_hub-v1-ruby", + deps = [ + ":apphub_ruby_gapic", + ":apphub_ruby_grpc", + ":apphub_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "apphub_csharp_proto", + extra_opts = [], + deps = [":apphub_proto"], +) + +csharp_grpc_library( + name = "apphub_csharp_grpc", + srcs = [":apphub_proto"], + deps = [":apphub_csharp_proto"], +) + +csharp_gapic_library( + name = "apphub_csharp_gapic", + srcs = [":apphub_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "apphub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apphub_v1.yaml", + transport = "grpc+rest", + deps = [ + ":apphub_csharp_grpc", + ":apphub_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-apphub-v1-csharp", + deps = [ + ":apphub_csharp_gapic", + ":apphub_csharp_grpc", + ":apphub_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "apphub_cc_proto", + deps = [":apphub_proto"], +) + +cc_grpc_library( + name = "apphub_cc_grpc", + srcs = [":apphub_proto"], + grpc_only = True, + deps = [":apphub_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/apphub/v1/apphub_service.proto b/third_party/googleapis/google/cloud/apphub/v1/apphub_service.proto new file mode 100644 index 000000000..eb420b060 --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/apphub_service.proto @@ -0,0 +1,1108 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.apphub.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/apphub/v1/application.proto"; +import "google/cloud/apphub/v1/service.proto"; +import "google/cloud/apphub/v1/service_project_attachment.proto"; +import "google/cloud/apphub/v1/workload.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AppHub.V1"; +option go_package = "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb"; +option java_multiple_files = true; +option java_outer_classname = "ApphubServiceProto"; +option java_package = "com.google.cloud.apphub.v1"; +option php_namespace = "Google\\Cloud\\AppHub\\V1"; +option ruby_package = "Google::Cloud::AppHub::V1"; + +// The App Hub API allows you to manage App Hub resources. +service AppHub { + option (google.api.default_host) = "apphub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists a service project attachment for a given service project. You can + // call this API from any project to find if it is attached to a host project. + rpc LookupServiceProjectAttachment(LookupServiceProjectAttachmentRequest) + returns (LookupServiceProjectAttachmentResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*}:lookupServiceProjectAttachment" + }; + option (google.api.method_signature) = "name"; + } + + // Lists service projects attached to the host project. + rpc ListServiceProjectAttachments(ListServiceProjectAttachmentsRequest) + returns (ListServiceProjectAttachmentsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/serviceProjectAttachments" + }; + option (google.api.method_signature) = "parent"; + } + + // Attaches a service project to the host project. + rpc CreateServiceProjectAttachment(CreateServiceProjectAttachmentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/serviceProjectAttachments" + body: "service_project_attachment" + }; + option (google.api.method_signature) = + "parent,service_project_attachment,service_project_attachment_id"; + option (google.longrunning.operation_info) = { + response_type: "ServiceProjectAttachment" + metadata_type: "OperationMetadata" + }; + } + + // Gets a service project attachment. + rpc GetServiceProjectAttachment(GetServiceProjectAttachmentRequest) + returns (ServiceProjectAttachment) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/serviceProjectAttachments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a service project attachment. + rpc DeleteServiceProjectAttachment(DeleteServiceProjectAttachmentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/serviceProjectAttachments/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Detaches a service project from a host project. + // You can call this API from any service project without needing access to + // the host project that it is attached to. + rpc DetachServiceProjectAttachment(DetachServiceProjectAttachmentRequest) + returns (DetachServiceProjectAttachmentResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*}:detachServiceProjectAttachment" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Discovered Services that can be added to an Application in a host + // project and location. + rpc ListDiscoveredServices(ListDiscoveredServicesRequest) + returns (ListDiscoveredServicesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/discoveredServices" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a Discovered Service in a host project and location. + rpc GetDiscoveredService(GetDiscoveredServiceRequest) + returns (DiscoveredService) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/discoveredServices/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists a Discovered Service in a host project and location, with a + // given resource URI. + rpc LookupDiscoveredService(LookupDiscoveredServiceRequest) + returns (LookupDiscoveredServiceResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/discoveredServices:lookup" + }; + option (google.api.method_signature) = "parent,uri"; + } + + // Lists Services in an Application. + rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/applications/*}/services" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a Service in an Application. + rpc CreateService(CreateServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/applications/*}/services" + body: "service" + }; + option (google.api.method_signature) = "parent,service,service_id"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "OperationMetadata" + }; + } + + // Gets a Service in an Application. + rpc GetService(GetServiceRequest) returns (Service) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/applications/*/services/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Service in an Application. + rpc UpdateService(UpdateServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{service.name=projects/*/locations/*/applications/*/services/*}" + body: "service" + }; + option (google.api.method_signature) = "service,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a Service from an Application. + rpc DeleteService(DeleteServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/applications/*/services/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists Discovered Workloads that can be added to an Application in a host + // project and location. + rpc ListDiscoveredWorkloads(ListDiscoveredWorkloadsRequest) + returns (ListDiscoveredWorkloadsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/discoveredWorkloads" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a Discovered Workload in a host project and location. + rpc GetDiscoveredWorkload(GetDiscoveredWorkloadRequest) + returns (DiscoveredWorkload) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/discoveredWorkloads/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists a Discovered Workload in a host project and location, with a + // given resource URI. + rpc LookupDiscoveredWorkload(LookupDiscoveredWorkloadRequest) + returns (LookupDiscoveredWorkloadResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/discoveredWorkloads:lookup" + }; + option (google.api.method_signature) = "parent,uri"; + } + + // Lists Workloads in an Application. + rpc ListWorkloads(ListWorkloadsRequest) returns (ListWorkloadsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/applications/*}/workloads" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a Workload in an Application. + rpc CreateWorkload(CreateWorkloadRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/applications/*}/workloads" + body: "workload" + }; + option (google.api.method_signature) = "parent,workload,workload_id"; + option (google.longrunning.operation_info) = { + response_type: "Workload" + metadata_type: "OperationMetadata" + }; + } + + // Gets a Workload in an Application. + rpc GetWorkload(GetWorkloadRequest) returns (Workload) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/applications/*/workloads/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Workload in an Application. + rpc UpdateWorkload(UpdateWorkloadRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{workload.name=projects/*/locations/*/applications/*/workloads/*}" + body: "workload" + }; + option (google.api.method_signature) = "workload,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Workload" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a Workload from an Application. + rpc DeleteWorkload(DeleteWorkloadRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/applications/*/workloads/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists Applications in a host project and location. + rpc ListApplications(ListApplicationsRequest) + returns (ListApplicationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/applications" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates an Application in a host project and location. + rpc CreateApplication(CreateApplicationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/applications" + body: "application" + }; + option (google.api.method_signature) = "parent,application,application_id"; + option (google.longrunning.operation_info) = { + response_type: "Application" + metadata_type: "OperationMetadata" + }; + } + + // Gets an Application in a host project and location. + rpc GetApplication(GetApplicationRequest) returns (Application) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/applications/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an Application in a host project and location. + rpc UpdateApplication(UpdateApplicationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{application.name=projects/*/locations/*/applications/*}" + body: "application" + }; + option (google.api.method_signature) = "application,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Application" + metadata_type: "OperationMetadata" + }; + } + + // Deletes an Application in a host project and location. + rpc DeleteApplication(DeleteApplicationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/applications/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Request for LookupServiceProjectAttachment. +message LookupServiceProjectAttachmentRequest { + // Required. Service project ID and location to lookup service project + // attachment for. Only global location is supported. Expected format: + // `projects/{project}/locations/{location}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response for LookupServiceProjectAttachment. +message LookupServiceProjectAttachmentResponse { + // Service project attachment for a project if exists, empty otherwise. + ServiceProjectAttachment service_project_attachment = 1; +} + +// Request for ListServiceProjectAttachments. +message ListServiceProjectAttachmentsRequest { + // Required. Host project ID and location to list service project attachments. + // Only global location is supported. Expected format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/ServiceProjectAttachment" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListServiceProjectAttachments. +message ListServiceProjectAttachmentsResponse { + // List of service project attachments. + repeated ServiceProjectAttachment service_project_attachments = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for CreateServiceProjectAttachment. +message CreateServiceProjectAttachmentRequest { + // Required. Host project ID and location to which service project is being + // attached. Only global location is supported. Expected format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/ServiceProjectAttachment" + } + ]; + + // Required. The service project attachment identifier must contain the + // project id of the service project specified in the + // service_project_attachment.service_project field. + string service_project_attachment_id = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created. + ServiceProjectAttachment service_project_attachment = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetServiceProjectAttachment. +message GetServiceProjectAttachmentRequest { + // Required. Fully qualified name of the service project attachment to + // retrieve. Expected format: + // `projects/{project}/locations/{location}/serviceProjectAttachments/{serviceProjectAttachment}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apphub.googleapis.com/ServiceProjectAttachment" + } + ]; +} + +// Request for DeleteServiceProjectAttachment. +message DeleteServiceProjectAttachmentRequest { + // Required. Fully qualified name of the service project attachment to delete. + // Expected format: + // `projects/{project}/locations/{location}/serviceProjectAttachments/{serviceProjectAttachment}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apphub.googleapis.com/ServiceProjectAttachment" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DetachServiceProjectAttachment. +message DetachServiceProjectAttachmentRequest { + // Required. Service project id and location to detach from a host project. + // Only global location is supported. Expected format: + // `projects/{project}/locations/{location}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response for DetachServiceProjectAttachment. +message DetachServiceProjectAttachmentResponse {} + +// Request for ListServices. +message ListServicesRequest { + // Required. Fully qualified name of the parent Application to list Services + // for. Expected format: + // `projects/{project}/locations/{location}/applications/{application}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/Service" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListServices. +message ListServicesResponse { + // List of Services. + repeated Service services = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for ListDiscoveredServices. +message ListDiscoveredServicesRequest { + // Required. Project and location to list Discovered Services on. + // Expected format: `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/DiscoveredService" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListDiscoveredServices. +message ListDiscoveredServicesResponse { + // List of Discovered Services. + repeated DiscoveredService discovered_services = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for CreateService. +message CreateServiceRequest { + // Required. Fully qualified name of the parent Application to create the + // Service in. Expected format: + // `projects/{project}/locations/{location}/applications/{application}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/Service" + } + ]; + + // Required. The Service identifier. + // Must contain only lowercase letters, numbers + // or hyphens, with the first character a letter, the last a letter or a + // number, and a 63 character maximum. + string service_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created. + Service service = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetService. +message GetServiceRequest { + // Required. Fully qualified name of the Service to fetch. + // Expected format: + // `projects/{project}/locations/{location}/applications/{application}/services/{service}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apphub.googleapis.com/Service" } + ]; +} + +// Request for GetDiscoveredService. +message GetDiscoveredServiceRequest { + // Required. Fully qualified name of the Discovered Service to fetch. + // Expected format: + // `projects/{project}/locations/{location}/discoveredServices/{discoveredService}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apphub.googleapis.com/DiscoveredService" + } + ]; +} + +// Request for LookupDiscoveredService. +message LookupDiscoveredServiceRequest { + // Required. Host project ID and location to lookup Discovered Service in. + // Expected format: `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/DiscoveredService" + } + ]; + + // Required. Resource URI to find DiscoveredService for. + // Accepts both project number and project ID and does translation when + // needed. + string uri = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for LookupDiscoveredService. +message LookupDiscoveredServiceResponse { + // Discovered Service if exists, empty otherwise. + DiscoveredService discovered_service = 1; +} + +// Request for UpdateService. +message UpdateServiceRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Service resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. + // The API changes the values of the fields as specified in the update_mask. + // The API ignores the values of all fields not covered by the update_mask. + // You can also unset a field by not specifying it in the updated message, but + // adding the field to the mask. This clears whatever value the field + // previously had. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated. + Service service = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DeleteService. +message DeleteServiceRequest { + // Required. Fully qualified name of the Service to delete from an + // Application. Expected format: + // `projects/{project}/locations/{location}/applications/{application}/services/{service}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apphub.googleapis.com/Service" } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for ListApplications. +message ListApplicationsRequest { + // Required. Project and location to list Applications on. + // Expected format: `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/Application" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListApplications. +message ListApplicationsResponse { + // List of Applications. + repeated Application applications = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for CreateApplication. +message CreateApplicationRequest { + // Required. Project and location to create Application in. + // Expected format: `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/Application" + } + ]; + + // Required. The Application identifier. + // Must contain only lowercase letters, numbers + // or hyphens, with the first character a letter, the last a letter or a + // number, and a 63 character maximum. + string application_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + Application application = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetApplication. +message GetApplicationRequest { + // Required. Fully qualified name of the Application to fetch. + // Expected format: + // `projects/{project}/locations/{location}/applications/{application}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apphub.googleapis.com/Application" + } + ]; +} + +// Request for UpdateApplication. +message UpdateApplicationRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Application resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. + // The API changes the values of the fields as specified in the update_mask. + // The API ignores the values of all fields not covered by the update_mask. + // You can also unset a field by not specifying it in the updated message, but + // adding the field to the mask. This clears whatever value the field + // previously had. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated. + Application application = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DeleteApplication. +message DeleteApplicationRequest { + // Required. Fully qualified name of the Application to delete. + // Expected format: + // `projects/{project}/locations/{location}/applications/{application}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apphub.googleapis.com/Application" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for ListWorkloads. +message ListWorkloadsRequest { + // Required. Fully qualified name of the parent Application to list Workloads + // for. Expected format: + // `projects/{project}/locations/{location}/applications/{application}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/Workload" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListWorkloads. +message ListWorkloadsResponse { + // List of Workloads. + repeated Workload workloads = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for ListDiscoveredWorkloads. +message ListDiscoveredWorkloadsRequest { + // Required. Project and location to list Discovered Workloads on. + // Expected format: `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/DiscoveredWorkload" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListDiscoveredWorkloads. +message ListDiscoveredWorkloadsResponse { + // List of Discovered Workloads. + repeated DiscoveredWorkload discovered_workloads = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for CreateWorkload. +message CreateWorkloadRequest { + // Required. Fully qualified name of the Application to create Workload in. + // Expected format: + // `projects/{project}/locations/{location}/applications/{application}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/Workload" + } + ]; + + // Required. The Workload identifier. + // Must contain only lowercase letters, numbers + // or hyphens, with the first character a letter, the last a letter or a + // number, and a 63 character maximum. + string workload_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created. + Workload workload = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetWorkload. +message GetWorkloadRequest { + // Required. Fully qualified name of the Workload to fetch. + // Expected format: + // `projects/{project}/locations/{location}/applications/{application}/workloads/{workload}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apphub.googleapis.com/Workload" } + ]; +} + +// Request for GetDiscoveredWorkload. +message GetDiscoveredWorkloadRequest { + // Required. Fully qualified name of the Discovered Workload to fetch. + // Expected format: + // `projects/{project}/locations/{location}/discoveredWorkloads/{discoveredWorkload}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apphub.googleapis.com/DiscoveredWorkload" + } + ]; +} + +// Request for LookupDiscoveredWorkload. +message LookupDiscoveredWorkloadRequest { + // Required. Host project ID and location to lookup Discovered Workload in. + // Expected format: `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/DiscoveredWorkload" + } + ]; + + // Required. Resource URI to find Discovered Workload for. + // Accepts both project number and project ID and does translation when + // needed. + string uri = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for LookupDiscoveredWorkload. +message LookupDiscoveredWorkloadResponse { + // Discovered Workload if exists, empty otherwise. + DiscoveredWorkload discovered_workload = 1; +} + +// Request for UpdateWorkload. +message UpdateWorkloadRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Workload resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. + // The API changes the values of the fields as specified in the update_mask. + // The API ignores the values of all fields not covered by the update_mask. + // You can also unset a field by not specifying it in the updated message, but + // adding the field to the mask. This clears whatever value the field + // previously had. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated. + Workload workload = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DeleteWorkload. +message DeleteWorkloadRequest { + // Required. Fully qualified name of the Workload to delete from an + // Application. Expected format: + // `projects/{project}/locations/{location}/applications/{application}/workloads/{workload}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apphub.googleapis.com/Workload" } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/apphub/v1/apphub_v1.yaml b/third_party/googleapis/google/cloud/apphub/v1/apphub_v1.yaml new file mode 100644 index 000000000..deae8a14b --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/apphub_v1.yaml @@ -0,0 +1,135 @@ +type: google.api.Service +config_version: 3 +name: apphub.googleapis.com +title: App Hub API + +apis: +- name: google.cloud.apphub.v1.AppHub +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.apphub.v1.OperationMetadata + +documentation: + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + description: |- + Gets the access control policy for a resource. Returns an empty policy + if the resource exists and does not have a policy set. + + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + description: |- + Sets the access control policy on the specified resource. Replaces + any existing policy. + + Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` + errors. + + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + description: |- + 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. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v1/{resource=projects/*/locations/*/applications/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/applications/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/applications/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.apphub.v1.AppHub.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.iam.v1.IAMPolicy.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1509913 + documentation_uri: https://cloud.google.com/app-hub/docs/overview + api_short_name: apphub + github_label: 'api: apphub' + doc_tag_prefix: apphub + organization: CLOUD + library_settings: + - version: google.cloud.apphub.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/app-hub/docs/reference/rpc diff --git a/third_party/googleapis/google/cloud/apphub/v1/apphub_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/apphub/v1/apphub_v1_grpc_service_config.json new file mode 100644 index 000000000..54619f4ef --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/apphub_v1_grpc_service_config.json @@ -0,0 +1,46 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.apphub.v1.AppHub", "method": "LookupServiceProjectAttachment" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "ListServiceProjectAttachments" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "GetServiceProjectAttachment" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "ListDiscoveredServices" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "GetDiscoveredService" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "LookupDiscoveredService" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "ListServices" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "GetService" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "ListDiscoveredWorkloads" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "GetDiscoveredWorkload" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "LookupDiscoveredWorkload" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "ListWorkloads" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "GetWorkload" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "ListApplications" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "GetApplication" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.apphub.v1.AppHub", "method": "CreateServiceProjectAttachment" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "DeleteServiceProjectAttachment" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "DetachServiceProjectAttachment" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "CreateService" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "UpdateService" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "DeleteService" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "CreateWorkload" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "UpdateWorkload" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "DeleteWorkload" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "CreateApplication" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "UpdateApplication" }, + { "service": "google.cloud.apphub.v1.AppHub", "method": "DeleteApplication" } + ], + "timeout": "60s" + }] +} \ No newline at end of file diff --git a/third_party/googleapis/google/cloud/apphub/v1/application.proto b/third_party/googleapis/google/cloud/apphub/v1/application.proto new file mode 100644 index 000000000..f5a639236 --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/application.proto @@ -0,0 +1,114 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.apphub.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/apphub/v1/attributes.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AppHub.V1"; +option go_package = "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb"; +option java_multiple_files = true; +option java_outer_classname = "ApplicationProto"; +option java_package = "com.google.cloud.apphub.v1"; +option php_namespace = "Google\\Cloud\\AppHub\\V1"; +option ruby_package = "Google::Cloud::AppHub::V1"; + +// Application defines the governance boundary for App Hub Entities that +// perform a logical end-to-end business function. +// App Hub supports application level IAM permission to align with governance +// requirements. +message Application { + option (google.api.resource) = { + type: "apphub.googleapis.com/Application" + pattern: "projects/{project}/locations/{location}/applications/{application}" + plural: "applications" + singular: "application" + }; + + // Application state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // The Application is being created. + CREATING = 1; + + // The Application is ready to register Services and Workloads. + ACTIVE = 2; + + // The Application is being deleted. + DELETING = 3; + } + + // Identifier. The resource name of an Application. Format: + // "projects/{host-project-id}/locations/{location}/applications/{application-id}" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. User-defined name for the Application. + // Can have a maximum length of 63 characters. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined description of an Application. + // Can have a maximum length of 2048 characters. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Consumer provided attributes. + Attributes attributes = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Create time. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. Defines what data can be included into this + // Application. Limits which Services and Workloads can be registered. + Scope scope = 9 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. A universally unique identifier (in UUID4 format) for the + // `Application`. + string uid = 10 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Application state. + State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Scope of an application. +message Scope { + // Scope Type. + enum Type { + // Unspecified type. + TYPE_UNSPECIFIED = 0; + + // Regional type. + REGIONAL = 1; + } + + // Required. Scope Type. + Type type = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/apphub/v1/attributes.proto b/third_party/googleapis/google/cloud/apphub/v1/attributes.proto new file mode 100644 index 000000000..8309c5fc4 --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/attributes.proto @@ -0,0 +1,107 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.apphub.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.AppHub.V1"; +option go_package = "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb"; +option java_multiple_files = true; +option java_outer_classname = "AttributesProto"; +option java_package = "com.google.cloud.apphub.v1"; +option php_namespace = "Google\\Cloud\\AppHub\\V1"; +option ruby_package = "Google::Cloud::AppHub::V1"; + +// Consumer provided attributes. +message Attributes { + // Optional. User-defined criticality information. + Criticality criticality = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined environment information. + Environment environment = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Developer team that owns development and coding. + repeated ContactInfo developer_owners = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Operator team that ensures runtime and operations. + repeated ContactInfo operator_owners = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Business team that ensures user needs are met and value is + // delivered + repeated ContactInfo business_owners = 5 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Criticality of the Application, Service, or Workload +message Criticality { + // Criticality Type. + enum Type { + // Unspecified type. + TYPE_UNSPECIFIED = 0; + + // Mission critical service, application or workload. + MISSION_CRITICAL = 1; + + // High impact. + HIGH = 2; + + // Medium impact. + MEDIUM = 3; + + // Low impact. + LOW = 4; + } + + // Required. Criticality Type. + Type type = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Environment of the Application, Service, or Workload +message Environment { + // Environment Type. + enum Type { + // Unspecified type. + TYPE_UNSPECIFIED = 0; + + // Production environment. + PRODUCTION = 1; + + // Staging environment. + STAGING = 2; + + // Test environment. + TEST = 3; + + // Development environment. + DEVELOPMENT = 4; + } + + // Required. Environment Type. + Type type = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Contact information of stakeholders. +message ContactInfo { + // Optional. Contact's name. + // Can have a maximum length of 63 characters. + string display_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Email address of the contacts. + string email = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/apphub/v1/service.proto b/third_party/googleapis/google/cloud/apphub/v1/service.proto new file mode 100644 index 000000000..22d8453b5 --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/service.proto @@ -0,0 +1,161 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.apphub.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/apphub/v1/attributes.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AppHub.V1"; +option go_package = "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.apphub.v1"; +option php_namespace = "Google\\Cloud\\AppHub\\V1"; +option ruby_package = "Google::Cloud::AppHub::V1"; + +// Service is an App Hub data model that contains a discovered service, which +// represents a network/api interface that exposes some functionality to clients +// for consumption over the network. +message Service { + option (google.api.resource) = { + type: "apphub.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/applications/{application}/services/{service}" + plural: "services" + singular: "service" + }; + + // Service state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // The service is being created. + CREATING = 1; + + // The service is ready. + ACTIVE = 2; + + // The service is being deleted. + DELETING = 3; + + // The underlying networking resources have been deleted. + DETACHED = 4; + } + + // Identifier. The resource name of a Service. Format: + // "projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. User-defined name for the Service. + // Can have a maximum length of 63 characters. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined description of a Service. + // Can have a maximum length of 2048 characters. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reference to an underlying networking resource that can + // comprise a Service. These are immutable. + ServiceReference service_reference = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Properties of an underlying compute resource that can comprise + // a Service. These are immutable. + ServiceProperties service_properties = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Consumer provided attributes. + Attributes attributes = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Immutable. The resource name of the original discovered service. + string discovered_service = 7 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/DiscoveredService" + } + ]; + + // Output only. Create time. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A universally unique identifier (UUID) for the `Service` in + // the UUID4 format. + string uid = 10 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Service state. + State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Reference to an underlying networking resource that can comprise a Service. +message ServiceReference { + // Output only. The underlying resource URI (For example, URI of Forwarding + // Rule, URL Map, and Backend Service). + string uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Properties of an underlying cloud resource that can comprise a Service. +message ServiceProperties { + // Output only. The service project identifier that the underlying cloud + // resource resides in. + string gcp_project = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The location that the underlying resource resides in, for + // example, us-west1. + string location = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The location that the underlying resource resides in if it is + // zonal, for example, us-west1-a). + string zone = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// DiscoveredService is a network/api interface that exposes some functionality +// to clients for consumption over the network. A discovered service can be +// registered to a App Hub service. +message DiscoveredService { + option (google.api.resource) = { + type: "apphub.googleapis.com/DiscoveredService" + pattern: "projects/{project}/locations/{location}/discoveredServices/{discovered_service}" + plural: "discoveredServices" + singular: "discoveredService" + }; + + // Identifier. The resource name of the discovered service. Format: + // "projects/{host-project-id}/locations/{location}/discoveredServices/{uuid}"" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Reference to an underlying networking resource that can + // comprise a Service. These are immutable. + ServiceReference service_reference = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Properties of an underlying compute resource that can comprise + // a Service. These are immutable. + ServiceProperties service_properties = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/apphub/v1/service_project_attachment.proto b/third_party/googleapis/google/cloud/apphub/v1/service_project_attachment.proto new file mode 100644 index 000000000..e3a2bb10d --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/service_project_attachment.proto @@ -0,0 +1,90 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.apphub.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AppHub.V1"; +option go_package = "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProjectAttachmentProto"; +option java_package = "com.google.cloud.apphub.v1"; +option php_namespace = "Google\\Cloud\\AppHub\\V1"; +option ruby_package = "Google::Cloud::AppHub::V1"; + +// ServiceProjectAttachment represents an attachment from a service project to a +// host project. Service projects contain the underlying cloud +// infrastructure resources, and expose these resources to the host project +// through a ServiceProjectAttachment. With the attachments, the host project +// can provide an aggregated view of resources across all service projects. +message ServiceProjectAttachment { + option (google.api.resource) = { + type: "apphub.googleapis.com/ServiceProjectAttachment" + pattern: "projects/{project}/locations/{location}/serviceProjectAttachments/{service_project_attachment}" + plural: "serviceProjectAttachments" + singular: "serviceProjectAttachment" + }; + + // ServiceProjectAttachment state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // The ServiceProjectAttachment is being created. + CREATING = 1; + + // The ServiceProjectAttachment is ready. + // This means Services and Workloads under the corresponding + // ServiceProjectAttachment is ready for registration. + ACTIVE = 2; + + // The ServiceProjectAttachment is being deleted. + DELETING = 3; + } + + // Identifier. The resource name of a ServiceProjectAttachment. Format: + // "projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}." + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Immutable. Service project name in the format: "projects/abc" or + // "projects/123". As input, project name with either project id or number are + // accepted. As output, this field will contain project number. + string service_project = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Output only. Create time. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A globally unique identifier (in UUID4 format) for the + // `ServiceProjectAttachment`. + string uid = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. ServiceProjectAttachment state. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/apphub/v1/workload.proto b/third_party/googleapis/google/cloud/apphub/v1/workload.proto new file mode 100644 index 000000000..82e9d5a9d --- /dev/null +++ b/third_party/googleapis/google/cloud/apphub/v1/workload.proto @@ -0,0 +1,162 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.apphub.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/apphub/v1/attributes.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AppHub.V1"; +option go_package = "cloud.google.com/go/apphub/apiv1/apphubpb;apphubpb"; +option java_multiple_files = true; +option java_outer_classname = "WorkloadProto"; +option java_package = "com.google.cloud.apphub.v1"; +option php_namespace = "Google\\Cloud\\AppHub\\V1"; +option ruby_package = "Google::Cloud::AppHub::V1"; + +// Workload is an App Hub data model that contains a discovered workload, which +// represents a binary deployment (such as managed instance groups (MIGs) and +// GKE deployments) that performs the smallest logical subset of business +// functionality. +message Workload { + option (google.api.resource) = { + type: "apphub.googleapis.com/Workload" + pattern: "projects/{project}/locations/{location}/applications/{application}/workloads/{workload}" + plural: "workloads" + singular: "workload" + }; + + // Workload state. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // The Workload is being created. + CREATING = 1; + + // The Workload is ready. + ACTIVE = 2; + + // The Workload is being deleted. + DELETING = 3; + + // The underlying compute resources have been deleted. + DETACHED = 4; + } + + // Identifier. The resource name of the Workload. Format: + // "projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. User-defined name for the Workload. + // Can have a maximum length of 63 characters. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined description of a Workload. + // Can have a maximum length of 2048 characters. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reference of an underlying compute resource represented by the + // Workload. These are immutable. + WorkloadReference workload_reference = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Properties of an underlying compute resource represented by + // the Workload. These are immutable. + WorkloadProperties workload_properties = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The resource name of the original discovered workload. + string discovered_workload = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + child_type: "apphub.googleapis.com/DiscoveredWorkload" + } + ]; + + // Optional. Consumer provided attributes. + Attributes attributes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Create time. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A universally unique identifier (UUID) for the `Workload` in + // the UUID4 format. + string uid = 10 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Workload state. + State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Reference of an underlying compute resource represented by the Workload. +message WorkloadReference { + // Output only. The underlying compute resource uri. + string uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Properties of an underlying compute resource represented by the Workload. +message WorkloadProperties { + // Output only. The service project identifier that the underlying cloud + // resource resides in. Empty for non cloud resources. + string gcp_project = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The location that the underlying compute resource resides in + // (e.g us-west1). + string location = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The location that the underlying compute resource resides in + // if it is zonal (e.g us-west1-a). + string zone = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// DiscoveredWorkload is a binary deployment (such as managed instance groups +// (MIGs) and GKE deployments) that performs the smallest logical subset of +// business functionality. A discovered workload can be registered to an App Hub +// Workload. +message DiscoveredWorkload { + option (google.api.resource) = { + type: "apphub.googleapis.com/DiscoveredWorkload" + pattern: "projects/{project}/locations/{location}/discoveredWorkloads/{discovered_workload}" + plural: "discoveredWorkloads" + singular: "discoveredWorkload" + }; + + // Identifier. The resource name of the discovered workload. Format: + // "projects/{host-project-id}/locations/{location}/discoveredWorkloads/{uuid}" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Reference of an underlying compute resource represented by the + // Workload. These are immutable. + WorkloadReference workload_reference = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Properties of an underlying compute resource represented by + // the Workload. These are immutable. + WorkloadProperties workload_properties = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/asset/v1/asset_service.proto b/third_party/googleapis/google/cloud/asset/v1/asset_service.proto index d87a37167..d9b60233c 100644 --- a/third_party/googleapis/google/cloud/asset/v1/asset_service.proto +++ b/third_party/googleapis/google/cloud/asset/v1/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -291,18 +291,49 @@ service AssetService { // Analyzes organization policies governed assets (Google Cloud resources or // policies) under a scope. This RPC supports custom constraints and the - // following 10 canned constraints: - // - // * storage.uniformBucketLevelAccess - // * iam.disableServiceAccountKeyCreation - // * iam.allowedPolicyMemberDomains - // * compute.vmExternalIpAccess - // * appengine.enforceServiceAccountActAsCheck - // * gcp.resourceLocations - // * compute.trustedImageProjects - // * compute.skipDefaultNetworkCreation - // * compute.requireOsLogin - // * compute.disableNestedVirtualization + // following canned constraints: + // + // * constraints/ainotebooks.accessMode + // * constraints/ainotebooks.disableFileDownloads + // * constraints/ainotebooks.disableRootAccess + // * constraints/ainotebooks.disableTerminal + // * constraints/ainotebooks.environmentOptions + // * constraints/ainotebooks.requireAutoUpgradeSchedule + // * constraints/ainotebooks.restrictVpcNetworks + // * constraints/compute.disableGuestAttributesAccess + // * constraints/compute.disableInstanceDataAccessApis + // * constraints/compute.disableNestedVirtualization + // * constraints/compute.disableSerialPortAccess + // * constraints/compute.disableSerialPortLogging + // * constraints/compute.disableVpcExternalIpv6 + // * constraints/compute.requireOsLogin + // * constraints/compute.requireShieldedVm + // * constraints/compute.restrictLoadBalancerCreationForTypes + // * constraints/compute.restrictProtocolForwardingCreationForTypes + // * constraints/compute.restrictXpnProjectLienRemoval + // * constraints/compute.setNewProjectDefaultToZonalDNSOnly + // * constraints/compute.skipDefaultNetworkCreation + // * constraints/compute.trustedImageProjects + // * constraints/compute.vmCanIpForward + // * constraints/compute.vmExternalIpAccess + // * constraints/gcp.detailedAuditLoggingMode + // * constraints/gcp.resourceLocations + // * constraints/iam.allowedPolicyMemberDomains + // * constraints/iam.automaticIamGrantsForDefaultServiceAccounts + // * constraints/iam.disableServiceAccountCreation + // * constraints/iam.disableServiceAccountKeyCreation + // * constraints/iam.disableServiceAccountKeyUpload + // * constraints/iam.restrictCrossProjectServiceAccountLienRemoval + // * constraints/iam.serviceAccountKeyExpiryHours + // * constraints/resourcemanager.accessBoundaries + // * constraints/resourcemanager.allowedExportDestinations + // * constraints/sql.restrictAuthorizedNetworks + // * constraints/sql.restrictNoncompliantDiagnosticDataAccess + // * constraints/sql.restrictNoncompliantResourceCreation + // * constraints/sql.restrictPublicIp + // * constraints/storage.publicAccessPrevention + // * constraints/storage.restrictAuthTypes + // * constraints/storage.uniformBucketLevelAccess // // This RPC only returns either resources of types [supported by search // APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types) @@ -1361,10 +1392,10 @@ message IamPolicyAnalysisQuery { // folder number (such as "folders/123"), a project ID (such as // "projects/my-project-id"), or a project number (such as "projects/12345"). // - // To know how to get organization id, visit [here + // To know how to get organization ID, visit [here // ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). // - // To know how to get folder or project id, visit [here + // To know how to get folder or project ID, visit [here // ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). string scope = 1 [(google.api.field_behavior) = REQUIRED]; @@ -2051,10 +2082,10 @@ message BatchGetEffectiveIamPoliciesRequest { // folder number (such as "folders/123"), a project ID (such as // "projects/my-project-id"), or a project number (such as "projects/12345"). // - // To know how to get organization id, visit [here + // To know how to get organization ID, visit [here // ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). // - // To know how to get folder or project id, visit [here + // To know how to get folder or project ID, visit [here // ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). string scope = 1 [ (google.api.field_behavior) = REQUIRED, @@ -2150,8 +2181,8 @@ message AnalyzerOrgPolicy { } oneof kind { - // List of values to be used for this PolicyRule. This field can be set - // only in Policies for list constraints. + // List of values to be used for this policy rule. This field can be set + // only in policies for list constraints. StringValues values = 3; // Setting this to true means that all values are allowed. This field can @@ -2170,6 +2201,22 @@ message AnalyzerOrgPolicy { // The evaluating condition for this rule. google.type.Expr condition = 7; + + // The condition evaluation result for this rule. + // Only populated if it meets all the following criteria: + // + // * There is a + // [condition][google.cloud.asset.v1.AnalyzerOrgPolicy.Rule.condition] + // defined for this rule. + // * This rule is within + // [AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.consolidated_policy][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.consolidated_policy], + // or + // [AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.consolidated_policy][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.consolidated_policy] + // when the + // [AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset] + // has + // [AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.governed_resource][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.governed_resource]. + ConditionEvaluation condition_evaluation = 8; } // The [full resource name] @@ -2405,6 +2452,21 @@ message AnalyzeOrgPoliciesResponse { // If the constraint is defined with default policy, it will also appear in // the list. repeated AnalyzerOrgPolicy policy_bundle = 2; + + // The project that this consolidated policy belongs to, in the format of + // projects/{PROJECT_NUMBER}. This field is available when the consolidated + // policy belongs to a project. + string project = 3; + + // The folder(s) that this consolidated policy belongs to, in the format of + // folders/{FOLDER_NUMBER}. This field is available when the consolidated + // policy belongs (directly or cascadingly) to one or more folders. + repeated string folders = 4; + + // The organization that this consolidated policy belongs to, in the format + // of organizations/{ORGANIZATION_NUMBER}. This field is available when the + // consolidated policy belongs (directly or cascadingly) to an organization. + string organization = 5; } // The organization policies under the @@ -2491,6 +2553,24 @@ message AnalyzeOrgPolicyGovernedContainersResponse { // If the constraint is defined with default policy, it will also appear in // the list. repeated AnalyzerOrgPolicy policy_bundle = 4; + + // The project that this resource belongs to, in the format of + // projects/{PROJECT_NUMBER}. This field is available when the resource + // belongs to a project. + string project = 5; + + // The folder(s) that this resource belongs to, in the format of + // folders/{FOLDER_NUMBER}. This field is available when the resource + // belongs (directly or cascadingly) to one or more folders. + repeated string folders = 6; + + // The organization that this resource belongs to, in the format of + // organizations/{ORGANIZATION_NUMBER}. This field is available when the + // resource belongs (directly or cascadingly) to an organization. + string organization = 7; + + // The effective tags on this resource. + repeated EffectiveTagDetails effective_tags = 8; } // The list of the analyzed governed containers. @@ -2589,6 +2669,18 @@ message AnalyzeOrgPolicyGovernedAssetsResponse { // organizations/{ORGANIZATION_NUMBER}. This field is available when the // resource belongs (directly or cascadingly) to an organization. string organization = 7; + + // The asset type of the + // [AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource.full_resource_name][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource.full_resource_name] + // Example: + // `cloudresourcemanager.googleapis.com/Project` + // See [Cloud Asset Inventory Supported Asset + // Types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + // for all supported asset types. + string asset_type = 8; + + // The effective tags on this resource. + repeated EffectiveTagDetails effective_tags = 9; } // The IAM policies governed by the organization policies of the @@ -2619,6 +2711,15 @@ message AnalyzeOrgPolicyGovernedAssetsResponse { // organizations/{ORGANIZATION_NUMBER}. This field is available when the // IAM policy belongs (directly or cascadingly) to an organization. string organization = 7; + + // The asset type of the + // [AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicy.attached_resource][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicy.attached_resource]. + // Example: + // `cloudresourcemanager.googleapis.com/Project` + // See [Cloud Asset Inventory Supported Asset + // Types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + // for all supported asset types. + string asset_type = 8; } // Represents a Google Cloud asset(resource or IAM policy) governed by the diff --git a/third_party/googleapis/google/cloud/asset/v1/assets.proto b/third_party/googleapis/google/cloud/asset/v1/assets.proto index 7cfc80d05..d40a3492c 100644 --- a/third_party/googleapis/google/cloud/asset/v1/assets.proto +++ b/third_party/googleapis/google/cloud/asset/v1/assets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -304,11 +304,14 @@ message RelatedAsset { } // The key and value for a -// [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview), +// [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview). message Tag { // TagKey namespaced name, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}. optional string tag_key = 1; + // TagKey ID, in the format of tagKeys/{TAG_KEY_ID}. + optional string tag_key_id = 2; + // TagValue namespaced name, in the format of // {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}. optional string tag_value = 3; @@ -639,6 +642,7 @@ message ResourceSearchResult { // - `tagKeys:"123456789/env*"` // - `tagKeys="123456789/env"` // - `tagKeys:"env"` + // - `tagKeyIds="tagKeys/123"` // - `tagValues:"env"` // - `tagValues:"env/prod"` // - `tagValues:"123456789/env/prod*"` @@ -660,6 +664,7 @@ message ResourceSearchResult { // - `effectiveTagKeys:"123456789/env*"` // - `effectiveTagKeys="123456789/env"` // - `effectiveTagKeys:"env"` + // - `effectiveTagKeyIds="tagKeys/123"` // - `effectiveTagValues:"env"` // - `effectiveTagValues:"env/prod"` // - `effectiveTagValues:"123456789/env/prod*"` @@ -858,7 +863,7 @@ message IamPolicyAnalysisState { string cause = 2; } -// The Condition evaluation. +// The condition evaluation. message ConditionEvaluation { // Value of this expression. enum EvaluationValue { @@ -873,7 +878,7 @@ message ConditionEvaluation { // The evaluation result is `conditional` when the condition expression // contains variables that are either missing input values or have not been - // supported by Analyzer yet. + // supported by Policy Analyzer yet. CONDITIONAL = 3; } diff --git a/third_party/googleapis/google/cloud/asset/v1p1beta1/asset_service.proto b/third_party/googleapis/google/cloud/asset/v1p1beta1/asset_service.proto index a7bdbbb88..05665dd1d 100644 --- a/third_party/googleapis/google/cloud/asset/v1p1beta1/asset_service.proto +++ b/third_party/googleapis/google/cloud/asset/v1p1beta1/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,8 +38,8 @@ service AssetService { // (project/folder/organization). This RPC gives callers especially // administrators the ability to search all the resources within a scope, even // if they don't have `.get` permission of all the resources. Callers should - // have `cloud.assets.SearchAllResources` permission on the requested scope, - // otherwise the request will be rejected. + // have `cloudasset.assets.searchAllResources` permission on the requested + // scope, otherwise the request will be rejected. rpc SearchAllResources(SearchAllResourcesRequest) returns (SearchAllResourcesResponse) { option (google.api.http) = { @@ -52,8 +52,8 @@ service AssetService { // scope (project/folder/organization). This RPC gives callers especially // administrators the ability to search all the IAM policies within a scope, // even if they don't have `.getIamPolicy` permission of all the IAM policies. - // Callers should have `cloud.assets.SearchAllIamPolicies` permission on the - // requested scope, otherwise the request will be rejected. + // Callers should have `cloudasset.assets.searchAllIamPolicies` permission on + // the requested scope, otherwise the request will be rejected. rpc SearchAllIamPolicies(SearchAllIamPoliciesRequest) returns (SearchAllIamPoliciesResponse) { option (google.api.http) = { diff --git a/third_party/googleapis/google/cloud/asset/v1p1beta1/assets.proto b/third_party/googleapis/google/cloud/asset/v1p1beta1/assets.proto index 4aed0e52b..2b23818bf 100644 --- a/third_party/googleapis/google/cloud/asset/v1p1beta1/assets.proto +++ b/third_party/googleapis/google/cloud/asset/v1p1beta1/assets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/asset/v1p2beta1/asset_service.proto b/third_party/googleapis/google/cloud/asset/v1p2beta1/asset_service.proto index 5a48e8da0..663029cf1 100644 --- a/third_party/googleapis/google/cloud/asset/v1p2beta1/asset_service.proto +++ b/third_party/googleapis/google/cloud/asset/v1p2beta1/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/asset/v1p2beta1/assets.proto b/third_party/googleapis/google/cloud/asset/v1p2beta1/assets.proto index e51006f9c..f53517045 100644 --- a/third_party/googleapis/google/cloud/asset/v1p2beta1/assets.proto +++ b/third_party/googleapis/google/cloud/asset/v1p2beta1/assets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/asset/v1p5beta1/asset_service.proto b/third_party/googleapis/google/cloud/asset/v1p5beta1/asset_service.proto index 0e02a4dac..2e65fe1a7 100644 --- a/third_party/googleapis/google/cloud/asset/v1p5beta1/asset_service.proto +++ b/third_party/googleapis/google/cloud/asset/v1p5beta1/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/asset/v1p5beta1/assets.proto b/third_party/googleapis/google/cloud/asset/v1p5beta1/assets.proto index d71e80fe1..ed54b0df2 100644 --- a/third_party/googleapis/google/cloud/asset/v1p5beta1/assets.proto +++ b/third_party/googleapis/google/cloud/asset/v1p5beta1/assets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/asset/v1p7beta1/asset_service.proto b/third_party/googleapis/google/cloud/asset/v1p7beta1/asset_service.proto index e42db949d..36f440d1a 100644 --- a/third_party/googleapis/google/cloud/asset/v1p7beta1/asset_service.proto +++ b/third_party/googleapis/google/cloud/asset/v1p7beta1/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/asset/v1p7beta1/assets.proto b/third_party/googleapis/google/cloud/asset/v1p7beta1/assets.proto index a82e39d64..dc613ef77 100644 --- a/third_party/googleapis/google/cloud/asset/v1p7beta1/assets.proto +++ b/third_party/googleapis/google/cloud/asset/v1p7beta1/assets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto b/third_party/googleapis/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto index a6b575550..085674d70 100644 --- a/third_party/googleapis/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto +++ b/third_party/googleapis/google/cloud/assuredworkloads/regulatoryintercept/logging/v1/regulatory_intercept_ack_log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/assuredworkloads/v1/assuredworkloads.proto b/third_party/googleapis/google/cloud/assuredworkloads/v1/assuredworkloads.proto index 2700056ca..811dfa04f 100644 --- a/third_party/googleapis/google/cloud/assuredworkloads/v1/assuredworkloads.proto +++ b/third_party/googleapis/google/cloud/assuredworkloads/v1/assuredworkloads.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/BUILD.bazel index 04cd64baa..fa1d59025 100644 --- a/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/BUILD.bazel @@ -216,6 +216,7 @@ php_gapic_library( name = "assuredworkloads_php_gapic", srcs = [":assuredworkloads_proto_with_info"], grpc_service_config = "assuredworkloads_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "assuredworkloads_v1beta1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto b/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto index c33caa0aa..864ff6803 100644 --- a/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto +++ b/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto b/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto index e62a64a6d..315093623 100644 --- a/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto +++ b/third_party/googleapis/google/cloud/assuredworkloads/v1beta1/assuredworkloads_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/audit/audit_log.proto b/third_party/googleapis/google/cloud/audit/audit_log.proto index ed4ae5f48..2a65ca661 100644 --- a/third_party/googleapis/google/cloud/audit/audit_log.proto +++ b/third_party/googleapis/google/cloud/audit/audit_log.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/audit/bigquery_audit_metadata.proto b/third_party/googleapis/google/cloud/audit/bigquery_audit_metadata.proto index 1adc41c62..7cf600848 100644 --- a/third_party/googleapis/google/cloud/audit/bigquery_audit_metadata.proto +++ b/third_party/googleapis/google/cloud/audit/bigquery_audit_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/annotation_payload.proto b/third_party/googleapis/google/cloud/automl/v1/annotation_payload.proto index e8fd89c25..900a24458 100644 --- a/third_party/googleapis/google/cloud/automl/v1/annotation_payload.proto +++ b/third_party/googleapis/google/cloud/automl/v1/annotation_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/annotation_spec.proto b/third_party/googleapis/google/cloud/automl/v1/annotation_spec.proto index 75cd334f0..d80053571 100644 --- a/third_party/googleapis/google/cloud/automl/v1/annotation_spec.proto +++ b/third_party/googleapis/google/cloud/automl/v1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/classification.proto b/third_party/googleapis/google/cloud/automl/v1/classification.proto index 3982ee4bd..84fe67b16 100644 --- a/third_party/googleapis/google/cloud/automl/v1/classification.proto +++ b/third_party/googleapis/google/cloud/automl/v1/classification.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/data_items.proto b/third_party/googleapis/google/cloud/automl/v1/data_items.proto index 9990e57d9..1240ba9be 100644 --- a/third_party/googleapis/google/cloud/automl/v1/data_items.proto +++ b/third_party/googleapis/google/cloud/automl/v1/data_items.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/dataset.proto b/third_party/googleapis/google/cloud/automl/v1/dataset.proto index f6f8fc7c4..a295e7d68 100644 --- a/third_party/googleapis/google/cloud/automl/v1/dataset.proto +++ b/third_party/googleapis/google/cloud/automl/v1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/detection.proto b/third_party/googleapis/google/cloud/automl/v1/detection.proto index a76c3538d..8fe799e81 100644 --- a/third_party/googleapis/google/cloud/automl/v1/detection.proto +++ b/third_party/googleapis/google/cloud/automl/v1/detection.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/geometry.proto b/third_party/googleapis/google/cloud/automl/v1/geometry.proto index a4261d5eb..908f005b9 100644 --- a/third_party/googleapis/google/cloud/automl/v1/geometry.proto +++ b/third_party/googleapis/google/cloud/automl/v1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/image.proto b/third_party/googleapis/google/cloud/automl/v1/image.proto index 5fdc101bc..577fe4f64 100644 --- a/third_party/googleapis/google/cloud/automl/v1/image.proto +++ b/third_party/googleapis/google/cloud/automl/v1/image.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/io.proto b/third_party/googleapis/google/cloud/automl/v1/io.proto index 9c32cf865..8018851f9 100644 --- a/third_party/googleapis/google/cloud/automl/v1/io.proto +++ b/third_party/googleapis/google/cloud/automl/v1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/model.proto b/third_party/googleapis/google/cloud/automl/v1/model.proto index 3543f3d6a..3e2f59108 100644 --- a/third_party/googleapis/google/cloud/automl/v1/model.proto +++ b/third_party/googleapis/google/cloud/automl/v1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/model_evaluation.proto b/third_party/googleapis/google/cloud/automl/v1/model_evaluation.proto index 5bedf4050..483bbcaa0 100644 --- a/third_party/googleapis/google/cloud/automl/v1/model_evaluation.proto +++ b/third_party/googleapis/google/cloud/automl/v1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/operations.proto b/third_party/googleapis/google/cloud/automl/v1/operations.proto index 21801093f..e08fab07e 100644 --- a/third_party/googleapis/google/cloud/automl/v1/operations.proto +++ b/third_party/googleapis/google/cloud/automl/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/prediction_service.proto b/third_party/googleapis/google/cloud/automl/v1/prediction_service.proto index 5d1d80c48..689cacf71 100644 --- a/third_party/googleapis/google/cloud/automl/v1/prediction_service.proto +++ b/third_party/googleapis/google/cloud/automl/v1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/service.proto b/third_party/googleapis/google/cloud/automl/v1/service.proto index ea5dc36fb..5c349e6e3 100644 --- a/third_party/googleapis/google/cloud/automl/v1/service.proto +++ b/third_party/googleapis/google/cloud/automl/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/text.proto b/third_party/googleapis/google/cloud/automl/v1/text.proto index e227347f9..12b76125e 100644 --- a/third_party/googleapis/google/cloud/automl/v1/text.proto +++ b/third_party/googleapis/google/cloud/automl/v1/text.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/text_extraction.proto b/third_party/googleapis/google/cloud/automl/v1/text_extraction.proto index 239299e88..86889a034 100644 --- a/third_party/googleapis/google/cloud/automl/v1/text_extraction.proto +++ b/third_party/googleapis/google/cloud/automl/v1/text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/text_segment.proto b/third_party/googleapis/google/cloud/automl/v1/text_segment.proto index 36bf4f343..acc5bcfb6 100644 --- a/third_party/googleapis/google/cloud/automl/v1/text_segment.proto +++ b/third_party/googleapis/google/cloud/automl/v1/text_segment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/text_sentiment.proto b/third_party/googleapis/google/cloud/automl/v1/text_sentiment.proto index 865459ea6..ba2d988ef 100644 --- a/third_party/googleapis/google/cloud/automl/v1/text_sentiment.proto +++ b/third_party/googleapis/google/cloud/automl/v1/text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1/translation.proto b/third_party/googleapis/google/cloud/automl/v1/translation.proto index 05b37d627..7c6879736 100644 --- a/third_party/googleapis/google/cloud/automl/v1/translation.proto +++ b/third_party/googleapis/google/cloud/automl/v1/translation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/annotation_payload.proto b/third_party/googleapis/google/cloud/automl/v1beta1/annotation_payload.proto index 5794c2391..3021846ad 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/annotation_payload.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/annotation_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/annotation_spec.proto b/third_party/googleapis/google/cloud/automl/v1beta1/annotation_spec.proto index 4072ddde4..347ee0f76 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/annotation_spec.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/classification.proto b/third_party/googleapis/google/cloud/automl/v1beta1/classification.proto index 7a1b83a28..5ef299c55 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/classification.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/classification.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/column_spec.proto b/third_party/googleapis/google/cloud/automl/v1beta1/column_spec.proto index 3d15fb51f..b1c55d68d 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/column_spec.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/column_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/data_items.proto b/third_party/googleapis/google/cloud/automl/v1beta1/data_items.proto index 2eb45f2d5..399dd9b04 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/data_items.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/data_items.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/data_stats.proto b/third_party/googleapis/google/cloud/automl/v1beta1/data_stats.proto index 8c2c2fe2a..b25d805ef 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/data_stats.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/data_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/data_types.proto b/third_party/googleapis/google/cloud/automl/v1beta1/data_types.proto index 72ac65dd3..ed0503fc9 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/data_types.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/data_types.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/dataset.proto b/third_party/googleapis/google/cloud/automl/v1beta1/dataset.proto index 22d7f9a6a..e5236296b 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/dataset.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/detection.proto b/third_party/googleapis/google/cloud/automl/v1beta1/detection.proto index 38240dd6e..175801c18 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/detection.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/detection.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/geometry.proto b/third_party/googleapis/google/cloud/automl/v1beta1/geometry.proto index 067ac00aa..de594358d 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/geometry.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/image.proto b/third_party/googleapis/google/cloud/automl/v1beta1/image.proto index 56401228e..476450b09 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/image.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/image.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/io.proto b/third_party/googleapis/google/cloud/automl/v1beta1/io.proto index 04808d74a..fde23f1b7 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/io.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/model.proto b/third_party/googleapis/google/cloud/automl/v1beta1/model.proto index 9db5e4866..7ad6851c1 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/model.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/model_evaluation.proto b/third_party/googleapis/google/cloud/automl/v1beta1/model_evaluation.proto index 91801bd36..f53b273ff 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/model_evaluation.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/operations.proto b/third_party/googleapis/google/cloud/automl/v1beta1/operations.proto index f75e48d14..dae3be501 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/operations.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/prediction_service.proto b/third_party/googleapis/google/cloud/automl/v1beta1/prediction_service.proto index 28148a576..7e065c1a6 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/prediction_service.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/ranges.proto b/third_party/googleapis/google/cloud/automl/v1beta1/ranges.proto index 35ebb569a..218016834 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/ranges.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/ranges.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/regression.proto b/third_party/googleapis/google/cloud/automl/v1beta1/regression.proto index 3c6b269a6..16094e326 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/regression.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/regression.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/service.proto b/third_party/googleapis/google/cloud/automl/v1beta1/service.proto index f4ac32315..0dfa47dcb 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/table_spec.proto b/third_party/googleapis/google/cloud/automl/v1beta1/table_spec.proto index de1f7a09c..16a27c1fd 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/table_spec.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/table_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/tables.proto b/third_party/googleapis/google/cloud/automl/v1beta1/tables.proto index 34ea99b30..3466b64e7 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/tables.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/tables.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/temporal.proto b/third_party/googleapis/google/cloud/automl/v1beta1/temporal.proto index 55bb231d0..c88cee810 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/temporal.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/temporal.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/text.proto b/third_party/googleapis/google/cloud/automl/v1beta1/text.proto index b93376ec3..cb0fe1f57 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/text.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/text.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/text_extraction.proto b/third_party/googleapis/google/cloud/automl/v1beta1/text_extraction.proto index 61afd5438..218930b9b 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/text_extraction.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/text_extraction.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/text_segment.proto b/third_party/googleapis/google/cloud/automl/v1beta1/text_segment.proto index 451279c44..09a61d7de 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/text_segment.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/text_segment.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/text_sentiment.proto b/third_party/googleapis/google/cloud/automl/v1beta1/text_sentiment.proto index a5b2c005e..23f17713e 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/text_sentiment.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/text_sentiment.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/translation.proto b/third_party/googleapis/google/cloud/automl/v1beta1/translation.proto index 7aefb42bb..922b271a5 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/translation.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/translation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/automl/v1beta1/video.proto b/third_party/googleapis/google/cloud/automl/v1beta1/video.proto index 872adb804..acf162639 100644 --- a/third_party/googleapis/google/cloud/automl/v1beta1/video.proto +++ b/third_party/googleapis/google/cloud/automl/v1beta1/video.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/backupdr/BUILD.bazel b/third_party/googleapis/google/cloud/backupdr/BUILD.bazel new file mode 100644 index 000000000..2ff9bdbb3 --- /dev/null +++ b/third_party/googleapis/google/cloud/backupdr/BUILD.bazel @@ -0,0 +1,38 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-backupdr. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for google-cloud-backupdr. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "backupdr_ruby_wrapper", + srcs = ["//google/cloud/backupdr/v1:backupdr_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-backupdr", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-namespace-override=Backupdr=BackupDR", + "ruby-cloud-path-override=backup_dr=backupdr" + ], + service_yaml = "//google/cloud/backupdr/v1:backupdr_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-backupdr-ruby", + deps = [ + ":backupdr_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/backupdr/logging/v1/BUILD.bazel b/third_party/googleapis/google/cloud/backupdr/logging/v1/BUILD.bazel index 10e456184..956e9c182 100644 --- a/third_party/googleapis/google/cloud/backupdr/logging/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/backupdr/logging/v1/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -22,6 +24,7 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_proto_library", @@ -45,6 +48,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", @@ -71,6 +75,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", @@ -117,6 +122,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -138,6 +144,7 @@ php_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -158,6 +165,7 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", @@ -182,6 +190,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/backupdr/logging/v1/eventlog.proto b/third_party/googleapis/google/cloud/backupdr/logging/v1/eventlog.proto index 2d16efc5b..8e88d0c1e 100644 --- a/third_party/googleapis/google/cloud/backupdr/logging/v1/eventlog.proto +++ b/third_party/googleapis/google/cloud/backupdr/logging/v1/eventlog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/backupdr/logging/v1/reportlog.proto b/third_party/googleapis/google/cloud/backupdr/logging/v1/reportlog.proto index 69d99bc95..4ab04e473 100644 --- a/third_party/googleapis/google/cloud/backupdr/logging/v1/reportlog.proto +++ b/third_party/googleapis/google/cloud/backupdr/logging/v1/reportlog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -316,3 +316,55 @@ message ProtectedResource { // Optional. Recovery Point. string recovery_point = 21; } + +// Holds information for the Mounted Images log +message MountedImage { + // Required. Source Resource name. + string source_resource_name = 1; + // Required. Source Resource id. + string source_resource_id = 2; + // Required. Cluster Name. + string appliance_name = 3; + // Required. Cluster Id. + string appliance_id = 4; + // Required. Mounted Image Name. + string mounted_image_name = 5; + // Required. Source Image Name. + string source_image_name = 6; + // Required.Job Type. + string job_type = 7; + // Required. Recovery point Date. + string recovery_point_date = 8; + // Required. Last Mount Date + string last_mount_date = 9; + // Required. Resource type. + string resource_type = 10; + // Required. Source Host Name. + string source_host_name = 11; + // Required. Source Host Id. + string source_host_id = 12; + // Required. Mounted Host Name. + string mounted_host_name = 13; + // Required. Mounted Host Id. + string mounted_host_id = 14; + // Required. Mounted Resource Name. + string mounted_resource_name = 15; + // Required. Resource Virtual size(in GB) + string resource_virtual_size = 16; + // Required. Storage Consumed. + string storage_consumed = 17; + // Optional. label. + string mounted_resource_label = 18; + // Optional. Restorable Objects. + string restorable_object = 19; + // Required. Mount Duration. + string mount_duration = 20; + // Required. User Name. + string user_name = 21; + // Optional. Read Mode. + string read_mode = 22; + // Required. Resource size(in GB) + string resource_size = 23; + // Optional. Image Expiration Date + string image_expiration_date = 24; +} diff --git a/third_party/googleapis/google/cloud/backupdr/v1/BUILD.bazel b/third_party/googleapis/google/cloud/backupdr/v1/BUILD.bazel new file mode 100644 index 000000000..d8e15e172 --- /dev/null +++ b/third_party/googleapis/google/cloud/backupdr/v1/BUILD.bazel @@ -0,0 +1,400 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "backupdr_proto", + srcs = [ + "backupdr.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "backupdr_proto_with_info", + deps = [ + ":backupdr_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "backupdr_java_proto", + deps = [":backupdr_proto"], +) + +java_grpc_library( + name = "backupdr_java_grpc", + srcs = [":backupdr_proto"], + deps = [":backupdr_java_proto"], +) + +java_gapic_library( + name = "backupdr_java_gapic", + srcs = [":backupdr_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "backupdr_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + test_deps = [ + ":backupdr_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":backupdr_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "backupdr_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.backupdr.v1.BackupDRClientHttpJsonTest", + "com.google.cloud.backupdr.v1.BackupDRClientTest", + ], + runtime_deps = [":backupdr_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-backupdr-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":backupdr_java_gapic", + ":backupdr_java_grpc", + ":backupdr_java_proto", + ":backupdr_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "backupdr_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/backupdr/apiv1/backupdrpb", + protos = [":backupdr_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "backupdr_go_gapic", + srcs = [":backupdr_proto_with_info"], + grpc_service_config = "backupdr_grpc_service_config.json", + importpath = "cloud.google.com/go/backupdr/apiv1;backupdr", + metadata = True, + release_level = "ga", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + transport = "grpc+rest", + deps = [ + ":backupdr_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-backupdr-v1-go", + deps = [ + ":backupdr_go_gapic", + ":backupdr_go_gapic_srcjar-metadata.srcjar", + ":backupdr_go_gapic_srcjar-snippets.srcjar", + ":backupdr_go_gapic_srcjar-test.srcjar", + ":backupdr_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "backupdr_py_gapic", + srcs = [":backupdr_proto"], + grpc_service_config = "backupdr_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "backupdr_py_gapic_test", + srcs = [ + "backupdr_py_gapic_pytest.py", + "backupdr_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":backupdr_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "backupdr-v1-py", + deps = [ + ":backupdr_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "backupdr_php_proto", + deps = [":backupdr_proto"], +) + +php_gapic_library( + name = "backupdr_php_gapic", + srcs = [":backupdr_proto_with_info"], + grpc_service_config = "backupdr_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + transport = "grpc+rest", + deps = [ + ":backupdr_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-backupdr-v1-php", + deps = [ + ":backupdr_php_gapic", + ":backupdr_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "backupdr_nodejs_gapic", + package_name = "@google-cloud/backupdr", + src = ":backupdr_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "backupdr_grpc_service_config.json", + package = "google.cloud.backupdr.v1", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "backupdr-v1-nodejs", + deps = [ + ":backupdr_nodejs_gapic", + ":backupdr_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "backupdr_ruby_proto", + deps = [":backupdr_proto"], +) + +ruby_grpc_library( + name = "backupdr_ruby_grpc", + srcs = [":backupdr_proto"], + deps = [":backupdr_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "backupdr_ruby_gapic", + srcs = [":backupdr_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-backupdr-v1", + "ruby-cloud-namespace-override=Backupdr=BackupDR", + "ruby-cloud-path-override=backup_dr=backupdr", + ], + grpc_service_config = "backupdr_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + transport = "grpc+rest", + deps = [ + ":backupdr_ruby_grpc", + ":backupdr_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-backupdr-v1-ruby", + deps = [ + ":backupdr_ruby_gapic", + ":backupdr_ruby_grpc", + ":backupdr_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "backupdr_csharp_proto", + deps = [":backupdr_proto"], +) + +csharp_grpc_library( + name = "backupdr_csharp_grpc", + srcs = [":backupdr_proto"], + deps = [":backupdr_csharp_proto"], +) + +csharp_gapic_library( + name = "backupdr_csharp_gapic", + srcs = [":backupdr_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "backupdr_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "backupdr_v1.yaml", + transport = "grpc+rest", + deps = [ + ":backupdr_csharp_grpc", + ":backupdr_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-backupdr-v1-csharp", + deps = [ + ":backupdr_csharp_gapic", + ":backupdr_csharp_grpc", + ":backupdr_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "backupdr_cc_proto", + deps = [":backupdr_proto"], +) + +cc_grpc_library( + name = "backupdr_cc_grpc", + srcs = [":backupdr_proto"], + grpc_only = True, + deps = [":backupdr_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/backupdr/v1/backupdr.proto b/third_party/googleapis/google/cloud/backupdr/v1/backupdr.proto new file mode 100644 index 000000000..42b798458 --- /dev/null +++ b/third_party/googleapis/google/cloud/backupdr/v1/backupdr.proto @@ -0,0 +1,416 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.backupdr.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option csharp_namespace = "Google.Cloud.BackupDR.V1"; +option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupDRProto"; +option java_package = "com.google.cloud.backupdr.v1"; +option php_namespace = "Google\\Cloud\\BackupDR\\V1"; +option ruby_package = "Google::Cloud::BackupDR::V1"; + +// The BackupDR Service +service BackupDR { + option (google.api.default_host) = "backupdr.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists ManagementServers in a given project and location. + rpc ListManagementServers(ListManagementServersRequest) + returns (ListManagementServersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/managementServers" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single ManagementServer. + rpc GetManagementServer(GetManagementServerRequest) + returns (ManagementServer) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/managementServers/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new ManagementServer in a given project and location. + rpc CreateManagementServer(CreateManagementServerRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/managementServers" + body: "management_server" + }; + option (google.api.method_signature) = + "parent,management_server,management_server_id"; + option (google.longrunning.operation_info) = { + response_type: "ManagementServer" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single ManagementServer. + rpc DeleteManagementServer(DeleteManagementServerRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/managementServers/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// Network configuration for ManagementServer instance. +message NetworkConfig { + // VPC peering modes supported by Cloud BackupDR. + enum PeeringMode { + // Peering mode not set. + PEERING_MODE_UNSPECIFIED = 0; + + // Connect using Private Service Access to the Management Server. Private + // services access provides an IP address range for multiple Google Cloud + // services, including Cloud BackupDR. + PRIVATE_SERVICE_ACCESS = 1; + } + + // Optional. The resource name of the Google Compute Engine VPC network to + // which the ManagementServer instance is connected. + string network = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The network connect mode of the ManagementServer instance. For + // this version, only PRIVATE_SERVICE_ACCESS is supported. + PeeringMode peering_mode = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// ManagementURI for the Management Server resource. +message ManagementURI { + // Output only. The ManagementServer AGM/RD WebUI URL. + string web_ui = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ManagementServer AGM/RD API URL. + string api = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ManagementURI depending on the Workforce Identity i.e. either 1p or 3p. +message WorkforceIdentityBasedManagementURI { + // Output only. First party Management URI for Google Identities. + string first_party_management_uri = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Third party Management URI for External Identity Providers. + string third_party_management_uri = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// OAuth Client ID depending on the Workforce Identity i.e. either 1p or 3p, +message WorkforceIdentityBasedOAuth2ClientID { + // Output only. First party OAuth Client ID for Google Identities. + string first_party_oauth2_client_id = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Third party OAuth Client ID for External Identity Providers. + string third_party_oauth2_client_id = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ManagementServer describes a single BackupDR ManagementServer instance. +message ManagementServer { + option (google.api.resource) = { + type: "backupdr.googleapis.com/ManagementServer" + pattern: "projects/{project}/locations/{location}/managementServers/{managementserver}" + plural: "managementServers" + singular: "managementServer" + }; + + // Type of backup service resource. + enum InstanceType { + // Instance type is not mentioned. + INSTANCE_TYPE_UNSPECIFIED = 0; + + // Instance for backup and restore management (i.e., AGM). + BACKUP_RESTORE = 1; + } + + // State of Management server instance. + enum InstanceState { + // State not set. + INSTANCE_STATE_UNSPECIFIED = 0; + + // The instance is being created. + CREATING = 1; + + // The instance has been created and is fully usable. + READY = 2; + + // The instance configuration is being updated. Certain kinds of updates + // may cause the instance to become unusable while the update is in + // progress. + UPDATING = 3; + + // The instance is being deleted. + DELETING = 4; + + // The instance is being repaired and may be unstable. + REPAIRING = 5; + + // Maintenance is being performed on this instance. + MAINTENANCE = 6; + + // The instance is experiencing an issue and might be unusable. You can get + // further details from the statusMessage field of Instance resource. + ERROR = 7; + } + + // Output only. Identifier. The resource name. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Optional. The description of the ManagementServer instance (2048 characters + // or less). + string description = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Resource labels to represent user provided metadata. + // Labels currently defined: + // 1. migrate_from_go= + // If set to true, the MS is created in migration ready mode. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time when the instance was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The type of the ManagementServer resource. + InstanceType type = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The hostname or ip address of the exposed AGM endpoints, used + // by clients to connect to AGM/RD graphical user interface and APIs. + ManagementURI management_uri = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The hostnames of the exposed AGM endpoints for both types of + // user i.e. 1p and 3p, used to connect AGM/RM UI. + WorkforceIdentityBasedManagementURI workforce_identity_based_management_uri = + 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ManagementServer state. + InstanceState state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. VPC networks to which the ManagementServer instance is connected. + // For this version, only a single network is supported. + repeated NetworkConfig networks = 8 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Server specified ETag for the ManagementServer resource to + // prevent simultaneous updates from overwiting each other. + string etag = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The OAuth 2.0 client id is required to make API calls to the + // BackupDR instance API of this ManagementServer. This is the value that + // should be provided in the ‘aud’ field of the OIDC ID Token (see openid + // specification + // https://openid.net/specs/openid-connect-core-1_0.html#IDToken). + string oauth2_client_id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The OAuth client IDs for both types of user i.e. 1p and 3p. + WorkforceIdentityBasedOAuth2ClientID + workforce_identity_based_oauth2_client_id = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The hostname or ip address of the exposed AGM endpoints, used + // by BAs to connect to BA proxy. + repeated string ba_proxy_uri = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + google.protobuf.BoolValue satisfies_pzs = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for listing management servers. +message ListManagementServersRequest { + // Required. The project and location for which to retrieve management servers + // information, in the format `projects/{project_id}/locations/{location}`. In + // Cloud BackupDR, locations map to GCP regions, for example **us-central1**. + // To retrieve management servers for all locations, use "-" for the + // `{location}` value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/ManagementServer" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + optional string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + optional string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for listing management servers. +message ListManagementServersResponse { + // The list of ManagementServer instances in the project for the specified + // location. + // + // If the `{location}` value in the request is "-", the response contains a + // list of instances from all locations. In case any location is unreachable, + // the response will only return management servers in reachable locations and + // the 'unreachable' field will be populated with a list of unreachable + // locations. + repeated ManagementServer management_servers = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a management server instance. +message GetManagementServerRequest { + // Required. Name of the management server resource name, in the format + // `projects/{project_id}/locations/{location}/managementServers/{resource_name}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/ManagementServer" + } + ]; +} + +// Request message for creating a management server instance. +message CreateManagementServerRequest { + // Required. The management server project and location in the format + // `projects/{project_id}/locations/{location}`. In Cloud Backup and DR + // locations map to GCP regions, for example **us-central1**. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/ManagementServer" + } + ]; + + // Required. The name of the management server to create. The name must be + // unique for the specified project and location. + string management_server_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A [management server + // resource][google.cloud.backupdr.v1.ManagementServer] + ManagementServer management_server = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for deleting a management server instance. +message DeleteManagementServerRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/ManagementServer" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. AdditionalInfo contains additional Info related to backup plan + // association resource. + map additional_info = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/backupdr/v1/backupdr_grpc_service_config.json b/third_party/googleapis/google/cloud/backupdr/v1/backupdr_grpc_service_config.json new file mode 100644 index 000000000..02d15d3e0 --- /dev/null +++ b/third_party/googleapis/google/cloud/backupdr/v1/backupdr_grpc_service_config.json @@ -0,0 +1,41 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "ListManagementServers" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "GetManagementServer" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "CreateManagementServer" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "DeleteManagementServer" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "UpdateManagementServer" + } + ], + "timeout": "60s" + } + ] +} diff --git a/third_party/googleapis/google/cloud/backupdr/v1/backupdr_v1.yaml b/third_party/googleapis/google/cloud/backupdr/v1/backupdr_v1.yaml new file mode 100644 index 000000000..fb538f6a3 --- /dev/null +++ b/third_party/googleapis/google/cloud/backupdr/v1/backupdr_v1.yaml @@ -0,0 +1,134 @@ +type: google.api.Service +config_version: 3 +name: backupdr.googleapis.com +title: Backup and DR Service API + +apis: +- name: google.cloud.backupdr.v1.BackupDR +- name: google.cloud.location.Locations +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations + +types: +- name: google.cloud.backupdr.v1.OperationMetadata + +documentation: + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + description: |- + Gets the access control policy for a resource. Returns an empty policy + if the resource exists and does not have a policy set. + + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + description: |- + Sets the access control policy on the specified resource. Replaces + any existing policy. + + Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` + errors. + + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + description: |- + 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. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v1/{resource=projects/*/locations/*/managementServers/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/managementServers/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/managementServers/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.backupdr.v1.BackupDR.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.iam.v1.IAMPolicy.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=966572 + documentation_uri: https://cloud.google.com/backup-disaster-recovery/docs/reference/rpc + api_short_name: backupdr + github_label: 'api: backupdr' + doc_tag_prefix: backupdr + organization: CLOUD + library_settings: + - version: google.cloud.backupdr.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/BUILD.bazel b/third_party/googleapis/google/cloud/baremetalsolution/v2/BUILD.bazel index 392470900..e31edc043 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/BUILD.bazel +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/BUILD.bazel @@ -238,7 +238,7 @@ php_gapic_library( name = "baremetalsolution_php_gapic", srcs = [":baremetalsolution_proto_with_info"], grpc_service_config = "baremetalsolution_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "baremetalsolution_v2.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/baremetalsolution.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/baremetalsolution.proto index ebff23dc8..60a32d896 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/baremetalsolution.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/baremetalsolution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/common.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/common.proto index 6a9f917bd..2873cd7ca 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/common.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/instance.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/instance.proto index ed4827b59..c231a57bc 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/instance.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/lun.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/lun.proto index 379e1e678..a9f5640e7 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/lun.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/lun.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/network.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/network.proto index d61660c95..9d6a597c7 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/network.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/network.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/nfs_share.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/nfs_share.proto index 5b99cfdc3..56c5c2896 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/nfs_share.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/nfs_share.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/osimage.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/osimage.proto index 1ce5a4011..e19979ad9 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/osimage.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/osimage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/provisioning.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/provisioning.proto index 3b19e5b63..30809a39f 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/provisioning.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/provisioning.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/ssh_key.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/ssh_key.proto index 535355d17..a817711e1 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/ssh_key.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/ssh_key.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/volume.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/volume.proto index 8b732a38d..cc0dafbbd 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/volume.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/volume.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/baremetalsolution/v2/volume_snapshot.proto b/third_party/googleapis/google/cloud/baremetalsolution/v2/volume_snapshot.proto index 37969e142..1021d52c7 100644 --- a/third_party/googleapis/google/cloud/baremetalsolution/v2/volume_snapshot.proto +++ b/third_party/googleapis/google/cloud/baremetalsolution/v2/volume_snapshot.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/batch/v1/batch.proto b/third_party/googleapis/google/cloud/batch/v1/batch.proto index 443f14ac5..8ab948547 100644 --- a/third_party/googleapis/google/cloud/batch/v1/batch.proto +++ b/third_party/googleapis/google/cloud/batch/v1/batch.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/batch/v1/batch_v1.yaml b/third_party/googleapis/google/cloud/batch/v1/batch_v1.yaml index 0707cdc70..9737dc906 100644 --- a/third_party/googleapis/google/cloud/batch/v1/batch_v1.yaml +++ b/third_party/googleapis/google/cloud/batch/v1/batch_v1.yaml @@ -12,7 +12,7 @@ types: - name: google.cloud.batch.v1.OperationMetadata documentation: - summary: An API to manage the running of batch resources on Google Cloud Platform. + summary: An API to manage the running of Batch resources on Google Cloud Platform. overview: '(include == google/cloud/batch/doc/overview.md ==)' rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/batch/v1/batch_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/batch/v1/batch_v1_grpc_service_config.json index 1bbef0f10..751fb4f4f 100644 --- a/third_party/googleapis/google/cloud/batch/v1/batch_v1_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/batch/v1/batch_v1_grpc_service_config.json @@ -22,9 +22,11 @@ { "service": "google.cloud.batch.v1.BatchService", "method": "CreateJob" }, { "service": "google.cloud.batch.v1.BatchService", "method": "DeleteJob" }, { "service": "google.cloud.batch.v1.BatchService", "method": "CancelJob"}, + { "service": "google.cloud.batch.v1.BatchService", "method": "UpdateJob"}, { "service": "google.cloud.batch.v1.BatchService", "method": "CreateResourceAllowance" }, { "service": "google.cloud.batch.v1.BatchService", "method": "DeleteResourceAllowance" }, - { "service": "google.cloud.batch.v1.BatchService", "method": "UpdateResourceAllowance"} + { "service": "google.cloud.batch.v1.BatchService", "method": "UpdateResourceAllowance"}, + { "service": "google.cloud.batch.v1.BatchService", "method": "CancelTasks"} ], "timeout": "60s" }] diff --git a/third_party/googleapis/google/cloud/batch/v1/job.proto b/third_party/googleapis/google/cloud/batch/v1/job.proto index 7455467cf..194fb0560 100644 --- a/third_party/googleapis/google/cloud/batch/v1/job.proto +++ b/third_party/googleapis/google/cloud/batch/v1/job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -233,11 +233,19 @@ message JobNotification { TASK_STATE_CHANGED = 2; } - // The Pub/Sub topic where notifications like the job state changes - // will be published. The topic must exist in the same project as - // the job and billings will be charged to this project. - // If not specified, no Pub/Sub messages will be sent. - // Topic format: `projects/{project}/topics/{topic}`. + // The Pub/Sub topic where notifications for the job, like state + // changes, will be published. If undefined, no Pub/Sub notifications + // are sent for this job. + // + // Specify the topic using the following format: + // `projects/{project}/topics/{topic}`. + // Notably, if you want to specify a Pub/Sub topic that is in a + // different project than the job, your administrator must grant your + // project's Batch service agent permission to publish to that topic. + // + // For more information about configuring Pub/Sub notifications for + // a job, see + // https://cloud.google.com/batch/docs/enable-notifications. string pubsub_topic = 1; // The attribute requirements of messages to be sent to this Pub/Sub topic. @@ -258,11 +266,11 @@ message AllocationPolicy { // ["zones/us-central1-a", "zones/us-central1-c"] only allow VMs // in zones us-central1-a and us-central1-c. // - // All locations end up in different regions would cause errors. + // Mixing locations from different regions would cause errors. // For example, // ["regions/us-central1", "zones/us-central1-a", "zones/us-central1-b", - // "zones/us-west1-a"] contains 2 regions "us-central1" and - // "us-west1". An error is expected in this case. + // "zones/us-west1-a"] contains locations from two distinct regions: + // us-central1 and us-west1. This combination will trigger an error. repeated string allowed_locations = 1; } @@ -299,7 +307,9 @@ message AllocationPolicy { // Disk type as shown in `gcloud compute disk-types list`. // For example, local SSD uses type "local-ssd". // Persistent disks and boot disks use "pd-balanced", "pd-extreme", "pd-ssd" - // or "pd-standard". + // or "pd-standard". If not specified, "pd-standard" will be used as the + // default type for non-boot disks, "pd-balanced" will be used as the + // default type for boot disks. string type = 1; // Disk size in GB. @@ -419,9 +429,9 @@ message AllocationPolicy { string instance_template = 2; } - // Set this field true if users want Batch to help fetch drivers from a - // third party location and install them for GPUs specified in - // policy.accelerators or instance_template on their behalf. Default is + // Set this field true if you want Batch to help fetch drivers from a third + // party location and install them for GPUs specified in + // `policy.accelerators` or `instance_template` on your behalf. Default is // false. // // For Container-Optimized Image cases, Batch will install the @@ -430,6 +440,10 @@ message AllocationPolicy { // non Container-Optimized Image cases, following // https://github.com/GoogleCloudPlatform/compute-gpu-installation/blob/main/linux/install_gpu_driver.py. bool install_gpu_drivers = 3; + + // Optional. Set this field true if you want Batch to install Ops Agent on + // your behalf. Default is false. + bool install_ops_agent = 4 [(google.api.field_behavior) = OPTIONAL]; } // A network interface. @@ -514,7 +528,17 @@ message AllocationPolicy { // Only instances[0] is supported now. repeated InstancePolicyOrTemplate instances = 8; - // Service account that VMs will run as. + // Defines the service account for Batch-created VMs. If omitted, the [default + // Compute Engine service + // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) + // is used. Must match the service account specified in any used instance + // template configured in the Batch job. + // + // Includes the following fields: + // * email: The service account's email address. If not set, the default + // Compute Engine service account is used. + // * scopes: Additional OAuth scopes to grant the service account, beyond the + // default cloud-platform scope. (list of strings) ServiceAccount service_account = 9; // Labels applied to all VM instances and other resources @@ -624,13 +648,9 @@ message TaskGroup { // Carries information about a Google Cloud service account. message ServiceAccount { - // Email address of the service account. If not specified, the default - // Compute Engine service account for the project will be used. If instance - // template is being used, the service account has to be specified in the - // instance template and it has to match the email field here. + // Email address of the service account. string email = 1; - // List of scopes to be enabled for this service account on the VM, in - // addition to the cloud-platform API scope that will be added by default. + // List of scopes to be enabled for this service account. repeated string scopes = 2; } diff --git a/third_party/googleapis/google/cloud/batch/v1/task.proto b/third_party/googleapis/google/cloud/batch/v1/task.proto index 7037d20da..f38d7c0c2 100644 --- a/third_party/googleapis/google/cloud/batch/v1/task.proto +++ b/third_party/googleapis/google/cloud/batch/v1/task.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -102,8 +102,17 @@ message StatusEvent { // This Task Execution field includes detail information for // task execution procedures, based on StatusEvent types. message TaskExecution { - // When task is completed as the status of FAILED or SUCCEEDED, - // exit code is for one task execution result, default is 0 as success. + // The exit code of a finished task. + // + // If the task succeeded, the exit code will be 0. If the task failed but not + // due to the following reasons, the exit code will be 50000. + // + // Otherwise, it can be from different sources: + // * Batch known failures: + // https://cloud.google.com/batch/docs/troubleshooting#reserved-exit-codes. + // * Batch runnable execution failures; you can rely on Batch logs to further + // diagnose: https://cloud.google.com/batch/docs/analyze-job-using-logs. If + // there are multiple runnables failures, Batch only exposes the first error. int32 exit_code = 1; } @@ -331,8 +340,15 @@ message TaskSpec { // ComputeResource requirements. ComputeResource compute_resource = 3; - // Maximum duration the task should run. - // The task will be killed and marked as FAILED if over this limit. + // Maximum duration the task should run before being automatically retried + // (if enabled) or automatically failed. Format the value of this field + // as a time limit in seconds followed by `s`—for example, `3600s` + // for 1 hour. The field accepts any value between 0 and the maximum listed + // for the `Duration` field type at + // https://protobuf.dev/reference/protobuf/google.protobuf/#duration; however, + // the actual maximum run time for a job will be limited to the maximum run + // time for a job listed at + // https://cloud.google.com/batch/quotas#max-job-duration. google.protobuf.Duration max_run_duration = 4; // Maximum number of retries on failures. diff --git a/third_party/googleapis/google/cloud/batch/v1/volume.proto b/third_party/googleapis/google/cloud/batch/v1/volume.proto index 8447d992c..9bf8126f6 100644 --- a/third_party/googleapis/google/cloud/batch/v1/volume.proto +++ b/third_party/googleapis/google/cloud/batch/v1/volume.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -47,15 +47,19 @@ message Volume { // The mount path for the volume, e.g. /mnt/disks/share. string mount_path = 4; - // For Google Cloud Storage (GCS), mount options are the options supported by - // the gcsfuse tool (https://github.com/GoogleCloudPlatform/gcsfuse). - // For existing persistent disks, mount options provided by the - // mount command (https://man7.org/linux/man-pages/man8/mount.8.html) except - // writing are supported. This is due to restrictions of multi-writer mode - // (https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms). - // For other attached disks and Network File System (NFS), mount options are - // these supported by the mount command - // (https://man7.org/linux/man-pages/man8/mount.8.html). + // Mount options vary based on the type of storage volume: + // + // * For a Cloud Storage bucket, all the mount options provided + // by + // the [`gcsfuse` tool](https://cloud.google.com/storage/docs/gcsfuse-cli) + // are supported. + // * For an existing persistent disk, all mount options provided by the + // [`mount` command](https://man7.org/linux/man-pages/man8/mount.8.html) + // except writing are supported. This is due to restrictions of + // [multi-writer + // mode](https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms). + // * For any other disk or a Network File System (NFS), all the + // mount options provided by the `mount` command are supported. repeated string mount_options = 5; } diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/BUILD.bazel b/third_party/googleapis/google/cloud/batch/v1alpha/BUILD.bazel index f7a81f519..cedfa6950 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/BUILD.bazel +++ b/third_party/googleapis/google/cloud/batch/v1alpha/BUILD.bazel @@ -9,20 +9,25 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "batch_proto", srcs = [ "batch.proto", "job.proto", + "notification.proto", + "resource_allowance.proto", "task.proto", "volume.proto", ], @@ -33,8 +38,10 @@ proto_library( "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:interval_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -51,6 +58,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -115,6 +123,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -130,6 +139,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:interval_go_proto", ], ) @@ -168,6 +178,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -207,6 +218,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -244,6 +256,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -274,6 +287,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -326,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -336,7 +351,6 @@ load( csharp_proto_library( name = "batch_csharp_proto", - extra_opts = [], deps = [":batch_proto"], ) @@ -373,6 +387,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/batch.proto b/third_party/googleapis/google/cloud/batch/v1alpha/batch.proto index 05d0dff30..8568d7caa 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/batch.proto +++ b/third_party/googleapis/google/cloud/batch/v1alpha/batch.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,9 +22,11 @@ import "google/api/field_behavior.proto"; import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/cloud/batch/v1alpha/job.proto"; +import "google/cloud/batch/v1alpha/resource_allowance.proto"; import "google/cloud/batch/v1alpha/task.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; @@ -73,6 +75,15 @@ service BatchService { }; } + // Update a Job. + rpc UpdateJob(UpdateJobRequest) returns (Job) { + option (google.api.http) = { + patch: "/v1alpha/{job.name=projects/*/locations/*/jobs/*}" + body: "job" + }; + option (google.api.method_signature) = "job,update_mask"; + } + // List all Jobs for a project within a region. rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { option (google.api.http) = { @@ -96,6 +107,58 @@ service BatchService { }; option (google.api.method_signature) = "parent"; } + + // Create a Resource Allowance. + rpc CreateResourceAllowance(CreateResourceAllowanceRequest) + returns (ResourceAllowance) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/resourceAllowances" + body: "resource_allowance" + }; + option (google.api.method_signature) = + "parent,resource_allowance,resource_allowance_id"; + } + + // Get a ResourceAllowance specified by its resource name. + rpc GetResourceAllowance(GetResourceAllowanceRequest) + returns (ResourceAllowance) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/resourceAllowances/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Delete a ResourceAllowance. + rpc DeleteResourceAllowance(DeleteResourceAllowanceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/resourceAllowances/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.batch.v1alpha.OperationMetadata" + }; + } + + // List all ResourceAllowances for a project within a region. + rpc ListResourceAllowances(ListResourceAllowancesRequest) + returns (ListResourceAllowancesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/resourceAllowances" + }; + option (google.api.method_signature) = "parent"; + } + + // Update a Resource Allowance. + rpc UpdateResourceAllowance(UpdateResourceAllowanceRequest) + returns (ResourceAllowance) { + option (google.api.http) = { + patch: "/v1alpha/{resource_allowance.name=projects/*/locations/*/resourceAllowances/*}" + body: "resource_allowance" + }; + option (google.api.method_signature) = "resource_allowance,update_mask"; + } } // CreateJob Request. @@ -170,6 +233,51 @@ message DeleteJobRequest { string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; } +// UpdateJob Request. +message UpdateJobRequest { + // Required. The Job to update. + // Only fields specified in `updateMask` are updated. + Job job = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask of fields to update. + // + // The `jobs.patch` method can only be used while a job is in the `QUEUED`, + // `SCHEDULED`, or `RUNNING` state and currently only supports increasing the + // value of the first `taskCount` field in the job's `taskGroups` field. + // Therefore, you must set the value of `updateMask` to `taskGroups`. Any + // other job fields in the update request will be ignored. + // + // For example, to update a job's `taskCount` to `2`, set `updateMask` to + // `taskGroups` and use the following request body: + // ``` + // { + // "taskGroups":[{ + // "taskCount": 2 + // }] + // } + // ``` + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + // ListJob Request. message ListJobsRequest { // Parent path. @@ -247,6 +355,163 @@ message GetTaskRequest { ]; } +// CreateResourceAllowance Request. +message CreateResourceAllowanceRequest { + // Required. The parent resource name where the ResourceAllowance will be + // created. Pattern: "projects/{project}/locations/{location}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "batch.googleapis.com/ResourceAllowance" + } + ]; + + // ID used to uniquely identify the ResourceAllowance within its parent scope. + // This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and '-' are accepted. + // The '-' character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The resource_allowance.name field in the request will be ignored and the + // created resource name of the ResourceAllowance will be + // "{parent}/resourceAllowances/{resource_allowance_id}". + string resource_allowance_id = 2; + + // Required. The ResourceAllowance to create. + ResourceAllowance resource_allowance = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// GetResourceAllowance Request. +message GetResourceAllowanceRequest { + // Required. ResourceAllowance name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/ResourceAllowance" + } + ]; +} + +// DeleteResourceAllowance Request. +message DeleteResourceAllowanceRequest { + // Required. ResourceAllowance name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "batch.googleapis.com/ResourceAllowance" + } + ]; + + // Optional. Reason for this deletion. + string reason = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// ListResourceAllowances Request. +message ListResourceAllowancesRequest { + // Required. Parent path. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "batch.googleapis.com/ResourceAllowance" + } + ]; + + // Optional. Page size. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// ListResourceAllowances Response. +message ListResourceAllowancesResponse { + // ResourceAllowances. + repeated ResourceAllowance resource_allowances = 1; + + // Next page token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// UpdateResourceAllowance Request. +message UpdateResourceAllowanceRequest { + // Required. The ResourceAllowance to update. + // Update description. + // Only fields specified in `update_mask` are updated. + ResourceAllowance resource_allowance = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask of fields to update. + // + // Field mask is used to specify the fields to be overwritten in the + // ResourceAllowance resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + // + // UpdateResourceAllowance request now only supports update on `limit` field. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // Output only. The time the operation was created. diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha.yaml b/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha.yaml index 88e4867ab..99e8c2268 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha.yaml +++ b/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha.yaml @@ -12,7 +12,7 @@ types: - name: google.cloud.batch.v1alpha.OperationMetadata documentation: - summary: An API to manage the running of batch resources on Google Cloud Platform. + summary: An API to manage the running of Batch resources on Google Cloud Platform. overview: '(include == google/cloud/batch/doc/overview.md ==)' rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json b/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json index 1bc47d8dd..5b8b71d9d 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json @@ -22,9 +22,11 @@ { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CreateJob" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "DeleteJob" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CancelJob"}, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "UpdateJob"}, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CreateResourceAllowance" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "DeleteResourceAllowance" }, - { "service": "google.cloud.batch.v1alpha.BatchService", "method": "UpdateResourceAllowance"} + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "UpdateResourceAllowance"}, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CancelTasks"} ], "timeout": "60s" }] diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/job.proto b/third_party/googleapis/google/cloud/batch/v1alpha/job.proto index 671b683ce..7d9ea0396 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/job.proto +++ b/third_party/googleapis/google/cloud/batch/v1alpha/job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -292,11 +292,19 @@ message JobNotification { TASK_STATE_CHANGED = 2; } - // The Pub/Sub topic where notifications like the job state changes - // will be published. The topic must exist in the same project as - // the job and billings will be charged to this project. - // If not specified, no Pub/Sub messages will be sent. - // Topic format: `projects/{project}/topics/{topic}`. + // The Pub/Sub topic where notifications for the job, like state + // changes, will be published. If undefined, no Pub/Sub notifications + // are sent for this job. + // + // Specify the topic using the following format: + // `projects/{project}/topics/{topic}`. + // Notably, if you want to specify a Pub/Sub topic that is in a + // different project than the job, your administrator must grant your + // project's Batch service agent permission to publish to that topic. + // + // For more information about configuring Pub/Sub notifications for + // a job, see + // https://cloud.google.com/batch/docs/enable-notifications. string pubsub_topic = 1; // The attribute requirements of messages to be sent to this Pub/Sub topic. @@ -317,11 +325,11 @@ message AllocationPolicy { // ["zones/us-central1-a", "zones/us-central1-c"] only allow VMs // in zones us-central1-a and us-central1-c. // - // All locations end up in different regions would cause errors. + // Mixing locations from different regions would cause errors. // For example, // ["regions/us-central1", "zones/us-central1-a", "zones/us-central1-b", - // "zones/us-west1-a"] contains 2 regions "us-central1" and - // "us-west1". An error is expected in this case. + // "zones/us-west1-a"] contains locations from two distinct regions: + // us-central1 and us-west1. This combination will trigger an error. repeated string allowed_locations = 1; // A list of denied location names. @@ -363,7 +371,9 @@ message AllocationPolicy { // Disk type as shown in `gcloud compute disk-types list`. // For example, local SSD uses type "local-ssd". // Persistent disks and boot disks use "pd-balanced", "pd-extreme", "pd-ssd" - // or "pd-standard". + // or "pd-standard". If not specified, "pd-standard" will be used as the + // default type for non-boot disks, "pd-balanced" will be used as the + // default type for boot disks. string type = 1; // Disk size in GB. @@ -486,9 +496,9 @@ message AllocationPolicy { string instance_template = 2; } - // Set this field true if users want Batch to help fetch drivers from a - // third party location and install them for GPUs specified in - // policy.accelerators or instance_template on their behalf. Default is + // Set this field true if you want Batch to help fetch drivers from a third + // party location and install them for GPUs specified in + // `policy.accelerators` or `instance_template` on your behalf. Default is // false. // // For Container-Optimized Image cases, Batch will install the @@ -497,6 +507,10 @@ message AllocationPolicy { // non Container-Optimized Image cases, following // https://github.com/GoogleCloudPlatform/compute-gpu-installation/blob/main/linux/install_gpu_driver.py. bool install_gpu_drivers = 3; + + // Optional. Set this field true if you want Batch to install Ops Agent on + // your behalf. Default is false. + bool install_ops_agent = 4 [(google.api.field_behavior) = OPTIONAL]; } // A network interface. @@ -593,7 +607,17 @@ message AllocationPolicy { // Deprecated: please use service_account instead. string service_account_email = 5 [deprecated = true]; - // Service account that VMs will run as. + // Defines the service account for Batch-created VMs. If omitted, the [default + // Compute Engine service + // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) + // is used. Must match the service account specified in any used instance + // template configured in the Batch job. + // + // Includes the following fields: + // * email: The service account's email address. If not set, the default + // Compute Engine service account is used. + // * scopes: Additional OAuth scopes to grant the service account, beyond the + // default cloud-platform scope. (list of strings) ServiceAccount service_account = 9; // Labels applied to all VM instances and other resources @@ -711,17 +735,23 @@ message TaskGroup { // information, see [About OS // Login](https://cloud.google.com/compute/docs/oslogin). bool run_as_non_root = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. ServiceAccount used by tasks within the task group for the access + // to other Cloud resources. This allows tasks to operate with permissions + // distinct from the service account for the VM set at `AllocationPolicy`. Use + // this field when tasks require different access rights than those of the VM. + // + // Specify the service account's `email` field. Ensure `scopes` + // include any necessary permissions for tasks, in addition to the default + // 'cloud-platform' scope. + ServiceAccount service_account = 15 [(google.api.field_behavior) = OPTIONAL]; } // Carries information about a Google Cloud service account. message ServiceAccount { - // Email address of the service account. If not specified, the default - // Compute Engine service account for the project will be used. If instance - // template is being used, the service account has to be specified in the - // instance template and it has to match the email field here. + // Email address of the service account. string email = 1; - // List of scopes to be enabled for this service account on the VM, in - // addition to the cloud-platform API scope that will be added by default. + // List of scopes to be enabled for this service account. repeated string scopes = 2; } diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/notification.proto b/third_party/googleapis/google/cloud/batch/v1alpha/notification.proto new file mode 100644 index 000000000..6eedfc615 --- /dev/null +++ b/third_party/googleapis/google/cloud/batch/v1alpha/notification.proto @@ -0,0 +1,38 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.batch.v1alpha; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; +option go_package = "cloud.google.com/go/batch/apiv1alpha/batchpb;batchpb"; +option java_multiple_files = true; +option java_outer_classname = "NotificationProto"; +option java_package = "com.google.cloud.batch.v1alpha"; +option objc_class_prefix = "GCB"; +option php_namespace = "Google\\Cloud\\Batch\\V1alpha"; +option ruby_package = "Google::Cloud::Batch::V1alpha"; + +// Notification on resource state change. +message Notification { + // Required. The Pub/Sub topic where notifications like the resource allowance + // state changes will be published. The topic must exist in the same project + // as the job and billings will be charged to this project. If not specified, + // no Pub/Sub messages will be sent. Topic format: + // `projects/{project}/topics/{topic}`. + string pubsub_topic = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/resource_allowance.proto b/third_party/googleapis/google/cloud/batch/v1alpha/resource_allowance.proto new file mode 100644 index 000000000..988271f58 --- /dev/null +++ b/third_party/googleapis/google/cloud/batch/v1alpha/resource_allowance.proto @@ -0,0 +1,208 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.batch.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/batch/v1alpha/notification.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.Batch.V1Alpha"; +option go_package = "cloud.google.com/go/batch/apiv1alpha/batchpb;batchpb"; +option java_multiple_files = true; +option java_outer_classname = "ResourceAllowanceProto"; +option java_package = "com.google.cloud.batch.v1alpha"; +option objc_class_prefix = "GCB"; +option php_namespace = "Google\\Cloud\\Batch\\V1alpha"; +option ruby_package = "Google::Cloud::Batch::V1alpha"; + +// A `CalendarPeriod` represents the abstract concept of a time period that +// has a canonical start. All calendar times begin at 12 AM US and Canadian +// Pacific Time (UTC-8). +enum CalendarPeriod { + // Unspecified. + CALENDAR_PERIOD_UNSPECIFIED = 0; + + // The month starts on the first date of the month and resets at the beginning + // of each month. + MONTH = 1; + + // The quarter starts on dates January 1, April 1, July 1, and October 1 of + // each year and resets at the beginning of the next quarter. + QUARTER = 2; + + // The year starts on January 1 and resets at the beginning of the next year. + YEAR = 3; + + // The week period starts and resets every Monday. + WEEK = 4; + + // The day starts at 12:00am. + DAY = 5; +} + +// ResourceAllowance valid state. +enum ResourceAllowanceState { + // Unspecified. + RESOURCE_ALLOWANCE_STATE_UNSPECIFIED = 0; + + // ResourceAllowance is active and in use. + RESOURCE_ALLOWANCE_ACTIVE = 1; + + // ResourceAllowance limit is reached. + RESOURCE_ALLOWANCE_DEPLETED = 2; +} + +// The Resource Allowance description for Cloud Batch. +// Only one Resource Allowance is supported now under a specific location and +// project. +message ResourceAllowance { + option (google.api.resource) = { + type: "batch.googleapis.com/ResourceAllowance" + pattern: "projects/{project}/locations/{location}/resourceAllowances/{resource_allowance}" + plural: "resourceAllowances" + singular: "resourceAllowance" + }; + + // ResourceAllowance detail. + oneof resource_allowance { + // The detail of usage resource allowance. + UsageResourceAllowance usage_resource_allowance = 4; + } + + // Identifier. ResourceAllowance name. + // For example: + // "projects/123456/locations/us-central1/resourceAllowances/resource-allowance-1". + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. A system generated unique ID (in UUID4 format) for the + // ResourceAllowance. + string uid = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Time when the ResourceAllowance was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels are attributes that can be set and used by both the + // user and by Batch. Labels must meet the following constraints: + // + // * 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. + // * Keys must start with a lowercase letter or international character. + // * Each resource is limited to a maximum of 64 labels. + // + // Both keys and values are additionally constrained to be <= 128 bytes. + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Notification configurations. + repeated Notification notifications = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// UsageResourceAllowance describes the detail of usage resource allowance. +message UsageResourceAllowance { + // Required. Spec of a usage ResourceAllowance. + UsageResourceAllowanceSpec spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Status of a usage ResourceAllowance. + UsageResourceAllowanceStatus status = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Spec of a usage ResourceAllowance. +message UsageResourceAllowanceSpec { + // UsageResourceAllowance limitation. + message Limit { + oneof duration { + // Optional. A CalendarPeriod represents the abstract concept of a time + // period that has a canonical start. + CalendarPeriod calendar_period = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Limit value of a UsageResourceAllowance within its one + // duration. + // + // Limit cannot be a negative value. Default is 0. + // For example, you can set `limit` as 10000.0 with duration of the current + // month by setting `calendar_period` field as monthly. That means in your + // current month, 10000.0 is the core hour limitation that your resources + // are allowed to consume. + optional double limit = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Spec type is unique for each usage ResourceAllowance. + // Batch now only supports type as "cpu-core-hours" for CPU usage consumption + // tracking. + string type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Threshold of a UsageResourceAllowance limiting how many resources + // can be consumed for each type. + Limit limit = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Status of a usage ResourceAllowance. +message UsageResourceAllowanceStatus { + // UsageResourceAllowanceStatus detail about usage consumption. + message LimitStatus { + // Output only. The consumption interval. + google.type.Interval consumption_interval = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Limit value of a UsageResourceAllowance within its one + // duration. + optional double limit = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Accumulated consumption during `consumption_interval`. + optional double consumed = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + message PeriodConsumption { + // Output only. The consumption interval. + google.type.Interval consumption_interval = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Accumulated consumption during `consumption_interval`. + optional double consumed = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // ConsumptionReport is the report of ResourceAllowance consumptions in a time + // period. + message ConsumptionReport { + // Output only. ResourceAllowance consumptions in the latest calendar + // period. Key is the calendar period in string format. Batch currently + // supports HOUR, DAY, MONTH and YEAR. + map latest_period_consumptions = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. ResourceAllowance state. + ResourceAllowanceState state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ResourceAllowance consumption status for usage resources. + LimitStatus limit_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The report of ResourceAllowance consumptions in a time period. + ConsumptionReport report = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/task.proto b/third_party/googleapis/google/cloud/batch/v1alpha/task.proto index 5b259463d..aee528551 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/task.proto +++ b/third_party/googleapis/google/cloud/batch/v1alpha/task.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -107,8 +107,17 @@ message StatusEvent { // This Task Execution field includes detail information for // task execution procedures, based on StatusEvent types. message TaskExecution { - // When task is completed as the status of FAILED or SUCCEEDED, - // exit code is for one task execution result, default is 0 as success. + // The exit code of a finished task. + // + // If the task succeeded, the exit code will be 0. If the task failed but not + // due to the following reasons, the exit code will be 50000. + // + // Otherwise, it can be from different sources: + // * Batch known failures: + // https://cloud.google.com/batch/docs/troubleshooting#reserved-exit-codes. + // * Batch runnable execution failures; you can rely on Batch logs to further + // diagnose: https://cloud.google.com/batch/docs/analyze-job-using-logs. If + // there are multiple runnables failures, Batch only exposes the first error. int32 exit_code = 1; // Optional. The tail end of any content written to standard error by the task @@ -350,8 +359,15 @@ message TaskSpec { // ComputeResource requirements. ComputeResource compute_resource = 3; - // Maximum duration the task should run. - // The task will be killed and marked as FAILED if over this limit. + // Maximum duration the task should run before being automatically retried + // (if enabled) or automatically failed. Format the value of this field + // as a time limit in seconds followed by `s`—for example, `3600s` + // for 1 hour. The field accepts any value between 0 and the maximum listed + // for the `Duration` field type at + // https://protobuf.dev/reference/protobuf/google.protobuf/#duration; however, + // the actual maximum run time for a job will be limited to the maximum run + // time for a job listed at + // https://cloud.google.com/batch/quotas#max-job-duration. google.protobuf.Duration max_run_duration = 4; // Maximum number of retries on failures. diff --git a/third_party/googleapis/google/cloud/batch/v1alpha/volume.proto b/third_party/googleapis/google/cloud/batch/v1alpha/volume.proto index 5b3d72a7e..9256ef6fa 100644 --- a/third_party/googleapis/google/cloud/batch/v1alpha/volume.proto +++ b/third_party/googleapis/google/cloud/batch/v1alpha/volume.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,15 +50,19 @@ message Volume { // The mount path for the volume, e.g. /mnt/disks/share. string mount_path = 4; - // For Google Cloud Storage (GCS), mount options are the options supported by - // the gcsfuse tool (https://github.com/GoogleCloudPlatform/gcsfuse). - // For existing persistent disks, mount options provided by the - // mount command (https://man7.org/linux/man-pages/man8/mount.8.html) except - // writing are supported. This is due to restrictions of multi-writer mode - // (https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms). - // For other attached disks and Network File System (NFS), mount options are - // these supported by the mount command - // (https://man7.org/linux/man-pages/man8/mount.8.html). + // Mount options vary based on the type of storage volume: + // + // * For a Cloud Storage bucket, all the mount options provided + // by + // the [`gcsfuse` tool](https://cloud.google.com/storage/docs/gcsfuse-cli) + // are supported. + // * For an existing persistent disk, all mount options provided by the + // [`mount` command](https://man7.org/linux/man-pages/man8/mount.8.html) + // except writing are supported. This is due to restrictions of + // [multi-writer + // mode](https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms). + // * For any other disk or a Network File System (NFS), all the + // mount options provided by the `mount` command are supported. repeated string mount_options = 5; } diff --git a/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel b/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel index 7c0b91456..5d67517a2 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( name = "appconnections_php_gapic", srcs = [":appconnections_proto_with_info"], grpc_service_config = "beyondcorp-appconnections_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "beyondcorp_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto b/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto index c0db64fb5..37c939ad1 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/appconnections/v1/app_connections_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel index 731befd15..716030c56 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/BUILD.bazel @@ -217,7 +217,7 @@ php_gapic_library( name = "appconnectors_php_gapic", srcs = [":appconnectors_proto_with_info"], grpc_service_config = "beyondcorp-appconnectors_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "beyondcorp_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto index 21c910619..a33dc6459 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connector_instance_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto index 152cccb7e..28fdb7445 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/app_connectors_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto index 0156412ad..5b4e97539 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/appconnectors/v1/resource_info.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel b/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel index e18dd981b..e3067ee13 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/BUILD.bazel @@ -212,7 +212,7 @@ php_gapic_library( name = "appgateways_php_gapic", srcs = [":appgateways_proto_with_info"], grpc_service_config = "beyondcorp-appgateways_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "beyondcorp_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto b/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto index 6b122fab7..b392cc09f 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/appgateways/v1/app_gateways_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel b/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel index ac7a86eae..c8b20d90b 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( name = "clientconnectorservices_php_gapic", srcs = [":clientconnectorservices_proto_with_info"], grpc_service_config = "beyondcorp-clientconnectorservices_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "beyondcorp_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto b/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto index ffacd5ac1..2783fb3b4 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/clientconnectorservices/v1/client_connector_services_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel b/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel index 56ee779ee..d6162a1e6 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/BUILD.bazel @@ -212,7 +212,7 @@ php_gapic_library( name = "clientgateways_php_gapic", srcs = [":clientgateways_proto_with_info"], grpc_service_config = "beyondcorp-clientgateways_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "beyondcorp_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto b/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto index 23cf54ceb..7bc1c3163 100644 --- a/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto +++ b/third_party/googleapis/google/cloud/beyondcorp/clientgateways/v1/client_gateways_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/BUILD.bazel b/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/BUILD.bazel index 83e144934..c1cb4cf62 100644 --- a/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "analyticshub_proto", @@ -49,6 +52,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -77,8 +81,8 @@ java_gapic_library( rest_numeric_enums = False, service_yaml = "analyticshub_v1.yaml", test_deps = [ - "//google/iam/v1:iam_java_grpc", ":analyticshub_java_grpc", + "//google/iam/v1:iam_java_grpc", ], transport = "grpc+rest", deps = [ @@ -113,6 +117,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -166,6 +171,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -210,6 +216,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -226,7 +233,7 @@ php_gapic_library( name = "analyticshub_php_gapic", srcs = [":analyticshub_proto_with_info"], grpc_service_config = "analyticshub_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = False, service_yaml = "analyticshub_v1.yaml", transport = "grpc+rest", @@ -247,6 +254,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -277,6 +285,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -330,6 +339,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -340,7 +350,6 @@ load( csharp_proto_library( name = "analyticshub_csharp_proto", - extra_opts = [], deps = [":analyticshub_proto"], ) @@ -357,6 +366,7 @@ csharp_gapic_library( grpc_service_config = "analyticshub_v1_grpc_service_config.json", rest_numeric_enums = False, service_yaml = "analyticshub_v1.yaml", + transport = "grpc+rest", deps = [ ":analyticshub_csharp_grpc", ":analyticshub_csharp_proto", @@ -376,6 +386,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/analyticshub.proto b/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/analyticshub.proto index b947b88f3..31d83a79b 100644 --- a/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/analyticshub.proto +++ b/third_party/googleapis/google/cloud/bigquery/analyticshub/v1/analyticshub.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,6 +39,10 @@ option (google.api.resource_definition) = { type: "bigquery.googleapis.com/Dataset" pattern: "projects/{project}/datasets/{dataset}" }; +option (google.api.resource_definition) = { + type: "bigquery.googleapis.com/Table" + pattern: "projects/{project}/datasets/{dataset}/tables/{table}" +}; // The `AnalyticsHubService` API facilitates data sharing within and across // organizations. It allows data providers to publish listings that reference @@ -256,6 +260,10 @@ service AnalyticsHubService { post: "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy" body: "*" } + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/subscriptions/*}:getIamPolicy" + body: "*" + } }; } @@ -269,6 +277,10 @@ service AnalyticsHubService { post: "/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy" body: "*" } + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/subscriptions/*}:setIamPolicy" + body: "*" + } }; } @@ -286,6 +298,22 @@ service AnalyticsHubService { } } +// Specifies the type of discovery on the discovery page. Note that +// this does not control the visibility of the exchange/listing which is +// defined by IAM permission. +enum DiscoveryType { + // Unspecified. Defaults to DISCOVERY_TYPE_PRIVATE. + DISCOVERY_TYPE_UNSPECIFIED = 0; + + // The Data exchange/listing can be discovered in the 'Private' results + // list. + DISCOVERY_TYPE_PRIVATE = 1; + + // The Data exchange/listing can be discovered in the 'Public' results + // list. + DISCOVERY_TYPE_PUBLIC = 2; +} + // A data exchange is a container that lets you share data. Along with the // descriptive information about the data exchange, it contains listings that // reference shared datasets. @@ -332,6 +360,12 @@ message DataExchange { // Optional. Configurable data sharing environment option for a data exchange. SharingEnvironmentConfig sharing_environment_config = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of discovery on the discovery page for all the listings + // under this exchange. Updating this field also updates (overwrites) the + // discovery_type field for all the listings under this exchange. + optional DiscoveryType discovery_type = 9 + [(google.api.field_behavior) = OPTIONAL]; } // Sharing environment is a behavior model for sharing data within a @@ -341,7 +375,24 @@ message SharingEnvironmentConfig { message DefaultExchangeConfig {} // Data Clean Room (DCR), used for privacy-safe and secured data sharing. - message DcrExchangeConfig {} + message DcrExchangeConfig { + // Output only. If True, this DCR restricts the contributors to sharing + // only a single resource in a Listing. And no two resources should have the + // same IDs. So if a contributor adds a view with a conflicting name, the + // CreateListing API will reject the request. if False, the data contributor + // can publish an entire dataset (as before). This is not configurable, and + // by default, all new DCRs will have the restriction set to True. + optional bool single_selected_resource_sharing_restriction = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If True, when subscribing to this DCR, it will create only + // one linked dataset containing all resources shared within the + // cleanroom. If False, when subscribing to this DCR, it will + // create 1 linked dataset per listing. This is not configurable, and by + // default, all new DCRs will have the restriction set to True. + optional bool single_linked_dataset_per_cleanroom = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } oneof environment { // Default Analytics Hub data exchange, used for secured data sharing. @@ -428,11 +479,56 @@ message Listing { // the subscriber's project. A Linked dataset is an opaque, read-only BigQuery // dataset that serves as a _symbolic link_ to a shared dataset. message BigQueryDatasetSource { + // Resource in this dataset that are selectively shared. + message SelectedResource { + oneof resource { + // Optional. Format: + // For table: + // `projects/{projectId}/datasets/{datasetId}/tables/{tableId}` + // Example:"projects/test_project/datasets/test_dataset/tables/test_table" + string table = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "bigquery.googleapis.com/Table" + } + ]; + } + } + + // Restricted export policy used to configure restricted export on linked + // dataset. + message RestrictedExportPolicy { + // Optional. If true, enable restricted export. + google.protobuf.BoolValue enabled = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, restrict direct table access (read + // api/tabledata.list) on linked table. + google.protobuf.BoolValue restrict_direct_table_access = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, restrict export of query result derived from + // restricted linked dataset table. + google.protobuf.BoolValue restrict_query_result = 3 + [(google.api.field_behavior) = OPTIONAL]; + } + // Resource name of the dataset source for this listing. // e.g. `projects/myproject/datasets/123` string dataset = 1 [(google.api.resource_reference) = { type: "bigquery.googleapis.com/Dataset" }]; + + // Optional. Resources in this dataset that are selectively shared. + // If this field is empty, then the entire dataset (all resources) are + // shared. This field is only valid for data clean room exchanges. + repeated SelectedResource selected_resources = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, restricted export policy will be propagated and + // enforced on the linked dataset. + RestrictedExportPolicy restricted_export_policy = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Restricted export config, used to configure restricted export on linked @@ -563,6 +659,10 @@ message Listing { // enforced on the linked dataset. RestrictedExportConfig restricted_export_config = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of discovery of the listing on the discovery page. + optional DiscoveryType discovery_type = 14 + [(google.api.field_behavior) = OPTIONAL]; } // A subscription represents a subscribers' access to a particular set of @@ -850,8 +950,9 @@ message DeleteListingRequest { message SubscribeListingRequest { // Resulting destination of the listing that you subscribed to. oneof destination { - // BigQuery destination dataset to create for the subscriber. - DestinationDataset destination_dataset = 3; + // Input only. BigQuery destination dataset to create for the subscriber. + DestinationDataset destination_dataset = 3 + [(google.api.field_behavior) = INPUT_ONLY]; } // Required. Resource name of the listing that you want to subscribe to. @@ -945,7 +1046,21 @@ message ListSubscriptionsRequest { } ]; - // The filter expression may be used to filter by Data Exchange or Listing. + // An expression for filtering the results of the request. Eligible + // fields for filtering are: + // + // * `listing` + // * `data_exchange` + // + // Alternatively, a literal wrapped in double quotes may be provided. + // This will be checked for an exact match against both fields above. + // + // In all cases, the full Data Exchange or Listing resource name must + // be provided. Some example of using filters: + // + // * data_exchange="projects/myproject/locations/us/dataExchanges/123" + // * listing="projects/123/locations/us/dataExchanges/456/listings/789" + // * "projects/myproject/locations/us/dataExchanges/123" string filter = 2; // The maximum number of results to return in a single response page. diff --git a/third_party/googleapis/google/cloud/bigquery/biglake/v1/metastore.proto b/third_party/googleapis/google/cloud/bigquery/biglake/v1/metastore.proto index e20a59737..620b71a21 100644 --- a/third_party/googleapis/google/cloud/bigquery/biglake/v1/metastore.proto +++ b/third_party/googleapis/google/cloud/bigquery/biglake/v1/metastore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/biglake/v1alpha1/metastore.proto b/third_party/googleapis/google/cloud/bigquery/biglake/v1alpha1/metastore.proto index 85952d7fc..66a1da627 100644 --- a/third_party/googleapis/google/cloud/bigquery/biglake/v1alpha1/metastore.proto +++ b/third_party/googleapis/google/cloud/bigquery/biglake/v1alpha1/metastore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/connection/v1/connection.proto b/third_party/googleapis/google/cloud/bigquery/connection/v1/connection.proto index d09418ad7..7492e72bf 100644 --- a/third_party/googleapis/google/cloud/bigquery/connection/v1/connection.proto +++ b/third_party/googleapis/google/cloud/bigquery/connection/v1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/connection/v1beta1/connection.proto b/third_party/googleapis/google/cloud/bigquery/connection/v1beta1/connection.proto index 0e8da4ff8..a1f542d32 100644 --- a/third_party/googleapis/google/cloud/bigquery/connection/v1beta1/connection.proto +++ b/third_party/googleapis/google/cloud/bigquery/connection/v1beta1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto b/third_party/googleapis/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto index 73bc87d1c..521fab78f 100644 --- a/third_party/googleapis/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto +++ b/third_party/googleapis/google/cloud/bigquery/dataexchange/v1beta1/dataexchange.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/BUILD.bazel b/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/BUILD.bazel index 6c11ff48d..785c2f45f 100644 --- a/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/BUILD.bazel @@ -219,7 +219,7 @@ php_gapic_library( name = "datapolicies_php_gapic", srcs = [":datapolicies_proto_with_info"], grpc_service_config = "datapolicies_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "bigquerydatapolicy_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/datapolicy.proto b/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/datapolicy.proto index 0557bc810..3391405ef 100644 --- a/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/datapolicy.proto +++ b/third_party/googleapis/google/cloud/bigquery/datapolicies/v1/datapolicy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto b/third_party/googleapis/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto index b149fe475..6f8b63a7c 100644 --- a/third_party/googleapis/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto +++ b/third_party/googleapis/google/cloud/bigquery/datapolicies/v1beta1/datapolicy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/datatransfer.proto b/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/datatransfer.proto index b5874c991..217f7a711 100644 --- a/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/datatransfer.proto +++ b/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/datatransfer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -517,7 +517,7 @@ message CreateTransferConfigRequest { // and new credentials are needed, as indicated by `CheckValidCreds`. In order // to obtain authorization_code, make a request to the following URL: //
-  // https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes
+  // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes
   // 
// * The client_id is the OAuth client_id of the a data source as // returned by ListDataSources method. @@ -533,7 +533,7 @@ message CreateTransferConfigRequest { // are needed, as indicated by `CheckValidCreds`. In order to obtain version // info, make a request to the following URL: //
-  // https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes
+  // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes
   // 
// * The client_id is the OAuth client_id of the a data source as // returned by ListDataSources method. @@ -567,7 +567,7 @@ message UpdateTransferConfigRequest { // and new credentials are needed, as indicated by `CheckValidCreds`. In order // to obtain authorization_code, make a request to the following URL: //
-  // https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes
+  // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes
   // 
// * The client_id is the OAuth client_id of the a data source as // returned by ListDataSources method. @@ -587,7 +587,7 @@ message UpdateTransferConfigRequest { // are needed, as indicated by `CheckValidCreds`. In order to obtain version // info, make a request to the following URL: //
-  // https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes
+  // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes
   // 
// * The client_id is the OAuth client_id of the a data source as // returned by ListDataSources method. @@ -867,12 +867,15 @@ message StartManualTransferRunsRequest { google.protobuf.Timestamp end_time = 2; } - // Transfer configuration name in the form: + // Required. Transfer configuration name in the form: // `projects/{project_id}/transferConfigs/{config_id}` or // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`. - string parent = 1 [(google.api.resource_reference) = { - type: "bigquerydatatransfer.googleapis.com/TransferConfig" - }]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigquerydatatransfer.googleapis.com/TransferConfig" + } + ]; // The requested time specification - this can be a time range or a specific // run_time. @@ -900,8 +903,9 @@ message StartManualTransferRunsResponse { // A request to enroll a set of data sources so they are visible in the // BigQuery UI's `Transfer` tab. message EnrollDataSourcesRequest { - // The name of the project resource in the form: `projects/{project_id}` - string name = 1; + // Required. The name of the project resource in the form: + // `projects/{project_id}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; // Data sources that are enrolled. It is required to provide at least one // data source id. @@ -911,8 +915,9 @@ message EnrollDataSourcesRequest { // A request to unenroll a set of data sources so they are no longer visible in // the BigQuery UI's `Transfer` tab. message UnenrollDataSourcesRequest { - // The name of the project resource in the form: `projects/{project_id}` - string name = 1; + // Required. The name of the project resource in the form: + // `projects/{project_id}` + string name = 1 [(google.api.field_behavior) = REQUIRED]; // Data sources that are unenrolled. It is required to provide at least one // data source id. diff --git a/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/transfer.proto b/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/transfer.proto index 13904846e..2c31515d7 100644 --- a/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/transfer.proto +++ b/third_party/googleapis/google/cloud/bigquery/datatransfer/v1/transfer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -117,14 +117,14 @@ message TransferConfig { pattern: "projects/{project}/locations/{location}/transferConfigs/{transfer_config}" }; - // The resource name of the transfer config. + // Identifier. The resource name of the transfer config. // Transfer config names have the form either // `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or // `projects/{project_id}/transferConfigs/{config_id}`, // where `config_id` is usually a UUID, even though it is not // guaranteed or required. The name is ignored when creating a transfer // config. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The desination of the transfer config. oneof destination { @@ -231,11 +231,11 @@ message TransferRun { pattern: "projects/{project}/locations/{location}/transferConfigs/{transfer_config}/runs/{run}" }; - // The resource name of the transfer run. + // Identifier. The resource name of the transfer run. // Transfer run names have the form // `projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`. // The name is ignored when creating a transfer run. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Minimum time after which a transfer run can be started. google.protobuf.Timestamp schedule_time = 3; diff --git a/third_party/googleapis/google/cloud/bigquery/logging/v1/audit_data.proto b/third_party/googleapis/google/cloud/bigquery/logging/v1/audit_data.proto index 1f5bc5e43..f5cad8377 100644 --- a/third_party/googleapis/google/cloud/bigquery/logging/v1/audit_data.proto +++ b/third_party/googleapis/google/cloud/bigquery/logging/v1/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/BUILD.bazel b/third_party/googleapis/google/cloud/bigquery/migration/v2/BUILD.bazel index aaf7e701b..8a7e0a36e 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2/BUILD.bazel +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "migration_proto", @@ -26,6 +29,9 @@ proto_library( "migration_metrics.proto", "migration_service.proto", "translation_config.proto", + "translation_details.proto", + "translation_suggestion.proto", + "translation_usability.proto", ], deps = [ "//google/api:annotations_proto", @@ -52,6 +58,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -114,6 +121,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -140,7 +148,7 @@ go_gapic_library( grpc_service_config = "bigquerymigration_grpc_service_config.json", importpath = "cloud.google.com/go/bigquery/migration/apiv2;migration", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = False, service_yaml = "bigquerymigration_v2.yaml", transport = "grpc", @@ -165,6 +173,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -183,6 +192,8 @@ py_gapic_library( rest_numeric_enums = False, service_yaml = "bigquerymigration_v2.yaml", transport = "grpc", + deps = [ + ], ) py_test( @@ -206,6 +217,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -222,11 +234,13 @@ php_gapic_library( name = "migration_php_gapic", srcs = [":migration_proto_with_info"], grpc_service_config = "bigquerymigration_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = False, service_yaml = "bigquerymigration_v2.yaml", transport = "grpc+rest", - deps = [":migration_php_proto"], + deps = [ + ":migration_php_proto", + ], ) # Open Source Packages @@ -241,6 +255,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -271,6 +286,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -294,16 +310,17 @@ ruby_cloud_gapic_library( name = "migration_ruby_gapic", srcs = [":migration_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-bigquery-migration-v2", - "ruby-cloud-product-url=https://cloud.google.com/bigquery/docs/reference/migration", "ruby-cloud-api-id=bigquerymigration.googleapis.com", "ruby-cloud-api-shortname=bigquerymigration", + "ruby-cloud-gem-name=google-cloud-bigquery-migration-v2", + "ruby-cloud-product-url=https://cloud.google.com/bigquery/docs/reference/migration", ], grpc_service_config = "bigquerymigration_grpc_service_config.json", rest_numeric_enums = False, ruby_cloud_description = "The BigQuery Migration Service is a comprehensive solution for migrating your data warehouse to BigQuery.", ruby_cloud_title = "BigQuery Migration V2", service_yaml = "bigquerymigration_v2.yaml", + transport = "grpc+rest", deps = [ ":migration_ruby_grpc", ":migration_ruby_proto", @@ -323,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -333,6 +351,7 @@ load( csharp_proto_library( name = "migration_csharp_proto", + extra_opts = [], deps = [":migration_proto"], ) @@ -349,6 +368,7 @@ csharp_gapic_library( grpc_service_config = "bigquerymigration_grpc_service_config.json", rest_numeric_enums = False, service_yaml = "bigquerymigration_v2.yaml", + transport = "grpc+rest", deps = [ ":migration_csharp_grpc", ":migration_csharp_proto", @@ -368,6 +388,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_entities.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_entities.proto index 39b6f4e3d..34422f0dc 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_entities.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_entities.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,8 @@ import "google/api/resource.proto"; import "google/cloud/bigquery/migration/v2/migration_error_details.proto"; import "google/cloud/bigquery/migration/v2/migration_metrics.proto"; import "google/cloud/bigquery/migration/v2/translation_config.proto"; +import "google/cloud/bigquery/migration/v2/translation_details.proto"; +import "google/cloud/bigquery/migration/v2/translation_usability.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/error_details.proto"; @@ -61,13 +63,14 @@ message MigrationWorkflow { COMPLETED = 4; } - // Output only. Immutable. The unique identifier for the migration workflow. - // The ID is server-generated. + // Output only. Immutable. Identifier. The unique identifier for the migration + // workflow. The ID is server-generated. // // Example: `projects/123/locations/us/workflows/345` string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = IDENTIFIER ]; // The display name of the workflow. This can be set to give a workflow @@ -119,8 +122,11 @@ message MigrationTask { // The details of the task. oneof task_details { - // Task configuration for Batch SQL Translation. + // Task configuration for CW Batch/Offline SQL Translation. TranslationConfigDetails translation_config_details = 14; + + // Task details for unified SQL Translation. + TranslationDetails translation_details = 16; } // Output only. Immutable. The unique identifier for the migration task. The @@ -136,7 +142,7 @@ message MigrationTask { // Translation_Snowflake2BQ, Translation_Netezza2BQ, // Translation_AzureSynapse2BQ, Translation_Vertica2BQ, // Translation_SQLServer2BQ, Translation_Presto2BQ, Translation_MySQL2BQ, - // Translation_Postgresql2BQ. + // Translation_Postgresql2BQ, Translation_SQLite2BQ, Translation_Greenplum2BQ. string type = 2; // Output only. The current state of the task. @@ -152,6 +158,31 @@ message MigrationTask { // Time when the task was last updated. google.protobuf.Timestamp last_update_time = 7; + + // Output only. Provides details to errors and issues encountered while + // processing the task. Presence of error details does not mean that the task + // failed. + repeated ResourceErrorDetail resource_error_details = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The number or resources with errors. Note: This is not the total + // number of errors as each resource can have more than one error. + // This is used to indicate truncation by having a `resource_error_count` + // that is higher than the size of `resource_error_details`. + int32 resource_error_count = 18; + + // The metrics for the task. + repeated TimeSeries metrics = 19; + + // Output only. The result of the task. + MigrationTaskResult task_result = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Count of all the processing errors in this task and its subtasks. + int32 total_processing_error_count = 21; + + // Count of all the resource errors in this task and its subtasks. + int32 total_resource_error_count = 22; } // A subtask for a migration which carries details about the configuration of @@ -236,3 +267,21 @@ message MigrationSubtask { // The metrics for the subtask. repeated TimeSeries metrics = 11; } + +// The migration task result. +message MigrationTaskResult { + // Details specific to the task type. + oneof details { + // Details specific to translation task types. + TranslationTaskResult translation_task_result = 2; + } +} + +// Translation specific result details from the migration task. +message TranslationTaskResult { + // The list of the translated literals. + repeated Literal translated_literals = 1; + + // The records from the aggregate CSV report for a migration workflow. + repeated GcsReportLogMessage report_log_messages = 2; +} diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_error_details.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_error_details.proto index 244f52f0e..678c1c9bf 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_error_details.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_error_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_metrics.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_metrics.proto index 35bd4546f..a5aee7891 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_metrics.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_service.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_service.proto index 3053a519a..5151e0a5f 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_service.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_config.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_config.proto index 83ef4a61f..a463a79f1 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_config.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.cloud.bigquery.migration.v2; +import "google/api/field_behavior.proto"; + option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; option go_package = "cloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb"; option java_multiple_files = true; @@ -56,6 +58,12 @@ message TranslationConfigDetails { // The indicator to show translation request initiator. string request_source = 8; + + // The types of output to generate, e.g. sql, metadata etc. If not specified, + // a default set of targets will be generated. Some additional target types + // may be slower to generate. See the documentation for the set of available + // target types. + repeated string target_types = 9; } // The possible dialect options for translation. @@ -103,6 +111,15 @@ message Dialect { // The MySQL dialect MySQLDialect mysql_dialect = 14; + + // DB2 dialect + DB2Dialect db2_dialect = 15; + + // SQLite dialect + SQLiteDialect sqlite_dialect = 16; + + // Greenplum dialect + GreenplumDialect greenplum_dialect = 17; } } @@ -163,6 +180,15 @@ message PrestoDialect {} // The dialect definition for MySQL. message MySQLDialect {} +// The dialect definition for DB2. +message DB2Dialect {} + +// The dialect definition for SQLite. +message SQLiteDialect {} + +// The dialect definition for Greenplum. +message GreenplumDialect {} + // Represents a map of name mappings using a list of key:value proto messages of // existing name to desired output name. message ObjectNameMappingList { @@ -257,4 +283,12 @@ message SourceEnv { // The schema search path. When SQL objects are missing schema name, // translation engine will search through this list to find the value. repeated string schema_search_path = 2; + + // Optional. Expects a valid BigQuery dataset ID that exists, e.g., + // project-123.metadata_store_123. If specified, translation will search and + // read the required schema information from a metadata store in this dataset. + // If metadata store doesn't exist, translation will parse the metadata file + // and upload the schema info to a temp table in the dataset to speed up + // future translation jobs. + string metadata_store_dataset = 3 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_details.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_details.proto new file mode 100644 index 000000000..3325adc71 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_details.proto @@ -0,0 +1,116 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.migration.v2; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "cloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb"; +option java_multiple_files = true; +option java_outer_classname = "TranslationDetailsProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// The translation details to capture the necessary settings for a translation +// job. +message TranslationDetails { + // The mapping from source to target SQL. + repeated SourceTargetMapping source_target_mapping = 1; + + // The base URI for all writes to persistent storage. + string target_base_uri = 2; + + // The default source environment values for the translation. + SourceEnvironment source_environment = 3; + + // The list of literal targets that will be directly returned to the response. + // Each entry consists of the constructed path, EXCLUDING the base path. Not + // providing a target_base_uri will prevent writing to persistent storage. + repeated string target_return_literals = 4; + + // The types of output to generate, e.g. sql, metadata, + // lineage_from_sql_scripts, etc. If not specified, a default set of + // targets will be generated. Some additional target types may be slower to + // generate. See the documentation for the set of available target types. + repeated string target_types = 5; +} + +// Represents one mapping from a source SQL to a target SQL. +message SourceTargetMapping { + // The source SQL or the path to it. + SourceSpec source_spec = 1; + + // The target SQL or the path for it. + TargetSpec target_spec = 2; +} + +// Represents one path to the location that holds source data. +message SourceSpec { + // The specific source SQL. + oneof source { + // The base URI for all files to be read in as sources for translation. + string base_uri = 1; + + // Source literal. + Literal literal = 2; + } + + // Optional. The optional field to specify the encoding of the sql bytes. + string encoding = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents one path to the location that holds target data. +message TargetSpec { + // The relative path for the target data. Given source file + // `base_uri/input/sql`, the output would be + // `target_base_uri/sql/relative_path/input.sql`. + string relative_path = 1; +} + +// Literal data. +message Literal { + // The literal SQL contents. + oneof literal_data { + // Literal string data. + string literal_string = 2; + + // Literal byte data. + bytes literal_bytes = 3; + } + + // Required. The identifier of the literal entry. + string relative_path = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the default source environment values for the translation. +message SourceEnvironment { + // The default database name to fully qualify SQL objects when their database + // name is missing. + string default_database = 1; + + // The schema search path. When SQL objects are missing schema name, + // translation engine will search through this list to find the value. + repeated string schema_search_path = 2; + + // Optional. Expects a validQ BigQuery dataset ID that exists, e.g., + // project-123.metadata_store_123. If specified, translation will search and + // read the required schema information from a metadata store in this dataset. + // If metadata store doesn't exist, translation will parse the metadata file + // and upload the schema info to a temp table in the dataset to speed up + // future translation jobs. + string metadata_store_dataset = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_suggestion.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_suggestion.proto new file mode 100644 index 000000000..7b78509e7 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_suggestion.proto @@ -0,0 +1,63 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.migration.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "cloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb"; +option java_multiple_files = true; +option java_outer_classname = "TranslationSuggestionProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// Details about a record. +message TranslationReportRecord { + // The severity type of the record. + enum Severity { + // SeverityType not specified. + SEVERITY_UNSPECIFIED = 0; + + // INFO type. + INFO = 1; + + // WARNING type. The translated query may still provide useful information + // if all the report records are WARNING. + WARNING = 2; + + // ERROR type. Translation failed. + ERROR = 3; + } + + // Severity of the translation record. + Severity severity = 1; + + // Specifies the row from the source text where the error occurred (0 based). + // Example: 2 + int32 script_line = 2; + + // Specifies the column from the source texts where the error occurred. (0 + // based) example: 6 + int32 script_column = 3; + + // Category of the error/warning. Example: SyntaxError + string category = 4; + + // Detailed message of the record. + string message = 5; +} diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_usability.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_usability.proto new file mode 100644 index 000000000..6f3e0ea2a --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2/translation_usability.proto @@ -0,0 +1,65 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.migration.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2"; +option go_package = "cloud.google.com/go/bigquery/migration/apiv2/migrationpb;migrationpb"; +option java_multiple_files = true; +option java_outer_classname = "TranslationUsabilityProto"; +option java_package = "com.google.cloud.bigquery.migration.v2"; +option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2"; + +// A record in the aggregate CSV report for a migration workflow +message GcsReportLogMessage { + // Severity of the translation record. + string severity = 1; + + // Category of the error/warning. Example: SyntaxError + string category = 2; + + // The file path in which the error occurred + string file_path = 3; + + // The file name in which the error occurred + string filename = 4; + + // Specifies the row from the source text where the error occurred (0 based, + // -1 for messages without line location). Example: 2 + int32 source_script_line = 5; + + // Specifies the column from the source texts where the error occurred. (0 + // based, -1 for messages without column location) example: 6 + int32 source_script_column = 6; + + // Detailed message of the record. + string message = 7; + + // The script context (obfuscated) in which the error occurred + string script_context = 8; + + // Category of the error/warning. Example: SyntaxError + string action = 9; + + // Effect of the error/warning. Example: COMPATIBILITY + string effect = 10; + + // Name of the affected object in the log message. + string object_name = 11; +} diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/assessment_task.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/assessment_task.proto index 67680785f..7e19b1c2f 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/assessment_task.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/assessment_task.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_entities.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_entities.proto index 728036e60..1f22901dd 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_entities.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_entities.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_error_details.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_error_details.proto index 88d561874..286b202d6 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_error_details.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_error_details.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_metrics.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_metrics.proto index da7e9a803..6e76a85f2 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_metrics.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_service.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_service.proto index 7651481bd..5a6ec8080 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_service.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_service.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_service.proto index 59924506c..bc82e1f47 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_service.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_task.proto b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_task.proto index 86fb900d2..7aa90565f 100644 --- a/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_task.proto +++ b/third_party/googleapis/google/cloud/bigquery/migration/v2alpha/translation_task.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/reservation/v1/reservation.proto b/third_party/googleapis/google/cloud/bigquery/reservation/v1/reservation.proto index a3d262c40..cc72af264 100644 --- a/third_party/googleapis/google/cloud/bigquery/reservation/v1/reservation.proto +++ b/third_party/googleapis/google/cloud/bigquery/reservation/v1/reservation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1/arrow.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1/arrow.proto index 05036d21d..530d4179d 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1/arrow.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1/arrow.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1/avro.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1/avro.proto index 588406aba..b104a9063 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1/avro.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1/avro.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1/protobuf.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1/protobuf.proto index e12f4d8db..99a9c7749 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1/protobuf.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1/protobuf.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1/storage.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1/storage.proto index 97eb35c21..d83dacc46 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1/storage.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1/stream.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1/stream.proto index c75c637cf..511eb4047 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1/stream.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1/stream.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1/table.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1/table.proto index 7f9dde5f6..5438fd3f6 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1/table.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1/table.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/arrow.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/arrow.proto index 4894e2fea..b7decf20c 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/arrow.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/arrow.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/avro.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/avro.proto index ad388d42d..96e268f2f 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/avro.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/avro.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/read_options.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/read_options.proto index 2a4a90761..3f863e71c 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/read_options.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/read_options.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/storage.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/storage.proto index 3f9f218f1..67422bee6 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/storage.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/table_reference.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/table_reference.proto index 3fe3dfe27..1c194a806 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/table_reference.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta1/table_reference.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/arrow.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/arrow.proto index 8da53dc7b..a6b69944c 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/arrow.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/arrow.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/avro.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/avro.proto index 702b34a8e..fc0316e0a 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/avro.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/avro.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/protobuf.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/protobuf.proto index 359b8b7d1..ac004cbf6 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/protobuf.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/protobuf.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/storage.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/storage.proto index dc982d3ad..7d850e974 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/storage.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -112,10 +112,12 @@ service BigQueryRead { // // The Write API can be used to write data to BigQuery. // +// // The [google.cloud.bigquery.storage.v1 // API](/bigquery/docs/reference/storage/rpc/google.cloud.bigquery.storage.v1) // should be used instead of the v1beta2 API for BigQueryWrite operations. service BigQueryWrite { + option deprecated = true; option (google.api.default_host) = "bigquerystorage.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/bigquery," @@ -129,6 +131,7 @@ service BigQueryWrite { // number of clients. Data written to this stream is considered committed as // soon as an acknowledgement is received. rpc CreateWriteStream(CreateWriteStreamRequest) returns (WriteStream) { + option deprecated = true; option (google.api.http) = { post: "/v1beta2/{parent=projects/*/datasets/*/tables/*}" body: "write_stream" @@ -156,6 +159,7 @@ service BigQueryWrite { // If the stream is of `PENDING` type, data will only be available for read // operations after the stream is committed. rpc AppendRows(stream AppendRowsRequest) returns (stream AppendRowsResponse) { + option deprecated = true; option (google.api.http) = { post: "/v1beta2/{write_stream=projects/*/datasets/*/tables/*/streams/*}" body: "*" @@ -165,6 +169,7 @@ service BigQueryWrite { // Gets a write stream. rpc GetWriteStream(GetWriteStreamRequest) returns (WriteStream) { + option deprecated = true; option (google.api.http) = { post: "/v1beta2/{name=projects/*/datasets/*/tables/*/streams/*}" body: "*" @@ -176,6 +181,7 @@ service BigQueryWrite { // stream. Finalize is not supported on the '_default' stream. rpc FinalizeWriteStream(FinalizeWriteStreamRequest) returns (FinalizeWriteStreamResponse) { + option deprecated = true; option (google.api.http) = { post: "/v1beta2/{name=projects/*/datasets/*/tables/*/streams/*}" body: "*" @@ -190,6 +196,7 @@ service BigQueryWrite { // for read operations. rpc BatchCommitWriteStreams(BatchCommitWriteStreamsRequest) returns (BatchCommitWriteStreamsResponse) { + option deprecated = true; option (google.api.http) = { get: "/v1beta2/{parent=projects/*/datasets/*/tables/*}" }; @@ -203,6 +210,7 @@ service BigQueryWrite { // stream, to the offset specified in the request. // Flush is not supported on the _default stream, since it is not BUFFERED. rpc FlushRows(FlushRowsRequest) returns (FlushRowsResponse) { + option deprecated = true; option (google.api.http) = { post: "/v1beta2/{write_stream=projects/*/datasets/*/tables/*/streams/*}" body: "*" @@ -309,7 +317,7 @@ message ReadRowsResponse { // The schema for the read. If read_options.selected_fields is set, the // schema may be different from the table schema as it will only contain - // the selected fields. This schema is equivelant to the one returned by + // the selected fields. This schema is equivalent to the one returned by // CreateSession. This field is only populated in the first ReadRowsResponse // RPC. oneof schema { diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/stream.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/stream.proto index e8191af84..e90f8ad46 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/stream.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/stream.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/table.proto b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/table.proto index 4ef3360d5..46047217c 100644 --- a/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/table.proto +++ b/third_party/googleapis/google/cloud/bigquery/storage/v1beta2/table.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/bigquery/v2/BUILD.bazel b/third_party/googleapis/google/cloud/bigquery/v2/BUILD.bazel new file mode 100644 index 000000000..bed3c0cb6 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/BUILD.bazel @@ -0,0 +1,242 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "bigquery_proto", + srcs = [ + "biglake_config.proto", + "clustering.proto", + "data_format_options.proto", + "dataset.proto", + "dataset_reference.proto", + "decimal_target_types.proto", + "encryption_config.proto", + "error.proto", + "external_catalog_dataset_options.proto", + "external_catalog_table_options.proto", + "external_data_config.proto", + "external_dataset_reference.proto", + "file_set_specification_type.proto", + "hive_partitioning.proto", + "job.proto", + "job_config.proto", + "job_creation_reason.proto", + "job_reference.proto", + "job_stats.proto", + "job_status.proto", + "json_extension.proto", + "location_metadata.proto", + "map_target_type.proto", + "model.proto", + "model_reference.proto", + "partitioning_definition.proto", + "privacy_policy.proto", + "project.proto", + "query_parameter.proto", + "range_partitioning.proto", + "restriction_config.proto", + "routine.proto", + "routine_reference.proto", + "row_access_policy.proto", + "row_access_policy_reference.proto", + "session_info.proto", + "standard_sql.proto", + "system_variable.proto", + "table.proto", + "table_constraints.proto", + "table_reference.proto", + "table_schema.proto", + "time_partitioning.proto", + "udf_resource.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "bigquery_proto_with_info", + deps = [ + ":bigquery_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_proto_library", +) + +java_proto_library( + name = "bigquery_java_proto", + deps = [":bigquery_proto"], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "bigquery_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/bigquery/apiv2/bigquerypb", + protos = [":bigquery_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "bigquery_go_gapic", + srcs = [":bigquery_proto_with_info"], + grpc_service_config = "bigquery_grpc_service_config.json", + importpath = "cloud.google.com/go/bigquery/apiv2;bigquery", + metadata = True, + release_level = "alpha", + rest_numeric_enums = False, + service_yaml = "bigquery_v2.yaml", + transport = "rest", + deps = [ + ":bigquery_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-bigquery-v2-go", + deps = [ + ":bigquery_go_gapic", + ":bigquery_go_gapic_srcjar-metadata.srcjar", + ":bigquery_go_gapic_srcjar-snippets.srcjar", + ":bigquery_go_gapic_srcjar-test.srcjar", + ":bigquery_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "bigquery_py_gapic", + srcs = [":bigquery_proto"], + grpc_service_config = "bigquery_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "bigquery_v2.yaml", + transport = "rest", + deps = [ + ], +) + +py_test( + name = "bigquery_py_gapic_test", + srcs = [ + "bigquery_py_gapic_pytest.py", + "bigquery_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":bigquery_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "bigquery-v2-py", + deps = [ + ":bigquery_py_gapic", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "bigquery_nodejs_gapic", + package_name = "@google-cloud/bigquery", + src = ":bigquery_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "bigquery_grpc_service_config.json", + package = "google.cloud.bigquery.v2", + rest_numeric_enums = True, + service_yaml = "bigquery_v2.yaml", + transport = "rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "bigquery-v2-nodejs", + deps = [ + ":bigquery_nodejs_gapic", + ":bigquery_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "bigquery_cc_proto", + deps = [":bigquery_proto"], +) diff --git a/third_party/googleapis/google/cloud/bigquery/v2/README.md b/third_party/googleapis/google/cloud/bigquery/v2/README.md new file mode 100644 index 000000000..b097b29b3 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/README.md @@ -0,0 +1,11 @@ +# About + +This directory contains the protobuf-based interface definition (IDL) for the +BigQuery V2 service (bigquery.googleapis.com). + +BigQuery V2 does not expose a gRPC-based transport definition, and these +artifacts are being published to enable work on updating existing REST-based +clients with more functionality. + +We discourage their direct use externally at this time, and will +communicate changes here and via channels like the per-language release notes. \ No newline at end of file diff --git a/third_party/googleapis/google/cloud/bigquery/v2/biglake_config.proto b/third_party/googleapis/google/cloud/bigquery/v2/biglake_config.proto new file mode 100644 index 000000000..fd076037b --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/biglake_config.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "BigLakeConfigProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Configuration for BigLake managed tables. +message BigLakeConfiguration { + // Supported file formats for BigLake tables. + enum FileFormat { + // Default Value. + FILE_FORMAT_UNSPECIFIED = 0; + + // Apache Parquet format. + PARQUET = 1; + } + + // Supported table formats for BigLake tables. + enum TableFormat { + // Default Value. + TABLE_FORMAT_UNSPECIFIED = 0; + + // Apache Iceberg format. + ICEBERG = 1; + } + + // Required. The connection specifying the credentials to be used to read and + // write to external storage, such as Cloud Storage. The connection_id can + // have the form `{project}.{location}.{connection_id}` or + // `projects/{project}/locations/{location}/connections/{connection_id}". + string connection_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The fully qualified location prefix of the external folder where + // table data is stored. The '*' wildcard character is not allowed. The URI + // should be in the format `gs://bucket/path_to_table/` + string storage_uri = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The file format the table data is stored in. + FileFormat file_format = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table format the metadata only snapshots are stored in. + TableFormat table_format = 4 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/bigquery_grpc_service_config.json b/third_party/googleapis/google/cloud/bigquery/v2/bigquery_grpc_service_config.json new file mode 100644 index 000000000..eafb5e4ec --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/bigquery_grpc_service_config.json @@ -0,0 +1,182 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "GetDataset" + }, + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "InsertDataset" + }, + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "PatchDataset" + }, + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "UpdateDataset" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "CancelJob" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "GetJob" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "DeleteJob" + }, + { + "service": "google.cloud.bigquery.v2.ModelService", + "method": "ListModels" + }, + { + "service": "google.cloud.bigquery.v2.ModelService", + "method": "PatchModel" + }, + { + "service": "google.cloud.bigquery.v2.ModelService", + "method": "DeleteModel" + }, + { + "service": "google.cloud.bigquery.v2.ProjectService", + "method": "GetServiceAccount" + }, + { + "service": "google.cloud.bigquery.v2.RoutineService", + "method": "GetRoutine" + }, + { + "service": "google.cloud.bigquery.v2.RoutineService", + "method": "ListRoutines" + }, + { + "service": "google.cloud.bigquery.v2.RowAccessPolicyService", + "method": "BatchDeleteRowAccessPolicies" + }, + { + "service": "google.cloud.bigquery.v2.RowAccessPolicyService", + "method": "CreateRowAccessPolicy" + }, + { + "service": "google.cloud.bigquery.v2.RowAccessPolicyService", + "method": "DeleteRowAccessPolicy" + }, + { + "service": "google.cloud.bigquery.v2.RowAccessPolicyService", + "method": "GetRowAccessPolicy" + }, + { + "service": "google.cloud.bigquery.v2.RowAccessPolicyService", + "method": "ListRowAccessPolicies" + }, + { + "service": "google.cloud.bigquery.v2.RowAccessPolicyService", + "method": "UpdateRowAccessPolicy" + }, + { + "service": "google.cloud.bigquery.v2.TableService", + "method": "GetTable" + }, + { + "service": "google.cloud.bigquery.v2.TableService", + "method": "ListTables" + } + ], + "timeout": "64s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" + ] + } + }, + { + "name": [ + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "DeleteDataset" + }, + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "ListDatasets" + }, + { + "service": "google.cloud.bigquery.v2.DatasetService", + "method": "UndeleteDataset" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "InsertJob" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "ListJobs" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "Query" + }, + { + "service": "google.cloud.bigquery.v2.JobService", + "method": "GetQueryResults" + }, + { + "service": "google.cloud.bigquery.v2.RoutineService", + "method": "InsertRoutine" + }, + { + "service": "google.cloud.bigquery.v2.RoutineService", + "method": "UpdateRoutine" + }, + { + "service": "google.cloud.bigquery.v2.RoutineService", + "method": "PatchRoutine" + }, + { + "service": "google.cloud.bigquery.v2.RoutineService", + "method": "DeleteRoutine" + }, + { + "service": "google.cloud.bigquery.v2.TableDataService", + "method": "List" + }, + { + "service": "google.cloud.bigquery.v2.TableService", + "method": "InsertTable" + }, + { + "service": "google.cloud.bigquery.v2.TableService", + "method": "PatchTable" + }, + { + "service": "google.cloud.bigquery.v2.TableService", + "method": "UpdateTable" + }, + { + "service": "google.cloud.bigquery.v2.TableService", + "method": "DeleteTable" + } + ], + "timeout": "240s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" + ] + } + } + ] +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/bigquery_v2.yaml b/third_party/googleapis/google/cloud/bigquery/v2/bigquery_v2.yaml new file mode 100644 index 000000000..b863f852e --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/bigquery_v2.yaml @@ -0,0 +1,200 @@ +type: google.api.Service +config_version: 3 +name: bigquery.googleapis.com +title: BigQuery API + +apis: +- name: google.cloud.bigquery.v2.DatasetService +- name: google.cloud.bigquery.v2.JobService +- name: google.cloud.bigquery.v2.ModelService +- name: google.cloud.bigquery.v2.ProjectService +- name: google.cloud.bigquery.v2.RoutineService +- name: google.cloud.bigquery.v2.RowAccessPolicyService +- name: google.cloud.bigquery.v2.TableService + +types: +- name: google.cloud.bigquery.v2.LocationMetadata + +documentation: + summary: 'A data platform for customers to create, manage, share and query data.' + rules: + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + description: |- + Gets the access control policy for a resource. Returns an empty policy + if the resource exists and does not have a policy set. + + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + description: |- + Sets the access control policy on the specified resource. Replaces + any existing policy. + + Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` + errors. + + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + description: |- + 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. + +http: + rules: + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + post: '/bigquery/v2/{resource=projects/*/datasets/*}:getIamPolicy' + body: '*' + additional_bindings: + - post: '/bigquery/v2/{resource=projects/*/datasets/*/tables/*}:getIamPolicy' + body: '*' + - post: '/bigquery/v2/{resource=projects/*/datasets/*/tables/*/rowAccessPolicies/*}:getIamPolicy' + body: '*' + - post: '/bigquery/v2/{resource=projects/*/datasets/*/routines/*}:getIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/bigquery/v2/{resource=projects/*/datasets/*}:setIamPolicy' + body: '*' + additional_bindings: + - post: '/bigquery/v2/{resource=projects/*/datasets/*/tables/*}:setIamPolicy' + body: '*' + - post: '/bigquery/v2/{resource=projects/*/datasets/*/routines/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/bigquery/v2/{resource=projects/*/datasets/*}:testIamPermissions' + body: '*' + additional_bindings: + - post: '/bigquery/v2/{resource=projects/*/datasets/*/tables/*}:testIamPermissions' + body: '*' + - post: '/bigquery/v2/{resource=projects/*/datasets/*/tables/*/rowAccessPolicies/*}:testIamPermissions' + body: '*' + +authentication: + rules: + - selector: 'google.cloud.bigquery.v2.DatasetService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.DatasetService.GetDataset + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.DatasetService.ListDatasets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: 'google.cloud.bigquery.v2.JobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.JobService.CancelJob + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.JobService.DeleteJob + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.JobService.InsertJob + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/devstorage.full_control, + https://www.googleapis.com/auth/devstorage.read_only, + https://www.googleapis.com/auth/devstorage.read_write + - selector: google.cloud.bigquery.v2.ModelService.DeleteModel + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.ModelService.GetModel + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.ModelService.ListModels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.ModelService.PatchModel + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.ProjectService.GetServiceAccount + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: 'google.cloud.bigquery.v2.RoutineService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.RoutineService.GetRoutine + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.RoutineService.ListRoutines + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.RowAccessPolicyService.ListRowAccessPolicies + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: 'google.cloud.bigquery.v2.TableService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.bigquery.v2.TableService.GetTable + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.cloud.bigquery.v2.TableService.ListTables + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloud-platform.read-only diff --git a/third_party/googleapis/google/cloud/bigquery/v2/clustering.proto b/third_party/googleapis/google/cloud/bigquery/v2/clustering.proto new file mode 100644 index 000000000..b871f41ec --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/clustering.proto @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "ClusteringProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Configures table clustering. +message Clustering { + // One or more fields on which data should be clustered. Only top-level, + // non-repeated, simple-type fields are supported. The ordering of the + // clustering fields should be prioritized from most to least important + // for filtering purposes. + // + // Additional information on limitations can be found here: + // https://cloud.google.com/bigquery/docs/creating-clustered-tables#limitations + repeated string fields = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/data_format_options.proto b/third_party/googleapis/google/cloud/bigquery/v2/data_format_options.proto new file mode 100644 index 000000000..e2c6fb67d --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/data_format_options.proto @@ -0,0 +1,29 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "DataFormatOptionsProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Options for data format adjustments. +message DataFormatOptions { + // Optional. Output timestamp as usec int64. Default is false. + bool use_int64_timestamp = 1 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/dataset.proto b/third_party/googleapis/google/cloud/bigquery/v2/dataset.proto new file mode 100644 index 000000000..9b460d9f8 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/dataset.proto @@ -0,0 +1,618 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/dataset_reference.proto"; +import "google/cloud/bigquery/v2/encryption_config.proto"; +import "google/cloud/bigquery/v2/external_catalog_dataset_options.proto"; +import "google/cloud/bigquery/v2/external_dataset_reference.proto"; +import "google/cloud/bigquery/v2/restriction_config.proto"; +import "google/cloud/bigquery/v2/routine_reference.proto"; +import "google/cloud/bigquery/v2/table_reference.proto"; +import "google/cloud/bigquery/v2/table_schema.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "DatasetProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This is an experimental RPC service definition for the BigQuery +// Dataset Service. +// +// It should not be relied on for production use cases at this time. +service DatasetService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Returns the dataset specified by datasetID. + rpc GetDataset(GetDatasetRequest) returns (Dataset) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + }; + } + + // Creates a new empty dataset. + rpc InsertDataset(InsertDatasetRequest) returns (Dataset) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/datasets" + body: "dataset" + }; + } + + // Updates information in an existing dataset. The update method replaces the + // entire dataset resource, whereas the patch method only replaces fields that + // are provided in the submitted dataset resource. + // This method supports RFC5789 patch semantics. + rpc PatchDataset(UpdateOrPatchDatasetRequest) returns (Dataset) { + option (google.api.http) = { + patch: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + body: "dataset" + }; + } + + // Updates information in an existing dataset. The update method replaces the + // entire dataset resource, whereas the patch method only replaces fields that + // are provided in the submitted dataset resource. + rpc UpdateDataset(UpdateOrPatchDatasetRequest) returns (Dataset) { + option (google.api.http) = { + put: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + body: "dataset" + }; + } + + // Deletes the dataset specified by the datasetId value. Before you can delete + // a dataset, you must delete all its tables, either manually or by specifying + // deleteContents. Immediately after deletion, you can create another dataset + // with the same name. + rpc DeleteDataset(DeleteDatasetRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}" + }; + } + + // Lists all datasets in the specified project to which the user has been + // granted the READER dataset role. + rpc ListDatasets(ListDatasetsRequest) returns (DatasetList) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets" + }; + } + + // Undeletes a dataset which is within time travel window based on datasetId. + // If a time is specified, the dataset version deleted at that time is + // undeleted, else the last live version is undeleted. + rpc UndeleteDataset(UndeleteDatasetRequest) returns (Dataset) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}:undelete" + body: "*" + }; + } +} + +// Grants all resources of particular types in a particular dataset read access +// to the current dataset. +// +// Similar to how individually authorized views work, updates to any resource +// granted through its dataset (including creation of new resources) requires +// read permission to referenced resources, plus write permission to the +// authorizing dataset. +message DatasetAccessEntry { + // Indicates the type of resources in a dataset that the entry applies to. + enum TargetType { + // Do not use. You must set a target type explicitly. + TARGET_TYPE_UNSPECIFIED = 0; + + // This entry applies to views in the dataset. + VIEWS = 1; + + // This entry applies to routines in the dataset. + ROUTINES = 2; + } + + // The dataset this entry applies to + DatasetReference dataset = 1; + + // Which resources in the dataset this entry applies to. Currently, only + // views are supported, but additional target types may be added in the + // future. + repeated TargetType target_types = 2; +} + +// An object that defines dataset access for an entity. +message Access { + // An IAM role ID that should be granted to the user, group, + // or domain specified in this access entry. + // The following legacy mappings will be applied: + // + // * `OWNER`: `roles/bigquery.dataOwner` + // * `WRITER`: `roles/bigquery.dataEditor` + // * `READER`: `roles/bigquery.dataViewer` + // + // This field will accept any of the above formats, but will return only + // the legacy format. For example, if you set this field to + // "roles/bigquery.dataOwner", it will be returned back as "OWNER". + string role = 1; + + // [Pick one] An email address of a user to grant access to. For example: + // fred@example.com. Maps to IAM policy member "user:EMAIL" or + // "serviceAccount:EMAIL". + string user_by_email = 2; + + // [Pick one] An email address of a Google Group to grant access to. + // Maps to IAM policy member "group:GROUP". + string group_by_email = 3; + + // [Pick one] A domain to grant access to. Any users signed in with the domain + // specified will be granted the specified access. Example: "example.com". + // Maps to IAM policy member "domain:DOMAIN". + string domain = 4; + + // [Pick one] A special group to grant access to. Possible values include: + // + // * projectOwners: Owners of the enclosing project. + // * projectReaders: Readers of the enclosing project. + // * projectWriters: Writers of the enclosing project. + // * allAuthenticatedUsers: All authenticated BigQuery users. + // + // Maps to similarly-named IAM members. + string special_group = 5; + + // [Pick one] Some other type of member that appears in the IAM Policy but + // isn't a user, group, domain, or special group. + string iam_member = 7; + + // [Pick one] A view from a different dataset to grant access to. Queries + // executed against that view will have read access to views/tables/routines + // in this dataset. + // The role field is not required when this field is set. If that view is + // updated by any user, access to the view needs to be granted again via an + // update operation. + TableReference view = 6; + + // [Pick one] A routine from a different dataset to grant access to. Queries + // executed against that routine will have read access to + // views/tables/routines in this dataset. Only UDF is supported for now. + // The role field is not required when this field is set. If that routine is + // updated by any user, access to the routine needs to be granted again via + // an update operation. + RoutineReference routine = 8; + + // [Pick one] A grant authorizing all resources of a particular type in a + // particular dataset access to this dataset. Only views are supported for + // now. The role field is not required when this field is set. If that dataset + // is deleted and re-created, its access needs to be granted again via an + // update operation. + DatasetAccessEntry dataset = 9; +} + +// Represents a BigQuery dataset. +message Dataset { + // Indicates the billing model that will be applied to the dataset. + enum StorageBillingModel { + // Value not set. + STORAGE_BILLING_MODEL_UNSPECIFIED = 0; + + // Billing for logical bytes. + LOGICAL = 1; + + // Billing for physical bytes. + PHYSICAL = 2; + } + + // Output only. The resource type. + string kind = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A hash of the resource. + string etag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The fully-qualified unique name of the dataset in the format + // projectId:datasetId. The dataset name without the project name is given in + // the datasetId field. When creating a new dataset, leave this field blank, + // and instead specify the datasetId field. + string id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A URL that can be used to access the resource again. You can + // use this URL in Get or Update requests to the resource. + string self_link = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. A reference that identifies the dataset. + DatasetReference dataset_reference = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. A descriptive name for the dataset. + google.protobuf.StringValue friendly_name = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A user-friendly description of the dataset. + google.protobuf.StringValue description = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default lifetime of all tables in the dataset, in + // milliseconds. The minimum lifetime value is 3600000 milliseconds (one + // hour). To clear an existing default expiration with a PATCH request, set to + // 0. Once this property is set, all newly-created tables in the dataset will + // have an expirationTime property set to the creation time plus the value in + // this property, and changing the value will only affect new tables, not + // existing ones. When the expirationTime for a given table is reached, that + // table will be deleted automatically. + // If a table's expirationTime is modified or removed before the table + // expires, or if you provide an explicit expirationTime when creating a + // table, that value takes precedence over the default expiration time + // indicated by this property. + google.protobuf.Int64Value default_table_expiration_ms = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // This default partition expiration, expressed in milliseconds. + // + // When new time-partitioned tables are created in a dataset where this + // property is set, the table will inherit this value, propagated as the + // `TimePartitioning.expirationMs` property on the new table. If you set + // `TimePartitioning.expirationMs` explicitly when creating a table, + // the `defaultPartitionExpirationMs` of the containing dataset is ignored. + // + // When creating a partitioned table, if `defaultPartitionExpirationMs` + // is set, the `defaultTableExpirationMs` value is ignored and the table + // will not be inherit a table expiration deadline. + google.protobuf.Int64Value default_partition_expiration_ms = 14; + + // The labels associated with this dataset. You can use these + // to organize and group your datasets. + // You can set this property when inserting or updating a dataset. + // See [Creating and Updating Dataset + // Labels](https://cloud.google.com/bigquery/docs/creating-managing-labels#creating_and_updating_dataset_labels) + // for more information. + map labels = 9; + + // Optional. An array of objects that define dataset access for one or more + // entities. You can set this property when inserting or updating a dataset in + // order to control who is allowed to access the data. If unspecified at + // dataset creation time, BigQuery adds default dataset access for the + // following entities: access.specialGroup: projectReaders; access.role: + // READER; access.specialGroup: projectWriters; access.role: WRITER; + // access.specialGroup: projectOwners; access.role: OWNER; + // access.userByEmail: [dataset creator email]; access.role: OWNER; + repeated Access access = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time when this dataset was created, in milliseconds since + // the epoch. + int64 creation_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date when this dataset was last modified, in milliseconds + // since the epoch. + int64 last_modified_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The geographic location where the dataset should reside. See + // https://cloud.google.com/bigquery/docs/locations for supported + // locations. + string location = 13; + + // The default encryption key for all tables in the dataset. + // After this property is set, the encryption key of all newly-created tables + // in the dataset is set to this value unless the table creation request or + // query explicitly overrides the key. + EncryptionConfiguration default_encryption_configuration = 16; + + // Output only. Reserved for future use. + google.protobuf.BoolValue satisfies_pzs = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + google.protobuf.BoolValue satisfies_pzi = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Same as `type` in `ListFormatDataset`. + // The type of the dataset, one of: + // + // * DEFAULT - only accessible by owner and authorized accounts, + // * PUBLIC - accessible by everyone, + // * LINKED - linked dataset, + // * EXTERNAL - dataset with definition in external metadata catalog. + string type = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The source dataset reference when the dataset is of type LINKED. + // For all other dataset types it is not set. This field cannot be updated + // once it is set. Any attempt to update this field using Update and Patch API + // Operations will be ignored. + LinkedDatasetSource linked_dataset_source = 19 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Metadata about the LinkedDataset. Filled out when the dataset + // type is LINKED. + LinkedDatasetMetadata linked_dataset_metadata = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Reference to a read-only external dataset defined in data + // catalogs outside of BigQuery. Filled out when the dataset type is EXTERNAL. + ExternalDatasetReference external_dataset_reference = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Options defining open source compatible datasets living in the + // BigQuery catalog. Contains metadata of open source database, schema or + // namespace represented by the current dataset. + ExternalCatalogDatasetOptions external_catalog_dataset_options = 32 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. TRUE if the dataset and its table names are case-insensitive, + // otherwise FALSE. By default, this is FALSE, which means the dataset and its + // table names are case-sensitive. This field does not affect routine + // references. + google.protobuf.BoolValue is_case_insensitive = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the default collation specification of future tables + // created in the dataset. If a table is created in this dataset without + // table-level default collation, then the table inherits the dataset default + // collation, which is applied to the string fields that do not have explicit + // collation specified. A change to this field affects only tables created + // afterwards, and does not alter the existing tables. + // The following values are supported: + // + // * 'und:ci': undetermined locale, case insensitive. + // * '': empty string. Default to case-sensitive behavior. + google.protobuf.StringValue default_collation = 22 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the default rounding mode specification of new tables + // created within this dataset. During table creation, if this field is + // specified, the table within this dataset will inherit the default rounding + // mode of the dataset. Setting the default rounding mode on a table overrides + // this option. Existing tables in the dataset are unaffected. + // If columns are defined during that table creation, + // they will immediately inherit the table's default rounding mode, + // unless otherwise specified. + TableFieldSchema.RoundingMode default_rounding_mode = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the time travel window in hours. The value can be from 48 + // to 168 hours (2 to 7 days). The default value is 168 hours if this is not + // set. + google.protobuf.Int64Value max_time_travel_hours = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Tags for the Dataset. + repeated GcpTag tags = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Updates storage_billing_model for the dataset. + StorageBillingModel storage_billing_model = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. Restriction config for all tables and dataset. If + // set, restrict certain accesses on the dataset and all its tables based on + // the config. See [Data + // egress](/bigquery/docs/analytics-hub-introduction#data_egress) for more + // details. + RestrictionConfig restrictions = 27 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. The [tags](/bigquery/docs/tags) attached to this dataset. Tag + // keys are globally unique. Tag key is expected to be in the namespaced + // format, for example "123456789012/environment" where 123456789012 is the ID + // of the parent organization or project resource for this tag key. Tag value + // is expected to be the short name, for example "Production". See [Tag + // definitions](/iam/docs/tags-access-control#definitions) for more details. + map resource_tags = 30 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A global tag managed by Resource Manager. +// https://cloud.google.com/iam/docs/tags-access-control#definitions +message GcpTag { + // Required. The namespaced friendly name of the tag key, e.g. + // "12345/environment" where 12345 is org id. + string tag_key = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The friendly short name of the tag value, e.g. "production". + string tag_value = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// A dataset source type which refers to another BigQuery dataset. +message LinkedDatasetSource { + // The source dataset reference contains project numbers and not project ids. + DatasetReference source_dataset = 1; +} + +// Metadata about the Linked Dataset. +message LinkedDatasetMetadata { + // Specifies whether Linked Dataset is currently in a linked state or not. + enum LinkState { + // The default value. + // Default to the LINKED state. + LINK_STATE_UNSPECIFIED = 0; + + // Normal Linked Dataset state. Data is queryable via the Linked Dataset. + LINKED = 1; + + // Data publisher or owner has unlinked this Linked Dataset. It means you + // can no longer query or see the data in the Linked Dataset. + UNLINKED = 2; + } + + // Output only. Specifies whether Linked Dataset is currently in a linked + // state or not. + LinkState link_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request format for getting information about a dataset. +message GetDatasetRequest { + // DatasetView specifies which dataset information is returned. + enum DatasetView { + // The default value. + // Default to the FULL view. + DATASET_VIEW_UNSPECIFIED = 0; + + // Includes metadata information for the dataset, such as location, + // etag, lastModifiedTime, etc. + METADATA = 1; + + // Includes ACL information for the dataset, which defines dataset access + // for one or more entities. + ACL = 2; + + // Includes both dataset metadata and ACL information. + FULL = 3; + } + + // Required. Project ID of the requested dataset + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the requested dataset + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies the view that determines which dataset information is + // returned. By default, metadata and ACL information are returned. + DatasetView dataset_view = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request format for inserting a dataset. +message InsertDatasetRequest { + // Required. Project ID of the new dataset + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Datasets resource to use for the new dataset + Dataset dataset = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Message for updating or patching a dataset. +message UpdateOrPatchDatasetRequest { + // Required. Project ID of the dataset being updated + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the dataset being updated + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Datasets resource which will replace or patch the specified + // dataset. + Dataset dataset = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request format for deleting a dataset. +message DeleteDatasetRequest { + // Required. Project ID of the dataset being deleted + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of dataset being deleted + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // If True, delete all the tables in the dataset. + // If False and the dataset contains tables, the request will fail. + // Default is False + bool delete_contents = 3; +} + +message ListDatasetsRequest { + // Required. Project ID of the datasets to be listed + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of results to return in a single response page. + // Leverage the page tokens to iterate through the entire collection. + google.protobuf.UInt32Value max_results = 2; + + // Page token, returned by a previous call, to request the next page of + // results + string page_token = 3; + + // Whether to list all datasets, including hidden ones + bool all = 4; + + // An expression for filtering the results of the request by label. + // The syntax is `labels.[:]`. + // Multiple filters can be ANDed together by connecting with a space. + // Example: `labels.department:receiving labels.active`. + // See [Filtering datasets using + // labels](https://cloud.google.com/bigquery/docs/filtering-labels#filtering_datasets_using_labels) + // for details. + string filter = 5; +} + +// A dataset resource with only a subset of fields, to be returned in a list of +// datasets. +message ListFormatDataset { + // The resource type. + // This property always returns the value "bigquery#dataset" + string kind = 1; + + // The fully-qualified, unique, opaque ID of the dataset. + string id = 2; + + // The dataset reference. + // Use this property to access specific parts of the dataset's ID, such as + // project ID or dataset ID. + DatasetReference dataset_reference = 3; + + // The labels associated with this dataset. + // You can use these to organize and group your datasets. + map labels = 4; + + // An alternate name for the dataset. The friendly name is purely + // decorative in nature. + google.protobuf.StringValue friendly_name = 5; + + // The geographic location where the dataset resides. + string location = 6; +} + +// Response format for a page of results when listing datasets. +message DatasetList { + // Output only. The resource type. + // This property always returns the value "bigquery#datasetList" + string kind = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A hash value of the results page. You can use this property to + // determine if the page has changed since the last request. + string etag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A token that can be used to request the next results page. This property is + // omitted on the final results page. + string next_page_token = 3; + + // An array of the dataset resources in the project. + // Each resource contains basic information. + // For full information about a particular dataset resource, use the Datasets: + // get method. This property is omitted when there are no datasets in the + // project. + repeated ListFormatDataset datasets = 4; + + // A list of skipped locations that were unreachable. For more information + // about BigQuery locations, see: + // https://cloud.google.com/bigquery/docs/locations. Example: "europe-west5" + repeated string unreachable = 5; +} + +// Request format for undeleting a dataset. +message UndeleteDatasetRequest { + // Required. Project ID of the dataset to be undeleted + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of dataset being deleted + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The exact time when the dataset was deleted. If not specified, + // the most recently deleted version is undeleted. Undeleting a dataset + // using deletion time is not supported. + google.protobuf.Timestamp deletion_time = 3 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/dataset_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/dataset_reference.proto new file mode 100644 index 000000000..03695a4c4 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/dataset_reference.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "DatasetReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Identifier for a dataset. +message DatasetReference { + // Required. A unique ID for this dataset, without the project name. The ID + // must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). + // The maximum length is 1,024 characters. + string dataset_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ID of the project containing this dataset. + string project_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/decimal_target_types.proto b/third_party/googleapis/google/cloud/bigquery/v2/decimal_target_types.proto new file mode 100644 index 000000000..72266b110 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/decimal_target_types.proto @@ -0,0 +1,40 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "DecimalTargetTypesProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// The data types that could be used as a target type when converting decimal +// values. +enum DecimalTargetType { + // Invalid type. + DECIMAL_TARGET_TYPE_UNSPECIFIED = 0; + + // Decimal values could be converted to NUMERIC + // type. + NUMERIC = 1; + + // Decimal values could be converted to BIGNUMERIC + // type. + BIGNUMERIC = 2; + + // Decimal values could be converted to STRING type. + STRING = 3; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/encryption_config.proto b/third_party/googleapis/google/cloud/bigquery/v2/encryption_config.proto new file mode 100644 index 000000000..ac7ee1679 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/encryption_config.proto @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "EncryptionConfigProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Configuration for Cloud KMS encryption settings. +message EncryptionConfiguration { + // Optional. Describes the Cloud KMS encryption key that will be used to + // protect destination BigQuery table. The BigQuery Service Account associated + // with your project requires access to this encryption key. + google.protobuf.StringValue kms_key_name = 1 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/error.proto b/third_party/googleapis/google/cloud/bigquery/v2/error.proto new file mode 100644 index 000000000..9cab21c4f --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/error.proto @@ -0,0 +1,36 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Error details. +message ErrorProto { + // A short error code that summarizes the error. + string reason = 1; + + // Specifies where the error occurred, if present. + string location = 2; + + // Debugging information. This property is internal to Google and should not + // be used. + string debug_info = 3; + + // A human-readable description of the error. + string message = 4; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/external_catalog_dataset_options.proto b/third_party/googleapis/google/cloud/bigquery/v2/external_catalog_dataset_options.proto new file mode 100644 index 000000000..70d0f1f40 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/external_catalog_dataset_options.proto @@ -0,0 +1,39 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "ExternalCatalogDatasetOptionsProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Options defining open source compatible datasets living in the BigQuery +// catalog. Contains metadata of open source database, schema +// or namespace represented by the current dataset. +message ExternalCatalogDatasetOptions { + // Optional. A map of key value pairs defining the parameters and properties + // of the open source schema. Maximum size of 2Mib. + map parameters = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The storage location URI for all tables in the dataset. + // Equivalent to hive metastore's database locationUri. Maximum length of 1024 + // characters. + string default_storage_location_uri = 2 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/external_catalog_table_options.proto b/third_party/googleapis/google/cloud/bigquery/v2/external_catalog_table_options.proto new file mode 100644 index 000000000..e566ee2d1 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/external_catalog_table_options.proto @@ -0,0 +1,87 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "ExternalCatalogTableOptionsProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Metadata about open source compatible table. The fields contained in +// these options correspond to hive metastore's table level properties. +message ExternalCatalogTableOptions { + // Optional. A map of key value pairs defining the parameters and properties + // of the open source table. Corresponds with hive meta store table + // parameters. Maximum size of 4Mib. + map parameters = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A storage descriptor containing information about the physical + // storage of this table. + StorageDescriptor storage_descriptor = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The connection specifying the credentials to be used to read + // external storage, such as Azure Blob, Cloud Storage, or S3. The connection + // is needed to read the open source table from BigQuery Engine. The + // connection_id can have the form + // `..` or + // `projects//locations//connections/`. + string connection_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains information about how a table's data is stored and accessed by open +// source query engines. +message StorageDescriptor { + // Optional. The physical location of the table + // (e.g. 'gs://spark-dataproc-data/pangea-data/case_sensitive/' or + // 'gs://spark-dataproc-data/pangea-data/*'). + // The maximum length is 2056 bytes. + string location_uri = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the fully qualified class name of the InputFormat + // (e.g. "org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"). + // The maximum length is 128 characters. + string input_format = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the fully qualified class name of the OutputFormat + // (e.g. "org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat"). + // The maximum length is 128 characters. + string output_format = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Serializer and deserializer information. + SerDeInfo serde_info = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Serializer and deserializer information. +message SerDeInfo { + // Optional. Name of the SerDe. + // The maximum length is 256 characters. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Specifies a fully-qualified class name of the serialization + // library that is responsible for the translation of data between table + // representation and the underlying low-level input and output format + // structures. The maximum length is 256 characters. + string serialization_library = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Key-value pairs that define the initialization parameters for the + // serialization library. + // Maximum size 10 Kib. + map parameters = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/external_data_config.proto b/third_party/googleapis/google/cloud/bigquery/v2/external_data_config.proto new file mode 100644 index 000000000..610af982a --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/external_data_config.proto @@ -0,0 +1,499 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/decimal_target_types.proto"; +import "google/cloud/bigquery/v2/file_set_specification_type.proto"; +import "google/cloud/bigquery/v2/hive_partitioning.proto"; +import "google/cloud/bigquery/v2/json_extension.proto"; +import "google/cloud/bigquery/v2/map_target_type.proto"; +import "google/cloud/bigquery/v2/table_schema.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "ExternalDataConfigProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Options for external data sources. +message AvroOptions { + // Optional. If sourceFormat is set to "AVRO", indicates whether to interpret + // logical types as the corresponding BigQuery data type (for example, + // TIMESTAMP), instead of using the raw type (for example, INTEGER). + google.protobuf.BoolValue use_avro_logical_types = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Parquet Options for load and make external tables. +message ParquetOptions { + // Optional. Indicates whether to infer Parquet ENUM logical type as STRING + // instead of BYTES by default. + google.protobuf.BoolValue enum_as_string = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether to use schema inference specifically for + // Parquet LIST logical type. + google.protobuf.BoolValue enable_list_inference = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates how to represent a Parquet map if present. + MapTargetType map_target_type = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Information related to a CSV data source. +message CsvOptions { + // Optional. The separator character for fields in a CSV file. The separator + // is interpreted as a single byte. For files encoded in ISO-8859-1, any + // single character can be used as a separator. For files encoded in UTF-8, + // characters represented in decimal range 1-127 (U+0001-U+007F) can be used + // without any modification. UTF-8 characters encoded with multiple bytes + // (i.e. U+0080 and above) will have only the first byte used for separating + // fields. The remaining bytes will be treated as a part of the field. + // BigQuery also supports the escape sequence "\t" (U+0009) to specify a tab + // separator. The default value is comma (",", U+002C). + string field_delimiter = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of rows at the top of a CSV file that BigQuery will + // skip when reading the data. The default value is 0. This property is + // useful if you have header rows in the file that should be skipped. + // When autodetect is on, the behavior is the following: + // + // * skipLeadingRows unspecified - Autodetect tries to detect headers in the + // first row. If they are not detected, the row is read as data. Otherwise + // data is read starting from the second row. + // * skipLeadingRows is 0 - Instructs autodetect that there are no headers and + // data should be read starting from the first row. + // * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect + // headers in row N. If headers are not detected, row N is just skipped. + // Otherwise row N is used to extract column names for the detected schema. + google.protobuf.Int64Value skip_leading_rows = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value that is used to quote data sections in a CSV file. + // BigQuery converts the string to ISO-8859-1 encoding, and then uses the + // first byte of the encoded string to split the data in its raw, binary + // state. + // The default value is a double-quote ("). + // If your data does not contain quoted sections, + // set the property value to an empty string. + // If your data contains quoted newline characters, you must also set the + // allowQuotedNewlines property to true. + // To include the specific quote character within a quoted value, precede it + // with an additional matching quote character. For example, if you want to + // escape the default character ' " ', use ' "" '. + google.protobuf.StringValue quote = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates if BigQuery should allow quoted data sections that + // contain newline characters in a CSV file. The default value is false. + google.protobuf.BoolValue allow_quoted_newlines = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates if BigQuery should accept rows that are missing + // trailing optional columns. If true, BigQuery treats missing trailing + // columns as null values. + // If false, records with missing trailing columns are treated as bad records, + // and if there are too many bad records, an invalid error is returned in the + // job result. The default value is false. + google.protobuf.BoolValue allow_jagged_rows = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The character encoding of the data. + // The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, + // and UTF-32LE. The default value is UTF-8. + // BigQuery decodes the data after the raw, binary data has been split using + // the values of the quote and fieldDelimiter properties. + string encoding = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates if the embedded ASCII control characters (the first 32 + // characters in the ASCII-table, from '\x00' to '\x1F') are preserved. + google.protobuf.BoolValue preserve_ascii_control_characters = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a string that represents a null value in a CSV file. + // For example, if you specify "\N", BigQuery interprets "\N" as a null value + // when querying a CSV file. + // The default value is the empty string. If you set this property to a custom + // value, BigQuery throws an error if an empty string is present for all data + // types except for STRING and BYTE. For STRING and BYTE columns, BigQuery + // interprets the empty string as an empty value. + google.protobuf.StringValue null_marker = 8 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Json Options for load and make external tables. +message JsonOptions { + // Optional. The character encoding of the data. + // The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, + // and UTF-32LE. The default value is UTF-8. + string encoding = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Information related to a Bigtable column. +message BigtableColumn { + // [Required] Qualifier of the column. + // Columns in the parent column family that has this exact qualifier are + // exposed as `.` field. + // If the qualifier is valid UTF-8 string, it can be specified in the + // qualifier_string field. Otherwise, a base-64 encoded value must be set to + // qualifier_encoded. + // The column field name is the same as the column qualifier. However, if the + // qualifier is not a valid BigQuery field identifier i.e. does not match + // [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as field_name. + google.protobuf.BytesValue qualifier_encoded = 1; + + // Qualifier string. + google.protobuf.StringValue qualifier_string = 2; + + // Optional. If the qualifier is not a valid BigQuery field identifier i.e. + // does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided + // as the column field name and is used as field name in queries. + string field_name = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The type to convert the value in cells of this column. + // The values are expected to be encoded using HBase Bytes.toBytes function + // when using the BINARY encoding value. + // Following BigQuery types are allowed (case-sensitive): + // + // * BYTES + // * STRING + // * INTEGER + // * FLOAT + // * BOOLEAN + // * JSON + // + // Default type is BYTES. + // 'type' can also be set at the column family level. However, the setting at + // this level takes precedence if 'type' is set at both levels. + string type = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The encoding of the values when the type is not STRING. + // Acceptable encoding values are: + // TEXT - indicates values are alphanumeric text strings. + // BINARY - indicates values are encoded using HBase Bytes.toBytes family of + // functions. + // 'encoding' can also be set at the column family level. However, the setting + // at this level takes precedence if 'encoding' is set at both levels. + string encoding = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this is set, only the latest version of value in this column + // are exposed. + // 'onlyReadLatest' can also be set at the column family level. However, the + // setting at this level takes precedence if 'onlyReadLatest' is set at both + // levels. + google.protobuf.BoolValue only_read_latest = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Information related to a Bigtable column family. +message BigtableColumnFamily { + // Identifier of the column family. + string family_id = 1; + + // Optional. The type to convert the value in cells of this column family. + // The values are expected to be encoded using HBase Bytes.toBytes function + // when using the BINARY encoding value. + // Following BigQuery types are allowed (case-sensitive): + // + // * BYTES + // * STRING + // * INTEGER + // * FLOAT + // * BOOLEAN + // * JSON + // + // Default type is BYTES. + // This can be overridden for a specific column by listing that column in + // 'columns' and specifying a type for it. + string type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The encoding of the values when the type is not STRING. + // Acceptable encoding values are: + // TEXT - indicates values are alphanumeric text strings. + // BINARY - indicates values are encoded using HBase Bytes.toBytes family of + // functions. + // This can be overridden for a specific column by listing that column in + // 'columns' and specifying an encoding for it. + string encoding = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Lists of columns that should be exposed as individual fields as + // opposed to a list of (column name, value) pairs. + // All columns whose qualifier matches a qualifier in this list can be + // accessed as `.`. + // Other columns can be accessed as a list through + // the `.Column` field. + repeated BigtableColumn columns = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this is set only the latest version of value are exposed for + // all columns in this column family. + // This can be overridden for a specific column by listing that column in + // 'columns' and specifying a different setting + // for that column. + google.protobuf.BoolValue only_read_latest = 5 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Options specific to Google Cloud Bigtable data sources. +message BigtableOptions { + // Optional. List of column families to expose in the table schema along with + // their types. + // This list restricts the column families that can be referenced in queries + // and specifies their value types. + // You can use this list to do type conversions - see the 'type' field for + // more details. + // If you leave this list empty, all column families are present in the table + // schema and their values are read as BYTES. + // During a query only the column families referenced in that query are read + // from Bigtable. + repeated BigtableColumnFamily column_families = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If field is true, then the column families that are not + // specified in columnFamilies list are not exposed in the table schema. + // Otherwise, they are read with BYTES type values. + // The default value is false. + google.protobuf.BoolValue ignore_unspecified_column_families = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If field is true, then the rowkey column families will be read + // and converted to string. Otherwise they are read with BYTES type values and + // users need to manually cast them with CAST if necessary. + // The default value is false. + google.protobuf.BoolValue read_rowkey_as_string = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If field is true, then each column family will be read as a + // single JSON column. Otherwise they are read as a repeated cell structure + // containing timestamp/value tuples. The default value is false. + google.protobuf.BoolValue output_column_families_as_json = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Options specific to Google Sheets data sources. +message GoogleSheetsOptions { + // Optional. The number of rows at the top of a sheet that BigQuery will skip + // when reading the data. The default value is 0. This property is useful if + // you have header rows that should be skipped. When autodetect is on, + // the behavior is the following: + // * skipLeadingRows unspecified - Autodetect tries to detect headers in the + // first row. If they are not detected, the row is read as data. Otherwise + // data is read starting from the second row. + // * skipLeadingRows is 0 - Instructs autodetect that there are no headers and + // data should be read starting from the first row. + // * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect + // headers in row N. If headers are not detected, row N is just skipped. + // Otherwise row N is used to extract column names for the detected schema. + google.protobuf.Int64Value skip_leading_rows = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Range of a sheet to query from. Only used when non-empty. + // Typical format: sheet_name!top_left_cell_id:bottom_right_cell_id + // For example: sheet1!A1:B20 + string range = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message ExternalDataConfiguration { + // Supported Object Metadata Types. + enum ObjectMetadata { + // Unspecified by default. + OBJECT_METADATA_UNSPECIFIED = 0; + + // A synonym for `SIMPLE`. + DIRECTORY = 1; + + // Directory listing of objects. + SIMPLE = 2; + } + + // MetadataCacheMode identifies if the table should use metadata caching for + // files from external source (eg Google Cloud Storage). + enum MetadataCacheMode { + // Unspecified metadata cache mode. + METADATA_CACHE_MODE_UNSPECIFIED = 0; + + // Set this mode to trigger automatic background refresh of metadata cache + // from the external source. Queries will use the latest available cache + // version within the table's maxStaleness interval. + AUTOMATIC = 1; + + // Set this mode to enable triggering manual refresh of the metadata cache + // from external source. Queries will use the latest manually triggered + // cache version within the table's maxStaleness interval. + MANUAL = 2; + } + + // [Required] The fully-qualified URIs that point to your data in Google + // Cloud. For Google Cloud Storage URIs: + // Each URI can contain one '*' wildcard character and it must come after + // the 'bucket' name. + // Size limits related to load jobs apply to external data sources. + // For Google Cloud Bigtable URIs: + // Exactly one URI can be specified and it has be a fully specified and + // valid HTTPS URL for a Google Cloud Bigtable table. + // For Google Cloud Datastore backups, exactly one URI can be specified. Also, + // the '*' wildcard character is not allowed. + repeated string source_uris = 1; + + // Optional. Specifies how source URIs are interpreted for constructing the + // file set to load. By default source URIs are expanded against the + // underlying storage. Other options include specifying manifest files. Only + // applicable to object storage systems. + FileSetSpecType file_set_spec_type = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The schema for the data. + // Schema is required for CSV and JSON formats if autodetect is not on. + // Schema is disallowed for Google Cloud Bigtable, Cloud Datastore backups, + // Avro, ORC and Parquet formats. + TableSchema schema = 2 [(google.api.field_behavior) = OPTIONAL]; + + // [Required] The data format. + // For CSV files, specify "CSV". + // For Google sheets, specify "GOOGLE_SHEETS". + // For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". + // For Avro files, specify "AVRO". + // For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". + // For Apache Iceberg tables, specify "ICEBERG". + // For ORC files, specify "ORC". + // For Parquet files, specify "PARQUET". + // [Beta] For Google Cloud Bigtable, specify "BIGTABLE". + string source_format = 3; + + // Optional. The maximum number of bad records that BigQuery can ignore when + // reading data. If the number of bad records exceeds this value, an invalid + // error is returned in the job result. The default value is 0, which requires + // that all records are valid. This setting is ignored for Google Cloud + // Bigtable, Google Cloud Datastore backups, Avro, ORC and Parquet formats. + google.protobuf.Int32Value max_bad_records = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Try to detect schema and format options automatically. + // Any option specified explicitly will be honored. + google.protobuf.BoolValue autodetect = 5; + + // Optional. Indicates if BigQuery should allow extra values that are not + // represented in the table schema. + // If true, the extra values are ignored. + // If false, records with extra columns are treated as bad records, and if + // there are too many bad records, an invalid error is returned in the job + // result. + // The default value is false. + // The sourceFormat property determines what BigQuery treats as an extra + // value: + // CSV: Trailing columns + // JSON: Named values that don't match any column names + // Google Cloud Bigtable: This setting is ignored. + // Google Cloud Datastore backups: This setting is ignored. + // Avro: This setting is ignored. + // ORC: This setting is ignored. + // Parquet: This setting is ignored. + google.protobuf.BoolValue ignore_unknown_values = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The compression type of the data source. + // Possible values include GZIP and NONE. The default value is NONE. + // This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore + // backups, Avro, ORC and Parquet + // formats. An empty string is an invalid value. + string compression = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional properties to set if sourceFormat is set to CSV. + CsvOptions csv_options = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional properties to set if sourceFormat is set to JSON. + JsonOptions json_options = 26 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional options if sourceFormat is set to BIGTABLE. + BigtableOptions bigtable_options = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional options if sourceFormat is set to GOOGLE_SHEETS. + GoogleSheetsOptions google_sheets_options = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set, configures hive partitioning support. Not all storage + // formats support hive partitioning -- requesting hive partitioning on an + // unsupported format will lead to an error, as will providing an invalid + // specification. + HivePartitioningOptions hive_partitioning_options = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The connection specifying the credentials to be used to read + // external storage, such as Azure Blob, Cloud Storage, or S3. The + // connection_id can have the form + // `{project_id}.{location_id};{connection_id}` or + // `projects/{project_id}/locations/{location_id}/connections/{connection_id}`. + string connection_id = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Defines the list of possible SQL data types to which the source decimal + // values are converted. This list and the precision and the scale parameters + // of the decimal field determine the target type. In the order of NUMERIC, + // BIGNUMERIC, and STRING, a + // type is picked if it is in the specified list and if it supports the + // precision and the scale. STRING supports all precision and scale values. + // If none of the listed types supports the precision and the scale, the type + // supporting the widest range in the specified list is picked, and if a value + // exceeds the supported range when reading the data, an error will be thrown. + // + // Example: Suppose the value of this field is ["NUMERIC", "BIGNUMERIC"]. + // If (precision,scale) is: + // + // * (38,9) -> NUMERIC; + // * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); + // * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); + // * (76,38) -> BIGNUMERIC; + // * (77,38) -> BIGNUMERIC (error if value exeeds supported range). + // + // This field cannot contain duplicate types. The order of the types in this + // field is ignored. For example, ["BIGNUMERIC", "NUMERIC"] is the same as + // ["NUMERIC", "BIGNUMERIC"] and NUMERIC always takes precedence over + // BIGNUMERIC. + // + // Defaults to ["NUMERIC", "STRING"] for ORC and ["NUMERIC"] for the other + // file formats. + repeated DecimalTargetType decimal_target_types = 16; + + // Optional. Additional properties to set if sourceFormat is set to AVRO. + AvroOptions avro_options = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Load option to be used together with source_format + // newline-delimited JSON to indicate that a variant of JSON is being loaded. + // To load newline-delimited GeoJSON, specify GEOJSON (and source_format must + // be set to NEWLINE_DELIMITED_JSON). + JsonExtension json_extension = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional properties to set if sourceFormat is set to PARQUET. + ParquetOptions parquet_options = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. ObjectMetadata is used to create Object Tables. Object Tables + // contain a listing of objects (with their metadata) found at the + // source_uris. If ObjectMetadata is set, source_format should be omitted. + // + // Currently SIMPLE is the only supported Object Metadata type. + optional ObjectMetadata object_metadata = 22 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When creating an external table, the user can provide a reference + // file with the table schema. This is enabled for the following formats: + // AVRO, PARQUET, ORC. + google.protobuf.StringValue reference_file_schema_uri = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Metadata Cache Mode for the table. Set this to enable caching of + // metadata from external data source. + MetadataCacheMode metadata_cache_mode = 24 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/external_dataset_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/external_dataset_reference.proto new file mode 100644 index 000000000..8d3a3b4c9 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/external_dataset_reference.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "ExternalDatasetReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; +option (google.api.resource_definition) = { + type: "bigqueryconnection.googleapis.com/Connection" + pattern: "projects/{project}/locations/{location}/connections/{connection}" +}; + +// Configures the access a dataset defined in an external metadata storage. +message ExternalDatasetReference { + // Required. External source that backs this dataset. + string external_source = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The connection id that is used to access the external_source. + // + // Format: + // projects/{project_id}/locations/{location_id}/connections/{connection_id} + string connection = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigqueryconnection.googleapis.com/Connection" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/file_set_specification_type.proto b/third_party/googleapis/google/cloud/bigquery/v2/file_set_specification_type.proto new file mode 100644 index 000000000..1068d20eb --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/file_set_specification_type.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "FileSetSpecificationTypeProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This enum defines how to interpret source URIs for load jobs and external +// tables. +enum FileSetSpecType { + // This option expands source URIs by listing files from the object store. It + // is the default behavior if FileSetSpecType is not set. + FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH = 0; + + // This option indicates that the provided URIs are newline-delimited manifest + // files, with one URI per line. Wildcard URIs are not supported. + FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/hive_partitioning.proto b/third_party/googleapis/google/cloud/bigquery/v2/hive_partitioning.proto new file mode 100644 index 000000000..76872bd1a --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/hive_partitioning.proto @@ -0,0 +1,86 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "HivePartitioningProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Options for configuring hive partitioning detect. +message HivePartitioningOptions { + // Optional. When set, what mode of hive partitioning to use when reading + // data. The following modes are supported: + // + // * AUTO: automatically infer partition key name(s) and type(s). + // + // * STRINGS: automatically infer partition key name(s). All types are + // strings. + // + // * CUSTOM: partition key schema is encoded in the source URI prefix. + // + // Not all storage formats support hive partitioning. Requesting hive + // partitioning on an unsupported format will lead to an error. + // Currently supported formats are: JSON, CSV, ORC, Avro and Parquet. + string mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When hive partition detection is requested, a common prefix for + // all source uris must be required. The prefix must end immediately before + // the partition key encoding begins. For example, consider files following + // this data layout: + // + // gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro + // + // gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro + // + // When hive partitioning is requested with either AUTO or STRINGS detection, + // the common prefix can be either of gs://bucket/path_to_table or + // gs://bucket/path_to_table/. + // + // CUSTOM detection requires encoding the partitioning schema immediately + // after the common prefix. For CUSTOM, any of + // + // * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER} + // + // * gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER} + // + // * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING} + // + // would all be valid source URI prefixes. + string source_uri_prefix = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, queries over this table require a partition + // filter that can be used for partition elimination to be specified. + // + // Note that this field should only be true when creating a permanent + // external table or querying a temporary external table. + // + // Hive-partitioned loads with require_partition_filter explicitly set to + // true will fail. + google.protobuf.BoolValue require_partition_filter = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. For permanent external tables, this field is populated with + // the hive partition keys in the order they were inferred. The types of the + // partition keys can be deduced by checking the table schema (which will + // include the partition keys). Not every API will populate this field in the + // output. For example, Tables.Get will populate it, but Tables.List will not + // contain this field. + repeated string fields = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/job.proto b/third_party/googleapis/google/cloud/bigquery/v2/job.proto new file mode 100644 index 000000000..29aa0df31 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/job.proto @@ -0,0 +1,748 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/bigquery/v2/data_format_options.proto"; +import "google/cloud/bigquery/v2/dataset_reference.proto"; +import "google/cloud/bigquery/v2/error.proto"; +import "google/cloud/bigquery/v2/job_config.proto"; +import "google/cloud/bigquery/v2/job_creation_reason.proto"; +import "google/cloud/bigquery/v2/job_reference.proto"; +import "google/cloud/bigquery/v2/job_stats.proto"; +import "google/cloud/bigquery/v2/job_status.proto"; +import "google/cloud/bigquery/v2/query_parameter.proto"; +import "google/cloud/bigquery/v2/session_info.proto"; +import "google/cloud/bigquery/v2/table_schema.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "JobProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This is an experimental RPC service definition for the BigQuery +// Job Service. +// +// It should not be relied on for production use cases at this time. +service JobService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://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_write"; + + // Requests that a job be cancelled. This call will return immediately, and + // the client will need to poll for the job status to see if the cancel + // completed successfully. Cancelled jobs may still incur costs. + rpc CancelJob(CancelJobRequest) returns (JobCancelResponse) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/jobs/{job_id=*}/cancel" + }; + } + + // Returns information about a specific job. Job information is available for + // a six month period after creation. Requires that you're the person who ran + // the job, or have the Is Owner project role. + rpc GetJob(GetJobRequest) returns (Job) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/jobs/{job_id=*}" + }; + } + + // Starts a new asynchronous job. + // + // This API has two different kinds of endpoint URIs, as this method supports + // a variety of use cases. + // + // * The *Metadata* URI is used for most interactions, as it accepts the job + // configuration directly. + // * The *Upload* URI is ONLY for the case when you're sending both a load job + // configuration and a data stream together. In this case, the Upload URI + // accepts the job configuration and the data as two distinct multipart MIME + // parts. + rpc InsertJob(InsertJobRequest) returns (Job) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/jobs" + body: "job" + }; + } + + // Requests the deletion of the metadata of a job. This call returns when the + // job's metadata is deleted. + rpc DeleteJob(DeleteJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/bigquery/v2/projects/{project_id=*}/jobs/{job_id=*}/delete" + }; + } + + // Lists all jobs that you started in the specified project. Job information + // is available for a six month period after creation. The job list is sorted + // in reverse chronological order, by job creation time. Requires the Can View + // project role, or the Is Owner project role if you set the allUsers + // property. + rpc ListJobs(ListJobsRequest) returns (JobList) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/jobs" + }; + } + + // RPC to get the results of a query job. + rpc GetQueryResults(GetQueryResultsRequest) + returns (GetQueryResultsResponse) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/queries/{job_id=*}" + }; + } + + // Runs a BigQuery SQL query synchronously and returns query results if the + // query completes within a specified timeout. + rpc Query(PostQueryRequest) returns (QueryResponse) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/queries" + body: "query_request" + }; + } +} + +message Job { + // Output only. The type of the resource. + string kind = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A hash of this resource. + string etag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Opaque ID field of the job. + string id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A URL that can be used to access the resource again. + string self_link = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the user who ran the job. + string user_email = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Describes the job configuration. + JobConfiguration configuration = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Reference describing the unique-per-user name of the job. + JobReference job_reference = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Information about the job, including starting time and ending + // time of the job. + JobStatistics statistics = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of this job. Examine this value when polling an + // asynchronous job to see if the job is complete. + JobStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Full-projection-only] String representation of identity of + // requesting party. Populated for both first- and third-party identities. + // Only present for APIs that support third-party identities. + string principal_subject = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set, it provides the reason why a Job was created. + // If not set, it should be treated as the default: REQUESTED. + // + // This feature is not yet available. Jobs will always be created. + JobCreationReason job_creation_reason = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Describes format of a jobs cancellation request. +message CancelJobRequest { + // Required. Project ID of the job to cancel + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Job ID of the job to cancel + string job_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // The geographic location of the job. You must specify the location to run + // the job for the following scenarios: + // + // * If the location to run a job is not in the `us` or + // the `eu` multi-regional location + // * If the job's location is in a single region (for example, + // `us-central1`) + // + // For more information, see + // https://cloud.google.com/bigquery/docs/locations#specifying_your_location. + string location = 3; +} + +// Describes format of a jobs cancellation response. +message JobCancelResponse { + // The resource type of the response. + string kind = 1; + + // The final state of the job. + Job job = 2; +} + +// Describes format of a jobs get request. +message GetJobRequest { + // Required. Project ID of the requested job. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Job ID of the requested job. + string job_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // The geographic location of the job. You must specify the location to run + // the job for the following scenarios: + // + // * If the location to run a job is not in the `us` or + // the `eu` multi-regional location + // * If the job's location is in a single region (for example, + // `us-central1`) + // + // For more information, see + // https://cloud.google.com/bigquery/docs/locations#specifying_your_location. + string location = 3; +} + +// Describes format of a job insertion request. +message InsertJobRequest { + // Project ID of project that will be billed for the job. + string project_id = 1; + + // Jobs resource to insert. + Job job = 3; +} + +// Describes the format of a jobs deletion request. +message DeleteJobRequest { + // Required. Project ID of the job for which metadata is to be deleted. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Job ID of the job for which metadata is to be deleted. If this is + // a parent job which has child jobs, the metadata from all child jobs will be + // deleted as well. Direct deletion of the metadata of child jobs is not + // allowed. + string job_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // The geographic location of the job. Required. + // See details at: + // https://cloud.google.com/bigquery/docs/locations#specifying_your_location. + string location = 3; +} + +// Describes the format of the list jobs request. +message ListJobsRequest { + // Projection is used to control what job information is returned. + enum Projection { + option allow_alias = true; + + // Does not include the job configuration + minimal = 0; + + // Does not include the job configuration + MINIMAL = 0; + + // Includes all job data + full = 1; + + // Includes all job data + FULL = 1; + } + + // StateFilter allows filtration by job execution state. + enum StateFilter { + option allow_alias = true; + + // Finished jobs + done = 0; + + // Finished jobs + DONE = 0; + + // Pending jobs + pending = 1; + + // Pending jobs + PENDING = 1; + + // Running jobs + running = 2; + + // Running jobs. + RUNNING = 2; + } + + // Project ID of the jobs to list. + string project_id = 1; + + // Whether to display jobs owned by all users in the project. Default False. + bool all_users = 2; + + // The maximum number of results to return in a single response page. + // Leverage the page tokens to iterate through the entire collection. + google.protobuf.Int32Value max_results = 3; + + // Min value for job creation time, in milliseconds since the POSIX epoch. + // If set, only jobs created after or at this timestamp are returned. + uint64 min_creation_time = 4; + + // Max value for job creation time, in milliseconds since the POSIX epoch. + // If set, only jobs created before or at this timestamp are returned. + google.protobuf.UInt64Value max_creation_time = 5; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 6; + + // Restrict information returned to a set of selected fields + Projection projection = 7; + + // Filter for job state + repeated StateFilter state_filter = 8; + + // If set, show only child jobs of the specified parent. Otherwise, show all + // top-level jobs. + string parent_job_id = 9; +} + +// ListFormatJob is a partial projection of job information returned as part +// of a jobs.list response. +message ListFormatJob { + // Unique opaque ID of the job. + string id = 1; + + // The resource type. + string kind = 2; + + // Unique opaque ID of the job. + JobReference job_reference = 3; + + // Running state of the job. When the state is DONE, errorResult can be + // checked to determine whether the job succeeded or failed. + string state = 4; + + // A result object that will be present only if the job has failed. + ErrorProto error_result = 5; + + // Output only. Information about the job, including starting time and ending + // time of the job. + JobStatistics statistics = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Describes the job configuration. + JobConfiguration configuration = 7 [(google.api.field_behavior) = REQUIRED]; + + // [Full-projection-only] Describes the status of this job. + JobStatus status = 8; + + // [Full-projection-only] Email address of the user who ran the job. + string user_email = 9; + + // [Full-projection-only] String representation of identity of requesting + // party. Populated for both first- and third-party identities. Only present + // for APIs that support third-party identities. + string principal_subject = 10; +} + +// JobList is the response format for a jobs.list call. +message JobList { + // A hash of this page of results. + string etag = 1; + + // The resource type of the response. + string kind = 2; + + // A token to request the next page of results. + string next_page_token = 3; + + // List of jobs that were requested. + repeated ListFormatJob jobs = 4; + + // A list of skipped locations that were unreachable. For more information + // about BigQuery locations, see: + // https://cloud.google.com/bigquery/docs/locations. Example: "europe-west5" + repeated string unreachable = 5; +} + +// Request object of GetQueryResults. +message GetQueryResultsRequest { + // Required. Project ID of the query job. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Job ID of the query job. + string job_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Zero-based index of the starting row. + google.protobuf.UInt64Value start_index = 3; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 4; + + // Maximum number of results to read. + google.protobuf.UInt32Value max_results = 5; + + // Optional: Specifies the maximum amount of time, in milliseconds, that the + // client is willing to wait for the query to complete. By default, this limit + // is 10 seconds (10,000 milliseconds). If the query is complete, the + // jobComplete field in the response is true. If the query has not yet + // completed, jobComplete is false. + // + // You can request a longer timeout period in the timeoutMs field. However, + // the call is not guaranteed to wait for the specified timeout; it typically + // returns after around 200 seconds (200,000 milliseconds), even if the query + // is not complete. + // + // If jobComplete is false, you can continue to wait for the query to complete + // by calling the getQueryResults method until the jobComplete field in the + // getQueryResults response is true. + google.protobuf.UInt32Value timeout_ms = 6; + + // The geographic location of the job. You must specify the location to run + // the job for the following scenarios: + // + // * If the location to run a job is not in the `us` or + // the `eu` multi-regional location + // * If the job's location is in a single region (for example, + // `us-central1`) + // + // For more information, see + // https://cloud.google.com/bigquery/docs/locations#specifying_your_location. + string location = 7; + + // Optional. Output format adjustments. + DataFormatOptions format_options = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object of GetQueryResults. +message GetQueryResultsResponse { + // The resource type of the response. + string kind = 1; + + // A hash of this response. + string etag = 2; + + // The schema of the results. Present only when the query completes + // successfully. + TableSchema schema = 3; + + // Reference to the BigQuery Job that was created to run the query. This field + // will be present even if the original request timed out, in which case + // GetQueryResults can be used to read the results once the query has + // completed. Since this API only returns the first page of results, + // subsequent pages can be fetched via the same mechanism (GetQueryResults). + JobReference job_reference = 4; + + // The total number of rows in the complete query result set, which can be + // more than the number of rows in this single page of results. Present only + // when the query completes successfully. + google.protobuf.UInt64Value total_rows = 5; + + // A token used for paging results. When this token is non-empty, it + // indicates additional results are available. + string page_token = 6; + + // An object with as many results as can be contained within the maximum + // permitted reply size. To get any additional rows, you can call + // GetQueryResults and specify the jobReference returned above. Present only + // when the query completes successfully. + // + // The REST-based representation of this data leverages a series of + // JSON f,v objects for indicating fields and values. + repeated google.protobuf.Struct rows = 7; + + // The total number of bytes processed for this query. + google.protobuf.Int64Value total_bytes_processed = 8; + + // Whether the query has completed or not. If rows or totalRows are present, + // this will always be true. If this is false, totalRows will not be + // available. + google.protobuf.BoolValue job_complete = 9; + + // Output only. The first errors or warnings encountered during the running + // of the job. The final message includes the number of errors that caused the + // process to stop. Errors here do not necessarily mean that the job has + // completed or was unsuccessful. For more information about error messages, + // see [Error + // messages](https://cloud.google.com/bigquery/docs/error-messages). + repeated ErrorProto errors = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Whether the query result was fetched from the query cache. + google.protobuf.BoolValue cache_hit = 11; + + // Output only. The number of rows affected by a DML statement. Present only + // for DML statements INSERT, UPDATE or DELETE. + google.protobuf.Int64Value num_dml_affected_rows = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request format for the query request. +message PostQueryRequest { + // Required. Project ID of the query request. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The query request body. + QueryRequest query_request = 2; +} + +// Describes the format of the jobs.query request. +message QueryRequest { + // Job Creation Mode provides different options on job creation. + // + // This feature is not yet available. Jobs will always be created. + enum JobCreationMode { + // If unspecified JOB_CREATION_REQUIRED is the default. + JOB_CREATION_MODE_UNSPECIFIED = 0; + + // Default. Job creation is always required. + JOB_CREATION_REQUIRED = 1; + + // Job creation is optional. Returning immediate results is prioritized. + // BigQuery will automatically determine if a Job needs to be created. + // The conditions under which BigQuery can decide to not create a Job are + // subject to change. If Job creation is required, JOB_CREATION_REQUIRED + // mode should be used, which is the default. + JOB_CREATION_OPTIONAL = 2; + } + + // The resource type of the request. + string kind = 2; + + // Required. A query string to execute, using Google Standard SQL or legacy + // SQL syntax. Example: "SELECT COUNT(f1) FROM + // myProjectId.myDatasetId.myTableId". + string query = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The maximum number of rows of data to return per page of + // results. Setting this flag to a small value such as 1000 and then paging + // through results might improve reliability when the query result set is + // large. In addition to this limit, responses are also limited to 10 MB. By + // default, there is no maximum row count, and only the byte limit applies. + google.protobuf.UInt32Value max_results = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the default datasetId and projectId to assume for any + // unqualified table names in the query. If not set, all table names in the + // query string must be qualified in the format 'datasetId.tableId'. + DatasetReference default_dataset = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional: Specifies the maximum amount of time, in milliseconds, + // that the client is willing to wait for the query to complete. By default, + // this limit is 10 seconds (10,000 milliseconds). If the query is complete, + // the jobComplete field in the response is true. If the query has not yet + // completed, jobComplete is false. + // + // You can request a longer timeout period in the timeoutMs field. However, + // the call is not guaranteed to wait for the specified timeout; it typically + // returns after around 200 seconds (200,000 milliseconds), even if the query + // is not complete. + // + // If jobComplete is false, you can continue to wait for the query to complete + // by calling the getQueryResults method until the jobComplete field in the + // getQueryResults response is true. + google.protobuf.UInt32Value timeout_ms = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, BigQuery doesn't run the job. Instead, if the + // query is valid, BigQuery returns statistics about the job such as how many + // bytes would be processed. If the query is invalid, an error returns. The + // default value is false. + bool dry_run = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to look for the result in the query cache. The query + // cache is a best-effort cache that will be flushed whenever tables in the + // query are modified. The default value is true. + google.protobuf.BoolValue use_query_cache = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Specifies whether to use BigQuery's legacy SQL dialect for this query. The + // default value is true. If set to false, the query will use BigQuery's + // GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When + // useLegacySql is set to false, the value of flattenResults is ignored; query + // will be run as if flattenResults is false. + google.protobuf.BoolValue use_legacy_sql = 10; + + // GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters + // or to NAMED to use named (@myparam) query parameters in this query. + string parameter_mode = 11; + + // Query parameters for GoogleSQL queries. + repeated QueryParameter query_parameters = 12; + + // The geographic location where the job should run. See details at + // https://cloud.google.com/bigquery/docs/locations#specifying_your_location. + string location = 13; + + // Optional. Output format adjustments. + DataFormatOptions format_options = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Connection properties which can modify the query behavior. + repeated ConnectionProperty connection_properties = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels associated with this query. + // Labels can be used to organize and group query jobs. + // Label keys and values can be no longer than 63 characters, can only contain + // lowercase letters, numeric characters, underscores and dashes. + // International characters are allowed. Label keys must start with a letter + // and each label in the list must have a different key. + map labels = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Limits the bytes billed for this query. Queries with + // bytes billed above this limit will fail (without incurring a charge). + // If unspecified, the project default is used. + google.protobuf.Int64Value maximum_bytes_billed = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A unique user provided identifier to ensure idempotent behavior + // for queries. Note that this is different from the job_id. It has the + // following properties: + // + // 1. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is + // recommended. + // + // 2. Read only queries can ignore this token since they are nullipotent by + // definition. + // + // 3. For the purposes of idempotency ensured by the request_id, a request + // is considered duplicate of another only if they have the same request_id + // and are actually duplicates. When determining whether a request is a + // duplicate of another request, all parameters in the request that + // may affect the result are considered. For example, query, + // connection_properties, query_parameters, use_legacy_sql are parameters + // that affect the result and are considered when determining whether a + // request is a duplicate, but properties like timeout_ms don't + // affect the result and are thus not considered. Dry run query + // requests are never considered duplicate of another request. + // + // 4. When a duplicate mutating query request is detected, it returns: + // a. the results of the mutation if it completes successfully within + // the timeout. + // b. the running operation if it is still in progress at the end of the + // timeout. + // + // 5. Its lifetime is limited to 15 minutes. In other words, if two + // requests are sent with the same request_id, but more than 15 minutes + // apart, idempotency is not guaranteed. + string request_id = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, creates a new session using a randomly generated + // session_id. If false, runs query with an existing session_id passed in + // ConnectionProperty, otherwise runs query in non-session mode. + // + // The session location will be set to QueryRequest.location if it is present, + // otherwise it's set to the default location based on existing routing logic. + google.protobuf.BoolValue create_session = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If not set, jobs are always required. + // + // If set, the query request will follow the behavior described + // JobCreationMode. + // + // This feature is not yet available. Jobs will always be created. + JobCreationMode job_creation_mode = 22 + [(google.api.field_behavior) = OPTIONAL]; +} + +message QueryResponse { + // The resource type. + string kind = 1; + + // The schema of the results. Present only when the query completes + // successfully. + TableSchema schema = 2; + + // Reference to the Job that was created to run the query. This field will be + // present even if the original request timed out, in which case + // GetQueryResults can be used to read the results once the query has + // completed. Since this API only returns the first page of results, + // subsequent pages can be fetched via the same mechanism (GetQueryResults). + JobReference job_reference = 3; + + // Optional. Only relevant when a job_reference is present in the response. + // If job_reference is not present it will always be unset. When job_reference + // is present, this field should be interpreted as follows: + // + // If set, it will provide the reason of why a Job was created. + // + // If not set, it should be treated as the default: REQUESTED. + // + // This feature is not yet available. Jobs will always be created. + JobCreationReason job_creation_reason = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Query ID for the completed query. + // + // This ID will be auto-generated. + // + // This field is not yet available and it is currently not guaranteed to be + // populated. + string query_id = 14; + + // The total number of rows in the complete query result set, which can be + // more than the number of rows in this single page of results. + google.protobuf.UInt64Value total_rows = 4; + + // A token used for paging results. A non-empty token indicates that + // additional results are available. To see additional results, + // query the + // [`jobs.getQueryResults`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults) + // method. For more information, see [Paging through table + // data](https://cloud.google.com/bigquery/docs/paging-results). + string page_token = 5; + + // An object with as many results as can be contained within the maximum + // permitted reply size. To get any additional rows, you can call + // GetQueryResults and specify the jobReference returned above. + repeated google.protobuf.Struct rows = 6; + + // The total number of bytes processed for this query. If this query was a dry + // run, this is the number of bytes that would be processed if the query were + // run. + google.protobuf.Int64Value total_bytes_processed = 7; + + // Whether the query has completed or not. If rows or totalRows are present, + // this will always be true. If this is false, totalRows will not be + // available. + google.protobuf.BoolValue job_complete = 8; + + // Output only. The first errors or warnings encountered during the running of + // the job. The final message includes the number of errors that caused the + // process to stop. Errors here do not necessarily mean that the job has + // completed or was unsuccessful. For more information about error messages, + // see [Error + // messages](https://cloud.google.com/bigquery/docs/error-messages). + repeated ErrorProto errors = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Whether the query result was fetched from the query cache. + google.protobuf.BoolValue cache_hit = 10; + + // Output only. The number of rows affected by a DML statement. Present only + // for DML statements INSERT, UPDATE or DELETE. + google.protobuf.Int64Value num_dml_affected_rows = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information of the session if this job is part of one. + SessionInfo session_info = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Detailed statistics for DML statements INSERT, UPDATE, DELETE, + // MERGE or TRUNCATE. + DmlStats dml_stats = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/job_config.proto b/third_party/googleapis/google/cloud/bigquery/v2/job_config.proto new file mode 100644 index 000000000..10fe74e46 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/job_config.proto @@ -0,0 +1,814 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/bigquery/v2/clustering.proto"; +import "google/cloud/bigquery/v2/dataset_reference.proto"; +import "google/cloud/bigquery/v2/decimal_target_types.proto"; +import "google/cloud/bigquery/v2/encryption_config.proto"; +import "google/cloud/bigquery/v2/external_data_config.proto"; +import "google/cloud/bigquery/v2/file_set_specification_type.proto"; +import "google/cloud/bigquery/v2/hive_partitioning.proto"; +import "google/cloud/bigquery/v2/json_extension.proto"; +import "google/cloud/bigquery/v2/model_reference.proto"; +import "google/cloud/bigquery/v2/query_parameter.proto"; +import "google/cloud/bigquery/v2/range_partitioning.proto"; +import "google/cloud/bigquery/v2/system_variable.proto"; +import "google/cloud/bigquery/v2/table_reference.proto"; +import "google/cloud/bigquery/v2/table_schema.proto"; +import "google/cloud/bigquery/v2/time_partitioning.proto"; +import "google/cloud/bigquery/v2/udf_resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "JobConfigProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Properties for the destination table. +message DestinationTableProperties { + // Optional. Friendly name for the destination table. If the table already + // exists, it should be same as the existing friendly name. + google.protobuf.StringValue friendly_name = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The description for the destination table. + // This will only be used if the destination table is newly created. + // If the table already exists and a value different than the current + // description is provided, the job will fail. + google.protobuf.StringValue description = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels associated with this table. You can use these to + // organize and group your tables. This will only be used if the destination + // table is newly created. If the table already exists and labels are + // different than the current labels are provided, the job will fail. + map labels = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A connection-level property to customize query behavior. Under JDBC, these +// correspond directly to connection properties passed to the DriverManager. +// Under ODBC, these correspond to properties in the connection string. +// +// Currently supported connection properties: +// +// * **dataset_project_id**: represents the default project for datasets that +// are used in the query. Setting the +// system variable `@@dataset_project_id` achieves the same behavior. For +// more information about system variables, see: +// https://cloud.google.com/bigquery/docs/reference/system-variables +// +// * **time_zone**: represents the default timezone used to run the query. +// +// * **session_id**: associates the query with a given session. +// +// * **query_label**: associates the query with a given job label. If set, +// all subsequent queries in a script or session will have this label. For the +// format in which a you can specify a query label, see labels +// in the JobConfiguration resource type: +// https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfiguration +// +// * **service_account**: indicates the service account to use to run a +// continuous query. If set, the query job uses the service account to access +// Google Cloud resources. Service account access is bounded by the IAM +// permissions that you have granted to the service account. +// +// Additional properties are allowed, but ignored. Specifying multiple +// connection properties with the same key returns an error. +message ConnectionProperty { + // The key of the property to set. + string key = 1; + + // The value of the property to set. + string value = 2; +} + +// JobConfigurationQuery configures a BigQuery query job. +message JobConfigurationQuery { + // [Required] SQL query text to execute. The useLegacySql field can be used + // to indicate whether the query uses legacy SQL or GoogleSQL. + string query = 1; + + // Optional. Describes the table where the query results should be stored. + // This property must be set for large results that exceed the maximum + // response size. For queries that produce anonymous (cached) results, this + // field will be populated by BigQuery. + TableReference destination_table = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. You can specify external table definitions, which operate as + // ephemeral tables that can be queried. These definitions are configured + // using a JSON map, where the string key represents the table identifier, and + // the value is the corresponding external data configuration object. + map external_table_definitions = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Describes user-defined function resources used in the query. + repeated UserDefinedFunctionResource user_defined_function_resources = 4; + + // Optional. Specifies whether the job is allowed to create new tables. + // The following values are supported: + // + // * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the + // table. + // * CREATE_NEVER: The table must already exist. If it does not, + // a 'notFound' error is returned in the job result. + // + // The default value is CREATE_IF_NEEDED. + // Creation, truncation and append actions occur as one atomic update + // upon job completion. + string create_disposition = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the action that occurs if the destination table + // already exists. The following values are supported: + // + // * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the + // data, removes the constraints, and uses the schema from the query result. + // * WRITE_APPEND: If the table already exists, BigQuery appends the data to + // the table. + // * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' + // error is returned in the job result. + // + // The default value is WRITE_EMPTY. Each action is atomic and only occurs if + // BigQuery is able to complete the job successfully. Creation, truncation and + // append actions occur as one atomic update upon job completion. + string write_disposition = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the default dataset to use for unqualified + // table names in the query. This setting does not alter behavior of + // unqualified dataset names. Setting the system variable + // `@@dataset_id` achieves the same behavior. See + // https://cloud.google.com/bigquery/docs/reference/system-variables for more + // information on system variables. + DatasetReference default_dataset = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a priority for the query. Possible values include + // INTERACTIVE and BATCH. The default value is INTERACTIVE. + string priority = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true and query uses legacy SQL dialect, allows the query + // to produce arbitrarily large result tables at a slight cost in performance. + // Requires destinationTable to be set. + // For GoogleSQL queries, this flag is ignored and large results are + // always allowed. However, you must still set destinationTable when result + // size exceeds the allowed maximum response size. + google.protobuf.BoolValue allow_large_results = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to look for the result in the query cache. The query + // cache is a best-effort cache that will be flushed whenever tables in the + // query are modified. Moreover, the query cache is only available when a + // query does not have a destination table specified. The default value is + // true. + google.protobuf.BoolValue use_query_cache = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true and query uses legacy SQL dialect, flattens all nested + // and repeated fields in the query results. + // allowLargeResults must be true if this is set to false. + // For GoogleSQL queries, this flag is ignored and results are never + // flattened. + google.protobuf.BoolValue flatten_results = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Limits the bytes billed for this job. Queries that will have + // bytes billed beyond this limit will fail (without incurring a charge). + // If unspecified, this will be set to your project default. + google.protobuf.Int64Value maximum_bytes_billed = 14; + + // Optional. Specifies whether to use BigQuery's legacy SQL dialect for this + // query. The default value is true. If set to false, the query will use + // BigQuery's GoogleSQL: + // https://cloud.google.com/bigquery/sql-reference/ + // + // When useLegacySql is set to false, the value of flattenResults is ignored; + // query will be run as if flattenResults is false. + google.protobuf.BoolValue use_legacy_sql = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters + // or to NAMED to use named (@myparam) query parameters in this query. + string parameter_mode = 16; + + // Query parameters for GoogleSQL queries. + repeated QueryParameter query_parameters = 17; + + // Output only. System variables for GoogleSQL queries. A system variable is + // output if the variable is settable and its value differs from the system + // default. + // "@@" prefix is not included in the name of the System variables. + optional SystemVariables system_variables = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows the schema of the destination table to be updated as a side effect + // of the query job. Schema update options are supported in two cases: + // when writeDisposition is WRITE_APPEND; + // when writeDisposition is WRITE_TRUNCATE and the destination table is a + // partition of a table, specified by partition decorators. For normal tables, + // WRITE_TRUNCATE will always overwrite the schema. + // One or more of the following values are specified: + // + // * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. + // * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original + // schema to nullable. + repeated string schema_update_options = 18; + + // Time-based partitioning specification for the destination table. Only one + // of timePartitioning and rangePartitioning should be specified. + TimePartitioning time_partitioning = 19; + + // Range partitioning specification for the destination table. + // Only one of timePartitioning and rangePartitioning should be specified. + RangePartitioning range_partitioning = 22; + + // Clustering specification for the destination table. + Clustering clustering = 20; + + // Custom encryption configuration (e.g., Cloud KMS keys) + EncryptionConfiguration destination_encryption_configuration = 21; + + // Options controlling the execution of scripts. + ScriptOptions script_options = 24; + + // Connection properties which can modify the query behavior. + repeated ConnectionProperty connection_properties = 33; + + // If this property is true, the job creates a new session using a randomly + // generated session_id. To continue using a created session with + // subsequent queries, pass the existing session identifier as a + // `ConnectionProperty` value. The session identifier is returned as part of + // the `SessionInfo` message within the query statistics. + // + // The new session's location will be set to `Job.JobReference.location` if it + // is present, otherwise it's set to the default location based on existing + // routing logic. + google.protobuf.BoolValue create_session = 34; + + // Optional. Whether to run the query as continuous or a regular query. + // Continuous query is currently in experimental stage and not ready for + // general usage. + google.protobuf.BoolValue continuous = 36 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Options related to script execution. +message ScriptOptions { + // KeyResultStatementKind controls how the key result is determined. + enum KeyResultStatementKind { + // Default value. + KEY_RESULT_STATEMENT_KIND_UNSPECIFIED = 0; + + // The last result determines the key result. + LAST = 1; + + // The first SELECT statement determines the key result. + FIRST_SELECT = 2; + } + + // Timeout period for each statement in a script. + google.protobuf.Int64Value statement_timeout_ms = 1; + + // Limit on the number of bytes billed per statement. Exceeding this budget + // results in an error. + google.protobuf.Int64Value statement_byte_budget = 2; + + // Determines which statement in the script represents the "key result", + // used to populate the schema and query results of the script job. + // Default is LAST. + KeyResultStatementKind key_result_statement = 4; +} + +// JobConfigurationLoad contains the configuration properties for loading data +// into a destination table. +message JobConfigurationLoad { + // Indicates the character map used for column names. + enum ColumnNameCharacterMap { + // Unspecified column name character map. + COLUMN_NAME_CHARACTER_MAP_UNSPECIFIED = 0; + + // Support flexible column name and reject invalid column names. + STRICT = 1; + + // Support alphanumeric + underscore characters and names must start with a + // letter or underscore. Invalid column names will be normalized. + V1 = 2; + + // Support flexible column name. Invalid column names will be normalized. + V2 = 3; + } + + // [Required] The fully-qualified URIs that point to your data in Google + // Cloud. + // For Google Cloud Storage URIs: + // Each URI can contain one '*' wildcard character and it must come after + // the 'bucket' name. Size limits related to load jobs apply to external + // data sources. + // For Google Cloud Bigtable URIs: + // Exactly one URI can be specified and it has be a fully specified and + // valid HTTPS URL for a Google Cloud Bigtable table. + // For Google Cloud Datastore backups: + // Exactly one URI can be specified. Also, the '*' wildcard character is not + // allowed. + repeated string source_uris = 1; + + // Optional. Specifies how source URIs are interpreted for constructing the + // file set to load. By default, source URIs are expanded against the + // underlying storage. You can also specify manifest files to control how the + // file set is constructed. This option is only applicable to object storage + // systems. + FileSetSpecType file_set_spec_type = 49 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The schema for the destination table. The schema can be + // omitted if the destination table already exists, or if you're loading data + // from Google Cloud Datastore. + TableSchema schema = 2 [(google.api.field_behavior) = OPTIONAL]; + + // [Required] The destination table to load the data into. + TableReference destination_table = 3; + + // Optional. [Experimental] Properties with which to create the destination + // table if it is new. + DestinationTableProperties destination_table_properties = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the job is allowed to create new tables. + // The following values are supported: + // + // * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the + // table. + // * CREATE_NEVER: The table must already exist. If it does not, + // a 'notFound' error is returned in the job result. + // The default value is CREATE_IF_NEEDED. + // Creation, truncation and append actions occur as one atomic update + // upon job completion. + string create_disposition = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the action that occurs if the destination table + // already exists. The following values are supported: + // + // * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the + // data, removes the constraints and uses the schema from the load job. + // * WRITE_APPEND: If the table already exists, BigQuery appends the data to + // the table. + // * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' + // error is returned in the job result. + // + // The default value is WRITE_APPEND. + // Each action is atomic and only occurs if BigQuery is able to complete the + // job successfully. + // Creation, truncation and append actions occur as one atomic update + // upon job completion. + string write_disposition = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a string that represents a null value in a CSV file. + // For example, if you specify "\N", BigQuery interprets "\N" as a null value + // when loading a CSV file. + // The default value is the empty string. If you set this property to a custom + // value, BigQuery throws an error if an empty string is present for all data + // types except for STRING and BYTE. For STRING and BYTE columns, BigQuery + // interprets the empty string as an empty value. + google.protobuf.StringValue null_marker = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The separator character for fields in a CSV file. The separator + // is interpreted as a single byte. For files encoded in ISO-8859-1, any + // single character can be used as a separator. For files encoded in UTF-8, + // characters represented in decimal range 1-127 (U+0001-U+007F) can be used + // without any modification. UTF-8 characters encoded with multiple bytes + // (i.e. U+0080 and above) will have only the first byte used for separating + // fields. The remaining bytes will be treated as a part of the field. + // BigQuery also supports the escape sequence "\t" (U+0009) to specify a tab + // separator. The default value is comma (",", U+002C). + string field_delimiter = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of rows at the top of a CSV file that BigQuery will + // skip when loading the data. The default value is 0. This property is useful + // if you have header rows in the file that should be skipped. When autodetect + // is on, the behavior is the following: + // + // * skipLeadingRows unspecified - Autodetect tries to detect headers in the + // first row. If they are not detected, the row is read as data. Otherwise + // data is read starting from the second row. + // * skipLeadingRows is 0 - Instructs autodetect that there are no headers and + // data should be read starting from the first row. + // * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect + // headers in row N. If headers are not detected, row N is just skipped. + // Otherwise row N is used to extract column names for the detected schema. + google.protobuf.Int32Value skip_leading_rows = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The character encoding of the data. + // The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, + // and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after + // the raw, binary data has been split using the values of the `quote` and + // `fieldDelimiter` properties. + // + // If you don't specify an encoding, or if you specify a UTF-8 encoding when + // the CSV file is not UTF-8 encoded, BigQuery attempts to convert the data to + // UTF-8. Generally, your data loads successfully, but it may not match + // byte-for-byte what you expect. To avoid this, specify the correct encoding + // by using the `--encoding` flag. + // + // If BigQuery can't convert a character other than the ASCII `0` character, + // BigQuery converts the character to the standard Unicode replacement + // character: �. + string encoding = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value that is used to quote data sections in a CSV file. + // BigQuery converts the string to ISO-8859-1 encoding, and then uses the + // first byte of the encoded string to split the data in its raw, binary + // state. + // The default value is a double-quote ('"'). + // If your data does not contain quoted sections, set the property value to an + // empty string. + // If your data contains quoted newline characters, you must also set the + // allowQuotedNewlines property to true. + // To include the specific quote character within a quoted value, precede it + // with an additional matching quote character. For example, if you want to + // escape the default character ' " ', use ' "" '. + // @default " + google.protobuf.StringValue quote = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of bad records that BigQuery can ignore when + // running the job. If the number of bad records exceeds this value, an + // invalid error is returned in the job result. + // The default value is 0, which requires that all records are valid. + // This is only supported for CSV and NEWLINE_DELIMITED_JSON file formats. + google.protobuf.Int32Value max_bad_records = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Indicates if BigQuery should allow quoted data sections that contain + // newline characters in a CSV file. The default value is false. + google.protobuf.BoolValue allow_quoted_newlines = 15; + + // Optional. The format of the data files. + // For CSV files, specify "CSV". For datastore backups, + // specify "DATASTORE_BACKUP". For newline-delimited JSON, + // specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". + // For parquet, specify "PARQUET". For orc, specify "ORC". + // The default value is CSV. + string source_format = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Accept rows that are missing trailing optional columns. + // The missing values are treated as nulls. + // If false, records with missing trailing columns are treated as bad records, + // and if there are too many bad records, an invalid error is returned in the + // job result. + // The default value is false. + // Only applicable to CSV, ignored for other formats. + google.protobuf.BoolValue allow_jagged_rows = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates if BigQuery should allow extra values that are not + // represented in the table schema. + // If true, the extra values are ignored. + // If false, records with extra columns are treated as bad records, and if + // there are too many bad records, an invalid error is returned in the job + // result. The default value is false. + // The sourceFormat property determines what BigQuery treats as an extra + // value: + // CSV: Trailing columns + // JSON: Named values that don't match any column names in the table schema + // Avro, Parquet, ORC: Fields in the file schema that don't exist in the + // table schema. + google.protobuf.BoolValue ignore_unknown_values = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity + // properties to load into BigQuery from a Cloud Datastore backup. Property + // names are case sensitive and must be top-level properties. If no properties + // are specified, BigQuery loads all properties. If any named property isn't + // found in the Cloud Datastore backup, an invalid error is returned in the + // job result. + repeated string projection_fields = 19; + + // Optional. Indicates if we should automatically infer the options and + // schema for CSV and JSON sources. + google.protobuf.BoolValue autodetect = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Allows the schema of the destination table to be updated as a side effect + // of the load job if a schema is autodetected or supplied in the job + // configuration. + // Schema update options are supported in two cases: + // when writeDisposition is WRITE_APPEND; + // when writeDisposition is WRITE_TRUNCATE and the destination table is a + // partition of a table, specified by partition decorators. For normal tables, + // WRITE_TRUNCATE will always overwrite the schema. + // One or more of the following values are specified: + // + // * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. + // * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original + // schema to nullable. + repeated string schema_update_options = 21; + + // Time-based partitioning specification for the destination table. Only one + // of timePartitioning and rangePartitioning should be specified. + TimePartitioning time_partitioning = 22; + + // Range partitioning specification for the destination table. + // Only one of timePartitioning and rangePartitioning should be specified. + RangePartitioning range_partitioning = 26; + + // Clustering specification for the destination table. + Clustering clustering = 23; + + // Custom encryption configuration (e.g., Cloud KMS keys) + EncryptionConfiguration destination_encryption_configuration = 24; + + // Optional. If sourceFormat is set to "AVRO", indicates whether to interpret + // logical types as the corresponding BigQuery data type (for example, + // TIMESTAMP), instead of using the raw type (for example, INTEGER). + google.protobuf.BoolValue use_avro_logical_types = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The user can provide a reference file with the reader schema. + // This file is only loaded if it is part of source URIs, but is not loaded + // otherwise. It is enabled for the following formats: AVRO, PARQUET, ORC. + google.protobuf.StringValue reference_file_schema_uri = 45 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set, configures hive partitioning support. + // Not all storage formats support hive partitioning -- requesting hive + // partitioning on an unsupported format will lead to an error, as will + // providing an invalid specification. + HivePartitioningOptions hive_partitioning_options = 37 + [(google.api.field_behavior) = OPTIONAL]; + + // Defines the list of possible SQL data types to which the source decimal + // values are converted. This list and the precision and the scale parameters + // of the decimal field determine the target type. In the order of NUMERIC, + // BIGNUMERIC, and STRING, a + // type is picked if it is in the specified list and if it supports the + // precision and the scale. STRING supports all precision and scale values. + // If none of the listed types supports the precision and the scale, the type + // supporting the widest range in the specified list is picked, and if a value + // exceeds the supported range when reading the data, an error will be thrown. + // + // Example: Suppose the value of this field is ["NUMERIC", "BIGNUMERIC"]. + // If (precision,scale) is: + // + // * (38,9) -> NUMERIC; + // * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); + // * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); + // * (76,38) -> BIGNUMERIC; + // * (77,38) -> BIGNUMERIC (error if value exeeds supported range). + // + // This field cannot contain duplicate types. The order of the types in this + // field is ignored. For example, ["BIGNUMERIC", "NUMERIC"] is the same as + // ["NUMERIC", "BIGNUMERIC"] and NUMERIC always takes precedence over + // BIGNUMERIC. + // + // Defaults to ["NUMERIC", "STRING"] for ORC and ["NUMERIC"] for the other + // file formats. + repeated DecimalTargetType decimal_target_types = 39; + + // Optional. Load option to be used together with source_format + // newline-delimited JSON to indicate that a variant of JSON is being loaded. + // To load newline-delimited GeoJSON, specify GEOJSON (and source_format must + // be set to NEWLINE_DELIMITED_JSON). + JsonExtension json_extension = 41 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional properties to set if sourceFormat is set to PARQUET. + ParquetOptions parquet_options = 42 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When sourceFormat is set to "CSV", this indicates whether the + // embedded ASCII control characters (the first 32 characters in the + // ASCII-table, from + // '\x00' to '\x1F') are preserved. + google.protobuf.BoolValue preserve_ascii_control_characters = 44 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Connection properties which can modify the load job behavior. + // Currently, only the 'session_id' connection property is supported, and is + // used to resolve _SESSION appearing as the dataset id. + repeated ConnectionProperty connection_properties = 46 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this property is true, the job creates a new session using a + // randomly generated session_id. To continue using a created session with + // subsequent queries, pass the existing session identifier as a + // `ConnectionProperty` value. The session identifier is returned as part of + // the `SessionInfo` message within the query statistics. + // + // The new session's location will be set to `Job.JobReference.location` if it + // is present, otherwise it's set to the default location based on existing + // routing logic. + google.protobuf.BoolValue create_session = 47 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Character map supported for column names in CSV/Parquet loads. + // Defaults to STRICT and can be overridden by Project Config Service. Using + // this option with unsupporting load formats will result in an error. + ColumnNameCharacterMap column_name_character_map = 50 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Experimental] Configures the load job to copy files directly to + // the destination BigLake managed table, bypassing file content reading and + // rewriting. + // + // Copying files only is supported when all the following are true: + // + // * `source_uris` are located in the same Cloud Storage location as the + // destination table's `storage_uri` location. + // * `source_format` is `PARQUET`. + // * `destination_table` is an existing BigLake managed table. The table's + // schema does not have flexible column names. The table's columns do not + // have type parameters other than precision and scale. + // * No options other than the above are specified. + google.protobuf.BoolValue copy_files_only = 51 + [(google.api.field_behavior) = OPTIONAL]; +} + +// JobConfigurationTableCopy configures a job that copies data from one table +// to another. +// For more information on copying tables, see [Copy a +// table](https://cloud.google.com/bigquery/docs/managing-tables#copy-table). +message JobConfigurationTableCopy { + // Indicates different operation types supported in table copy job. + enum OperationType { + // Unspecified operation type. + OPERATION_TYPE_UNSPECIFIED = 0; + + // The source and destination table have the same table type. + COPY = 1; + + // The source table type is TABLE and + // the destination table type is SNAPSHOT. + SNAPSHOT = 2; + + // The source table type is SNAPSHOT and + // the destination table type is TABLE. + RESTORE = 3; + + // The source and destination table have the same table type, + // but only bill for unique data. + CLONE = 4; + } + + // [Pick one] Source table to copy. + TableReference source_table = 1; + + // [Pick one] Source tables to copy. + repeated TableReference source_tables = 2; + + // [Required] The destination table. + TableReference destination_table = 3; + + // Optional. Specifies whether the job is allowed to create new tables. + // The following values are supported: + // + // * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the + // table. + // * CREATE_NEVER: The table must already exist. If it does not, + // a 'notFound' error is returned in the job result. + // + // The default value is CREATE_IF_NEEDED. + // Creation, truncation and append actions occur as one atomic update + // upon job completion. + string create_disposition = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the action that occurs if the destination table + // already exists. The following values are supported: + // + // * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the + // table data and uses the schema and table constraints from the source table. + // * WRITE_APPEND: If the table already exists, BigQuery appends the data to + // the table. + // * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' + // error is returned in the job result. + // + // The default value is WRITE_EMPTY. Each action is atomic and only occurs if + // BigQuery is able to complete the job successfully. Creation, truncation and + // append actions occur as one atomic update upon job completion. + string write_disposition = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Custom encryption configuration (e.g., Cloud KMS keys). + EncryptionConfiguration destination_encryption_configuration = 6; + + // Optional. Supported operation types in table copy job. + OperationType operation_type = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The time when the destination table expires. Expired tables will + // be deleted and their storage reclaimed. + google.protobuf.Timestamp destination_expiration_time = 9 + [(google.api.field_behavior) = OPTIONAL]; +} + +// JobConfigurationExtract configures a job that exports data from a BigQuery +// table into Google Cloud Storage. +message JobConfigurationExtract { + // Options related to model extraction. + message ModelExtractOptions { + // The 1-based ID of the trial to be exported from a hyperparameter tuning + // model. If not specified, the trial with id = + // [Model](/bigquery/docs/reference/rest/v2/models#resource:-model).defaultTrialId + // is exported. This field is ignored for models not trained with + // hyperparameter tuning. + google.protobuf.Int64Value trial_id = 1; + } + + // Required. Source reference for the export. + oneof source { + // A reference to the table being exported. + TableReference source_table = 1; + + // A reference to the model being exported. + ModelReference source_model = 9; + } + + // [Pick one] A list of fully-qualified Google Cloud Storage URIs where the + // extracted table should be written. + repeated string destination_uris = 3; + + // Optional. Whether to print out a header row in the results. + // Default is true. Not applicable when extracting models. + google.protobuf.BoolValue print_header = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When extracting data in CSV format, this defines the + // delimiter to use between fields in the exported data. + // Default is ','. Not applicable when extracting models. + string field_delimiter = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The exported file format. Possible values include CSV, + // NEWLINE_DELIMITED_JSON, PARQUET, or AVRO for tables and ML_TF_SAVED_MODEL + // or ML_XGBOOST_BOOSTER for models. The default value for tables is CSV. + // Tables with nested or repeated fields cannot be exported as CSV. The + // default value for models is ML_TF_SAVED_MODEL. + string destination_format = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The compression type to use for exported files. Possible values + // include DEFLATE, GZIP, NONE, SNAPPY, and ZSTD. The default value is NONE. + // Not all compression formats are support for all file formats. DEFLATE is + // only supported for Avro. ZSTD is only supported for Parquet. Not applicable + // when extracting models. + string compression = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Whether to use logical types when extracting to AVRO format. Not applicable + // when extracting models. + google.protobuf.BoolValue use_avro_logical_types = 13; + + // Optional. Model extract options only applicable when extracting models. + ModelExtractOptions model_extract_options = 14 + [(google.api.field_behavior) = OPTIONAL]; +} + +message JobConfiguration { + // Output only. The type of the job. Can be QUERY, LOAD, EXTRACT, COPY or + // UNKNOWN. + string job_type = 8; + + // [Pick one] Configures a query job. + JobConfigurationQuery query = 1; + + // [Pick one] Configures a load job. + JobConfigurationLoad load = 2; + + // [Pick one] Copies a table. + JobConfigurationTableCopy copy = 3; + + // [Pick one] Configures an extract job. + JobConfigurationExtract extract = 4; + + // Optional. If set, don't actually run this job. A valid query will return + // a mostly empty response with some processing statistics, while an invalid + // query will return the same error it would if it wasn't a dry run. Behavior + // of non-query jobs is undefined. + google.protobuf.BoolValue dry_run = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Job timeout in milliseconds. If this time limit is exceeded, + // BigQuery will attempt to stop a longer job, but may not always succeed in + // canceling it before the job completes. For example, a job that takes more + // than 60 seconds to complete has a better chance of being stopped than a job + // that takes 10 seconds to complete. + google.protobuf.Int64Value job_timeout_ms = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // The labels associated with this job. You can use these to organize and + // group your jobs. + // Label keys and values can be no longer than 63 characters, can only contain + // lowercase letters, numeric characters, underscores and dashes. + // International characters are allowed. Label values are optional. Label + // keys must start with a letter and each label in the list must have a + // different key. + map labels = 7; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/job_creation_reason.proto b/third_party/googleapis/google/cloud/bigquery/v2/job_creation_reason.proto new file mode 100644 index 000000000..5f1b3fcb5 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/job_creation_reason.proto @@ -0,0 +1,60 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "JobCreationReasonProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Reason about why a Job was created from a +// [`jobs.query`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query) +// method when used with `JOB_CREATION_OPTIONAL` Job creation mode. +// +// For +// [`jobs.insert`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert) +// method calls it will always be `REQUESTED`. +// +// This feature is not yet available. Jobs will always be created. +message JobCreationReason { + // Indicates the high level reason why a job was created. + enum Code { + // Reason is not specified. + CODE_UNSPECIFIED = 0; + + // Job creation was requested. + REQUESTED = 1; + + // The query request ran beyond a system defined timeout specified by the + // [timeoutMs field in the + // QueryRequest](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest). + // As a result it was considered a long running operation for which a job + // was created. + LONG_RUNNING = 2; + + // The results from the query cannot fit in the response. + LARGE_RESULTS = 3; + + // BigQuery has determined that the query needs to be executed as a Job. + OTHER = 4; + } + + // Output only. Specifies the high level reason why a Job was created. + Code code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/job_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/job_reference.proto new file mode 100644 index 000000000..d7f3ece6f --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/job_reference.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "JobReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// A job reference is a fully qualified identifier for referring to a job. +message JobReference { + // Required. The ID of the project containing this job. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the job. The ID must contain only letters (a-z, A-Z), + // numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 + // characters. + string job_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The geographic location of the job. The default value is US. + // + // For more information about BigQuery locations, see: + // https://cloud.google.com/bigquery/docs/locations + google.protobuf.StringValue location = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // This field should not be used. + repeated string location_alternative = 5; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/job_stats.proto b/third_party/googleapis/google/cloud/bigquery/v2/job_stats.proto new file mode 100644 index 000000000..9aba71538 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/job_stats.proto @@ -0,0 +1,1414 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/bigquery/v2/dataset_reference.proto"; +import "google/cloud/bigquery/v2/model.proto"; +import "google/cloud/bigquery/v2/query_parameter.proto"; +import "google/cloud/bigquery/v2/routine_reference.proto"; +import "google/cloud/bigquery/v2/row_access_policy_reference.proto"; +import "google/cloud/bigquery/v2/session_info.proto"; +import "google/cloud/bigquery/v2/table_reference.proto"; +import "google/cloud/bigquery/v2/table_schema.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "JobStatsProto"; +option java_package = "com.google.cloud.bigquery.v2"; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; +option (google.api.resource_definition) = { + type: "storage.googleapis.com/Bucket" + pattern: "*" +}; + +// An operation within a stage. +message ExplainQueryStep { + // Machine-readable operation type. + string kind = 1; + + // Human-readable description of the step(s). + repeated string substeps = 2; +} + +// A single stage of query execution. +message ExplainQueryStage { + // Indicates the type of compute mode. + enum ComputeMode { + // ComputeMode type not specified. + COMPUTE_MODE_UNSPECIFIED = 0; + + // This stage was processed using BigQuery slots. + BIGQUERY = 1; + + // This stage was processed using BI Engine compute. + BI_ENGINE = 2; + } + + // Human-readable name for the stage. + string name = 1; + + // Unique ID for the stage within the plan. + google.protobuf.Int64Value id = 2; + + // Stage start time represented as milliseconds since the epoch. + int64 start_ms = 3; + + // Stage end time represented as milliseconds since the epoch. + int64 end_ms = 4; + + // IDs for stages that are inputs to this stage. + repeated int64 input_stages = 5; + + // Relative amount of time the average shard spent waiting to be + // scheduled. + google.protobuf.DoubleValue wait_ratio_avg = 6; + + // Milliseconds the average shard spent waiting to be scheduled. + google.protobuf.Int64Value wait_ms_avg = 7; + + // Relative amount of time the slowest shard spent waiting to be + // scheduled. + google.protobuf.DoubleValue wait_ratio_max = 8; + + // Milliseconds the slowest shard spent waiting to be scheduled. + google.protobuf.Int64Value wait_ms_max = 9; + + // Relative amount of time the average shard spent reading input. + google.protobuf.DoubleValue read_ratio_avg = 10; + + // Milliseconds the average shard spent reading input. + google.protobuf.Int64Value read_ms_avg = 11; + + // Relative amount of time the slowest shard spent reading input. + google.protobuf.DoubleValue read_ratio_max = 12; + + // Milliseconds the slowest shard spent reading input. + google.protobuf.Int64Value read_ms_max = 13; + + // Relative amount of time the average shard spent on CPU-bound tasks. + google.protobuf.DoubleValue compute_ratio_avg = 14; + + // Milliseconds the average shard spent on CPU-bound tasks. + google.protobuf.Int64Value compute_ms_avg = 15; + + // Relative amount of time the slowest shard spent on CPU-bound tasks. + google.protobuf.DoubleValue compute_ratio_max = 16; + + // Milliseconds the slowest shard spent on CPU-bound tasks. + google.protobuf.Int64Value compute_ms_max = 17; + + // Relative amount of time the average shard spent on writing output. + google.protobuf.DoubleValue write_ratio_avg = 18; + + // Milliseconds the average shard spent on writing output. + google.protobuf.Int64Value write_ms_avg = 19; + + // Relative amount of time the slowest shard spent on writing output. + google.protobuf.DoubleValue write_ratio_max = 20; + + // Milliseconds the slowest shard spent on writing output. + google.protobuf.Int64Value write_ms_max = 21; + + // Total number of bytes written to shuffle. + google.protobuf.Int64Value shuffle_output_bytes = 22; + + // Total number of bytes written to shuffle and spilled to disk. + google.protobuf.Int64Value shuffle_output_bytes_spilled = 23; + + // Number of records read into the stage. + google.protobuf.Int64Value records_read = 24; + + // Number of records written by the stage. + google.protobuf.Int64Value records_written = 25; + + // Number of parallel input segments to be processed + google.protobuf.Int64Value parallel_inputs = 26; + + // Number of parallel input segments completed. + google.protobuf.Int64Value completed_parallel_inputs = 27; + + // Current status for this stage. + string status = 28; + + // List of operations within the stage in dependency order (approximately + // chronological). + repeated ExplainQueryStep steps = 29; + + // Slot-milliseconds used by the stage. + google.protobuf.Int64Value slot_ms = 30; + + // Output only. Compute mode for this stage. + ComputeMode compute_mode = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Summary of the state of query execution at a given time. +message QueryTimelineSample { + // Milliseconds elapsed since the start of query execution. + google.protobuf.Int64Value elapsed_ms = 1; + + // Cumulative slot-ms consumed by the query. + google.protobuf.Int64Value total_slot_ms = 2; + + // Total units of work remaining for the query. This number can be revised + // (increased or decreased) while the query is running. + google.protobuf.Int64Value pending_units = 3; + + // Total parallel units of work completed by this query. + google.protobuf.Int64Value completed_units = 4; + + // Total number of active workers. This does not correspond directly to + // slot usage. This is the largest value observed since the last sample. + google.protobuf.Int64Value active_units = 5; + + // Units of work that can be scheduled immediately. Providing additional slots + // for these units of work will accelerate the query, if no other query in + // the reservation needs additional slots. + google.protobuf.Int64Value estimated_runnable_units = 7; +} + +// The external service cost is a portion of the total cost, these costs are not +// additive with total_bytes_billed. Moreover, this field only track external +// service costs that will show up as BigQuery costs (e.g. training BigQuery +// ML job with google cloud CAIP or Automl Tables services), not other costs +// which may be accrued by running the query (e.g. reading from Bigtable or +// Cloud Storage). The external service costs with different billing sku (e.g. +// CAIP job is charged based on VM usage) are converted to BigQuery +// billed_bytes and slot_ms with equivalent amount of US dollars. Services may +// not directly correlate to these metrics, but these are the equivalents for +// billing purposes. +// Output only. +message ExternalServiceCost { + // External service name. + string external_service = 1; + + // External service cost in terms of bigquery bytes processed. + google.protobuf.Int64Value bytes_processed = 2; + + // External service cost in terms of bigquery bytes billed. + google.protobuf.Int64Value bytes_billed = 3; + + // External service cost in terms of bigquery slot milliseconds. + google.protobuf.Int64Value slot_ms = 4; + + // Non-preemptable reserved slots used for external job. + // For example, reserved slots for Cloua AI Platform job are the VM usages + // converted to BigQuery slot with equivalent mount of price. + int64 reserved_slot_count = 5; +} + +// Statistics for the EXPORT DATA statement as part of Query Job. EXTRACT +// JOB statistics are populated in JobStatistics4. +message ExportDataStatistics { + // Number of destination files generated in case of EXPORT DATA + // statement only. + google.protobuf.Int64Value file_count = 1; + + // [Alpha] Number of destination rows generated in case of EXPORT DATA + // statement only. + google.protobuf.Int64Value row_count = 2; +} + +// Reason why BI Engine didn't accelerate the query (or sub-query). +message BiEngineReason { + // Indicates the high-level reason for no/partial acceleration + enum Code { + // BiEngineReason not specified. + CODE_UNSPECIFIED = 0; + + // No reservation available for BI Engine acceleration. + NO_RESERVATION = 1; + + // Not enough memory available for BI Engine acceleration. + INSUFFICIENT_RESERVATION = 2; + + // This particular SQL text is not supported for acceleration by BI Engine. + UNSUPPORTED_SQL_TEXT = 4; + + // Input too large for acceleration by BI Engine. + INPUT_TOO_LARGE = 5; + + // Catch-all code for all other cases for partial or disabled acceleration. + OTHER_REASON = 6; + + // One or more tables were not eligible for BI Engine acceleration. + TABLE_EXCLUDED = 7; + } + + // Output only. High-level BI Engine reason for partial or disabled + // acceleration + Code code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Free form human-readable reason for partial or disabled + // acceleration. + string message = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for a BI Engine specific query. +// Populated as part of JobStatistics2 +message BiEngineStatistics { + // Indicates the type of BI Engine acceleration. + enum BiEngineMode { + // BiEngineMode type not specified. + ACCELERATION_MODE_UNSPECIFIED = 0; + + // BI Engine disabled the acceleration. bi_engine_reasons + // specifies a more detailed reason. + DISABLED = 1; + + // Part of the query was accelerated using BI Engine. + // See bi_engine_reasons for why parts of the query were not + // accelerated. + PARTIAL = 2; + + // All of the query was accelerated using BI Engine. + FULL = 3; + } + + // Indicates the type of BI Engine acceleration. + enum BiEngineAccelerationMode { + // BiEngineMode type not specified. + BI_ENGINE_ACCELERATION_MODE_UNSPECIFIED = 0; + + // BI Engine acceleration was attempted but disabled. bi_engine_reasons + // specifies a more detailed reason. + BI_ENGINE_DISABLED = 1; + + // Some inputs were accelerated using BI Engine. + // See bi_engine_reasons for why parts of the query were not + // accelerated. + PARTIAL_INPUT = 2; + + // All of the query inputs were accelerated using BI Engine. + FULL_INPUT = 3; + + // All of the query was accelerated using BI Engine. + FULL_QUERY = 4; + } + + // Output only. Specifies which mode of BI Engine acceleration was performed + // (if any). + BiEngineMode bi_engine_mode = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Specifies which mode of BI Engine acceleration was performed + // (if any). + BiEngineAccelerationMode acceleration_mode = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // In case of DISABLED or PARTIAL bi_engine_mode, these contain the + // explanatory reasons as to why BI Engine could not accelerate. + // In case the full query was accelerated, this field is not populated. + repeated BiEngineReason bi_engine_reasons = 2; +} + +// Reason about why no search index was used in the search query (or +// sub-query). +message IndexUnusedReason { + // Indicates the high-level reason for the scenario when no search index was + // used. + enum Code { + // Code not specified. + CODE_UNSPECIFIED = 0; + + // Indicates the search index configuration has not been created. + INDEX_CONFIG_NOT_AVAILABLE = 1; + + // Indicates the search index creation has not been completed. + PENDING_INDEX_CREATION = 2; + + // Indicates the base table has been truncated (rows have been removed + // from table with TRUNCATE TABLE statement) since the last time the search + // index was refreshed. + BASE_TABLE_TRUNCATED = 3; + + // Indicates the search index configuration has been changed since the last + // time the search index was refreshed. + INDEX_CONFIG_MODIFIED = 4; + + // Indicates the search query accesses data at a timestamp before the last + // time the search index was refreshed. + TIME_TRAVEL_QUERY = 5; + + // Indicates the usage of search index will not contribute to any pruning + // improvement for the search function, e.g. when the search predicate is in + // a disjunction with other non-search predicates. + NO_PRUNING_POWER = 6; + + // Indicates the search index does not cover all fields in the search + // function. + UNINDEXED_SEARCH_FIELDS = 7; + + // Indicates the search index does not support the given search query + // pattern. + UNSUPPORTED_SEARCH_PATTERN = 8; + + // Indicates the query has been optimized by using a materialized view. + OPTIMIZED_WITH_MATERIALIZED_VIEW = 9; + + // Indicates the query has been secured by data masking, and thus search + // indexes are not applicable. + SECURED_BY_DATA_MASKING = 11; + + // Indicates that the search index and the search function call do not + // have the same text analyzer. + MISMATCHED_TEXT_ANALYZER = 12; + + // Indicates the base table is too small (below a certain threshold). + // The index does not provide noticeable search performance gains + // when the base table is too small. + BASE_TABLE_TOO_SMALL = 13; + + // Indicates that the total size of indexed base tables in your organization + // exceeds your region's limit and the index is not used in the query. To + // index larger base tables, you can + // use + // your own reservation for index-management jobs. + BASE_TABLE_TOO_LARGE = 14; + + // Indicates that the estimated performance gain from using the search index + // is too low for the given search query. + ESTIMATED_PERFORMANCE_GAIN_TOO_LOW = 15; + + // Indicates that search indexes can not be used for search query with + // STANDARD edition. + NOT_SUPPORTED_IN_STANDARD_EDITION = 17; + + // Indicates that an option in the search function that cannot make use of + // the index has been selected. + INDEX_SUPPRESSED_BY_FUNCTION_OPTION = 18; + + // Indicates that the query was cached, and thus the search index was not + // used. + QUERY_CACHE_HIT = 19; + + // Indicates an internal error that causes the search index to be unused. + INTERNAL_ERROR = 10; + + // Indicates that the reason search indexes cannot be used in the query is + // not covered by any of the other IndexUnusedReason options. + OTHER_REASON = 16; + } + + // Specifies the high-level reason for the scenario when no search index was + // used. + optional Code code = 1; + + // Free form human-readable reason for the scenario when no search index was + // used. + optional string message = 2; + + // Specifies the base table involved in the reason that no search index was + // used. + optional TableReference base_table = 3; + + // Specifies the name of the unused search index, if available. + optional string index_name = 4; +} + +// Statistics for a search query. +// Populated as part of JobStatistics2. +message SearchStatistics { + // Indicates the type of search index usage in the entire search query. + enum IndexUsageMode { + // Index usage mode not specified. + INDEX_USAGE_MODE_UNSPECIFIED = 0; + + // No search indexes were used in the search query. See + // [`indexUnusedReasons`] + // (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) + // for detailed reasons. + UNUSED = 1; + + // Part of the search query used search indexes. See [`indexUnusedReasons`] + // (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) + // for why other parts of the query did not use search indexes. + PARTIALLY_USED = 2; + + // The entire search query used search indexes. + FULLY_USED = 4; + } + + // Specifies the index usage mode for the query. + IndexUsageMode index_usage_mode = 1; + + // When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains + // why indexes were not used in all or part of the search query. If + // `indexUsageMode` is `FULLY_USED`, this field is not populated. + repeated IndexUnusedReason index_unused_reasons = 2; +} + +// Statistics for a vector search query. +// Populated as part of JobStatistics2. +message VectorSearchStatistics { + // Indicates the type of vector index usage in the entire vector search query. + enum IndexUsageMode { + // Index usage mode not specified. + INDEX_USAGE_MODE_UNSPECIFIED = 0; + + // No vector indexes were used in the vector search query. See + // [`indexUnusedReasons`] + // (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) + // for detailed reasons. + UNUSED = 1; + + // Part of the vector search query used vector indexes. See + // [`indexUnusedReasons`] + // (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) + // for why other parts of the query did not use vector indexes. + PARTIALLY_USED = 2; + + // The entire vector search query used vector indexes. + FULLY_USED = 4; + } + + // Specifies the index usage mode for the query. + IndexUsageMode index_usage_mode = 1; + + // When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains + // why indexes were not used in all or part of the vector search query. If + // `indexUsageMode` is `FULLY_USED`, this field is not populated. + repeated IndexUnusedReason index_unused_reasons = 2; +} + +// Query optimization information for a QUERY job. +message QueryInfo { + // Output only. Information about query optimizations. + google.protobuf.Struct optimization_details = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for a LOAD query. +message LoadQueryStatistics { + // Output only. Number of source files in a LOAD query. + google.protobuf.Int64Value input_files = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of bytes of source data in a LOAD query. + google.protobuf.Int64Value input_file_bytes = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of rows imported in a LOAD query. + // Note that while a LOAD query is in the running state, this value may + // change. + google.protobuf.Int64Value output_rows = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size of the loaded data in bytes. Note that while a LOAD query + // is in the running state, this value may change. + google.protobuf.Int64Value output_bytes = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of bad records encountered while processing a LOAD + // query. Note that if the job has failed because of more bad records + // encountered than the maximum allowed in the load job configuration, then + // this number can be less than the total number of bad records present in the + // input data. + google.protobuf.Int64Value bad_records = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for a query job. +message JobStatistics2 { + // Output only. Describes execution plan for the query. + repeated ExplainQueryStage query_plan = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The original estimate of bytes processed for the job. + google.protobuf.Int64Value estimated_bytes_processed = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Describes a timeline of job execution. + repeated QueryTimelineSample timeline = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of partitions processed from all partitioned + // tables referenced in the job. + google.protobuf.Int64Value total_partitions_processed = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total bytes processed for the job. + google.protobuf.Int64Value total_bytes_processed = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For dry-run jobs, totalBytesProcessed is an estimate and this + // field specifies the accuracy of the estimate. Possible values can be: + // UNKNOWN: accuracy of the estimate is unknown. + // PRECISE: estimate is precise. + // LOWER_BOUND: estimate is lower bound of what the query would cost. + // UPPER_BOUND: estimate is upper bound of what the query would cost. + string total_bytes_processed_accuracy = 21 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If the project is configured to use on-demand pricing, + // then this field contains the total bytes billed for the job. + // If the project is configured to use flat-rate pricing, then you are + // not billed for bytes and this field is informational only. + google.protobuf.Int64Value total_bytes_billed = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Billing tier for the job. This is a BigQuery-specific concept + // which is not related to the Google Cloud notion of "free tier". The value + // here is a measure of the query's resource consumption relative to the + // amount of data scanned. For on-demand queries, the limit is 100, and all + // queries within this limit are billed at the standard on-demand rates. + // On-demand queries that exceed this limit will fail with a + // billingTierLimitExceeded error. + google.protobuf.Int32Value billing_tier = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Slot-milliseconds for the job. + google.protobuf.Int64Value total_slot_ms = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the query result was fetched from the query cache. + google.protobuf.BoolValue cache_hit = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Referenced tables for the job. Queries that reference more + // than 50 tables will not have a complete list. + repeated TableReference referenced_tables = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Referenced routines for the job. + repeated RoutineReference referenced_routines = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The schema of the results. Present only for successful dry + // run of non-legacy SQL queries. + TableSchema schema = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of rows affected by a DML statement. Present + // only for DML statements INSERT, UPDATE or DELETE. + google.protobuf.Int64Value num_dml_affected_rows = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Detailed statistics for DML statements INSERT, UPDATE, DELETE, + // MERGE or TRUNCATE. + DmlStats dml_stats = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. GoogleSQL only: list of undeclared query + // parameters detected during a dry run validation. + repeated QueryParameter undeclared_query_parameters = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of query statement, if valid. + // Possible values: + // + // * `SELECT`: + // [`SELECT`](/bigquery/docs/reference/standard-sql/query-syntax#select_list) + // statement. + // * `ASSERT`: + // [`ASSERT`](/bigquery/docs/reference/standard-sql/debugging-statements#assert) + // statement. + // * `INSERT`: + // [`INSERT`](/bigquery/docs/reference/standard-sql/dml-syntax#insert_statement) + // statement. + // * `UPDATE`: + // [`UPDATE`](/bigquery/docs/reference/standard-sql/query-syntax#update_statement) + // statement. + // * `DELETE`: + // [`DELETE`](/bigquery/docs/reference/standard-sql/data-manipulation-language) + // statement. + // * `MERGE`: + // [`MERGE`](/bigquery/docs/reference/standard-sql/data-manipulation-language) + // statement. + // * `CREATE_TABLE`: [`CREATE + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) + // statement, without `AS SELECT`. + // * `CREATE_TABLE_AS_SELECT`: [`CREATE TABLE AS + // SELECT`](/bigquery/docs/reference/standard-sql/data-definition-language#query_statement) + // statement. + // * `CREATE_VIEW`: [`CREATE + // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) + // statement. + // * `CREATE_MODEL`: [`CREATE + // MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#create_model_statement) + // statement. + // * `CREATE_MATERIALIZED_VIEW`: [`CREATE MATERIALIZED + // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement) + // statement. + // * `CREATE_FUNCTION`: [`CREATE + // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement) + // statement. + // * `CREATE_TABLE_FUNCTION`: [`CREATE TABLE + // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_function_statement) + // statement. + // * `CREATE_PROCEDURE`: [`CREATE + // PROCEDURE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_procedure) + // statement. + // * `CREATE_ROW_ACCESS_POLICY`: [`CREATE ROW ACCESS + // POLICY`](/bigquery/docs/reference/standard-sql/data-definition-language#create_row_access_policy_statement) + // statement. + // * `CREATE_SCHEMA`: [`CREATE + // SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) + // statement. + // * `CREATE_SNAPSHOT_TABLE`: [`CREATE SNAPSHOT + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_snapshot_table_statement) + // statement. + // * `CREATE_SEARCH_INDEX`: [`CREATE SEARCH + // INDEX`](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement) + // statement. + // * `DROP_TABLE`: [`DROP + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement) + // statement. + // * `DROP_EXTERNAL_TABLE`: [`DROP EXTERNAL + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_external_table_statement) + // statement. + // * `DROP_VIEW`: [`DROP + // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement) + // statement. + // * `DROP_MODEL`: [`DROP + // MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-drop-model) + // statement. + // * `DROP_MATERIALIZED_VIEW`: [`DROP MATERIALIZED + // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_materialized_view_statement) + // statement. + // * `DROP_FUNCTION` : [`DROP + // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_function_statement) + // statement. + // * `DROP_TABLE_FUNCTION` : [`DROP TABLE + // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_function) + // statement. + // * `DROP_PROCEDURE`: [`DROP + // PROCEDURE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_procedure_statement) + // statement. + // * `DROP_SEARCH_INDEX`: [`DROP SEARCH + // INDEX`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_search_index) + // statement. + // * `DROP_SCHEMA`: [`DROP + // SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) + // statement. + // * `DROP_SNAPSHOT_TABLE`: [`DROP SNAPSHOT + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_snapshot_table_statement) + // statement. + // * `DROP_ROW_ACCESS_POLICY`: [`DROP [ALL] ROW ACCESS + // POLICY|POLICIES`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_row_access_policy_statement) + // statement. + // * `ALTER_TABLE`: [`ALTER + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) + // statement. + // * `ALTER_VIEW`: [`ALTER + // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_view_set_options_statement) + // statement. + // * `ALTER_MATERIALIZED_VIEW`: [`ALTER MATERIALIZED + // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_materialized_view_set_options_statement) + // statement. + // * `ALTER_SCHEMA`: [`ALTER + // SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#aalter_schema_set_options_statement) + // statement. + // * `SCRIPT`: + // [`SCRIPT`](/bigquery/docs/reference/standard-sql/procedural-language). + // * `TRUNCATE_TABLE`: [`TRUNCATE + // TABLE`](/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement) + // statement. + // * `CREATE_EXTERNAL_TABLE`: [`CREATE EXTERNAL + // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) + // statement. + // * `EXPORT_DATA`: [`EXPORT + // DATA`](/bigquery/docs/reference/standard-sql/other-statements#export_data_statement) + // statement. + // * `EXPORT_MODEL`: [`EXPORT + // MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-export-model) + // statement. + // * `LOAD_DATA`: [`LOAD + // DATA`](/bigquery/docs/reference/standard-sql/other-statements#load_data_statement) + // statement. + // * `CALL`: + // [`CALL`](/bigquery/docs/reference/standard-sql/procedural-language#call) + // statement. + string statement_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The DDL operation performed, possibly + // dependent on the pre-existence of the DDL target. + string ddl_operation_performed = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The DDL target table. Present only for + // CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries. + TableReference ddl_target_table = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The table after rename. Present only for ALTER TABLE RENAME TO + // query. + TableReference ddl_destination_table = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The DDL target row access policy. Present only for + // CREATE/DROP ROW ACCESS POLICY queries. + RowAccessPolicyReference ddl_target_row_access_policy = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of row access policies affected by a DDL statement. + // Present only for DROP ALL ROW ACCESS POLICIES queries. + google.protobuf.Int64Value ddl_affected_row_access_policy_count = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Beta] The DDL target routine. Present only for + // CREATE/DROP FUNCTION/PROCEDURE queries. + RoutineReference ddl_target_routine = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The DDL target dataset. Present only for CREATE/ALTER/DROP + // SCHEMA(dataset) queries. + DatasetReference ddl_target_dataset = 30 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics of a BigQuery ML training job. + MlStatistics ml_statistics = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Stats for EXPORT DATA statement. + ExportDataStatistics export_data_statistics = 25 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Job cost breakdown as bigquery internal cost and external + // service costs. + repeated ExternalServiceCost external_service_costs = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. BI Engine specific Statistics. + BiEngineStatistics bi_engine_statistics = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for a LOAD query. + LoadQueryStatistics load_query_statistics = 33 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Referenced table for DCL statement. + TableReference dcl_target_table = 34 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Referenced view for DCL statement. + TableReference dcl_target_view = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Referenced dataset for DCL statement. + DatasetReference dcl_target_dataset = 36 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Search query specific statistics. + SearchStatistics search_statistics = 37 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Vector Search query specific statistics. + VectorSearchStatistics vector_search_statistics = 44 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Performance insights. + PerformanceInsights performance_insights = 38 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Query optimization information for a QUERY job. + QueryInfo query_info = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics of a Spark procedure job. + SparkStatistics spark_statistics = 40 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total bytes transferred for cross-cloud queries such as Cross + // Cloud Transfer and CREATE TABLE AS SELECT (CTAS). + google.protobuf.Int64Value transferred_bytes = 41 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics of materialized views of a query job. + MaterializedViewStatistics materialized_view_statistics = 42 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics of metadata cache usage in a query for BigLake + // tables. + MetadataCacheStatistics metadata_cache_statistics = 43 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for a load job. +message JobStatistics3 { + // Output only. Number of source files in a load job. + google.protobuf.Int64Value input_files = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of bytes of source data in a load job. + google.protobuf.Int64Value input_file_bytes = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of rows imported in a load job. + // Note that while an import job is in the running state, this + // value may change. + google.protobuf.Int64Value output_rows = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size of the loaded data in bytes. Note + // that while a load job is in the running state, this value may change. + google.protobuf.Int64Value output_bytes = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of bad records encountered. Note that if the job + // has failed because of more bad records encountered than the maximum + // allowed in the load job configuration, then this number can be less than + // the total number of bad records present in the input data. + google.protobuf.Int64Value bad_records = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Describes a timeline of job execution. + repeated QueryTimelineSample timeline = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for an extract job. +message JobStatistics4 { + // Output only. Number of files per destination URI or URI pattern + // specified in the extract configuration. These values will be in the same + // order as the URIs specified in the 'destinationUris' field. + repeated int64 destination_uri_file_counts = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of user bytes extracted into the result. This is the + // byte count as computed by BigQuery for billing purposes + // and doesn't have any relationship with the number of actual + // result bytes extracted in the desired format. + google.protobuf.Int64Value input_bytes = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Describes a timeline of job execution. + repeated QueryTimelineSample timeline = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for a copy job. +message CopyJobStatistics { + // Output only. Number of rows copied to the destination table. + google.protobuf.Int64Value copied_rows = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of logical bytes copied to the destination table. + google.protobuf.Int64Value copied_logical_bytes = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Job statistics specific to a BigQuery ML training job. +message MlStatistics { + // Training type. + enum TrainingType { + // Unspecified training type. + TRAINING_TYPE_UNSPECIFIED = 0; + + // Single training with fixed parameter space. + SINGLE_TRAINING = 1; + + // [Hyperparameter tuning + // training](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). + HPARAM_TUNING = 2; + } + + // Output only. Maximum number of iterations specified as max_iterations in + // the 'CREATE MODEL' query. The actual number of iterations may be less than + // this number due to early stop. + int64 max_iterations = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Results for all completed iterations. + // Empty for [hyperparameter tuning + // jobs](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). + repeated Model.TrainingRun.IterationResult iteration_results = 2; + + // Output only. The type of the model that is being trained. + Model.ModelType model_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Training type of the job. + TrainingType training_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Trials of a [hyperparameter tuning + // job](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // sorted by trial_id. + repeated Model.HparamTuningTrial hparam_trials = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Job statistics specific to the child job of a script. +message ScriptStatistics { + // Describes how the job is evaluated. + enum EvaluationKind { + // Default value. + EVALUATION_KIND_UNSPECIFIED = 0; + + // The statement appears directly in the script. + STATEMENT = 1; + + // The statement evaluates an expression that appears in the script. + EXPRESSION = 2; + } + + // Represents the location of the statement/expression being evaluated. + // Line and column numbers are defined as follows: + // + // - Line and column numbers start with one. That is, line 1 column 1 denotes + // the start of the script. + // - When inside a stored procedure, all line/column numbers are relative + // to the procedure body, not the script in which the procedure was defined. + // - Start/end positions exclude leading/trailing comments and whitespace. + // The end position always ends with a ";", when present. + // - Multi-byte Unicode characters are treated as just one column. + // - If the original script (or procedure definition) contains TAB characters, + // a tab "snaps" the indentation forward to the nearest multiple of 8 + // characters, plus 1. For example, a TAB on column 1, 2, 3, 4, 5, 6 , or 8 + // will advance the next character to column 9. A TAB on column 9, 10, 11, + // 12, 13, 14, 15, or 16 will advance the next character to column 17. + message ScriptStackFrame { + // Output only. One-based start line. + int32 start_line = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. One-based start column. + int32 start_column = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. One-based end line. + int32 end_line = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. One-based end column. + int32 end_column = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the active procedure, empty if in a top-level + // script. + string procedure_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Text of the current statement/expression. + string text = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Whether this child job was a statement or expression. + EvaluationKind evaluation_kind = 1; + + // Stack trace showing the line/column/procedure name of each frame on the + // stack at the point where the current evaluation happened. The leaf frame + // is first, the primary script is last. Never empty. + repeated ScriptStackFrame stack_frames = 2; +} + +// Statistics for row-level security. +message RowLevelSecurityStatistics { + // Whether any accessed data was protected by row access policies. + bool row_level_security_applied = 1; +} + +// Statistics for data-masking. +message DataMaskingStatistics { + // Whether any accessed data was protected by the data masking. + bool data_masking_applied = 1; +} + +// Statistics for a single job execution. +message JobStatistics { + // [Alpha] Information of a multi-statement transaction. + message TransactionInfo { + // Output only. [Alpha] Id of the transaction. + string transaction_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Creation time of this job, in milliseconds since the epoch. + // This field will be present on all jobs. + int64 creation_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Start time of this job, in milliseconds since the epoch. + // This field will be present when the job transitions from the PENDING state + // to either RUNNING or DONE. + int64 start_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. End time of this job, in milliseconds since the epoch. This + // field will be present whenever a job is in the DONE state. + int64 end_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total bytes processed for the job. + google.protobuf.Int64Value total_bytes_processed = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [TrustedTester] Job progress (0.0 -> 1.0) for LOAD and + // EXTRACT jobs. + google.protobuf.DoubleValue completion_ratio = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Quotas which delayed this job's start time. + repeated string quota_deferments = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for a query job. + JobStatistics2 query = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for a load job. + JobStatistics3 load = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for an extract job. + JobStatistics4 extract = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for a copy job. + CopyJobStatistics copy = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Slot-milliseconds for the job. + google.protobuf.Int64Value total_slot_ms = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the primary reservation assigned to this job. Note + // that this could be different than reservations reported in the reservation + // usage field if parent reservations were used to execute this job. + string reservation_id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of child jobs executed. + int64 num_child_jobs = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If this is a child job, specifies the job ID of the parent. + string parent_job_id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If this a child job of a script, specifies information about + // the context of this job within the script. + ScriptStatistics script_statistics = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for row-level security. Present only for query and + // extract jobs. + RowLevelSecurityStatistics row_level_security_statistics = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for data-masking. Present only for query and + // extract jobs. + DataMaskingStatistics data_masking_statistics = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Alpha] Information of the multi-statement transaction if this + // job is part of one. + // + // This property is only expected on a child job or a job that is in a + // session. A script parent job is not part of the transaction started in the + // script. + TransactionInfo transaction_info = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information of the session if this job is part of one. + SessionInfo session_info = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The duration in milliseconds of the execution of the final + // attempt of this job, as BigQuery may internally re-attempt to execute the + // job. + int64 final_execution_duration_ms = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Detailed statistics for DML statements +message DmlStats { + // Output only. Number of inserted Rows. Populated by DML INSERT and MERGE + // statements + google.protobuf.Int64Value inserted_row_count = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of deleted Rows. populated by DML DELETE, MERGE and + // TRUNCATE statements. + google.protobuf.Int64Value deleted_row_count = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of updated Rows. Populated by DML UPDATE and MERGE + // statements. + google.protobuf.Int64Value updated_row_count = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Performance insights for the job. +message PerformanceInsights { + // Output only. Average execution ms of previous runs. Indicates the job ran + // slow compared to previous executions. To find previous executions, use + // INFORMATION_SCHEMA tables and filter jobs with same query hash. + int64 avg_previous_execution_ms = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Standalone query stage performance insights, for exploring + // potential improvements. + repeated StagePerformanceStandaloneInsight + stage_performance_standalone_insights = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Query stage performance insights compared to previous runs, + // for diagnosing performance regression. + repeated StagePerformanceChangeInsight stage_performance_change_insights = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Performance insights compared to the previous executions for a specific +// stage. +message StagePerformanceChangeInsight { + // Output only. The stage id that the insight mapped to. + int64 stage_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Input data change insight of the query stage. + optional InputDataChange input_data_change = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details about the input data change insight. +message InputDataChange { + // Output only. Records read difference percentage compared to a previous run. + float records_read_diff_percentage = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Standalone performance insights for a specific stage. +message StagePerformanceStandaloneInsight { + // Output only. The stage id that the insight mapped to. + int64 stage_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if the stage has a slot contention issue. + optional bool slot_contention = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if the stage has insufficient shuffle quota. + optional bool insufficient_shuffle_quota = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If present, the stage had the following reasons for being + // disqualified from BI Engine execution. + repeated BiEngineReason bi_engine_reasons = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. High cardinality joins in the stage. + repeated HighCardinalityJoin high_cardinality_joins = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Partition skew in the stage. + optional PartitionSkew partition_skew = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// High cardinality join detailed information. +message HighCardinalityJoin { + // Output only. Count of left input rows. + int64 left_rows = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Count of right input rows. + int64 right_rows = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Count of the output rows. + int64 output_rows = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The index of the join operator in the ExplainQueryStep lists. + int32 step_index = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Partition skew detailed information. +message PartitionSkew { + // Details about source stages which produce skewed data. + message SkewSource { + // Output only. Stage id of the skew source stage. + int64 stage_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Source stages which produce skewed data. + repeated SkewSource skew_sources = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics for a BigSpark query. +// Populated as part of JobStatistics2 +message SparkStatistics { + // Spark job logs can be filtered by these fields in Cloud Logging. + message LoggingInfo { + // Output only. Resource type used for logging. + string resource_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Project ID where the Spark logs were written. + string project_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Spark job ID if a Spark job is created successfully. + optional string spark_job_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Location where the Spark job is executed. + // A location is selected by BigQueury for jobs configured to run in a + // multi-region. + optional string spark_job_location = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Endpoints returned from Dataproc. + // Key list: + // - history_server_endpoint: A link to Spark job UI. + map endpoints = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Logging info is used to generate a link to Cloud Logging. + optional LoggingInfo logging_info = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Cloud KMS encryption key that is used to protect the + // resources created by the Spark job. If the Spark procedure uses the invoker + // security mode, the Cloud KMS encryption key is either inferred from the + // provided system variable, + // `@@spark_proc_properties.kms_key_name`, or the default key of the BigQuery + // job's project (if the CMEK organization policy is enforced). Otherwise, the + // Cloud KMS key is either inferred from the Spark connection associated with + // the procedure (if it is provided), or from the default key of the Spark + // connection's project if the CMEK organization policy is enforced. + // + // Example: + // + // * `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]` + optional string kms_key_name = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. The Google Cloud Storage bucket that is used as the default + // file system by the Spark application. This field is only filled when the + // Spark procedure uses the invoker security mode. The `gcsStagingBucket` + // bucket is inferred from the `@@spark_proc_properties.staging_bucket` system + // variable (if it is provided). Otherwise, BigQuery creates a default staging + // bucket for the job and returns the bucket name in this field. + // + // Example: + // + // * `gs://[bucket_name]` + optional string gcs_staging_bucket = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "storage.googleapis.com/Bucket" } + ]; +} + +// Statistics of materialized views considered in a query job. +message MaterializedViewStatistics { + // Materialized views considered for the query job. Only certain materialized + // views are used. For a detailed list, see the child message. + // + // If many materialized views are considered, then the list might be + // incomplete. + repeated MaterializedView materialized_view = 1; +} + +// A materialized view considered for a query job. +message MaterializedView { + // Reason why a materialized view was not chosen for a query. For more + // information, see [Understand why materialized views were + // rejected](https://cloud.google.com/bigquery/docs/materialized-views-use#understand-rejected). + enum RejectedReason { + // Default unspecified value. + REJECTED_REASON_UNSPECIFIED = 0; + + // View has no cached data because it has not refreshed yet. + NO_DATA = 1; + + // The estimated cost of the view is more expensive than another view or the + // base table. + // + // Note: The estimate cost might not match the billed cost. + COST = 2; + + // View has no cached data because a base table is truncated. + BASE_TABLE_TRUNCATED = 3; + + // View is invalidated because of a data change in one or more base tables. + // It could be any recent change if the + // [`max_staleness`](https://cloud.google.com/bigquery/docs/materialized-views-create#max_staleness) + // option is not set for the view, or otherwise any change outside of the + // staleness window. + BASE_TABLE_DATA_CHANGE = 4; + + // View is invalidated because a base table's partition expiration has + // changed. + BASE_TABLE_PARTITION_EXPIRATION_CHANGE = 5; + + // View is invalidated because a base table's partition has expired. + BASE_TABLE_EXPIRED_PARTITION = 6; + + // View is invalidated because a base table has an incompatible metadata + // change. + BASE_TABLE_INCOMPATIBLE_METADATA_CHANGE = 7; + + // View is invalidated because it was refreshed with a time zone other than + // that of the current job. + TIME_ZONE = 8; + + // View is outside the time travel window. + OUT_OF_TIME_TRAVEL_WINDOW = 9; + + // View is inaccessible to the user because of a fine-grained security + // policy on one of its base tables. + BASE_TABLE_FINE_GRAINED_SECURITY_POLICY = 10; + + // One of the view's base tables is too stale. For example, the cached + // metadata of a BigLake external table needs to be updated. + BASE_TABLE_TOO_STALE = 11; + } + + // The candidate materialized view. + optional TableReference table_reference = 1; + + // Whether the materialized view is chosen for the query. + // + // A materialized view can be chosen to rewrite multiple parts of the same + // query. If a materialized view is chosen to rewrite any part of the query, + // then this field is true, even if the materialized view was not chosen to + // rewrite others parts. + optional bool chosen = 2; + + // If present, specifies a best-effort estimation of the bytes saved by using + // the materialized view rather than its base tables. + optional int64 estimated_bytes_saved = 3; + + // If present, specifies the reason why the materialized view was not chosen + // for the query. + optional RejectedReason rejected_reason = 4; +} + +// Table level detail on the usage of metadata caching. Only set for Metadata +// caching eligible tables referenced in the query. +message TableMetadataCacheUsage { + // Reasons for not using metadata caching. + enum UnusedReason { + // Unused reasons not specified. + UNUSED_REASON_UNSPECIFIED = 0; + + // Metadata cache was outside the table's maxStaleness. + EXCEEDED_MAX_STALENESS = 1; + + // Metadata caching feature is not enabled. [Update BigLake tables] + // (/bigquery/docs/create-cloud-storage-table-biglake#update-biglake-tables) + // to enable the metadata caching. + METADATA_CACHING_NOT_ENABLED = 3; + + // Other unknown reason. + OTHER_REASON = 2; + } + + // Metadata caching eligible table referenced in the query. + optional TableReference table_reference = 1; + + // Reason for not using metadata caching for the table. + optional UnusedReason unused_reason = 2; + + // Free form human-readable reason metadata caching was unused for + // the job. + optional string explanation = 3; + + // Duration since last refresh as of this job for managed tables (indicates + // metadata cache staleness as seen by this job). + google.protobuf.Duration staleness = 5; + + // [Table type](/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.type). + string table_type = 6; +} + +// Statistics for metadata caching in BigLake tables. +message MetadataCacheStatistics { + // Set for the Metadata caching eligible tables referenced in the query. + repeated TableMetadataCacheUsage table_metadata_cache_usage = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/job_status.proto b/third_party/googleapis/google/cloud/bigquery/v2/job_status.proto new file mode 100644 index 000000000..71f0a33dc --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/job_status.proto @@ -0,0 +1,40 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/error.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "JobStatusProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +message JobStatus { + // Output only. Final error result of the job. If present, indicates that the + // job has completed and was unsuccessful. + ErrorProto error_result = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The first errors encountered during the running of the job. + // The final message includes the number of errors that caused the process to + // stop. Errors here do not necessarily mean that the job has not completed or + // was unsuccessful. + repeated ErrorProto errors = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Running state of the job. Valid states include 'PENDING', + // 'RUNNING', and 'DONE'. + string state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/json_extension.proto b/third_party/googleapis/google/cloud/bigquery/v2/json_extension.proto new file mode 100644 index 000000000..49338d746 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/json_extension.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "JsonExtensionProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Used to indicate that a JSON variant, rather than normal JSON, is being used +// as the source_format. This should only be used in combination with the +// JSON source format. +enum JsonExtension { + // The default if provided value is not one included in the enum, or the value + // is not specified. The source formate is parsed without any modification. + JSON_EXTENSION_UNSPECIFIED = 0; + + // Use GeoJSON variant of JSON. See https://tools.ietf.org/html/rfc7946. + GEOJSON = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/location_metadata.proto b/third_party/googleapis/google/cloud/bigquery/v2/location_metadata.proto new file mode 100644 index 000000000..391bd5ae4 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/location_metadata.proto @@ -0,0 +1,30 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "LocationMetadataProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// BigQuery-specific metadata about a location. This will be set on +// google.cloud.location.Location.metadata in Cloud Location API +// responses. +message LocationMetadata { + // The legacy BigQuery location ID, e.g. “EU” for the “europe” location. + // This is for any API consumers that need the legacy “US” and “EU” locations. + string legacy_location_id = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/map_target_type.proto b/third_party/googleapis/google/cloud/bigquery/v2/map_target_type.proto new file mode 100644 index 000000000..dc66e7d7a --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/map_target_type.proto @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "MapTargetTypeProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Indicates the map target type. Only applies to parquet maps. +enum MapTargetType { + // In this mode, the map will have the following schema: + // struct map_field_name { repeated struct key_value { key value } }. + MAP_TARGET_TYPE_UNSPECIFIED = 0; + + // In this mode, the map will have the following schema: + // repeated struct map_field_name { key value }. + ARRAY_OF_STRUCT = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/model.proto b/third_party/googleapis/google/cloud/bigquery/v2/model.proto new file mode 100644 index 000000000..f6b9ce532 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/model.proto @@ -0,0 +1,2040 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/encryption_config.proto"; +import "google/cloud/bigquery/v2/model_reference.proto"; +import "google/cloud/bigquery/v2/standard_sql.proto"; +import "google/cloud/bigquery/v2/table_reference.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "ModelProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This is an experimental RPC service definition for the BigQuery +// Model Service. +// +// It should not be relied on for production use cases at this time. +service ModelService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Gets the specified model resource by model ID. + rpc GetModel(GetModelRequest) returns (Model) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + }; + option (google.api.method_signature) = "project_id,dataset_id,model_id"; + } + + // Lists all models in the specified dataset. Requires the READER dataset + // role. After retrieving the list of models, you can get information about a + // particular model by calling the models.get method. + rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models" + }; + option (google.api.method_signature) = "project_id,dataset_id,max_results"; + } + + // Patch specific fields in the specified model. + rpc PatchModel(PatchModelRequest) returns (Model) { + option (google.api.http) = { + patch: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + body: "model" + }; + option (google.api.method_signature) = + "project_id,dataset_id,model_id,model"; + } + + // Deletes the model specified by modelId from the dataset. + rpc DeleteModel(DeleteModelRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/models/{model_id=*}" + }; + option (google.api.method_signature) = "project_id,dataset_id,model_id"; + } +} + +// Remote Model Info +message RemoteModelInfo { + // Supported service type for remote model. + enum RemoteServiceType { + // Unspecified remote service type. + REMOTE_SERVICE_TYPE_UNSPECIFIED = 0; + + // V3 Cloud AI Translation API. See more details at [Cloud Translation API] + // (https://cloud.google.com/translate/docs/reference/rest). + CLOUD_AI_TRANSLATE_V3 = 1; + + // V1 Cloud AI Vision API See more details at [Cloud Vision API] + // (https://cloud.google.com/vision/docs/reference/rest). + CLOUD_AI_VISION_V1 = 2; + + // V1 Cloud AI Natural Language API. See more details at [REST Resource: + // documents](https://cloud.google.com/natural-language/docs/reference/rest/v1/documents). + CLOUD_AI_NATURAL_LANGUAGE_V1 = 3; + + // V2 Speech-to-Text API. See more details at [Google Cloud Speech-to-Text + // V2 API](https://cloud.google.com/speech-to-text/v2/docs) + CLOUD_AI_SPEECH_TO_TEXT_V2 = 7; + } + + // Remote services are services outside of BigQuery used by remote models for + // predictions. A remote service is backed by either an arbitrary endpoint or + // a selected remote service type, but not both. + oneof remote_service { + // Output only. The endpoint for remote model. + string endpoint = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The remote service type for remote model. + RemoteServiceType remote_service_type = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Fully qualified name of the user-provided connection object of + // the remote model. Format: + // ```"projects/{project_id}/locations/{location_id}/connections/{connection_id}"``` + string connection = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Max number of rows in each batch sent to the remote service. + // If unset, the number of rows in each batch is set dynamically. + int64 max_batching_rows = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The model version for LLM. + string remote_model_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the speech recognizer to use for speech + // recognition. The expected format is + // `projects/{project}/locations/{location}/recognizers/{recognizer}`. + // Customers can specify this field at model creation. If not specified, a + // default recognizer `projects/{model + // project}/locations/global/recognizers/_` will be used. See more details at + // [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers) + string speech_recognizer = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Information about a single transform column. +message TransformColumn { + // Output only. Name of the column. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Data type of the column after the transform. + StandardSqlDataType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The SQL expression used in the column transform. + string transform_sql = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +message Model { + // Indicates the type of the Model. + enum ModelType { + // Default value. + MODEL_TYPE_UNSPECIFIED = 0; + + // Linear regression model. + LINEAR_REGRESSION = 1; + + // Logistic regression based classification model. + LOGISTIC_REGRESSION = 2; + + // K-means clustering model. + KMEANS = 3; + + // Matrix factorization model. + MATRIX_FACTORIZATION = 4; + + // DNN classifier model. + DNN_CLASSIFIER = 5; + + // An imported TensorFlow model. + TENSORFLOW = 6; + + // DNN regressor model. + DNN_REGRESSOR = 7; + + // An imported XGBoost model. + XGBOOST = 8; + + // Boosted tree regressor model. + BOOSTED_TREE_REGRESSOR = 9; + + // Boosted tree classifier model. + BOOSTED_TREE_CLASSIFIER = 10; + + // ARIMA model. + ARIMA = 11; + + // AutoML Tables regression model. + AUTOML_REGRESSOR = 12; + + // AutoML Tables classification model. + AUTOML_CLASSIFIER = 13; + + // Prinpical Component Analysis model. + PCA = 14; + + // Wide-and-deep classifier model. + DNN_LINEAR_COMBINED_CLASSIFIER = 16; + + // Wide-and-deep regressor model. + DNN_LINEAR_COMBINED_REGRESSOR = 17; + + // Autoencoder model. + AUTOENCODER = 18; + + // New name for the ARIMA model. + ARIMA_PLUS = 19; + + // ARIMA with external regressors. + ARIMA_PLUS_XREG = 23; + + // Random forest regressor model. + RANDOM_FOREST_REGRESSOR = 24; + + // Random forest classifier model. + RANDOM_FOREST_CLASSIFIER = 25; + + // An imported TensorFlow Lite model. + TENSORFLOW_LITE = 26; + + // An imported ONNX model. + ONNX = 28; + + // Model to capture the columns and logic in the TRANSFORM clause along with + // statistics useful for ML analytic functions. + TRANSFORM_ONLY = 29; + } + + // Loss metric to evaluate model training performance. + enum LossType { + // Default value. + LOSS_TYPE_UNSPECIFIED = 0; + + // Mean squared loss, used for linear regression. + MEAN_SQUARED_LOSS = 1; + + // Mean log loss, used for logistic regression. + MEAN_LOG_LOSS = 2; + } + + // Distance metric used to compute the distance between two points. + enum DistanceType { + // Default value. + DISTANCE_TYPE_UNSPECIFIED = 0; + + // Eculidean distance. + EUCLIDEAN = 1; + + // Cosine distance. + COSINE = 2; + } + + // Indicates the method to split input data into multiple tables. + enum DataSplitMethod { + // Default value. + DATA_SPLIT_METHOD_UNSPECIFIED = 0; + + // Splits data randomly. + RANDOM = 1; + + // Splits data with the user provided tags. + CUSTOM = 2; + + // Splits data sequentially. + SEQUENTIAL = 3; + + // Data split will be skipped. + NO_SPLIT = 4; + + // Splits data automatically: Uses NO_SPLIT if the data size is small. + // Otherwise uses RANDOM. + AUTO_SPLIT = 5; + } + + // Type of supported data frequency for time series forecasting models. + enum DataFrequency { + // Default value. + DATA_FREQUENCY_UNSPECIFIED = 0; + + // Automatically inferred from timestamps. + AUTO_FREQUENCY = 1; + + // Yearly data. + YEARLY = 2; + + // Quarterly data. + QUARTERLY = 3; + + // Monthly data. + MONTHLY = 4; + + // Weekly data. + WEEKLY = 5; + + // Daily data. + DAILY = 6; + + // Hourly data. + HOURLY = 7; + + // Per-minute data. + PER_MINUTE = 8; + } + + // Type of supported holiday regions for time series forecasting models. + enum HolidayRegion { + // Holiday region unspecified. + HOLIDAY_REGION_UNSPECIFIED = 0; + + // Global. + GLOBAL = 1; + + // North America. + NA = 2; + + // Japan and Asia Pacific: Korea, Greater China, India, Australia, and New + // Zealand. + JAPAC = 3; + + // Europe, the Middle East and Africa. + EMEA = 4; + + // Latin America and the Caribbean. + LAC = 5; + + // United Arab Emirates + AE = 6; + + // Argentina + AR = 7; + + // Austria + AT = 8; + + // Australia + AU = 9; + + // Belgium + BE = 10; + + // Brazil + BR = 11; + + // Canada + CA = 12; + + // Switzerland + CH = 13; + + // Chile + CL = 14; + + // China + CN = 15; + + // Colombia + CO = 16; + + // Czechoslovakia + CS = 17; + + // Czech Republic + CZ = 18; + + // Germany + DE = 19; + + // Denmark + DK = 20; + + // Algeria + DZ = 21; + + // Ecuador + EC = 22; + + // Estonia + EE = 23; + + // Egypt + EG = 24; + + // Spain + ES = 25; + + // Finland + FI = 26; + + // France + FR = 27; + + // Great Britain (United Kingdom) + GB = 28; + + // Greece + GR = 29; + + // Hong Kong + HK = 30; + + // Hungary + HU = 31; + + // Indonesia + ID = 32; + + // Ireland + IE = 33; + + // Israel + IL = 34; + + // India + IN = 35; + + // Iran + IR = 36; + + // Italy + IT = 37; + + // Japan + JP = 38; + + // Korea (South) + KR = 39; + + // Latvia + LV = 40; + + // Morocco + MA = 41; + + // Mexico + MX = 42; + + // Malaysia + MY = 43; + + // Nigeria + NG = 44; + + // Netherlands + NL = 45; + + // Norway + NO = 46; + + // New Zealand + NZ = 47; + + // Peru + PE = 48; + + // Philippines + PH = 49; + + // Pakistan + PK = 50; + + // Poland + PL = 51; + + // Portugal + PT = 52; + + // Romania + RO = 53; + + // Serbia + RS = 54; + + // Russian Federation + RU = 55; + + // Saudi Arabia + SA = 56; + + // Sweden + SE = 57; + + // Singapore + SG = 58; + + // Slovenia + SI = 59; + + // Slovakia + SK = 60; + + // Thailand + TH = 61; + + // Turkey + TR = 62; + + // Taiwan + TW = 63; + + // Ukraine + UA = 64; + + // United States + US = 65; + + // Venezuela + VE = 66; + + // Viet Nam + VN = 67; + + // South Africa + ZA = 68; + } + + // Enums for seasonal period. + message SeasonalPeriod { + // Seasonal period type. + enum SeasonalPeriodType { + // Unspecified seasonal period. + SEASONAL_PERIOD_TYPE_UNSPECIFIED = 0; + + // No seasonality + NO_SEASONALITY = 1; + + // Daily period, 24 hours. + DAILY = 2; + + // Weekly period, 7 days. + WEEKLY = 3; + + // Monthly period, 30 days or irregular. + MONTHLY = 4; + + // Quarterly period, 90 days or irregular. + QUARTERLY = 5; + + // Yearly period, 365 days or irregular. + YEARLY = 6; + } + } + + // Enums for color space, used for processing images in Object Table. + // See more details at + // https://www.tensorflow.org/io/tutorials/colorspace. + enum ColorSpace { + // Unspecified color space + COLOR_SPACE_UNSPECIFIED = 0; + + // RGB + RGB = 1; + + // HSV + HSV = 2; + + // YIQ + YIQ = 3; + + // YUV + YUV = 4; + + // GRAYSCALE + GRAYSCALE = 5; + } + + // Enums for kmeans model type. + message KmeansEnums { + // Indicates the method used to initialize the centroids for KMeans + // clustering algorithm. + enum KmeansInitializationMethod { + // Unspecified initialization method. + KMEANS_INITIALIZATION_METHOD_UNSPECIFIED = 0; + + // Initializes the centroids randomly. + RANDOM = 1; + + // Initializes the centroids using data specified in + // kmeans_initialization_column. + CUSTOM = 2; + + // Initializes with kmeans++. + KMEANS_PLUS_PLUS = 3; + } + } + + // Enums for XGBoost model type. + message BoostedTreeOptionEnums { + // Booster types supported. Refer to booster parameter in XGBoost. + enum BoosterType { + // Unspecified booster type. + BOOSTER_TYPE_UNSPECIFIED = 0; + + // Gbtree booster. + GBTREE = 1; + + // Dart booster. + DART = 2; + } + + // Type of normalization algorithm for boosted tree models using dart + // booster. Refer to normalize_type in XGBoost. + enum DartNormalizeType { + // Unspecified dart normalize type. + DART_NORMALIZE_TYPE_UNSPECIFIED = 0; + + // New trees have the same weight of each of dropped trees. + TREE = 1; + + // New trees have the same weight of sum of dropped trees. + FOREST = 2; + } + + // Tree construction algorithm used in boosted tree models. + // Refer to tree_method in XGBoost. + enum TreeMethod { + // Unspecified tree method. + TREE_METHOD_UNSPECIFIED = 0; + + // Use heuristic to choose the fastest method. + AUTO = 1; + + // Exact greedy algorithm. + EXACT = 2; + + // Approximate greedy algorithm using quantile sketch and gradient + // histogram. + APPROX = 3; + + // Fast histogram optimized approximate greedy algorithm. + HIST = 4; + } + } + + // Enums for hyperparameter tuning. + message HparamTuningEnums { + // Available evaluation metrics used as hyperparameter tuning objectives. + enum HparamTuningObjective { + // Unspecified evaluation metric. + HPARAM_TUNING_OBJECTIVE_UNSPECIFIED = 0; + + // Mean absolute error. + // mean_absolute_error = AVG(ABS(label - predicted)) + MEAN_ABSOLUTE_ERROR = 1; + + // Mean squared error. + // mean_squared_error = AVG(POW(label - predicted, 2)) + MEAN_SQUARED_ERROR = 2; + + // Mean squared log error. + // mean_squared_log_error = AVG(POW(LN(1 + label) - LN(1 + predicted), 2)) + MEAN_SQUARED_LOG_ERROR = 3; + + // Mean absolute error. + // median_absolute_error = APPROX_QUANTILES(absolute_error, 2)[OFFSET(1)] + MEDIAN_ABSOLUTE_ERROR = 4; + + // R^2 score. This corresponds to r2_score in ML.EVALUATE. + // r_squared = 1 - SUM(squared_error)/(COUNT(label)*VAR_POP(label)) + R_SQUARED = 5; + + // Explained variance. + // explained_variance = 1 - VAR_POP(label_error)/VAR_POP(label) + EXPLAINED_VARIANCE = 6; + + // Precision is the fraction of actual positive predictions that had + // positive actual labels. For multiclass this is a macro-averaged metric + // treating each class as a binary classifier. + PRECISION = 7; + + // Recall is the fraction of actual positive labels that were given a + // positive prediction. For multiclass this is a macro-averaged metric. + RECALL = 8; + + // Accuracy is the fraction of predictions given the correct label. For + // multiclass this is a globally micro-averaged metric. + ACCURACY = 9; + + // The F1 score is an average of recall and precision. For multiclass this + // is a macro-averaged metric. + F1_SCORE = 10; + + // Logorithmic Loss. For multiclass this is a macro-averaged metric. + LOG_LOSS = 11; + + // Area Under an ROC Curve. For multiclass this is a macro-averaged + // metric. + ROC_AUC = 12; + + // Davies-Bouldin Index. + DAVIES_BOULDIN_INDEX = 13; + + // Mean Average Precision. + MEAN_AVERAGE_PRECISION = 14; + + // Normalized Discounted Cumulative Gain. + NORMALIZED_DISCOUNTED_CUMULATIVE_GAIN = 15; + + // Average Rank. + AVERAGE_RANK = 16; + } + } + + // Indicates the learning rate optimization strategy to use. + enum LearnRateStrategy { + // Default value. + LEARN_RATE_STRATEGY_UNSPECIFIED = 0; + + // Use line search to determine learning rate. + LINE_SEARCH = 1; + + // Use a constant learning rate. + CONSTANT = 2; + } + + // Indicates the optimization strategy used for training. + enum OptimizationStrategy { + // Default value. + OPTIMIZATION_STRATEGY_UNSPECIFIED = 0; + + // Uses an iterative batch gradient descent algorithm. + BATCH_GRADIENT_DESCENT = 1; + + // Uses a normal equation to solve linear regression problem. + NORMAL_EQUATION = 2; + } + + // Indicates the training algorithm to use for matrix factorization models. + enum FeedbackType { + // Default value. + FEEDBACK_TYPE_UNSPECIFIED = 0; + + // Use weighted-als for implicit feedback problems. + IMPLICIT = 1; + + // Use nonweighted-als for explicit feedback problems. + EXPLICIT = 2; + } + + // Evaluation metrics for regression and explicit feedback type matrix + // factorization models. + message RegressionMetrics { + // Mean absolute error. + google.protobuf.DoubleValue mean_absolute_error = 1; + + // Mean squared error. + google.protobuf.DoubleValue mean_squared_error = 2; + + // Mean squared log error. + google.protobuf.DoubleValue mean_squared_log_error = 3; + + // Median absolute error. + google.protobuf.DoubleValue median_absolute_error = 4; + + // R^2 score. This corresponds to r2_score in ML.EVALUATE. + google.protobuf.DoubleValue r_squared = 5; + } + + // Aggregate metrics for classification/classifier models. For multi-class + // models, the metrics are either macro-averaged or micro-averaged. When + // macro-averaged, the metrics are calculated for each label and then an + // unweighted average is taken of those values. When micro-averaged, the + // metric is calculated globally by counting the total number of correctly + // predicted rows. + message AggregateClassificationMetrics { + // Precision is the fraction of actual positive predictions that had + // positive actual labels. For multiclass this is a macro-averaged + // metric treating each class as a binary classifier. + google.protobuf.DoubleValue precision = 1; + + // Recall is the fraction of actual positive labels that were given a + // positive prediction. For multiclass this is a macro-averaged metric. + google.protobuf.DoubleValue recall = 2; + + // Accuracy is the fraction of predictions given the correct label. For + // multiclass this is a micro-averaged metric. + google.protobuf.DoubleValue accuracy = 3; + + // Threshold at which the metrics are computed. For binary + // classification models this is the positive class threshold. + // For multi-class classfication models this is the confidence + // threshold. + google.protobuf.DoubleValue threshold = 4; + + // The F1 score is an average of recall and precision. For multiclass + // this is a macro-averaged metric. + google.protobuf.DoubleValue f1_score = 5; + + // Logarithmic Loss. For multiclass this is a macro-averaged metric. + google.protobuf.DoubleValue log_loss = 6; + + // Area Under a ROC Curve. For multiclass this is a macro-averaged + // metric. + google.protobuf.DoubleValue roc_auc = 7; + } + + // Evaluation metrics for binary classification/classifier models. + message BinaryClassificationMetrics { + // Confusion matrix for binary classification models. + message BinaryConfusionMatrix { + // Threshold value used when computing each of the following metric. + google.protobuf.DoubleValue positive_class_threshold = 1; + + // Number of true samples predicted as true. + google.protobuf.Int64Value true_positives = 2; + + // Number of false samples predicted as true. + google.protobuf.Int64Value false_positives = 3; + + // Number of true samples predicted as false. + google.protobuf.Int64Value true_negatives = 4; + + // Number of false samples predicted as false. + google.protobuf.Int64Value false_negatives = 5; + + // The fraction of actual positive predictions that had positive actual + // labels. + google.protobuf.DoubleValue precision = 6; + + // The fraction of actual positive labels that were given a positive + // prediction. + google.protobuf.DoubleValue recall = 7; + + // The equally weighted average of recall and precision. + google.protobuf.DoubleValue f1_score = 8; + + // The fraction of predictions given the correct label. + google.protobuf.DoubleValue accuracy = 9; + } + + // Aggregate classification metrics. + AggregateClassificationMetrics aggregate_classification_metrics = 1; + + // Binary confusion matrix at multiple thresholds. + repeated BinaryConfusionMatrix binary_confusion_matrix_list = 2; + + // Label representing the positive class. + string positive_label = 3; + + // Label representing the negative class. + string negative_label = 4; + } + + // Evaluation metrics for multi-class classification/classifier models. + message MultiClassClassificationMetrics { + // Confusion matrix for multi-class classification models. + message ConfusionMatrix { + // A single entry in the confusion matrix. + message Entry { + // The predicted label. For confidence_threshold > 0, we will + // also add an entry indicating the number of items under the + // confidence threshold. + string predicted_label = 1; + + // Number of items being predicted as this label. + google.protobuf.Int64Value item_count = 2; + } + + // A single row in the confusion matrix. + message Row { + // The original label of this row. + string actual_label = 1; + + // Info describing predicted label distribution. + repeated Entry entries = 2; + } + + // Confidence threshold used when computing the entries of the + // confusion matrix. + google.protobuf.DoubleValue confidence_threshold = 1; + + // One row per actual label. + repeated Row rows = 2; + } + + // Aggregate classification metrics. + AggregateClassificationMetrics aggregate_classification_metrics = 1; + + // Confusion matrix at different thresholds. + repeated ConfusionMatrix confusion_matrix_list = 2; + } + + // Evaluation metrics for clustering models. + message ClusteringMetrics { + // Message containing the information about one cluster. + message Cluster { + // Representative value of a single feature within the cluster. + message FeatureValue { + // Representative value of a categorical feature. + message CategoricalValue { + // Represents the count of a single category within the cluster. + message CategoryCount { + // The name of category. + string category = 1; + + // The count of training samples matching the category within the + // cluster. + google.protobuf.Int64Value count = 2; + } + + // Counts of all categories for the categorical feature. If there are + // more than ten categories, we return top ten (by count) and return + // one more CategoryCount with category "_OTHER_" and count as + // aggregate counts of remaining categories. + repeated CategoryCount category_counts = 1; + } + + // The feature column name. + string feature_column = 1; + + // Value. + oneof value { + // The numerical feature value. This is the centroid value for this + // feature. + google.protobuf.DoubleValue numerical_value = 2; + + // The categorical feature value. + CategoricalValue categorical_value = 3; + } + } + + // Centroid id. + int64 centroid_id = 1; + + // Values of highly variant features for this cluster. + repeated FeatureValue feature_values = 2; + + // Count of training data rows that were assigned to this cluster. + google.protobuf.Int64Value count = 3; + } + + // Davies-Bouldin index. + google.protobuf.DoubleValue davies_bouldin_index = 1; + + // Mean of squared distances between each sample to its cluster centroid. + google.protobuf.DoubleValue mean_squared_distance = 2; + + // Information for all clusters. + repeated Cluster clusters = 3; + } + + // Evaluation metrics used by weighted-ALS models specified by + // feedback_type=implicit. + message RankingMetrics { + // Calculates a precision per user for all the items by ranking them and + // then averages all the precisions across all the users. + google.protobuf.DoubleValue mean_average_precision = 1; + + // Similar to the mean squared error computed in regression and explicit + // recommendation models except instead of computing the rating directly, + // the output from evaluate is computed against a preference which is 1 or 0 + // depending on if the rating exists or not. + google.protobuf.DoubleValue mean_squared_error = 2; + + // A metric to determine the goodness of a ranking calculated from the + // predicted confidence by comparing it to an ideal rank measured by the + // original ratings. + google.protobuf.DoubleValue normalized_discounted_cumulative_gain = 3; + + // Determines the goodness of a ranking by computing the percentile rank + // from the predicted confidence and dividing it by the original rank. + google.protobuf.DoubleValue average_rank = 4; + } + + // Model evaluation metrics for ARIMA forecasting models. + message ArimaForecastingMetrics { + // Model evaluation metrics for a single ARIMA forecasting model. + message ArimaSingleModelForecastingMetrics { + // Non-seasonal order. + ArimaOrder non_seasonal_order = 1; + + // Arima fitting metrics. + ArimaFittingMetrics arima_fitting_metrics = 2; + + // Is arima model fitted with drift or not. It is always false when d + // is not 1. + google.protobuf.BoolValue has_drift = 3; + + // The time_series_id value for this time series. It will be one of + // the unique values from the time_series_id_column specified during + // ARIMA model training. Only present when time_series_id_column + // training option was used. + string time_series_id = 4; + + // The tuple of time_series_ids identifying this time series. It will + // be one of the unique tuples of values present in the + // time_series_id_columns specified during ARIMA model training. Only + // present when time_series_id_columns training option was used and + // the order of values here are same as the order of + // time_series_id_columns. + repeated string time_series_ids = 9; + + // Seasonal periods. Repeated because multiple periods are supported + // for one time series. + repeated SeasonalPeriod.SeasonalPeriodType seasonal_periods = 5; + + // If true, holiday_effect is a part of time series decomposition result. + google.protobuf.BoolValue has_holiday_effect = 6; + + // If true, spikes_and_dips is a part of time series decomposition result. + google.protobuf.BoolValue has_spikes_and_dips = 7; + + // If true, step_changes is a part of time series decomposition result. + google.protobuf.BoolValue has_step_changes = 8; + } + + // Repeated as there can be many metric sets (one for each model) in + // auto-arima and the large-scale case. + repeated ArimaSingleModelForecastingMetrics + arima_single_model_forecasting_metrics = 6; + } + + // Model evaluation metrics for dimensionality reduction models. + message DimensionalityReductionMetrics { + // Total percentage of variance explained by the selected principal + // components. + google.protobuf.DoubleValue total_explained_variance_ratio = 1; + } + + // Evaluation metrics of a model. These are either computed on all training + // data or just the eval data based on whether eval data was used during + // training. These are not present for imported models. + message EvaluationMetrics { + // Metrics. + oneof metrics { + // Populated for regression models and explicit feedback type matrix + // factorization models. + RegressionMetrics regression_metrics = 1; + + // Populated for binary classification/classifier models. + BinaryClassificationMetrics binary_classification_metrics = 2; + + // Populated for multi-class classification/classifier models. + MultiClassClassificationMetrics multi_class_classification_metrics = 3; + + // Populated for clustering models. + ClusteringMetrics clustering_metrics = 4; + + // Populated for implicit feedback type matrix factorization models. + RankingMetrics ranking_metrics = 5; + + // Populated for ARIMA models. + ArimaForecastingMetrics arima_forecasting_metrics = 6; + + // Evaluation metrics when the model is a dimensionality reduction model, + // which currently includes PCA. + DimensionalityReductionMetrics dimensionality_reduction_metrics = 7; + } + } + + // Data split result. This contains references to the training and evaluation + // data tables that were used to train the model. + message DataSplitResult { + // Table reference of the training data after split. + TableReference training_table = 1; + + // Table reference of the evaluation data after split. + TableReference evaluation_table = 2; + + // Table reference of the test data after split. + TableReference test_table = 3; + } + + // Arima order, can be used for both non-seasonal and seasonal parts. + message ArimaOrder { + // Order of the autoregressive part. + google.protobuf.Int64Value p = 1; + + // Order of the differencing part. + google.protobuf.Int64Value d = 2; + + // Order of the moving-average part. + google.protobuf.Int64Value q = 3; + } + + // ARIMA model fitting metrics. + message ArimaFittingMetrics { + // Log-likelihood. + google.protobuf.DoubleValue log_likelihood = 1; + + // AIC. + google.protobuf.DoubleValue aic = 2; + + // Variance. + google.protobuf.DoubleValue variance = 3; + } + + // Global explanations containing the top most important features + // after training. + message GlobalExplanation { + // Explanation for a single feature. + message Explanation { + // The full feature name. For non-numerical features, will be formatted + // like `.`. Overall size of feature + // name will always be truncated to first 120 characters. + string feature_name = 1; + + // Attribution of feature. + google.protobuf.DoubleValue attribution = 2; + } + + // A list of the top global explanations. Sorted by absolute value of + // attribution in descending order. + repeated Explanation explanations = 1; + + // Class label for this set of global explanations. Will be empty/null for + // binary logistic and linear regression models. Sorted alphabetically in + // descending order. + string class_label = 2; + } + + // Encoding methods for categorical features. + message CategoryEncodingMethod { + // Supported encoding methods for categorical features. + enum EncodingMethod { + // Unspecified encoding method. + ENCODING_METHOD_UNSPECIFIED = 0; + + // Applies one-hot encoding. + ONE_HOT_ENCODING = 1; + + // Applies label encoding. + LABEL_ENCODING = 2; + + // Applies dummy encoding. + DUMMY_ENCODING = 3; + } + } + + // PCA solver options. + message PcaSolverOptionEnums { + // Enums for supported PCA solvers. + enum PcaSolver { + // Default value. + UNSPECIFIED = 0; + + // Full eigen-decoposition. + FULL = 1; + + // Randomized SVD. + RANDOMIZED = 2; + + // Auto. + AUTO = 3; + } + } + + // Model registry options. + message ModelRegistryOptionEnums { + // Enums for supported model registries. + enum ModelRegistry { + // Default value. + MODEL_REGISTRY_UNSPECIFIED = 0; + + // Vertex AI. + VERTEX_AI = 1; + } + } + + // Information about a single training query run for the model. + message TrainingRun { + // Options used in model training. + message TrainingOptions { + // The maximum number of iterations in training. Used only for iterative + // training algorithms. + int64 max_iterations = 1; + + // Type of loss function used during training run. + LossType loss_type = 2; + + // Learning rate in training. Used only for iterative training algorithms. + double learn_rate = 3; + + // L1 regularization coefficient. + google.protobuf.DoubleValue l1_regularization = 4; + + // L2 regularization coefficient. + google.protobuf.DoubleValue l2_regularization = 5; + + // When early_stop is true, stops training when accuracy improvement is + // less than 'min_relative_progress'. Used only for iterative training + // algorithms. + google.protobuf.DoubleValue min_relative_progress = 6; + + // Whether to train a model from the last checkpoint. + google.protobuf.BoolValue warm_start = 7; + + // Whether to stop early when the loss doesn't improve significantly + // any more (compared to min_relative_progress). Used only for iterative + // training algorithms. + google.protobuf.BoolValue early_stop = 8; + + // Name of input label columns in training data. + repeated string input_label_columns = 9; + + // The data split type for training and evaluation, e.g. RANDOM. + DataSplitMethod data_split_method = 10; + + // The fraction of evaluation data over the whole input data. The rest + // of data will be used as training data. The format should be double. + // Accurate to two decimal places. + // Default value is 0.2. + double data_split_eval_fraction = 11; + + // The column to split data with. This column won't be used as a + // feature. + // 1. When data_split_method is CUSTOM, the corresponding column should + // be boolean. The rows with true value tag are eval data, and the false + // are training data. + // 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION + // rows (from smallest to largest) in the corresponding column are used + // as training data, and the rest are eval data. It respects the order + // in Orderable data types: + // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties + string data_split_column = 12; + + // The strategy to determine learn rate for the current iteration. + LearnRateStrategy learn_rate_strategy = 13; + + // Specifies the initial learning rate for the line search learn rate + // strategy. + double initial_learn_rate = 16; + + // Weights associated with each label class, for rebalancing the + // training data. Only applicable for classification models. + map label_class_weights = 17; + + // User column specified for matrix factorization models. + string user_column = 18; + + // Item column specified for matrix factorization models. + string item_column = 19; + + // Distance type for clustering models. + DistanceType distance_type = 20; + + // Number of clusters for clustering models. + int64 num_clusters = 21; + + // Google Cloud Storage URI from which the model was imported. Only + // applicable for imported models. + string model_uri = 22; + + // Optimization strategy for training linear regression models. + OptimizationStrategy optimization_strategy = 23; + + // Hidden units for dnn models. + repeated int64 hidden_units = 24; + + // Batch size for dnn models. + int64 batch_size = 25; + + // Dropout probability for dnn models. + google.protobuf.DoubleValue dropout = 26; + + // Maximum depth of a tree for boosted tree models. + int64 max_tree_depth = 27; + + // Subsample fraction of the training data to grow tree to prevent + // overfitting for boosted tree models. + double subsample = 28; + + // Minimum split loss for boosted tree models. + google.protobuf.DoubleValue min_split_loss = 29; + + // Booster type for boosted tree models. + BoostedTreeOptionEnums.BoosterType booster_type = 60; + + // Number of parallel trees constructed during each iteration for boosted + // tree models. + google.protobuf.Int64Value num_parallel_tree = 61; + + // Type of normalization algorithm for boosted tree models using + // dart booster. + BoostedTreeOptionEnums.DartNormalizeType dart_normalize_type = 62; + + // Tree construction algorithm for boosted tree models. + BoostedTreeOptionEnums.TreeMethod tree_method = 63; + + // Minimum sum of instance weight needed in a child for boosted tree + // models. + google.protobuf.Int64Value min_tree_child_weight = 64; + + // Subsample ratio of columns when constructing each tree for boosted tree + // models. + google.protobuf.DoubleValue colsample_bytree = 65; + + // Subsample ratio of columns for each level for boosted tree models. + google.protobuf.DoubleValue colsample_bylevel = 66; + + // Subsample ratio of columns for each node(split) for boosted tree + // models. + google.protobuf.DoubleValue colsample_bynode = 67; + + // Num factors specified for matrix factorization models. + int64 num_factors = 30; + + // Feedback type that specifies which algorithm to run for matrix + // factorization. + FeedbackType feedback_type = 31; + + // Hyperparameter for matrix factoration when implicit feedback type is + // specified. + google.protobuf.DoubleValue wals_alpha = 32; + + // The method used to initialize the centroids for kmeans algorithm. + KmeansEnums.KmeansInitializationMethod kmeans_initialization_method = 33; + + // The column used to provide the initial centroids for kmeans algorithm + // when kmeans_initialization_method is CUSTOM. + string kmeans_initialization_column = 34; + + // Column to be designated as time series timestamp for ARIMA model. + string time_series_timestamp_column = 35; + + // Column to be designated as time series data for ARIMA model. + string time_series_data_column = 36; + + // Whether to enable auto ARIMA or not. + google.protobuf.BoolValue auto_arima = 37; + + // A specification of the non-seasonal part of the ARIMA model: the three + // components (p, d, q) are the AR order, the degree of differencing, and + // the MA order. + ArimaOrder non_seasonal_order = 38; + + // The data frequency of a time series. + DataFrequency data_frequency = 39; + + // Whether or not p-value test should be computed for this model. Only + // available for linear and logistic regression models. + google.protobuf.BoolValue calculate_p_values = 40; + + // Include drift when fitting an ARIMA model. + google.protobuf.BoolValue include_drift = 41; + + // The geographical region based on which the holidays are considered in + // time series modeling. If a valid value is specified, then holiday + // effects modeling is enabled. + HolidayRegion holiday_region = 42; + + // A list of geographical regions that are used for time series modeling. + repeated HolidayRegion holiday_regions = 71; + + // The time series id column that was used during ARIMA model training. + string time_series_id_column = 43; + + // The time series id columns that were used during ARIMA model training. + repeated string time_series_id_columns = 51; + + // The number of periods ahead that need to be forecasted. + int64 horizon = 44; + + // The max value of the sum of non-seasonal p and q. + int64 auto_arima_max_order = 46; + + // The min value of the sum of non-seasonal p and q. + int64 auto_arima_min_order = 83; + + // Number of trials to run this hyperparameter tuning job. + int64 num_trials = 47; + + // Maximum number of trials to run in parallel. + int64 max_parallel_trials = 48; + + // The target evaluation metrics to optimize the hyperparameters for. + repeated HparamTuningEnums.HparamTuningObjective + hparam_tuning_objectives = 54; + + // If true, perform decompose time series and save the results. + google.protobuf.BoolValue decompose_time_series = 50; + + // If true, clean spikes and dips in the input time series. + google.protobuf.BoolValue clean_spikes_and_dips = 52; + + // If true, detect step changes and make data adjustment in the input time + // series. + google.protobuf.BoolValue adjust_step_changes = 53; + + // If true, enable global explanation during training. + google.protobuf.BoolValue enable_global_explain = 55; + + // Number of paths for the sampled Shapley explain method. + int64 sampled_shapley_num_paths = 56; + + // Number of integral steps for the integrated gradients explain method. + int64 integrated_gradients_num_steps = 57; + + // Categorical feature encoding method. + CategoryEncodingMethod.EncodingMethod category_encoding_method = 58; + + // Based on the selected TF version, the corresponding docker image is + // used to train external models. + string tf_version = 70; + + // Enums for color space, used for processing images in Object Table. + // See more details at + // https://www.tensorflow.org/io/tutorials/colorspace. + ColorSpace color_space = 72; + + // Name of the instance weight column for training data. + // This column isn't be used as a feature. + string instance_weight_column = 73; + + // Smoothing window size for the trend component. When a positive value is + // specified, a center moving average smoothing is applied on the history + // trend. When the smoothing window is out of the boundary at the + // beginning or the end of the trend, the first element or the last + // element is padded to fill the smoothing window before the average is + // applied. + int64 trend_smoothing_window_size = 74; + + // The fraction of the interpolated length of the time series that's used + // to model the time series trend component. All of the time points of the + // time series are used to model the non-trend component. This training + // option accelerates modeling training without sacrificing much + // forecasting accuracy. You can use this option with + // `minTimeSeriesLength` but not with `maxTimeSeriesLength`. + double time_series_length_fraction = 75; + + // The minimum number of time points in a time series that are used in + // modeling the trend component of the time series. If you use this option + // you must also set the `timeSeriesLengthFraction` option. This training + // option ensures that enough time points are available when you use + // `timeSeriesLengthFraction` in trend modeling. This is particularly + // important when forecasting multiple time series in a single query using + // `timeSeriesIdColumn`. If the total number of time points is less than + // the `minTimeSeriesLength` value, then the query uses all available time + // points. + int64 min_time_series_length = 76; + + // The maximum number of time points in a time series that can be used in + // modeling the trend component of the time series. Don't use this option + // with the `timeSeriesLengthFraction` or `minTimeSeriesLength` options. + int64 max_time_series_length = 77; + + // User-selected XGBoost versions for training of XGBoost models. + string xgboost_version = 78; + + // Whether to use approximate feature contribution method in XGBoost model + // explanation for global explain. + google.protobuf.BoolValue approx_global_feature_contrib = 84; + + // Whether the model should include intercept during model training. + google.protobuf.BoolValue fit_intercept = 85; + + // Number of principal components to keep in the PCA model. Must be <= the + // number of features. + int64 num_principal_components = 86; + + // The minimum ratio of cumulative explained variance that needs to be + // given by the PCA model. + double pca_explained_variance_ratio = 87; + + // If true, scale the feature values by dividing the feature standard + // deviation. Currently only apply to PCA. + google.protobuf.BoolValue scale_features = 88; + + // The solver for PCA. + PcaSolverOptionEnums.PcaSolver pca_solver = 89; + + // Whether to calculate class weights automatically based on the + // popularity of each label. + google.protobuf.BoolValue auto_class_weights = 90; + + // Activation function of the neural nets. + string activation_fn = 91; + + // Optimizer used for training the neural nets. + string optimizer = 92; + + // Budget in hours for AutoML training. + double budget_hours = 93; + + // Whether to standardize numerical features. Default to true. + google.protobuf.BoolValue standardize_features = 94; + + // L1 regularization coefficient to activations. + double l1_reg_activation = 95; + + // The model registry. + ModelRegistryOptionEnums.ModelRegistry model_registry = 96; + + // The version aliases to apply in Vertex AI model registry. Always + // overwrite if the version aliases exists in a existing model. + repeated string vertex_ai_model_version_aliases = 97; + } + + // Information about a single iteration of the training run. + message IterationResult { + // Information about a single cluster for clustering model. + message ClusterInfo { + // Centroid id. + int64 centroid_id = 1; + + // Cluster radius, the average distance from centroid + // to each point assigned to the cluster. + google.protobuf.DoubleValue cluster_radius = 2; + + // Cluster size, the total number of points assigned to the cluster. + google.protobuf.Int64Value cluster_size = 3; + } + + // (Auto-)arima fitting result. Wrap everything in ArimaResult for easier + // refactoring if we want to use model-specific iteration results. + message ArimaResult { + // Arima coefficients. + message ArimaCoefficients { + // Auto-regressive coefficients, an array of double. + repeated double auto_regressive_coefficients = 1; + + // Moving-average coefficients, an array of double. + repeated double moving_average_coefficients = 2; + + // Intercept coefficient, just a double not an array. + google.protobuf.DoubleValue intercept_coefficient = 3; + } + + // Arima model information. + message ArimaModelInfo { + // Non-seasonal order. + ArimaOrder non_seasonal_order = 1; + + // Arima coefficients. + ArimaCoefficients arima_coefficients = 2; + + // Arima fitting metrics. + ArimaFittingMetrics arima_fitting_metrics = 3; + + // Whether Arima model fitted with drift or not. It is always false + // when d is not 1. + google.protobuf.BoolValue has_drift = 4; + + // The time_series_id value for this time series. It will be one of + // the unique values from the time_series_id_column specified during + // ARIMA model training. Only present when time_series_id_column + // training option was used. + string time_series_id = 5; + + // The tuple of time_series_ids identifying this time series. It will + // be one of the unique tuples of values present in the + // time_series_id_columns specified during ARIMA model training. Only + // present when time_series_id_columns training option was used and + // the order of values here are same as the order of + // time_series_id_columns. + repeated string time_series_ids = 10; + + // Seasonal periods. Repeated because multiple periods are supported + // for one time series. + repeated SeasonalPeriod.SeasonalPeriodType seasonal_periods = 6; + + // If true, holiday_effect is a part of time series decomposition + // result. + google.protobuf.BoolValue has_holiday_effect = 7; + + // If true, spikes_and_dips is a part of time series decomposition + // result. + google.protobuf.BoolValue has_spikes_and_dips = 8; + + // If true, step_changes is a part of time series decomposition + // result. + google.protobuf.BoolValue has_step_changes = 9; + } + + // This message is repeated because there are multiple arima models + // fitted in auto-arima. For non-auto-arima model, its size is one. + repeated ArimaModelInfo arima_model_info = 1; + + // Seasonal periods. Repeated because multiple periods are supported for + // one time series. + repeated SeasonalPeriod.SeasonalPeriodType seasonal_periods = 2; + } + + // Principal component infos, used only for eigen decomposition based + // models, e.g., PCA. Ordered by explained_variance in the descending + // order. + message PrincipalComponentInfo { + // Id of the principal component. + google.protobuf.Int64Value principal_component_id = 1; + + // Explained variance by this principal component, which is simply the + // eigenvalue. + google.protobuf.DoubleValue explained_variance = 2; + + // Explained_variance over the total explained variance. + google.protobuf.DoubleValue explained_variance_ratio = 3; + + // The explained_variance is pre-ordered in the descending order to + // compute the cumulative explained variance ratio. + google.protobuf.DoubleValue cumulative_explained_variance_ratio = 4; + } + + // Index of the iteration, 0 based. + google.protobuf.Int32Value index = 1; + + // Time taken to run the iteration in milliseconds. + google.protobuf.Int64Value duration_ms = 4; + + // Loss computed on the training data at the end of iteration. + google.protobuf.DoubleValue training_loss = 5; + + // Loss computed on the eval data at the end of iteration. + google.protobuf.DoubleValue eval_loss = 6; + + // Learn rate used for this iteration. + double learn_rate = 7; + + // Information about top clusters for clustering models. + repeated ClusterInfo cluster_infos = 8; + + // Arima result. + ArimaResult arima_result = 9; + + // The information of the principal components. + repeated PrincipalComponentInfo principal_component_infos = 10; + } + + // Output only. Options that were used for this training run, includes + // user specified and default options that were used. + TrainingOptions training_options = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The start time of this training run. + google.protobuf.Timestamp start_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Output of each iteration run, results.size() <= + // max_iterations. + repeated IterationResult results = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The evaluation metrics over training/eval data that were + // computed at the end of training. + EvaluationMetrics evaluation_metrics = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Data split result of the training run. Only set when the + // input data is actually split. + DataSplitResult data_split_result = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Global explanation contains the explanation of top features + // on the model level. Applies to both regression and classification models. + GlobalExplanation model_level_global_explanation = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Global explanation contains the explanation of top features + // on the class level. Applies to classification models only. + repeated GlobalExplanation class_level_global_explanations = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The model id in the [Vertex AI Model + // Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) + // for this training run. + string vertex_ai_model_id = 14; + + // Output only. The model version in the [Vertex AI Model + // Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) + // for this training run. + string vertex_ai_model_version = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Search space for a double hyperparameter. + message DoubleHparamSearchSpace { + // Range of a double hyperparameter. + message DoubleRange { + // Min value of the double parameter. + google.protobuf.DoubleValue min = 1; + + // Max value of the double parameter. + google.protobuf.DoubleValue max = 2; + } + + // Discrete candidates of a double hyperparameter. + message DoubleCandidates { + // Candidates for the double parameter in increasing order. + repeated google.protobuf.DoubleValue candidates = 1; + } + + // Search space. + oneof search_space { + // Range of the double hyperparameter. + DoubleRange range = 1; + + // Candidates of the double hyperparameter. + DoubleCandidates candidates = 2; + } + } + + // Search space for an int hyperparameter. + message IntHparamSearchSpace { + // Range of an int hyperparameter. + message IntRange { + // Min value of the int parameter. + google.protobuf.Int64Value min = 1; + + // Max value of the int parameter. + google.protobuf.Int64Value max = 2; + } + + // Discrete candidates of an int hyperparameter. + message IntCandidates { + // Candidates for the int parameter in increasing order. + repeated google.protobuf.Int64Value candidates = 1; + } + + // Search space. + oneof search_space { + // Range of the int hyperparameter. + IntRange range = 1; + + // Candidates of the int hyperparameter. + IntCandidates candidates = 2; + } + } + + // Search space for string and enum. + message StringHparamSearchSpace { + // Canididates for the string or enum parameter in lower case. + repeated string candidates = 1; + } + + // Search space for int array. + message IntArrayHparamSearchSpace { + // An array of int. + message IntArray { + // Elements in the int array. + repeated int64 elements = 1; + } + + // Candidates for the int array parameter. + repeated IntArray candidates = 1; + } + + // Hyperparameter search spaces. + // These should be a subset of training_options. + message HparamSearchSpaces { + // Learning rate of training jobs. + DoubleHparamSearchSpace learn_rate = 2; + + // L1 regularization coefficient. + DoubleHparamSearchSpace l1_reg = 3; + + // L2 regularization coefficient. + DoubleHparamSearchSpace l2_reg = 4; + + // Number of clusters for k-means. + IntHparamSearchSpace num_clusters = 26; + + // Number of latent factors to train on. + IntHparamSearchSpace num_factors = 31; + + // Hidden units for neural network models. + IntArrayHparamSearchSpace hidden_units = 34; + + // Mini batch sample size. + IntHparamSearchSpace batch_size = 37; + + // Dropout probability for dnn model training and boosted tree models + // using dart booster. + DoubleHparamSearchSpace dropout = 38; + + // Maximum depth of a tree for boosted tree models. + IntHparamSearchSpace max_tree_depth = 41; + + // Subsample the training data to grow tree to prevent overfitting for + // boosted tree models. + DoubleHparamSearchSpace subsample = 42; + + // Minimum split loss for boosted tree models. + DoubleHparamSearchSpace min_split_loss = 43; + + // Hyperparameter for matrix factoration when implicit feedback type is + // specified. + DoubleHparamSearchSpace wals_alpha = 49; + + // Booster type for boosted tree models. + StringHparamSearchSpace booster_type = 56; + + // Number of parallel trees for boosted tree models. + IntHparamSearchSpace num_parallel_tree = 57; + + // Dart normalization type for boosted tree models. + StringHparamSearchSpace dart_normalize_type = 58; + + // Tree construction algorithm for boosted tree models. + StringHparamSearchSpace tree_method = 59; + + // Minimum sum of instance weight needed in a child for boosted tree models. + IntHparamSearchSpace min_tree_child_weight = 60; + + // Subsample ratio of columns when constructing each tree for boosted tree + // models. + DoubleHparamSearchSpace colsample_bytree = 61; + + // Subsample ratio of columns for each level for boosted tree models. + DoubleHparamSearchSpace colsample_bylevel = 62; + + // Subsample ratio of columns for each node(split) for boosted tree models. + DoubleHparamSearchSpace colsample_bynode = 63; + + // Activation functions of neural network models. + StringHparamSearchSpace activation_fn = 67; + + // Optimizer of TF models. + StringHparamSearchSpace optimizer = 68; + } + + // Training info of a trial in [hyperparameter + // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // models. + message HparamTuningTrial { + // Current status of the trial. + enum TrialStatus { + // Default value. + TRIAL_STATUS_UNSPECIFIED = 0; + + // Scheduled but not started. + NOT_STARTED = 1; + + // Running state. + RUNNING = 2; + + // The trial succeeded. + SUCCEEDED = 3; + + // The trial failed. + FAILED = 4; + + // The trial is infeasible due to the invalid params. + INFEASIBLE = 5; + + // Trial stopped early because it's not promising. + STOPPED_EARLY = 6; + } + + // 1-based index of the trial. + int64 trial_id = 1; + + // Starting time of the trial. + int64 start_time_ms = 2; + + // Ending time of the trial. + int64 end_time_ms = 3; + + // The hyperprameters selected for this trial. + TrainingRun.TrainingOptions hparams = 4; + + // Evaluation metrics of this trial calculated on the test data. + // Empty in Job API. + EvaluationMetrics evaluation_metrics = 5; + + // The status of the trial. + TrialStatus status = 6; + + // Error message for FAILED and INFEASIBLE trial. + string error_message = 7; + + // Loss computed on the training data at the end of trial. + google.protobuf.DoubleValue training_loss = 8; + + // Loss computed on the eval data at the end of trial. + google.protobuf.DoubleValue eval_loss = 9; + + // Hyperparameter tuning evaluation metrics of this trial calculated on the + // eval data. Unlike evaluation_metrics, only the fields corresponding to + // the hparam_tuning_objectives are set. + EvaluationMetrics hparam_tuning_evaluation_metrics = 10; + } + + // Output only. A hash of this resource. + string etag = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Unique identifier for this model. + ModelReference model_reference = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The time when this model was created, in millisecs since the + // epoch. + int64 creation_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this model was last modified, in millisecs since + // the epoch. + int64 last_modified_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A user-friendly description of this model. + string description = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A descriptive name for this model. + string friendly_name = 14 [(google.api.field_behavior) = OPTIONAL]; + + // The labels associated with this model. You can use these to organize + // and group your models. Label keys and values can be no longer + // than 63 characters, can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter and each + // label in the list must have a different key. + map labels = 15; + + // Optional. The time when this model expires, in milliseconds since the + // epoch. If not present, the model will persist indefinitely. Expired models + // will be deleted and their storage reclaimed. The defaultTableExpirationMs + // property of the encapsulating dataset can be used to set a default + // expirationTime on newly created models. + int64 expiration_time = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The geographic location where the model resides. This value + // is inherited from the dataset. + string location = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Custom encryption configuration (e.g., Cloud KMS keys). This shows the + // encryption configuration of the model data while stored in BigQuery + // storage. This field can be used with PatchModel to update encryption key + // for an already encrypted model. + EncryptionConfiguration encryption_configuration = 17; + + // Output only. Type of the model resource. + ModelType model_type = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Information for all training runs in increasing order of start_time. + repeated TrainingRun training_runs = 9; + + // Output only. Input feature columns for the model inference. If the model is + // trained with TRANSFORM clause, these are the input of the TRANSFORM clause. + repeated StandardSqlField feature_columns = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Label columns that were used to train this model. + // The output of the model will have a "predicted_" prefix to these columns. + repeated StandardSqlField label_columns = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field will be populated if a TRANSFORM clause was used to + // train a model. TRANSFORM clause (if used) takes feature_columns as input + // and outputs transform_columns. transform_columns then are used to train the + // model. + repeated TransformColumn transform_columns = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. All hyperparameter search spaces in this model. + HparamSearchSpaces hparam_search_spaces = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The default trial_id to use in TVFs when the trial_id is not + // passed in. For single-objective [hyperparameter + // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // models, this is the best trial ID. For multi-objective [hyperparameter + // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // models, this is the smallest trial ID among all Pareto optimal trials. + int64 default_trial_id = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Trials of a [hyperparameter + // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // model sorted by trial_id. + repeated HparamTuningTrial hparam_trials = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For single-objective [hyperparameter + // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // models, it only contains the best trial. For multi-objective + // [hyperparameter + // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // models, it contains all Pareto optimal trials sorted by trial_id. + repeated int64 optimal_trial_ids = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Remote model info + RemoteModelInfo remote_model_info = 25 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request format for getting information about a BigQuery ML model. +message GetModelRequest { + // Required. Project ID of the requested model. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the requested model. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Model ID of the requested model. + string model_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +message PatchModelRequest { + // Required. Project ID of the model to patch. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the model to patch. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Model ID of the model to patch. + string model_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Patched model. + // Follows RFC5789 patch semantics. Missing fields are not updated. + // To clear a field, explicitly set to default value. + Model model = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Request format for deleting BigQuery ML models. +message DeleteModelRequest { + // Required. Project ID of the model to delete. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the model to delete. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Model ID of the model to delete. + string model_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request format for listing BigQuery ML models. +message ListModelsRequest { + // Required. Project ID of the models to list. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the models to list. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of results to return in a single response page. + // Leverage the page tokens to iterate through the entire collection. + google.protobuf.UInt32Value max_results = 3; + + // Page token, returned by a previous call to request the next page of + // results + string page_token = 4; +} + +// Response format for a single page when listing BigQuery ML models. +message ListModelsResponse { + // Models in the requested dataset. Only the following fields are populated: + // model_reference, model_type, creation_time, last_modified_time and + // labels. + repeated Model models = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/model_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/model_reference.proto new file mode 100644 index 000000000..9f190254e --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/model_reference.proto @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "ModelReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Id path of a model. +message ModelReference { + // Required. The ID of the project containing this model. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the dataset containing this model. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the model. The ID must contain only + // letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum + // length is 1,024 characters. + string model_id = 3 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/partitioning_definition.proto b/third_party/googleapis/google/cloud/bigquery/v2/partitioning_definition.proto new file mode 100644 index 000000000..f331cb56a --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/partitioning_definition.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "PartitioningDefinitionProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// The partitioning information, which includes managed table, external table +// and metastore partitioned table partition information. +message PartitioningDefinition { + // Optional. Details about each partitioning column. This field is output only + // for all partitioning types other than metastore partitioned tables. + // BigQuery native tables only support 1 partitioning column. Other table + // types may support 0, 1 or more partitioning columns. + // For metastore partitioned tables, the order must match the definition order + // in the Hive Metastore, where it must match the physical layout of the + // table. For example, + // + // CREATE TABLE a_table(id BIGINT, name STRING) + // PARTITIONED BY (city STRING, state STRING). + // + // In this case the values must be ['city', 'state'] in that order. + repeated PartitionedColumn partitioned_column = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The partitioning column information. +message PartitionedColumn { + // Required. The name of the partition column. + optional string field = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/privacy_policy.proto b/third_party/googleapis/google/cloud/bigquery/v2/privacy_policy.proto new file mode 100644 index 000000000..35f40a0a0 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/privacy_policy.proto @@ -0,0 +1,169 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "PrivacyPolicyProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Represents privacy policy associated with "aggregation threshold" method. +message AggregationThresholdPolicy { + // Optional. The threshold for the "aggregation threshold" policy. + optional int64 threshold = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The privacy unit column(s) associated with this policy. + // For now, only one column per data source object (table, view) is allowed as + // a privacy unit column. + // Representing as a repeated field in metadata for extensibility to + // multiple columns in future. + // Duplicates and Repeated struct fields are not allowed. + // For nested fields, use dot notation ("outer.inner") + repeated string privacy_unit_columns = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents privacy policy associated with "differential privacy" method. +message DifferentialPrivacyPolicy { + // Optional. The maximum epsilon value that a query can consume. If the + // subscriber specifies epsilon as a parameter in a SELECT query, it must be + // less than or equal to this value. The epsilon parameter controls the amount + // of noise that is added to the groups — a higher epsilon means less noise. + optional double max_epsilon_per_query = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The delta value that is used per query. Delta represents the + // probability that any row will fail to be epsilon differentially private. + // Indicates the risk associated with exposing aggregate rows in the result of + // a query. + optional double delta_per_query = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum groups contributed value that is used per query. + // Represents the maximum number of groups to which each protected entity can + // contribute. Changing this value does not improve or worsen privacy. The + // best value for accuracy and utility depends on the query and data. + optional int64 max_groups_contributed = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The privacy unit column associated with this policy. Differential + // privacy policies can only have one privacy unit column per data source + // object (table, view). + optional string privacy_unit_column = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The total epsilon budget for all queries against the + // privacy-protected view. Each subscriber query against this view charges the + // amount of epsilon they request in their query. If there is sufficient + // budget, then the subscriber query attempts to complete. It might still fail + // due to other reasons, in which case the charge is refunded. If there is + // insufficient budget the query is rejected. There might be multiple charge + // attempts if a single query references multiple views. In this case there + // must be sufficient budget for all charges or the query is rejected and + // charges are refunded in best effort. The budget does not have a refresh + // policy and can only be updated via ALTER VIEW or circumvented by creating a + // new view that can be queried with a fresh budget. + optional double epsilon_budget = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The total delta budget for all queries against the + // privacy-protected view. Each subscriber query against this view charges the + // amount of delta that is pre-defined by the contributor through the privacy + // policy delta_per_query field. If there is sufficient budget, then the + // subscriber query attempts to complete. It might still fail due to other + // reasons, in which case the charge is refunded. If there is insufficient + // budget the query is rejected. There might be multiple charge attempts if a + // single query references multiple views. In this case there must be + // sufficient budget for all charges or the query is rejected and charges are + // refunded in best effort. The budget does not have a refresh policy and can + // only be updated via ALTER VIEW or circumvented by creating a new view that + // can be queried with a fresh budget. + optional double delta_budget = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The epsilon budget remaining. If budget is exhausted, no more + // queries are allowed. Note that the budget for queries that are in progress + // is deducted before the query executes. If the query fails or is cancelled + // then the budget is refunded. In this case the amount of budget remaining + // can increase. + optional double epsilon_budget_remaining = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The delta budget remaining. If budget is exhausted, no more + // queries are allowed. Note that the budget for queries that are in progress + // is deducted before the query executes. If the query fails or is cancelled + // then the budget is refunded. In this case the amount of budget remaining + // can increase. + optional double delta_budget_remaining = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents privacy policy associated with "join restrictions". Join +// restriction gives data providers the ability to enforce joins on the +// 'join_allowed_columns' when data is queried from a privacy protected view. +message JoinRestrictionPolicy { + // Enum for Join Restrictions policy. + enum JoinCondition { + // A join is neither required nor restricted on any column. Default value. + JOIN_CONDITION_UNSPECIFIED = 0; + + // A join is required on at least one of the specified columns. + JOIN_ANY = 1; + + // A join is required on all specified columns. + JOIN_ALL = 2; + + // A join is not required, but if present it is only permitted on + // 'join_allowed_columns' + JOIN_NOT_REQUIRED = 3; + + // Joins are blocked for all queries. + JOIN_BLOCKED = 4; + } + + // Optional. Specifies if a join is required or not on queries for the view. + // Default is JOIN_CONDITION_UNSPECIFIED. + optional JoinCondition join_condition = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The only columns that joins are allowed on. + // This field is must be specified for join_conditions JOIN_ANY and JOIN_ALL + // and it cannot be set for JOIN_BLOCKED. + repeated string join_allowed_columns = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents privacy policy that contains the privacy requirements specified by +// the data owner. Currently, this is only supported on views. +message PrivacyPolicy { + // Privacy policy associated with this requirement specification. Only one of + // the privacy methods is allowed per data source object. + oneof privacy_policy { + // Optional. Policy used for aggregation thresholds. + AggregationThresholdPolicy aggregation_threshold_policy = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Policy used for differential privacy. + DifferentialPrivacyPolicy differential_privacy_policy = 3 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Join restriction policy is outside of the one of policies, since + // this policy can be set along with other policies. This policy gives data + // providers the ability to enforce joins on the 'join_allowed_columns' when + // data is queried from a privacy protected view. + optional JoinRestrictionPolicy join_restriction_policy = 1 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/project.proto b/third_party/googleapis/google/cloud/bigquery/v2/project.proto new file mode 100644 index 000000000..f04d3962e --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/project.proto @@ -0,0 +1,61 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "ProjectProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This is an experimental RPC service definition for the BigQuery +// Project Service. +// +// It should not be relied on for production use cases at this time. +service ProjectService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // RPC to get the service account for a project used for interactions with + // Google Cloud KMS + rpc GetServiceAccount(GetServiceAccountRequest) + returns (GetServiceAccountResponse) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/serviceAccount" + }; + } +} + +// Request object of GetServiceAccount +message GetServiceAccountRequest { + // Required. ID of the project. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response object of GetServiceAccount +message GetServiceAccountResponse { + // The resource type of the response. + string kind = 1; + + // The service account email address. + string email = 2; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/query_parameter.proto b/third_party/googleapis/google/cloud/bigquery/v2/query_parameter.proto new file mode 100644 index 000000000..e65a95b80 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/query_parameter.proto @@ -0,0 +1,101 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "QueryParameterProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// The type of a struct parameter. +message QueryParameterStructType { + // Optional. The name of this field. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The type of this field. + QueryParameterType type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Human-oriented description of the field. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The type of a query parameter. +message QueryParameterType { + // Required. The top level type of this field. + string type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The type of the array's elements, if this is an array. + QueryParameterType array_type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The types of the fields of this struct, in order, if this is a + // struct. + repeated QueryParameterStructType struct_types = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The element type of the range, if this is a range. + QueryParameterType range_element_type = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the value of a range. +message RangeValue { + // Optional. The start value of the range. A missing value represents an + // unbounded start. + QueryParameterValue start = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The end value of the range. A missing value represents an + // unbounded end. + QueryParameterValue end = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The value of a query parameter. +message QueryParameterValue { + // Optional. The value of this value, if a simple scalar type. + google.protobuf.StringValue value = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The array values, if this is an array type. + repeated QueryParameterValue array_values = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // The struct field values. + map struct_values = 3; + + // Optional. The range value, if this is a range type. + RangeValue range_value = 6 [(google.api.field_behavior) = OPTIONAL]; + + // This field should not be used. + repeated google.protobuf.Value alt_struct_values = 5; +} + +// A parameter given to a query. +message QueryParameter { + // Optional. If unset, this is a positional parameter. Otherwise, should be + // unique within a query. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The type of this parameter. + QueryParameterType parameter_type = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The value of this parameter. + QueryParameterValue parameter_value = 3 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/range_partitioning.proto b/third_party/googleapis/google/cloud/bigquery/v2/range_partitioning.proto new file mode 100644 index 000000000..1cfded0c9 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/range_partitioning.proto @@ -0,0 +1,47 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "RangePartitioningProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +message RangePartitioning { + // Defines the ranges for range partitioning. + message Range { + // Required. The start of range partitioning, inclusive. This field is an + // INT64 value represented as a string. + string start = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The end of range partitioning, exclusive. This field is an + // INT64 value represented as a string. + string end = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The width of each interval. This field is an INT64 value + // represented as a string. + string interval = 3 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. The name of the column to partition the table on. It must be a + // top-level, INT64 column whose mode is NULLABLE or REQUIRED. + string field = 1 [(google.api.field_behavior) = REQUIRED]; + + // Defines the ranges for range partitioning. + Range range = 2; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/restriction_config.proto b/third_party/googleapis/google/cloud/bigquery/v2/restriction_config.proto new file mode 100644 index 000000000..e8c4e32bf --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/restriction_config.proto @@ -0,0 +1,40 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "RestrictionConfigProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +message RestrictionConfig { + // RestrictionType specifies the type of dataset/table restriction. + enum RestrictionType { + // Should never be used. + RESTRICTION_TYPE_UNSPECIFIED = 0; + + // Restrict data egress. See [Data + // egress](/bigquery/docs/analytics-hub-introduction#data_egress) for more + // details. + RESTRICTED_DATA_EGRESS = 1; + } + + // Output only. Specifies the type of dataset/table restriction. + RestrictionType type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/routine.proto b/third_party/googleapis/google/cloud/bigquery/v2/routine.proto new file mode 100644 index 000000000..0e45dacad --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/routine.proto @@ -0,0 +1,551 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/routine_reference.proto"; +import "google/cloud/bigquery/v2/standard_sql.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "RoutineProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This is an experimental RPC service definition for the BigQuery +// Routine Service. +// +// It should not be relied on for production use cases at this time. +service RoutineService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Gets the specified routine resource by routine ID. + rpc GetRoutine(GetRoutineRequest) returns (Routine) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines/{routine_id=*}" + }; + } + + // Creates a new routine in the dataset. + rpc InsertRoutine(InsertRoutineRequest) returns (Routine) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines" + body: "routine" + }; + } + + // Updates information in an existing routine. The update method replaces the + // entire Routine resource. + rpc UpdateRoutine(UpdateRoutineRequest) returns (Routine) { + option (google.api.http) = { + put: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines/{routine_id=*}" + body: "routine" + }; + } + + // Patches information in an existing routine. The patch method does a partial + // update to an existing Routine resource. + rpc PatchRoutine(PatchRoutineRequest) returns (Routine) {} + + // Deletes the routine specified by routineId from the dataset. + rpc DeleteRoutine(DeleteRoutineRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines/{routine_id=*}" + }; + } + + // Lists all routines in the specified dataset. Requires the READER dataset + // role. + rpc ListRoutines(ListRoutinesRequest) returns (ListRoutinesResponse) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/routines" + }; + } +} + +// A user-defined function or a stored procedure. +message Routine { + // The fine-grained type of the routine. + enum RoutineType { + // Default value. + ROUTINE_TYPE_UNSPECIFIED = 0; + + // Non-built-in persistent scalar function. + SCALAR_FUNCTION = 1; + + // Stored procedure. + PROCEDURE = 2; + + // Non-built-in persistent TVF. + TABLE_VALUED_FUNCTION = 3; + + // Non-built-in persistent aggregate function. + AGGREGATE_FUNCTION = 4; + } + + // The language of the routine. + enum Language { + // Default value. + LANGUAGE_UNSPECIFIED = 0; + + // SQL language. + SQL = 1; + + // JavaScript language. + JAVASCRIPT = 2; + + // Python language. + PYTHON = 3; + + // Java language. + JAVA = 4; + + // Scala language. + SCALA = 5; + } + + // Input/output argument of a function or a stored procedure. + message Argument { + // Represents the kind of a given argument. + enum ArgumentKind { + // Default value. + ARGUMENT_KIND_UNSPECIFIED = 0; + + // The argument is a variable with fully specified type, which can be a + // struct or an array, but not a table. + FIXED_TYPE = 1; + + // The argument is any type, including struct or array, but not a table. + // To be added: FIXED_TABLE, ANY_TABLE + ANY_TYPE = 2; + } + + // The input/output mode of the argument. + enum Mode { + // Default value. + MODE_UNSPECIFIED = 0; + + // The argument is input-only. + IN = 1; + + // The argument is output-only. + OUT = 2; + + // The argument is both an input and an output. + INOUT = 3; + } + + // Optional. The name of this argument. Can be absent for function return + // argument. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defaults to FIXED_TYPE. + ArgumentKind argument_kind = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the argument is input or output. + // Can be set for procedures only. + Mode mode = 3; + + // Required unless argument_kind = ANY_TYPE. + StandardSqlDataType data_type = 4; + + // Optional. Whether the argument is an aggregate function parameter. + // Must be Unset for routine types other than AGGREGATE_FUNCTION. + // For AGGREGATE_FUNCTION, if set to false, it is equivalent to adding "NOT + // AGGREGATE" clause in DDL; Otherwise, it is equivalent to omitting "NOT + // AGGREGATE" clause in DDL. + google.protobuf.BoolValue is_aggregate = 6 + [(google.api.field_behavior) = OPTIONAL]; + } + + // JavaScript UDF determinism levels. + // + // If all JavaScript UDFs are DETERMINISTIC, the query result is + // potentially cachable (see below). If any JavaScript UDF is + // NOT_DETERMINISTIC, the query result is not cacheable. + // + // Even if a JavaScript UDF is deterministic, many other factors can prevent + // usage of cached query results. Example factors include but not limited to: + // DDL/DML, non-deterministic SQL function calls, update of referenced + // tables/views/UDFs or imported JavaScript libraries. + // + // SQL UDFs cannot have determinism specified. Their determinism is + // automatically determined. + enum DeterminismLevel { + // The determinism of the UDF is unspecified. + DETERMINISM_LEVEL_UNSPECIFIED = 0; + + // The UDF is deterministic, meaning that 2 function calls with the same + // inputs always produce the same result, even across 2 query runs. + DETERMINISTIC = 1; + + // The UDF is not deterministic. + NOT_DETERMINISTIC = 2; + } + + // Security mode. + enum SecurityMode { + // The security mode of the routine is unspecified. + SECURITY_MODE_UNSPECIFIED = 0; + + // The routine is to be executed with the privileges of the user who + // defines it. + DEFINER = 1; + + // The routine is to be executed with the privileges of the user who + // invokes it. + INVOKER = 2; + } + + // Options for a remote user-defined function. + message RemoteFunctionOptions { + // Endpoint of the user-provided remote service, e.g. + // ```https://us-east1-my_gcf_project.cloudfunctions.net/remote_add``` + string endpoint = 1; + + // 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}"``` + string connection = 2; + + // 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. + map user_defined_context = 3; + + // 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. + int64 max_batching_rows = 4; + } + + // Data governance type values. Only supports `DATA_MASKING`. + enum DataGovernanceType { + // The data governance type is unspecified. + DATA_GOVERNANCE_TYPE_UNSPECIFIED = 0; + + // The data governance type is data masking. + DATA_MASKING = 1; + } + + // Output only. A hash of this resource. + string etag = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Reference describing the ID of this routine. + RoutineReference routine_reference = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of routine. + RoutineType routine_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The time when this routine was created, in milliseconds since + // the epoch. + int64 creation_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this routine was last modified, in milliseconds + // since the epoch. + int64 last_modified_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Defaults to "SQL" if remote_function_options field is absent, not + // set otherwise. + Language language = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. + repeated Argument arguments = 7; + + // Optional if language = "SQL"; required otherwise. + // Cannot be set if routine_type = "TABLE_VALUED_FUNCTION". + // + // If absent, the return type is inferred from definition_body at query time + // in each query that references this routine. If present, then the evaluated + // result will be cast to the specified returned type at query time. + // + // For example, for the functions created with the following statements: + // + // * `CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x + y);` + // + // * `CREATE FUNCTION Increment(x FLOAT64) AS (Add(x, 1));` + // + // * `CREATE FUNCTION Decrement(x FLOAT64) RETURNS FLOAT64 AS (Add(x, -1));` + // + // The return_type is `{type_kind: "FLOAT64"}` for `Add` and `Decrement`, and + // is absent for `Increment` (inferred as FLOAT64 at query time). + // + // Suppose the function `Add` is replaced by + // `CREATE OR REPLACE FUNCTION Add(x INT64, y INT64) AS (x + y);` + // + // Then the inferred return type of `Increment` is automatically changed to + // INT64 at query time, while the return type of `Decrement` remains FLOAT64. + StandardSqlDataType return_type = 10; + + // Optional. Can be set only if routine_type = "TABLE_VALUED_FUNCTION". + // + // If absent, the return table type is inferred from definition_body at query + // time in each query that references this routine. If present, then the + // columns in the evaluated table result will be cast to match the column + // types specified in return table type, at query time. + StandardSqlTableType return_table_type = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If language = "JAVASCRIPT", this field stores the path of the + // imported JAVASCRIPT libraries. + repeated string imported_libraries = 8; + + // Required. The body of the routine. + // + // For functions, this is the expression in the AS clause. + // + // If language=SQL, it is the substring inside (but excluding) the + // parentheses. For example, for the function created with the following + // statement: + // + // `CREATE FUNCTION JoinLines(x string, y string) as (concat(x, "\n", y))` + // + // The definition_body is `concat(x, "\n", y)` (\n is not replaced with + // linebreak). + // + // If language=JAVASCRIPT, it is the evaluated string in the AS clause. + // For example, for the function created with the following statement: + // + // `CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return "\n";\n'` + // + // The definition_body is + // + // `return "\n";\n` + // + // Note that both \n are replaced with linebreaks. + string definition_body = 9; + + // Optional. The description of the routine, if defined. + string description = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The determinism level of the JavaScript UDF, if defined. + DeterminismLevel determinism_level = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The security mode of the routine, if defined. If not defined, the + // security mode is automatically determined from the routine's configuration. + SecurityMode security_mode = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Use this option to catch many common errors. Error checking is + // not exhaustive, and successfully creating a procedure doesn't guarantee + // that the procedure will successfully execute at runtime. If `strictMode` is + // set to `TRUE`, the procedure body is further checked for errors such as + // non-existent tables or columns. The `CREATE PROCEDURE` statement fails if + // the body fails any of these checks. + // + // If `strictMode` is set to `FALSE`, the procedure body is checked only for + // syntax. For procedures that invoke themselves recursively, specify + // `strictMode=FALSE` to avoid non-existent procedure errors during + // validation. + // + // Default value is `TRUE`. + google.protobuf.BoolValue strict_mode = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Remote function specific options. + RemoteFunctionOptions remote_function_options = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Spark specific options. + SparkOptions spark_options = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to `DATA_MASKING`, the function is validated and made + // available as a masking function. For more information, see [Create custom + // masking + // routines](https://cloud.google.com/bigquery/docs/user-defined-functions#custom-mask). + DataGovernanceType data_governance_type = 17 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Options for a user-defined Spark routine. +message SparkOptions { + // Fully qualified name of the user-provided Spark connection object. Format: + // ```"projects/{project_id}/locations/{location_id}/connections/{connection_id}"``` + string connection = 1; + + // Runtime version. If not specified, the default runtime version is used. + string runtime_version = 2; + + // Custom container image for the runtime environment. + string container_image = 3; + + // Configuration properties as a set of key/value pairs, which will be passed + // on to the Spark application. For more information, see + // [Apache Spark](https://spark.apache.org/docs/latest/index.html) and the + // [procedure option + // list](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#procedure_option_list). + map properties = 4; + + // The main file/jar URI of the Spark application. Exactly one of the + // definition_body field and the main_file_uri field must be set for Python. + // Exactly one of main_class and main_file_uri field + // should be set for Java/Scala language type. + string main_file_uri = 5; + + // Python files to be placed on the PYTHONPATH for PySpark application. + // Supported file types: `.py`, `.egg`, and `.zip`. For more information + // about Apache Spark, see + // [Apache Spark](https://spark.apache.org/docs/latest/index.html). + repeated string py_file_uris = 6; + + // JARs to include on the driver and executor CLASSPATH. + // For more information about Apache Spark, see + // [Apache Spark](https://spark.apache.org/docs/latest/index.html). + repeated string jar_uris = 7; + + // Files to be placed in the working directory of each executor. + // For more information about Apache Spark, see + // [Apache Spark](https://spark.apache.org/docs/latest/index.html). + repeated string file_uris = 8; + + // Archive files to be extracted into the working directory of each executor. + // For more information about Apache Spark, see + // [Apache Spark](https://spark.apache.org/docs/latest/index.html). + repeated string archive_uris = 9; + + // The fully qualified name of a class in jar_uris, for example, + // com.example.wordcount. Exactly one of main_class and main_jar_uri field + // should be set for Java/Scala language type. + string main_class = 10; +} + +// Describes the format for getting information about a routine. +message GetRoutineRequest { + // Required. Project ID of the requested routine + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the requested routine + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Routine ID of the requested routine + string routine_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // If set, only the Routine fields in the field mask are returned in the + // response. If unset, all Routine fields are returned. + google.protobuf.FieldMask read_mask = 4; +} + +// Describes the format for inserting a routine. +message InsertRoutineRequest { + // Required. Project ID of the new routine + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the new routine + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A routine resource to insert + Routine routine = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Describes the format for updating a routine. +message UpdateRoutineRequest { + // Required. Project ID of the routine to update + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the routine to update + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Routine ID of the routine to update + string routine_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. A routine resource which will replace the specified routine + Routine routine = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Describes the format for the partial update (patch) of a routine. +message PatchRoutineRequest { + // Required. Project ID of the routine to update + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the routine to update + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Routine ID of the routine to update + string routine_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. A routine resource which will be used to partially + // update the specified routine + Routine routine = 4 [(google.api.field_behavior) = REQUIRED]; + + // Only the Routine fields in the field mask are updated + // by the given routine. Repeated routine fields will be fully replaced + // if contained in the field mask. + google.protobuf.FieldMask field_mask = 5; +} + +// Describes the format for deleting a routine. +message DeleteRoutineRequest { + // Required. Project ID of the routine to delete + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the routine to delete + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Routine ID of the routine to delete + string routine_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Describes the format for listing routines. +message ListRoutinesRequest { + // Required. Project ID of the routines to list + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the routines to list + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of results to return in a single response page. + // Leverage the page tokens to iterate through the entire collection. + google.protobuf.UInt32Value max_results = 3; + + // Page token, returned by a previous call, to request the next page of + // results + string page_token = 4; + + // If set, then only the Routine fields in the field mask, as well as + // project_id, dataset_id and routine_id, are returned in the response. + // If unset, then the following Routine fields are returned: + // etag, project_id, dataset_id, routine_id, routine_type, creation_time, + // last_modified_time, and language. + google.protobuf.FieldMask read_mask = 5; + + // If set, then only the Routines matching this filter are returned. + // The supported format is `routineType:{RoutineType}`, where `{RoutineType}` + // is a RoutineType enum. For example: `routineType:SCALAR_FUNCTION`. + string filter = 6; +} + +// Describes the format of a single result page when listing routines. +message ListRoutinesResponse { + // Routines in the requested dataset. Unless read_mask is set in the request, + // only the following fields are populated: + // etag, project_id, dataset_id, routine_id, routine_type, creation_time, + // last_modified_time, language, and remote_function_options. + repeated Routine routines = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/routine_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/routine_reference.proto new file mode 100644 index 000000000..65ab1ae8d --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/routine_reference.proto @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "RoutineReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Id path of a routine. +message RoutineReference { + // Required. The ID of the project containing this routine. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the dataset containing this routine. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the routine. The ID must contain only + // letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum + // length is 256 characters. + string routine_id = 3 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/row_access_policy.proto b/third_party/googleapis/google/cloud/bigquery/v2/row_access_policy.proto new file mode 100644 index 000000000..c6eb2e9b7 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/row_access_policy.proto @@ -0,0 +1,108 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/row_access_policy_reference.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "RowAccessPolicyProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Service for interacting with row access policies. +service RowAccessPolicyService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Lists all row access policies on the specified table. + rpc ListRowAccessPolicies(ListRowAccessPoliciesRequest) + returns (ListRowAccessPoliciesResponse) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}/rowAccessPolicies" + }; + } +} + +// Request message for the ListRowAccessPolicies method. +message ListRowAccessPoliciesRequest { + // Required. Project ID of the row access policies to list. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of row access policies to list. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Table ID of the table to list row access policies. + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Page token, returned by a previous call, to request the next page of + // results. + string page_token = 4; + + // The maximum number of results to return in a single response page. Leverage + // the page tokens to iterate through the entire collection. + int32 page_size = 5; +} + +// Response message for the ListRowAccessPolicies method. +message ListRowAccessPoliciesResponse { + // Row access policies on the requested table. + repeated RowAccessPolicy row_access_policies = 1; + + // A token to request the next page of results. + string next_page_token = 2; +} + +// Represents access on a subset of rows on the specified table, defined by its +// filter predicate. Access to the subset of rows is controlled by its IAM +// policy. +message RowAccessPolicy { + // Output only. A hash of this resource. + string etag = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Reference describing the ID of this row access policy. + RowAccessPolicyReference row_access_policy_reference = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A SQL boolean expression that represents the rows defined by this + // row access policy, similar to the boolean expression in a WHERE clause of a + // SELECT query on a table. + // References to other tables, routines, and temporary functions are not + // supported. + // + // Examples: region="EU" + // date_field = CAST('2019-9-27' as DATE) + // nullable_field is not NULL + // numeric_field BETWEEN 1.0 AND 5.0 + string filter_predicate = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The time when this row access policy was created, in + // milliseconds since the epoch. + google.protobuf.Timestamp creation_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this row access policy was last modified, in + // milliseconds since the epoch. + google.protobuf.Timestamp last_modified_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/row_access_policy_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/row_access_policy_reference.proto new file mode 100644 index 000000000..28028dab0 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/row_access_policy_reference.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "RowAccessPolicyReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Id path of a row access policy. +message RowAccessPolicyReference { + // Required. The ID of the project containing this row access policy. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the dataset containing this row access policy. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the table containing this row access policy. + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the row access policy. The ID must contain only + // letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum + // length is 256 characters. + string policy_id = 4 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/session_info.proto b/third_party/googleapis/google/cloud/bigquery/v2/session_info.proto new file mode 100644 index 000000000..333ab3b7e --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/session_info.proto @@ -0,0 +1,30 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "SessionInfoProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// [Preview] Information related to sessions. +message SessionInfo { + // Output only. The id of the session. + string session_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/standard_sql.proto b/third_party/googleapis/google/cloud/bigquery/v2/standard_sql.proto new file mode 100644 index 000000000..1b393ac5c --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/standard_sql.proto @@ -0,0 +1,159 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "StandardSqlProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// The data type of a variable such as a function argument. +// Examples include: +// +// * INT64: `{"typeKind": "INT64"}` +// +// * ARRAY: +// +// { +// "typeKind": "ARRAY", +// "arrayElementType": {"typeKind": "STRING"} +// } +// +// * STRUCT>: +// +// { +// "typeKind": "STRUCT", +// "structType": +// { +// "fields": +// [ +// { +// "name": "x", +// "type": {"typeKind": "STRING"} +// }, +// { +// "name": "y", +// "type": +// { +// "typeKind": "ARRAY", +// "arrayElementType": {"typeKind": "DATE"} +// } +// } +// ] +// } +// } +message StandardSqlDataType { + // The kind of the datatype. + enum TypeKind { + // Invalid type. + TYPE_KIND_UNSPECIFIED = 0; + + // Encoded as a string in decimal format. + INT64 = 2; + + // Encoded as a boolean "false" or "true". + BOOL = 5; + + // Encoded as a number, or string "NaN", "Infinity" or "-Infinity". + FLOAT64 = 7; + + // Encoded as a string value. + STRING = 8; + + // Encoded as a base64 string per RFC 4648, section 4. + BYTES = 9; + + // Encoded as an RFC 3339 timestamp with mandatory "Z" time zone string: + // 1985-04-12T23:20:50.52Z + TIMESTAMP = 19; + + // Encoded as RFC 3339 full-date format string: 1985-04-12 + DATE = 10; + + // Encoded as RFC 3339 partial-time format string: 23:20:50.52 + TIME = 20; + + // Encoded as RFC 3339 full-date "T" partial-time: 1985-04-12T23:20:50.52 + DATETIME = 21; + + // Encoded as fully qualified 3 part: 0-5 15 2:30:45.6 + INTERVAL = 26; + + // Encoded as WKT + GEOGRAPHY = 22; + + // Encoded as a decimal string. + NUMERIC = 23; + + // Encoded as a decimal string. + BIGNUMERIC = 24; + + // Encoded as a string. + JSON = 25; + + // Encoded as a list with types matching Type.array_type. + ARRAY = 16; + + // Encoded as a list with fields of type Type.struct_type[i]. List is used + // because a JSON object cannot have duplicate field names. + STRUCT = 17; + + // Encoded as a pair with types matching range_element_type. Pairs must + // begin with "[", end with ")", and be separated by ", ". + RANGE = 29; + } + + // Required. The top level type of this field. + // Can be any GoogleSQL data type (e.g., "INT64", "DATE", "ARRAY"). + TypeKind type_kind = 1 [(google.api.field_behavior) = REQUIRED]; + + // For complex types, the sub type information. + oneof sub_type { + // The type of the array's elements, if type_kind = "ARRAY". + StandardSqlDataType array_element_type = 2; + + // The fields of this struct, in order, if type_kind = "STRUCT". + StandardSqlStructType struct_type = 3; + + // The type of the range's elements, if type_kind = "RANGE". + StandardSqlDataType range_element_type = 4; + } +} + +// A field or a column. +message StandardSqlField { + // Optional. The name of this field. Can be absent for struct fields. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The type of this parameter. Absent if not explicitly + // specified (e.g., CREATE FUNCTION statement can omit the return type; + // in this case the output parameter does not have this "type" field). + StandardSqlDataType type = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The representation of a SQL STRUCT type. +message StandardSqlStructType { + // Fields within the struct. + repeated StandardSqlField fields = 1; +} + +// A table type +message StandardSqlTableType { + // The columns in this table type + repeated StandardSqlField columns = 1; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/system_variable.proto b/third_party/googleapis/google/cloud/bigquery/v2/system_variable.proto new file mode 100644 index 000000000..4437f0f4e --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/system_variable.proto @@ -0,0 +1,36 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/standard_sql.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_multiple_files = true; +option java_outer_classname = "SystemVariableProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// System variables given to a query. +message SystemVariables { + // Output only. Data type for each system variable. + map types = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Value for each system variable. + google.protobuf.Struct values = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/table.proto b/third_party/googleapis/google/cloud/bigquery/v2/table.proto new file mode 100644 index 000000000..8611c608e --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/table.proto @@ -0,0 +1,727 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/biglake_config.proto"; +import "google/cloud/bigquery/v2/clustering.proto"; +import "google/cloud/bigquery/v2/encryption_config.proto"; +import "google/cloud/bigquery/v2/error.proto"; +import "google/cloud/bigquery/v2/external_catalog_table_options.proto"; +import "google/cloud/bigquery/v2/external_data_config.proto"; +import "google/cloud/bigquery/v2/partitioning_definition.proto"; +import "google/cloud/bigquery/v2/privacy_policy.proto"; +import "google/cloud/bigquery/v2/range_partitioning.proto"; +import "google/cloud/bigquery/v2/restriction_config.proto"; +import "google/cloud/bigquery/v2/table_constraints.proto"; +import "google/cloud/bigquery/v2/table_reference.proto"; +import "google/cloud/bigquery/v2/table_schema.proto"; +import "google/cloud/bigquery/v2/time_partitioning.proto"; +import "google/cloud/bigquery/v2/udf_resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "TableProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// This is an experimental RPC service definition for the BigQuery +// Table Service. +// +// It should not be relied on for production use cases at this time. +service TableService { + option (google.api.default_host) = "bigquery.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-platform.read-only"; + + // Gets the specified table resource by table ID. + // This method does not return the data in the table, it only returns the + // table resource, which describes the structure of this table. + rpc GetTable(GetTableRequest) returns (Table) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + }; + } + + // Creates a new, empty table in the dataset. + rpc InsertTable(InsertTableRequest) returns (Table) { + option (google.api.http) = { + post: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables" + body: "table" + }; + } + + // Updates information in an existing table. The update method replaces the + // entire table resource, whereas the patch method only replaces fields that + // are provided in the submitted table resource. + // This method supports RFC5789 patch semantics. + rpc PatchTable(UpdateOrPatchTableRequest) returns (Table) { + option (google.api.http) = { + patch: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + body: "table" + }; + } + + // Updates information in an existing table. The update method replaces the + // entire Table resource, whereas the patch method only replaces fields that + // are provided in the submitted Table resource. + rpc UpdateTable(UpdateOrPatchTableRequest) returns (Table) { + option (google.api.http) = { + put: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + body: "table" + }; + } + + // Deletes the table specified by tableId from the dataset. + // If the table contains data, all the data will be deleted. + rpc DeleteTable(DeleteTableRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables/{table_id=*}" + }; + } + + // Lists all tables in the specified dataset. Requires the READER dataset + // role. + rpc ListTables(ListTablesRequest) returns (TableList) { + option (google.api.http) = { + get: "/bigquery/v2/projects/{project_id=*}/datasets/{dataset_id=*}/tables" + }; + } +} + +// Replication info of a table created using `AS REPLICA` DDL like: +// `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv` +message TableReplicationInfo { + // Replication status of the table created using `AS REPLICA` like: + // `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv` + enum ReplicationStatus { + // Default value. + REPLICATION_STATUS_UNSPECIFIED = 0; + + // Replication is Active with no errors. + ACTIVE = 1; + + // Source object is deleted. + SOURCE_DELETED = 2; + + // Source revoked replication permissions. + PERMISSION_DENIED = 3; + + // Source configuration doesn’t allow replication. + UNSUPPORTED_CONFIGURATION = 4; + } + + // Required. Source table reference that is replicated. + TableReference source_table = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies the interval at which the source table is polled for + // updates. + // It's Optional. If not specified, default replication interval would be + // applied. + int64 replication_interval_ms = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. If source is a materialized view, this field + // signifies the last refresh time of the source. + int64 replicated_source_last_refresh_time = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Output only. Replication status of configured replication. + ReplicationStatus replication_status = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Output only. Replication error that will permanently stopped + // table replication. + ErrorProto replication_error = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Describes the definition of a logical view. +message ViewDefinition { + // Required. A query that BigQuery executes when the view is referenced. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Describes user-defined function resources used in the query. + repeated UserDefinedFunctionResource user_defined_function_resources = 2; + + // Specifies whether to use BigQuery's legacy SQL for this view. + // The default value is true. If set to false, the view will use + // BigQuery's GoogleSQL: + // https://cloud.google.com/bigquery/sql-reference/ + // + // Queries and views that reference this view must use the same flag value. + // A wrapper is used here because the default value is True. + google.protobuf.BoolValue use_legacy_sql = 3; + + // True if the column names are explicitly specified. For example by using the + // 'CREATE VIEW v(c1, c2) AS ...' syntax. + // Can only be set for GoogleSQL views. + bool use_explicit_column_names = 4; + + // Optional. Specifices the privacy policy for the view. + PrivacyPolicy privacy_policy = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Foreign view representations. + repeated ForeignViewDefinition foreign_definitions = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A view can be represented in multiple ways. Each representation has its own +// dialect. This message stores the metadata required for these representations. +message ForeignViewDefinition { + // Required. The query that defines the view. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Represents the dialect of the query. + string dialect = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Definition and configuration of a materialized view. +message MaterializedViewDefinition { + // Required. A query whose results are persisted. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The time when this materialized view was last refreshed, in + // milliseconds since the epoch. + int64 last_refresh_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Enable automatic refresh of the materialized view when the base + // table is updated. The default value is "true". + google.protobuf.BoolValue enable_refresh = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum frequency at which this materialized view will be + // refreshed. The default value is "1800000" (30 minutes). + google.protobuf.UInt64Value refresh_interval_ms = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This option declares the intention to construct a materialized + // view that isn't refreshed incrementally. + google.protobuf.BoolValue allow_non_incremental_definition = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Status of a materialized view. +// The last refresh timestamp status is omitted here, but is present in the +// MaterializedViewDefinition message. +message MaterializedViewStatus { + // Output only. Refresh watermark of materialized view. The base tables' data + // were collected into the materialized view cache until this time. + google.protobuf.Timestamp refresh_watermark = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error result of the last automatic refresh. If present, + // indicates that the last automatic refresh was unsuccessful. + ErrorProto last_refresh_status = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Information about base table and snapshot time of the snapshot. +message SnapshotDefinition { + // Required. Reference describing the ID of the table that was snapshot. + TableReference base_table_reference = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The time at which the base table was snapshot. This value is + // reported in the JSON response using RFC3339 format. + google.protobuf.Timestamp snapshot_time = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Information about base table and clone time of a table clone. +message CloneDefinition { + // Required. Reference describing the ID of the table that was cloned. + TableReference base_table_reference = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The time at which the base table was cloned. This value is + // reported in the JSON response using RFC3339 format. + google.protobuf.Timestamp clone_time = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +message Streamingbuffer { + // Output only. A lower-bound estimate of the number of bytes currently in + // the streaming buffer. + uint64 estimated_bytes = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A lower-bound estimate of the number of rows currently in the + // streaming buffer. + uint64 estimated_rows = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Contains the timestamp of the oldest entry in the streaming + // buffer, in milliseconds since the epoch, if the streaming buffer is + // available. + fixed64 oldest_entry_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +message Table { + // The type of resource ID. + string kind = 1; + + // Output only. A hash of this resource. + string etag = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. An opaque ID uniquely identifying the table. + string id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A URL that can be used to access this resource again. + string self_link = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Reference describing the ID of this table. + TableReference table_reference = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A descriptive name for this table. + google.protobuf.StringValue friendly_name = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A user-friendly description of this table. + google.protobuf.StringValue description = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // The labels associated with this table. You can use these to organize and + // group your tables. Label keys and values can be no longer than 63 + // characters, can only contain lowercase letters, numeric characters, + // underscores and dashes. International characters are allowed. Label values + // are optional. Label keys must start with a letter and each label in the + // list must have a different key. + map labels = 8; + + // Optional. Describes the schema of this table. + TableSchema schema = 9 [(google.api.field_behavior) = OPTIONAL]; + + // If specified, configures time-based partitioning for this table. + TimePartitioning time_partitioning = 10; + + // If specified, configures range partitioning for this table. + RangePartitioning range_partitioning = 27; + + // Clustering specification for the table. Must be specified with time-based + // partitioning, data in the table will be first partitioned and subsequently + // clustered. + Clustering clustering = 23; + + // Optional. If set to true, queries over this table require + // a partition filter that can be used for partition elimination to be + // specified. + google.protobuf.BoolValue require_partition_filter = 28 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The partition information for all table formats, including + // managed partitioned tables, hive partitioned tables, iceberg partitioned, + // and metastore partitioned tables. This field is only populated for + // metastore partitioned tables. For other table formats, this is an output + // only field. + optional PartitioningDefinition partition_definition = 51 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The size of this table in logical bytes, excluding any data in + // the streaming buffer. + google.protobuf.Int64Value num_bytes = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The physical size of this table in bytes. This includes + // storage used for time travel. + google.protobuf.Int64Value num_physical_bytes = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of logical bytes in the table that are considered + // "long-term storage". + google.protobuf.Int64Value num_long_term_bytes = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of rows of data in this table, excluding any data + // in the streaming buffer. + google.protobuf.UInt64Value num_rows = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this table was created, in milliseconds since + // the epoch. + int64 creation_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The time when this table expires, in milliseconds since the + // epoch. If not present, the table will persist indefinitely. Expired tables + // will be deleted and their storage reclaimed. The defaultTableExpirationMs + // property of the encapsulating dataset can be used to set a default + // expirationTime on newly created tables. + google.protobuf.Int64Value expiration_time = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time when this table was last modified, in milliseconds + // since the epoch. + fixed64 last_modified_time = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Describes the table type. The following values are supported: + // + // * `TABLE`: A normal BigQuery table. + // * `VIEW`: A virtual table defined by a SQL query. + // * `EXTERNAL`: A table that references data stored in an external storage + // system, such as Google Cloud Storage. + // * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query. + // * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a + // base table at a particular time. See additional information on + // [table snapshots](/bigquery/docs/table-snapshots-intro). + // + // The default value is `TABLE`. + string type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The view definition. + ViewDefinition view = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The materialized view definition. + MaterializedViewDefinition materialized_view = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The materialized view status. + MaterializedViewStatus materialized_view_status = 42 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Describes the data format, location, and other properties of + // a table stored outside of BigQuery. By defining these properties, the data + // source can then be queried as if it were a standard BigQuery table. + ExternalDataConfiguration external_data_configuration = 19 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the configuration of a BigLake managed table. + BigLakeConfiguration biglake_configuration = 45 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The geographic location where the table resides. This value + // is inherited from the dataset. + string location = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Contains information regarding this table's streaming buffer, + // if one is present. This field will be absent if the table is not being + // streamed to or if there is no data in the streaming buffer. + Streamingbuffer streaming_buffer = 21 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Custom encryption configuration (e.g., Cloud KMS keys). + EncryptionConfiguration encryption_configuration = 22; + + // Output only. Contains information about the snapshot. This value is set via + // snapshot creation. + SnapshotDefinition snapshot_definition = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Defines the default collation specification of new STRING fields + // in the table. During table creation or update, if a STRING field is added + // to this table without explicit collation specified, then the table inherits + // the table default collation. A change to this field affects only fields + // added afterwards, and does not alter the existing fields. + // The following values are supported: + // + // * 'und:ci': undetermined locale, case insensitive. + // * '': empty string. Default to case-sensitive behavior. + google.protobuf.StringValue default_collation = 30 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the default rounding mode specification of new decimal + // fields (NUMERIC OR BIGNUMERIC) in the table. During table creation or + // update, if a decimal field is added to this table without an explicit + // rounding mode specified, then the field inherits the table default + // rounding mode. Changing this field doesn't affect existing fields. + TableFieldSchema.RoundingMode default_rounding_mode = 44 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Contains information about the clone. This value is set via + // the clone operation. + CloneDefinition clone_definition = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of physical bytes used by time travel storage (deleted + // or changed data). This data is not kept in real time, and might be delayed + // by a few seconds to a few minutes. + google.protobuf.Int64Value num_time_travel_physical_bytes = 33 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of logical bytes in the table or materialized + // view. + google.protobuf.Int64Value num_total_logical_bytes = 34 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of logical bytes that are less than 90 days old. + google.protobuf.Int64Value num_active_logical_bytes = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of logical bytes that are more than 90 days old. + google.protobuf.Int64Value num_long_term_logical_bytes = 36 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of physical bytes used by current live data storage. + // This data is not kept in real time, and might be delayed by a few seconds + // to a few minutes. + google.protobuf.Int64Value num_current_physical_bytes = 53 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The physical size of this table in bytes. This also includes + // storage used for time travel. This data is not kept in real time, and might + // be delayed by a few seconds to a few minutes. + google.protobuf.Int64Value num_total_physical_bytes = 37 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of physical bytes less than 90 days old. This data is + // not kept in real time, and might be delayed by a few seconds to a few + // minutes. + google.protobuf.Int64Value num_active_physical_bytes = 38 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of physical bytes more than 90 days old. + // This data is not kept in real time, and might be delayed by a few seconds + // to a few minutes. + google.protobuf.Int64Value num_long_term_physical_bytes = 39 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of partitions present in the table or materialized + // view. This data is not kept in real time, and might be delayed by a few + // seconds to a few minutes. + google.protobuf.Int64Value num_partitions = 40 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The maximum staleness of data that could be returned when the + // table (or stale MV) is queried. Staleness encoded as a string encoding + // of sql IntervalValue type. + string max_staleness = 41 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. Restriction config for table. If set, restrict + // certain accesses on the table based on the config. See [Data + // egress](/bigquery/docs/analytics-hub-introduction#data_egress) for more + // details. + RestrictionConfig restrictions = 46 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Tables Primary Key and Foreign Key information + TableConstraints table_constraints = 47 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The [tags](/bigquery/docs/tags) attached to this table. Tag keys + // are globally unique. Tag key is expected to be in the namespaced format, + // for example "123456789012/environment" where 123456789012 is the ID of the + // parent organization or project resource for this tag key. Tag value is + // expected to be the short name, for example "Production". See [Tag + // definitions](/iam/docs/tags-access-control#definitions) for more details. + map resource_tags = 48 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Table replication info for table created `AS REPLICA` DDL like: + // `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv` + TableReplicationInfo table_replication_info = 49 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. Table references of all replicas currently active on + // the table. + repeated TableReference replicas = 50 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Options defining open source compatible table. + ExternalCatalogTableOptions external_catalog_table_options = 54 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request format for getting table metadata. +message GetTableRequest { + // TableMetadataView specifies which table information is returned. + enum TableMetadataView { + // The default value. + // Default to the STORAGE_STATS view. + TABLE_METADATA_VIEW_UNSPECIFIED = 0; + + // Includes basic table information including schema and + // partitioning specification. This view does not include storage statistics + // such as numRows or numBytes. This view is significantly more efficient + // and should be used to support high query rates. + BASIC = 1; + + // Includes all information in the BASIC view as well as storage statistics + // (numBytes, numLongTermBytes, numRows and lastModifiedTime). + STORAGE_STATS = 2; + + // Includes all table information, including storage statistics. + // It returns same information as STORAGE_STATS view, but may contain + // additional information in the future. + FULL = 3; + } + + // Required. Project ID of the requested table + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the requested table + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Table ID of the requested table + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // List of table schema fields to return (comma-separated). + // If unspecified, all fields are returned. + // A fieldMask cannot be used here because the fields will automatically be + // converted from camelCase to snake_case and the conversion will fail if + // there are underscores. Since these are fields in BigQuery table schemas, + // underscores are allowed. + string selected_fields = 4; + + // Optional. Specifies the view that determines which table information is + // returned. By default, basic table information and storage statistics + // (STORAGE_STATS) are returned. + TableMetadataView view = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request format for inserting table metadata. +message InsertTableRequest { + // Required. Project ID of the new table + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the new table + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A tables resource to insert + Table table = 4 [(google.api.field_behavior) = REQUIRED]; +} + +message UpdateOrPatchTableRequest { + // Required. Project ID of the table to update + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the table to update + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Table ID of the table to update + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. A tables resource which will replace or patch the specified table + Table table = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. When true will autodetect schema, else will keep original schema. + bool autodetect_schema = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request format for deleting a table. +message DeleteTableRequest { + // Required. Project ID of the table to delete + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the table to delete + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Table ID of the table to delete + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request format for enumerating tables. +message ListTablesRequest { + // Required. Project ID of the tables to list + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset ID of the tables to list + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of results to return in a single response page. + // Leverage the page tokens to iterate through the entire collection. + google.protobuf.UInt32Value max_results = 3; + + // Page token, returned by a previous call, to request the next page of + // results + string page_token = 4; +} + +// Information about a logical view. +message ListFormatView { + // True if view is defined in legacy SQL dialect, + // false if in GoogleSQL. + google.protobuf.BoolValue use_legacy_sql = 1; + + // Specifices the privacy policy for the view. + PrivacyPolicy privacy_policy = 2; +} + +message ListFormatTable { + // The resource type. + string kind = 1; + + // An opaque ID of the table. + string id = 2; + + // A reference uniquely identifying table. + TableReference table_reference = 3; + + // The user-friendly name for this table. + google.protobuf.StringValue friendly_name = 4; + + // The type of table. + string type = 5; + + // The time-based partitioning for this table. + TimePartitioning time_partitioning = 6; + + // The range partitioning for this table. + RangePartitioning range_partitioning = 12; + + // Clustering specification for this table, if configured. + Clustering clustering = 11; + + // The labels associated with this table. You can use these to organize + // and group your tables. + map labels = 7; + + // Additional details for a view. + ListFormatView view = 8; + + // Output only. The time when this table was created, in milliseconds since + // the epoch. + int64 creation_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The time when this table expires, in milliseconds since the + // epoch. If not present, the table will persist indefinitely. Expired tables + // will be deleted and their storage reclaimed. + int64 expiration_time = 10; + + // Optional. If set to true, queries including this table must specify a + // partition filter. This filter is used for partition elimination. + google.protobuf.BoolValue require_partition_filter = 14 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Partial projection of the metadata for a given table in a list response. +message TableList { + // The type of list. + string kind = 1; + + // A hash of this page of results. + string etag = 2; + + // A token to request the next page of results. + string next_page_token = 3; + + // Tables in the requested dataset. + repeated ListFormatTable tables = 4; + + // The total number of tables in the dataset. + google.protobuf.Int32Value total_items = 5; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/table_constraints.proto b/third_party/googleapis/google/cloud/bigquery/v2/table_constraints.proto new file mode 100644 index 000000000..13edc6bb9 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/table_constraints.proto @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/cloud/bigquery/v2/table_reference.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "TableConstraintsProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Represents the primary key constraint on a table's columns. +message PrimaryKey { + // Required. The columns that are composed of the primary key constraint. + repeated string columns = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The pair of the foreign key column and primary key column. +message ColumnReference { + // Required. The column that composes the foreign key. + string referencing_column = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The column in the primary key that are referenced by the + // referencing_column. + string referenced_column = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents a foreign key constraint on a table's columns. +message ForeignKey { + // Optional. Set only if the foreign key constraint is named. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The table that holds the primary key and is referenced by this + // foreign key. + TableReference referenced_table = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The columns that compose the foreign key. + repeated ColumnReference column_references = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// The TableConstraints defines the primary key and foreign key. +message TableConstraints { + // Optional. Represents a primary key constraint on a table's columns. + // Present only if the table has a primary key. + // The primary key is not enforced. + PrimaryKey primary_key = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Present only if the table has a foreign key. + // The foreign key is not enforced. + repeated ForeignKey foreign_keys = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/table_reference.proto b/third_party/googleapis/google/cloud/bigquery/v2/table_reference.proto new file mode 100644 index 000000000..e6e9a1b35 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/table_reference.proto @@ -0,0 +1,40 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "TableReferenceProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +message TableReference { + // Required. The ID of the project containing this table. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the dataset containing this table. + string dataset_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the table. The ID can contain Unicode characters in + // category L (letter), M (mark), N (number), Pc (connector, including + // underscore), Pd (dash), and Zs (space). For more information, see [General + // Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). + // The maximum length is 1,024 characters. Certain operations allow suffixing + // of the table ID with a partition decorator, such as + // `sample_table$20190123`. + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/table_schema.proto b/third_party/googleapis/google/cloud/bigquery/v2/table_schema.proto new file mode 100644 index 000000000..5f177d1e5 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/table_schema.proto @@ -0,0 +1,221 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "TableSchemaProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// Schema of a table +message TableSchema { + // Describes the fields in a table. + repeated TableFieldSchema fields = 1; + + // Optional. Specifies metadata of the foreign data type definition in field + // schema + // ([TableFieldSchema.foreign_type_definition][google.cloud.bigquery.v2.TableFieldSchema.foreign_type_definition]). + ForeignTypeInfo foreign_type_info = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata about the foreign data type definition such as the system +// in which the type is defined. +message ForeignTypeInfo { + // External systems, such as query engines or table formats, that have their + // own data types. + enum TypeSystem { + // TypeSystem not specified. + TYPE_SYSTEM_UNSPECIFIED = 0; + + // Represents Hive data types. + HIVE = 1; + } + + // Required. Specifies the system which defines the foreign data type. + TypeSystem type_system = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A field in TableSchema +message TableFieldSchema { + message PolicyTagList { + // A list of policy tag resource names. For example, + // "projects/1/locations/eu/taxonomies/2/policyTags/3". At most 1 policy tag + // is currently allowed. + repeated string names = 1; + } + + // Rounding mode options that can be used when storing NUMERIC + // or BIGNUMERIC values. + enum RoundingMode { + // Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO. + ROUNDING_MODE_UNSPECIFIED = 0; + + // ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero + // when applying precision and scale upon writing of NUMERIC and BIGNUMERIC + // values. + // For Scale: 0 + // 1.1, 1.2, 1.3, 1.4 => 1 + // 1.5, 1.6, 1.7, 1.8, 1.9 => 2 + ROUND_HALF_AWAY_FROM_ZERO = 1; + + // ROUND_HALF_EVEN rounds half values to the nearest even value + // when applying precision and scale upon writing of NUMERIC and BIGNUMERIC + // values. + // For Scale: 0 + // 1.1, 1.2, 1.3, 1.4 => 1 + // 1.5 => 2 + // 1.6, 1.7, 1.8, 1.9 => 2 + // 2.5 => 2 + ROUND_HALF_EVEN = 2; + } + + // Represents the type of a field element. + message FieldElementType { + // Required. The type of a field element. For more information, see + // [TableFieldSchema.type][google.cloud.bigquery.v2.TableFieldSchema.type]. + string type = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. The field name. The name must contain only letters (a-z, A-Z), + // numbers (0-9), or underscores (_), and must start with a letter or + // underscore. The maximum length is 300 characters. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The field data type. Possible values include: + // + // * STRING + // * BYTES + // * INTEGER (or INT64) + // * FLOAT (or FLOAT64) + // * BOOLEAN (or BOOL) + // * TIMESTAMP + // * DATE + // * TIME + // * DATETIME + // * GEOGRAPHY + // * NUMERIC + // * BIGNUMERIC + // * JSON + // * RECORD (or STRUCT) + // * RANGE ([Preview](/products/#product-launch-stages)) + // + // Use of RECORD/STRUCT indicates that the field contains a nested schema. + string type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The field mode. Possible values include NULLABLE, REQUIRED and + // REPEATED. The default value is NULLABLE. + string mode = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Describes the nested schema fields if the type property is set + // to RECORD. + repeated TableFieldSchema fields = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The field description. The maximum length is 1,024 characters. + google.protobuf.StringValue description = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The policy tags attached to this field, used for field-level + // access control. If not set, defaults to empty policy_tags. + PolicyTagList policy_tags = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum length of values of this field for STRINGS or BYTES. + // + // If max_length is not specified, no maximum length constraint is imposed + // on this field. + // + // If type = "STRING", then max_length represents the maximum UTF-8 + // length of strings in this field. + // + // If type = "BYTES", then max_length represents the maximum number of + // bytes in this field. + // + // It is invalid to set this field if type ≠ "STRING" and ≠ "BYTES". + int64 max_length = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Precision (maximum number of total digits in base 10) and scale + // (maximum number of digits in the fractional part in base 10) constraints + // for values of this field for NUMERIC or BIGNUMERIC. + // + // It is invalid to set precision or scale if type ≠ "NUMERIC" and ≠ + // "BIGNUMERIC". + // + // If precision and scale are not specified, no value range constraint is + // imposed on this field insofar as values are permitted by the type. + // + // Values of this NUMERIC or BIGNUMERIC field must be in this range when: + // + // * Precision (P) and scale (S) are specified: + // [-10P-S + 10-S, + // 10P-S - 10-S] + // * Precision (P) is specified but not scale (and thus scale is + // interpreted to be equal to zero): + // [-10P + 1, 10P - 1]. + // + // Acceptable values for precision and scale if both are specified: + // + // * If type = "NUMERIC": + // 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. + // * If type = "BIGNUMERIC": + // 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. + // + // Acceptable values for precision if only precision is specified but not + // scale (and thus scale is interpreted to be equal to zero): + // + // * If type = "NUMERIC": 1 ≤ precision ≤ 29. + // * If type = "BIGNUMERIC": 1 ≤ precision ≤ 38. + // + // If scale is specified but not precision, then it is invalid. + int64 precision = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. See documentation for precision. + int64 scale = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the rounding mode to be used when storing values of + // NUMERIC and BIGNUMERIC type. + RoundingMode rounding_mode = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + google.protobuf.StringValue collation = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A SQL expression to specify the [default value] + // (https://cloud.google.com/bigquery/docs/default-values) for this field. + google.protobuf.StringValue default_value_expression = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The subtype of the RANGE, if the type of this field is RANGE. If + // the type is RANGE, this field is required. Values for the field element + // type can be the following: + // + // * DATE + // * DATETIME + // * TIMESTAMP + FieldElementType range_element_type = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Definition of the foreign data type. + // Only valid for top-level schema fields (not nested fields). + // If the type is FOREIGN, this field is required. + string foreign_type_definition = 23 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/time_partitioning.proto b/third_party/googleapis/google/cloud/bigquery/v2/time_partitioning.proto new file mode 100644 index 000000000..440a20983 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/time_partitioning.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "TimePartitioningProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +message TimePartitioning { + // Required. The supported types are DAY, HOUR, MONTH, and YEAR, which will + // generate one partition per day, hour, month, and year, respectively. + string type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Number of milliseconds for which to keep the storage for a + // partition. + // A wrapper is used here because 0 is an invalid value. + google.protobuf.Int64Value expiration_ms = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If not set, the table is partitioned by pseudo + // column '_PARTITIONTIME'; if set, the table is partitioned by this field. + // The field must be a top-level TIMESTAMP or DATE field. Its mode must be + // NULLABLE or REQUIRED. + // A wrapper is used here because an empty string is an invalid value. + google.protobuf.StringValue field = 3 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/bigquery/v2/udf_resource.proto b/third_party/googleapis/google/cloud/bigquery/v2/udf_resource.proto new file mode 100644 index 000000000..d630bf9c7 --- /dev/null +++ b/third_party/googleapis/google/cloud/bigquery/v2/udf_resource.proto @@ -0,0 +1,42 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.bigquery.v2; + +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/bigquery/apiv2/bigquerypb;bigquerypb"; +option java_outer_classname = "UdfProto"; +option java_package = "com.google.cloud.bigquery.v2"; + +// +// This is used for defining User Defined Function (UDF) resources only when +// using legacy SQL. Users of GoogleSQL should leverage either DDL (e.g. +// CREATE [TEMPORARY] FUNCTION ... ) or the Routines API to define UDF +// resources. +// +// For additional information on migrating, see: +// https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions +message UserDefinedFunctionResource { + // [Pick one] A code resource to load from a Google Cloud Storage URI + // (gs://bucket/path). + google.protobuf.StringValue resource_uri = 1; + + // [Pick one] An inline resource that contains code for a user-defined + // function (UDF). Providing a inline code resource is equivalent to providing + // a URI for a file containing the same code. + google.protobuf.StringValue inline_code = 2; +} diff --git a/third_party/googleapis/google/cloud/billing/budgets/v1/budget_model.proto b/third_party/googleapis/google/cloud/billing/budgets/v1/budget_model.proto index 559f0e4f4..3bb63aa29 100644 --- a/third_party/googleapis/google/cloud/billing/budgets/v1/budget_model.proto +++ b/third_party/googleapis/google/cloud/billing/budgets/v1/budget_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/billing/budgets/v1/budget_service.proto b/third_party/googleapis/google/cloud/billing/budgets/v1/budget_service.proto index b892dc255..2c4c673f6 100644 --- a/third_party/googleapis/google/cloud/billing/budgets/v1/budget_service.proto +++ b/third_party/googleapis/google/cloud/billing/budgets/v1/budget_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_model.proto b/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_model.proto index 3eb3f7844..ae957c3e6 100644 --- a/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_model.proto +++ b/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_service.proto b/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_service.proto index 7884c64ff..44f9b1c73 100644 --- a/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_service.proto +++ b/third_party/googleapis/google/cloud/billing/budgets/v1beta1/budget_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/billing/v1/cloud_billing.proto b/third_party/googleapis/google/cloud/billing/v1/cloud_billing.proto index b340497f8..4c7403116 100644 --- a/third_party/googleapis/google/cloud/billing/v1/cloud_billing.proto +++ b/third_party/googleapis/google/cloud/billing/v1/cloud_billing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/billing/v1/cloud_catalog.proto b/third_party/googleapis/google/cloud/billing/v1/cloud_catalog.proto index ed1028dcc..5ddcec636 100644 --- a/third_party/googleapis/google/cloud/billing/v1/cloud_catalog.proto +++ b/third_party/googleapis/google/cloud/billing/v1/cloud_catalog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -65,11 +65,11 @@ message Service { }; // The resource name for the service. - // Example: "services/DA34-426B-A397" + // Example: "services/6F81-5844-456A" string name = 1; // The identifier for the service. - // Example: "DA34-426B-A397" + // Example: "6F81-5844-456A" string service_id = 2; // A human readable display name for this service. @@ -80,7 +80,7 @@ message Service { string business_entity_name = 4; } -// Encapsulates a single SKU in Google Cloud Platform +// Encapsulates a single SKU in Google Cloud message Sku { option (google.api.resource) = { type: "cloudbilling.googleapis.com/Sku" @@ -88,11 +88,11 @@ message Sku { }; // The resource name for the SKU. - // Example: "services/DA34-426B-A397/skus/AA95-CD31-42FE" + // Example: "services/6F81-5844-456A/skus/D041-B8A1-6E0B" string name = 1; // The identifier for the SKU. - // Example: "AA95-CD31-42FE" + // Example: "D041-B8A1-6E0B" string sku_id = 2; // A human readable description of the SKU, has a maximum length of 256 @@ -313,7 +313,7 @@ message ListServicesResponse { // Request message for `ListSkus`. message ListSkusRequest { // Required. The name of the service. - // Example: "services/DA34-426B-A397" + // Example: "services/6F81-5844-456A" string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/binaryauthorization/v1/resources.proto b/third_party/googleapis/google/cloud/binaryauthorization/v1/resources.proto index de81309f0..67e9fde04 100644 --- a/third_party/googleapis/google/cloud/binaryauthorization/v1/resources.proto +++ b/third_party/googleapis/google/cloud/binaryauthorization/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/binaryauthorization/v1/service.proto b/third_party/googleapis/google/cloud/binaryauthorization/v1/service.proto index 7cbfbdc05..7d92f52a5 100644 --- a/third_party/googleapis/google/cloud/binaryauthorization/v1/service.proto +++ b/third_party/googleapis/google/cloud/binaryauthorization/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto b/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto index 87bb5dba4..f678e5397 100644 --- a/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto +++ b/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/continuous_validation_logging.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/resources.proto b/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/resources.proto index 5855bd7f7..c64ba1635 100644 --- a/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/resources.proto +++ b/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/service.proto b/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/service.proto index c8502637f..20b7ad033 100644 --- a/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/binaryauthorization/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/blockchainnodeengine/v1/BUILD.bazel b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/BUILD.bazel new file mode 100644 index 000000000..ec8094de2 --- /dev/null +++ b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/BUILD.bazel @@ -0,0 +1,394 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "blockchainnodeengine_proto", + srcs = [ + "blockchainnodeengine.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "blockchainnodeengine_proto_with_info", + deps = [ + ":blockchainnodeengine_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "blockchainnodeengine_java_proto", + deps = [":blockchainnodeengine_proto"], +) + +java_grpc_library( + name = "blockchainnodeengine_java_grpc", + srcs = [":blockchainnodeengine_proto"], + deps = [":blockchainnodeengine_java_proto"], +) + +java_gapic_library( + name = "blockchainnodeengine_java_gapic", + srcs = [":blockchainnodeengine_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + test_deps = [ + ":blockchainnodeengine_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":blockchainnodeengine_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "blockchainnodeengine_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.blockchainnodeengine.v1.BlockchainNodeEngineClientHttpJsonTest", + "com.google.cloud.blockchainnodeengine.v1.BlockchainNodeEngineClientTest", + ], + runtime_deps = [":blockchainnodeengine_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-blockchainnodeengine-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":blockchainnodeengine_java_gapic", + ":blockchainnodeengine_java_grpc", + ":blockchainnodeengine_java_proto", + ":blockchainnodeengine_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "blockchainnodeengine_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/blockchainnodeengine/apiv1/blockchainnodeenginepb", + protos = [":blockchainnodeengine_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "blockchainnodeengine_go_gapic", + srcs = [":blockchainnodeengine_proto_with_info"], + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/blockchainnodeengine/apiv1;blockchainnodeengine", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + transport = "grpc+rest", + deps = [ + ":blockchainnodeengine_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-blockchainnodeengine-v1-go", + deps = [ + ":blockchainnodeengine_go_gapic", + ":blockchainnodeengine_go_gapic_srcjar-metadata.srcjar", + ":blockchainnodeengine_go_gapic_srcjar-snippets.srcjar", + ":blockchainnodeengine_go_gapic_srcjar-test.srcjar", + ":blockchainnodeengine_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "blockchainnodeengine_py_gapic", + srcs = [":blockchainnodeengine_proto"], + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "blockchainnodeengine_py_gapic_test", + srcs = [ + "blockchainnodeengine_py_gapic_pytest.py", + "blockchainnodeengine_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":blockchainnodeengine_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "blockchainnodeengine-v1-py", + deps = [ + ":blockchainnodeengine_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "blockchainnodeengine_php_proto", + deps = [":blockchainnodeengine_proto"], +) + +php_gapic_library( + name = "blockchainnodeengine_php_gapic", + srcs = [":blockchainnodeengine_proto_with_info"], + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + transport = "grpc+rest", + deps = [ + ":blockchainnodeengine_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-blockchainnodeengine-v1-php", + deps = [ + ":blockchainnodeengine_php_gapic", + ":blockchainnodeengine_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "blockchainnodeengine_nodejs_gapic", + package_name = "@google-cloud/blockchainnodeengine", + src = ":blockchainnodeengine_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + package = "google.cloud.blockchainnodeengine.v1", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "blockchainnodeengine-v1-nodejs", + deps = [ + ":blockchainnodeengine_nodejs_gapic", + ":blockchainnodeengine_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "blockchainnodeengine_ruby_proto", + deps = [":blockchainnodeengine_proto"], +) + +ruby_grpc_library( + name = "blockchainnodeengine_ruby_grpc", + srcs = [":blockchainnodeengine_proto"], + deps = [":blockchainnodeengine_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "blockchainnodeengine_ruby_gapic", + srcs = [":blockchainnodeengine_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-blockchainnodeengine-v1", + ], + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + transport = "grpc+rest", + deps = [ + ":blockchainnodeengine_ruby_grpc", + ":blockchainnodeengine_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-blockchainnodeengine-v1-ruby", + deps = [ + ":blockchainnodeengine_ruby_gapic", + ":blockchainnodeengine_ruby_grpc", + ":blockchainnodeengine_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "blockchainnodeengine_csharp_proto", + extra_opts = [], + deps = [":blockchainnodeengine_proto"], +) + +csharp_grpc_library( + name = "blockchainnodeengine_csharp_grpc", + srcs = [":blockchainnodeengine_proto"], + deps = [":blockchainnodeengine_csharp_proto"], +) + +csharp_gapic_library( + name = "blockchainnodeengine_csharp_gapic", + srcs = [":blockchainnodeengine_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "blockchainnodeengine_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "blockchainnodeengine_v1.yaml", + transport = "grpc+rest", + deps = [ + ":blockchainnodeengine_csharp_grpc", + ":blockchainnodeengine_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-blockchainnodeengine-v1-csharp", + deps = [ + ":blockchainnodeengine_csharp_gapic", + ":blockchainnodeengine_csharp_grpc", + ":blockchainnodeengine_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "blockchainnodeengine_cc_proto", + deps = [":blockchainnodeengine_proto"], +) + +cc_grpc_library( + name = "blockchainnodeengine_cc_grpc", + srcs = [":blockchainnodeengine_proto"], + grpc_only = True, + deps = [":blockchainnodeengine_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine.proto b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine.proto new file mode 100644 index 000000000..ef3c31fb9 --- /dev/null +++ b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine.proto @@ -0,0 +1,586 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.blockchainnodeengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BlockchainNodeEngine.V1"; +option go_package = "cloud.google.com/go/blockchainnodeengine/apiv1/blockchainnodeenginepb;blockchainnodeenginepb"; +option java_multiple_files = true; +option java_outer_classname = "BlockchainnodeengineProto"; +option java_package = "com.google.cloud.blockchainnodeengine.v1"; +option php_namespace = "Google\\Cloud\\BlockchainNodeEngine\\V1"; +option ruby_package = "Google::Cloud::BlockchainNodeEngine::V1"; + +// This service is the control plane API for Blockchain Node Engine, +// and can be used to create, read, and delete blockchain nodes. +service BlockchainNodeEngine { + option (google.api.default_host) = "blockchainnodeengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists blockchain nodes in a given project and location. + rpc ListBlockchainNodes(ListBlockchainNodesRequest) + returns (ListBlockchainNodesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/blockchainNodes" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single blockchain node. + rpc GetBlockchainNode(GetBlockchainNodeRequest) returns (BlockchainNode) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/blockchainNodes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new blockchain node in a given project and location. + rpc CreateBlockchainNode(CreateBlockchainNodeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/blockchainNodes" + body: "blockchain_node" + }; + option (google.api.method_signature) = + "parent,blockchain_node,blockchain_node_id"; + option (google.longrunning.operation_info) = { + response_type: "BlockchainNode" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a single blockchain node. + rpc UpdateBlockchainNode(UpdateBlockchainNodeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{blockchain_node.name=projects/*/locations/*/blockchainNodes/*}" + body: "blockchain_node" + }; + option (google.api.method_signature) = "blockchain_node,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "BlockchainNode" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single blockchain node. + rpc DeleteBlockchainNode(DeleteBlockchainNodeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/blockchainNodes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// A representation of a blockchain node. +message BlockchainNode { + option (google.api.resource) = { + type: "blockchainnodeengine.googleapis.com/BlockchainNode" + pattern: "projects/{project}/locations/{location}/blockchainNodes/{blockchain_node}" + }; + + // The connection information through which to interact with a blockchain + // node. + message ConnectionInfo { + // Contains endpoint information through which to interact with a blockchain + // node. + message EndpointInfo { + // Output only. The assigned URL for the node JSON-RPC API endpoint. + string json_rpc_api_endpoint = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The assigned URL for the node WebSockets API endpoint. + string websockets_api_endpoint = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The endpoint information through which to interact with a + // blockchain node. + EndpointInfo endpoint_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A service attachment that exposes a node, and has the + // following format: + // projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name} + string service_attachment = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Ethereum-specific blockchain node details. + message EthereumDetails { + // Options for the Geth execution client. + // + // See [Command-line + // Options](https://geth.ethereum.org/docs/fundamentals/command-line-options) + // for more details. + message GethDetails { + // Blockchain garbage collection modes. Only applicable when `NodeType` is + // `FULL` or `ARCHIVE`. + enum GarbageCollectionMode { + // The garbage collection has not been specified. + GARBAGE_COLLECTION_MODE_UNSPECIFIED = 0; + + // Configures Geth's garbage collection so that older data not needed + // for a full node is deleted. This is the default mode when creating a + // full node. + FULL = 1; + + // Configures Geth's garbage collection so that old data is never + // deleted. This is the default mode when creating an archive node. This + // value can also be chosen when creating a full node in order to create + // a partial/recent archive node. See + // [Sync modes](https://geth.ethereum.org/docs/fundamentals/sync-modes) + // for more details. + ARCHIVE = 2; + } + + // Immutable. Blockchain garbage collection mode. + optional GarbageCollectionMode garbage_collection_mode = 1 + [(google.api.field_behavior) = IMMUTABLE]; + } + + // Contains endpoint information specific to Ethereum nodes. + message EthereumEndpoints { + // Output only. The assigned URL for the node's Beacon API endpoint. + string beacon_api_endpoint = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The assigned URL for the node's Beacon Prometheus metrics + // endpoint. See [Prometheus + // Metrics](https://lighthouse-book.sigmaprime.io/advanced_metrics.html) + // for more details. + string beacon_prometheus_metrics_api_endpoint = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The assigned URL for the node's execution client's + // Prometheus metrics endpoint. + string execution_client_prometheus_metrics_api_endpoint = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Configuration for validator-related parameters on the beacon client, + // and for any GCP-managed validator client. + message ValidatorConfig { + // URLs for MEV-relay services to use for block building. When set, a + // GCP-managed MEV-boost service is configured on the beacon client. + repeated string mev_relay_urls = 1; + + // Immutable. When true, deploys a GCP-managed validator client alongside + // the beacon client. + bool managed_validator_client = 2 + [(google.api.field_behavior) = IMMUTABLE]; + + // An Ethereum address which the beacon client will send fee rewards to if + // no recipient is configured in the validator client. + // + // See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html + // or https://docs.prylabs.network/docs/execution-node/fee-recipient for + // examples of how this is used. + // + // Note that while this is often described as "suggested", as we run the + // execution node we can trust the execution node, and therefore this is + // considered enforced. + optional string beacon_fee_recipient = 3; + } + + // The Ethereum environment being accessed. + // + // See [Networks](https://ethereum.org/en/developers/docs/networks) + // for more details. + enum Network { + // The network has not been specified, but should be. + NETWORK_UNSPECIFIED = 0; + + // The Ethereum Mainnet. + MAINNET = 1; + + // Deprecated: The Ethereum Testnet based on Goerli protocol. Please + // use another test network. + TESTNET_GOERLI_PRATER = 2 [deprecated = true]; + + // The Ethereum Testnet based on Sepolia/Bepolia protocol. + // See https://github.com/eth-clients/sepolia. + TESTNET_SEPOLIA = 3; + + // The Ethereum Testnet based on Holesky specification. + // See https://github.com/eth-clients/holesky. + TESTNET_HOLESKY = 4; + } + + // The type of Ethereum node. + // + // See + // [Node + // Types](https://ethereum.org/en/developers/docs/nodes-and-clients/#node-types) + // for more details. + enum NodeType { + // Node type has not been specified, but should be. + NODE_TYPE_UNSPECIFIED = 0; + + // An Ethereum node that only downloads Ethereum block headers. + LIGHT = 1; + + // Keeps a complete copy of the blockchain data, and contributes to the + // network by receiving, validating, and forwarding transactions. + FULL = 2; + + // Holds the same data as full node as well as all of the blockchain's + // history state data dating back to the Genesis Block. + ARCHIVE = 3; + } + + // The execution client (i.e., Execution Engine or EL client) listens to new + // transactions broadcast in the network, executes them in EVM, and holds + // the latest state and database of all current Ethereum data. + // + // See + // [What are nodes and + // clients?](https://ethereum.org/en/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) + // for more details. + enum ExecutionClient { + // Execution client has not been specified, but should be. + EXECUTION_CLIENT_UNSPECIFIED = 0; + + // Official Go implementation of the Ethereum protocol. + // See [go-ethereum](https://geth.ethereum.org/) for details. + GETH = 1; + + // An implementation of Ethereum (execution client), on the efficiency + // frontier, written in Go. See [Erigon on + // GitHub](https://github.com/ledgerwatch/erigon) for details. + ERIGON = 2; + } + + // The consensus client (also referred to as beacon node or CL client) + // implements the proof-of-stake consensus algorithm, which enables the + // network to achieve agreement based on validated data from the + // execution client. + // + // See + // [What are nodes and + // clients?](https://ethereum.org/en/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) + // for more details. + enum ConsensusClient { + // Consensus client has not been specified, but should be. + CONSENSUS_CLIENT_UNSPECIFIED = 0; + + // Consensus client implementation written in Rust, maintained by Sigma + // Prime. See [Lighthouse - Sigma + // Prime](https://lighthouse.sigmaprime.io/) for details. + LIGHTHOUSE = 1; + } + + // Options for the execution client. + oneof execution_client_details { + // Details for the Geth execution client. + GethDetails geth_details = 8; + } + + // Immutable. The Ethereum environment being accessed. + optional Network network = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The type of Ethereum node. + optional NodeType node_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The execution client + optional ExecutionClient execution_client = 3 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The consensus client. + optional ConsensusClient consensus_client = 4 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Enables JSON-RPC access to functions in the `admin` namespace. + // Defaults to `false`. + optional bool api_enable_admin = 5 + [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Enables JSON-RPC access to functions in the `debug` namespace. + // Defaults to `false`. + optional bool api_enable_debug = 6 + [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Ethereum-specific endpoint information. + optional EthereumEndpoints additional_endpoints = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Configuration for validator-related parameters on the beacon client, + // and for any GCP-managed validator client. + optional ValidatorConfig validator_config = 10; + } + + // The blockchain type of the node. + enum BlockchainType { + // Blockchain type has not been specified, but should be. + BLOCKCHAIN_TYPE_UNSPECIFIED = 0; + + // The blockchain type is Ethereum. + ETHEREUM = 1; + } + + // All possible states for a given blockchain node. + enum State { + // The state has not been specified. + STATE_UNSPECIFIED = 0; + + // The node has been requested and is in the process of being created. + CREATING = 1; + + // The existing node is undergoing deletion, but is not yet finished. + DELETING = 2; + + // The node is running and ready for use. + RUNNING = 4; + + // The node is in an unexpected or errored state. + ERROR = 5; + + // The node is currently being updated. + UPDATING = 6; + + // The node is currently being repaired. + REPAIRING = 7; + + // The node is currently being reconciled. + RECONCILING = 8; + + // The node is syncing, which is the process by which it obtains the latest + // block and current global state. + SYNCING = 9; + } + + // Information that is specific to a particular blockchain type. + oneof blockchain_type_details { + // Ethereum-specific blockchain node details. + EthereumDetails ethereum_details = 7; + } + + // Output only. The fully qualified name of the blockchain node. + // e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp at which the blockchain node was first created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp at which the blockchain node was last updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User-provided key-value pairs. + map labels = 4; + + // Immutable. The blockchain type of the node. + optional BlockchainType blockchain_type = 5 + [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The connection information used to interact with a blockchain + // node. + ConnectionInfo connection_info = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A status representing the state of the node. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. When true, the node is only accessible via Private Service + // Connect; no public endpoints are exposed. Otherwise, the node is only + // accessible via public endpoints. Warning: Private Service Connect enabled + // nodes may require a manual migration effort to remain compatible with + // future versions of the product. If this feature is enabled, you will be + // notified of these changes along with any required action to avoid + // disruption. See https://cloud.google.com/vpc/docs/private-service-connect. + bool private_service_connect_enabled = 12 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for requesting list of blockchain nodes. +message ListBlockchainNodesRequest { + // Required. Parent value for `ListNodesRequest`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "blockchainnodeengine.googleapis.com/BlockchainNode" + } + ]; + + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results the server should return. + string page_token = 3; + + // Filtering results. + string filter = 4; + + // Hint for how to order the results. + string order_by = 5; +} + +// Message for response to listing blockchain nodes. +message ListBlockchainNodesResponse { + // The list of nodes + repeated BlockchainNode blockchain_nodes = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a blockchain node. +message GetBlockchainNodeRequest { + // Required. The fully qualified name of the blockchain node to fetch. + // e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "blockchainnodeengine.googleapis.com/BlockchainNode" + } + ]; +} + +// Message for creating a blockchain node. +message CreateBlockchainNodeRequest { + // Required. Value for parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "blockchainnodeengine.googleapis.com/BlockchainNode" + } + ]; + + // Required. ID of the requesting object. + string blockchain_node_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created. + BlockchainNode blockchain_node = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for updating a blockchain node. +message UpdateBlockchainNodeRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Blockchain node resource by the update. + // The fields specified in the `update_mask` are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated. + BlockchainNode blockchain_node = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting a blockchain node. +message DeleteBlockchainNodeRequest { + // Required. The fully qualified name of the blockchain node to delete. + // e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "blockchainnodeengine.googleapis.com/BlockchainNode" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have `[Operation.error][]` value with a + // `[google.rpc.Status.code][google.rpc.Status.code]` of `1`, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine_v1.yaml b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine_v1.yaml new file mode 100644 index 000000000..b61fefe97 --- /dev/null +++ b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine_v1.yaml @@ -0,0 +1,55 @@ +type: google.api.Service +config_version: 3 +name: blockchainnodeengine.googleapis.com +title: Blockchain Node Engine API + +apis: +- name: google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine +- name: google.cloud.location.Locations +- name: google.longrunning.Operations + +types: +- name: google.cloud.blockchainnodeengine.v1.OperationMetadata + +documentation: + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine_v1_grpc_service_config.json new file mode 100644 index 000000000..721e76706 --- /dev/null +++ b/third_party/googleapis/google/cloud/blockchainnodeengine/v1/blockchainnodeengine_v1_grpc_service_config.json @@ -0,0 +1,19 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", "method": "CreateBlockchainNode" }, + { "service": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", "method": "DeleteBlockchainNode" }, + { "service": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", "method": "ListBlockchainNodes" }, + { "service": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", "method": "GetBlockchainNode" }, + { "service": "google.cloud.blockchainnodeengine.v1.BlockchainNodeEngine", "method": "UpdateBlockchainNode" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/cloud/certificatemanager/logging/v1/logs.proto b/third_party/googleapis/google/cloud/certificatemanager/logging/v1/logs.proto index 6f3fe56fa..ab2f41eff 100644 --- a/third_party/googleapis/google/cloud/certificatemanager/logging/v1/logs.proto +++ b/third_party/googleapis/google/cloud/certificatemanager/logging/v1/logs.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/certificatemanager/v1/BUILD.bazel b/third_party/googleapis/google/cloud/certificatemanager/v1/BUILD.bazel index 2b6c8f6cd..754273cb1 100644 --- a/third_party/googleapis/google/cloud/certificatemanager/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/certificatemanager/v1/BUILD.bazel @@ -9,20 +9,24 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "certificatemanager_proto", srcs = [ "certificate_issuance_config.proto", "certificate_manager.proto", + "trust_config.proto", ], deps = [ "//google/api:annotations_proto", @@ -49,6 +53,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -113,6 +118,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -166,6 +172,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -210,6 +217,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -226,11 +234,13 @@ php_gapic_library( name = "certificatemanager_php_gapic", srcs = [":certificatemanager_proto_with_info"], grpc_service_config = "certificatemanager_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "certificatemanager_v1.yaml", transport = "grpc+rest", - deps = [":certificatemanager_php_proto"], + deps = [ + ":certificatemanager_php_proto", + ], ) # Open Source Packages @@ -245,6 +255,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -275,6 +286,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -328,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -374,6 +387,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_issuance_config.proto b/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_issuance_config.proto index 3d20aa0b8..c2a640a1a 100644 --- a/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_issuance_config.proto +++ b/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_issuance_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -58,7 +58,7 @@ message ListCertificateIssuanceConfigsRequest { // A list of Certificate Config field names used to specify the order of the // returned results. The default sorting order is ascending. To specify - // descending order for a field, add a suffix " desc". + // descending order for a field, add a suffix `" desc"`. string order_by = 5; } diff --git a/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto b/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto index 6cfbf6ac0..f32753777 100644 --- a/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto +++ b/third_party/googleapis/google/cloud/certificatemanager/v1/certificate_manager.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/certificatemanager/v1/certificate_issuance_config.proto"; +import "google/cloud/certificatemanager/v1/trust_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -349,6 +350,65 @@ service CertificateManager { metadata_type: "OperationMetadata" }; } + + // Lists TrustConfigs in a given project and location. + rpc ListTrustConfigs(ListTrustConfigsRequest) + returns (ListTrustConfigsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/trustConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single TrustConfig. + rpc GetTrustConfig(GetTrustConfigRequest) returns (TrustConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/trustConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new TrustConfig in a given project and location. + rpc CreateTrustConfig(CreateTrustConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/trustConfigs" + body: "trust_config" + }; + option (google.api.method_signature) = + "parent,trust_config,trust_config_id"; + option (google.longrunning.operation_info) = { + response_type: "TrustConfig" + metadata_type: "OperationMetadata" + }; + } + + // Updates a TrustConfig. + rpc UpdateTrustConfig(UpdateTrustConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{trust_config.name=projects/*/locations/*/trustConfigs/*}" + body: "trust_config" + }; + option (google.api.method_signature) = "trust_config,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "TrustConfig" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single TrustConfig. + rpc DeleteTrustConfig(DeleteTrustConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/trustConfigs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } } // Request for the `ListCertificates` method. @@ -375,7 +435,7 @@ message ListCertificatesRequest { // A list of Certificate field names used to specify the order of the returned // results. The default sorting order is ascending. To specify descending - // order for a field, add a suffix " desc". + // order for a field, add a suffix `" desc"`. string order_by = 5; } @@ -471,7 +531,7 @@ message ListCertificateMapsRequest { // A list of Certificate Map field names used to specify the order of the // returned results. The default sorting order is ascending. To specify - // descending order for a field, add a suffix " desc". + // descending order for a field, add a suffix `" desc"`. string order_by = 5; } @@ -572,7 +632,7 @@ message ListCertificateMapEntriesRequest { // A list of Certificate Map Entry field names used to specify // the order of the returned results. The default sorting order is ascending. - // To specify descending order for a field, add a suffix " desc". + // To specify descending order for a field, add a suffix `" desc"`. string order_by = 5; } @@ -670,7 +730,7 @@ message ListDnsAuthorizationsRequest { // A list of Dns Authorization field names used to specify the order of the // returned results. The default sorting order is ascending. To specify - // descending order for a field, add a suffix " desc". + // descending order for a field, add a suffix `" desc"`. string order_by = 5; } @@ -851,8 +911,8 @@ message Certificate { // State is unspecified. STATE_UNSPECIFIED = 0; - // Certificate provisioning for this domain is under way. GCP will - // attempt to authorize the domain. + // Certificate provisioning for this domain is under way. Google Cloud + // will attempt to authorize the domain. AUTHORIZING = 1; // A managed certificate can be provisioned, no issues for this domain. @@ -948,8 +1008,13 @@ message Certificate { DEFAULT = 0; // Certificates with scope EDGE_CACHE are special-purposed certificates, - // served from non-core Google data centers. + // served from Edge Points of Presence. + // See https://cloud.google.com/vpc/docs/edge-locations. EDGE_CACHE = 1; + + // Certificates with ALL_REGIONS scope are served from all Google Cloud + // regions. See https://cloud.google.com/compute/docs/regions-zones. + ALL_REGIONS = 2; } // A user-defined name of the certificate. Certificate names must be unique @@ -1140,6 +1205,20 @@ message DnsAuthorization { string data = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // DnsAuthorization type. + enum Type { + // Type is unspecified. + TYPE_UNSPECIFIED = 0; + + // FIXED_RECORD DNS authorization uses DNS-01 validation method. + FIXED_RECORD = 1; + + // PER_PROJECT_RECORD DNS authorization allows for independent management + // of Google-managed certificates with DNS authorization across multiple + // projects. + PER_PROJECT_RECORD = 2; + } + // A user-defined name of the dns authorization. DnsAuthorization names must // be unique globally and match pattern // `projects/*/locations/*/dnsAuthorizations/*`. @@ -1172,6 +1251,11 @@ message DnsAuthorization { // configuration. DnsResourceRecord dns_resource_record = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Type of DnsAuthorization. If unset during resource creation the + // following default will be used: + // - in location global: FIXED_RECORD. + Type type = 11 [(google.api.field_behavior) = IMMUTABLE]; } // Defines set of serving states associated with a resource. diff --git a/third_party/googleapis/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml b/third_party/googleapis/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml index 17731a66f..a4df96872 100644 --- a/third_party/googleapis/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml +++ b/third_party/googleapis/google/cloud/certificatemanager/v1/certificatemanager_v1.yaml @@ -19,19 +19,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: 'google.cloud.certificatemanager.v1.CertificateManager.*' - deadline: 60.0 - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 5.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/certificatemanager/v1/trust_config.proto b/third_party/googleapis/google/cloud/certificatemanager/v1/trust_config.proto new file mode 100644 index 000000000..6cd01f49d --- /dev/null +++ b/third_party/googleapis/google/cloud/certificatemanager/v1/trust_config.proto @@ -0,0 +1,207 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.certificatemanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CertificateManager.V1"; +option go_package = "cloud.google.com/go/certificatemanager/apiv1/certificatemanagerpb;certificatemanagerpb"; +option java_multiple_files = true; +option java_outer_classname = "TrustConifgProto"; +option java_package = "com.google.cloud.certificatemanager.v1"; +option php_namespace = "Google\\Cloud\\CertificateManager\\V1"; +option ruby_package = "Google::Cloud::CertificateManager::V1"; + +// Request for the `ListTrustConfigs` method. +message ListTrustConfigsRequest { + // Required. The project and location from which the TrustConfigs should be + // listed, specified in the format `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Maximum number of TrustConfigs to return per call. + int32 page_size = 2; + + // The value returned by the last `ListTrustConfigsResponse`. Indicates + // that this is a continuation of a prior `ListTrustConfigs` call, and that + // the system should return the next page of data. + string page_token = 3; + + // Filter expression to restrict the TrustConfigs returned. + string filter = 4; + + // A list of TrustConfig field names used to specify the order of the + // returned results. The default sorting order is ascending. To specify + // descending order for a field, add a suffix `" desc"`. + string order_by = 5; +} + +// Response for the `ListTrustConfigs` method. +message ListTrustConfigsResponse { + // A list of TrustConfigs for the parent resource. + repeated TrustConfig trust_configs = 1; + + // If there might be more results than those appearing in this response, then + // `next_page_token` is included. To get the next set of results, call this + // method again using the value of `next_page_token` as `page_token`. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for the `GetTrustConfig` method. +message GetTrustConfigRequest { + // Required. A name of the TrustConfig to describe. Must be in the format + // `projects/*/locations/*/trustConfigs/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/TrustConfig" + } + ]; +} + +// Request for the `CreateTrustConfig` method. +message CreateTrustConfigRequest { + // Required. The parent resource of the TrustConfig. Must be in the format + // `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. A user-provided name of the TrustConfig. Must match the regexp + // `[a-z0-9-]{1,63}`. + string trust_config_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A definition of the TrustConfig to create. + TrustConfig trust_config = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateTrustConfig` method. +message UpdateTrustConfigRequest { + // Required. A definition of the TrustConfig to update. + TrustConfig trust_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. For the `FieldMask` + // definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `DeleteTrustConfig` method. +message DeleteTrustConfigRequest { + // Required. A name of the TrustConfig to delete. Must be in the format + // `projects/*/locations/*/trustConfigs/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "certificatemanager.googleapis.com/TrustConfig" + } + ]; + + // The current etag of the TrustConfig. + // If an etag is provided and does not match the current etag of the resource, + // deletion will be blocked and an ABORTED error will be returned. + string etag = 2; +} + +// Defines a trust config. +message TrustConfig { + option (google.api.resource) = { + type: "certificatemanager.googleapis.com/TrustConfig" + pattern: "projects/{project}/locations/{location}/trustConfigs/{trust_config}" + }; + + // Defines a trust anchor. + message TrustAnchor { + oneof kind { + // PEM root certificate of the PKI used for validation. + // + // Each certificate provided in PEM format may occupy up to 5kB. + string pem_certificate = 1; + } + } + + // Defines an intermediate CA. + message IntermediateCA { + oneof kind { + // PEM intermediate certificate used for building up paths + // for validation. + // + // Each certificate provided in PEM format may occupy up to 5kB. + string pem_certificate = 1; + } + } + + // Defines a trust store. + message TrustStore { + // List of Trust Anchors to be used while performing validation + // against a given TrustStore. + repeated TrustAnchor trust_anchors = 1; + + // Set of intermediate CA certificates used for the path building + // phase of chain validation. + // + // The field is currently not supported if TrustConfig is used for the + // workload certificate feature. + repeated IntermediateCA intermediate_cas = 2; + } + + // A user-defined name of the trust config. TrustConfig names must be + // unique globally and match pattern + // `projects/*/locations/*/trustConfigs/*`. + string name = 1; + + // Output only. The creation timestamp of a TrustConfig. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last update timestamp of a TrustConfig. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Set of labels associated with a TrustConfig. + map labels = 4; + + // One or more paragraphs of text description of a TrustConfig. + string description = 5; + + // 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. + string etag = 6; + + // Set of trust stores to perform validation against. + // + // This field is supported when TrustConfig is configured with Load Balancers, + // currently not supported for SPIFFE certificate validation. + // + // Only one TrustStore specified is currently allowed. + repeated TrustStore trust_stores = 8; +} diff --git a/third_party/googleapis/google/cloud/channel/v1/billing_accounts.proto b/third_party/googleapis/google/cloud/channel/v1/billing_accounts.proto index 7ab8ba006..5a734913d 100644 --- a/third_party/googleapis/google/cloud/channel/v1/billing_accounts.proto +++ b/third_party/googleapis/google/cloud/channel/v1/billing_accounts.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/channel_partner_links.proto b/third_party/googleapis/google/cloud/channel/v1/channel_partner_links.proto index edc3ca052..1269e938e 100644 --- a/third_party/googleapis/google/cloud/channel/v1/channel_partner_links.proto +++ b/third_party/googleapis/google/cloud/channel/v1/channel_partner_links.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/common.proto b/third_party/googleapis/google/cloud/channel/v1/common.proto index 0f7a21e4c..26dd79e50 100644 --- a/third_party/googleapis/google/cloud/channel/v1/common.proto +++ b/third_party/googleapis/google/cloud/channel/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/customers.proto b/third_party/googleapis/google/cloud/channel/v1/customers.proto index 304a07496..f0ee7aeb8 100644 --- a/third_party/googleapis/google/cloud/channel/v1/customers.proto +++ b/third_party/googleapis/google/cloud/channel/v1/customers.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/entitlement_changes.proto b/third_party/googleapis/google/cloud/channel/v1/entitlement_changes.proto index ef4f4da60..9708c7d90 100644 --- a/third_party/googleapis/google/cloud/channel/v1/entitlement_changes.proto +++ b/third_party/googleapis/google/cloud/channel/v1/entitlement_changes.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/entitlements.proto b/third_party/googleapis/google/cloud/channel/v1/entitlements.proto index f0b168922..cfab865de 100644 --- a/third_party/googleapis/google/cloud/channel/v1/entitlements.proto +++ b/third_party/googleapis/google/cloud/channel/v1/entitlements.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/offers.proto b/third_party/googleapis/google/cloud/channel/v1/offers.proto index 6f40198e0..d981d1e59 100644 --- a/third_party/googleapis/google/cloud/channel/v1/offers.proto +++ b/third_party/googleapis/google/cloud/channel/v1/offers.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/operations.proto b/third_party/googleapis/google/cloud/channel/v1/operations.proto index 112a85319..675553777 100644 --- a/third_party/googleapis/google/cloud/channel/v1/operations.proto +++ b/third_party/googleapis/google/cloud/channel/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/products.proto b/third_party/googleapis/google/cloud/channel/v1/products.proto index 02b2199bf..5f603f76b 100644 --- a/third_party/googleapis/google/cloud/channel/v1/products.proto +++ b/third_party/googleapis/google/cloud/channel/v1/products.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/reports_service.proto b/third_party/googleapis/google/cloud/channel/v1/reports_service.proto index 9188fb9cb..81ca962e0 100644 --- a/third_party/googleapis/google/cloud/channel/v1/reports_service.proto +++ b/third_party/googleapis/google/cloud/channel/v1/reports_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/repricing.proto b/third_party/googleapis/google/cloud/channel/v1/repricing.proto index c452619a6..2c271cf49 100644 --- a/third_party/googleapis/google/cloud/channel/v1/repricing.proto +++ b/third_party/googleapis/google/cloud/channel/v1/repricing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/service.proto b/third_party/googleapis/google/cloud/channel/v1/service.proto index 98aa066f7..ae54142db 100644 --- a/third_party/googleapis/google/cloud/channel/v1/service.proto +++ b/third_party/googleapis/google/cloud/channel/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/channel/v1/subscriber_event.proto b/third_party/googleapis/google/cloud/channel/v1/subscriber_event.proto index 51e13c1f1..bf0817cfc 100644 --- a/third_party/googleapis/google/cloud/channel/v1/subscriber_event.proto +++ b/third_party/googleapis/google/cloud/channel/v1/subscriber_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/BUILD.bazel b/third_party/googleapis/google/cloud/cloudcontrolspartner/BUILD.bazel index f75faad33..341b4b070 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/BUILD.bazel +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/BUILD.bazel @@ -15,15 +15,15 @@ load( # Generates a Ruby wrapper client for cloudcontrolspartner. # Ruby wrapper clients are versionless, but are generated from source protos -# for a particular service version, v1beta in this case. +# for a particular service version, v1 in this case. ruby_cloud_gapic_library( name = "cloudcontrolspartner_ruby_wrapper", - srcs = ["//google/cloud/cloudcontrolspartner/v1beta:cloudcontrolspartner_proto_with_info"], + srcs = ["//google/cloud/cloudcontrolspartner/v1:cloudcontrolspartner_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-cloud_controls_partner", - "ruby-cloud-wrapper-of=v1beta:0.0", + "ruby-cloud-wrapper-of=v1:0.0", ], - service_yaml = "//google/cloud/cloudcontrolspartner/v1beta:cloudcontrolspartner_v1beta.yaml", + service_yaml = "//google/cloud/cloudcontrolspartner/v1:cloudcontrolspartner_v1.yaml", transport = "grpc+rest", ) diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/BUILD.bazel b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/BUILD.bazel new file mode 100644 index 000000000..b4d77237e --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/BUILD.bazel @@ -0,0 +1,393 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "cloudcontrolspartner_proto", + srcs = [ + "access_approval_requests.proto", + "completion_state.proto", + "core.proto", + "customer_workloads.proto", + "customers.proto", + "ekm_connections.proto", + "monitoring.proto", + "partner_permissions.proto", + "partners.proto", + "violations.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/type:interval_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "cloudcontrolspartner_proto_with_info", + deps = [ + ":cloudcontrolspartner_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "cloudcontrolspartner_java_proto", + deps = [":cloudcontrolspartner_proto"], +) + +java_grpc_library( + name = "cloudcontrolspartner_java_grpc", + srcs = [":cloudcontrolspartner_proto"], + deps = [":cloudcontrolspartner_java_proto"], +) + +java_gapic_library( + name = "cloudcontrolspartner_java_gapic", + srcs = [":cloudcontrolspartner_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + test_deps = [ + ":cloudcontrolspartner_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":cloudcontrolspartner_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "cloudcontrolspartner_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCoreClientHttpJsonTest", + "com.google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCoreClientTest", + "com.google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoringClientHttpJsonTest", + "com.google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoringClientTest", + ], + runtime_deps = [":cloudcontrolspartner_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-cloudcontrolspartner-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":cloudcontrolspartner_java_gapic", + ":cloudcontrolspartner_java_grpc", + ":cloudcontrolspartner_java_proto", + ":cloudcontrolspartner_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "cloudcontrolspartner_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb", + protos = [":cloudcontrolspartner_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/type:interval_go_proto", + ], +) + +go_gapic_library( + name = "cloudcontrolspartner_go_gapic", + srcs = [":cloudcontrolspartner_proto_with_info"], + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/cloudcontrolspartner/apiv1;cloudcontrolspartner", + metadata = True, + release_level = "ga", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + transport = "grpc+rest", + deps = [ + ":cloudcontrolspartner_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-cloudcontrolspartner-v1-go", + deps = [ + ":cloudcontrolspartner_go_gapic", + ":cloudcontrolspartner_go_gapic_srcjar-metadata.srcjar", + ":cloudcontrolspartner_go_gapic_srcjar-snippets.srcjar", + ":cloudcontrolspartner_go_gapic_srcjar-test.srcjar", + ":cloudcontrolspartner_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "cloudcontrolspartner_py_gapic", + srcs = [":cloudcontrolspartner_proto"], + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "cloudcontrolspartner_py_gapic_test", + srcs = [ + "cloudcontrolspartner_py_gapic_pytest.py", + "cloudcontrolspartner_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":cloudcontrolspartner_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "cloudcontrolspartner-v1-py", + deps = [ + ":cloudcontrolspartner_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "cloudcontrolspartner_php_proto", + deps = [":cloudcontrolspartner_proto"], +) + +php_gapic_library( + name = "cloudcontrolspartner_php_gapic", + srcs = [":cloudcontrolspartner_proto_with_info"], + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + transport = "grpc+rest", + deps = [ + ":cloudcontrolspartner_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-cloudcontrolspartner-v1-php", + deps = [ + ":cloudcontrolspartner_php_gapic", + ":cloudcontrolspartner_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "cloudcontrolspartner_nodejs_gapic", + package_name = "@google-cloud/cloudcontrolspartner", + src = ":cloudcontrolspartner_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + package = "google.cloud.cloudcontrolspartner.v1", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "cloudcontrolspartner-v1-nodejs", + deps = [ + ":cloudcontrolspartner_nodejs_gapic", + ":cloudcontrolspartner_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "cloudcontrolspartner_ruby_proto", + deps = [":cloudcontrolspartner_proto"], +) + +ruby_grpc_library( + name = "cloudcontrolspartner_ruby_grpc", + srcs = [":cloudcontrolspartner_proto"], + deps = [":cloudcontrolspartner_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "cloudcontrolspartner_ruby_gapic", + srcs = [":cloudcontrolspartner_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-cloud_controls_partner-v1"], + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + transport = "grpc+rest", + deps = [ + ":cloudcontrolspartner_ruby_grpc", + ":cloudcontrolspartner_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-cloudcontrolspartner-v1-ruby", + deps = [ + ":cloudcontrolspartner_ruby_gapic", + ":cloudcontrolspartner_ruby_grpc", + ":cloudcontrolspartner_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "cloudcontrolspartner_csharp_proto", + deps = [":cloudcontrolspartner_proto"], +) + +csharp_grpc_library( + name = "cloudcontrolspartner_csharp_grpc", + srcs = [":cloudcontrolspartner_proto"], + deps = [":cloudcontrolspartner_csharp_proto"], +) + +csharp_gapic_library( + name = "cloudcontrolspartner_csharp_gapic", + srcs = [":cloudcontrolspartner_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "cloudcontrolspartner_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "cloudcontrolspartner_v1.yaml", + transport = "grpc+rest", + deps = [ + ":cloudcontrolspartner_csharp_grpc", + ":cloudcontrolspartner_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-cloudcontrolspartner-v1-csharp", + deps = [ + ":cloudcontrolspartner_csharp_gapic", + ":cloudcontrolspartner_csharp_grpc", + ":cloudcontrolspartner_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "cloudcontrolspartner_cc_proto", + deps = [":cloudcontrolspartner_proto"], +) + +cc_grpc_library( + name = "cloudcontrolspartner_cc_grpc", + srcs = [":cloudcontrolspartner_proto"], + grpc_only = True, + deps = [":cloudcontrolspartner_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/access_approval_requests.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/access_approval_requests.proto new file mode 100644 index 000000000..72a2902e5 --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/access_approval_requests.proto @@ -0,0 +1,146 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "AccessApprovalRequestsProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Details about the Access request. +message AccessApprovalRequest { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/AccessApprovalRequest" + pattern: "organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}" + plural: "accessApprovalRequests" + singular: "accessApprovalRequest" + }; + + // Identifier. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The time at which approval was requested. + google.protobuf.Timestamp request_time = 2; + + // The justification for which approval is being requested. + AccessReason requested_reason = 3; + + // The requested expiration for the approval. If the request is approved, + // access will be granted from the time of approval until the expiration time. + google.protobuf.Timestamp requested_expiration_time = 4; +} + +// Request for getting the access requests associated with a workload. +message ListAccessApprovalRequestsRequest { + // Required. Parent resource + // Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudcontrolspartner.googleapis.com/AccessApprovalRequest" + } + ]; + + // Optional. The maximum number of access requests to return. The service may + // return fewer than this value. If unspecified, at most 500 access requests + // will be returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous + // `ListAccessApprovalRequests` call. Provide this to retrieve the subsequent + // page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for list access requests. +message ListAccessApprovalRequestsResponse { + // List of access approval requests + repeated AccessApprovalRequest access_approval_requests = 1; + + // A token that can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Reason for the access. +message AccessReason { + // Type of access justification. + enum Type { + // Default value for proto, shouldn't be used. + TYPE_UNSPECIFIED = 0; + + // Customer made a request or raised an issue that required the principal to + // access customer data. `detail` is of the form ("#####" is the issue ID): + // + // - "Feedback Report: #####" + // - "Case Number: #####" + // - "Case ID: #####" + // - "E-PIN Reference: #####" + // - "Google-#####" + // - "T-#####" + CUSTOMER_INITIATED_SUPPORT = 1; + + // The principal accessed customer data in order to diagnose or resolve a + // suspected issue in services. Often this access is used to confirm that + // customers are not affected by a suspected service issue or to remediate a + // reversible system issue. + GOOGLE_INITIATED_SERVICE = 2; + + // Google initiated service for security, fraud, abuse, or compliance + // purposes. + GOOGLE_INITIATED_REVIEW = 3; + + // The principal was compelled to access customer data in order to respond + // to a legal third party data request or process, including legal processes + // from customers themselves. + THIRD_PARTY_DATA_REQUEST = 4; + + // The principal accessed customer data in order to diagnose or resolve a + // suspected issue in services or a known outage. + GOOGLE_RESPONSE_TO_PRODUCTION_ALERT = 5; + + // Similar to 'GOOGLE_INITIATED_SERVICE' or 'GOOGLE_INITIATED_REVIEW', but + // with universe agnostic naming. The principal accessed customer data in + // order to diagnose or resolve a suspected issue in services or a known + // outage, or for security, fraud, abuse, or compliance review purposes. + CLOUD_INITIATED_ACCESS = 6; + } + + // Type of access justification. + Type type = 1; + + // More detail about certain reason types. See comments for each type above. + string detail = 2; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/cloudcontrolspartner_v1.yaml b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/cloudcontrolspartner_v1.yaml new file mode 100644 index 000000000..fe59b9bfd --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/cloudcontrolspartner_v1.yaml @@ -0,0 +1,74 @@ +type: google.api.Service +config_version: 3 +name: cloudcontrolspartner.googleapis.com +title: Cloud Controls Partner API + +apis: +- name: google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore +- name: google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring + +types: +- name: google.cloud.cloudcontrolspartner.v1.OperationMetadata + +documentation: + summary: |- + Provides insights about your customers and their Assured Workloads based on + your Sovereign Controls by Partners offering. + +authentication: + rules: + - selector: 'google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring.GetViolation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring.ListViolations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1504051 + documentation_uri: https://cloud.google.com/sovereign-controls-by-partners/docs/sovereign-partners/reference/rest + api_short_name: cloudcontrolspartner + github_label: 'api: cloudcontrolspartner' + doc_tag_prefix: cloudcontrolspartner + organization: CLOUD + library_settings: + - version: google.cloud.cloudcontrolspartner.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/cloudcontrolspartner_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/cloudcontrolspartner_v1_grpc_service_config.json new file mode 100644 index 000000000..7a431e2b1 --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/cloudcontrolspartner_v1_grpc_service_config.json @@ -0,0 +1,23 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "GetCustomer" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "GetEkmConnections" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "GetPartnerPermissions" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "GetWorkload" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "ListAccessApprovalRequests" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "ListCustomers" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerCore", "method": "ListWorkloads" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring", "method": "GetViolation" }, + { "service": "google.cloud.cloudcontrolspartner.v1.CloudControlsPartnerMonitoring", "method": "ListViolations" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} \ No newline at end of file diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/completion_state.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/completion_state.proto new file mode 100644 index 000000000..f4dde121b --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/completion_state.proto @@ -0,0 +1,43 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "CompletionStateProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Enum for possible completion states. +enum CompletionState { + // Unspecified completion state. + COMPLETION_STATE_UNSPECIFIED = 0; + + // Task started (has start date) but not yet completed. + PENDING = 1; + + // Succeeded state. + SUCCEEDED = 2; + + // Failed state. + FAILED = 3; + + // Not applicable state. + NOT_APPLICABLE = 4; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/core.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/core.proto new file mode 100644 index 000000000..a4685e5d8 --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/core.proto @@ -0,0 +1,146 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/cloudcontrolspartner/v1/access_approval_requests.proto"; +import "google/cloud/cloudcontrolspartner/v1/customer_workloads.proto"; +import "google/cloud/cloudcontrolspartner/v1/customers.proto"; +import "google/cloud/cloudcontrolspartner/v1/ekm_connections.proto"; +import "google/cloud/cloudcontrolspartner/v1/partner_permissions.proto"; +import "google/cloud/cloudcontrolspartner/v1/partners.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "CoreProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; +option (google.api.resource_definition) = { + type: "cloudcontrolspartner.googleapis.com/OrganizationLocation" + pattern: "organizations/{organization}/locations/{location}" +}; + +// Service describing handlers for resources +service CloudControlsPartnerCore { + option (google.api.default_host) = "cloudcontrolspartner.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets details of a single workload + rpc GetWorkload(GetWorkloadRequest) returns (Workload) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/locations/*/customers/*/workloads/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists customer workloads for a given customer org id + rpc ListWorkloads(ListWorkloadsRequest) returns (ListWorkloadsResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/locations/*/customers/*}/workloads" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single customer + rpc GetCustomer(GetCustomerRequest) returns (Customer) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/locations/*/customers/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists customers of a partner identified by its Google Cloud organization ID + rpc ListCustomers(ListCustomersRequest) returns (ListCustomersResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/locations/*}/customers" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the EKM connections associated with a workload + rpc GetEkmConnections(GetEkmConnectionsRequest) returns (EkmConnections) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/locations/*/customers/*/workloads/*/ekmConnections}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets the partner permissions granted for a workload + rpc GetPartnerPermissions(GetPartnerPermissionsRequest) + returns (PartnerPermissions) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/locations/*/customers/*/workloads/*/partnerPermissions}" + }; + option (google.api.method_signature) = "name"; + } + + // Deprecated: Only returns access approval requests directly associated with + // an assured workload folder. + rpc ListAccessApprovalRequests(ListAccessApprovalRequestsRequest) + returns (ListAccessApprovalRequestsResponse) { + option deprecated = true; + option (google.api.http) = { + get: "/v1/{parent=organizations/*/locations/*/customers/*/workloads/*}/accessApprovalRequests" + }; + option (google.api.method_signature) = "parent"; + } + + // Get details of a Partner. + rpc GetPartner(GetPartnerRequest) returns (Partner) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/locations/*/partner}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/customer_workloads.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/customer_workloads.proto new file mode 100644 index 000000000..76b2b4210 --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/customer_workloads.proto @@ -0,0 +1,182 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/cloudcontrolspartner/v1/completion_state.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "CustomerWorkloadsProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Contains metadata around the [Workload +// resource](https://cloud.google.com/assured-workloads/docs/reference/rest/Shared.Types/Workload) +// in the Assured Workloads API. +message Workload { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/Workload" + pattern: "organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}" + plural: "workloads" + singular: "workload" + }; + + // Supported Assured Workloads Partners. + enum Partner { + // Unknown Partner. + PARTNER_UNSPECIFIED = 0; + + // Enum representing S3NS (Thales) partner. + PARTNER_LOCAL_CONTROLS_BY_S3NS = 1; + + // Enum representing T_SYSTEM (TSI) partner. + PARTNER_SOVEREIGN_CONTROLS_BY_T_SYSTEMS = 2; + + // Enum representing SIA_MINSAIT (Indra) partner. + PARTNER_SOVEREIGN_CONTROLS_BY_SIA_MINSAIT = 3; + + // Enum representing PSN (TIM) partner. + PARTNER_SOVEREIGN_CONTROLS_BY_PSN = 4; + + // Enum representing CNTXT (Kingdom of Saudi Arabia) partner. + PARTNER_SOVEREIGN_CONTROLS_BY_CNTXT = 6; + + // Enum representing CNXT (Kingdom of Saudi Arabia) partner offering without + // EKM provisioning. + PARTNER_SOVEREIGN_CONTROLS_BY_CNTXT_NO_EKM = 7; + } + + // Identifier. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Folder id this workload is associated with + int64 folder_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time the resource was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of container folder of the assured workload + string folder = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Container for workload onboarding steps. + WorkloadOnboardingState workload_onboarding_state = 5; + + // Indicates whether a workload is fully onboarded. + bool is_onboarded = 6; + + // The project id of the key management project for the workload + string key_management_project_id = 7; + + // The Google Cloud location of the workload + string location = 8; + + // Partner associated with this workload. + Partner partner = 9; +} + +// Request to list customer workloads. +message ListWorkloadsRequest { + // Required. Parent resource + // Format: + // `organizations/{organization}/locations/{location}/customers/{customer}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudcontrolspartner.googleapis.com/Workload" + } + ]; + + // The maximum number of workloads to return. The service may return fewer + // than this value. If unspecified, at most 500 workloads will be returned. + int32 page_size = 2; + + // A page token, received from a previous `ListWorkloads` call. + // Provide this to retrieve the subsequent page. + string page_token = 3; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for list customer workloads requests. +message ListWorkloadsResponse { + // List of customer workloads + repeated Workload workloads = 1; + + // A token that can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a customer workload. +message GetWorkloadRequest { + // Required. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudcontrolspartner.googleapis.com/Workload" + } + ]; +} + +// Container for workload onboarding steps. +message WorkloadOnboardingState { + // List of workload onboarding steps. + repeated WorkloadOnboardingStep onboarding_steps = 1; +} + +// Container for workload onboarding information. +message WorkloadOnboardingStep { + // Enum for possible onboarding steps. + enum Step { + // Unspecified step. + STEP_UNSPECIFIED = 0; + + // EKM Provisioned step. + EKM_PROVISIONED = 1; + + // Signed Access Approval step. + SIGNED_ACCESS_APPROVAL_CONFIGURED = 2; + } + + // The onboarding step. + Step step = 1; + + // The starting time of the onboarding step. + google.protobuf.Timestamp start_time = 2; + + // The completion time of the onboarding step. + google.protobuf.Timestamp completion_time = 3; + + // Output only. The completion state of the onboarding step. + CompletionState completion_state = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/customers.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/customers.proto new file mode 100644 index 000000000..8cbc969be --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/customers.proto @@ -0,0 +1,138 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/cloudcontrolspartner/v1/completion_state.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "CustomersProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Contains metadata around a Cloud Controls Partner Customer +message Customer { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/Customer" + pattern: "organizations/{organization}/locations/{location}/customers/{customer}" + plural: "customers" + singular: "customer" + }; + + // Identifier. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The customer organization's display name. E.g. "google.com". + string display_name = 2; + + // Container for customer onboarding steps + CustomerOnboardingState customer_onboarding_state = 3; + + // Indicates whether a customer is fully onboarded + bool is_onboarded = 4; +} + +// Request to list customers +message ListCustomersRequest { + // Required. Parent resource + // Format: `organizations/{organization}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudcontrolspartner.googleapis.com/Customer" + } + ]; + + // The maximum number of Customers to return. The service may return fewer + // than this value. If unspecified, at most 500 Customers will be returned. + int32 page_size = 2; + + // A page token, received from a previous `ListCustomers` call. + // Provide this to retrieve the subsequent page. + string page_token = 3; + + // Optional. Filtering results + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for list customer Customers requests +message ListCustomersResponse { + // List of customers + repeated Customer customers = 1; + + // A token that can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a customer +message GetCustomerRequest { + // Required. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudcontrolspartner.googleapis.com/Customer" + } + ]; +} + +// Container for customer onboarding steps +message CustomerOnboardingState { + // List of customer onboarding steps + repeated CustomerOnboardingStep onboarding_steps = 1; +} + +// Container for customer onboarding information +message CustomerOnboardingStep { + // Enum for possible onboarding steps + enum Step { + // Unspecified step + STEP_UNSPECIFIED = 0; + + // KAJ Enrollment + KAJ_ENROLLMENT = 1; + + // Customer Environment + CUSTOMER_ENVIRONMENT = 2; + } + + // The onboarding step + Step step = 1; + + // The starting time of the onboarding step + google.protobuf.Timestamp start_time = 2; + + // The completion time of the onboarding step + google.protobuf.Timestamp completion_time = 3; + + // Output only. Current state of the step + CompletionState completion_state = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/ekm_connections.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/ekm_connections.proto new file mode 100644 index 000000000..6ce1bacdc --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/ekm_connections.proto @@ -0,0 +1,97 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "EkmConnectionsProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// The EKM connections associated with a workload +message EkmConnections { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/EkmConnections" + pattern: "organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections" + }; + + // Identifier. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The EKM connections associated with the workload + repeated EkmConnection ekm_connections = 2; +} + +// Request for getting the EKM connections associated with a workload +message GetEkmConnectionsRequest { + // Required. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudcontrolspartner.googleapis.com/EkmConnections" + } + ]; +} + +// Details about the EKM connection +message EkmConnection { + // Information around the error that occurred if the connection state is + // anything other than available or unspecified + message ConnectionError { + // The error domain for the error + string error_domain = 1; + + // The error message for the error + string error_message = 2; + } + + // The EKM connection state. + enum ConnectionState { + // Unspecified EKM connection state + CONNECTION_STATE_UNSPECIFIED = 0; + + // Available EKM connection state + AVAILABLE = 1; + + // Not available EKM connection state + NOT_AVAILABLE = 2; + + // Error EKM connection state + ERROR = 3; + + // Permission denied EKM connection state + PERMISSION_DENIED = 4; + } + + // Resource name of the EKM connection in the format: + // projects/{project}/locations/{location}/ekmConnections/{ekm_connection} + string connection_name = 1; + + // Output only. The connection state + ConnectionState connection_state = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The connection error that occurred if any + ConnectionError connection_error = 3; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/monitoring.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/monitoring.proto new file mode 100644 index 000000000..d7ff65da4 --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/monitoring.proto @@ -0,0 +1,58 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/cloudcontrolspartner/v1/violations.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "MonitoringProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Service describing handlers for resources +service CloudControlsPartnerMonitoring { + option (google.api.default_host) = "cloudcontrolspartner.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Violations for a workload + // Callers may also choose to read across multiple Customers or for a single + // customer as per + // [AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash + // character) as a wildcard character instead of {customer} & {workload}. + // Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` + rpc ListViolations(ListViolationsRequest) returns (ListViolationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/locations/*/customers/*/workloads/*}/violations" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Violation. + rpc GetViolation(GetViolationRequest) returns (Violation) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/locations/*/customers/*/workloads/*/violations/*}" + }; + option (google.api.method_signature) = "name"; + } +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto new file mode 100644 index 000000000..62cafcfc8 --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto @@ -0,0 +1,72 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "PartnerPermissionsProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// The permissions granted to the partner for a workload +message PartnerPermissions { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/PartnerPermissions" + pattern: "organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions" + }; + + enum Permission { + // Unspecified partner permission + PERMISSION_UNSPECIFIED = 0; + + // Permission for Access Transparency and emergency logs + ACCESS_TRANSPARENCY_AND_EMERGENCY_ACCESS_LOGS = 1; + + // Permission for Assured Workloads monitoring violations + ASSURED_WORKLOADS_MONITORING = 2; + + // Permission for Access Approval requests + ACCESS_APPROVAL_REQUESTS = 3; + + // Permission for External Key Manager connection status + ASSURED_WORKLOADS_EKM_CONNECTION_STATUS = 4; + } + + // Identifier. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The partner permissions granted for the workload + repeated Permission partner_permissions = 2; +} + +// Request for getting the partner permissions granted for a workload +message GetPartnerPermissionsRequest { + // Required. Name of the resource to get in the format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudcontrolspartner.googleapis.com/PartnerPermissions" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/partners.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/partners.proto new file mode 100644 index 000000000..3edd1629e --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/partners.proto @@ -0,0 +1,121 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "PartnersProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Message describing Partner resource +message Partner { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/Partner" + pattern: "organizations/{organization}/locations/{location}/partner" + singular: "partner" + }; + + // Identifier. The resource name of the partner. + // Format: `organizations/{organization}/locations/{location}/partner` + // Example: "organizations/123456/locations/us-central1/partner" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // List of SKUs the partner is offering + repeated Sku skus = 3; + + // List of Google Cloud supported EKM partners supported by the partner + repeated EkmMetadata ekm_solutions = 4; + + // List of Google Cloud regions that the partner sells services to customers. + // Valid Google Cloud regions found here: + // https://cloud.google.com/compute/docs/regions-zones + repeated string operated_cloud_regions = 5; + + // Google Cloud project ID in the partner's Google Cloud organization for + // receiving enhanced Logs for Partners. + string partner_project_id = 7; + + // Output only. Time the resource was created + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time the resource was updated + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for getting a Partner +message GetPartnerRequest { + // Required. Format: + // `organizations/{organization}/locations/{location}/partner` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudcontrolspartner.googleapis.com/Partner" + } + ]; +} + +// Represents the SKU a partner owns inside Google Cloud to sell to customers. +message Sku { + // Argentum product SKU, that is associated with the partner offerings to + // customers used by Syntro for billing purposes. SKUs can represent resold + // Google products or support services. + string id = 1; + + // Display name of the product identified by the SKU. A partner may want to + // show partner branded names for their offerings such as local sovereign + // cloud solutions. + string display_name = 2; +} + +// Holds information needed by Mudbray to use partner EKMs for workloads. +message EkmMetadata { + // Represents Google Cloud supported external key management partners + // [Google Cloud EKM partners + // docs](https://cloud.google.com/kms/docs/ekm#supported_partners). + enum EkmSolution { + // Unspecified EKM solution + EKM_SOLUTION_UNSPECIFIED = 0; + + // EKM Partner Fortanix + FORTANIX = 1; + + // EKM Partner FutureX + FUTUREX = 2; + + // EKM Partner Thales + THALES = 3; + + // EKM Partner Virtu + VIRTRU = 4; + } + + // The Cloud EKM partner. + EkmSolution ekm_solution = 1; + + // Endpoint for sending requests to the EKM for key provisioning during + // Assured Workload creation. + string ekm_endpoint_uri = 2; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/violations.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/violations.proto new file mode 100644 index 000000000..8a886df0f --- /dev/null +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1/violations.proto @@ -0,0 +1,233 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.cloudcontrolspartner.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/interval.proto"; + +option csharp_namespace = "Google.Cloud.CloudControlsPartner.V1"; +option go_package = "cloud.google.com/go/cloudcontrolspartner/apiv1/cloudcontrolspartnerpb;cloudcontrolspartnerpb"; +option java_multiple_files = true; +option java_outer_classname = "ViolationsProto"; +option java_package = "com.google.cloud.cloudcontrolspartner.v1"; +option php_namespace = "Google\\Cloud\\CloudControlsPartner\\V1"; +option ruby_package = "Google::Cloud::CloudControlsPartner::V1"; + +// Details of resource Violation +message Violation { + option (google.api.resource) = { + type: "cloudcontrolspartner.googleapis.com/Violation" + pattern: "organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}" + plural: "violations" + singular: "violation" + }; + + // Represents remediation guidance to resolve compliance violation for + // AssuredWorkload + message Remediation { + // Instructions to remediate violation + message Instructions { + // Remediation instructions to resolve violation via gcloud cli + message Gcloud { + // Gcloud command to resolve violation + repeated string gcloud_commands = 1; + + // Steps to resolve violation via gcloud cli + repeated string steps = 2; + + // Additional urls for more information about steps + repeated string additional_links = 3; + } + + // Remediation instructions to resolve violation via cloud console + message Console { + // Link to console page where violations can be resolved + repeated string console_uris = 1; + + // Steps to resolve violation via cloud console + repeated string steps = 2; + + // Additional urls for more information about steps + repeated string additional_links = 3; + } + + // Remediation instructions to resolve violation via gcloud cli + Gcloud gcloud_instructions = 1; + + // Remediation instructions to resolve violation via cloud console + Console console_instructions = 2; + } + + // Classifying remediation into various types based on the kind of + // violation. For example, violations caused due to changes in boolean org + // policy requires different remediation instructions compared to violation + // caused due to changes in allowed values of list org policy. + enum RemediationType { + // Unspecified remediation type + REMEDIATION_TYPE_UNSPECIFIED = 0; + + // Remediation type for boolean org policy + REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION = 1; + + // Remediation type for list org policy which have allowed values in the + // monitoring rule + REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION = 2; + + // Remediation type for list org policy which have denied values in the + // monitoring rule + REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION = 3; + + // Remediation type for gcp.restrictCmekCryptoKeyProjects + REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION = 4; + + // Remediation type for resource violation. + REMEDIATION_RESOURCE_VIOLATION = 5; + } + + // Required. Remediation instructions to resolve violations + Instructions instructions = 1 [(google.api.field_behavior) = REQUIRED]; + + // Values that can resolve the violation + // For example: for list org policy violations, this will either be the list + // of allowed or denied values + repeated string compliant_values = 2; + + // Output only. Remediation type based on the type of org policy values + // violated + RemediationType remediation_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Violation State Values + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // Violation is resolved. + RESOLVED = 1; + + // Violation is Unresolved + UNRESOLVED = 2; + + // Violation is Exception + EXCEPTION = 3; + } + + // Identifier. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Description for the Violation. + // e.g. OrgPolicy gcp.resourceLocations has non compliant value. + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time of the event which triggered the Violation. + google.protobuf.Timestamp begin_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time when the Violation record was updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time of the event which fixed the Violation. + // If the violation is ACTIVE this will be empty. + google.protobuf.Timestamp resolve_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Category under which this violation is mapped. + // e.g. Location, Service Usage, Access, Encryption, etc. + string category = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of the violation + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Immutable. Name of the OrgPolicy which was modified with + // non-compliant change and resulted this violation. Format: + // `projects/{project_number}/policies/{constraint_name}` + // `folders/{folder_id}/policies/{constraint_name}` + // `organizations/{organization_id}/policies/{constraint_name}` + string non_compliant_org_policy = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The folder_id of the violation + int64 folder_id = 9; + + // Output only. Compliance violation remediation + Remediation remediation = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for requesting list of Violations +message ListViolationsRequest { + // Required. Parent resource + // Format + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "cloudcontrolspartner.googleapis.com/Violation" + } + ]; + + // Optional. The maximum number of customers row to return. The service may + // return fewer than this value. If unspecified, at most 10 customers will be + // returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListViolations` call. + // Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the interval for retrieving violations. + // if unspecified, all violations will be returned. + google.type.Interval interval = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for list customer violation requests +message ListViolationsResponse { + // List of violation + repeated Violation violations = 1; + + // A token that can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Workloads that could not be reached due to permission errors or any other + // error. Ref: https://google.aip.dev/217 + repeated string unreachable = 3; +} + +// Message for getting a Violation +message GetViolationRequest { + // Required. Format: + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudcontrolspartner.googleapis.com/Violation" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/BUILD.bazel b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/BUILD.bazel index 7ea52d677..488fdf48c 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "cloudcontrolspartner_proto", @@ -53,6 +56,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -117,6 +121,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -165,6 +170,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -204,6 +210,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -241,6 +248,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -271,6 +279,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -317,6 +326,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -327,6 +337,7 @@ load( csharp_proto_library( name = "cloudcontrolspartner_csharp_proto", + extra_opts = [], deps = [":cloudcontrolspartner_proto"], ) @@ -363,6 +374,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/access_approval_requests.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/access_approval_requests.proto index 1a7d9ccf3..d9720f356 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/access_approval_requests.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/access_approval_requests.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,7 +38,7 @@ message AccessApprovalRequest { }; // Identifier. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}. + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The time at which approval was requested. @@ -56,7 +56,7 @@ message AccessApprovalRequest { message ListAccessApprovalRequestsRequest { // Required. Parent resource // Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload} + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/cloudcontrolspartner_v1beta.yaml b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/cloudcontrolspartner_v1beta.yaml index 9af04fd4b..059822cef 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/cloudcontrolspartner_v1beta.yaml +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/cloudcontrolspartner_v1beta.yaml @@ -32,7 +32,7 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=1504051 - documentation_uri: https://cloud.google.com/sovereign-controls-by-partners/docs/sovereign-partners + documentation_uri: https://cloud.google.com/sovereign-controls-by-partners/docs/sovereign-partners/reference/rest api_short_name: cloudcontrolspartner github_label: 'api: cloudcontrolspartner' doc_tag_prefix: cloudcontrolspartner @@ -44,10 +44,6 @@ publishing: common: destinations: - PACKAGE_MANAGER - cpp_settings: - common: - destinations: - - PACKAGE_MANAGER php_settings: common: destinations: diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/completion_state.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/completion_state.proto index 8c3782f61..616ec63f6 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/completion_state.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/completion_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/core.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/core.proto index 18ef86f56..d3fd49f43 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/core.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/core.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -95,9 +95,11 @@ service CloudControlsPartnerCore { option (google.api.method_signature) = "name"; } - // Lists access requests associated with a workload + // Deprecated: Only returns access approval requests directly associated with + // an assured workload folder. rpc ListAccessApprovalRequests(ListAccessApprovalRequestsRequest) returns (ListAccessApprovalRequestsResponse) { + option deprecated = true; option (google.api.http) = { get: "/v1beta/{parent=organizations/*/locations/*/customers/*/workloads/*}/accessApprovalRequests" }; diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customer_workloads.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customer_workloads.proto index 90675b7c2..cf2717b14 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customer_workloads.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customer_workloads.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -66,7 +66,7 @@ message Workload { } // Identifier. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload} + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Output only. Folder id this workload is associated with @@ -99,7 +99,7 @@ message Workload { message ListWorkloadsRequest { // Required. Parent resource // Format: - // organizations/{organization}/locations/{location}/customers/{customer} + // `organizations/{organization}/locations/{location}/customers/{customer}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -138,7 +138,7 @@ message ListWorkloadsResponse { // Message for getting a customer workload. message GetWorkloadRequest { // Required. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload} + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customers.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customers.proto index 2d1127504..005f8116c 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customers.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/customers.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,7 +39,7 @@ message Customer { }; // Identifier. Format: - // organizations/{organization}/locations/{location}/customers/{customer} + // `organizations/{organization}/locations/{location}/customers/{customer}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The customer organization's display name. E.g. "google.com". @@ -55,7 +55,7 @@ message Customer { // Request to list customers message ListCustomersRequest { // Required. Parent resource - // Format: organizations/{organization}/locations/{location} + // Format: `organizations/{organization}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -94,7 +94,7 @@ message ListCustomersResponse { // Message for getting a customer message GetCustomerRequest { // Required. Format: - // organizations/{organization}/locations/{location}/customers/{customer} + // `organizations/{organization}/locations/{location}/customers/{customer}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/ekm_connections.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/ekm_connections.proto index efefa4844..d458c6c6e 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/ekm_connections.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/ekm_connections.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,7 +35,7 @@ message EkmConnections { }; // Identifier. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The EKM connections associated with the workload @@ -45,7 +45,7 @@ message EkmConnections { // Request for getting the EKM connections associated with a workload message GetEkmConnectionsRequest { // Required. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/monitoring.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/monitoring.proto index 1e433f62a..4d06834ce 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/monitoring.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/monitoring.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto index 6011b0221..cf8200b16 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -52,7 +52,7 @@ message PartnerPermissions { } // Identifier. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The partner permissions granted for the workload @@ -62,7 +62,7 @@ message PartnerPermissions { // Request for getting the partner permissions granted for a workload message GetPartnerPermissionsRequest { // Required. Name of the resource to get in the format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partners.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partners.proto index 6527d9afe..822370ad5 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partners.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/partners.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ message Partner { }; // Identifier. The resource name of the partner. - // Format: organizations/{organization}/locations/{location}/partner + // Format: `organizations/{organization}/locations/{location}/partner` // Example: "organizations/123456/locations/us-central1/partner" string name = 1 [(google.api.field_behavior) = IDENTIFIER]; @@ -67,7 +67,8 @@ message Partner { // Message for getting a Partner message GetPartnerRequest { - // Required. Format: organizations/{organization}/locations/{location}/partner + // Required. Format: + // `organizations/{organization}/locations/{location}/partner` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/violations.proto b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/violations.proto index ea2531cd9..e159a29c5 100644 --- a/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/violations.proto +++ b/third_party/googleapis/google/cloud/cloudcontrolspartner/v1beta/violations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -130,7 +130,7 @@ message Violation { } // Identifier. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation} + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Output only. Description for the Violation. @@ -159,9 +159,9 @@ message Violation { // Output only. Immutable. Name of the OrgPolicy which was modified with // non-compliant change and resulted this violation. Format: - // projects/{project_number}/policies/{constraint_name} - // folders/{folder_id}/policies/{constraint_name} - // organizations/{organization_id}/policies/{constraint_name} + // `projects/{project_number}/policies/{constraint_name}` + // `folders/{folder_id}/policies/{constraint_name}` + // `organizations/{organization_id}/policies/{constraint_name}` string non_compliant_org_policy = 8 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = IMMUTABLE @@ -178,7 +178,7 @@ message Violation { message ListViolationsRequest { // Required. Parent resource // Format - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload} + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -223,7 +223,7 @@ message ListViolationsResponse { // Message for getting a Violation message GetViolationRequest { // Required. Format: - // organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation} + // `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/clouddms/logging/v1/clouddms_platform_logs.proto b/third_party/googleapis/google/cloud/clouddms/logging/v1/clouddms_platform_logs.proto index 885448758..9131e2c33 100644 --- a/third_party/googleapis/google/cloud/clouddms/logging/v1/clouddms_platform_logs.proto +++ b/third_party/googleapis/google/cloud/clouddms/logging/v1/clouddms_platform_logs.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto b/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto index 0403e5a54..6deefe323 100644 --- a/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto +++ b/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/clouddms/v1/clouddms_resources.proto b/third_party/googleapis/google/cloud/clouddms/v1/clouddms_resources.proto index 313b9f312..177ac0f0d 100644 --- a/third_party/googleapis/google/cloud/clouddms/v1/clouddms_resources.proto +++ b/third_party/googleapis/google/cloud/clouddms/v1/clouddms_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/clouddms/v1/conversionworkspace_resources.proto b/third_party/googleapis/google/cloud/clouddms/v1/conversionworkspace_resources.proto index 6d5c6e625..c1fee497e 100644 --- a/third_party/googleapis/google/cloud/clouddms/v1/conversionworkspace_resources.proto +++ b/third_party/googleapis/google/cloud/clouddms/v1/conversionworkspace_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/cloudsetup/logging/v1/complete_deployment.proto b/third_party/googleapis/google/cloud/cloudsetup/logging/v1/complete_deployment.proto index f7030ca95..21fb8c9c7 100644 --- a/third_party/googleapis/google/cloud/cloudsetup/logging/v1/complete_deployment.proto +++ b/third_party/googleapis/google/cloud/cloudsetup/logging/v1/complete_deployment.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel index b7e58c3ec..90dd68e55 100644 --- a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel @@ -131,7 +131,7 @@ go_gapic_library( grpc_service_config = "commerceconsumerprocurement_v1_grpc_service_config.json", importpath = "cloud.google.com/go/commerce/consumer/procurement/apiv1;procurement", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "cloudcommerceconsumerprocurement_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/order.proto b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/order.proto index 13f500df6..fb9523858 100644 --- a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/order.proto +++ b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/order.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto index 3fa40309a..2d78eabf3 100644 --- a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto +++ b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto index fb84c0819..76f421dd6 100644 --- a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto +++ b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/order.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto index e5e29005a..c58881401 100644 --- a/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto +++ b/third_party/googleapis/google/cloud/commerce/consumer/procurement/v1alpha1/procurement_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/common/operation_metadata.proto b/third_party/googleapis/google/cloud/common/operation_metadata.proto index 24300e36f..5a6918fb9 100644 --- a/third_party/googleapis/google/cloud/common/operation_metadata.proto +++ b/third_party/googleapis/google/cloud/common/operation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/common_resources.proto b/third_party/googleapis/google/cloud/common_resources.proto index 56c9f800d..2f8a17ef2 100644 --- a/third_party/googleapis/google/cloud/common_resources.proto +++ b/third_party/googleapis/google/cloud/common_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/compute/BUILD.bazel b/third_party/googleapis/google/cloud/compute/BUILD.bazel index 1362ba517..9c73451e9 100644 --- a/third_party/googleapis/google/cloud/compute/BUILD.bazel +++ b/third_party/googleapis/google/cloud/compute/BUILD.bazel @@ -21,7 +21,7 @@ ruby_cloud_gapic_library( srcs = ["//google/cloud/compute/v1:compute_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-compute", - "ruby-cloud-wrapper-of=v1:2.7", + "ruby-cloud-wrapper-of=v1:2.11", "ruby-cloud-product-url=https://cloud.google.com/compute/", "ruby-cloud-api-id=compute.googleapis.com", "ruby-cloud-api-shortname=compute", diff --git a/third_party/googleapis/google/cloud/compute/v1/compute.proto b/third_party/googleapis/google/cloud/compute/v1/compute.proto index b4cd73e3c..bc5c257cc 100644 --- a/third_party/googleapis/google/cloud/compute/v1/compute.proto +++ b/third_party/googleapis/google/cloud/compute/v1/compute.proto @@ -14,7 +14,7 @@ // Generated by the disco-to-proto3-converter. DO NOT EDIT! // Source Discovery file: compute.v1.json -// Source file revision: 20240130 +// Source file revision: 20240430 // API name: compute // API version: v1 @@ -267,7 +267,7 @@ message AccessConfig { // Check the NetworkTier enum for the list of possible values. optional string network_tier = 517397843; - // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. + // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be created for first IP in associated external IPv6 range. optional string public_ptr_domain_name = 316599167; // [Output Only] The resource URL for the security policy associated with this access config. @@ -991,7 +991,7 @@ message AggregatedListAcceleratorTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1019,7 +1019,7 @@ message AggregatedListAddressesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1047,7 +1047,7 @@ message AggregatedListAutoscalersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1075,7 +1075,7 @@ message AggregatedListBackendServicesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1103,7 +1103,7 @@ message AggregatedListDiskTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1131,7 +1131,7 @@ message AggregatedListDisksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1159,7 +1159,7 @@ message AggregatedListForwardingRulesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1187,7 +1187,7 @@ message AggregatedListGlobalOperationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1215,7 +1215,7 @@ message AggregatedListHealthChecksRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1243,7 +1243,7 @@ message AggregatedListInstanceGroupManagersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1271,7 +1271,7 @@ message AggregatedListInstanceGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1299,7 +1299,7 @@ message AggregatedListInstanceTemplatesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1327,7 +1327,35 @@ message AggregatedListInstancesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. + optional int64 service_project_number = 316757497; + +} + +// A request message for InstantSnapshots.AggregatedList. See the method description for details. +message AggregatedListInstantSnapshotsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included. + optional bool include_all_scopes = 391327988; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1355,7 +1383,7 @@ message AggregatedListInterconnectAttachmentsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1383,7 +1411,7 @@ message AggregatedListMachineTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1411,7 +1439,7 @@ message AggregatedListNetworkAttachmentsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1439,7 +1467,7 @@ message AggregatedListNetworkEdgeSecurityServicesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1467,7 +1495,7 @@ message AggregatedListNetworkEndpointGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1495,7 +1523,7 @@ message AggregatedListNodeGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1523,7 +1551,7 @@ message AggregatedListNodeTemplatesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1551,7 +1579,7 @@ message AggregatedListNodeTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1579,7 +1607,7 @@ message AggregatedListPacketMirroringsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1607,7 +1635,7 @@ message AggregatedListPublicDelegatedPrefixesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1635,7 +1663,7 @@ message AggregatedListRegionCommitmentsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1663,7 +1691,7 @@ message AggregatedListReservationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1691,7 +1719,7 @@ message AggregatedListResourcePoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1719,7 +1747,7 @@ message AggregatedListRoutersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1747,7 +1775,7 @@ message AggregatedListSecurityPoliciesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1775,7 +1803,7 @@ message AggregatedListServiceAttachmentsRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1803,7 +1831,7 @@ message AggregatedListSslCertificatesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1831,7 +1859,63 @@ message AggregatedListSslPoliciesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. + optional int64 service_project_number = 316757497; + +} + +// A request message for StoragePoolTypes.AggregatedList. See the method description for details. +message AggregatedListStoragePoolTypesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included. + optional bool include_all_scopes = 391327988; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. + optional int64 service_project_number = 316757497; + +} + +// A request message for StoragePools.AggregatedList. See the method description for details. +message AggregatedListStoragePoolsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included. + optional bool include_all_scopes = 391327988; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1859,7 +1943,7 @@ message AggregatedListSubnetworksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1887,7 +1971,7 @@ message AggregatedListTargetHttpProxiesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1915,7 +1999,7 @@ message AggregatedListTargetHttpsProxiesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1943,7 +2027,7 @@ message AggregatedListTargetInstancesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1971,7 +2055,7 @@ message AggregatedListTargetPoolsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -1999,7 +2083,7 @@ message AggregatedListTargetTcpProxiesRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -2027,7 +2111,7 @@ message AggregatedListTargetVpnGatewaysRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -2055,7 +2139,7 @@ message AggregatedListUrlMapsRequest { // Name of the project scoping this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -2083,7 +2167,7 @@ message AggregatedListVpnGatewaysRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -2111,7 +2195,7 @@ message AggregatedListVpnTunnelsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api. @@ -2247,7 +2331,7 @@ message AllocationSpecificSKUAllocationReservedInstanceProperties { } -// This reservation type allows to pre allocate specific instance configuration. Next ID: 6 +// This reservation type allows to pre allocate specific instance configuration. message AllocationSpecificSKUReservation { // [Output Only] Indicates how many instances are actually usable currently. optional int64 assured_count = 281197645; @@ -2648,7 +2732,7 @@ message AttachedDiskInitializeParams { // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. optional int64 provisioned_iops = 186769108; - // Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124. + // Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1. optional int64 provisioned_throughput = 526524181; // Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone. @@ -2672,6 +2756,9 @@ message AttachedDiskInitializeParams { // The customer-supplied encryption key of the source snapshot. optional CustomerEncryptionKey source_snapshot_encryption_key = 303679322; + // The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool + optional string storage_pool = 360473440; + } // 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. @@ -3117,6 +3204,22 @@ message Backend { } + // This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default + enum Preference { + // A value indicating that the enum field is not set. + UNDEFINED_PREFERENCE = 0; + + // No preference. + DEFAULT = 115302945; + + // If preference is unspecified, we set it to the DEFAULT value + PREFERENCE_UNSPECIFIED = 496219571; + + // Traffic will be sent to this backend first. + PREFERRED = 418847841; + + } + // Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. // Check the BalancingMode enum for the list of possible values. optional string balancing_mode = 430286217; @@ -3154,6 +3257,10 @@ message Backend { // Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. optional float max_utilization = 148192199; + // This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default + // Check the Preference enum for the list of possible values. + optional string preference = 150781147; + } // Represents a Cloud Storage Bucket resource. This Cloud Storage bucket resource is referenced by a URL map of a load balancer. For more information, read Backend Buckets. @@ -3560,6 +3667,9 @@ message BackendService { // URLs of networkservices.ServiceBinding resources. Can only be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and health checks must be both empty. repeated string service_bindings = 133581016; + // URL to networkservices.ServiceLbPolicy resource. Can only be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global. + optional string service_lb_policy = 94848785; + // Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). // Check the SessionAffinity enum for the list of possible values. optional string session_affinity = 463888561; @@ -4341,6 +4451,31 @@ message CacheKeyPolicy { } +// A request message for InstanceGroupManagerResizeRequests.Cancel. See the method description for details. +message CancelInstanceGroupManagerResizeRequestRequest { + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + string instance_group_manager = 249363395 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID. + string resize_request = 216941060 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone where the managed instance group is located. The name should conform to RFC1035. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // Settings controlling the volume of requests, connections and retries to this backend service. message CircuitBreakers { // The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. @@ -4472,6 +4607,8 @@ message Commitment { ACCELERATOR_OPTIMIZED_A3 = 158574526; + ACCELERATOR_OPTIMIZED_A3_MEGA = 156517459; + COMPUTE_OPTIMIZED = 158349023; COMPUTE_OPTIMIZED_C2D = 383246453; @@ -4490,6 +4627,8 @@ message Commitment { GENERAL_PURPOSE_N2D = 232471400; + GENERAL_PURPOSE_N4 = 301912158; + GENERAL_PURPOSE_T2D = 232477166; GRAPHICS_OPTIMIZED = 68500563; @@ -4779,13 +4918,13 @@ message CorsPolicy { // Specifies the content for the Access-Control-Allow-Methods header. repeated string allow_methods = 205405372; - // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. + // Specifies a regular expression that matches allowed origins. For more information, see regular expression syntax . An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. repeated string allow_origin_regexes = 215385810; // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. repeated string allow_origins = 194914071; - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + // If true, disables the CORS policy. The default value is false, which indicates that the CORS policy is in effect. optional bool disabled = 270940796; // Specifies the content for the Access-Control-Expose-Headers header. @@ -5274,6 +5413,31 @@ message DeleteInstanceGroupManagerRequest { } +// A request message for InstanceGroupManagerResizeRequests.Delete. See the method description for details. +message DeleteInstanceGroupManagerResizeRequestRequest { + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + string instance_group_manager = 249363395 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID. + string resize_request = 216941060 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone where the managed instance group is located. The name should conform to RFC1035. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for InstanceGroups.Delete. See the method description for details. message DeleteInstanceGroupRequest { // The name of the instance group to delete. @@ -5384,6 +5548,28 @@ message DeleteInstancesRegionInstanceGroupManagerRequest { } +// A request message for InstantSnapshots.Delete. See the method description for details. +message DeleteInstantSnapshotRequest { + // Name of the InstantSnapshot resource to delete. + string instant_snapshot = 391638626 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for InterconnectAttachments.Delete. See the method description for details. message DeleteInterconnectAttachmentRequest { // Name of the interconnect attachment to delete. @@ -5879,6 +6065,28 @@ message DeleteRegionInstanceTemplateRequest { } +// A request message for RegionInstantSnapshots.Delete. See the method description for details. +message DeleteRegionInstantSnapshotRequest { + // Name of the InstantSnapshot resource to delete. + string instant_snapshot = 391638626 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // The name of the region for this request. + string region = 138946292 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "region" + ]; + + // 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). + optional string request_id = 37109963; + +} + // A request message for RegionNetworkEndpointGroups.Delete. See the method description for details. message DeleteRegionNetworkEndpointGroupRequest { // The name of the network endpoint group to delete. It should comply with RFC1035. @@ -6322,6 +6530,28 @@ message DeleteSslPolicyRequest { } +// A request message for StoragePools.Delete. See the method description for details. +message DeleteStoragePoolRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // Name of the storage pool to delete. + string storage_pool = 360473440 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for Subnetworks.Delete. See the method description for details. message DeleteSubnetworkRequest { // Project ID for this request. @@ -6792,6 +7022,9 @@ message Disk { // Source data is being copied into the disk. RESTORING = 404263851; + // Disk is currently unavailable and cannot be accessed, attached or detached. + UNAVAILABLE = 413756464; + } // The architecture of the disk. Valid values are ARM64 or X86_64. @@ -6861,7 +7094,7 @@ message Disk { // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. optional int64 provisioned_iops = 186769108; - // Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124. + // Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be greater than or equal to 1. optional int64 provisioned_throughput = 526524181; // [Output Only] URL of the region where the disk resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. @@ -6909,6 +7142,12 @@ message Disk { // [Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used. optional string source_image_id = 55328291; + // The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot + optional string source_instant_snapshot = 219202054; + + // [Output Only] The unique ID of the instant snapshot used to create this disk. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact version of the instant snapshot that was used. + optional string source_instant_snapshot_id = 287582708; + // The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project /global/snapshots/snapshot - projects/project/global/snapshots/snapshot - global/snapshots/snapshot optional string source_snapshot = 126061928; @@ -6925,6 +7164,9 @@ message Disk { // Check the Status enum for the list of possible values. optional string status = 181260274; + // The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool + optional string storage_pool = 360473440; + // URL of the disk type resource describing which disk type to use to create the disk. Provide this when creating the disk. For example: projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types. optional string type = 3575610; @@ -7330,7 +7572,7 @@ message EnableXpnResourceProjectRequest { } -// [Output Only] If errors are generated during processing of the operation, this field will be populated. +// Errors that prevented the ResizeRequest to be fulfilled. message Error { // [Output Only] The array of errors encountered while processing this operation. repeated Errors errors = 315977579; @@ -7354,7 +7596,7 @@ message ErrorInfo { // The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". optional string domain = 284415172; - // Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + // Additional structured details about this error. Keys must match /a-z+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. map metadatas = 8514340; // The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE. @@ -7536,6 +7778,9 @@ message ExternalVpnGatewayInterface { // IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. optional string ip_address = 406272220; + // IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + optional string ipv6_address = 341563804; + } // Response to the list request, and contains a list of externalVpnGateways. @@ -8080,6 +8325,9 @@ message ForwardingRule { // [Output Only] The unique identifier for the resource. This identifier is defined by the server. optional uint64 id = 3355; + // Resource reference of a PublicDelegatedPrefix. The PDP must be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. Use one of the following formats to specify a sub-PDP when creating an IPv6 NetLB forwarding rule using BYOIP: Full resource URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name - regions/region/publicDelegatedPrefixes/sub-pdp-name + optional string ip_collection = 176818358; + // The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. // Check the IpVersion enum for the list of possible values. optional string ip_version = 294959552; @@ -8719,6 +8967,22 @@ message GetIamPolicyInstanceTemplateRequest { } +// A request message for InstantSnapshots.GetIamPolicy. See the method description for details. +message GetIamPolicyInstantSnapshotRequest { + // Requested IAM Policy version. + optional int32 options_requested_policy_version = 499220029; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Licenses.GetIamPolicy. See the method description for details. message GetIamPolicyLicenseRequest { // Requested IAM Policy version. @@ -8838,6 +9102,22 @@ message GetIamPolicyRegionDiskRequest { } +// A request message for RegionInstantSnapshots.GetIamPolicy. See the method description for details. +message GetIamPolicyRegionInstantSnapshotRequest { + // Requested IAM Policy version. + optional int32 options_requested_policy_version = 499220029; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the region for this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionNetworkFirewallPolicies.GetIamPolicy. See the method description for details. message GetIamPolicyRegionNetworkFirewallPolicyRequest { // Requested IAM Policy version. @@ -8915,6 +9195,22 @@ message GetIamPolicySnapshotRequest { } +// A request message for StoragePools.GetIamPolicy. See the method description for details. +message GetIamPolicyStoragePoolRequest { + // Requested IAM Policy version. + optional int32 options_requested_policy_version = 499220029; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Subnetworks.GetIamPolicy. See the method description for details. message GetIamPolicySubnetworkRequest { // Requested IAM Policy version. @@ -8967,6 +9263,22 @@ message GetInstanceGroupManagerRequest { } +// A request message for InstanceGroupManagerResizeRequests.Get. See the method description for details. +message GetInstanceGroupManagerResizeRequestRequest { + // The name of the managed instance group. Name should conform to RFC1035 or be a resource ID. + string instance_group_manager = 249363395 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the resize request. Name should conform to RFC1035 or be a resource ID. + string resize_request = 216941060 [(google.api.field_behavior) = REQUIRED]; + + // Name of the href="/compute/docs/regions-zones/#available">zone scoping this request. Name should conform to RFC1035. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for InstanceGroups.Get. See the method description for details. message GetInstanceGroupRequest { // The name of the instance group. @@ -8993,6 +9305,16 @@ message GetInstanceRequest { } +// A request message for InstanceSettingsService.Get. See the method description for details. +message GetInstanceSettingRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for InstanceTemplates.Get. See the method description for details. message GetInstanceTemplateRequest { // The name of the instance template. @@ -9003,6 +9325,19 @@ message GetInstanceTemplateRequest { } +// A request message for InstantSnapshots.Get. See the method description for details. +message GetInstantSnapshotRequest { + // Name of the InstantSnapshot resource to return. + string instant_snapshot = 391638626 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for InterconnectAttachments.Get. See the method description for details. message GetInterconnectAttachmentRequest { // Name of the interconnect attachment to return. @@ -9138,7 +9473,7 @@ message GetNatMappingInfoRoutersRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // Name of the Router resource to query for Nat Mapping information of VM endpoints. @@ -9417,6 +9752,19 @@ message GetRegionInstanceTemplateRequest { } +// A request message for RegionInstantSnapshots.Get. See the method description for details. +message GetRegionInstantSnapshotRequest { + // Name of the InstantSnapshot resource to return. + string instant_snapshot = 391638626 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the region for this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionNetworkEndpointGroups.Get. See the method description for details. message GetRegionNetworkEndpointGroupRequest { // The name of the network endpoint group. It should comply with RFC1035. @@ -9821,6 +10169,32 @@ message GetStatusVpnGatewayRequest { } +// A request message for StoragePools.Get. See the method description for details. +message GetStoragePoolRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the storage pool to return. + string storage_pool = 360473440 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for StoragePoolTypes.Get. See the method description for details. +message GetStoragePoolTypeRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name of the storage pool type to return. + string storage_pool_type = 285999289 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Subnetworks.Get. See the method description for details. message GetSubnetworkRequest { // Project ID for this request. @@ -9983,7 +10357,7 @@ message GetXpnResourcesProjectsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -10117,7 +10491,7 @@ message GuestAttributesValue { // Guest OS features. message GuestOsFeature { - // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features. + // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features. enum Type { // A value indicating that the enum field is not set. UNDEFINED_TYPE = 0; @@ -10148,7 +10522,7 @@ message GuestOsFeature { } - // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features. + // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features. // Check the Type enum for the list of possible values. optional string type = 3575610; @@ -10200,7 +10574,7 @@ message HTTP2HealthCheck { // Check the ProxyHeader enum for the list of possible values. optional string proxy_header = 160374142; - // The request path of the HTTP/2 health check request. The default value is /. + // The request path of the HTTP/2 health check request. The default value is /. Must comply with RFC3986. optional string request_path = 229403605; // Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http @@ -10254,7 +10628,7 @@ message HTTPHealthCheck { // Check the ProxyHeader enum for the list of possible values. optional string proxy_header = 160374142; - // The request path of the HTTP health check request. The default value is /. + // The request path of the HTTP health check request. The default value is /. Must comply with RFC3986. optional string request_path = 229403605; // Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http @@ -10308,7 +10682,7 @@ message HTTPSHealthCheck { // Check the ProxyHeader enum for the list of possible values. optional string proxy_header = 160374142; - // The request path of the HTTPS health check request. The default value is /. + // The request path of the HTTPS health check request. The default value is /. Must comply with RFC3986. optional string request_path = 229403605; // Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http @@ -11408,6 +11782,31 @@ message InsertInstanceGroupManagerRequest { } +// A request message for InstanceGroupManagerResizeRequests.Insert. See the method description for details. +message InsertInstanceGroupManagerResizeRequestRequest { + // The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID. + string instance_group_manager = 249363395 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + InstanceGroupManagerResizeRequest instance_group_manager_resize_request_resource = 468541293 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The name of the zone where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for InstanceGroups.Insert. See the method description for details. message InsertInstanceGroupRequest { // The body resource for this request @@ -11474,6 +11873,28 @@ message InsertInstanceTemplateRequest { } +// A request message for InstantSnapshots.Insert. See the method description for details. +message InsertInstantSnapshotRequest { + // The body resource for this request + InstantSnapshot instant_snapshot_resource = 383915339 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // Name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for InterconnectAttachments.Insert. See the method description for details. message InsertInterconnectAttachmentRequest { // The body resource for this request @@ -11937,6 +12358,28 @@ message InsertRegionInstanceTemplateRequest { } +// A request message for RegionInstantSnapshots.Insert. See the method description for details. +message InsertRegionInstantSnapshotRequest { + // The body resource for this request + InstantSnapshot instant_snapshot_resource = 383915339 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // Name of the region for this request. + string region = 138946292 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "region" + ]; + + // 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). + optional string request_id = 37109963; + +} + // A request message for RegionNetworkEndpointGroups.Insert. See the method description for details. message InsertRegionNetworkEndpointGroupRequest { // The body resource for this request @@ -12331,6 +12774,28 @@ message InsertSslPolicyRequest { } +// A request message for StoragePools.Insert. See the method description for details. +message InsertStoragePoolRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The body resource for this request + StoragePool storage_pool_resource = 157179405 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for Subnetworks.Insert. See the method description for details. message InsertSubnetworkRequest { // Project ID for this request. @@ -13090,6 +13555,19 @@ message InstanceGroupManagerAutoHealingPolicy { // message InstanceGroupManagerInstanceLifecyclePolicy { + // The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. + enum DefaultActionOnFailure { + // A value indicating that the enum field is not set. + UNDEFINED_DEFAULT_ACTION_ON_FAILURE = 0; + + // MIG does not repair a failed or an unhealthy VM. + DO_NOTHING = 451307513; + + // (Default) MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. + REPAIR = 266277773; + + } + // A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. enum ForceUpdateOnRepair { // A value indicating that the enum field is not set. @@ -13101,6 +13579,10 @@ message InstanceGroupManagerInstanceLifecyclePolicy { } + // The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. + // Check the DefaultActionOnFailure enum for the list of possible values. + optional string default_action_on_failure = 61383253; + // A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. // Check the ForceUpdateOnRepair enum for the list of possible values. optional string force_update_on_repair = 356302027; @@ -13129,6 +13611,111 @@ message InstanceGroupManagerList { } +// InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager. +message InstanceGroupManagerResizeRequest { + // [Output only] Current state of the request. + enum State { + // A value indicating that the enum field is not set. + UNDEFINED_STATE = 0; + + // The request was created successfully and was accepted for provisioning when the capacity becomes available. + ACCEPTED = 246714279; + + // The request is cancelled. + CANCELLED = 41957681; + + // Resize request is being created and may still fail creation. + CREATING = 455564985; + + // The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG. + FAILED = 455706685; + + // Default value. This value should never be returned. + STATE_UNSPECIFIED = 470755401; + + // The request succeeded. + SUCCEEDED = 511103553; + + } + + // [Output Only] The creation timestamp for this resize request in RFC3339 text format. + optional string creation_timestamp = 30525366; + + // An optional description of this resource. + optional string description = 422937596; + + // [Output Only] A unique identifier for this resource type. The server generates this identifier. + optional uint64 id = 3355; + + // [Output Only] The resource type, which is always compute#instanceGroupManagerResizeRequest for resize requests. + optional string kind = 3292052; + + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + optional string name = 3373707; + + // Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + optional Duration requested_run_duration = 232146425; + + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + optional int32 resize_by = 533735362; + + // [Output Only] The URL for this resize request. The server defines this URL. + optional string self_link = 456214797; + + // [Output Only] Server-defined URL for this resource with the resource id. + optional string self_link_with_id = 44520962; + + // [Output only] Current state of the request. + // Check the State enum for the list of possible values. + optional string state = 109757585; + + // [Output only] Status of the request. + optional InstanceGroupManagerResizeRequestStatus status = 181260274; + + // [Output Only] The URL of a zone where the resize request is located. Populated only for zonal resize requests. + optional string zone = 3744684; + +} + +// +message InstanceGroupManagerResizeRequestStatus { + // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the last_attempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + optional Error error = 96784904; + + // [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + optional InstanceGroupManagerResizeRequestStatusLastAttempt last_attempt = 434771492; + +} + +// +message InstanceGroupManagerResizeRequestStatusLastAttempt { + // Errors that prevented the ResizeRequest to be fulfilled. + optional Error error = 96784904; + +} + +// [Output Only] A list of resize requests. +message InstanceGroupManagerResizeRequestsListResponse { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of resize request resources. + repeated InstanceGroupManagerResizeRequest items = 100526016; + + // [Output Only] Type of the resource. Always compute#instanceGroupManagerResizeRequestList for a list of resize requests. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + // message InstanceGroupManagerStatus { // [Output only] Status of all-instances configuration on the group. @@ -13163,7 +13750,7 @@ message InstanceGroupManagerStatusStateful { // [Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. optional bool has_stateful_config = 110474224; - // [Output Only] Status of per-instance configurations on the instance. + // [Output Only] Status of per-instance configurations on the instances. optional InstanceGroupManagerStatusStatefulPerInstanceConfigs per_instance_configs = 526265001; } @@ -13777,6 +14364,32 @@ message InstanceReference { } +// Represents a Instance Settings resource. You can use instance settings to configure default settings for Compute Engine VM instances. For example, you can use it to configure default machine type of Compute Engine VM instances. +message InstanceSettings { + // Specifies a fingerprint for instance settings, which is essentially a hash of the instance settings resource's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance settings resource. You must always provide an up-to-date fingerprint hash in order to update or change the resource, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource. + optional string fingerprint = 234678500; + + // [Output Only] Type of the resource. Always compute#instance_settings for instance settings. + optional string kind = 3292052; + + // The metadata key/value pairs assigned to all the instances in the corresponding scope. + optional InstanceSettingsMetadata metadata = 86866735; + + // [Output Only] URL of the zone where the resource resides You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. + optional string zone = 3744684; + +} + +// +message InstanceSettingsMetadata { + // A metadata key/value items map. The total size of all keys and values must be less than 512KB. + map items = 100526016; + + // [Output Only] Type of the resource. Always compute#metadata for metadata. + optional string kind = 3292052; + +} + // Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/v1/instanceTemplates) * [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates. message InstanceTemplate { // [Output Only] The creation timestamp for this instance template in RFC3339 text format. @@ -13942,7 +14555,7 @@ message InstancesGetEffectiveFirewallsResponse { // message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { - // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. enum Type { // A value indicating that the enum field is not set. UNDEFINED_TYPE = 0; @@ -13969,7 +14582,7 @@ message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { // [Output Only] The short name of the firewall policy. optional string short_name = 492051566; - // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. // Check the Type enum for the list of possible values. optional string type = 3575610; @@ -14059,6 +14672,171 @@ message InstancesStartWithEncryptionKeyRequest { } +// Represents a InstantSnapshot resource. You can use instant snapshots to create disk rollback points quickly.. +message InstantSnapshot { + // [Output Only] The architecture of the instant snapshot. Valid values are ARM64 or X86_64. + enum Architecture { + // A value indicating that the enum field is not set. + UNDEFINED_ARCHITECTURE = 0; + + // Default value indicating Architecture is not set. + ARCHITECTURE_UNSPECIFIED = 394750507; + + // Machines with architecture ARM64 + ARM64 = 62547450; + + // Machines with architecture X86_64 + X86_64 = 425300551; + + } + + // [Output Only] The status of the instantSnapshot. This can be CREATING, DELETING, FAILED, or READY. + enum Status { + // A value indicating that the enum field is not set. + UNDEFINED_STATUS = 0; + + // InstantSnapshot creation is in progress. + CREATING = 455564985; + + // InstantSnapshot is currently being deleted. + DELETING = 528602024; + + // InstantSnapshot creation failed. + FAILED = 455706685; + + // InstantSnapshot has been created successfully. + READY = 77848963; + + // InstantSnapshot is currently unavailable and cannot be used for Disk restoration + UNAVAILABLE = 413756464; + + } + + // [Output Only] The architecture of the instant snapshot. Valid values are ARM64 or X86_64. + // Check the Architecture enum for the list of possible values. + optional string architecture = 302803283; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 30525366; + + // An optional description of this resource. Provide this property when you create the resource. + optional string description = 422937596; + + // [Output Only] Size of the source disk, specified in GB. + optional int64 disk_size_gb = 316263735; + + // [Output Only] The unique identifier for the resource. This identifier is defined by the server. + optional uint64 id = 3355; + + // [Output Only] Type of the resource. Always compute#instantSnapshot for InstantSnapshot resources. + optional string kind = 3292052; + + // A fingerprint for the labels being applied to this InstantSnapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a InstantSnapshot. + optional string label_fingerprint = 178124825; + + // Labels to apply to this InstantSnapshot. These can be later modified by the setLabels method. Label values may be empty. + map labels = 500195327; + + // Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. + optional string name = 3373707; + + // [Output Only] URL of the region where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. + optional string region = 138946292; + + // [Output Only] Status information for the instant snapshot resource. + optional InstantSnapshotResourceStatus resource_status = 249429315; + + // Output only. Reserved for future use. + optional bool satisfies_pzi = 480964257; + + // [Output Only] Reserved for future use. + optional bool satisfies_pzs = 480964267; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 456214797; + + // [Output Only] Server-defined URL for this resource's resource id. + optional string self_link_with_id = 44520962; + + // URL of the source disk used to create this instant snapshot. Note that the source disk must be in the same zone/region as the instant snapshot to be created. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk + optional string source_disk = 451753793; + + // [Output Only] The ID value of the disk used to create this InstantSnapshot. This value may be used to determine whether the InstantSnapshot was taken from the current or a previous instance of a given disk name. + optional string source_disk_id = 454190809; + + // [Output Only] The status of the instantSnapshot. This can be CREATING, DELETING, FAILED, or READY. + // Check the Status enum for the list of possible values. + optional string status = 181260274; + + // [Output Only] URL of the zone where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. + optional string zone = 3744684; + +} + +// +message InstantSnapshotAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of InstantSnapshotsScopedList resources. + map items = 100526016; + + // [Output Only] Type of resource. Always compute#instantSnapshotAggregatedList for aggregated lists of instantSnapshots. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Unreachable resources. + repeated string unreachables = 243372063; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// Contains a list of InstantSnapshot resources. +message InstantSnapshotList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of InstantSnapshot resources. + repeated InstantSnapshot items = 100526016; + + // Type of resource. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// +message InstantSnapshotResourceStatus { + // [Output Only] The storage size of this instant snapshot. + optional int64 storage_size_bytes = 387548913; + +} + +// +message InstantSnapshotsScopedList { + // [Output Only] A list of instantSnapshots contained in this scope. + repeated InstantSnapshot instant_snapshots = 329637457; + + // [Output Only] Informational warning which replaces the list of instantSnapshots when the list is empty. + optional Warning warning = 50704284; + +} + // HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. message Int64RangeMatch { // The end of the range (exclusive) in signed long integer format. @@ -15246,7 +16024,7 @@ message InterconnectRemoteLocation { // message InterconnectRemoteLocationConstraints { - // [Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location. + // [Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location. enum PortPairRemoteLocation { // A value indicating that the enum field is not set. UNDEFINED_PORT_PAIR_REMOTE_LOCATION = 0; @@ -15272,7 +16050,7 @@ message InterconnectRemoteLocationConstraints { } - // [Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location. + // [Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location. // Check the PortPairRemoteLocation enum for the list of possible values. optional string port_pair_remote_location = 495917351; @@ -15521,7 +16299,7 @@ message ListAcceleratorTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -15549,7 +16327,7 @@ message ListAddressesRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15578,7 +16356,7 @@ message ListAutoscalersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // Name of the zone for this request. @@ -15606,7 +16384,7 @@ message ListAvailableFeaturesRegionSslPoliciesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15628,7 +16406,7 @@ message ListAvailableFeaturesSslPoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15650,7 +16428,7 @@ message ListBackendBucketsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15672,7 +16450,7 @@ message ListBackendServicesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15694,7 +16472,7 @@ message ListDiskTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -15719,7 +16497,7 @@ message ListDisksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -15727,6 +16505,34 @@ message ListDisksRequest { } +// A request message for StoragePools.ListDisks. See the method description for details. +message ListDisksStoragePoolsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // Name of the storage pool to list disks of. + string storage_pool = 360473440 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for InstanceGroupManagers.ListErrors. See the method description for details. message ListErrorsInstanceGroupManagersRequest { // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. @@ -15747,7 +16553,7 @@ message ListErrorsInstanceGroupManagersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the managed instance group is located. It should conform to RFC1035. @@ -15778,7 +16584,7 @@ message ListErrorsRegionInstanceGroupManagersRequest { // Name of the region scoping this request. This should conform to RFC1035. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15800,7 +16606,7 @@ message ListExternalVpnGatewaysRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15822,7 +16628,7 @@ message ListFirewallPoliciesRequest { // Parent ID for this request. The ID can be either be "folders/[FOLDER_ID]" if the parent is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an organization. optional string parent_id = 459714768; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15844,7 +16650,7 @@ message ListFirewallsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15869,7 +16675,7 @@ message ListForwardingRulesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15891,7 +16697,7 @@ message ListGlobalAddressesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15913,7 +16719,7 @@ message ListGlobalForwardingRulesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15935,7 +16741,7 @@ message ListGlobalNetworkEndpointGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15957,7 +16763,7 @@ message ListGlobalOperationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -15979,7 +16785,7 @@ message ListGlobalOrganizationOperationsRequest { // Parent ID for this request. optional string parent_id = 459714768; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16001,7 +16807,7 @@ message ListGlobalPublicDelegatedPrefixesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16023,7 +16829,7 @@ message ListHealthChecksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16045,11 +16851,39 @@ message ListImagesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } +// A request message for InstanceGroupManagerResizeRequests.List. See the method description for details. +message ListInstanceGroupManagerResizeRequestsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // The name of the managed instance group. The name should conform to RFC1035. + string instance_group_manager = 249363395 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // The name of the zone where the managed instance group is located. The name should conform to RFC1035. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for InstanceGroupManagers.List. See the method description for details. message ListInstanceGroupManagersRequest { // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. @@ -16067,7 +16901,7 @@ message ListInstanceGroupManagersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the managed instance group is located. @@ -16092,7 +16926,7 @@ message ListInstanceGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the instance group is located. @@ -16117,7 +16951,7 @@ message ListInstanceTemplatesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16145,7 +16979,7 @@ message ListInstancesInstanceGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the instance group is located. @@ -16179,7 +17013,7 @@ message ListInstancesRegionInstanceGroupsRequest { // The body resource for this request RegionInstanceGroupsListInstancesRequest region_instance_groups_list_instances_request_resource = 48239828 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16201,7 +17035,32 @@ message ListInstancesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for InstantSnapshots.List. See the method description for details. +message ListInstantSnapshotsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -16229,7 +17088,7 @@ message ListInterconnectAttachmentsRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16251,7 +17110,7 @@ message ListInterconnectLocationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16273,7 +17132,7 @@ message ListInterconnectRemoteLocationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16295,7 +17154,7 @@ message ListInterconnectsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16317,7 +17176,7 @@ message ListLicensesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16339,7 +17198,7 @@ message ListMachineImagesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16361,7 +17220,7 @@ message ListMachineTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -16389,7 +17248,7 @@ message ListManagedInstancesInstanceGroupManagersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the managed instance group is located. @@ -16420,7 +17279,7 @@ message ListManagedInstancesRegionInstanceGroupManagersRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16445,7 +17304,7 @@ message ListNetworkAttachmentsRequest { // Name of the region of this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16467,7 +17326,7 @@ message ListNetworkEndpointGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the network endpoint group is located. It should comply with RFC1035. @@ -16495,7 +17354,7 @@ message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16523,7 +17382,7 @@ message ListNetworkEndpointsNetworkEndpointGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the network endpoint group is located. It should comply with RFC1035. @@ -16554,7 +17413,7 @@ message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest { // The name of the region where the network endpoint group is located. It should comply with RFC1035. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16576,7 +17435,7 @@ message ListNetworkFirewallPoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16598,7 +17457,7 @@ message ListNetworksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16620,7 +17479,7 @@ message ListNodeGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -16648,7 +17507,7 @@ message ListNodeTemplatesRequest { // The name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16670,7 +17529,7 @@ message ListNodeTypesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -16698,7 +17557,7 @@ message ListNodesNodeGroupsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -16726,7 +17585,7 @@ message ListPacketMirroringsRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16774,7 +17633,7 @@ message ListPeeringRoutesNetworksRequest { // The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region. optional string region = 138946292; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16799,7 +17658,7 @@ message ListPerInstanceConfigsInstanceGroupManagersRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone where the managed instance group is located. It should conform to RFC1035. @@ -16830,7 +17689,7 @@ message ListPerInstanceConfigsRegionInstanceGroupManagersRequest { // Name of the region scoping this request, should conform to RFC1035. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16852,7 +17711,7 @@ message ListPreconfiguredExpressionSetsSecurityPoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16874,7 +17733,7 @@ message ListPublicAdvertisedPrefixesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16899,7 +17758,7 @@ message ListPublicDelegatedPrefixesRequest { // Name of the region of this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16924,7 +17783,7 @@ message ListReferrersInstancesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // The name of the zone for this request. @@ -16952,7 +17811,7 @@ message ListRegionAutoscalersRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -16977,7 +17836,7 @@ message ListRegionBackendServicesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17002,7 +17861,7 @@ message ListRegionCommitmentsRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17027,7 +17886,7 @@ message ListRegionDiskTypesRequest { // The name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17052,7 +17911,7 @@ message ListRegionDisksRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17077,7 +17936,7 @@ message ListRegionHealthCheckServicesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17102,7 +17961,7 @@ message ListRegionHealthChecksRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17127,7 +17986,7 @@ message ListRegionInstanceGroupManagersRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17152,7 +18011,7 @@ message ListRegionInstanceGroupsRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17177,7 +18036,32 @@ message ListRegionInstanceTemplatesRequest { // The name of the regions for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + +} + +// A request message for RegionInstantSnapshots.List. See the method description for details. +message ListRegionInstantSnapshotsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the region for this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17202,7 +18086,7 @@ message ListRegionNetworkEndpointGroupsRequest { // The name of the region where the network endpoint group is located. It should comply with RFC1035. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17227,7 +18111,7 @@ message ListRegionNetworkFirewallPoliciesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17252,7 +18136,7 @@ message ListRegionNotificationEndpointsRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17277,7 +18161,7 @@ message ListRegionOperationsRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17302,7 +18186,7 @@ message ListRegionSecurityPoliciesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17327,7 +18211,7 @@ message ListRegionSslCertificatesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17352,7 +18236,7 @@ message ListRegionSslPoliciesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17377,7 +18261,7 @@ message ListRegionTargetHttpProxiesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17402,7 +18286,7 @@ message ListRegionTargetHttpsProxiesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17427,7 +18311,7 @@ message ListRegionTargetTcpProxiesRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17452,7 +18336,7 @@ message ListRegionUrlMapsRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17477,7 +18361,7 @@ message ListRegionZonesRequest { // Region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17499,7 +18383,7 @@ message ListRegionsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17521,7 +18405,7 @@ message ListReservationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // Name of the zone for this request. @@ -17549,7 +18433,7 @@ message ListResourcePoliciesRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17574,7 +18458,7 @@ message ListRoutersRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17596,7 +18480,7 @@ message ListRoutesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17618,7 +18502,7 @@ message ListSecurityPoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17643,7 +18527,7 @@ message ListServiceAttachmentsRequest { // Name of the region of this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17665,7 +18549,7 @@ message ListSnapshotsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17687,7 +18571,7 @@ message ListSslCertificatesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17709,9 +18593,59 @@ message ListSslPoliciesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + +} + +// A request message for StoragePoolTypes.List. See the method description for details. +message ListStoragePoolTypesRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 517198390; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + +// A request message for StoragePools.List. See the method description for details. +message ListStoragePoolsRequest { + // A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions. + optional string filter = 336120696; + + // The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`) + optional uint32 max_results = 54715419; + + // Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported. + optional string order_by = 160562920; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results. + optional string page_token = 19994697; + + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + } // A request message for Subnetworks.List. See the method description for details. @@ -17734,7 +18668,7 @@ message ListSubnetworksRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17756,7 +18690,7 @@ message ListTargetGrpcProxiesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17778,7 +18712,7 @@ message ListTargetHttpProxiesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17800,7 +18734,7 @@ message ListTargetHttpsProxiesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17822,7 +18756,7 @@ message ListTargetInstancesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // Name of the zone scoping this request. @@ -17850,7 +18784,7 @@ message ListTargetPoolsRequest { // Name of the region scoping this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17872,7 +18806,7 @@ message ListTargetSslProxiesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17894,7 +18828,7 @@ message ListTargetTcpProxiesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17919,7 +18853,7 @@ message ListTargetVpnGatewaysRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17941,7 +18875,7 @@ message ListUrlMapsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17963,7 +18897,7 @@ message ListUsableBackendServicesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -17988,7 +18922,7 @@ message ListUsableRegionBackendServicesRequest { // Name of the region scoping this request. It must be a string that meets the requirements in RFC1035. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -18010,7 +18944,7 @@ message ListUsableSubnetworksRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -18035,7 +18969,7 @@ message ListVpnGatewaysRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -18060,7 +18994,7 @@ message ListVpnTunnelsRequest { // Name of the region for this request. string region = 138946292 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -18085,7 +19019,7 @@ message ListXpnHostsProjectsRequest { // The body resource for this request ProjectsListXpnHostsRequest projects_list_xpn_hosts_request_resource = 238266391 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -18107,7 +19041,7 @@ message ListZoneOperationsRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; // Name of the zone for request. @@ -18132,7 +19066,7 @@ message ListZonesRequest { // Project ID for this request. string project = 227560217 [(google.api.field_behavior) = REQUIRED]; - // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. + // Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code. optional bool return_partial_success = 517198390; } @@ -19212,7 +20146,7 @@ message NetworkEndpoint { // Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview. message NetworkEndpointGroup { - // Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT. + // Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP. enum NetworkEndpointType { // A value indicating that the enum field is not set. UNDEFINED_NETWORK_ENDPOINT_TYPE = 0; @@ -19273,7 +20207,7 @@ message NetworkEndpointGroup { // The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified. optional string network = 232872494; - // Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT. + // Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP. // Check the NetworkEndpointType enum for the list of possible values. optional string network_endpoint_type = 118301523; @@ -19797,6 +20731,19 @@ message NetworksUpdatePeeringRequest { // Represents a sole-tenant Node Group resource. A sole-tenant node is a physical server that is dedicated to hosting VM instances only for your specific project. Use sole-tenant nodes to keep your instances physically separated from instances in other projects, or to group your instances together on the same host hardware. For more information, read Sole-tenant nodes. message NodeGroup { + // Specifies the frequency of planned maintenance events. The accepted values are: `AS_NEEDED` and `RECURRENT`. + enum MaintenanceInterval { + // A value indicating that the enum field is not set. + UNDEFINED_MAINTENANCE_INTERVAL = 0; + + // VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options. + AS_NEEDED = 500724834; + + // VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs. + RECURRENT = 194244550; + + } + // Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies. enum MaintenancePolicy { // A value indicating that the enum field is not set. @@ -19850,6 +20797,10 @@ message NodeGroup { // An opaque location hint used to place the Node close to other resources. This field is for use by internal tools that use the public API. The location hint here on the NodeGroup overrides any location_hint present in the NodeTemplate. optional string location_hint = 350519505; + // Specifies the frequency of planned maintenance events. The accepted values are: `AS_NEEDED` and `RECURRENT`. + // Check the MaintenanceInterval enum for the list of possible values. + optional string maintenance_interval = 403368049; + // Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies. // Check the MaintenancePolicy enum for the list of possible values. optional string maintenance_policy = 528327646; @@ -20042,6 +20993,9 @@ message NodeGroupNode { // Total amount of available resources on the node. optional InstanceConsumptionInfo total_resources = 97406698; + // [Output Only] The information about an upcoming maintenance event. + optional UpcomingMaintenance upcoming_maintenance = 227348592; + } // @@ -20080,6 +21034,16 @@ message NodeGroupsListNodes { } +// +message NodeGroupsPerformMaintenanceRequest { + // [Required] List of nodes affected by the call. + repeated string nodes = 104993457; + + // The start time of the schedule. The timestamp is an RFC3339 string. + optional string start_time = 37467274; + +} + // message NodeGroupsScopedList { // [Output Only] A list of node groups contained in this scope. @@ -20693,7 +21657,7 @@ message PacketMirroring { // Check the Enable enum for the list of possible values. optional string enable = 311764355; - // Filter for mirrored traffic. If unspecified, all traffic is mirrored. + // Filter for mirrored traffic. If unspecified, all IPv4 traffic is mirrored. optional PacketMirroringFilter filter = 336120696; // [Output Only] The unique identifier for the resource. This identifier is defined by the server. @@ -20768,7 +21732,7 @@ message PacketMirroringFilter { // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. repeated string I_p_protocols = 98544854; - // One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use "0.0.0.0/0,::/0". Note: Support for IPv6 traffic is in preview. + // One or more IPv4 or IPv6 CIDR ranges that apply as filters on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use "0.0.0.0/0,::/0". repeated string cidr_ranges = 487901697; // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. @@ -21083,6 +22047,31 @@ message PatchInstanceGroupManagerRequest { } +// A request message for InstanceSettingsService.Patch. See the method description for details. +message PatchInstanceSettingRequest { + // The body resource for this request + InstanceSettings instance_settings_resource = 290689920 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // update_mask indicates fields to be updated as part of this request. + optional string update_mask = 500079778; + + // The zone scoping this request. It should conform to RFC1035. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for InterconnectAttachments.Patch. See the method description for details. message PatchInterconnectAttachmentRequest { // Name of the interconnect attachment to patch. @@ -21983,13 +22972,13 @@ message PatchUrlMapRequest { // A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. message PathMatcher { - // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction. + // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. If defaultRouteAction is specified, don't set defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is specified, don't set defaultService. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction. optional HttpRouteAction default_route_action = 378919466; - // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use + // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. If defaultService is specified, then set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. Don't set both. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use optional string default_service = 370242231; - // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. + // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, then set either defaultService or defaultRouteAction. Don't set both. Not supported when the URL map is bound to a target gRPC proxy. optional HttpRedirectAction default_url_redirect = 359503338; // An optional description of this resource. Provide this property when you create the resource. @@ -22089,6 +23078,31 @@ message PerformMaintenanceInstanceRequest { } +// A request message for NodeGroups.PerformMaintenance. See the method description for details. +message PerformMaintenanceNodeGroupRequest { + // Name of the node group scoping this request. + string node_group = 469958146 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + NodeGroupsPerformMaintenanceRequest node_groups_perform_maintenance_request_resource = 185310294 [(google.api.field_behavior) = REQUIRED]; + + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // 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/). message Policy { // Specifies cloud audit logging configuration for this policy. @@ -22222,6 +23236,22 @@ message PreviewRouterRequest { // Represents a Project resource. A project is used to organize resources in a Google Cloud Platform environment. For more information, read about the Resource Hierarchy. message Project { + // [Output Only] The Cloud Armor tier for this project. It can be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD. + enum CloudArmorTier { + // A value indicating that the enum field is not set. + UNDEFINED_CLOUD_ARMOR_TIER = 0; + + // Enterprise tier protection billed annually. + CA_ENTERPRISE_ANNUAL = 219921116; + + // Enterprise tier protection billed monthly. + CA_ENTERPRISE_PAYGO = 453530323; + + // Standard protection. + CA_STANDARD = 13156734; + + } + // This signifies the default network tier used for configuring resources of the project and can only take the following values: PREMIUM, STANDARD. Initially the default network tier is PREMIUM. enum DefaultNetworkTier { // A value indicating that the enum field is not set. @@ -22267,6 +23297,10 @@ message Project { } + // [Output Only] The Cloud Armor tier for this project. It can be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD. + // Check the CloudArmorTier enum for the list of possible values. + optional string cloud_armor_tier = 4427052; + // Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information. optional Metadata common_instance_metadata = 185794117; @@ -22348,6 +23382,30 @@ message ProjectsListXpnHostsRequest { } +// +message ProjectsSetCloudArmorTierRequest { + // Managed protection tier to be set. + enum CloudArmorTier { + // A value indicating that the enum field is not set. + UNDEFINED_CLOUD_ARMOR_TIER = 0; + + // Enterprise tier protection billed annually. + CA_ENTERPRISE_ANNUAL = 219921116; + + // Enterprise tier protection billed monthly. + CA_ENTERPRISE_PAYGO = 453530323; + + // Standard protection. + CA_STANDARD = 13156734; + + } + + // Managed protection tier to be set. + // Check the CloudArmorTier enum for the list of possible values. + optional string cloud_armor_tier = 4427052; + +} + // message ProjectsSetDefaultNetworkTierRequest { // Default network tier to be set. @@ -22543,6 +23601,19 @@ message PublicDelegatedPrefix { } + // The public delegated prefix mode for IPv6 only. + enum Mode { + // A value indicating that the enum field is not set. + UNDEFINED_MODE = 0; + + // The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength. + DELEGATION = 264149288; + + // The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes. + EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356; + + } + // [Output Only] The status of the public delegated prefix, which can be one of following values: - `INITIALIZING` The public delegated prefix is being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public delegated prefix is being deprovsioned. enum Status { // A value indicating that the enum field is not set. @@ -22568,6 +23639,9 @@ message PublicDelegatedPrefix { } + // The allocatable prefix length supported by this public delegated prefix. This field is optional and cannot be set for prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and it always defaults to 32. + optional int32 allocatable_prefix_length = 38427446; + // [Output Only] The version of BYOIP API. // Check the ByoipApiVersion enum for the list of possible values. optional string byoip_api_version = 162683283; @@ -22593,6 +23667,10 @@ message PublicDelegatedPrefix { // [Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes. optional string kind = 3292052; + // The public delegated prefix mode for IPv6 only. + // Check the Mode enum for the list of possible values. + optional string mode = 3357091; + // Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. optional string name = 3373707; @@ -22663,6 +23741,19 @@ message PublicDelegatedPrefixList { // Represents a sub PublicDelegatedPrefix. message PublicDelegatedPrefixPublicDelegatedSubPrefix { + // The PublicDelegatedSubPrefix mode for IPv6 only. + enum Mode { + // A value indicating that the enum field is not set. + UNDEFINED_MODE = 0; + + // The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength. + DELEGATION = 264149288; + + // The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes. + EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356; + + } + // [Output Only] The status of the sub public delegated prefix. enum Status { // A value indicating that the enum field is not set. @@ -22674,6 +23765,9 @@ message PublicDelegatedPrefixPublicDelegatedSubPrefix { } + // The allocatable prefix length supported by this PublicDelegatedSubPrefix. + optional int32 allocatable_prefix_length = 38427446; + // Name of the project scoping this PublicDelegatedSubPrefix. optional string delegatee_project = 414860634; @@ -22686,6 +23780,10 @@ message PublicDelegatedPrefixPublicDelegatedSubPrefix { // Whether the sub prefix is delegated to create Address resources in the delegatee project. optional bool is_address = 352617951; + // The PublicDelegatedSubPrefix mode for IPv6 only. + // Check the Mode enum for the list of possible values. + optional string mode = 3357091; + // The name of the sub public delegated prefix. optional string name = 3373707; @@ -22818,6 +23916,12 @@ message Quota { GPUS_ALL_REGIONS = 39387177; + HDB_TOTAL_GB = 319316271; + + HDB_TOTAL_IOPS = 309720317; + + HDB_TOTAL_THROUGHPUT = 20981374; + HEALTH_CHECKS = 289347502; IMAGES = 15562360; @@ -22964,6 +24068,8 @@ message Quota { REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES = 96282539; + REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 483162968; + RESERVATIONS = 32644647; RESOURCE_POLICIES = 83955297; @@ -22993,6 +24099,8 @@ message Quota { SSL_CERTIFICATES = 378372399; + SSL_POLICIES = 523254339; + STATIC_ADDRESSES = 93624049; STATIC_BYOIP_ADDRESSES = 275809649; @@ -23027,6 +24135,8 @@ message Quota { URL_MAPS = 378660743; + VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES = 128400161; + VPN_GATEWAYS = 35620282; VPN_TUNNELS = 104327296; @@ -23086,6 +24196,111 @@ message QuotaExceededInfo { } +// [Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails. +message QuotaStatusWarning { + // [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. + enum Code { + // A value indicating that the enum field is not set. + UNDEFINED_CODE = 0; + + // Warning about failed cleanup of transient changes made by a failed operation. + CLEANUP_FAILED = 150308440; + + // A link to a deprecated resource was created. + DEPRECATED_RESOURCE_USED = 391835586; + + // When deploying and at least one of the resources has a type marked as deprecated + DEPRECATED_TYPE_USED = 346526230; + + // The user created a boot disk that is larger than image size. + DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967; + + // When deploying and at least one of the resources has a type marked as experimental + EXPERIMENTAL_TYPE_USED = 451954443; + + // Warning that is present in an external api call + EXTERNAL_API_WARNING = 175546307; + + // Warning that value of a field has been overridden. Deprecated unused field. + FIELD_VALUE_OVERRIDEN = 329669423; + + // The operation involved use of an injected kernel, which is deprecated. + INJECTED_KERNELS_DEPRECATED = 417377419; + + // A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2. + INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606; + + // When deploying a deployment with a exceedingly large number of resources + LARGE_DEPLOYMENT_WARNING = 481440678; + + // Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter. + LIST_OVERHEAD_QUOTA_EXCEED = 47618117; + + // A resource depends on a missing type + MISSING_TYPE_DEPENDENCY = 344505463; + + // The route's nextHopIp address is not assigned to an instance on the network. + NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999; + + // The route's next hop instance cannot ip forward. + NEXT_HOP_CANNOT_IP_FORWARD = 383382887; + + // The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route. + NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434; + + // The route's nextHopInstance URL refers to an instance that does not exist. + NEXT_HOP_INSTANCE_NOT_FOUND = 464250446; + + // The route's nextHopInstance URL refers to an instance that is not on the same network as the route. + NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146; + + // The route's next hop instance does not have a status of RUNNING. + NEXT_HOP_NOT_RUNNING = 417081265; + + // Error which is not critical. We decided to continue the process despite the mentioned error. + NOT_CRITICAL_ERROR = 105763924; + + // No results are present on a particular list page. + NO_RESULTS_ON_PAGE = 30036744; + + // Success is reported, but some results may be missing due to errors + PARTIAL_SUCCESS = 39966469; + + // The user attempted to use a resource that requires a TOS they have not accepted. + REQUIRED_TOS_AGREEMENT = 3745539; + + // Warning that a resource is in use. + RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641; + + // One or more of the resources set to auto-delete could not be deleted because they were in use. + RESOURCE_NOT_DELETED = 168598460; + + // When a resource schema validation is ignored. + SCHEMA_VALIDATION_IGNORED = 275245642; + + // Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group. + SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617; + + // When undeclared properties in the schema are present + UNDECLARED_PROPERTIES = 390513439; + + // A given scope cannot be reached. + UNREACHABLE = 13328052; + + } + + // [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. + // Check the Code enum for the list of possible values. + optional string code = 3059181; + + // [Output Only] Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated Data data = 3076010; + + // [Output Only] A human-readable description of the warning code. + optional string message = 418054151; + +} + // The parameters of the raw disk image. message RawDisk { // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. @@ -23206,6 +24421,9 @@ message Region { // [Output Only] Name of the resource. optional string name = 3373707; + // [Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails. + optional QuotaStatusWarning quota_status_warning = 302941430; + // [Output Only] Quotas assigned to this region. repeated Quota quotas = 125341947; @@ -23598,7 +24816,7 @@ message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse { // message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { - // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. enum Type { // A value indicating that the enum field is not set. UNDEFINED_TYPE = 0; @@ -23622,7 +24840,7 @@ message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirew // The rules that apply to the network. repeated FirewallPolicyRule rules = 108873975; - // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. // Check the Type enum for the list of possible values. optional string type = 3575610; @@ -24465,7 +25683,7 @@ message ResourcePolicyDailyCycle { message ResourcePolicyDiskConsistencyGroupPolicy { } -// A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality +// A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation message ResourcePolicyGroupPlacementPolicy { // Specifies network collocation enum Collocation { @@ -24980,6 +26198,9 @@ message RouterBgp { // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. optional uint32 asn = 96892; + // Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this "router ID". + optional string identifier_range = 501573159; + // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. optional uint32 keepalive_interval = 276771516; @@ -25059,15 +26280,27 @@ message RouterBgpPeer { // Check the Enable enum for the list of possible values. optional string enable = 311764355; - // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. + // Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. + optional bool enable_ipv4 = 181467937; + + // Enable IPv6 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 6. optional bool enable_ipv6 = 181467939; + // List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are currently available in preview. Please use Beta API to use Route Policies. + repeated string export_policies = 134084987; + + // List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. Note that Route Policies are currently available in preview. Please use Beta API to use Route Policies. + repeated string import_policies = 451147946; + // Name of the interface the BGP peer is associated with. optional string interface_name = 437854673; - // IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. + // IP address of the interface inside Google Cloud Platform. optional string ip_address = 406272220; + // IPv4 address of the interface inside Google Cloud Platform. + optional string ipv4_nexthop_address = 5703377; + // IPv6 address of the interface inside Google Cloud Platform. optional string ipv6_nexthop_address = 27968211; @@ -25084,9 +26317,12 @@ message RouterBgpPeer { // Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. optional uint32 peer_asn = 69573151; - // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. + // IP address of the BGP interface outside Google Cloud Platform. optional string peer_ip_address = 207735769; + // IPv4 address of the BGP interface outside Google Cloud Platform. + optional string peer_ipv4_nexthop_address = 469221774; + // IPv6 address of the BGP interface outside Google Cloud Platform. optional string peer_ipv6_nexthop_address = 491486608; @@ -25134,6 +26370,17 @@ message RouterBgpPeerCustomLearnedIpRange { // message RouterInterface { + // IP version of this interface. + enum IpVersion { + // A value indicating that the enum field is not set. + UNDEFINED_IP_VERSION = 0; + + IPV4 = 2254341; + + IPV6 = 2254343; + + } + // [Output Only] The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. enum ManagementType { // A value indicating that the enum field is not set. @@ -25147,9 +26394,13 @@ message RouterInterface { } - // IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. + // IP address and range of the interface. - For Internet Protocol version 4 (IPv4), the IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example, 169.254.0.1/30. Note: Do not truncate the IP address, as it represents the IP address of the interface. - For Internet Protocol version 6 (IPv6), the value must be a unique local address (ULA) range from fdff:1::/64 with a mask length of 126 or less. This value should be a CIDR-formatted string, for example, fc00:0:1:1::1/112. Within the router's VPC, this IPv6 prefix will be reserved exclusively for this connection and cannot be used for any other purpose. optional string ip_range = 145092645; + // IP version of this interface. + // Check the IpVersion enum for the list of possible values. + optional string ip_version = 294959552; + // URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork. optional string linked_interconnect_attachment = 501085518; @@ -25477,6 +26728,12 @@ message RouterStatusBgpPeerStatus { // A value indicating that the enum field is not set. UNDEFINED_STATUS_REASON = 0; + // BGP peer disabled because it requires IPv4 but the underlying connection is IPv6-only. + IPV4_PEER_ON_IPV6_ONLY_CONNECTION = 435936662; + + // BGP peer disabled because it requires IPv6 but the underlying connection is IPv4-only. + IPV6_PEER_ON_IPV4_ONLY_CONNECTION = 436304082; + // Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN. MD5_AUTH_INTERNAL_PROBLEM = 140462259; @@ -25489,12 +26746,18 @@ message RouterStatusBgpPeerStatus { optional BfdStatus bfd_status = 395631729; - // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. + // Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. + optional bool enable_ipv4 = 181467937; + + // Enable IPv6 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 6. optional bool enable_ipv6 = 181467939; // IP address of the local BGP interface. optional string ip_address = 406272220; + // IPv4 address of the local BGP interface. + optional string ipv4_nexthop_address = 5703377; + // IPv6 address of the local BGP interface. optional string ipv6_nexthop_address = 27968211; @@ -25513,6 +26776,9 @@ message RouterStatusBgpPeerStatus { // IP address of the remote BGP interface. optional string peer_ip_address = 207735769; + // IPv4 address of the remote BGP interface. + optional string peer_ipv4_nexthop_address = 469221774; + // IPv6 address of the remote BGP interface. optional string peer_ipv6_nexthop_address = 491486608; @@ -26755,10 +28021,10 @@ message ServiceAttachment { // Check the ConnectionPreference enum for the list of possible values. optional string connection_preference = 285818076; - // Projects that are allowed to connect to this service attachment. + // Specifies which consumer projects or networks are allowed to connect to the service attachment. Each project or network has a connection limit. A given service attachment can manage connections at either the project or network level. Therefore, both the accept and reject lists for a given service attachment must contain either only projects or only networks. repeated ServiceAttachmentConsumerProjectLimit consumer_accept_lists = 402725703; - // Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number. + // Specifies a list of projects or networks that are not allowed to connect to this service attachment. The project can be specified using its project ID or project number and the network can be specified using its URL. A given service attachment can manage connections at either the project or network level. Therefore, both the reject and accept lists for a given service attachment must contain either only projects or only networks. repeated string consumer_reject_lists = 204033182; // [Output Only] Creation timestamp in RFC3339 text format. @@ -27023,6 +28289,22 @@ message SetCertificateMapTargetSslProxyRequest { } +// A request message for Projects.SetCloudArmorTier. See the method description for details. +message SetCloudArmorTierProjectRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // The body resource for this request + ProjectsSetCloudArmorTierRequest projects_set_cloud_armor_tier_request_resource = 77053391 [(google.api.field_behavior) = REQUIRED]; + + // 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). + optional string request_id = 37109963; + +} + // message SetCommonInstanceMetadataOperationMetadata { // [Output Only] The client operation id. @@ -27285,6 +28567,22 @@ message SetIamPolicyInstanceTemplateRequest { } +// A request message for InstantSnapshots.SetIamPolicy. See the method description for details. +message SetIamPolicyInstantSnapshotRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + ZoneSetPolicyRequest zone_set_policy_request_resource = 382082107 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Licenses.SetIamPolicy. See the method description for details. message SetIamPolicyLicenseRequest { // The body resource for this request @@ -27404,6 +28702,22 @@ message SetIamPolicyRegionDiskRequest { } +// A request message for RegionInstantSnapshots.SetIamPolicy. See the method description for details. +message SetIamPolicyRegionInstantSnapshotRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the region for this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + RegionSetPolicyRequest region_set_policy_request_resource = 276489091 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionNetworkFirewallPolicies.SetIamPolicy. See the method description for details. message SetIamPolicyRegionNetworkFirewallPolicyRequest { // Project ID for this request. @@ -27481,6 +28795,22 @@ message SetIamPolicySnapshotRequest { } +// A request message for StoragePools.SetIamPolicy. See the method description for details. +message SetIamPolicyStoragePoolRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + ZoneSetPolicyRequest zone_set_policy_request_resource = 382082107 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Subnetworks.SetIamPolicy. See the method description for details. message SetIamPolicySubnetworkRequest { // Project ID for this request. @@ -27711,6 +29041,31 @@ message SetLabelsInstanceRequest { } +// A request message for InstantSnapshots.SetLabels. See the method description for details. +message SetLabelsInstantSnapshotRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + + // The body resource for this request + ZoneSetLabelsRequest zone_set_labels_request_resource = 364950798 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for InterconnectAttachments.SetLabels. See the method description for details. message SetLabelsInterconnectAttachmentRequest { // Project ID for this request. @@ -27777,6 +29132,31 @@ message SetLabelsRegionDiskRequest { } +// A request message for RegionInstantSnapshots.SetLabels. See the method description for details. +message SetLabelsRegionInstantSnapshotRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // The region for this request. + string region = 138946292 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "region" + ]; + + // The body resource for this request + RegionSetLabelsRequest region_set_labels_request_resource = 259357782 [(google.api.field_behavior) = REQUIRED]; + + // 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). + optional string request_id = 37109963; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for SecurityPolicies.SetLabels. See the method description for details. message SetLabelsSecurityPolicyRequest { // The body resource for this request @@ -28969,6 +30349,15 @@ message Snapshot { // [Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name. optional string source_disk_id = 454190809; + // The source instant snapshot used to create this snapshot. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot + optional string source_instant_snapshot = 219202054; + + // Customer provided encryption key when creating Snapshot from Instant Snapshot. + optional CustomerEncryptionKey source_instant_snapshot_encryption_key = 436536060; + + // [Output Only] The unique ID of the instant snapshot used to create this snapshot. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact instant snapshot that was used. + optional string source_instant_snapshot_id = 287582708; + // [Output Only] URL of the resource policy which created this scheduled snapshot. optional string source_snapshot_schedule_policy = 235756291; @@ -29030,7 +30419,7 @@ message SnapshotSettingsStorageLocationSettings { // Store snapshot in the same region as with the originating disk. No additional parameters are needed. LOCAL_REGION = 403535464; - // Store snapshot to the nearest multi region GCS bucket, relative to the originating disk. No additional parameters are needed. + // Store snapshot in the nearest multi region Cloud Storage bucket, relative to the originating disk. No additional parameters are needed. NEAREST_MULTI_REGION = 212467515; // Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field. @@ -29040,7 +30429,7 @@ message SnapshotSettingsStorageLocationSettings { } - // When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are GCS bucket locations. + // When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are Cloud Storage bucket locations. Only one location can be specified. map locations = 413423454; // The chosen location policy. @@ -29051,7 +30440,7 @@ message SnapshotSettingsStorageLocationSettings { // A structure for specifying storage locations. message SnapshotSettingsStorageLocationSettingsStorageLocationPreference { - // Name of the location. It should be one of the GCS buckets. + // Name of the location. It should be one of the Cloud Storage buckets. Only one location can be specified. optional string name = 3373707; } @@ -29735,6 +31124,408 @@ message StopInstanceRequest { } +// Represents a zonal storage pool resource. +message StoragePool { + // Provisioning type of the byte capacity of the pool. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // ADVANCED + // STANDARD + // UNSPECIFIED + enum CapacityProvisioningType { + // A value indicating that the enum field is not set. + UNDEFINED_CAPACITY_PROVISIONING_TYPE = 0; + + } + + // Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS. + // Additional supported values which may be not listed in the enum directly due to technical reasons: + // ADVANCED + // STANDARD + // UNSPECIFIED + enum PerformanceProvisioningType { + // A value indicating that the enum field is not set. + UNDEFINED_PERFORMANCE_PROVISIONING_TYPE = 0; + + } + + // [Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. + enum State { + // A value indicating that the enum field is not set. + UNDEFINED_STATE = 0; + + // StoragePool is provisioning + CREATING = 455564985; + + // StoragePool is deleting. + DELETING = 528602024; + + // StoragePool creation failed. + FAILED = 455706685; + + // StoragePool is ready for use. + READY = 77848963; + + } + + // Provisioning type of the byte capacity of the pool. + // Check the CapacityProvisioningType enum for the list of possible values. + optional string capacity_provisioning_type = 251610375; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 30525366; + + // An optional description of this resource. Provide this property when you create the resource. + optional string description = 422937596; + + // [Output Only] The unique identifier for the resource. This identifier is defined by the server. + optional uint64 id = 3355; + + // [Output Only] Type of the resource. Always compute#storagePool for storage pools. + optional string kind = 3292052; + + // A fingerprint for the labels being applied to this storage pool, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a storage pool. + optional string label_fingerprint = 178124825; + + // Labels to apply to this storage pool. These can be later modified by the setLabels method. + map labels = 500195327; + + // Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. + optional string name = 3373707; + + // Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS. + // Check the PerformanceProvisioningType enum for the list of possible values. + optional string performance_provisioning_type = 468553469; + + // Size, in GiB, of the storage pool. + optional int64 pool_provisioned_capacity_gb = 478537682; + + // Provisioned IOPS of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced. + optional int64 pool_provisioned_iops = 112092311; + + // Provisioned throughput of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced or hyperdisk-throughput. + optional int64 pool_provisioned_throughput = 169215640; + + // [Output Only] Status information for the storage pool resource. + optional StoragePoolResourceStatus resource_status = 249429315; + + // [Output Only] Server-defined fully-qualified URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Server-defined URL for this resource's resource id. + optional string self_link_with_id = 44520962; + + // [Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. + // Check the State enum for the list of possible values. + optional string state = 109757585; + + // [Output Only] Status information for the storage pool resource. + optional StoragePoolResourceStatus status = 181260274; + + // Type of the storage pool. + optional string storage_pool_type = 285999289; + + // [Output Only] URL of the zone where the storage pool resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. + optional string zone = 3744684; + +} + +// +message StoragePoolAggregatedList { + optional string etag = 3123477; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of StoragePoolsScopedList resources. + map items = 100526016; + + // [Output Only] Type of resource. Always compute#storagePoolAggregatedList for aggregated lists of storage pools. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Unreachable resources. + repeated string unreachables = 243372063; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// +message StoragePoolDisk { + // [Output Only] The disk status. + enum Status { + // A value indicating that the enum field is not set. + UNDEFINED_STATUS = 0; + + // Disk is provisioning + CREATING = 455564985; + + // Disk is deleting. + DELETING = 528602024; + + // Disk creation failed. + FAILED = 455706685; + + // Disk is ready for use. + READY = 77848963; + + // Source data is being copied into the disk. + RESTORING = 404263851; + + // Disk is currently unavailable and cannot be accessed, attached or detached. + UNAVAILABLE = 413756464; + + } + + // [Output Only] Instances this disk is attached to. + repeated string attached_instances = 65255843; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 30525366; + + // [Output Only] The URL of the disk. + optional string disk = 3083677; + + // [Output Only] The name of the disk. + optional string name = 3373707; + + // [Output Only] The number of IOPS provisioned for the disk. + optional int64 provisioned_iops = 186769108; + + // [Output Only] The throughput provisioned for the disk. + optional int64 provisioned_throughput = 526524181; + + // [Output Only] Resource policies applied to disk for automatic snapshot creations. + repeated string resource_policies = 22220385; + + // [Output Only] The disk size, in GB. + optional int64 size_gb = 494929369; + + // [Output Only] The disk status. + // Check the Status enum for the list of possible values. + optional string status = 181260274; + + // [Output Only] The disk type. + optional string type = 3575610; + + // [Output Only] Amount of disk space used. + optional int64 used_bytes = 231640425; + +} + +// A list of StoragePool resources. +message StoragePoolList { + optional string etag = 3123477; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of StoragePool resources. + repeated StoragePool items = 100526016; + + // [Output Only] Type of resource. Always compute#storagePoolList for lists of storagePools. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder + repeated string unreachables = 243372063; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// +message StoragePoolListDisks { + optional string etag = 3123477; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of StoragePoolDisk resources. + repeated StoragePoolDisk items = 100526016; + + // [Output Only] Type of resource. Always compute#storagePoolListDisks for lists of disks in a storagePool. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder + repeated string unreachables = 243372063; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// [Output Only] Contains output only fields. +message StoragePoolResourceStatus { + // [Output Only] Number of disks used. + optional int64 disk_count = 182933485; + + // [Output Only] Timestamp of the last successful resize in RFC3339 text format. + optional string last_resize_timestamp = 500825556; + + // [Output Only] Maximum allowed aggregate disk size in gigabytes. + optional int64 max_total_provisioned_disk_capacity_gb = 165818207; + + // [Output Only] Space used by data stored in disks within the storage pool (in bytes). This will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks. + optional int64 pool_used_capacity_bytes = 510407877; + + // Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity. + optional int64 pool_used_iops = 99558536; + + // [Output Only] Sum of all the disks' provisioned throughput in MB/s. + optional int64 pool_used_throughput = 206130633; + + // [Output Only] Amount of data written into the pool, before it is compacted. + optional int64 pool_user_written_bytes = 228964050; + + // [Output Only] Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity. + optional int64 total_provisioned_disk_capacity_gb = 520930980; + + // [Output Only] Sum of all the disks' provisioned IOPS. + optional int64 total_provisioned_disk_iops = 32812549; + + // [Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some amount that is allowed per disk that is not counted towards pool's throughput capacity. + optional int64 total_provisioned_disk_throughput = 447677830; + +} + +// +message StoragePoolType { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 30525366; + + // [Output Only] The deprecation status associated with this storage pool type. + optional DeprecationStatus deprecated = 515138995; + + // [Output Only] An optional description of this resource. + optional string description = 422937596; + + // [Output Only] The unique identifier for the resource. This identifier is defined by the server. + optional uint64 id = 3355; + + // [Output Only] Type of the resource. Always compute#storagePoolType for storage pool types. + optional string kind = 3292052; + + // [Output Only] Maximum storage pool size in GB. + optional int64 max_pool_provisioned_capacity_gb = 182139085; + + // [Output Only] Maximum provisioned IOPS. + optional int64 max_pool_provisioned_iops = 515270652; + + // [Output Only] Maximum provisioned throughput. + optional int64 max_pool_provisioned_throughput = 228928061; + + // [Output Only] Minimum storage pool size in GB. + optional int64 min_pool_provisioned_capacity_gb = 191022751; + + // [Output Only] Minimum provisioned IOPS. + optional int64 min_pool_provisioned_iops = 416473706; + + // [Output Only] Minimum provisioned throughput. + optional int64 min_pool_provisioned_throughput = 367761963; + + // [Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb instead. + optional int64 min_size_gb = 385278188; + + // [Output Only] Name of the resource. + optional string name = 3373707; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 456214797; + + // [Output Only] Server-defined URL for this resource with the resource id. + optional string self_link_with_id = 44520962; + + // [Output Only] The list of disk types supported in this storage pool type. + repeated string supported_disk_types = 150587272; + + // [Output Only] URL of the zone where the storage pool type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. + optional string zone = 3744684; + +} + +// +message StoragePoolTypeAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of StoragePoolTypesScopedList resources. + map items = 100526016; + + // [Output Only] Type of resource. Always compute#storagePoolTypeAggregatedList . + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// Contains a list of storage pool types. +message StoragePoolTypeList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 3355; + + // A list of StoragePoolType resources. + repeated StoragePoolType items = 100526016; + + // [Output Only] Type of resource. Always compute#storagePoolTypeList for storage pool types. + optional string kind = 3292052; + + // [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. + optional string next_page_token = 79797525; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 456214797; + + // [Output Only] Informational warning message. + optional Warning warning = 50704284; + +} + +// +message StoragePoolTypesScopedList { + // [Output Only] A list of storage pool types contained in this scope. + repeated StoragePoolType storage_pool_types = 276043482; + + // [Output Only] Informational warning which replaces the list of storage pool types when the list is empty. + optional Warning warning = 50704284; + +} + +// +message StoragePoolsScopedList { + // [Output Only] A list of storage pool contained in this scope. + repeated StoragePool storage_pools = 437258515; + + // [Output Only] Informational warning which replaces the list of storage pool when the list is empty. + optional Warning warning = 50704284; + +} + // Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network. message Subnetwork { // The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack. @@ -31270,6 +33061,22 @@ message TestIamPermissionsInstanceTemplateRequest { } +// A request message for InstantSnapshots.TestIamPermissions. See the method description for details. +message TestIamPermissionsInstantSnapshotRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + TestPermissionsRequest test_permissions_request_resource = 439214758 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for LicenseCodes.TestIamPermissions. See the method description for details. message TestIamPermissionsLicenseCodeRequest { // Project ID for this request. @@ -31434,6 +33241,22 @@ message TestIamPermissionsRegionDiskRequest { } +// A request message for RegionInstantSnapshots.TestIamPermissions. See the method description for details. +message TestIamPermissionsRegionInstantSnapshotRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // The name of the region for this request. + string region = 138946292 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + TestPermissionsRequest test_permissions_request_resource = 439214758 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for RegionNetworkFirewallPolicies.TestIamPermissions. See the method description for details. message TestIamPermissionsRegionNetworkFirewallPolicyRequest { // Project ID for this request. @@ -31511,6 +33334,22 @@ message TestIamPermissionsSnapshotRequest { } +// A request message for StoragePools.TestIamPermissions. See the method description for details. +message TestIamPermissionsStoragePoolRequest { + // Project ID for this request. + string project = 227560217 [(google.api.field_behavior) = REQUIRED]; + + // Name or id of the resource for this request. + string resource = 195806222 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + TestPermissionsRequest test_permissions_request_resource = 439214758 [(google.api.field_behavior) = REQUIRED]; + + // The name of the zone for this request. + string zone = 3744684 [(google.api.field_behavior) = REQUIRED]; + +} + // A request message for Subnetworks.TestIamPermissions. See the method description for details. message TestIamPermissionsSubnetworkRequest { // Project ID for this request. @@ -32199,6 +34038,34 @@ message UpdateShieldedInstanceConfigInstanceRequest { } +// A request message for StoragePools.Update. See the method description for details. +message UpdateStoragePoolRequest { + // Project ID for this request. + string project = 227560217 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project" + ]; + + // 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). + optional string request_id = 37109963; + + // The storagePool name for this request. + string storage_pool = 360473440 [(google.api.field_behavior) = REQUIRED]; + + // The body resource for this request + StoragePool storage_pool_resource = 157179405 [(google.api.field_behavior) = REQUIRED]; + + // update_mask indicates fields to be updated as part of this request. + optional string update_mask = 500079778; + + // The name of the zone for this request. + string zone = 3744684 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone" + ]; + +} + // A request message for UrlMaps.Update. See the method description for details. message UpdateUrlMapRequest { // Project ID for this request. @@ -32226,7 +34093,7 @@ message UrlMap { // defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. optional HttpRouteAction default_route_action = 378919466; - // The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. + // The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. If defaultService is specified, then set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService Don't set both. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. optional string default_service = 370242231; // When none of the specified hostRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. @@ -32678,6 +34545,19 @@ message VmEndpointNatMappingsList { // Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN solution that lets you securely connect your on-premises network to your Google Cloud Virtual Private Cloud network through an IPsec VPN connection in a single region. For more information about Cloud HA VPN solutions, see Cloud VPN topologies . message VpnGateway { + // The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. + enum GatewayIpVersion { + // A value indicating that the enum field is not set. + UNDEFINED_GATEWAY_IP_VERSION = 0; + + // Every HA-VPN gateway interface is configured with an IPv4 address. + IPV4 = 2254341; + + // Every HA-VPN gateway interface is configured with an IPv6 address. + IPV6 = 2254343; + + } + // The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used. enum StackType { // A value indicating that the enum field is not set. @@ -32697,6 +34577,10 @@ message VpnGateway { // An optional description of this resource. Provide this property when you create the resource. optional string description = 422937596; + // The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. + // Check the GatewayIpVersion enum for the list of possible values. + optional string gateway_ip_version = 65074843; + // [Output Only] The unique identifier for the resource. This identifier is defined by the server. optional uint64 id = 3355; @@ -32858,6 +34742,9 @@ message VpnGatewayVpnGatewayInterface { // [Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. optional string ip_address = 406272220; + // [Output Only] IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + optional string ipv6_address = 341563804; + } // @@ -33527,7 +35414,7 @@ service AcceleratorTypes { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of accelerator types. + // Retrieves an aggregated list of accelerator types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListAcceleratorTypesRequest) returns (AcceleratorTypeAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/acceleratorTypes" @@ -33562,7 +35449,7 @@ service Addresses { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of addresses. + // Retrieves an aggregated list of addresses. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListAddressesRequest) returns (AddressAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/addresses" @@ -33636,7 +35523,7 @@ service Autoscalers { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of autoscalers. + // Retrieves an aggregated list of autoscalers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListAutoscalersRequest) returns (AutoscalerAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/autoscalers" @@ -33841,7 +35728,7 @@ service BackendServices { option (google.cloud.operation_service) = "GlobalOperations"; } - // Retrieves the list of all BackendService resources, regional and global, available to the specified project. + // Retrieves the list of all BackendService resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListBackendServicesRequest) returns (BackendServiceAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/backendServices" @@ -33988,7 +35875,7 @@ service DiskTypes { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of disk types. + // Retrieves an aggregated list of disk types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListDiskTypesRequest) returns (DiskTypeAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/diskTypes" @@ -34033,7 +35920,7 @@ service Disks { option (google.cloud.operation_service) = "ZoneOperations"; } - // Retrieves an aggregated list of persistent disks. + // Retrieves an aggregated list of persistent disks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListDisksRequest) returns (DiskAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/disks" @@ -34505,7 +36392,7 @@ service ForwardingRules { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of forwarding rules. + // Retrieves an aggregated list of forwarding rules. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListForwardingRulesRequest) returns (ForwardingRuleAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/forwardingRules" @@ -34805,7 +36692,7 @@ service GlobalOperations { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of all operations. + // Retrieves an aggregated list of all operations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListGlobalOperationsRequest) returns (OperationAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/operations" @@ -34949,7 +36836,7 @@ service HealthChecks { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. + // Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListHealthChecksRequest) returns (HealthChecksAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/healthChecks" @@ -35144,6 +37031,61 @@ service Images { } +// The InstanceGroupManagerResizeRequests API. +service InstanceGroupManagerResizeRequests { + option (google.api.default_host) = + "compute.googleapis.com"; + + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/cloud-platform"; + + // Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue. + rpc Cancel(CancelInstanceGroupManagerResizeRequestRequest) returns (Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}/cancel" + }; + option (google.api.method_signature) = "project,zone,instance_group_manager,resize_request"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously. + rpc Delete(DeleteInstanceGroupManagerResizeRequestRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}" + }; + option (google.api.method_signature) = "project,zone,instance_group_manager,resize_request"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Returns all of the details about the specified resize request. + rpc Get(GetInstanceGroupManagerResizeRequestRequest) returns (InstanceGroupManagerResizeRequest) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}" + }; + option (google.api.method_signature) = "project,zone,instance_group_manager,resize_request"; + } + + // Creates a new resize request that starts provisioning VMs immediately or queues VM creation. + rpc Insert(InsertInstanceGroupManagerResizeRequestRequest) returns (Operation) { + option (google.api.http) = { + body: "instance_group_manager_resize_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests" + }; + option (google.api.method_signature) = "project,zone,instance_group_manager,instance_group_manager_resize_request_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Retrieves a list of resize requests that are contained in the managed instance group. + rpc List(ListInstanceGroupManagerResizeRequestsRequest) returns (InstanceGroupManagerResizeRequestsListResponse) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests" + }; + option (google.api.method_signature) = "project,zone,instance_group_manager"; + } + +} + // The InstanceGroupManagers API. service InstanceGroupManagers { option (google.api.default_host) = @@ -35163,7 +37105,7 @@ service InstanceGroupManagers { option (google.cloud.operation_service) = "ZoneOperations"; } - // Retrieves the list of managed instance groups and groups them by zone. + // Retrieves the list of managed instance groups and groups them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListInstanceGroupManagersRequest) returns (InstanceGroupManagerAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/instanceGroupManagers" @@ -35360,7 +37302,7 @@ service InstanceGroups { option (google.cloud.operation_service) = "ZoneOperations"; } - // Retrieves the list of instance groups and sorts them by zone. + // Retrieves the list of instance groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListInstanceGroupsRequest) returns (InstanceGroupAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/instanceGroups" @@ -35434,6 +37376,35 @@ service InstanceGroups { } +// The InstanceSettings API. +service InstanceSettingsService { + option (google.api.default_host) = + "compute.googleapis.com"; + + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/cloud-platform"; + + // Get Instance settings. + rpc Get(GetInstanceSettingRequest) returns (InstanceSettings) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/instanceSettings" + }; + option (google.api.method_signature) = "project,zone"; + } + + // Patch Instance settings + rpc Patch(PatchInstanceSettingRequest) returns (Operation) { + option (google.api.http) = { + body: "instance_settings_resource" + patch: "/compute/v1/projects/{project}/zones/{zone}/instanceSettings" + }; + option (google.api.method_signature) = "project,zone,instance_settings_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + +} + // The InstanceTemplates API. service InstanceTemplates { option (google.api.default_host) = @@ -35443,7 +37414,7 @@ service InstanceTemplates { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. + // Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListInstanceTemplatesRequest) returns (InstanceTemplateAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/instanceTemplates" @@ -35543,7 +37514,7 @@ service Instances { option (google.cloud.operation_service) = "ZoneOperations"; } - // Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. + // Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListInstancesRequest) returns (InstanceAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/instances" @@ -35969,6 +37940,96 @@ service Instances { } +// The InstantSnapshots API. +service InstantSnapshots { + option (google.api.default_host) = + "compute.googleapis.com"; + + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/cloud-platform"; + + // Retrieves an aggregated list of instantSnapshots. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. + rpc AggregatedList(AggregatedListInstantSnapshotsRequest) returns (InstantSnapshotAggregatedList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/aggregated/instantSnapshots" + }; + option (google.api.method_signature) = "project"; + } + + // Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots. + rpc Delete(DeleteInstantSnapshotRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}" + }; + option (google.api.method_signature) = "project,zone,instant_snapshot"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Returns the specified InstantSnapshot resource in the specified zone. + rpc Get(GetInstantSnapshotRequest) returns (InstantSnapshot) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}" + }; + option (google.api.method_signature) = "project,zone,instant_snapshot"; + } + + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyInstantSnapshotRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,zone,resource"; + } + + // Creates an instant snapshot in the specified zone. + rpc Insert(InsertInstantSnapshotRequest) returns (Operation) { + option (google.api.http) = { + body: "instant_snapshot_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots" + }; + option (google.api.method_signature) = "project,zone,instant_snapshot_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Retrieves the list of InstantSnapshot resources contained within the specified zone. + rpc List(ListInstantSnapshotsRequest) returns (InstantSnapshotList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots" + }; + option (google.api.method_signature) = "project,zone"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyInstantSnapshotRequest) returns (Policy) { + option (google.api.http) = { + body: "zone_set_policy_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,zone,resource,zone_set_policy_request_resource"; + } + + // Sets the labels on a instantSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsInstantSnapshotRequest) returns (Operation) { + option (google.api.http) = { + body: "zone_set_labels_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,zone,resource,zone_set_labels_request_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Returns permissions that a caller has on the specified resource. + rpc TestIamPermissions(TestIamPermissionsInstantSnapshotRequest) returns (TestPermissionsResponse) { + option (google.api.http) = { + body: "test_permissions_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions" + }; + option (google.api.method_signature) = "project,zone,resource,test_permissions_request_resource"; + } + +} + // The InterconnectAttachments API. service InterconnectAttachments { option (google.api.default_host) = @@ -35978,7 +38039,7 @@ service InterconnectAttachments { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of interconnect attachments. + // Retrieves an aggregated list of interconnect attachments. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListInterconnectAttachmentsRequest) returns (InterconnectAttachmentAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/interconnectAttachments" @@ -36364,7 +38425,7 @@ service MachineTypes { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of machine types. + // Retrieves an aggregated list of machine types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListMachineTypesRequest) returns (MachineTypeAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/machineTypes" @@ -36399,7 +38460,7 @@ service NetworkAttachments { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. + // Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListNetworkAttachmentsRequest) returns (NetworkAttachmentAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/networkAttachments" @@ -36489,7 +38550,7 @@ service NetworkEdgeSecurityServices { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. + // Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListNetworkEdgeSecurityServicesRequest) returns (NetworkEdgeSecurityServiceAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/networkEdgeSecurityServices" @@ -36545,7 +38606,7 @@ service NetworkEndpointGroups { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of network endpoint groups and sorts them by zone. + // Retrieves the list of network endpoint groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListNetworkEndpointGroupsRequest) returns (NetworkEndpointGroupAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/networkEndpointGroups" @@ -36913,7 +38974,7 @@ service NodeGroups { option (google.cloud.operation_service) = "ZoneOperations"; } - // Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. + // Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListNodeGroupsRequest) returns (NodeGroupAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/nodeGroups" @@ -36992,6 +39053,16 @@ service NodeGroups { option (google.cloud.operation_service) = "ZoneOperations"; } + // Perform maintenance on a subset of nodes in the node group. + rpc PerformMaintenance(PerformMaintenanceNodeGroupRequest) returns (Operation) { + option (google.api.http) = { + body: "node_groups_perform_maintenance_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/performMaintenance" + }; + option (google.api.method_signature) = "project,zone,node_group,node_groups_perform_maintenance_request_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + // Sets the access control policy on the specified resource. Replaces any existing policy. rpc SetIamPolicy(SetIamPolicyNodeGroupRequest) returns (Policy) { option (google.api.http) = { @@ -37041,7 +39112,7 @@ service NodeTemplates { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of node templates. + // Retrieves an aggregated list of node templates. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListNodeTemplatesRequest) returns (NodeTemplateAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/nodeTemplates" @@ -37122,7 +39193,7 @@ service NodeTypes { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of node types. + // Retrieves an aggregated list of node types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListNodeTypesRequest) returns (NodeTypeAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/nodeTypes" @@ -37157,7 +39228,7 @@ service PacketMirrorings { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of packetMirrorings. + // Retrieves an aggregated list of packetMirrorings. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListPacketMirroringsRequest) returns (PacketMirroringAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/packetMirrorings" @@ -37321,6 +39392,16 @@ service Projects { option (google.cloud.operation_service) = "GlobalOperations"; } + // Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the billing account of the project must be subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more information. + rpc SetCloudArmorTier(SetCloudArmorTierProjectRequest) returns (Operation) { + option (google.api.http) = { + body: "projects_set_cloud_armor_tier_request_resource" + post: "/compute/v1/projects/{project}/setCloudArmorTier" + }; + option (google.api.method_signature) = "project,projects_set_cloud_armor_tier_request_resource"; + option (google.cloud.operation_service) = "GlobalOperations"; + } + // Sets metadata common to all instances within the specified project using the data included in the request. rpc SetCommonInstanceMetadata(SetCommonInstanceMetadataProjectRequest) returns (Operation) { option (google.api.http) = { @@ -37436,7 +39517,7 @@ service PublicDelegatedPrefixes { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. + // Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListPublicDelegatedPrefixesRequest) returns (PublicDelegatedPrefixAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/publicDelegatedPrefixes" @@ -37703,7 +39784,7 @@ service RegionCommitments { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of commitments by region. + // Retrieves an aggregated list of commitments by region. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListRegionCommitmentsRequest) returns (CommitmentAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/commitments" @@ -38372,6 +40453,88 @@ service RegionInstances { } +// The RegionInstantSnapshots API. +service RegionInstantSnapshots { + option (google.api.default_host) = + "compute.googleapis.com"; + + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/cloud-platform"; + + // Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots. + rpc Delete(DeleteRegionInstantSnapshotRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}" + }; + option (google.api.method_signature) = "project,region,instant_snapshot"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Returns the specified InstantSnapshot resource in the specified region. + rpc Get(GetRegionInstantSnapshotRequest) returns (InstantSnapshot) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}" + }; + option (google.api.method_signature) = "project,region,instant_snapshot"; + } + + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyRegionInstantSnapshotRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,region,resource"; + } + + // Creates an instant snapshot in the specified region. + rpc Insert(InsertRegionInstantSnapshotRequest) returns (Operation) { + option (google.api.http) = { + body: "instant_snapshot_resource" + post: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots" + }; + option (google.api.method_signature) = "project,region,instant_snapshot_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Retrieves the list of InstantSnapshot resources contained within the specified region. + rpc List(ListRegionInstantSnapshotsRequest) returns (InstantSnapshotList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots" + }; + option (google.api.method_signature) = "project,region"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyRegionInstantSnapshotRequest) returns (Policy) { + option (google.api.http) = { + body: "region_set_policy_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,region,resource,region_set_policy_request_resource"; + } + + // Sets the labels on a instantSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation. + rpc SetLabels(SetLabelsRegionInstantSnapshotRequest) returns (Operation) { + option (google.api.http) = { + body: "region_set_labels_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels" + }; + option (google.api.method_signature) = "project,region,resource,region_set_labels_request_resource"; + option (google.cloud.operation_service) = "RegionOperations"; + } + + // Returns permissions that a caller has on the specified resource. + rpc TestIamPermissions(TestIamPermissionsRegionInstantSnapshotRequest) returns (TestPermissionsResponse) { + option (google.api.http) = { + body: "test_permissions_request_resource" + post: "/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions" + }; + option (google.api.method_signature) = "project,region,resource,test_permissions_request_resource"; + } + +} + // The RegionNetworkEndpointGroups API. service RegionNetworkEndpointGroups { option (google.api.default_host) = @@ -39212,7 +41375,7 @@ service Reservations { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of reservations. + // Retrieves an aggregated list of reservations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListReservationsRequest) returns (ReservationAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/reservations" @@ -39312,7 +41475,7 @@ service ResourcePolicies { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of resource policies. + // Retrieves an aggregated list of resource policies. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListResourcePoliciesRequest) returns (ResourcePolicyAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/resourcePolicies" @@ -39402,7 +41565,7 @@ service Routers { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of routers. + // Retrieves an aggregated list of routers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListRoutersRequest) returns (RouterAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/routers" @@ -39565,7 +41728,7 @@ service SecurityPolicies { option (google.cloud.operation_service) = "GlobalOperations"; } - // Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. + // Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListSecurityPoliciesRequest) returns (SecurityPoliciesAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/securityPolicies" @@ -39674,7 +41837,7 @@ service ServiceAttachments { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. + // Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListServiceAttachmentsRequest) returns (ServiceAttachmentAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/serviceAttachments" @@ -39875,7 +42038,7 @@ service SslCertificates { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. + // Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListSslCertificatesRequest) returns (SslCertificateAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/sslCertificates" @@ -39929,7 +42092,7 @@ service SslPolicies { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. + // Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListSslPoliciesRequest) returns (SslPoliciesAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/sslPolicies" @@ -39992,6 +42155,140 @@ service SslPolicies { } +// The StoragePoolTypes API. +service StoragePoolTypes { + option (google.api.default_host) = + "compute.googleapis.com"; + + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/compute.readonly," + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/cloud-platform"; + + // Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. + rpc AggregatedList(AggregatedListStoragePoolTypesRequest) returns (StoragePoolTypeAggregatedList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/aggregated/storagePoolTypes" + }; + option (google.api.method_signature) = "project"; + } + + // Returns the specified storage pool type. + rpc Get(GetStoragePoolTypeRequest) returns (StoragePoolType) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/storagePoolTypes/{storage_pool_type}" + }; + option (google.api.method_signature) = "project,zone,storage_pool_type"; + } + + // Retrieves a list of storage pool types available to the specified project. + rpc List(ListStoragePoolTypesRequest) returns (StoragePoolTypeList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/storagePoolTypes" + }; + option (google.api.method_signature) = "project,zone"; + } + +} + +// The StoragePools API. +service StoragePools { + option (google.api.default_host) = + "compute.googleapis.com"; + + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/cloud-platform"; + + // Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. + rpc AggregatedList(AggregatedListStoragePoolsRequest) returns (StoragePoolAggregatedList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/aggregated/storagePools" + }; + option (google.api.method_signature) = "project"; + } + + // Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots. + rpc Delete(DeleteStoragePoolRequest) returns (Operation) { + option (google.api.http) = { + delete: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}" + }; + option (google.api.method_signature) = "project,zone,storage_pool"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Returns a specified storage pool. Gets a list of available storage pools by making a list() request. + rpc Get(GetStoragePoolRequest) returns (StoragePool) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}" + }; + option (google.api.method_signature) = "project,zone,storage_pool"; + } + + // Gets the access control policy for a resource. May be empty if no such policy or resource exists. + rpc GetIamPolicy(GetIamPolicyStoragePoolRequest) returns (Policy) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy" + }; + option (google.api.method_signature) = "project,zone,resource"; + } + + // Creates a storage pool in the specified project using the data in the request. + rpc Insert(InsertStoragePoolRequest) returns (Operation) { + option (google.api.http) = { + body: "storage_pool_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/storagePools" + }; + option (google.api.method_signature) = "project,zone,storage_pool_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + + // Retrieves a list of storage pools contained within the specified zone. + rpc List(ListStoragePoolsRequest) returns (StoragePoolList) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/storagePools" + }; + option (google.api.method_signature) = "project,zone"; + } + + // Lists the disks in a specified storage pool. + rpc ListDisks(ListDisksStoragePoolsRequest) returns (StoragePoolListDisks) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}/listDisks" + }; + option (google.api.method_signature) = "project,zone,storage_pool"; + } + + // Sets the access control policy on the specified resource. Replaces any existing policy. + rpc SetIamPolicy(SetIamPolicyStoragePoolRequest) returns (Policy) { + option (google.api.http) = { + body: "zone_set_policy_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy" + }; + option (google.api.method_signature) = "project,zone,resource,zone_set_policy_request_resource"; + } + + // Returns permissions that a caller has on the specified resource. + rpc TestIamPermissions(TestIamPermissionsStoragePoolRequest) returns (TestPermissionsResponse) { + option (google.api.http) = { + body: "test_permissions_request_resource" + post: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions" + }; + option (google.api.method_signature) = "project,zone,resource,test_permissions_request_resource"; + } + + // Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: size_tb and provisioned_iops. + rpc Update(UpdateStoragePoolRequest) returns (Operation) { + option (google.api.http) = { + body: "storage_pool_resource" + patch: "/compute/v1/projects/{project}/zones/{zone}/storagePools/{storage_pool}" + }; + option (google.api.method_signature) = "project,zone,storage_pool,storage_pool_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + +} + // The Subnetworks API. service Subnetworks { option (google.api.default_host) = @@ -40001,7 +42298,7 @@ service Subnetworks { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of subnetworks. + // Retrieves an aggregated list of subnetworks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListSubnetworksRequest) returns (SubnetworkAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/subnetworks" @@ -40175,7 +42472,7 @@ service TargetHttpProxies { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. + // Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListTargetHttpProxiesRequest) returns (TargetHttpProxyAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/targetHttpProxies" @@ -40249,7 +42546,7 @@ service TargetHttpsProxies { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. + // Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListTargetHttpsProxiesRequest) returns (TargetHttpsProxyAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/targetHttpsProxies" @@ -40363,7 +42660,7 @@ service TargetInstances { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of target instances. + // Retrieves an aggregated list of target instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListTargetInstancesRequest) returns (TargetInstanceAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/targetInstances" @@ -40447,7 +42744,7 @@ service TargetPools { option (google.cloud.operation_service) = "RegionOperations"; } - // Retrieves an aggregated list of target pools. + // Retrieves an aggregated list of target pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListTargetPoolsRequest) returns (TargetPoolAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/targetPools" @@ -40646,7 +42943,7 @@ service TargetTcpProxies { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. + // Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListTargetTcpProxiesRequest) returns (TargetTcpProxyAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/targetTcpProxies" @@ -40720,7 +43017,7 @@ service TargetVpnGateways { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of target VPN gateways. + // Retrieves an aggregated list of target VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListTargetVpnGatewaysRequest) returns (TargetVpnGatewayAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/targetVpnGateways" @@ -40784,7 +43081,7 @@ service UrlMaps { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves the list of all UrlMap resources, regional and global, available to the specified project. + // Retrieves the list of all UrlMap resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListUrlMapsRequest) returns (UrlMapsAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/urlMaps" @@ -40877,7 +43174,7 @@ service VpnGateways { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of VPN gateways. + // Retrieves an aggregated list of VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListVpnGatewaysRequest) returns (VpnGatewayAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/vpnGateways" @@ -40958,7 +43255,7 @@ service VpnTunnels { "https://www.googleapis.com/auth/compute," "https://www.googleapis.com/auth/cloud-platform"; - // Retrieves an aggregated list of VPN tunnels. + // Retrieves an aggregated list of VPN tunnels. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`. rpc AggregatedList(AggregatedListVpnTunnelsRequest) returns (VpnTunnelAggregatedList) { option (google.api.http) = { get: "/compute/v1/projects/{project}/aggregated/vpnTunnels" diff --git a/third_party/googleapis/google/cloud/compute/v1/compute.v1.json b/third_party/googleapis/google/cloud/compute/v1/compute.v1.json index 0e49aa691..0282064e6 100644 --- a/third_party/googleapis/google/cloud/compute/v1/compute.v1.json +++ b/third_party/googleapis/google/cloud/compute/v1/compute.v1.json @@ -1,39950 +1,37438 @@ { - "title": "Compute Engine API", - "id": "compute:v1", - "kind": "discovery#restDescription", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." - }, - "https://www.googleapis.com/auth/compute": { - "description": "View and manage your Google Compute Engine resources" - }, - "https://www.googleapis.com/auth/compute.readonly": { - "description": "View your Google Compute Engine resources" - }, - "https://www.googleapis.com/auth/devstorage.full_control": { - "description": "Manage your data and permissions in Cloud Storage and see the email address for your Google Account" - }, - "https://www.googleapis.com/auth/devstorage.read_only": { - "description": "View your data in Google Cloud Storage" - }, - "https://www.googleapis.com/auth/devstorage.read_write": { - "description": "Manage your data in Cloud Storage and see the email address of your Google Account" - } - } + "parameters": { + "access_token": { + "type": "string", + "description": "OAuth access token.", + "location": "query" + }, + "alt": { + "type": "string", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "location": "query" + }, + "callback": { + "type": "string", + "description": "JSONP", + "location": "query" + }, + "fields": { + "type": "string", + "description": "Selector specifying which fields to include in a partial response.", + "location": "query" + }, + "key": { + "type": "string", + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query" + }, + "oauth_token": { + "type": "string", + "description": "OAuth 2.0 token for the current user.", + "location": "query" + }, + "prettyPrint": { + "type": "boolean", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "location": "query" + }, + "quotaUser": { + "type": "string", + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", + "location": "query" + }, + "upload_protocol": { + "type": "string", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query" + }, + "uploadType": { + "type": "string", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query" + }, + "userIp": { + "type": "string", + "description": "Legacy name for parameter that has been superseded by `quotaUser`.", + "location": "query" + }, + "$.xgafv": { + "type": "string", + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" } }, - "description": "Creates and runs virtual machines on Google Cloud Platform. ", - "schemas": { - "AcceleratorTypeList": { - "id": "AcceleratorTypeList", - "description": "Contains a list of accelerator types.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types.", - "default": "compute#acceleratorTypeList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of AcceleratorType resources.", - "type": "array", - "items": { - "$ref": "AcceleratorType" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "protocol": "rest", + "discoveryVersion": "v1", + "resources": { + "acceleratorTypes": { + "methods": { + "list": { + "id": "compute.acceleratorTypes.list", + "path": "projects/{project}/zones/{zone}/acceleratorTypes", + "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "AcceleratorType": { - "id": "AcceleratorType", - "description": "Represents an Accelerator Type resource. Google Cloud Platform provides graphics processing units (accelerators) that you can add to VM instances to improve or accelerate performance when working with intensive workloads. For more information, read GPUs on Compute Engine.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.", - "default": "compute#acceleratorType", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" - }, - "deprecated": { - "description": "[Output Only] The deprecation status associated with this accelerator type.", - "$ref": "DeprecationStatus" - }, - "zone": { - "description": "[Output Only] The name of the zone where the accelerator type resides, such as us-central1-a. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined, fully qualified URL for this resource.", - "type": "string" - }, - "maximumCardsPerInstance": { - "description": "[Output Only] Maximum number of accelerator cards allowed per instance.", - "type": "integer", - "format": "int32" - } - } - }, - "DeprecationStatus": { - "id": "DeprecationStatus", - "description": "Deprecation status for a public resource.", - "type": "object", - "properties": { - "state": { - "description": "The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "ACTIVE", - "DELETED", - "DEPRECATED", - "OBSOLETE" - ] - }, - "replacement": { - "description": "The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.", - "type": "string" - }, - "deprecated": { - "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.", - "type": "string" + "response": { + "$ref": "AcceleratorTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of accelerator types that are available to the specified project." }, - "obsolete": { - "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.", - "type": "string" + "aggregatedList": { + "id": "compute.acceleratorTypes.aggregatedList", + "path": "projects/{project}/aggregated/acceleratorTypes", + "flatPath": "projects/{project}/aggregated/acceleratorTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "AcceleratorTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of accelerator types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "deleted": { - "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.", - "type": "string" + "get": { + "id": "compute.acceleratorTypes.get", + "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", + "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", + "httpMethod": "GET", + "parameters": { + "acceleratorType": { + "description": "Name of the accelerator type to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "acceleratorType" + ], + "response": { + "$ref": "AcceleratorType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified accelerator type." } } }, - "AcceleratorTypeAggregatedList": { - "id": "AcceleratorTypeAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.", - "default": "compute#acceleratorTypeAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of AcceleratorTypesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of accelerator types.", - "$ref": "AcceleratorTypesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "globalOperations": { + "methods": { + "list": { + "id": "compute.globalOperations.list", + "path": "projects/{project}/global/operations", + "flatPath": "projects/{project}/global/operations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of Operation resources contained within the specified project." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.globalOperations.aggregatedList", + "path": "projects/{project}/aggregated/operations", + "flatPath": "projects/{project}/aggregated/operations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "OperationAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of all operations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "AcceleratorTypesScopedList": { - "id": "AcceleratorTypesScopedList", - "type": "object", - "properties": { - "acceleratorTypes": { - "description": "[Output Only] A list of accelerator types contained in this scope.", - "type": "array", - "items": { - "$ref": "AcceleratorType" - } + "get": { + "id": "compute.globalOperations.get", + "path": "projects/{project}/global/operations/{operation}", + "flatPath": "projects/{project}/global/operations/{operation}", + "httpMethod": "GET", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the specified Operations resource." }, - "warning": { - "description": "[Output Only] An informational warning that appears when the accelerator types list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "wait": { + "id": "compute.globalOperations.wait", + "path": "projects/{project}/global/operations/{operation}/wait", + "flatPath": "projects/{project}/global/operations/{operation}/wait", + "httpMethod": "POST", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. " + }, + "delete": { + "id": "compute.globalOperations.delete", + "path": "projects/{project}/global/operations/{operation}", + "flatPath": "projects/{project}/global/operations/{operation}", + "httpMethod": "DELETE", + "parameters": { + "operation": { + "description": "Name of the Operations resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Operations resource." } } }, - "OperationList": { - "id": "OperationList", - "description": "Contains a list of Operation resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always `compute#operations` for Operations resource.", - "default": "compute#operationList", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "items": { - "description": "[Output Only] A list of Operation resources.", - "type": "array", - "items": { - "$ref": "Operation" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than `maxResults`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "globalOrganizationOperations": { + "methods": { + "list": { + "id": "compute.globalOrganizationOperations.list", + "path": "locations/global/operations", + "flatPath": "locations/global/operations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "parentId": { + "description": "Parent ID for this request.", + "location": "query", + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "Operation": { - "id": "Operation", - "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/v1/globalOperations) * [Regional](/compute/docs/reference/rest/v1/regionOperations) * [Zonal](/compute/docs/reference/rest/v1/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. Note that completed Operation resources have a limited retention period.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", - "default": "compute#operation", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the operation. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Deprecated] This field is deprecated.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the operation.", - "type": "string" - }, - "zone": { - "description": "[Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.", - "type": "string" - }, - "clientOperationId": { - "description": "[Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.", - "type": "string" - }, - "operationType": { - "description": "[Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.", - "type": "string" - }, - "targetLink": { - "description": "[Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.", - "type": "string" - }, - "targetId": { - "description": "[Output Only] The unique target ID, which identifies a specific incarnation of the target resource.", - "type": "string", - "format": "uint64" - }, - "status": { - "description": "[Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + }, + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "DONE", - "PENDING", - "RUNNING" - ] - }, - "statusMessage": { - "description": "[Output Only] An optional textual description of the current status of the operation.", - "type": "string" - }, - "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", - "type": "string" - }, - "progress": { - "description": "[Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.", - "type": "integer", - "format": "int32" - }, - "insertTime": { - "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", - "type": "string" - }, - "startTime": { - "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", - "type": "string" - }, - "endTime": { - "description": "[Output Only] The time that this operation was completed. This value is in RFC3339 text format.", - "type": "string" + "description": "Retrieves a list of Operation resources contained within the specified organization." }, - "error": { - "description": "[Output Only] If errors are generated during processing of the operation, this field will be populated.", - "type": "object", - "properties": { - "errors": { - "description": "[Output Only] The array of errors encountered while processing this operation.", - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] The error type identifier for this error.", - "type": "string" - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - }, - "message": { - "description": "[Output Only] An optional, human-readable error message.", - "type": "string" - }, - "errorDetails": { - "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", - "type": "array", - "items": { - "type": "object", - "properties": { - "errorInfo": { - "$ref": "ErrorInfo" - }, - "quotaInfo": { - "$ref": "QuotaExceededInfo" - }, - "help": { - "$ref": "Help" - }, - "localizedMessage": { - "$ref": "LocalizedMessage" - } - } - } - } - } - } + "get": { + "id": "compute.globalOrganizationOperations.get", + "path": "locations/global/operations/{operation}", + "flatPath": "locations/global/operations/{operation}", + "httpMethod": "GET", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "parentId": { + "description": "Parent ID for this request.", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request." }, - "warnings": { - "description": "[Output Only] If warning messages are generated during processing of the operation, this field will be populated.", - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } + "delete": { + "id": "compute.globalOrganizationOperations.delete", + "path": "locations/global/operations/{operation}", + "flatPath": "locations/global/operations/{operation}", + "httpMethod": "DELETE", + "parameters": { + "operation": { + "description": "Name of the Operations resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "parentId": { + "description": "Parent ID for this request.", + "location": "query", + "type": "string" } - } - }, - "httpErrorStatusCode": { - "description": "[Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found.", - "type": "integer", - "format": "int32" - }, - "httpErrorMessage": { - "description": "[Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.", - "type": "string" - }, - "description": { - "description": "[Output Only] A textual description of the operation, which is set when the operation is created.", - "type": "string" - }, - "operationGroupId": { - "description": "[Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.", - "type": "string" - }, - "setCommonInstanceMetadataOperationMetadata": { - "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state.", - "$ref": "SetCommonInstanceMetadataOperationMetadata" - }, - "instancesBulkInsertOperationMetadata": { - "$ref": "InstancesBulkInsertOperationMetadata" + }, + "parameterOrder": [ + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Operations resource." } } }, - "ErrorInfo": { - "id": "ErrorInfo", - "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }", - "type": "object", - "properties": { - "reason": { - "description": "The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.", - "type": "string" - }, - "domain": { - "description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".", - "type": "string" - }, - "metadatas": { - "description": "Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {\"instanceLimit\": \"100/request\"}, should be returned as, {\"instanceLimitPerRequest\": \"100\"}, if the client exceeds the number of instances that can be created in a single (batch) request.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "QuotaExceededInfo": { - "id": "QuotaExceededInfo", - "description": "Additional details for quota exceeded error for resource quota.", - "type": "object", - "properties": { - "metricName": { - "description": "The Compute Engine quota metric name.", - "type": "string" - }, - "limitName": { - "description": "The name of the quota limit.", - "type": "string" - }, - "dimensions": { - "description": "The map holding related quota dimensions.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "limit": { - "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", - "type": "number", - "format": "double" + "zoneOperations": { + "methods": { + "list": { + "id": "compute.zoneOperations.list", + "path": "projects/{project}/zones/{zone}/operations", + "flatPath": "projects/{project}/zones/{zone}/operations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of Operation resources contained within the specified zone." }, - "futureLimit": { - "description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", - "type": "number", - "format": "double" + "get": { + "id": "compute.zoneOperations.get", + "path": "projects/{project}/zones/{zone}/operations/{operation}", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the specified zone-specific Operations resource." }, - "rolloutStatus": { - "description": "Rollout status of the future quota limit.", - "type": "string", - "enumDescriptions": [ - "IN_PROGRESS - A rollout is in process which will change the limit value to future limit.", - "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value." + "wait": { + "id": "compute.zoneOperations.wait", + "path": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "httpMethod": "POST", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" ], - "enum": [ - "IN_PROGRESS", - "ROLLOUT_STATUS_UNSPECIFIED" - ] - } - } - }, - "Help": { - "id": "Help", - "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", - "type": "object", - "properties": { - "links": { - "description": "URL(s) pointing to additional information on handling the current error.", - "type": "array", - "items": { - "$ref": "HelpLink" - } - } - } - }, - "HelpLink": { - "id": "HelpLink", - "description": "Describes a URL link.", - "type": "object", - "properties": { - "description": { - "description": "Describes what the link offers.", - "type": "string" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method waits for no more than the 2 minutes and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. " }, - "url": { - "description": "The URL of the link.", - "type": "string" + "delete": { + "id": "compute.zoneOperations.delete", + "path": "projects/{project}/zones/{zone}/operations/{operation}", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "httpMethod": "DELETE", + "parameters": { + "operation": { + "description": "Name of the Operations resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified zone-specific Operations resource." } } }, - "LocalizedMessage": { - "id": "LocalizedMessage", - "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.", - "type": "object", - "properties": { - "locale": { - "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", - "type": "string" + "regionOperations": { + "methods": { + "list": { + "id": "compute.regionOperations.list", + "path": "projects/{project}/regions/{region}/operations", + "flatPath": "projects/{project}/regions/{region}/operations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of Operation resources contained within the specified region." }, - "message": { - "description": "The localized error message in the above locale.", - "type": "string" - } - } - }, - "SetCommonInstanceMetadataOperationMetadata": { - "id": "SetCommonInstanceMetadataOperationMetadata", - "type": "object", - "properties": { - "clientOperationId": { - "description": "[Output Only] The client operation id.", - "type": "string" + "get": { + "id": "compute.regionOperations.get", + "path": "projects/{project}/regions/{region}/operations/{operation}", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}", + "httpMethod": "GET", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the specified region-specific Operations resource." }, - "perLocationOperations": { - "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", - "type": "object", - "additionalProperties": { - "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" - } - } - } - }, - "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { - "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", - "type": "object", - "properties": { - "state": { - "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", - "type": "string", - "enumDescriptions": [ - "Operation not tracked in this location e.g. zone is marked as DOWN.", - "Operation has completed successfully.", - "Operation is in an error state.", - "Operation is confirmed to be in the location.", - "Operation is not yet confirmed to have been created in the location.", - "" + "wait": { + "id": "compute.regionOperations.wait", + "path": "projects/{project}/regions/{region}/operations/{operation}/wait", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait", + "httpMethod": "POST", + "parameters": { + "operation": { + "description": "Name of the Operations resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "operation" ], - "enum": [ - "ABANDONED", - "DONE", - "FAILED", - "PROPAGATED", - "PROPAGATING", - "UNSPECIFIED" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. " }, - "error": { - "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated.", - "$ref": "Status" + "delete": { + "id": "compute.regionOperations.delete", + "path": "projects/{project}/regions/{region}/operations/{operation}", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}", + "httpMethod": "DELETE", + "parameters": { + "operation": { + "description": "Name of the Operations resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified region-specific Operations resource." } } }, - "Status": { - "id": "Status", - "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", - "type": "object", - "properties": { - "code": { - "description": "The status code, which should be an enum value of google.rpc.Code.", - "type": "integer", - "format": "int32" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", - "type": "string" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "any", - "description": "Properties of the object. Contains field @type with type URL." + "globalAddresses": { + "methods": { + "list": { + "id": "compute.globalAddresses.list", + "path": "projects/{project}/global/addresses", + "flatPath": "projects/{project}/global/addresses", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "InstancesBulkInsertOperationMetadata": { - "id": "InstancesBulkInsertOperationMetadata", - "type": "object", - "properties": { - "perLocationStatus": { - "description": "Status information per location (location name is key). Example key: zones/us-central1-a", - "type": "object", - "additionalProperties": { - "$ref": "BulkInsertOperationStatus" - } - } - } - }, - "BulkInsertOperationStatus": { - "id": "BulkInsertOperationStatus", - "type": "object", - "properties": { - "status": { - "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", - "type": "string", - "enumDescriptions": [ - "Rolling forward - creating VMs.", - "Done", - "Rolling back - cleaning up after an error.", - "" + }, + "parameterOrder": [ + "project" ], - "enum": [ - "CREATING", - "DONE", - "ROLLING_BACK", - "STATUS_UNSPECIFIED" - ] - }, - "targetVmCount": { - "description": "[Output Only] Count of VMs originally planned to be created.", - "type": "integer", - "format": "int32" - }, - "createdVmCount": { - "description": "[Output Only] Count of VMs successfully created so far.", - "type": "integer", - "format": "int32" - }, - "failedToCreateVmCount": { - "description": "[Output Only] Count of VMs that started creating but encountered an error.", - "type": "integer", - "format": "int32" - }, - "deletedVmCount": { - "description": "[Output Only] Count of VMs that got deleted during rollback.", - "type": "integer", - "format": "int32" - } - } - }, - "OperationAggregatedList": { - "id": "OperationAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always `compute#operationAggregatedList` for aggregated lists of operations.", - "default": "compute#operationAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "items": { - "description": "[Output Only] A map of scoped operation lists.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of operations.", - "$ref": "OperationsScopedList" - } + "response": { + "$ref": "AddressList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of global addresses." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than `maxResults`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.globalAddresses.get", + "path": "projects/{project}/global/addresses/{address}", + "flatPath": "projects/{project}/global/addresses/{address}", + "httpMethod": "GET", + "parameters": { + "address": { + "description": "Name of the address resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "address" + ], + "response": { + "$ref": "Address" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified address resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.globalAddresses.insert", + "path": "projects/{project}/global/addresses", + "flatPath": "projects/{project}/global/addresses", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Address" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an address resource in the specified project by using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.globalAddresses.delete", + "path": "projects/{project}/global/addresses/{address}", + "flatPath": "projects/{project}/global/addresses/{address}", + "httpMethod": "DELETE", + "parameters": { + "address": { + "description": "Name of the address resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "OperationsScopedList": { - "id": "OperationsScopedList", - "type": "object", - "properties": { - "operations": { - "description": "[Output Only] A list of operations contained in this scope.", - "type": "array", - "items": { + }, + "parameterOrder": [ + "project", + "address" + ], + "response": { "$ref": "Operation" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified address resource." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of operations when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "move": { + "id": "compute.globalAddresses.move", + "path": "projects/{project}/global/addresses/{address}/move", + "flatPath": "projects/{project}/global/addresses/{address}/move", + "httpMethod": "POST", + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Source project ID which the Address is moved from.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "AddressList": { - "id": "AddressList", - "description": "Contains a list of addresses.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#addressList for lists of addresses.", - "default": "compute#addressList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Address resources.", - "type": "array", - "items": { - "$ref": "Address" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + }, + "parameterOrder": [ + "project", + "address" + ], + "request": { + "$ref": "GlobalAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Moves the specified address resource from one project to another project." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "setLabels": { + "id": "compute.globalAddresses.setLabels", + "path": "projects/{project}/global/addresses/{resource}/setLabels", + "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation." } } }, - "Address": { - "id": "Address", - "description": "Represents an IP Address resource. Google Compute Engine has two IP Address resources: * [Global (external and internal)](https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses) * [Regional (external and internal)](https://cloud.google.com/compute/docs/reference/rest/v1/addresses) For more information, see Reserving a static external IP address.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#address for addresses.", - "default": "compute#address", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.addresses.insert" - ] + "addresses": { + "methods": { + "list": { + "id": "compute.addresses.list", + "path": "projects/{project}/regions/{region}/addresses", + "flatPath": "projects/{project}/regions/{region}/addresses", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "address": { - "description": "The static IP address represented by this resource.", - "type": "string" - }, - "prefixLength": { - "description": "The prefix length if the resource represents an IP range.", - "type": "integer", - "format": "int32" - }, - "status": { - "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", - "type": "string", - "enumDescriptions": [ - "Address is being used by another resource and is not available.", - "Address is reserved and available to use.", - "Address is being reserved." + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "IN_USE", - "RESERVED", - "RESERVING" - ] - }, - "region": { - "description": "[Output Only] The URL of the region where a regional address resides. For regional addresses, you must specify the region as a path parameter in the HTTP request URL. *This field is not applicable to global addresses.*", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "users": { - "description": "[Output Only] The URLs of the resources that are using this address.", - "type": "array", - "items": { - "type": "string" - } - }, - "networkTier": { - "description": "This signifies the networking tier used for configuring this address and can only take the following values: PREMIUM or STANDARD. Internal IP addresses are always Premium Tier; global external IP addresses are always Premium Tier; regional external IP addresses can be either Standard or Premium Tier. If this field is not specified, it is assumed to be PREMIUM.", - "type": "string", - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + "response": { + "$ref": "AddressList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ] - }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Address.", - "type": "string", - "format": "byte" + "description": "Retrieves a list of addresses contained within the specified region." }, - "ipVersion": { - "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "aggregatedList": { + "id": "compute.addresses.aggregatedList", + "path": "projects/{project}/aggregated/addresses", + "flatPath": "projects/{project}/aggregated/addresses", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "IPV4", - "IPV6", - "UNSPECIFIED_VERSION" - ] - }, - "addressType": { - "description": "The type of address to reserve, either INTERNAL or EXTERNAL. If unspecified, defaults to EXTERNAL.", - "type": "string", - "enumDescriptions": [ - "A publicly visible external IP address.", - "A private network IP address, for use with an Instance or Internal Load Balancer forwarding rule.", - "" + "response": { + "$ref": "AddressAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "EXTERNAL", - "INTERNAL", - "UNSPECIFIED_TYPE" - ] + "description": "Retrieves an aggregated list of addresses. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "purpose": { - "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *HA VPN over Cloud Interconnect* configuration. These addresses are regional resources. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", - "type": "string", - "enumDescriptions": [ - "DNS resolver address in the subnetwork.", - "VM internal/alias IP, Internal LB service IP, etc.", - "A regional internal IP address range reserved for the VLAN attachment that is used in HA VPN over Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment’s IP address range.", - "External IP automatically reserved for Cloud NAT.", - "A private network IP address that can be used to configure Private Service Connect. This purpose can be specified only for GLOBAL addresses of Type INTERNAL", - "A regional internal IP address range reserved for Serverless.", - "A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", - "IP range for peer networks." + "get": { + "id": "compute.addresses.get", + "path": "projects/{project}/regions/{region}/addresses/{address}", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}", + "httpMethod": "GET", + "parameters": { + "address": { + "description": "Name of the address resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "address" ], - "enum": [ - "DNS_RESOLVER", - "GCE_ENDPOINT", - "IPSEC_INTERCONNECT", - "NAT_AUTO", - "PRIVATE_SERVICE_CONNECT", - "SERVERLESS", - "SHARED_LOADBALANCER_VIP", - "VPC_PEERING" - ] - }, - "subnetwork": { - "description": "The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range. This field can only be used with INTERNAL type with a GCE_ENDPOINT or DNS_RESOLVER purpose.", - "type": "string" - }, - "network": { - "description": "The URL of the network in which to reserve the address. This field can only be used with INTERNAL type with the VPC_PEERING purpose.", - "type": "string" + "response": { + "$ref": "Address" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified address resource." }, - "ipv6EndpointType": { - "description": "The endpoint type of this address, which should be VM or NETLB. This is used for deciding which type of endpoint this address can be used after the external IPv6 address reservation.", - "type": "string", - "enumDescriptions": [ - "Reserved IPv6 address can be used on network load balancer.", - "Reserved IPv6 address can be used on VM." + "insert": { + "id": "compute.addresses.insert", + "path": "projects/{project}/regions/{region}/addresses", + "flatPath": "projects/{project}/regions/{region}/addresses", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "NETLB", - "VM" - ] - } - } - }, - "GlobalAddressesMoveRequest": { - "id": "GlobalAddressesMoveRequest", - "type": "object", - "properties": { - "destinationAddress": { - "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project /global/addresses/address - projects/project/global/addresses/address Note that destination project must be different from the source project. So /global/addresses/address is not valid partial url.", - "type": "string" - }, - "description": { - "description": "An optional destination address description if intended to be different from the source.", - "type": "string" - } - } - }, - "GlobalSetLabelsRequest": { - "id": "GlobalSetLabelsRequest", - "type": "object", - "properties": { - "labels": { - "description": "A list of labels to apply for this resource. Each label must comply with the requirements for labels. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels, otherwise the request will fail with error 412 conditionNotMet. Make a get() request to the resource to get the latest fingerprint.", - "type": "string", - "format": "byte" - } - } - }, - "AddressAggregatedList": { - "id": "AddressAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#addressAggregatedList for aggregated lists of addresses.", - "default": "compute#addressAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of AddressesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of addresses.", - "$ref": "AddressesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "request": { + "$ref": "Address" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an address resource in the specified project by using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.addresses.delete", + "path": "projects/{project}/regions/{region}/addresses/{address}", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}", + "httpMethod": "DELETE", + "parameters": { + "address": { + "description": "Name of the address resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "AddressesScopedList": { - "id": "AddressesScopedList", - "type": "object", - "properties": { - "addresses": { - "description": "[Output Only] A list of addresses contained in this scope.", - "type": "array", - "items": { - "$ref": "Address" - } + }, + "parameterOrder": [ + "project", + "region", + "address" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified address resource." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "move": { + "id": "compute.addresses.move", + "path": "projects/{project}/regions/{region}/addresses/{address}/move", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move", + "httpMethod": "POST", + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Source project ID which the Address is moved from.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "RegionAddressesMoveRequest": { - "id": "RegionAddressesMoveRequest", - "type": "object", - "properties": { - "destinationAddress": { - "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project/regions/region /addresses/address - projects/project/regions/region/addresses/address Note that destination project must be different from the source project. So /regions/region/addresses/address is not valid partial url.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "address" + ], + "request": { + "$ref": "RegionAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Moves the specified address resource." }, - "description": { - "description": "An optional destination address description if intended to be different from the source.", - "type": "string" + "setLabels": { + "id": "compute.addresses.setLabels", + "path": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation." } } }, - "RegionSetLabelsRequest": { - "id": "RegionSetLabelsRequest", - "type": "object", - "properties": { - "labels": { - "description": "The labels to set for this resource.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", - "type": "string", - "format": "byte" - } - } - }, - "ImageList": { - "id": "ImageList", - "description": "Contains a list of images.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#imageList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "images": { + "methods": { + "list": { + "id": "compute.images.list", + "path": "projects/{project}/global/images", + "flatPath": "projects/{project}/global/images", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ImageList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of custom images available to the specified project. Custom images are images you create that belong to your project. This method does not get any images that belong to other projects, including publicly-available images, like Debian 8. If you want to get a list of publicly-available images, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud." }, - "items": { - "description": "A list of Image resources.", - "type": "array", - "items": { + "get": { + "id": "compute.images.get", + "path": "projects/{project}/global/images/{image}", + "flatPath": "projects/{project}/global/images/{image}", + "httpMethod": "GET", + "parameters": { + "image": { + "description": "Name of the image resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "image" + ], + "response": { "$ref": "Image" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified image." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "getFromFamily": { + "id": "compute.images.getFromFamily", + "path": "projects/{project}/global/images/family/{family}", + "flatPath": "projects/{project}/global/images/family/{family}", + "httpMethod": "GET", + "parameters": { + "family": { + "description": "Name of the image family to search for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "family" + ], + "response": { + "$ref": "Image" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.images.insert", + "path": "projects/{project}/global/images", + "flatPath": "projects/{project}/global/images", + "httpMethod": "POST", + "parameters": { + "forceCreate": { + "description": "Force image creation if true.", + "location": "query", + "type": "boolean" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "Image": { - "id": "Image", - "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#image for images.", - "default": "compute#image", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.images.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Image" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "description": "Creates an image in the specified project using the data included in the request." }, - "sourceType": { - "description": "The type of the image used to create this disk. The default and only valid value is RAW.", - "default": "RAW", - "type": "string", - "enumDescriptions": [ - "" + "setLabels": { + "id": "compute.images.setLabels", + "path": "projects/{project}/global/images/{resource}/setLabels", + "flatPath": "projects/{project}/global/images/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "RAW" - ] + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation." }, - "rawDisk": { - "description": "The parameters of the raw disk image.", - "type": "object", - "properties": { - "source": { - "description": "The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "delete": { + "id": "compute.images.delete", + "path": "projects/{project}/global/images/{image}", + "flatPath": "projects/{project}/global/images/{image}", + "httpMethod": "DELETE", + "parameters": { + "image": { + "description": "Name of the image resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "sha1Checksum": { - "description": "[Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.", - "pattern": "[a-f0-9]{40}", - "deprecated": true, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "containerType": { - "description": "The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.", - "type": "string", - "enumDescriptions": [ - "" - ], - "enum": [ - "TAR" - ] + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "deprecated": { - "description": "The deprecation status associated with this image.", - "$ref": "DeprecationStatus" - }, - "status": { - "description": "[Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.", - "type": "string", - "enumDescriptions": [ - "Image is deleting.", - "Image creation failed due to an error.", - "Image hasn't been created as yet.", - "Image has been successfully created." + }, + "parameterOrder": [ + "project", + "image" ], - "enum": [ - "DELETING", - "FAILED", - "PENDING", - "READY" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified image." }, - "archiveSizeBytes": { - "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", - "type": "string", - "format": "int64" + "deprecate": { + "id": "compute.images.deprecate", + "path": "projects/{project}/global/images/{image}/deprecate", + "flatPath": "projects/{project}/global/images/{image}/deprecate", + "httpMethod": "POST", + "parameters": { + "image": { + "description": "Image name.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "image" + ], + "request": { + "$ref": "DeprecationStatus" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead." }, - "diskSizeGb": { - "description": "Size of the image when restored onto a persistent disk (in GB).", - "type": "string", - "format": "int64" - }, - "sourceDisk": { - "description": "URL of the source disk used to create this image. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", - "type": "string" - }, - "sourceDiskId": { - "description": "[Output Only] The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.", - "type": "string" - }, - "licenses": { - "description": "Any applicable license URI.", - "type": "array", - "items": { - "type": "string" - } - }, - "family": { - "description": "The name of the image family to which this image belongs. The image family name can be from a publicly managed image family provided by Compute Engine, or from a custom image family you create. For example, centos-stream-9 is a publicly available image family. For more information, see Image family best practices. When creating disks, you can specify an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", - "type": "string" - }, - "imageEncryptionKey": { - "description": "Encrypts the image using a customer-supplied encryption key. After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image). Customer-supplied encryption keys do not protect access to metadata of the disk. If you do not provide an encryption key when creating the image, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the image later.", - "$ref": "CustomerEncryptionKey" - }, - "sourceDiskEncryptionKey": { - "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "labels": { - "description": "Labels to apply to this image. These can be later modified by the setLabels method.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an image.", - "type": "string", - "format": "byte" - }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. To see a list of available options, see the guestOSfeatures[].type parameter.", - "type": "array", - "items": { - "$ref": "GuestOsFeature" - } - }, - "licenseCodes": { - "description": "Integer license codes indicating which licenses are attached to this image.", - "type": "array", - "items": { - "type": "string", - "format": "int64" - } - }, - "sourceImage": { - "description": "URL of the source image used to create this image. The following are valid formats for the URL: - https://www.googleapis.com/compute/v1/projects/project_id/global/ images/image_name - projects/project_id/global/images/image_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", - "type": "string" - }, - "sourceImageId": { - "description": "[Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.", - "type": "string" - }, - "sourceImageEncryptionKey": { - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" - }, - "sourceSnapshot": { - "description": "URL of the source snapshot used to create this image. The following are valid formats for the URL: - https://www.googleapis.com/compute/v1/projects/project_id/global/ snapshots/snapshot_name - projects/project_id/global/snapshots/snapshot_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", - "type": "string" - }, - "sourceSnapshotId": { - "description": "[Output Only] The ID value of the snapshot used to create this image. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given snapshot name.", - "type": "string" - }, - "sourceSnapshotEncryptionKey": { - "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" - }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the image (regional or multi-regional).", - "type": "array", - "items": { - "type": "string" - } - }, - "shieldedInstanceInitialState": { - "description": "Set the secure boot keys of shielded instance.", - "$ref": "InitialStateConfig" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "architecture": { - "description": "The architecture of the image. Valid values are ARM64 or X86_64.", - "type": "string", - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "getIamPolicy": { + "id": "compute.images.getIamPolicy", + "path": "projects/{project}/global/images/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ] - }, - "enableConfidentialCompute": { - "description": "Whether this image is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", - "type": "boolean" - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - } - } - }, - "CustomerEncryptionKey": { - "id": "CustomerEncryptionKey", - "type": "object", - "properties": { - "rawKey": { - "description": "Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: \"rawKey\": \"SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=\" ", - "type": "string" - }, - "rsaEncryptedKey": { - "description": "Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: \"rsaEncryptedKey\": \"ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==\" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem ", - "type": "string" - }, - "kmsKeyName": { - "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", - "type": "string" - }, - "sha256": { - "description": "[Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.", - "type": "string" - }, - "kmsKeyServiceAccount": { - "description": "The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: \"kmsKeyServiceAccount\": \"name@project_id.iam.gserviceaccount.com/ ", - "type": "string" - } - } - }, - "GuestOsFeature": { - "id": "GuestOsFeature", - "description": "Guest OS features.", - "type": "object", - "properties": { - "type": { - "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "FEATURE_TYPE_UNSPECIFIED", - "GVNIC", - "IDPF", - "MULTI_IP_SUBNET", - "SECURE_BOOT", - "SEV_CAPABLE", - "SEV_LIVE_MIGRATABLE", - "SEV_LIVE_MIGRATABLE_V2", - "SEV_SNP_CAPABLE", - "UEFI_COMPATIBLE", - "VIRTIO_SCSI_MULTIQUEUE", - "WINDOWS" - ] - } - } - }, - "InitialStateConfig": { - "id": "InitialStateConfig", - "description": "Initial State for shielded instance, these are public keys which are safe to store in public", - "type": "object", - "properties": { - "pk": { - "description": "The Platform Key (PK).", - "$ref": "FileContentBuffer" + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "keks": { - "description": "The Key Exchange Key (KEK).", - "type": "array", - "items": { - "$ref": "FileContentBuffer" - } + "patch": { + "id": "compute.images.patch", + "path": "projects/{project}/global/images/{image}", + "flatPath": "projects/{project}/global/images/{image}", + "httpMethod": "PATCH", + "parameters": { + "image": { + "description": "Name of the image resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "image" + ], + "request": { + "$ref": "Image" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status." }, - "dbs": { - "description": "The Key Database (db).", - "type": "array", - "items": { - "$ref": "FileContentBuffer" - } + "setIamPolicy": { + "id": "compute.images.setIamPolicy", + "path": "projects/{project}/global/images/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "dbxs": { - "description": "The forbidden key database (dbx).", - "type": "array", - "items": { - "$ref": "FileContentBuffer" - } + "testIamPermissions": { + "id": "compute.images.testIamPermissions", + "path": "projects/{project}/global/images/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "FileContentBuffer": { - "id": "FileContentBuffer", - "type": "object", - "properties": { - "content": { - "description": "The raw content in the secure keys file.", - "type": "string", - "format": "byte" - }, - "fileType": { - "description": "The file type of source file.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "imageFamilyViews": { + "methods": { + "get": { + "id": "compute.imageFamilyViews.get", + "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", + "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", + "httpMethod": "GET", + "parameters": { + "family": { + "description": "Name of the image family to search for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "family" ], - "enum": [ - "BIN", - "UNDEFINED", - "X509" - ] + "response": { + "$ref": "ImageFamilyView" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone." } } }, - "Policy": { - "id": "Policy", - "description": "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 \u003c 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 \u003c 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/).", - "type": "object", - "properties": { - "version": { - "description": "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).", - "type": "integer", - "format": "int32" - }, - "bindings": { - "description": "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`.", - "type": "array", - "items": { - "$ref": "Binding" - } - }, - "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", - "type": "array", - "items": { - "$ref": "AuditConfig" - } + "snapshots": { + "methods": { + "list": { + "id": "compute.snapshots.list", + "path": "projects/{project}/global/snapshots", + "flatPath": "projects/{project}/global/snapshots", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SnapshotList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of Snapshot resources contained within the specified project." }, - "rules": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "$ref": "Rule" - } - }, - "etag": { - "description": "`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.", - "type": "string", - "format": "byte" - } - } - }, - "Binding": { - "id": "Binding", - "description": "Associates `members`, or principals, with a `role`.", - "type": "object", - "properties": { - "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", - "type": "string" - }, - "members": { - "description": "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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `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. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", - "type": "array", - "items": { - "type": "string" - } - }, - "condition": { - "description": "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).", - "$ref": "Expr" - }, - "bindingId": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - } - } - }, - "Expr": { - "id": "Expr", - "description": "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() \u003c 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.", - "type": "object", - "properties": { - "expression": { - "description": "Textual representation of an expression in Common Expression Language syntax.", - "type": "string" - }, - "title": { - "description": "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.", - "type": "string" - }, - "description": { - "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "location": { - "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", - "type": "string" - } - } - }, - "AuditLogConfig": { - "id": "AuditLogConfig", - "description": "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.", - "type": "object", - "properties": { - "logType": { - "description": "The log type that this config enables.", - "type": "string", - "enumDescriptions": [ - "Admin reads. Example: CloudIAM getIamPolicy", - "Data reads. Example: CloudSQL Users list", - "Data writes. Example: CloudSQL Users create", - "Default case. Should never be this." + "get": { + "id": "compute.snapshots.get", + "path": "projects/{project}/global/snapshots/{snapshot}", + "flatPath": "projects/{project}/global/snapshots/{snapshot}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "snapshot": { + "description": "Name of the Snapshot resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "snapshot" ], - "enum": [ - "ADMIN_READ", - "DATA_READ", - "DATA_WRITE", - "LOG_TYPE_UNSPECIFIED" - ] - }, - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", - "type": "array", - "items": { - "type": "string" - } - }, - "ignoreChildExemptions": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "boolean" - } - } - }, - "Rule": { - "id": "Rule", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "description": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "permissions": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "type": "string" - } - }, - "action": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "response": { + "$ref": "Snapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "ALLOW", - "ALLOW_WITH_LOG", - "DENY", - "DENY_WITH_LOG", - "LOG", - "NO_ACTION" - ] - }, - "ins": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "type": "string" - } - }, - "notIns": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "type": "string" - } - }, - "conditions": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "$ref": "Condition" - } + "description": "Returns the specified Snapshot resource." }, - "logConfigs": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "$ref": "LogConfig" - } - } - } - }, - "Condition": { - "id": "Condition", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "iam": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "insert": { + "id": "compute.snapshots.insert", + "path": "projects/{project}/global/snapshots", + "flatPath": "projects/{project}/global/snapshots", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "APPROVER", - "ATTRIBUTION", - "AUTHORITY", - "CREDENTIALS_TYPE", - "CREDS_ASSERTION", - "JUSTIFICATION_TYPE", - "NO_ATTR", - "SECURITY_REALM" - ] - }, - "sys": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "IP", - "NAME", - "NO_ATTR", - "REGION", - "SERVICE" - ] + "description": "Creates a snapshot in the specified project using the data included in the request. For regular snapshot creation, consider using this method instead of disks.createSnapshot, as this method supports more features, such as creating snapshots in a project different from the source disk project." }, - "svc": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" + "setLabels": { + "id": "compute.snapshots.setLabels", + "path": "projects/{project}/global/snapshots/{resource}/setLabels", + "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation." }, - "op": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "delete": { + "id": "compute.snapshots.delete", + "path": "projects/{project}/global/snapshots/{snapshot}", + "flatPath": "projects/{project}/global/snapshots/{snapshot}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "snapshot": { + "description": "Name of the Snapshot resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "snapshot" ], - "enum": [ - "DISCHARGED", - "EQUALS", - "IN", - "NOT_EQUALS", - "NOT_IN", - "NO_OP" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots." }, - "values": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "LogConfig": { - "id": "LogConfig", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "counter": { - "description": "This is deprecated and has no effect. Do not use.", - "$ref": "LogConfigCounterOptions" + "getIamPolicy": { + "id": "compute.snapshots.getIamPolicy", + "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "dataAccess": { - "description": "This is deprecated and has no effect. Do not use.", - "$ref": "LogConfigDataAccessOptions" + "setIamPolicy": { + "id": "compute.snapshots.setIamPolicy", + "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "cloudAudit": { - "description": "This is deprecated and has no effect. Do not use.", - "$ref": "LogConfigCloudAuditOptions" + "testIamPermissions": { + "id": "compute.snapshots.testIamPermissions", + "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "LogConfigCounterOptions": { - "id": "LogConfigCounterOptions", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "metric": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "field": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "customFields": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "array", - "items": { - "$ref": "LogConfigCounterOptionsCustomField" - } - } - } - }, - "LogConfigCounterOptionsCustomField": { - "id": "LogConfigCounterOptionsCustomField", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "name": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "value": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - } - } - }, - "LogConfigDataAccessOptions": { - "id": "LogConfigDataAccessOptions", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "logMode": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "disks": { + "methods": { + "list": { + "id": "compute.disks.list", + "path": "projects/{project}/zones/{zone}/disks", + "flatPath": "projects/{project}/zones/{zone}/disks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "LOG_FAIL_CLOSED", - "LOG_MODE_UNSPECIFIED" - ] - } - } - }, - "LogConfigCloudAuditOptions": { - "id": "LogConfigCloudAuditOptions", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "logName": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "response": { + "$ref": "DiskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "ADMIN_ACTIVITY", - "DATA_ACCESS", - "UNSPECIFIED_LOG_NAME" - ] + "description": "Retrieves a list of persistent disks contained within the specified zone." }, - "authorizationLoggingOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "$ref": "AuthorizationLoggingOptions" - } - } - }, - "AuthorizationLoggingOptions": { - "id": "AuthorizationLoggingOptions", - "description": "This is deprecated and has no effect. Do not use.", - "type": "object", - "properties": { - "permissionType": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string", - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." + "aggregatedList": { + "id": "compute.disks.aggregatedList", + "path": "projects/{project}/aggregated/disks", + "flatPath": "projects/{project}/aggregated/disks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "ADMIN_READ", - "ADMIN_WRITE", - "DATA_READ", - "DATA_WRITE", - "PERMISSION_TYPE_UNSPECIFIED" - ] - } - } - }, - "GlobalSetPolicyRequest": { - "id": "GlobalSetPolicyRequest", - "type": "object", - "properties": { - "policy": { - "description": "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 in general a valid policy but certain services (like Projects) might reject them.", - "$ref": "Policy" - }, - "bindings": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", - "type": "array", - "items": { - "$ref": "Binding" - } - }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "type": "string", - "format": "byte" - } - } - }, - "TestPermissionsRequest": { - "id": "TestPermissionsRequest", - "type": "object", - "properties": { - "permissions": { - "description": "The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TestPermissionsResponse": { - "id": "TestPermissionsResponse", - "type": "object", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ImageFamilyView": { - "id": "ImageFamilyView", - "type": "object", - "properties": { - "image": { - "description": "The latest image that is part of the specified image family in the requested location, and that is not deprecated.", - "$ref": "Image" - } - } - }, - "SnapshotList": { - "id": "SnapshotList", - "description": "Contains a list of Snapshot resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#snapshotList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Snapshot resources.", - "type": "array", - "items": { - "$ref": "Snapshot" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "response": { + "$ref": "DiskAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of persistent disks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "get": { + "id": "compute.disks.get", + "path": "projects/{project}/zones/{zone}/disks/{disk}", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", + "httpMethod": "GET", + "parameters": { + "disk": { + "description": "Name of the persistent disk to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "Snapshot": { - "id": "Snapshot", - "description": "Represents a Persistent Disk Snapshot resource. You can use snapshots to back up data on a regular interval. For more information, read Creating persistent disk snapshots.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#snapshot for Snapshot resources.", - "default": "compute#snapshot", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.disks.createSnapshot", - "compute.snapshots.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", - "type": "string", - "enumDescriptions": [ - "Snapshot creation is in progress.", - "Snapshot is currently being deleted.", - "Snapshot creation failed.", - "Snapshot has been created successfully.", - "Snapshot is being uploaded." + "parameterOrder": [ + "project", + "zone", + "disk" ], - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "UPLOADING" - ] - }, - "sourceDisk": { - "description": "The source disk used to create this snapshot.", - "type": "string" - }, - "sourceDiskId": { - "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", - "type": "string" - }, - "diskSizeGb": { - "description": "[Output Only] Size of the source disk, specified in GB.", - "type": "string", - "format": "int64" + "response": { + "$ref": "Disk" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified persistent disk." }, - "storageBytes": { - "description": "[Output Only] A size of the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.", - "type": "string", - "format": "int64" - }, - "storageBytesStatus": { - "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", - "type": "string", - "enumDescriptions": [ - "", - "" + "insert": { + "id": "compute.disks.insert", + "path": "projects/{project}/zones/{zone}/disks", + "flatPath": "projects/{project}/zones/{zone}/disks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceImage": { + "description": "Source image to restore onto a disk. This field is optional.", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "UPDATING", - "UP_TO_DATE" - ] - }, - "licenses": { - "description": "[Output Only] A list of public visible licenses that apply to this snapshot. This can be because the original image had licenses attached (such as a Windows image).", - "type": "array", - "items": { - "type": "string" - } - }, - "snapshotEncryptionKey": { - "description": "Encrypts the snapshot using a customer-supplied encryption key. After you encrypt a snapshot using a customer-supplied key, you must provide the same key if you use the snapshot later. For example, you must provide the encryption key when you create a disk from the encrypted snapshot in a future request. Customer-supplied encryption keys do not protect access to metadata of the snapshot. If you do not provide an encryption key when creating the snapshot, then the snapshot will be encrypted using an automatically generated key and you do not need to provide a key to use the snapshot later.", - "$ref": "CustomerEncryptionKey" - }, - "sourceDiskEncryptionKey": { - "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "labels": { - "description": "Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a snapshot.", - "type": "string", - "format": "byte" - }, - "licenseCodes": { - "description": "[Output Only] Integer license codes indicating which licenses are attached to this snapshot.", - "type": "array", - "items": { - "type": "string", - "format": "int64" - } - }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the snapshot (regional or multi-regional).", - "type": "array", - "items": { - "type": "string" - } - }, - "autoCreated": { - "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk.", - "type": "boolean" - }, - "guestOsFeatures": { - "description": "[Output Only] A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "type": "array", - "items": { - "$ref": "GuestOsFeature" - } - }, - "downloadBytes": { - "description": "[Output Only] Number of bytes downloaded to restore a snapshot to a disk.", - "type": "string", - "format": "int64" - }, - "chainName": { - "description": "Creates the new snapshot in the snapshot chain labeled with the specified name. The chain name must be 1-63 characters long and comply with RFC1035. This is an uncommon option only for advanced service owners who needs to create separate snapshot chains, for example, for chargeback tracking. When you describe your snapshot resource, this field is visible only if it has a non-empty value.", - "type": "string" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "locationHint": { - "description": "An opaque location hint used to place the snapshot close to other resources. This field is for use by internal tools that use the public API.", - "type": "string" - }, - "sourceSnapshotSchedulePolicy": { - "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", - "type": "string" - }, - "sourceSnapshotSchedulePolicyId": { - "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", - "type": "string" - }, - "architecture": { - "description": "[Output Only] The architecture of the snapshot. Valid values are ARM64 or X86_64.", - "type": "string", - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ] + "description": "Creates a persistent disk in the specified project using the data in the request. You can create a disk from a source (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property." }, - "snapshotType": { - "description": "Indicates the type of the snapshot.", - "type": "string", - "enumDescriptions": [ - "", - "" + "setLabels": { + "id": "compute.disks.setLabels", + "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" ], - "enum": [ - "ARCHIVE", - "STANDARD" - ] - }, - "creationSizeBytes": { - "description": "[Output Only] Size in bytes of the snapshot at creation time.", - "type": "string", - "format": "int64" - }, - "enableConfidentialCompute": { - "description": "Whether this snapshot is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", - "type": "boolean" - }, - "sourceDiskForRecoveryCheckpoint": { - "description": "The source disk whose recovery checkpoint will be used to create this snapshot.", - "type": "string" - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - } - } - }, - "DiskList": { - "id": "DiskList", - "description": "A list of Disk resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#diskList for lists of disks.", - "default": "compute#diskList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Disk resources.", - "type": "array", - "items": { - "$ref": "Disk" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "request": { + "$ref": "ZoneSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.disks.delete", + "path": "projects/{project}/zones/{zone}/disks/{disk}", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", + "httpMethod": "DELETE", + "parameters": { + "disk": { + "description": "Name of the persistent disk to delete.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "Disk": { - "id": "Disk", - "description": "Represents a Persistent Disk resource. Google Compute Engine has two Disk resources: * [Zonal](/compute/docs/reference/rest/v1/disks) * [Regional](/compute/docs/reference/rest/v1/regionDisks) Persistent disks are required for running your VM instances. Create both boot and non-boot (data) persistent disks. For more information, read Persistent Disks. For more storage options, read Storage options. The disks resource represents a zonal persistent disk. For more information, read Zonal persistent disks. The regionDisks resource represents a regional persistent disk. For more information, read Regional resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#disk for disks.", - "default": "compute#disk", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.disks.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "sizeGb": { - "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are greater than 0.", - "type": "string", - "format": "int64" - }, - "zone": { - "description": "[Output Only] URL of the zone where the disk resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of disk creation. - CREATING: Disk is provisioning. - RESTORING: Source data is being copied into the disk. - FAILED: Disk creation failed. - READY: Disk is ready for use. - DELETING: Disk is deleting. ", - "type": "string", - "enumDescriptions": [ - "Disk is provisioning", - "Disk is deleting.", - "Disk creation failed.", - "Disk is ready for use.", - "Source data is being copied into the disk." + "parameterOrder": [ + "project", + "zone", + "disk" ], - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "RESTORING" - ] - }, - "sourceSnapshot": { - "description": "The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project /global/snapshots/snapshot - projects/project/global/snapshots/snapshot - global/snapshots/snapshot ", - "type": "string" - }, - "sourceSnapshotId": { - "description": "[Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.", - "type": "string" - }, - "sourceStorageObject": { - "description": "The full Google Cloud Storage URI where the disk image is stored. This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk. Valid URIs may start with gs:// or https://storage.googleapis.com/. This flag is not optimized for creating multiple disks from a source storage object. To create many disks from a source storage object, use gcloud compute images import instead.", - "type": "string" - }, - "options": { - "description": "Internal use only.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "sourceImage": { - "description": "The source image used to create this disk. If the source image is deleted, this field will not be set. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family ", - "type": "string" - }, - "sourceImageId": { - "description": "[Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.", - "type": "string" - }, - "type": { - "description": "URL of the disk type resource describing which disk type to use to create the disk. Provide this when creating the disk. For example: projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types.", - "type": "string" - }, - "licenses": { - "description": "A list of publicly visible licenses. Reserved for Google's use.", - "type": "array", - "items": { - "type": "string" - } + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots." }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "type": "array", - "items": { - "$ref": "GuestOsFeature" - } - }, - "lastAttachTimestamp": { - "description": "[Output Only] Last attach timestamp in RFC3339 text format.", - "type": "string" - }, - "lastDetachTimestamp": { - "description": "[Output Only] Last detach timestamp in RFC3339 text format.", - "type": "string" - }, - "users": { - "description": "[Output Only] Links to the users of the disk (attached instances) in form: projects/project/zones/zone/instances/instance", - "type": "array", - "items": { - "type": "string" - } - }, - "diskEncryptionKey": { - "description": "Encrypts the disk using a customer-supplied encryption key or a customer-managed encryption key. Encryption keys do not protect access to metadata of the disk. After you encrypt a disk with a customer-supplied key, you must provide the same key if you use the disk later. For example, to create a disk snapshot, to create a disk image, to create a machine image, or to attach the disk to a virtual machine. After you encrypt a disk with a customer-managed key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the disk is created. The disk is encrypted with this version of the key. In the response, diskEncryptionKey.kmsKeyName appears in the following format: \"diskEncryptionKey.kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not provide an encryption key when creating the disk, then the disk is encrypted using an automatically generated key and you don't need to provide a key to use the disk later.", - "$ref": "CustomerEncryptionKey" - }, - "sourceImageEncryptionKey": { - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" + "createSnapshot": { + "id": "compute.disks.createSnapshot", + "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "Name of the persistent disk to snapshot.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "guestFlush": { + "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.", + "location": "query", + "type": "boolean" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project." }, - "sourceSnapshotEncryptionKey": { - "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" + "resize": { + "id": "compute.disks.resize", + "path": "projects/{project}/zones/{zone}/disks/{disk}/resize", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "DisksResizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Resizes the specified persistent disk. You can only increase the size of the disk." }, - "labels": { - "description": "Labels to apply to this disk. These can be later modified by the setLabels method.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "addResourcePolicies": { + "id": "compute.disks.addResourcePolicies", + "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The disk name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "DisksAddResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds existing resource policies to a disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation." }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a disk.", - "type": "string", - "format": "byte" + "removeResourcePolicies": { + "id": "compute.disks.removeResourcePolicies", + "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The disk name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "DisksRemoveResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes resource policies from a disk." }, - "region": { - "description": "[Output Only] URL of the region where the disk resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "getIamPolicy": { + "id": "compute.disks.getIamPolicy", + "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "replicaZones": { - "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources.", - "type": "array", - "items": { - "type": "string" - } + "setIamPolicy": { + "id": "compute.disks.setIamPolicy", + "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "licenseCodes": { - "description": "Integer license codes indicating which licenses are attached to this disk.", - "type": "array", - "items": { - "type": "string", - "format": "int64" - } + "testIamPermissions": { + "id": "compute.disks.testIamPermissions", + "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." }, - "physicalBlockSizeBytes": { - "description": "Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. The currently supported size is 4096, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller's project.", - "type": "string", - "format": "int64" + "update": { + "id": "compute.disks.update", + "path": "projects/{project}/zones/{zone}/disks/{disk}", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", + "httpMethod": "PATCH", + "parameters": { + "disk": { + "description": "The disk name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified disk with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license." }, - "resourcePolicies": { - "description": "Resource policies applied to this disk for automatic snapshot creations.", - "type": "array", - "items": { - "type": "string" - } + "startAsyncReplication": { + "id": "compute.disks.startAsyncReplication", + "path": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "DisksStartAsyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Starts asynchronous replication. Must be invoked on the primary disk." }, - "sourceDisk": { - "description": "The source disk used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", - "type": "string" - }, - "sourceDiskId": { - "description": "[Output Only] The unique ID of the disk used to create this disk. This value identifies the exact disk that was used to create this persistent disk. For example, if you created the persistent disk from a disk that was later deleted and recreated under the same name, the source disk ID would identify the exact version of the disk that was used.", - "type": "string" - }, - "provisionedIops": { - "description": "Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.", - "type": "string", - "format": "int64" - }, - "provisionedThroughput": { - "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124.", - "type": "string", - "format": "int64" - }, - "enableConfidentialCompute": { - "description": "Whether this disk is using confidential compute mode.", - "type": "boolean" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - }, - "locationHint": { - "description": "An opaque location hint used to place the disk close to other resources. This field is for use by internal tools that use the public API.", - "type": "string" - }, - "asyncPrimaryDisk": { - "description": "Disk asynchronously replicated into this disk.", - "$ref": "DiskAsyncReplication" - }, - "asyncSecondaryDisks": { - "description": "[Output Only] A list of disks this disk is asynchronously replicated to.", - "type": "object", - "additionalProperties": { - "$ref": "DiskAsyncReplicationList" - } - }, - "resourceStatus": { - "description": "[Output Only] Status information for the disk resource.", - "$ref": "DiskResourceStatus" - }, - "sourceConsistencyGroupPolicy": { - "description": "[Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", - "type": "string" - }, - "sourceConsistencyGroupPolicyId": { - "description": "[Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", - "type": "string" - }, - "architecture": { - "description": "The architecture of the disk. Valid values are ARM64 or X86_64.", - "type": "string", - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "stopAsyncReplication": { + "id": "compute.disks.stopAsyncReplication", + "path": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" ], - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ] - }, - "params": { - "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.", - "$ref": "DiskParams" - } - } - }, - "DiskAsyncReplication": { - "id": "DiskAsyncReplication", - "type": "object", - "properties": { - "disk": { - "description": "The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", - "type": "string" - }, - "diskId": { - "description": "[Output Only] The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used.", - "type": "string" - }, - "consistencyGroupPolicy": { - "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", - "type": "string" - }, - "consistencyGroupPolicyId": { - "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", - "type": "string" - } - } - }, - "DiskAsyncReplicationList": { - "id": "DiskAsyncReplicationList", - "type": "object", - "properties": { - "asyncReplicationDisk": { - "$ref": "DiskAsyncReplication" - } - } - }, - "DiskResourceStatus": { - "id": "DiskResourceStatus", - "type": "object", - "properties": { - "asyncPrimaryDisk": { - "$ref": "DiskResourceStatusAsyncReplicationStatus" - }, - "asyncSecondaryDisks": { - "description": "Key: disk, value: AsyncReplicationStatus message", - "type": "object", - "additionalProperties": { - "$ref": "DiskResourceStatusAsyncReplicationStatus" - } - } - } - }, - "DiskResourceStatusAsyncReplicationStatus": { - "id": "DiskResourceStatusAsyncReplicationStatus", - "type": "object", - "properties": { - "state": { - "type": "string", - "enumDescriptions": [ - "Replication is active.", - "Secondary disk is created and is waiting for replication to start.", - "Replication is starting.", - "", - "Replication is stopped.", - "Replication is stopping." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACTIVE", - "CREATED", - "STARTING", - "STATE_UNSPECIFIED", - "STOPPED", - "STOPPING" - ] - } - } - }, - "DiskParams": { - "id": "DiskParams", - "description": "Additional disk params.", - "type": "object", - "properties": { - "resourceManagerTags": { - "description": "Resource manager tags to be bound to the disk. 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.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "DiskAggregatedList": { - "id": "DiskAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#diskAggregatedList for aggregated lists of persistent disks.", - "default": "compute#diskAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of DisksScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of disks.", - "$ref": "DisksScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "stopGroupAsyncReplication": { + "id": "compute.disks.stopGroupAsyncReplication", + "path": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", + "flatPath": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } + "bulkInsert": { + "id": "compute.disks.bulkInsert", + "path": "projects/{project}/zones/{zone}/disks/bulkInsert", + "flatPath": "projects/{project}/zones/{zone}/disks/bulkInsert", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "BulkInsertDiskResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Bulk create a set of disks." } } }, - "DisksScopedList": { - "id": "DisksScopedList", - "type": "object", - "properties": { - "disks": { - "description": "[Output Only] A list of disks contained in this scope.", - "type": "array", - "items": { - "$ref": "Disk" - } + "regionDisks": { + "methods": { + "list": { + "id": "compute.regionDisks.list", + "path": "projects/{project}/regions/{region}/disks", + "flatPath": "projects/{project}/regions/{region}/disks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "DiskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of persistent disks contained within the specified region." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of disks when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "get": { + "id": "compute.regionDisks.get", + "path": "projects/{project}/regions/{region}/disks/{disk}", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "httpMethod": "GET", + "parameters": { + "disk": { + "description": "Name of the regional persistent disk to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "ZoneSetLabelsRequest": { - "id": "ZoneSetLabelsRequest", - "type": "object", - "properties": { - "labels": { - "description": "The labels to set for this resource.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", - "type": "string", - "format": "byte" - } - } - }, - "DisksResizeRequest": { - "id": "DisksResizeRequest", - "type": "object", - "properties": { - "sizeGb": { - "description": "The new size of the persistent disk, which is specified in GB.", - "type": "string", - "format": "int64" - } - } - }, - "DisksAddResourcePoliciesRequest": { - "id": "DisksAddResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "Full or relative path to the resource policy to be added to this disk. You can only specify one resource policy.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "DisksRemoveResourcePoliciesRequest": { - "id": "DisksRemoveResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be removed from this disk.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ZoneSetPolicyRequest": { - "id": "ZoneSetPolicyRequest", - "type": "object", - "properties": { - "policy": { - "description": "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 in general a valid policy but certain services (like Projects) might reject them.", - "$ref": "Policy" - }, - "bindings": { - "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", - "type": "array", - "items": { - "$ref": "Binding" - } - }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "type": "string", - "format": "byte" - } - } - }, - "DisksStartAsyncReplicationRequest": { - "id": "DisksStartAsyncReplicationRequest", - "type": "object", - "properties": { - "asyncSecondaryDisk": { - "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", - "type": "string" - } - } - }, - "DisksStopGroupAsyncReplicationResource": { - "id": "DisksStopGroupAsyncReplicationResource", - "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and compute.regionDisks.stopGroupAsyncReplication. It is only used to process requests and is not persisted.", - "type": "object", - "properties": { - "resourcePolicy": { - "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", - "type": "string" - } - } - }, - "BulkInsertDiskResource": { - "id": "BulkInsertDiskResource", - "description": "A transient resource used in compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used to process requests and is not persisted.", - "type": "object", - "properties": { - "sourceConsistencyGroupPolicy": { - "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", - "type": "string" - } - } - }, - "RegionDisksResizeRequest": { - "id": "RegionDisksResizeRequest", - "type": "object", - "properties": { - "sizeGb": { - "description": "The new size of the regional persistent disk, which is specified in GB.", - "type": "string", - "format": "int64" - } - } - }, - "RegionDisksAddResourcePoliciesRequest": { - "id": "RegionDisksAddResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be added to this disk.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RegionDisksRemoveResourcePoliciesRequest": { - "id": "RegionDisksRemoveResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be removed from this disk.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RegionSetPolicyRequest": { - "id": "RegionSetPolicyRequest", - "type": "object", - "properties": { - "policy": { - "description": "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 in general a valid policy but certain services (like Projects) might reject them.", - "$ref": "Policy" - }, - "bindings": { - "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", - "type": "array", - "items": { - "$ref": "Binding" - } - }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "type": "string", - "format": "byte" - } - } - }, - "RegionDisksStartAsyncReplicationRequest": { - "id": "RegionDisksStartAsyncReplicationRequest", - "type": "object", - "properties": { - "asyncSecondaryDisk": { - "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", - "type": "string" - } - } - }, - "FirewallList": { - "id": "FirewallList", - "description": "Contains a list of firewalls.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#firewallList for lists of firewalls.", - "default": "compute#firewallList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Firewall resources.", - "type": "array", - "items": { - "$ref": "Firewall" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "response": { + "$ref": "Disk" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns a specified regional persistent disk." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.regionDisks.insert", + "path": "projects/{project}/regions/{region}/disks", + "flatPath": "projects/{project}/regions/{region}/disks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceImage": { + "description": "Source image to restore onto a disk. This field is optional.", + "location": "query", + "type": "string" } - } - } - } - }, - "Firewall": { - "id": "Firewall", - "description": "Represents a Firewall Rule resource. Firewall rules allow or deny ingress traffic to, and egress traffic from your instances. For more information, read Firewall rules.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#firewall for firewall rules.", - "default": "compute#firewall", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.firewalls.insert", - "compute.firewalls.patch" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "network": { - "description": "URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used: global/networks/default If you choose to specify this field, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network - projects/myproject/global/networks/my-network - global/networks/default ", - "type": "string" - }, - "priority": { - "description": "Priority for this rule. This is an integer between `0` and `65535`, both inclusive. The default value is `1000`. Relative priorities determine which rule takes effect if multiple rules apply. Lower values indicate higher priority. For example, a rule with priority `0` has higher precedence than a rule with priority `1`. DENY rules take precedence over ALLOW rules if they have equal priority. Note that VPC networks have implied rules with a priority of `65535`. To avoid conflicts with the implied rules, use a priority number less than `65535`.", - "type": "integer", - "format": "int32" - }, - "sourceRanges": { - "description": "If source ranges are specified, the firewall rule applies only to traffic that has a source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both fields are set, the rule applies to traffic that has a source IP address within sourceRanges OR a source IP from a resource with a matching tag listed in the sourceTags field. The connection does not need to match both fields for the rule to apply. Both IPv4 and IPv6 are supported.", - "type": "array", - "items": { - "type": "string" - } - }, - "destinationRanges": { - "description": "If destination ranges are specified, the firewall rule applies only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Both IPv4 and IPv6 are supported.", - "type": "array", - "items": { - "type": "string" - } - }, - "sourceTags": { - "description": "If source tags are specified, the firewall rule applies only to traffic with source IPs that match the primary network interfaces of VM instances that have the tag and are in the same VPC network. Source tags cannot be used to control traffic to an instance's external IP address, it only applies to traffic between instances in the same virtual network. Because tags are associated with instances, not IP addresses. One or both of sourceRanges and sourceTags may be set. If both fields are set, the firewall applies to traffic that has a source IP address within sourceRanges OR a source IP from a resource with a matching tag listed in the sourceTags field. The connection does not need to match both fields for the firewall to apply.", - "type": "array", - "items": { - "type": "string" - } - }, - "targetTags": { - "description": "A list of tags that controls which instances the firewall rule applies to. If targetTags are specified, then the firewall rule applies only to instances in the VPC network that have one of those tags. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", - "type": "array", - "items": { - "type": "string" - } - }, - "sourceServiceAccounts": { - "description": "If source service accounts are specified, the firewall rules apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall applies to traffic that has a source IP address within the sourceRanges OR a source IP that belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both fields for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.", - "type": "array", - "items": { - "type": "string" - } - }, - "targetServiceAccounts": { - "description": "A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.", - "type": "array", - "items": { - "type": "string" - } + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a persistent regional disk in the specified project using the data included in the request." }, - "allowed": { - "description": "The list of ALLOW rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.", - "type": "array", - "items": { - "type": "object", - "properties": { - "IPProtocol": { - "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.", - "type": "string" - }, - "ports": { - "description": "An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", - "type": "array", - "items": { - "type": "string" - } - } + "setLabels": { + "id": "compute.regionDisks.setLabels", + "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on the target regional disk." }, - "denied": { - "description": "The list of DENY rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a denied connection.", - "type": "array", - "items": { - "type": "object", - "properties": { - "IPProtocol": { - "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.", - "type": "string" - }, - "ports": { - "description": "An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", - "type": "array", - "items": { - "type": "string" - } - } + "delete": { + "id": "compute.regionDisks.delete", + "path": "projects/{project}/regions/{region}/disks/{disk}", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "httpMethod": "DELETE", + "parameters": { + "disk": { + "description": "Name of the regional persistent disk to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "direction": { - "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot specify the sourceTags fields.", - "type": "string", - "enumDescriptions": [ - "Indicates that firewall should apply to outgoing traffic.", - "Indicates that firewall should apply to incoming traffic." + }, + "parameterOrder": [ + "project", + "region", + "disk" ], - "enum": [ - "EGRESS", - "INGRESS" - ] - }, - "logConfig": { - "description": "This field denotes the logging options for a particular firewall rule. If logging is enabled, logs will be exported to Cloud Logging.", - "$ref": "FirewallLogConfig" - }, - "disabled": { - "description": "Denotes whether the firewall rule is disabled. When set to true, the firewall rule is not enforced and the network behaves as if it did not exist. If this is unspecified, the firewall rule will be enabled.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - } - } - }, - "FirewallLogConfig": { - "id": "FirewallLogConfig", - "description": "The available logging options for a firewall rule.", - "type": "object", - "properties": { - "enable": { - "description": "This field denotes whether to enable logging for a particular firewall rule.", - "type": "boolean" - }, - "metadata": { - "description": "This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs.", - "type": "string", - "enumDescriptions": [ - "", - "" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "EXCLUDE_ALL_METADATA", - "INCLUDE_ALL_METADATA" - ] - } - } - }, - "FirewallPolicyList": { - "id": "FirewallPolicyList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#firewallPolicyList for listsof FirewallPolicies", - "default": "compute#firewallPolicyList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of FirewallPolicy resources.", - "type": "array", - "items": { - "$ref": "FirewallPolicy" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "description": "Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "createSnapshot": { + "id": "compute.regionDisks.createSnapshot", + "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "Name of the regional persistent disk to snapshot.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "FirewallPolicy": { - "id": "FirewallPolicy", - "description": "Represents a Firewall Policy resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#firewallPolicyfor firewall policies", - "default": "compute#firewallPolicy", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project." }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" + "resize": { + "id": "compute.regionDisks.resize", + "path": "projects/{project}/regions/{region}/disks/{disk}/resize", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "Name of the regional persistent disk.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "The project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "request": { + "$ref": "RegionDisksResizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Resizes the specified regional persistent disk." }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a firewall policy, a default rule with action \"allow\" will be added.", - "type": "array", - "items": { - "$ref": "FirewallPolicyRule" - } - }, - "fingerprint": { - "description": "Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make get() request to the firewall policy.", - "type": "string", - "format": "byte" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" - }, - "associations": { - "description": "A list of associations that belong to this firewall policy.", - "type": "array", - "items": { - "$ref": "FirewallPolicyAssociation" - } - }, - "ruleTupleCount": { - "description": "[Output Only] Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.", - "type": "integer", - "format": "int32" - }, - "shortName": { - "description": "User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "displayName": { - "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "deprecated": true, - "type": "string" - }, - "parent": { - "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional firewall policy resides. This field is not applicable to global firewall policies. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - } - } - }, - "FirewallPolicyRule": { - "id": "FirewallPolicyRule", - "description": "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).", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules", - "default": "compute#firewallPolicyRule", - "type": "string" - }, - "ruleName": { - "description": "An optional name for the rule. This field is not a unique identifier and can be updated.", - "type": "string" - }, - "description": { - "description": "An optional description for this resource.", - "type": "string" - }, - "priority": { - "description": "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 prority.", - "type": "integer", - "format": "int32" - }, - "match": { - "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", - "$ref": "FirewallPolicyRuleMatcher" + "addResourcePolicies": { + "id": "compute.regionDisks.addResourcePolicies", + "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The disk name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "request": { + "$ref": "RegionDisksAddResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds existing resource policies to a regional disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation." }, - "action": { - "description": "The Action to perform when the client connection triggers the rule. Valid actions are \"allow\", \"deny\" and \"goto_next\".", - "type": "string" + "removeResourcePolicies": { + "id": "compute.regionDisks.removeResourcePolicies", + "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The disk name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "request": { + "$ref": "RegionDisksRemoveResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes resource policies from a regional disk." }, - "securityProfileGroup": { - "description": "A fully-qualified URL of a SecurityProfile resource instance. Example: https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.", - "type": "string" + "getIamPolicy": { + "id": "compute.regionDisks.getIamPolicy", + "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "tlsInspect": { - "description": "Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.", - "type": "boolean" + "setIamPolicy": { + "id": "compute.regionDisks.setIamPolicy", + "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "direction": { - "description": "The direction in which this rule applies.", - "type": "string", - "enumDescriptions": [ - "", - "" + "testIamPermissions": { + "id": "compute.regionDisks.testIamPermissions", + "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" ], - "enum": [ - "EGRESS", - "INGRESS" - ] + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." }, - "targetResources": { - "description": "A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule.", - "type": "array", - "items": { - "type": "string" - } + "update": { + "id": "compute.regionDisks.update", + "path": "projects/{project}/regions/{region}/disks/{disk}", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "httpMethod": "PATCH", + "parameters": { + "disk": { + "description": "The disk name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + } + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Update the specified disk with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license." }, - "enableLogging": { - "description": "Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on \"goto_next\" rules.", - "type": "boolean" + "startAsyncReplication": { + "id": "compute.regionDisks.startAsyncReplication", + "path": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "request": { + "$ref": "RegionDisksStartAsyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Starts asynchronous replication. Must be invoked on the primary disk." }, - "ruleTupleCount": { - "description": "[Output Only] Calculation of the complexity of a single firewall policy rule.", - "type": "integer", - "format": "int32" + "stopAsyncReplication": { + "id": "compute.regionDisks.stopAsyncReplication", + "path": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", + "httpMethod": "POST", + "parameters": { + "disk": { + "description": "The name of the persistent disk.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "disk" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk." }, - "targetServiceAccounts": { - "description": "A list of service accounts indicating the sets of instances that are applied with this rule.", - "type": "array", - "items": { - "type": "string" - } - }, - "targetSecureTags": { - "description": "A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule applies to all instances on the specified network. Maximum number of target label tags allowed is 256.", - "type": "array", - "items": { - "$ref": "FirewallPolicyRuleSecureTag" - } - }, - "disabled": { - "description": "Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.", - "type": "boolean" - } - } - }, - "FirewallPolicyRuleMatcher": { - "id": "FirewallPolicyRuleMatcher", - "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", - "type": "object", - "properties": { - "srcIpRanges": { - "description": "CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.", - "type": "array", - "items": { - "type": "string" - } - }, - "destIpRanges": { - "description": "CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.", - "type": "array", - "items": { - "type": "string" - } - }, - "layer4Configs": { - "description": "Pairs of IP protocols and ports that the rule should match.", - "type": "array", - "items": { - "$ref": "FirewallPolicyRuleMatcherLayer4Config" - } - }, - "srcSecureTags": { - "description": "List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.", - "type": "array", - "items": { - "$ref": "FirewallPolicyRuleSecureTag" - } - }, - "destAddressGroups": { - "description": "Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.", - "type": "array", - "items": { - "type": "string" - } - }, - "srcAddressGroups": { - "description": "Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.", - "type": "array", - "items": { - "type": "string" - } - }, - "srcFqdns": { - "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.", - "type": "array", - "items": { - "type": "string" - } - }, - "destFqdns": { - "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.", - "type": "array", - "items": { - "type": "string" - } - }, - "srcRegionCodes": { - "description": "Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.", - "type": "array", - "items": { - "type": "string" - } - }, - "destRegionCodes": { - "description": "Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.", - "type": "array", - "items": { - "type": "string" - } - }, - "destThreatIntelligences": { - "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.", - "type": "array", - "items": { - "type": "string" - } - }, - "srcThreatIntelligences": { - "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "FirewallPolicyRuleMatcherLayer4Config": { - "id": "FirewallPolicyRuleMatcherLayer4Config", - "type": "object", - "properties": { - "ipProtocol": { - "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.", - "type": "string" - }, - "ports": { - "description": "An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "FirewallPolicyRuleSecureTag": { - "id": "FirewallPolicyRuleSecureTag", - "type": "object", - "properties": { - "name": { - "description": "Name of the secure tag, created with TagManager's TagValue API.", - "pattern": "tagValues/[0-9]+", - "type": "string" + "stopGroupAsyncReplication": { + "id": "compute.regionDisks.stopGroupAsyncReplication", + "path": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", + "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope." }, - "state": { - "description": "[Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.", - "type": "string", - "enumDescriptions": [ - "", - "" + "bulkInsert": { + "id": "compute.regionDisks.bulkInsert", + "path": "projects/{project}/regions/{region}/disks/bulkInsert", + "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "EFFECTIVE", - "INEFFECTIVE" - ] + "request": { + "$ref": "BulkInsertDiskResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Bulk create a set of disks." } } }, - "FirewallPolicyAssociation": { - "id": "FirewallPolicyAssociation", - "type": "object", - "properties": { - "name": { - "description": "The name for an association.", - "type": "string" + "firewalls": { + "methods": { + "list": { + "id": "compute.firewalls.list", + "path": "projects/{project}/global/firewalls", + "flatPath": "projects/{project}/global/firewalls", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "FirewallList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of firewall rules available to the specified project." }, - "attachmentTarget": { - "description": "The target that the firewall policy is attached to.", - "type": "string" + "get": { + "id": "compute.firewalls.get", + "path": "projects/{project}/global/firewalls/{firewall}", + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "httpMethod": "GET", + "parameters": { + "firewall": { + "description": "Name of the firewall rule to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "response": { + "$ref": "Firewall" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified firewall." }, - "firewallPolicyId": { - "description": "[Output Only] The firewall policy ID of the association.", - "type": "string" + "insert": { + "id": "compute.firewalls.insert", + "path": "projects/{project}/global/firewalls", + "flatPath": "projects/{project}/global/firewalls", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Firewall" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a firewall rule in the specified project using the data included in the request." }, - "shortName": { - "description": "[Output Only] The short name of the firewall policy of the association.", - "type": "string" + "delete": { + "id": "compute.firewalls.delete", + "path": "projects/{project}/global/firewalls/{firewall}", + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "httpMethod": "DELETE", + "parameters": { + "firewall": { + "description": "Name of the firewall rule to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified firewall." }, - "displayName": { - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", - "deprecated": true, - "type": "string" - } - } - }, - "FirewallPoliciesListAssociationsResponse": { - "id": "FirewallPoliciesListAssociationsResponse", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of firewallPolicy associations. Always compute#FirewallPoliciesListAssociations for lists of firewallPolicy associations.", - "default": "compute#firewallPoliciesListAssociationsResponse", - "type": "string" + "update": { + "id": "compute.firewalls.update", + "path": "projects/{project}/global/firewalls/{firewall}", + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "httpMethod": "PUT", + "parameters": { + "firewall": { + "description": "Name of the firewall rule to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "request": { + "$ref": "Firewall" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified firewall rule with the data included in the request. Note that all fields will be updated if using PUT, even fields that are not specified. To update individual fields, please use PATCH instead." }, - "associations": { - "description": "A list of associations.", - "type": "array", - "items": { - "$ref": "FirewallPolicyAssociation" - } + "patch": { + "id": "compute.firewalls.patch", + "path": "projects/{project}/global/firewalls/{firewall}", + "flatPath": "projects/{project}/global/firewalls/{firewall}", + "httpMethod": "PATCH", + "parameters": { + "firewall": { + "description": "Name of the firewall rule to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "request": { + "$ref": "Firewall" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified firewall rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." } } }, - "GlobalOrganizationSetPolicyRequest": { - "id": "GlobalOrganizationSetPolicyRequest", - "type": "object", - "properties": { - "policy": { - "description": "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 in general a valid policy but certain services (like Projects) might reject them.", - "$ref": "Policy" - }, - "bindings": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", - "type": "array", - "items": { - "$ref": "Binding" - } + "firewallPolicies": { + "methods": { + "list": { + "id": "compute.firewallPolicies.list", + "path": "locations/global/firewallPolicies", + "flatPath": "locations/global/firewallPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "parentId": { + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", + "location": "query", + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "response": { + "$ref": "FirewallPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all the policies that have been configured for the specified folder or organization." }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "type": "string", - "format": "byte" - } - } - }, - "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { - "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", - "type": "object", - "properties": { - "firewalls": { - "description": "Effective firewalls on the network.", - "type": "array", - "items": { - "$ref": "Firewall" - } + "get": { + "id": "compute.firewallPolicies.get", + "path": "locations/global/firewallPolicies/{firewallPolicy}", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to get.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified firewall policy." }, - "firewallPolicys": { - "description": "Effective firewalls from firewall policy.", - "type": "array", - "items": { - "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" - } - } - } - }, - "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", - "type": "object", - "properties": { - "name": { - "description": "[Output Only] The name of the firewall policy.", - "type": "string" + "insert": { + "id": "compute.firewallPolicies.insert", + "path": "locations/global/firewallPolicies", + "flatPath": "locations/global/firewallPolicies", + "httpMethod": "POST", + "parameters": { + "parentId": { + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", + "location": "query", + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new policy in the specified project using the data included in the request." }, - "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + "delete": { + "id": "compute.firewallPolicies.delete", + "path": "locations/global/firewallPolicies/{firewallPolicy}", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "DELETE", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to delete.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" ], - "enum": [ - "HIERARCHY", - "NETWORK", - "NETWORK_REGIONAL", - "UNSPECIFIED" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified policy." }, - "displayName": { - "description": "[Output Only] The display name of the firewall policy.", - "type": "string" + "patch": { + "id": "compute.firewallPolicies.patch", + "path": "locations/global/firewallPolicies/{firewallPolicy}", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "PATCH", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified policy with the data included in the request." }, - "rules": { - "description": "The rules that apply to the network.", - "type": "array", - "items": { + "getRule": { + "id": "compute.firewallPolicies.getRule", + "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "location": "query", + "type": "integer", + "format": "int32" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "response": { "$ref": "FirewallPolicyRule" - } - } - } - }, - "SecurityPolicyList": { - "id": "SecurityPolicyList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#securityPolicyList for listsof securityPolicies", - "default": "compute#securityPolicyList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of SecurityPolicy resources.", - "type": "array", - "items": { - "$ref": "SecurityPolicy" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets a rule of the specified priority." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "addRule": { + "id": "compute.firewallPolicies.addRule", + "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "SecurityPolicy": { - "id": "SecurityPolicy", - "description": "Represents a Google Cloud Armor security policy resource. Only external backend services that use load balancers can reference a security policy. For more information, see Google Cloud Armor security policy overview.", - "type": "object", - "properties": { - "userDefinedFields": { - "description": "Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes extracted from a fixed offset in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask to select certain bits. Rules may then specify matching values for these fields. Example: userDefinedFields: - name: \"ipv4_fragment_offset\" base: IPV4 offset: 6 size: 2 mask: \"0x1fff\"", - "type": "array", - "items": { - "$ref": "SecurityPolicyUserDefinedField" - } - }, - "kind": { - "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies", - "default": "compute#securityPolicy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule which is a rule with priority 2147483647 and match all condition (for the match condition this means match \"*\" for srcIpRanges and for the networkMatch condition every field must be either match \"*\" or not set). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRule" - } - }, - "adaptiveProtectionConfig": { - "$ref": "SecurityPolicyAdaptiveProtectionConfig" - }, - "ddosProtectionConfig": { - "$ref": "SecurityPolicyDdosProtectionConfig" - }, - "advancedOptionsConfig": { - "$ref": "SecurityPolicyAdvancedOptionsConfig" - }, - "recaptchaOptionsConfig": { - "$ref": "SecurityPolicyRecaptchaOptionsConfig" - }, - "fingerprint": { - "description": "Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make get() request to the security policy.", - "type": "string", - "format": "byte" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "type": { - "description": "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.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + }, + "parameterOrder": [ + "firewallPolicy" ], - "enum": [ - "CLOUD_ARMOR", - "CLOUD_ARMOR_EDGE", - "CLOUD_ARMOR_NETWORK" - ] + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts a rule into a firewall policy." }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this security policy, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the security policy.", - "type": "string", - "format": "byte" - }, - "region": { - "description": "[Output Only] URL of the region where the regional security policy resides. This field is not applicable to global security policies.", - "type": "string" - } - } - }, - "SecurityPolicyUserDefinedField": { - "id": "SecurityPolicyUserDefinedField", - "type": "object", - "properties": { - "name": { - "description": "The name of this field. Must be unique within the policy.", - "type": "string" - }, - "base": { - "description": "The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + "removeRule": { + "id": "compute.firewallPolicies.removeRule", + "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" ], - "enum": [ - "IPV4", - "IPV6", - "TCP", - "UDP" - ] - }, - "offset": { - "description": "Offset of the first byte of the field (in network byte order) relative to 'base'.", - "type": "integer", - "format": "int32" - }, - "size": { - "description": "Size of the field in bytes. Valid values: 1-4.", - "type": "integer", - "format": "int32" - }, - "mask": { - "description": "If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with \"0x\"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.", - "type": "string" - } - } - }, - "SecurityPolicyRule": { - "id": "SecurityPolicyRule", - "description": "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).", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules", - "default": "compute#securityPolicyRule", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "priority": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "match": { - "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", - "$ref": "SecurityPolicyRuleMatcher" - }, - "networkMatch": { - "description": "A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \"ipv4_fragment_offset\" values: - \"1-0x1fff\" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \"ipv4_fragment_offset\" with a value between 1 and 0x1fff inclusive.", - "$ref": "SecurityPolicyRuleNetworkMatcher" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes a rule of the specified priority." }, - "action": { - "description": "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. ", - "type": "string" + "patchRule": { + "id": "compute.firewallPolicies.patchRule", + "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches a rule of the specified priority." }, - "preview": { - "description": "If set to true, the specified action is not enforced.", - "type": "boolean" + "addAssociation": { + "id": "compute.firewallPolicies.addAssociation", + "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "replaceExistingAssociation": { + "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.", + "location": "query", + "type": "boolean" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts an association for the specified firewall policy." }, - "rateLimitOptions": { - "description": "Must be specified if the action is \"rate_based_ban\" or \"throttle\". Cannot be specified for any other actions.", - "$ref": "SecurityPolicyRuleRateLimitOptions" + "removeAssociation": { + "id": "compute.firewallPolicies.removeAssociation", + "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Name for the attachment that will be removed.", + "location": "query", + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes an association for the specified firewall policy." }, - "headerAction": { - "description": "Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "$ref": "SecurityPolicyRuleHttpHeaderAction" + "listAssociations": { + "id": "compute.firewallPolicies.listAssociations", + "path": "locations/global/firewallPolicies/listAssociations", + "flatPath": "locations/global/firewallPolicies/listAssociations", + "httpMethod": "GET", + "parameters": { + "targetResource": { + "description": "The target resource to list associations. It is an organization, or a folder.", + "location": "query", + "type": "string" + } + }, + "response": { + "$ref": "FirewallPoliciesListAssociationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists associations of a specified target, i.e., organization or folder." }, - "redirectOptions": { - "description": "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.", - "$ref": "SecurityPolicyRuleRedirectOptions" + "getAssociation": { + "id": "compute.firewallPolicies.getAssociation", + "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "The name of the association to get from the firewall policy.", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicyAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets an association with the specified name." }, - "preconfiguredWafConfig": { - "description": "Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.", - "$ref": "SecurityPolicyRulePreconfiguredWafConfig" - } - } - }, - "SecurityPolicyRuleMatcher": { - "id": "SecurityPolicyRuleMatcher", - "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", - "type": "object", - "properties": { - "expr": { - "description": "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.", - "$ref": "Expr" + "cloneRules": { + "id": "compute.firewallPolicies.cloneRules", + "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceFirewallPolicy": { + "description": "The firewall policy from which to copy rules.", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Copies rules to the specified firewall policy." }, - "exprOptions": { - "description": "The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').", - "$ref": "SecurityPolicyRuleMatcherExprOptions" + "move": { + "id": "compute.firewallPolicies.move", + "path": "locations/global/firewallPolicies/{firewallPolicy}/move", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + }, + "parentId": { + "description": "The new parent of the firewall policy. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", + "location": "query", + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Moves the specified firewall policy." }, - "versionedExpr": { - "description": "Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config.", - "type": "string", - "enumDescriptions": [ - "Matches the source IP address of a request to the IP ranges supplied in config." + "getIamPolicy": { + "id": "compute.firewallPolicies.getIamPolicy", + "path": "locations/global/firewallPolicies/{resource}/getIamPolicy", + "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "resource" ], - "enum": [ - "SRC_IPS_V1" - ] + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "config": { - "description": "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.", - "$ref": "SecurityPolicyRuleMatcherConfig" - } - } - }, - "SecurityPolicyRuleMatcherExprOptions": { - "id": "SecurityPolicyRuleMatcherExprOptions", - "type": "object", - "properties": { - "recaptchaOptions": { - "description": "reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.", - "$ref": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions" - } - } - }, - "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions": { - "id": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", - "type": "object", - "properties": { - "actionTokenSiteKeys": { - "description": "A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", - "type": "array", - "items": { - "type": "string" - } + "setIamPolicy": { + "id": "compute.firewallPolicies.setIamPolicy", + "path": "locations/global/firewallPolicies/{resource}/setIamPolicy", + "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "resource" + ], + "request": { + "$ref": "GlobalOrganizationSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "sessionTokenSiteKeys": { - "description": "A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", - "type": "array", - "items": { - "type": "string" - } + "testIamPermissions": { + "id": "compute.firewallPolicies.testIamPermissions", + "path": "locations/global/firewallPolicies/{resource}/testIamPermissions", + "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "SecurityPolicyRuleMatcherConfig": { - "id": "SecurityPolicyRuleMatcherConfig", - "type": "object", - "properties": { - "srcIpRanges": { - "description": "CIDR IP address range. Maximum number of src_ip_ranges allowed is 10.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SecurityPolicyRuleNetworkMatcher": { - "id": "SecurityPolicyRuleNetworkMatcher", - "description": "Represents a match condition that incoming network traffic is evaluated against.", - "type": "object", - "properties": { - "userDefinedFields": { - "description": "User-defined fields. Each element names a defined field and lists the matching values for that field.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch" - } - }, - "srcIpRanges": { - "description": "Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", - "type": "array", - "items": { - "type": "string" - } - }, - "destIpRanges": { - "description": "Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", - "type": "array", - "items": { - "type": "string" - } - }, - "ipProtocols": { - "description": "IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".", - "type": "array", - "items": { - "type": "string" - } - }, - "srcPorts": { - "description": "Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", - "type": "array", - "items": { - "type": "string" - } - }, - "destPorts": { - "description": "Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", - "type": "array", - "items": { - "type": "string" - } - }, - "srcRegionCodes": { - "description": "Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.", - "type": "array", - "items": { - "type": "string" - } - }, - "srcAsns": { - "description": "BGP Autonomous System Number associated with the source IP address.", - "type": "array", - "items": { - "type": "integer", - "format": "uint32" - } - } - } - }, - "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch": { - "id": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch", - "type": "object", - "properties": { - "name": { - "description": "Name of the user-defined field, as given in the definition.", - "type": "string" - }, - "values": { - "description": "Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SecurityPolicyRuleRateLimitOptions": { - "id": "SecurityPolicyRuleRateLimitOptions", - "type": "object", - "properties": { - "rateLimitThreshold": { - "description": "Threshold at which to begin ratelimiting.", - "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold" - }, - "conformAction": { - "description": "Action to take for requests that are under the configured rate limit threshold. Valid option is \"allow\" only.", - "type": "string" - }, - "exceedAction": { - "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR.", - "type": "string" - }, - "exceedRedirectOptions": { - "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "$ref": "SecurityPolicyRuleRedirectOptions" - }, - "enforceOnKey": { - "description": "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. ", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "networkFirewallPolicies": { + "methods": { + "list": { + "id": "compute.networkFirewallPolicies.list", + "path": "projects/{project}/global/firewallPolicies", + "flatPath": "projects/{project}/global/firewallPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "ALL", - "HTTP_COOKIE", - "HTTP_HEADER", - "HTTP_PATH", - "IP", - "REGION_CODE", - "SNI", - "TLS_JA3_FINGERPRINT", - "USER_IP", - "XFF_IP" - ] + "response": { + "$ref": "FirewallPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all the policies that have been configured for the specified project." }, - "enforceOnKeyName": { - "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", - "type": "string" + "get": { + "id": "compute.networkFirewallPolicies.get", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to get.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network firewall policy." }, - "enforceOnKeyConfigs": { - "description": "If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig" - } + "insert": { + "id": "compute.networkFirewallPolicies.insert", + "path": "projects/{project}/global/firewallPolicies", + "flatPath": "projects/{project}/global/firewallPolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new policy in the specified project using the data included in the request." }, - "banThreshold": { - "description": "Can only be specified if the action for the rule is \"rate_based_ban\". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'.", - "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold" + "delete": { + "id": "compute.networkFirewallPolicies.delete", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "DELETE", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified policy." }, - "banDurationSec": { - "description": "Can only be specified if the action for the rule is \"rate_based_ban\". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.", - "type": "integer", - "format": "int32" - } - } - }, - "SecurityPolicyRuleRateLimitOptionsThreshold": { - "id": "SecurityPolicyRuleRateLimitOptionsThreshold", - "type": "object", - "properties": { - "count": { - "description": "Number of HTTP(S) requests for calculating the threshold.", - "type": "integer", - "format": "int32" + "patch": { + "id": "compute.networkFirewallPolicies.patch", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "PATCH", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified policy with the data included in the request." }, - "intervalSec": { - "description": "Interval over which the threshold is computed.", - "type": "integer", - "format": "int32" - } - } - }, - "SecurityPolicyRuleRedirectOptions": { - "id": "SecurityPolicyRuleRedirectOptions", - "type": "object", - "properties": { - "type": { - "description": "Type of the redirect action.", - "type": "string", - "enumDescriptions": [ - "", - "" + "getRule": { + "id": "compute.networkFirewallPolicies.getRule", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" ], - "enum": [ - "EXTERNAL_302", - "GOOGLE_RECAPTCHA" - ] + "response": { + "$ref": "FirewallPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets a rule of the specified priority." }, - "target": { - "description": "Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.", - "type": "string" - } - } - }, - "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig": { - "id": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig", - "type": "object", - "properties": { - "enforceOnKeyType": { - "description": "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 \"enforceOnKeyConfigs\" 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. ", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "addRule": { + "id": "compute.networkFirewallPolicies.addRule", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "maxPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "minPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" ], - "enum": [ - "ALL", - "HTTP_COOKIE", - "HTTP_HEADER", - "HTTP_PATH", - "IP", - "REGION_CODE", - "SNI", - "TLS_JA3_FINGERPRINT", - "USER_IP", - "XFF_IP" - ] + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts a rule into a firewall policy." }, - "enforceOnKeyName": { - "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", - "type": "string" - } - } - }, - "SecurityPolicyRuleHttpHeaderAction": { - "id": "SecurityPolicyRuleHttpHeaderAction", - "type": "object", - "properties": { - "requestHeadersToAdds": { - "description": "The list of request headers to add or overwrite if they're already present.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption" - } - } - } - }, - "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption": { - "id": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption", - "type": "object", - "properties": { - "headerName": { - "description": "The name of the header to set.", - "type": "string" - }, - "headerValue": { - "description": "The value to set the named header to.", - "type": "string" - } - } - }, - "SecurityPolicyRulePreconfiguredWafConfig": { - "id": "SecurityPolicyRulePreconfiguredWafConfig", - "type": "object", - "properties": { - "exclusions": { - "description": "A list of exclusions to apply during preconfigured WAF evaluation.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusion" - } - } - } - }, - "SecurityPolicyRulePreconfiguredWafConfigExclusion": { - "id": "SecurityPolicyRulePreconfiguredWafConfigExclusion", - "type": "object", - "properties": { - "targetRuleSet": { - "description": "Target WAF rule set to apply the preconfigured WAF exclusion.", - "type": "string" - }, - "targetRuleIds": { - "description": "A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set.", - "type": "array", - "items": { - "type": "string" - } - }, - "requestHeadersToExclude": { - "description": "A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - } - }, - "requestCookiesToExclude": { - "description": "A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - } - }, - "requestQueryParamsToExclude": { - "description": "A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - } - }, - "requestUrisToExclude": { - "description": "A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded.", - "type": "array", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - } - } - } - }, - "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams": { - "id": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams", - "type": "object", - "properties": { - "val": { - "description": "The value of the field.", - "type": "string" - }, - "op": { - "description": "The match operator for the field.", - "type": "string", - "enumDescriptions": [ - "The operator matches if the field value contains the specified value.", - "The operator matches if the field value ends with the specified value.", - "The operator matches if the field value equals the specified value.", - "The operator matches if the field value is any value.", - "The operator matches if the field value starts with the specified value." + "removeRule": { + "id": "compute.networkFirewallPolicies.removeRule", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" ], - "enum": [ - "CONTAINS", - "ENDS_WITH", - "EQUALS", - "EQUALS_ANY", - "STARTS_WITH" - ] - } - } - }, - "SecurityPolicyAdaptiveProtectionConfig": { - "id": "SecurityPolicyAdaptiveProtectionConfig", - "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP).", - "type": "object", - "properties": { - "layer7DdosDefenseConfig": { - "description": "If set to true, enables Cloud Armor Machine Learning.", - "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig" - } - } - }, - "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { - "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", - "description": "Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "type": "object", - "properties": { - "enable": { - "description": "If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "type": "boolean" - }, - "ruleVisibility": { - "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "type": "string", - "enumDescriptions": [ - "", - "" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "PREMIUM", - "STANDARD" - ] - }, - "thresholdConfigs": { - "description": "Configuration options for layer7 adaptive protection for various customizable thresholds.", - "type": "array", - "items": { - "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" - } - } - } - }, - "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { - "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", - "type": "object", - "properties": { - "name": { - "description": "The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "description": "Deletes a rule of the specified priority." }, - "autoDeployLoadThreshold": { - "type": "number", - "format": "float" + "patchRule": { + "id": "compute.networkFirewallPolicies.patchRule", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches a rule of the specified priority." }, - "autoDeployConfidenceThreshold": { - "type": "number", - "format": "float" + "getIamPolicy": { + "id": "compute.networkFirewallPolicies.getIamPolicy", + "path": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "autoDeployImpactedBaselineThreshold": { - "type": "number", - "format": "float" + "setIamPolicy": { + "id": "compute.networkFirewallPolicies.setIamPolicy", + "path": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "autoDeployExpirationSec": { - "type": "integer", - "format": "int32" - } - } - }, - "SecurityPolicyDdosProtectionConfig": { - "id": "SecurityPolicyDdosProtectionConfig", - "type": "object", - "properties": { - "ddosProtection": { - "type": "string", - "enumDescriptions": [ - "", - "" + "testIamPermissions": { + "id": "compute.networkFirewallPolicies.testIamPermissions", + "path": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "ADVANCED", - "STANDARD" - ] - } - } - }, - "SecurityPolicyAdvancedOptionsConfig": { - "id": "SecurityPolicyAdvancedOptionsConfig", - "type": "object", - "properties": { - "jsonParsing": { - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "DISABLED", - "STANDARD", - "STANDARD_WITH_GRAPHQL" - ] + "description": "Returns permissions that a caller has on the specified resource." }, - "jsonCustomConfig": { - "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD.", - "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig" + "addAssociation": { + "id": "compute.networkFirewallPolicies.addAssociation", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "replaceExistingAssociation": { + "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.", + "location": "query", + "type": "boolean" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts an association for the specified firewall policy." }, - "logLevel": { - "type": "string", - "enumDescriptions": [ - "", - "" + "removeAssociation": { + "id": "compute.networkFirewallPolicies.removeAssociation", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Name for the attachment that will be removed.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "firewallPolicy" ], - "enum": [ - "NORMAL", - "VERBOSE" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes an association for the specified firewall policy." }, - "userIpRequestHeaders": { - "description": "An optional list of case-insensitive request header names to use for resolving the callers client IP address.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { - "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", - "type": "object", - "properties": { - "contentTypes": { - "description": "A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type \"/\" subtype *[\";\" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SecurityPolicyRecaptchaOptionsConfig": { - "id": "SecurityPolicyRecaptchaOptionsConfig", - "type": "object", - "properties": { - "redirectSiteKey": { - "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "type": "string" - } - } - }, - "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { - "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", - "type": "object", - "properties": { - "preconfiguredExpressionSets": { - "$ref": "SecurityPoliciesWafConfig" - } - } - }, - "SecurityPoliciesWafConfig": { - "id": "SecurityPoliciesWafConfig", - "type": "object", - "properties": { - "wafRules": { - "$ref": "PreconfiguredWafSet" - } - } - }, - "PreconfiguredWafSet": { - "id": "PreconfiguredWafSet", - "type": "object", - "properties": { - "expressionSets": { - "description": "List of entities that are currently supported for WAF rules.", - "type": "array", - "items": { - "$ref": "WafExpressionSet" - } - } - } - }, - "WafExpressionSet": { - "id": "WafExpressionSet", - "type": "object", - "properties": { - "id": { - "description": "Google specified expression set ID. The format should be: - E.g. XSS-20170329 required", - "type": "string" - }, - "aliases": { - "description": "A list of alternate IDs. The format should be: - E.g. XSS-stable Generic suffix like \"stable\" is particularly useful if a policy likes to avail newer set of expressions without having to change the policy. A given alias name can't be used for more than one entity set.", - "type": "array", - "items": { - "type": "string" - } - }, - "expressions": { - "description": "List of available expressions.", - "type": "array", - "items": { - "$ref": "WafExpressionSetExpression" - } - } - } - }, - "WafExpressionSetExpression": { - "id": "WafExpressionSetExpression", - "type": "object", - "properties": { - "id": { - "description": "Expression ID should uniquely identify the origin of the expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule id 973337. The ID could be used to determine the individual attack definition that has been detected. It could also be used to exclude it from the policy in case of false positive. required", - "type": "string" - }, - "sensitivity": { - "description": "The sensitivity value associated with the WAF rule ID. This corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for opt-in only rules.", - "type": "integer", - "format": "int32" - } - } - }, - "SecurityPoliciesAggregatedList": { - "id": "SecurityPoliciesAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security Policies.", - "default": "compute#securityPoliciesAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of SecurityPoliciesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of security policies.", - "$ref": "SecurityPoliciesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getAssociation": { + "id": "compute.networkFirewallPolicies.getAssociation", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried association belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "name": { + "description": "The name of the association to get from the firewall policy.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" } - } - }, - "etag": { - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SecurityPoliciesScopedList": { - "id": "SecurityPoliciesScopedList", - "type": "object", - "properties": { - "securityPolicies": { - "description": "A list of SecurityPolicies contained in this scope.", - "type": "array", - "items": { - "$ref": "SecurityPolicy" - } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicyAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets an association with the specified name." }, - "warning": { - "description": "Informational warning which replaces the list of security policies when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "cloneRules": { + "id": "compute.networkFirewallPolicies.cloneRules", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceFirewallPolicy": { + "description": "The firewall policy from which to copy rules.", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Copies rules to the specified firewall policy." } } }, - "InstanceList": { - "id": "InstanceList", - "description": "Contains a list of instances.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.", - "default": "compute#instanceList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Instance resources.", - "type": "array", - "items": { - "$ref": "Instance" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "regionNetworkFirewallPolicies": { + "methods": { + "list": { + "id": "compute.regionNetworkFirewallPolicies.list", + "path": "projects/{project}/regions/{region}/firewallPolicies", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "Instance": { - "id": "Instance", - "description": "Represents an Instance resource. An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#instance for instances.", - "default": "compute#instance", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.instances.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "FirewallPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all the network firewall policies that have been configured for the specified project in the given region." }, - "tags": { - "description": "Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field.", - "$ref": "Tags" + "get": { + "id": "compute.regionNetworkFirewallPolicies.get", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to get.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network firewall policy." }, - "machineType": { - "description": "Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.", - "type": "string" + "insert": { + "id": "compute.regionNetworkFirewallPolicies.insert", + "path": "projects/{project}/regions/{region}/firewallPolicies", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new network firewall policy in the specified project and region." }, - "status": { - "description": "[Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.", - "type": "string", - "enumDescriptions": [ - "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", - "Resources are being allocated for the instance.", - "The instance is in repair.", - "The instance is running.", - "All required resources have been allocated and the instance is being started.", - "The instance has stopped successfully.", - "The instance is currently stopping (either being deleted or killed).", - "The instance has suspended.", - "The instance is suspending.", - "The instance has stopped (either by explicit action or underlying failure)." + "delete": { + "id": "compute.regionNetworkFirewallPolicies.delete", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "httpMethod": "DELETE", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" ], - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified network firewall policy." }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", - "type": "string" + "patch": { + "id": "compute.regionNetworkFirewallPolicies.patch", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "httpMethod": "PATCH", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified network firewall policy." }, - "zone": { - "description": "[Output Only] URL of the zone where the instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "getRule": { + "id": "compute.regionNetworkFirewallPolicies.getRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "response": { + "$ref": "FirewallPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets a rule of the specified priority." }, - "canIpForward": { - "description": "Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .", - "type": "boolean" + "addRule": { + "id": "compute.regionNetworkFirewallPolicies.addRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "maxPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "minPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts a rule into a network firewall policy." }, - "networkInterfaces": { - "description": "An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.", - "type": "array", - "items": { - "$ref": "NetworkInterface" - } - }, - "disks": { - "description": "Array of disks associated with this instance. Persistent disks must be created before you can assign them.", - "type": "array", - "items": { - "$ref": "AttachedDisk" - } - }, - "metadata": { - "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.", - "$ref": "Metadata" - }, - "serviceAccounts": { - "description": "A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.", - "type": "array", - "items": { - "$ref": "ServiceAccount" - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "scheduling": { - "description": "Sets the scheduling options for this instance.", - "$ref": "Scheduling" - }, - "cpuPlatform": { - "description": "[Output Only] The CPU platform used by this instance.", - "type": "string" - }, - "labels": { - "description": "Labels to apply to this instance. These can be later modified by the setLabels method.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "params": { - "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.", - "$ref": "InstanceParams" - }, - "labelFingerprint": { - "description": "A fingerprint for this request, which is essentially a hash of the label's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the instance.", - "type": "string", - "format": "byte" - }, - "instanceEncryptionKey": { - "description": "Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation.", - "$ref": "CustomerEncryptionKey" - }, - "minCpuPlatform": { - "description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\".", - "type": "string" - }, - "guestAccelerators": { - "description": "A list of the type and count of accelerator cards attached to the instance.", - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } - }, - "startRestricted": { - "description": "[Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.", - "type": "boolean" - }, - "deletionProtection": { - "description": "Whether the resource should be protected against deletion.", - "type": "boolean" - }, - "resourcePolicies": { - "description": "Resource policies applied to this instance.", - "type": "array", - "items": { - "type": "string" - } - }, - "sourceMachineImage": { - "description": "Source machine image", - "type": "string" - }, - "reservationAffinity": { - "description": "Specifies the reservations that this instance can consume from.", - "$ref": "ReservationAffinity" - }, - "hostname": { - "description": "Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.", - "type": "string" - }, - "displayDevice": { - "description": "Enables display device for the instance.", - "$ref": "DisplayDevice" - }, - "shieldedInstanceConfig": { - "$ref": "ShieldedInstanceConfig" - }, - "shieldedInstanceIntegrityPolicy": { - "$ref": "ShieldedInstanceIntegrityPolicy" - }, - "sourceMachineImageEncryptionKey": { - "description": "Source machine image encryption key when creating an instance from a machine image.", - "$ref": "CustomerEncryptionKey" - }, - "confidentialInstanceConfig": { - "$ref": "ConfidentialInstanceConfig" - }, - "fingerprint": { - "description": "Specifies a fingerprint for this resource, which is essentially a hash of the instance's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance. You must always provide an up-to-date fingerprint hash in order to update the instance. To see the latest fingerprint, make get() request to the instance.", - "type": "string", - "format": "byte" - }, - "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.", - "type": "string", - "enumDescriptions": [ - "Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork." - ], - "enum": [ - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", - "INHERIT_FROM_SUBNETWORK" - ] - }, - "advancedMachineFeatures": { - "description": "Controls for advanced machine-related behavior features.", - "$ref": "AdvancedMachineFeatures" - }, - "lastStartTimestamp": { - "description": "[Output Only] Last start timestamp in RFC3339 text format.", - "type": "string" - }, - "lastStopTimestamp": { - "description": "[Output Only] Last stop timestamp in RFC3339 text format.", - "type": "string" - }, - "lastSuspendedTimestamp": { - "description": "[Output Only] Last suspended timestamp in RFC3339 text format.", - "type": "string" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "satisfiesPzi": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "resourceStatus": { - "description": "[Output Only] Specifies values set for instance attributes as compared to the values requested by user in the corresponding input only field.", - "$ref": "ResourceStatus" - }, - "networkPerformanceConfig": { - "$ref": "NetworkPerformanceConfig" - }, - "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", - "type": "string", - "enumDescriptions": [ - "Default value. This value is unused.", - "Indicates user chose no operation.", - "Indicates user chose to opt for VM shutdown on key revocation." + "removeRule": { + "id": "compute.regionNetworkFirewallPolicies.removeRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" ], - "enum": [ - "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", - "NONE", - "STOP" - ] - } - } - }, - "Tags": { - "id": "Tags", - "description": "A set of instance tags.", - "type": "object", - "properties": { - "items": { - "description": "An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "array", - "items": { - "type": "string" - } - }, - "fingerprint": { - "description": "Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance.", - "type": "string", - "format": "byte" - } - } - }, - "NetworkInterface": { - "id": "NetworkInterface", - "description": "A network interface resource attached to an instance.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#networkInterface for network interfaces.", - "default": "compute#networkInterface", - "type": "string" - }, - "network": { - "description": "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default ", - "type": "string" - }, - "subnetwork": { - "description": "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 ", - "type": "string" - }, - "networkIP": { - "description": "An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.", - "type": "string" - }, - "ipv6Address": { - "description": "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.", - "type": "string" - }, - "internalIpv6PrefixLength": { - "description": "The prefix length of the primary internal IPv6 range.", - "type": "integer", - "format": "int32" - }, - "name": { - "description": "[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.", - "type": "string" - }, - "accessConfigs": { - "description": "An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.", - "type": "array", - "items": { - "$ref": "AccessConfig" - } - }, - "ipv6AccessConfigs": { - "description": "An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.", - "type": "array", - "items": { - "$ref": "AccessConfig" - } - }, - "aliasIpRanges": { - "description": "An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.", - "type": "array", - "items": { - "$ref": "AliasIpRange" - } - }, - "fingerprint": { - "description": "Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date.", - "type": "string", - "format": "byte" - }, - "stackType": { - "description": "The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.", - "type": "string", - "enumDescriptions": [ - "The network interface can have both IPv4 and IPv6 addresses.", - "The network interface will be assigned IPv4 address." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ] + "description": "Deletes a rule of the specified priority." }, - "ipv6AccessType": { - "description": "[Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6.", - "type": "string", - "enumDescriptions": [ - "This network interface can have external IPv6.", - "This network interface can have internal IPv6." + "patchRule": { + "id": "compute.regionNetworkFirewallPolicies.patchRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" ], - "enum": [ - "EXTERNAL", - "INTERNAL" - ] - }, - "queueCount": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "nicType": { - "description": "The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.", - "type": "string", - "enumDescriptions": [ - "GVNIC", - "No type specified.", - "VIRTIO" + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "GVNIC", - "UNSPECIFIED_NIC_TYPE", - "VIRTIO_NET" - ] - }, - "networkAttachment": { - "description": "The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", - "type": "string" - } - } - }, - "AccessConfig": { - "id": "AccessConfig", - "description": "An access configuration attached to an instance's network interface. Only one access config per instance is supported.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#accessConfig for access configs.", - "default": "compute#accessConfig", - "type": "string" + "description": "Patches a rule of the specified priority." }, - "type": { - "description": "The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.", - "type": "string", - "enumDescriptions": [ - "", - "" + "cloneRules": { + "id": "compute.regionNetworkFirewallPolicies.cloneRules", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceFirewallPolicy": { + "description": "The firewall policy from which to copy rules.", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" ], - "enum": [ - "DIRECT_IPV6", - "ONE_TO_ONE_NAT" - ] - }, - "name": { - "description": "The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.", - "type": "string" - }, - "natIP": { - "description": "Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", - "type": "string" - }, - "externalIpv6": { - "description": "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.", - "type": "string" - }, - "externalIpv6PrefixLength": { - "description": "Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.", - "type": "integer", - "format": "int32" - }, - "setPublicPtr": { - "description": "Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated.", - "type": "boolean" - }, - "publicPtrDomainName": { - "description": "The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range.", - "type": "string" - }, - "networkTier": { - "description": "This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP.", - "type": "string", - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ] + "description": "Copies rules to the specified network firewall policy." }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this access config.", - "type": "string" - } - } - }, - "AliasIpRange": { - "id": "AliasIpRange", - "description": "An alias IP range attached to an instance's network interface.", - "type": "object", - "properties": { - "ipCidrRange": { - "description": "The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24).", - "type": "string" - }, - "subnetworkRangeName": { - "description": "The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.", - "type": "string" - } - } - }, - "AttachedDisk": { - "id": "AttachedDisk", - "description": "An instance-attached disk resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", - "default": "compute#attachedDisk", - "type": "string" - }, - "type": { - "description": "Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.", - "type": "string", - "enumDescriptions": [ - "", - "" + "getAssociation": { + "id": "compute.regionNetworkFirewallPolicies.getAssociation", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "httpMethod": "GET", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried association belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "The name of the association to get from the firewall policy.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" ], - "enum": [ - "PERSISTENT", - "SCRATCH" - ] - }, - "mode": { - "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.", - "type": "string", - "enumDescriptions": [ - "Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.", - "*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode." + "response": { + "$ref": "FirewallPolicyAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "READ_ONLY", - "READ_WRITE" - ] + "description": "Gets an association with the specified name." }, - "savedState": { - "description": "For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.", - "type": "string", - "enumDescriptions": [ - "*[Default]* Disk state has not been preserved.", - "Disk state has been preserved." + "addAssociation": { + "id": "compute.regionNetworkFirewallPolicies.addAssociation", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "replaceExistingAssociation": { + "description": "Indicates whether or not to replace it if an association already exists. This is false by default, in which case an error will be returned if an association already exists.", + "location": "query", + "type": "boolean" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" ], - "enum": [ - "DISK_SAVED_STATE_UNSPECIFIED", - "PRESERVED" - ] - }, - "source": { - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk.", - "type": "string" - }, - "deviceName": { - "description": "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. This name can be used to reference the device for mounting, resizing, and so on, from 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.", - "type": "string" - }, - "index": { - "description": "[Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.", - "type": "integer", - "format": "int32" - }, - "boot": { - "description": "Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", - "type": "boolean" - }, - "initializeParams": { - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", - "$ref": "AttachedDiskInitializeParams" - }, - "autoDelete": { - "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", - "type": "boolean" - }, - "licenses": { - "description": "[Output Only] Any valid publicly visible licenses.", - "type": "array", - "items": { - "type": "string" - } - }, - "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.", - "type": "string", - "enumDescriptions": [ - "", - "" + "request": { + "$ref": "FirewallPolicyAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "NVME", - "SCSI" - ] - }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "type": "array", - "items": { - "$ref": "GuestOsFeature" - } + "description": "Inserts an association for the specified network firewall policy." }, - "diskEncryptionKey": { - "description": "Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group.", - "$ref": "CustomerEncryptionKey" + "removeAssociation": { + "id": "compute.regionNetworkFirewallPolicies.removeAssociation", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", + "httpMethod": "POST", + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "Name for the association that will be removed.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes an association for the specified network firewall policy." }, - "diskSizeGb": { - "description": "The size of the disk in GB.", - "type": "string", - "format": "int64" + "getEffectiveFirewalls": { + "id": "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", + "path": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", + "httpMethod": "GET", + "parameters": { + "network": { + "description": "Network reference", + "location": "query", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "network" + ], + "response": { + "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the effective firewalls on a given network." }, - "shieldedInstanceInitialState": { - "description": "[Output Only] shielded vm initial state stored on disk", - "$ref": "InitialStateConfig" + "getIamPolicy": { + "id": "compute.regionNetworkFirewallPolicies.getIamPolicy", + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "forceAttach": { - "description": "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", - "type": "boolean" + "setIamPolicy": { + "id": "compute.regionNetworkFirewallPolicies.setIamPolicy", + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "architecture": { - "description": "[Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64.", - "type": "string", - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "testIamPermissions": { + "id": "compute.regionNetworkFirewallPolicies.testIamPermissions", + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" ], - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ] + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "AttachedDiskInitializeParams": { - "id": "AttachedDiskInitializeParams", - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", - "type": "object", - "properties": { - "diskName": { - "description": "Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created.", - "type": "string" - }, - "sourceImage": { - "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set.", - "type": "string" - }, - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB.", - "type": "string", - "format": "int64" - }, - "diskType": { - "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard.", - "type": "string" - }, - "sourceImageEncryptionKey": { - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys.", - "$ref": "CustomerEncryptionKey" - }, - "labels": { - "description": "Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceSnapshot": { - "description": "The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set.", - "type": "string" - }, - "sourceSnapshotEncryptionKey": { - "description": "The customer-supplied encryption key of the source snapshot.", - "$ref": "CustomerEncryptionKey" - }, - "description": { - "description": "An optional description. Provide this property when creating the disk.", - "type": "string" - }, - "replicaZones": { - "description": "Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourcePolicies": { - "description": "Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.", - "type": "array", - "items": { - "type": "string" - } - }, - "onUpdateAction": { - "description": "Specifies which action to take on instance update with this disk. Default is to use the existing disk.", - "type": "string", - "enumDescriptions": [ - "Always recreate the disk.", - "Recreate the disk if source (image, snapshot) of this disk is different from source of existing disk.", - "Use the existing disk, this is the default behaviour." + "securityPolicies": { + "methods": { + "list": { + "id": "compute.securityPolicies.list", + "path": "projects/{project}/global/securityPolicies", + "flatPath": "projects/{project}/global/securityPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "RECREATE_DISK", - "RECREATE_DISK_IF_SOURCE_CHANGED", - "USE_EXISTING_DISK" - ] - }, - "provisionedIops": { - "description": "Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.", - "type": "string", - "format": "int64" - }, - "licenses": { - "description": "A list of publicly visible licenses. Reserved for Google's use.", - "type": "array", - "items": { - "type": "string" - } - }, - "architecture": { - "description": "The architecture of the attached disk. Valid values are arm64 or x86_64.", - "type": "string", - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "response": { + "$ref": "SecurityPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ] - }, - "resourceManagerTags": { - "description": "Resource manager tags to be bound to the disk. 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.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "provisionedThroughput": { - "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124.", - "type": "string", - "format": "int64" - }, - "enableConfidentialCompute": { - "description": "Whether this disk is using confidential compute mode.", - "type": "boolean" - } - } - }, - "Metadata": { - "id": "Metadata", - "description": "A metadata key/value entry.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", - "default": "compute#metadata", - "type": "string" - }, - "fingerprint": { - "description": "Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", - "type": "string", - "format": "byte" + "description": "List all the policies that have been configured for the specified project." }, - "items": { - "description": "Array of key/value pairs. The total size of all keys and values must be less than 512 KB.", - "type": "array", - "items": { - "description": "Metadata", - "type": "object", - "properties": { - "key": { - "description": "Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.", - "pattern": "[a-zA-Z0-9-_]{1,128}", - "annotations": { - "required": [ - "compute.instances.insert", - "compute.projects.setCommonInstanceMetadata" - ] - }, - "type": "string" - }, - "value": { - "description": "Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).", - "annotations": { - "required": [ - "compute.instances.insert", - "compute.projects.setCommonInstanceMetadata" - ] - }, - "type": "string" - } + "get": { + "id": "compute.securityPolicies.get", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to get.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "ServiceAccount": { - "id": "ServiceAccount", - "description": "A service account.", - "type": "object", - "properties": { - "email": { - "description": "Email address of the service account.", - "type": "string" - }, - "scopes": { - "description": "The list of scopes to be made available for this service account.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "Scheduling": { - "id": "Scheduling", - "description": "Sets the scheduling options for an Instance.", - "type": "object", - "properties": { - "onHostMaintenance": { - "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy.", - "type": "string", - "enumDescriptions": [ - "*[Default]* Allows Compute Engine to automatically migrate instances out of the way of maintenance events.", - "Tells Compute Engine to terminate and (optionally) restart the instance away from the maintenance activity. If you would like your instance to be restarted, set the automaticRestart flag to true. Your instance may be restarted more than once, and it may be restarted outside the window of maintenance events." + }, + "parameterOrder": [ + "project", + "securityPolicy" ], - "enum": [ - "MIGRATE", - "TERMINATE" - ] - }, - "automaticRestart": { - "description": "Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.", - "type": "boolean" - }, - "preemptible": { - "description": "Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.", - "type": "boolean" - }, - "nodeAffinities": { - "description": "A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.", - "type": "array", - "items": { - "$ref": "SchedulingNodeAffinity" - } - }, - "minNodeCpus": { - "description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.", - "type": "integer", - "format": "int32" + "response": { + "$ref": "SecurityPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "List all of the ordered rules present in a single specified policy." }, - "locationHint": { - "description": "An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.", - "type": "string" + "insert": { + "id": "compute.securityPolicies.insert", + "path": "projects/{project}/global/securityPolicies", + "flatPath": "projects/{project}/global/securityPolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new policy in the specified project using the data included in the request." }, - "provisioningModel": { - "description": "Specifies the provisioning model of the instance.", - "type": "string", - "enumDescriptions": [ - "Heavily discounted, no guaranteed runtime.", - "Standard provisioning with user controlled runtime, no discounts." + "delete": { + "id": "compute.securityPolicies.delete", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" ], - "enum": [ - "SPOT", - "STANDARD" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified policy." }, - "instanceTerminationAction": { - "description": "Specifies the termination action for the instance.", - "type": "string", - "enumDescriptions": [ - "Delete the VM.", - "Default value. This value is unused.", - "Stop the VM without storing in-memory content. default action." + "patch": { + "id": "compute.securityPolicies.patch", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" ], - "enum": [ - "DELETE", - "INSTANCE_TERMINATION_ACTION_UNSPECIFIED", - "STOP" - ] + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead." }, - "localSsdRecoveryTimeout": { - "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.", - "$ref": "Duration" - } - } - }, - "SchedulingNodeAffinity": { - "id": "SchedulingNodeAffinity", - "description": "Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.", - "type": "object", - "properties": { - "key": { - "description": "Corresponds to the label key of Node resource.", - "type": "string" + "getRule": { + "id": "compute.securityPolicies.getRule", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" + ], + "response": { + "$ref": "SecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets a rule at the specified priority." }, - "operator": { - "description": "Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.", - "type": "string", - "enumDescriptions": [ - "Requires Compute Engine to seek for matched nodes.", - "Requires Compute Engine to avoid certain nodes.", - "" + "addRule": { + "id": "compute.securityPolicies.addRule", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" ], - "enum": [ - "IN", - "NOT_IN", - "OPERATOR_UNSPECIFIED" - ] + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts a rule into a security policy." }, - "values": { - "description": "Corresponds to the label values of Node resource.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "Duration": { - "id": "Duration", - "description": "A Duration represents a 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\". Range is approximately 10,000 years.", - "type": "object", - "properties": { - "seconds": { - "description": "Span of time at a resolution of a second. Must be from 0 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", - "type": "string", - "format": "int64" - }, - "nanos": { - "description": "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive.", - "type": "integer", - "format": "int32" - } - } - }, - "InstanceParams": { - "id": "InstanceParams", - "description": "Additional instance params.", - "type": "object", - "properties": { - "resourceManagerTags": { - "description": "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.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "AcceleratorConfig": { - "id": "AcceleratorConfig", - "description": "A specification of the type and number of accelerator cards attached to the instance.", - "type": "object", - "properties": { - "acceleratorType": { - "description": "Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types.", - "type": "string" - }, - "acceleratorCount": { - "description": "The number of the guest accelerator cards exposed to this instance.", - "type": "integer", - "format": "int32" - } - } - }, - "ReservationAffinity": { - "id": "ReservationAffinity", - "description": "Specifies the reservations that this instance can consume from.", - "type": "object", - "properties": { - "consumeReservationType": { - "description": "Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples.", - "type": "string", - "enumDescriptions": [ - "Consume any allocation available.", - "Do not consume from any allocated capacity.", - "Must consume from a specific reservation. Must specify key value fields for specifying the reservations.", - "" + "removeRule": { + "id": "compute.securityPolicies.removeRule", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" ], - "enum": [ - "ANY_RESERVATION", - "NO_RESERVATION", - "SPECIFIC_RESERVATION", - "UNSPECIFIED" - ] - }, - "key": { - "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.", - "type": "string" - }, - "values": { - "description": "Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or \"projects/different-project/reservations/some-reservation-name\" to target a shared reservation in the same zone but in a different project.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "DisplayDevice": { - "id": "DisplayDevice", - "description": "A set of Display Device options", - "type": "object", - "properties": { - "enableDisplay": { - "description": "Defines whether the instance has Display enabled.", - "type": "boolean" - } - } - }, - "ShieldedInstanceConfig": { - "id": "ShieldedInstanceConfig", - "description": "A set of Shielded Instance options.", - "type": "object", - "properties": { - "enableSecureBoot": { - "description": "Defines whether the instance has Secure Boot enabled. Disabled by default.", - "type": "boolean" - }, - "enableVtpm": { - "description": "Defines whether the instance has the vTPM enabled. Enabled by default.", - "type": "boolean" - }, - "enableIntegrityMonitoring": { - "description": "Defines whether the instance has integrity monitoring enabled. Enabled by default.", - "type": "boolean" - } - } - }, - "ShieldedInstanceIntegrityPolicy": { - "id": "ShieldedInstanceIntegrityPolicy", - "description": "The policy describes the baseline against which Instance boot integrity is measured.", - "type": "object", - "properties": { - "updateAutoLearnPolicy": { - "description": "Updates the integrity policy baseline using the measurements from the VM instance's most recent boot.", - "type": "boolean" - } - } - }, - "ConfidentialInstanceConfig": { - "id": "ConfidentialInstanceConfig", - "description": "A set of Confidential Instance options.", - "type": "object", - "properties": { - "enableConfidentialCompute": { - "description": "Defines whether the instance should have confidential compute enabled.", - "type": "boolean" - } - } - }, - "AdvancedMachineFeatures": { - "id": "AdvancedMachineFeatures", - "description": "Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled).", - "type": "object", - "properties": { - "enableNestedVirtualization": { - "description": "Whether to enable nested virtualization or not (default is false).", - "type": "boolean" - }, - "threadsPerCore": { - "description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", - "type": "integer", - "format": "int32" - }, - "visibleCoreCount": { - "description": "The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width.", - "type": "integer", - "format": "int32" - }, - "enableUefiNetworking": { - "description": "Whether to enable UEFI networking for instance creation.", - "type": "boolean" - } - } - }, - "ResourceStatus": { - "id": "ResourceStatus", - "description": "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.", - "type": "object", - "properties": { - "upcomingMaintenance": { - "$ref": "UpcomingMaintenance" - }, - "physicalHost": { - "description": "[Output Only] An opaque ID of the host on which the VM is running.", - "type": "string" - } - } - }, - "UpcomingMaintenance": { - "id": "UpcomingMaintenance", - "description": "Upcoming Maintenance notification information.", - "type": "object", - "properties": { - "type": { - "description": "Defines the type of maintenance.", - "type": "string", - "enumDescriptions": [ - "Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).", - "No type specified. Do not use this value.", - "Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee)." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "SCHEDULED", - "UNKNOWN_TYPE", - "UNSCHEDULED" - ] - }, - "canReschedule": { - "description": "Indicates if the maintenance can be customer triggered.", - "type": "boolean" - }, - "windowStartTime": { - "description": "The current start time of the maintenance window. This timestamp value is in RFC3339 text format.", - "type": "string" - }, - "windowEndTime": { - "description": "The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.", - "type": "string" - }, - "latestWindowStartTime": { - "description": "The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.", - "type": "string" + "description": "Deletes a rule at the specified priority." }, - "maintenanceStatus": { - "type": "string", - "enumDescriptions": [ - "There is ongoing maintenance on this VM.", - "There is pending maintenance.", - "Unknown maintenance status. Do not use this value." + "patchRule": { + "id": "compute.securityPolicies.patchRule", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "securityPolicy" ], - "enum": [ - "ONGOING", - "PENDING", - "UNKNOWN" - ] - } - } - }, - "NetworkPerformanceConfig": { - "id": "NetworkPerformanceConfig", - "type": "object", - "properties": { - "totalEgressBandwidthTier": { - "type": "string", - "enumDescriptions": [ - "", - "" + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "DEFAULT", - "TIER_1" - ] - } - } - }, - "InstanceAggregatedList": { - "id": "InstanceAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#instanceAggregatedList for aggregated lists of Instance resources.", - "default": "compute#instanceAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "An object that contains a list of instances scoped by zone.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of instances.", - "$ref": "InstancesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "listPreconfiguredExpressionSets": { + "id": "compute.securityPolicies.listPreconfiguredExpressionSets", + "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstancesScopedList": { - "id": "InstancesScopedList", - "type": "object", - "properties": { - "instances": { - "description": "[Output Only] A list of instances contained in this scope.", - "type": "array", - "items": { - "$ref": "Instance" - } + "setLabels": { + "id": "compute.securityPolicies.setLabels", + "path": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of instances when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.securityPolicies.aggregatedList", + "path": "projects/{project}/aggregated/securityPolicies", + "flatPath": "projects/{project}/aggregated/securityPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SecurityPoliciesAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "InstanceListReferrers": { - "id": "InstanceListReferrers", - "description": "Contains a list of instance referrers.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.", - "default": "compute#instanceListReferrers", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Reference resources.", - "type": "array", - "items": { - "$ref": "Reference" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "regionSecurityPolicies": { + "methods": { + "list": { + "id": "compute.regionSecurityPolicies.list", + "path": "projects/{project}/regions/{region}/securityPolicies", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "Reference": { - "id": "Reference", - "description": "Represents a reference to a resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#reference for references.", - "default": "compute#reference", - "type": "string" - }, - "target": { - "description": "URL of the resource to which this reference points.", - "type": "string" - }, - "referenceType": { - "description": "A description of the reference type with no implied semantics. Possible values include: 1. MEMBER_OF ", - "type": "string" + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "SecurityPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "List all the policies that have been configured for the specified project and region." }, - "referrer": { - "description": "URL of the resource which refers to the target.", - "type": "string" - } - } - }, - "SerialPortOutput": { - "id": "SerialPortOutput", - "description": "An instance serial console output.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.", - "default": "compute#serialPortOutput", - "type": "string" + "get": { + "id": "compute.regionSecurityPolicies.get", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to get.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "response": { + "$ref": "SecurityPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "List all of the ordered rules present in a single specified policy." }, - "contents": { - "description": "[Output Only] The contents of the console output.", - "type": "string" - }, - "start": { - "description": "The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer (1 MB), older output is overwritten by newer content. The output start value will indicate the byte position of the output that was returned, which might be different than the `start` value that was specified in the request.", - "type": "string", - "format": "int64" - }, - "next": { - "description": "[Output Only] The position of the next byte of content, regardless of whether the content exists, following the output returned in the `contents` property. Use this value in the next request as the start parameter.", - "type": "string", - "format": "int64" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - } - }, - "Screenshot": { - "id": "Screenshot", - "description": "An instance's screenshot.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#screenshot for the screenshots.", - "default": "compute#screenshot", - "type": "string" + "insert": { + "id": "compute.regionSecurityPolicies.insert", + "path": "projects/{project}/regions/{region}/securityPolicies", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new policy in the specified project using the data included in the request." }, - "contents": { - "description": "[Output Only] The Base64-encoded screenshot data.", - "type": "string" - } - } - }, - "GuestAttributes": { - "id": "GuestAttributes", - "description": "A guest attributes entry.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#guestAttributes for guest attributes entry.", - "default": "compute#guestAttributes", - "type": "string" + "delete": { + "id": "compute.regionSecurityPolicies.delete", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified policy." }, - "variableKey": { - "description": "The key to search for.", - "type": "string" + "patch": { + "id": "compute.regionSecurityPolicies.patch", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead." }, - "variableValue": { - "description": "[Output Only] The value found for the requested key.", - "type": "string" + "getRule": { + "id": "compute.regionSecurityPolicies.getRule", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "response": { + "$ref": "SecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets a rule at the specified priority." }, - "queryPath": { - "description": "The path to be queried. This can be the default namespace ('') or a nested namespace ('\\/') or a specified key ('\\/\\').", - "type": "string" + "addRule": { + "id": "compute.regionSecurityPolicies.addRule", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts a rule into a security policy." }, - "queryValue": { - "description": "[Output Only] The value of the requested queried path.", - "$ref": "GuestAttributesValue" + "removeRule": { + "id": "compute.regionSecurityPolicies.removeRule", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes a rule at the specified priority." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - } - }, - "GuestAttributesValue": { - "id": "GuestAttributesValue", - "description": "Array of guest attribute namespace/key/value tuples.", - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "GuestAttributesEntry" - } + "patchRule": { + "id": "compute.regionSecurityPolicies.patchRule", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask." } } }, - "GuestAttributesEntry": { - "id": "GuestAttributesEntry", - "description": "A guest attributes namespace/key/value entry.", - "type": "object", - "properties": { - "namespace": { - "description": "Namespace for the guest attribute entry.", - "type": "string" - }, - "key": { - "description": "Key for the guest attribute entry.", - "type": "string" + "instances": { + "methods": { + "list": { + "id": "compute.instances.list", + "path": "projects/{project}/zones/{zone}/instances", + "flatPath": "projects/{project}/zones/{zone}/instances", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "InstanceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of instances contained within the specified zone." }, - "value": { - "description": "Value for the guest attribute entry.", - "type": "string" - } - } - }, - "InstancesSetMachineResourcesRequest": { - "id": "InstancesSetMachineResourcesRequest", - "type": "object", - "properties": { - "guestAccelerators": { - "description": "A list of the type and count of accelerator cards attached to the instance.", - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } - } - } - }, - "InstancesSetMachineTypeRequest": { - "id": "InstancesSetMachineTypeRequest", - "type": "object", - "properties": { - "machineType": { - "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of machine types. For example: zones/us-central1-f/machineTypes/n1-standard-1", - "type": "string" - } - } - }, - "InstancesSetMinCpuPlatformRequest": { - "id": "InstancesSetMinCpuPlatformRequest", - "type": "object", - "properties": { - "minCpuPlatform": { - "description": "Minimum cpu/platform this instance should be started at.", - "type": "string" - } - } - }, - "InstancesSetLabelsRequest": { - "id": "InstancesSetLabelsRequest", - "type": "object", - "properties": { - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.", - "type": "string", - "format": "byte" - } - } - }, - "InstancesSetNameRequest": { - "id": "InstancesSetNameRequest", - "type": "object", - "properties": { - "name": { - "description": "The name to be applied to the instance. Needs to be RFC 1035 compliant.", - "type": "string" - }, - "currentName": { - "description": "The current name of this resource, used to prevent conflicts. Provide the latest name when making a request to change name.", - "type": "string" - } - } - }, - "InstancesStartWithEncryptionKeyRequest": { - "id": "InstancesStartWithEncryptionKeyRequest", - "type": "object", - "properties": { - "disks": { - "description": "Array of disks associated with this instance that are protected with a customer-supplied encryption key. In order to start the instance, the disk url and its corresponding key must be provided. If the disk is not protected with a customer-supplied encryption key it should not be specified.", - "type": "array", - "items": { - "$ref": "CustomerEncryptionKeyProtectedDisk" - } - } - } - }, - "CustomerEncryptionKeyProtectedDisk": { - "id": "CustomerEncryptionKeyProtectedDisk", - "type": "object", - "properties": { - "source": { - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks. For example: \"source\": \"/compute/v1/projects/project_id/zones/zone/disks/ disk_name ", - "type": "string" - }, - "diskEncryptionKey": { - "description": "Decrypts data associated with the disk with a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" - } - } - }, - "InstancesSetServiceAccountRequest": { - "id": "InstancesSetServiceAccountRequest", - "type": "object", - "properties": { - "email": { - "description": "Email address of the service account.", - "type": "string" - }, - "scopes": { - "description": "The list of scopes to be made available for this service account.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstancesAddResourcePoliciesRequest": { - "id": "InstancesAddResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be added to this instance.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstancesRemoveResourcePoliciesRequest": { - "id": "InstancesRemoveResourcePoliciesRequest", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be removed from this instance.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstancesSetSecurityPolicyRequest": { - "id": "InstancesSetSecurityPolicyRequest", - "type": "object", - "properties": { - "securityPolicy": { - "description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.", - "type": "string" - }, - "networkInterfaces": { - "description": "The network interfaces that the security policy will be applied to. Network interfaces use the nicN naming format. You can only set a security policy for network interfaces with an access config.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ShieldedInstanceIdentity": { - "id": "ShieldedInstanceIdentity", - "description": "A Shielded Instance Identity.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#shieldedInstanceIdentity for shielded Instance identity entry.", - "default": "compute#shieldedInstanceIdentity", - "type": "string" - }, - "signingKey": { - "description": "An Attestation Key (AK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", - "$ref": "ShieldedInstanceIdentityEntry" - }, - "encryptionKey": { - "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", - "$ref": "ShieldedInstanceIdentityEntry" - } - } - }, - "ShieldedInstanceIdentityEntry": { - "id": "ShieldedInstanceIdentityEntry", - "description": "A Shielded Instance Identity Entry.", - "type": "object", - "properties": { - "ekCert": { - "description": "A PEM-encoded X.509 certificate. This field can be empty.", - "type": "string" - }, - "ekPub": { - "description": "A PEM-encoded public key.", - "type": "string" - } - } - }, - "BulkInsertInstanceResource": { - "id": "BulkInsertInstanceResource", - "description": "A transient resource used in compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This resource is not persisted anywhere, it is used only for processing the requests.", - "type": "object", - "properties": { - "count": { - "description": "The maximum number of instances to create.", - "type": "string", - "format": "int64" - }, - "minCount": { - "description": "The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.", - "type": "string", - "format": "int64" - }, - "namePattern": { - "description": "The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern must contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: a name_pattern of inst-#### generates instance names such as inst-0001 and inst-0002. If existing instances in the same project and zone have names that match the name pattern then the generated instance numbers start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### begin with inst-0051. The name pattern placeholder #...# can contain up to 18 characters.", - "type": "string" - }, - "perInstanceProperties": { - "description": "Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.", - "type": "object", - "additionalProperties": { - "$ref": "BulkInsertInstanceResourcePerInstanceProperties" - } - }, - "sourceInstanceTemplate": { - "description": "Specifies the instance template from which to create instances. You may combine sourceInstanceTemplate with instanceProperties to override specific values from an existing instance template. Bulk API follows the semantics of JSON Merge Patch described by RFC 7396. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate This field is optional.", - "type": "string" - }, - "instanceProperties": { - "description": "The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.", - "$ref": "InstanceProperties" - }, - "locationPolicy": { - "description": "Policy for chosing target zone. For more information, see Create VMs in bulk .", - "$ref": "LocationPolicy" - } - } - }, - "BulkInsertInstanceResourcePerInstanceProperties": { - "id": "BulkInsertInstanceResourcePerInstanceProperties", - "description": "Per-instance properties to be set on individual instances. To be extended in the future.", - "type": "object", - "properties": { - "name": { - "description": "This field is only temporary. It will be removed. Do not use it.", - "type": "string" - }, - "hostname": { - "description": "Specifies the hostname of the instance. More details in: https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", - "type": "string" - } - } - }, - "InstanceProperties": { - "id": "InstanceProperties", - "type": "object", - "properties": { - "description": { - "description": "An optional text description for the instances that are created from these properties.", - "type": "string" - }, - "tags": { - "description": "A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.", - "$ref": "Tags" - }, - "resourceManagerTags": { - "description": "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.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "machineType": { - "description": "The machine type to use for instances that are created from these properties.", - "annotations": { - "required": [ - "compute.instanceTemplates.insert" - ] - }, - "type": "string" - }, - "canIpForward": { - "description": "Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.", - "type": "boolean" - }, - "networkInterfaces": { - "description": "An array of network access configurations for this interface.", - "type": "array", - "items": { - "$ref": "NetworkInterface" - } - }, - "disks": { - "description": "An array of disks that are associated with the instances that are created from these properties.", - "type": "array", - "items": { - "$ref": "AttachedDisk" - } - }, - "metadata": { - "description": "The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.", - "$ref": "Metadata" - }, - "serviceAccounts": { - "description": "A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.", - "type": "array", - "items": { - "$ref": "ServiceAccount" - } - }, - "scheduling": { - "description": "Specifies the scheduling options for the instances that are created from these properties.", - "$ref": "Scheduling" - }, - "labels": { - "description": "Labels to apply to instances that are created from these properties.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "guestAccelerators": { - "description": "A list of guest accelerator cards' type and count to use for instances created from these properties.", - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } - }, - "minCpuPlatform": { - "description": "Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more information, read Specifying a Minimum CPU Platform.", - "type": "string" - }, - "reservationAffinity": { - "description": "Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet.", - "$ref": "ReservationAffinity" - }, - "shieldedInstanceConfig": { - "description": "Note that for MachineImage, this is not supported yet.", - "$ref": "ShieldedInstanceConfig" - }, - "resourcePolicies": { - "description": "Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet.", - "type": "array", - "items": { - "type": "string" - } - }, - "confidentialInstanceConfig": { - "description": "Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet.", - "$ref": "ConfidentialInstanceConfig" - }, - "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet.", - "type": "string", - "enumDescriptions": [ - "Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork." - ], - "enum": [ - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", - "INHERIT_FROM_SUBNETWORK" - ] - }, - "advancedMachineFeatures": { - "description": "Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet.", - "$ref": "AdvancedMachineFeatures" - }, - "networkPerformanceConfig": { - "description": "Note that for MachineImage, this is not supported yet.", - "$ref": "NetworkPerformanceConfig" - }, - "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", - "type": "string", - "enumDescriptions": [ - "Default value. This value is unused.", - "Indicates user chose no operation.", - "Indicates user chose to opt for VM shutdown on key revocation." - ], - "enum": [ - "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", - "NONE", - "STOP" - ] - } - } - }, - "LocationPolicy": { - "id": "LocationPolicy", - "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", - "type": "object", - "properties": { - "locations": { - "description": "Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.", - "type": "object", - "additionalProperties": { - "$ref": "LocationPolicyLocation" - } - }, - "targetShape": { - "description": "Strategy for distributing VMs across zones in a region.", - "type": "string", - "enumDescriptions": [ - "GCE picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", - "GCE always selects a single zone for all the VMs, optimizing for resource quotas, available reservations and general capacity. Recommended for batch workloads that cannot tollerate distribution over multiple zones. This the default shape in Bulk Insert and Capacity Advisor APIs.", - "GCE prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across allowed zones to minimize the impact of zonal failure. Recommended for highly available serving workloads." - ], - "enum": [ - "ANY", - "ANY_SINGLE_ZONE", - "BALANCED" - ] - } - } - }, - "LocationPolicyLocation": { - "id": "LocationPolicyLocation", - "type": "object", - "properties": { - "preference": { - "description": "Preference for a given location. Set to either ALLOW or DENY.", - "type": "string", - "enumDescriptions": [ - "Location is allowed for use.", - "Location is prohibited.", - "Default value, unused." - ], - "enum": [ - "ALLOW", - "DENY", - "PREFERENCE_UNSPECIFIED" - ] - }, - "constraints": { - "description": "Constraints that the caller requires on the result distribution in this zone.", - "$ref": "LocationPolicyLocationConstraints" - } - } - }, - "LocationPolicyLocationConstraints": { - "id": "LocationPolicyLocationConstraints", - "description": "Per-zone constraints on location policy for this zone.", - "type": "object", - "properties": { - "maxCount": { - "description": "Maximum number of items that are allowed to be placed in this zone. The value must be non-negative.", - "type": "integer", - "format": "int32" - } - } - }, - "InstancesGetEffectiveFirewallsResponse": { - "id": "InstancesGetEffectiveFirewallsResponse", - "type": "object", - "properties": { - "firewalls": { - "description": "Effective firewalls on the instance.", - "type": "array", - "items": { - "$ref": "Firewall" - } - }, - "firewallPolicys": { - "description": "Effective firewalls from firewall policies.", - "type": "array", - "items": { - "$ref": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" - } - } - } - }, - "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", - "type": "object", - "properties": { - "name": { - "description": "[Output Only] The name of the firewall policy.", - "type": "string" - }, - "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" - ], - "enum": [ - "HIERARCHY", - "NETWORK", - "NETWORK_REGIONAL", - "UNSPECIFIED" - ] - }, - "shortName": { - "description": "[Output Only] The short name of the firewall policy.", - "type": "string" - }, - "displayName": { - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", - "deprecated": true, - "type": "string" - }, - "rules": { - "description": "The rules that apply to the network.", - "type": "array", - "items": { - "$ref": "FirewallPolicyRule" - } - } - } - }, - "ReservationList": { - "id": "ReservationList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#reservationsList for listsof reservations", - "default": "compute#reservationList", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "items": { - "description": "[Output Only] A list of Allocation resources.", - "type": "array", - "items": { - "$ref": "Reservation" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - } - } - }, - "Reservation": { - "id": "Reservation", - "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#reservations for reservations.", - "default": "compute#reservation", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "zone": { - "description": "Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, - "type": "string" - }, - "specificReservation": { - "description": "Reservation for instances with specific machine shapes.", - "$ref": "AllocationSpecificSKUReservation" - }, - "aggregateReservation": { - "description": "Reservation for aggregated resources, providing shape flexibility.", - "$ref": "AllocationAggregateReservation" - }, - "commitment": { - "description": "[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.", - "type": "string" - }, - "specificReservationRequired": { - "description": "Indicates whether the reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.", - "type": "boolean" - }, - "status": { - "description": "[Output Only] The status of the reservation.", - "type": "string", - "enumDescriptions": [ - "Resources are being allocated for the reservation.", - "Reservation is currently being deleted.", - "", - "Reservation has allocated all its resources.", - "Reservation is currently being resized." - ], - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "UPDATING" - ] - }, - "shareSettings": { - "description": "Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation.", - "$ref": "ShareSettings" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "resourcePolicies": { - "description": "Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "resourceStatus": { - "description": "[Output Only] Status information for Reservation resource.", - "$ref": "AllocationResourceStatus" - } - } - }, - "AllocationSpecificSKUReservation": { - "id": "AllocationSpecificSKUReservation", - "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 6", - "type": "object", - "properties": { - "instanceProperties": { - "description": "The instance properties for the reservation.", - "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties" - }, - "count": { - "description": "Specifies the number of resources that are allocated.", - "type": "string", - "format": "int64" - }, - "inUseCount": { - "description": "[Output Only] Indicates how many instances are in use.", - "type": "string", - "format": "int64" - }, - "assuredCount": { - "description": "[Output Only] Indicates how many instances are actually usable currently.", - "type": "string", - "format": "int64" - }, - "sourceInstanceTemplate": { - "description": "Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", - "type": "string" - } - } - }, - "AllocationSpecificSKUAllocationReservedInstanceProperties": { - "id": "AllocationSpecificSKUAllocationReservedInstanceProperties", - "description": "Properties of the SKU instances being reserved. Next ID: 9", - "type": "object", - "properties": { - "machineType": { - "description": "Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.", - "type": "string" - }, - "guestAccelerators": { - "description": "Specifies accelerator type and count.", - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } - }, - "minCpuPlatform": { - "description": "Minimum cpu platform the reservation.", - "type": "string" - }, - "localSsds": { - "description": "Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.", - "type": "array", - "items": { - "$ref": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk" - } - }, - "locationHint": { - "description": "An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.", - "type": "string" - } - } - }, - "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { - "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", - "type": "object", - "properties": { - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB.", - "type": "string", - "format": "int64" - }, - "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NVME", - "SCSI" - ] - } - } - }, - "AllocationAggregateReservation": { - "id": "AllocationAggregateReservation", - "description": "This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation.", - "type": "object", - "properties": { - "vmFamily": { - "description": "The VM family that all instances scheduled against this reservation must belong to.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" - ], - "enum": [ - "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", - "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", - "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" - ] - }, - "reservedResources": { - "description": "List of reserved resources (CPUs, memory, accelerators).", - "type": "array", - "items": { - "$ref": "AllocationAggregateReservationReservedResourceInfo" - } - }, - "inUseResources": { - "description": "[Output only] List of resources currently in use.", - "type": "array", - "items": { - "$ref": "AllocationAggregateReservationReservedResourceInfo" - } - }, - "workloadType": { - "description": "The workload type of the instances that will target this reservation.", - "type": "string", - "enumDescriptions": [ - "Reserved resources will be optimized for BATCH workloads, such as ML training.", - "Reserved resources will be optimized for SERVING workloads, such as ML inference.", - "" - ], - "enum": [ - "BATCH", - "SERVING", - "UNSPECIFIED" - ] - } - } - }, - "AllocationAggregateReservationReservedResourceInfo": { - "id": "AllocationAggregateReservationReservedResourceInfo", - "type": "object", - "properties": { - "accelerator": { - "description": "Properties of accelerator resources in this reservation.", - "$ref": "AllocationAggregateReservationReservedResourceInfoAccelerator" - } - } - }, - "AllocationAggregateReservationReservedResourceInfoAccelerator": { - "id": "AllocationAggregateReservationReservedResourceInfoAccelerator", - "type": "object", - "properties": { - "acceleratorCount": { - "description": "Number of accelerators of specified type.", - "type": "integer", - "format": "int32" - }, - "acceleratorType": { - "description": "Full or partial URL to accelerator type. e.g. \"projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l\"", - "type": "string" - } - } - }, - "ShareSettings": { - "id": "ShareSettings", - "description": "The share setting for reservations and sole tenancy node groups.", - "type": "object", - "properties": { - "shareType": { - "description": "Type of sharing for this shared-reservation", - "type": "string", - "enumDescriptions": [ - "Default value.", - "Shared-reservation is open to entire Organization", - "Default value. This value is unused.", - "Shared-reservation is open to specific projects" - ], - "enum": [ - "LOCAL", - "ORGANIZATION", - "SHARE_TYPE_UNSPECIFIED", - "SPECIFIC_PROJECTS" - ] - }, - "projectMap": { - "description": "A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS.", - "type": "object", - "additionalProperties": { - "$ref": "ShareSettingsProjectConfig" - } - } - } - }, - "ShareSettingsProjectConfig": { - "id": "ShareSettingsProjectConfig", - "description": "Config for each project in the share settings.", - "type": "object", - "properties": { - "projectId": { - "description": "The project ID, should be same as the key of this project config in the parent map.", - "type": "string" - } - } - }, - "AllocationResourceStatus": { - "id": "AllocationResourceStatus", - "description": "[Output Only] Contains output only fields.", - "type": "object", - "properties": { - "specificSkuAllocation": { - "description": "Allocation Properties of this reservation.", - "$ref": "AllocationResourceStatusSpecificSKUAllocation" - } - } - }, - "AllocationResourceStatusSpecificSKUAllocation": { - "id": "AllocationResourceStatusSpecificSKUAllocation", - "description": "Contains Properties set for the reservation.", - "type": "object", - "properties": { - "sourceInstanceTemplateId": { - "description": "ID of the instance template used to populate reservation properties.", - "type": "string" - } - } - }, - "ReservationAggregatedList": { - "id": "ReservationAggregatedList", - "description": "Contains a list of reservations.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#reservationAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Allocation resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of reservations.", - "$ref": "ReservationsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ReservationsScopedList": { - "id": "ReservationsScopedList", - "type": "object", - "properties": { - "reservations": { - "description": "A list of reservations contained in this scope.", - "type": "array", - "items": { - "$ref": "Reservation" - } - }, - "warning": { - "description": "Informational warning which replaces the list of reservations when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "ReservationsResizeRequest": { - "id": "ReservationsResizeRequest", - "type": "object", - "properties": { - "specificSkuCount": { - "description": "Number of allocated resources can be resized with minimum = 1 and maximum = 1000.", - "type": "string", - "format": "int64" - } - } - }, - "InstanceGroupList": { - "id": "InstanceGroupList", - "description": "A list of InstanceGroup resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupList for instance group lists.", - "default": "compute#instanceGroupList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceGroup resources.", - "type": "array", - "items": { - "$ref": "InstanceGroup" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "InstanceGroup": { - "id": "InstanceGroup", - "description": "Represents an Instance Group resource. Instance Groups can be used to configure a target for load balancing. Instance groups can either be managed or unmanaged. To create managed instance groups, use the instanceGroupManager or regionInstanceGroupManager resource instead. Use zonal unmanaged instance groups if you need to apply load balancing to groups of heterogeneous instances or if you need to manage the instances yourself. You cannot create regional unmanaged instance groups. For more information, read Instance groups.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroup for instance groups.", - "default": "compute#instanceGroup", - "type": "string" - }, - "id": { - "description": "[Output Only] A unique identifier for this instance group, generated by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this instance group in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The name of the instance group. The name must be 1-63 characters long, and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.instanceGroups.insert" - ] - }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "namedPorts": { - "description": " Assigns a name to a port number. For example: {name: \"http\", port: 80} This allows the system to reference ports by the assigned name instead of a port number. Named ports can also contain multiple ports. For example: [{name: \"app1\", port: 8080}, {name: \"app1\", port: 8081}, {name: \"app2\", port: 8082}] Named ports apply to all instances in this instance group. ", - "type": "array", - "items": { - "$ref": "NamedPort" - } - }, - "network": { - "description": "[Output Only] The URL of the network to which all instances in the instance group belong. If your instance has multiple network interfaces, then the network and subnetwork fields only refer to the network and subnet used by your primary interface (nic0).", - "type": "string" - }, - "fingerprint": { - "description": "[Output Only] The fingerprint of the named ports. The system uses this fingerprint to detect conflicts when multiple users change the named ports concurrently.", - "type": "string", - "format": "byte" - }, - "zone": { - "description": "[Output Only] The URL of the zone where the instance group is located (for zonal resources).", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] The URL for this instance group. The server generates this URL.", - "type": "string" - }, - "size": { - "description": "[Output Only] The total number of instances in the instance group.", - "type": "integer", - "format": "int32" - }, - "region": { - "description": "[Output Only] The URL of the region where the instance group is located (for regional resources).", - "type": "string" - }, - "subnetwork": { - "description": "[Output Only] The URL of the subnetwork to which all instances in the instance group belong. If your instance has multiple network interfaces, then the network and subnetwork fields only refer to the network and subnet used by your primary interface (nic0).", - "type": "string" - } - } - }, - "NamedPort": { - "id": "NamedPort", - "description": "The named port. For example: \u003c\"http\", 80\u003e.", - "type": "object", - "properties": { - "name": { - "description": "The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.", - "type": "string" - }, - "port": { - "description": "The port number, which can be a value between 1 and 65535.", - "type": "integer", - "format": "int32" - } - } - }, - "InstanceGroupAggregatedList": { - "id": "InstanceGroupAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupAggregatedList for aggregated lists of instance groups.", - "default": "compute#instanceGroupAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceGroupsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "The name of the scope that contains this set of instance groups.", - "$ref": "InstanceGroupsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstanceGroupsScopedList": { - "id": "InstanceGroupsScopedList", - "type": "object", - "properties": { - "instanceGroups": { - "description": "[Output Only] The list of instance groups that are contained in this scope.", - "type": "array", - "items": { - "$ref": "InstanceGroup" - } - }, - "warning": { - "description": "[Output Only] An informational warning that replaces the list of instance groups when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "InstanceGroupsAddInstancesRequest": { - "id": "InstanceGroupsAddInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The list of instances to add to the instance group.", - "type": "array", - "items": { - "$ref": "InstanceReference" - } - } - } - }, - "InstanceReference": { - "id": "InstanceReference", - "type": "object", - "properties": { - "instance": { - "description": "The URL for a specific instance. @required compute.instancegroups.addInstances/removeInstances", - "type": "string" - } - } - }, - "InstanceGroupsRemoveInstancesRequest": { - "id": "InstanceGroupsRemoveInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The list of instances to remove from the instance group.", - "type": "array", - "items": { - "$ref": "InstanceReference" - } - } - } - }, - "InstanceGroupsListInstancesRequest": { - "id": "InstanceGroupsListInstancesRequest", - "type": "object", - "properties": { - "instanceState": { - "description": "A filter for the state of the instances in the instance group. Valid options are ALL or RUNNING. If you do not specify this parameter the list includes all instances regardless of their state.", - "type": "string", - "enumDescriptions": [ - "Includes all instances in the generated list regardless of their state.", - "Includes instances in the generated list only if they have a RUNNING state." - ], - "enum": [ - "ALL", - "RUNNING" - ] - } - } - }, - "InstanceGroupsListInstances": { - "id": "InstanceGroupsListInstances", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupsListInstances for the list of instances in the specified instance group.", - "default": "compute#instanceGroupsListInstances", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceWithNamedPorts resources.", - "type": "array", - "items": { - "$ref": "InstanceWithNamedPorts" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "InstanceWithNamedPorts": { - "id": "InstanceWithNamedPorts", - "type": "object", - "properties": { - "instance": { - "description": "[Output Only] The URL of the instance.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the instance.", - "type": "string", - "enumDescriptions": [ - "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", - "Resources are being allocated for the instance.", - "The instance is in repair.", - "The instance is running.", - "All required resources have been allocated and the instance is being started.", - "The instance has stopped successfully.", - "The instance is currently stopping (either being deleted or killed).", - "The instance has suspended.", - "The instance is suspending.", - "The instance has stopped (either by explicit action or underlying failure)." - ], - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" - ] - }, - "namedPorts": { - "description": "[Output Only] The named ports that belong to this instance group.", - "type": "array", - "items": { - "$ref": "NamedPort" - } - } - } - }, - "InstanceGroupsSetNamedPortsRequest": { - "id": "InstanceGroupsSetNamedPortsRequest", - "type": "object", - "properties": { - "namedPorts": { - "description": "The list of named ports to set for this instance group.", - "type": "array", - "items": { - "$ref": "NamedPort" - } - }, - "fingerprint": { - "description": "The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request. A request with an incorrect fingerprint will fail with error 412 conditionNotMet.", - "type": "string", - "format": "byte" - } - } - }, - "RegionInstanceGroupList": { - "id": "RegionInstanceGroupList", - "description": "Contains a list of InstanceGroup resources.", - "type": "object", - "properties": { - "kind": { - "description": "The resource type.", - "default": "compute#regionInstanceGroupList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceGroup resources.", - "type": "array", - "items": { - "$ref": "InstanceGroup" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "RegionInstanceGroupsListInstancesRequest": { - "id": "RegionInstanceGroupsListInstancesRequest", - "type": "object", - "properties": { - "instanceState": { - "description": "Instances in which state should be returned. Valid options are: 'ALL', 'RUNNING'. By default, it lists all instances.", - "type": "string", - "enumDescriptions": [ - "Matches any status of the instances, running, non-running and others.", - "Instance is in RUNNING state if it is running." - ], - "enum": [ - "ALL", - "RUNNING" - ] - }, - "portName": { - "description": "Name of port user is interested in. It is optional. If it is set, only information about this ports will be returned. If it is not set, all the named ports will be returned. Always lists all instances.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - } - } - }, - "RegionInstanceGroupsListInstances": { - "id": "RegionInstanceGroupsListInstances", - "type": "object", - "properties": { - "kind": { - "description": "The resource type.", - "default": "compute#regionInstanceGroupsListInstances", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceWithNamedPorts resources.", - "type": "array", - "items": { - "$ref": "InstanceWithNamedPorts" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "RegionInstanceGroupsSetNamedPortsRequest": { - "id": "RegionInstanceGroupsSetNamedPortsRequest", - "type": "object", - "properties": { - "namedPorts": { - "description": "The list of named ports to set for this instance group.", - "type": "array", - "items": { - "$ref": "NamedPort" - } - }, - "fingerprint": { - "description": "The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.", - "type": "string", - "format": "byte" - } - } - }, - "InstanceGroupManagerList": { - "id": "InstanceGroupManagerList", - "description": "[Output Only] A list of managed instance groups.", - "type": "object", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceGroupManager resources.", - "type": "array", - "items": { - "$ref": "InstanceGroupManager" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - }, - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.", - "default": "compute#instanceGroupManagerList", - "type": "string" - } - } - }, - "InstanceGroupManager": { - "id": "InstanceGroupManager", - "description": "Represents a Managed Instance Group resource. An instance group is a collection of VM instances that you can manage as a single entity. For more information, read Instance groups. For zonal Managed Instance Group, use the instanceGroupManagers resource. For regional Managed Instance Group, use the regionInstanceGroupManagers resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", - "default": "compute#instanceGroupManager", - "type": "string" - }, - "id": { - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this managed instance group in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The name of the managed instance group. The name must be 1-63 characters long, and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert", - "compute.regionInstanceGroupManagers.insert" - ] - }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource.", - "type": "string" - }, - "zone": { - "description": "[Output Only] The URL of a zone where the managed instance group is located (for zonal resources).", - "type": "string" - }, - "region": { - "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources).", - "type": "string" - }, - "distributionPolicy": { - "description": "Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.", - "$ref": "DistributionPolicy" - }, - "instanceTemplate": { - "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", - "type": "string" - }, - "versions": { - "description": "Specifies the instance templates used by this managed instance group to create instances. Each version is defined by an instanceTemplate and a name. Every version can appear at most once per instance group. This field overrides the top-level instanceTemplate field. Read more about the relationships between these fields. Exactly one version must leave the targetSize field unset. That version will be applied to all remaining instances. For more information, read about canary updates.", - "type": "array", - "items": { - "$ref": "InstanceGroupManagerVersion" - } - }, - "allInstancesConfig": { - "description": "Specifies configuration that overrides the instance template configuration for the group.", - "$ref": "InstanceGroupManagerAllInstancesConfig" - }, - "instanceGroup": { - "description": "[Output Only] The URL of the Instance Group resource.", - "type": "string" - }, - "targetPools": { - "description": "The URLs for all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.", - "type": "array", - "items": { - "type": "string" - } - }, - "baseInstanceName": { - "description": "The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.", - "pattern": "[a-z][-a-z0-9]{0,57}", - "type": "string" - }, - "fingerprint": { - "description": "Fingerprint of this resource. This field may be used in optimistic locking. It will be ignored when inserting an InstanceGroupManager. An up-to-date fingerprint must be provided in order to update the InstanceGroupManager, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InstanceGroupManager.", - "type": "string", - "format": "byte" - }, - "currentActions": { - "description": "[Output Only] The list of instance actions and the number of instances in this managed instance group that are scheduled for each of those actions.", - "$ref": "InstanceGroupManagerActionsSummary" - }, - "status": { - "description": "[Output Only] The status of this managed instance group.", - "$ref": "InstanceGroupManagerStatus" - }, - "targetSize": { - "description": "The target number of running instances for this managed instance group. You can reduce this number by using the instanceGroupManager deleteInstances or abandonInstances methods. Resizing the group also changes this number.", - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert", - "compute.regionInstanceGroupManagers.insert" - ] - }, - "type": "integer", - "format": "int32" - }, - "listManagedInstancesResults": { - "description": "Pagination behavior of the listManagedInstances API method for this managed instance group.", - "type": "string", - "enumDescriptions": [ - "(Default) Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", - "Pagination is enabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are respected." - ], - "enum": [ - "PAGELESS", - "PAGINATED" - ] - }, - "selfLink": { - "description": "[Output Only] The URL for this managed instance group. The server defines this URL.", - "type": "string" - }, - "autoHealingPolicies": { - "description": "The autohealing policy for this managed instance group. You can specify only one value.", - "type": "array", - "items": { - "$ref": "InstanceGroupManagerAutoHealingPolicy" - } - }, - "updatePolicy": { - "description": "The update policy for this managed instance group.", - "$ref": "InstanceGroupManagerUpdatePolicy" - }, - "namedPorts": { - "description": "Named ports configured for the Instance Groups complementary to this Instance Group Manager.", - "type": "array", - "items": { - "$ref": "NamedPort" - } - }, - "statefulPolicy": { - "description": "Stateful configuration for this Instanced Group Manager", - "$ref": "StatefulPolicy" - }, - "instanceLifecyclePolicy": { - "description": "The repair policy for this managed instance group.", - "$ref": "InstanceGroupManagerInstanceLifecyclePolicy" - } - } - }, - "DistributionPolicy": { - "id": "DistributionPolicy", - "type": "object", - "properties": { - "zones": { - "description": "Zones where the regional managed instance group will create and manage its instances.", - "type": "array", - "items": { - "$ref": "DistributionPolicyZoneConfiguration" - } - }, - "targetShape": { - "description": "The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).", - "type": "string", - "enumDescriptions": [ - "The group picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", - "The group creates all VM instances within a single zone. The zone is selected based on the present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads with heavy interprocess communication.", - "The group prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across selected zones to minimize the impact of zonal failure. Recommended for highly available serving workloads.", - "The group schedules VM instance creation and deletion to achieve and maintain an even number of managed instances across the selected zones. The distribution is even when the number of managed instances does not differ by more than 1 between any two zones. Recommended for highly available serving workloads." - ], - "enum": [ - "ANY", - "ANY_SINGLE_ZONE", - "BALANCED", - "EVEN" - ] - } - } - }, - "DistributionPolicyZoneConfiguration": { - "id": "DistributionPolicyZoneConfiguration", - "type": "object", - "properties": { - "zone": { - "description": "The URL of the zone. The zone must exist in the region where the managed instance group is located.", - "annotations": { - "required": [ - "compute.regionInstanceGroupManagers.insert" - ] - }, - "type": "string" - } - } - }, - "InstanceGroupManagerVersion": { - "id": "InstanceGroupManagerVersion", - "type": "object", - "properties": { - "name": { - "description": "Name of the version. Unique among all versions in the scope of this managed instance group.", - "type": "string" - }, - "instanceTemplate": { - "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached.", - "type": "string" - }, - "targetSize": { - "description": "Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information.", - "$ref": "FixedOrPercent" - } - } - }, - "FixedOrPercent": { - "id": "FixedOrPercent", - "description": "Encapsulates numeric value that can be either absolute or relative.", - "type": "object", - "properties": { - "fixed": { - "description": "Specifies a fixed number of VM instances. This must be a positive integer.", - "type": "integer", - "format": "int32" - }, - "percent": { - "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.", - "type": "integer", - "format": "int32" - }, - "calculated": { - "description": "[Output Only] Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. ", - "type": "integer", - "format": "int32" - } - } - }, - "InstanceGroupManagerAllInstancesConfig": { - "id": "InstanceGroupManagerAllInstancesConfig", - "type": "object", - "properties": { - "properties": { - "description": "Properties to set on all instances in the group. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration. To apply the configuration, set the group's updatePolicy.type field to use proactive updates or use the applyUpdatesToInstances method.", - "$ref": "InstancePropertiesPatch" - } - } - }, - "InstancePropertiesPatch": { - "id": "InstancePropertiesPatch", - "description": "Represents the change that you want to make to the instance properties.", - "type": "object", - "properties": { - "metadata": { - "description": "The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labels": { - "description": "The label key-value pairs that you want to patch onto the instance.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "InstanceGroupManagerActionsSummary": { - "id": "InstanceGroupManagerActionsSummary", - "type": "object", - "properties": { - "none": { - "description": "[Output Only] The number of instances in the managed instance group that are running and have no scheduled actions.", - "type": "integer", - "format": "int32" - }, - "creating": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.", - "type": "integer", - "format": "int32" - }, - "creatingWithoutRetries": { - "description": "[Output Only] The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly.", - "type": "integer", - "format": "int32" - }, - "verifying": { - "description": "[Output Only] The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation.", - "type": "integer", - "format": "int32" - }, - "recreating": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template.", - "type": "integer", - "format": "int32" - }, - "deleting": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.", - "type": "integer", - "format": "int32" - }, - "abandoning": { - "description": "[Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.", - "type": "integer", - "format": "int32" - }, - "restarting": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.", - "type": "integer", - "format": "int32" - }, - "refreshing": { - "description": "[Output Only] The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance.", - "type": "integer", - "format": "int32" - }, - "suspending": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended.", - "type": "integer", - "format": "int32" - }, - "resuming": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed.", - "type": "integer", - "format": "int32" - }, - "stopping": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped.", - "type": "integer", - "format": "int32" - }, - "starting": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be started or are currently being started.", - "type": "integer", - "format": "int32" - } - } - }, - "InstanceGroupManagerStatus": { - "id": "InstanceGroupManagerStatus", - "type": "object", - "properties": { - "isStable": { - "description": "[Output Only] A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.", - "type": "boolean" - }, - "allInstancesConfig": { - "description": "[Output only] Status of all-instances configuration on the group.", - "$ref": "InstanceGroupManagerStatusAllInstancesConfig" - }, - "versionTarget": { - "description": "[Output Only] A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager.", - "$ref": "InstanceGroupManagerStatusVersionTarget" - }, - "stateful": { - "description": "[Output Only] Stateful status of the given Instance Group Manager.", - "$ref": "InstanceGroupManagerStatusStateful" - }, - "autoscaler": { - "description": "[Output Only] The URL of the Autoscaler that targets this instance group manager.", - "type": "string" - } - } - }, - "InstanceGroupManagerStatusAllInstancesConfig": { - "id": "InstanceGroupManagerStatusAllInstancesConfig", - "type": "object", - "properties": { - "effective": { - "description": "[Output Only] A bit indicating whether this configuration has been applied to all managed instances in the group.", - "type": "boolean" - }, - "currentRevision": { - "description": "[Output Only] Current all-instances configuration revision. This value is in RFC3339 text format.", - "type": "string" - } - } - }, - "InstanceGroupManagerStatusVersionTarget": { - "id": "InstanceGroupManagerStatusVersionTarget", - "type": "object", - "properties": { - "isReached": { - "description": "[Output Only] A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.", - "type": "boolean" - } - } - }, - "InstanceGroupManagerStatusStateful": { - "id": "InstanceGroupManagerStatusStateful", - "type": "object", - "properties": { - "hasStatefulConfig": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.", - "type": "boolean" - }, - "perInstanceConfigs": { - "description": "[Output Only] Status of per-instance configurations on the instance.", - "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs" - } - } - }, - "InstanceGroupManagerStatusStatefulPerInstanceConfigs": { - "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "type": "object", - "properties": { - "allEffective": { - "description": "A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", - "type": "boolean" - } - } - }, - "InstanceGroupManagerAutoHealingPolicy": { - "id": "InstanceGroupManagerAutoHealingPolicy", - "type": "object", - "properties": { - "healthCheck": { - "description": "The URL for the health check that signals autohealing.", - "type": "string" - }, - "initialDelaySec": { - "description": "The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", - "type": "integer", - "format": "int32" - } - } - }, - "InstanceGroupManagerUpdatePolicy": { - "id": "InstanceGroupManagerUpdatePolicy", - "type": "object", - "properties": { - "type": { - "description": "The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update.", - "type": "string", - "enumDescriptions": [ - "MIG will apply new configurations to existing VMs only when you selectively target specific or all VMs to be updated.", - "MIG will automatically apply new configurations to all or a subset of existing VMs and also to new VMs that are added to the group." - ], - "enum": [ - "OPPORTUNISTIC", - "PROACTIVE" - ] - }, - "instanceRedistributionType": { - "description": "The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. ", - "type": "string", - "enumDescriptions": [ - "No action is being proactively performed in order to bring this IGM to its target instance distribution.", - "This IGM will actively converge to its target instance distribution." - ], - "enum": [ - "NONE", - "PROACTIVE" - ] - }, - "minimalAction": { - "description": "Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. ", - "type": "string", - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] - }, - "mostDisruptiveAllowedAction": { - "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", - "type": "string", - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] - }, - "maxSurge": { - "description": "The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge.", - "$ref": "FixedOrPercent" - }, - "maxUnavailable": { - "description": "The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable.", - "$ref": "FixedOrPercent" - }, - "replacementMethod": { - "description": "What action should be used to replace instances. See minimal_action.REPLACE", - "type": "string", - "enumDescriptions": [ - "Instances will be recreated (with the same name)", - "Default option: instances will be deleted and created (with a new name)" - ], - "enum": [ - "RECREATE", - "SUBSTITUTE" - ] - } - } - }, - "StatefulPolicy": { - "id": "StatefulPolicy", - "type": "object", - "properties": { - "preservedState": { - "$ref": "StatefulPolicyPreservedState" - } - } - }, - "StatefulPolicyPreservedState": { - "id": "StatefulPolicyPreservedState", - "description": "Configuration of preserved resources.", - "type": "object", - "properties": { - "disks": { - "description": "Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks.", - "type": "object", - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateDiskDevice" - } - }, - "internalIPs": { - "description": "Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", - "type": "object", - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateNetworkIp" - } - }, - "externalIPs": { - "description": "External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", - "type": "object", - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateNetworkIp" - } - } - } - }, - "StatefulPolicyPreservedStateDiskDevice": { - "id": "StatefulPolicyPreservedStateDiskDevice", - "type": "object", - "properties": { - "autoDelete": { - "description": "These stateful disks will never be deleted during autohealing, update or VM instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ] - } - } - }, - "StatefulPolicyPreservedStateNetworkIp": { - "id": "StatefulPolicyPreservedStateNetworkIp", - "type": "object", - "properties": { - "autoDelete": { - "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ] - } - } - }, - "InstanceGroupManagerInstanceLifecyclePolicy": { - "id": "InstanceGroupManagerInstanceLifecyclePolicy", - "type": "object", - "properties": { - "forceUpdateOnRepair": { - "description": "A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. ", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NO", - "YES" - ] - } - } - }, - "InstanceGroupManagerAggregatedList": { - "id": "InstanceGroupManagerAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerAggregatedList for an aggregated list of managed instance groups.", - "default": "compute#instanceGroupManagerAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceGroupManagersScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] The name of the scope that contains this set of managed instance groups.", - "$ref": "InstanceGroupManagersScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstanceGroupManagersScopedList": { - "id": "InstanceGroupManagersScopedList", - "type": "object", - "properties": { - "instanceGroupManagers": { - "description": "[Output Only] The list of managed instance groups that are contained in the specified project and zone.", - "type": "array", - "items": { - "$ref": "InstanceGroupManager" - } - }, - "warning": { - "description": "[Output Only] The warning that replaces the list of managed instance groups when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.instances.aggregatedList", + "path": "projects/{project}/aggregated/instances", + "flatPath": "projects/{project}/aggregated/instances", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "InstanceGroupManagersDeleteInstancesRequest": { - "id": "InstanceGroupManagersDeleteInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued instances do not have URL and can be deleted only by name. One cannot specify both URLs and names in a single request.", - "type": "array", - "items": { - "type": "string" - } - }, - "skipInstancesOnValidationError": { - "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", - "type": "boolean" - } - } - }, - "InstanceGroupManagersAbandonInstancesRequest": { - "id": "InstanceGroupManagersAbandonInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstanceGroupManagersRecreateInstancesRequest": { - "id": "InstanceGroupManagersRecreateInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstanceGroupManagersSetInstanceTemplateRequest": { - "id": "InstanceGroupManagersSetInstanceTemplateRequest", - "type": "object", - "properties": { - "instanceTemplate": { - "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", - "type": "string" - } - } - }, - "InstanceGroupManagersSetTargetPoolsRequest": { - "id": "InstanceGroupManagersSetTargetPoolsRequest", - "type": "object", - "properties": { - "targetPools": { - "description": "The list of target pool URLs that instances in this managed instance group belong to. The managed instance group applies these target pools to all of the instances in the group. Existing instances and new instances in the group all receive these target pool settings.", - "type": "array", - "items": { - "type": "string" - } - }, - "fingerprint": { - "description": "The fingerprint of the target pools information. Use this optional property to prevent conflicts when multiple users change the target pools settings concurrently. Obtain the fingerprint with the instanceGroupManagers.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.", - "type": "string", - "format": "byte" - } - } - }, - "InstanceGroupManagersListManagedInstancesResponse": { - "id": "InstanceGroupManagersListManagedInstancesResponse", - "type": "object", - "properties": { - "managedInstances": { - "description": "[Output Only] The list of instances in the managed instance group.", - "type": "array", - "items": { - "$ref": "ManagedInstance" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - } - } - }, - "ManagedInstance": { - "id": "ManagedInstance", - "description": "A Managed Instance resource.", - "type": "object", - "properties": { - "name": { - "description": "[Output Only] The name of the instance. The name always exists even if the instance has not yet been created.", - "type": "string" - }, - "instance": { - "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.", - "type": "string" - }, - "id": { - "description": "[Output only] The unique identifier for this resource. This field is empty when instance does not exist.", - "type": "string", - "format": "uint64" - }, - "instanceStatus": { - "description": "[Output Only] The status of the instance. This field is empty when the instance does not exist.", - "type": "string", - "enumDescriptions": [ - "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", - "Resources are being allocated for the instance.", - "The instance is in repair.", - "The instance is running.", - "All required resources have been allocated and the instance is being started.", - "The instance has stopped successfully.", - "The instance is currently stopping (either being deleted or killed).", - "The instance has suspended.", - "The instance is suspending.", - "The instance has stopped (either by explicit action or underlying failure)." - ], - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" - ] - }, - "version": { - "description": "[Output Only] Intended version of this instance.", - "$ref": "ManagedInstanceVersion" - }, - "preservedStateFromPolicy": { - "description": "[Output Only] Preserved state generated based on stateful policy for this instance.", - "$ref": "PreservedState" - }, - "preservedStateFromConfig": { - "description": "[Output Only] Preserved state applied from per-instance config for this instance.", - "$ref": "PreservedState" - }, - "currentAction": { - "description": "[Output Only] The current action that the managed instance group has scheduled for the instance. Possible values: - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance. - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful. - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased instead. - RECREATING The managed instance group is recreating this instance. - DELETING The managed instance group is permanently deleting this instance. - ABANDONING The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group. - RESTARTING The managed instance group is restarting the instance. - REFRESHING The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance. - VERIFYING The managed instance group has created the instance and it is in the process of being verified. ", - "type": "string", - "enumDescriptions": [ - "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", - "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", - "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", - "The managed instance group is permanently deleting this instance.", - "The managed instance group has not scheduled any actions for this instance.", - "The managed instance group is recreating this instance.", - "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", - "The managed instance group is restarting this instance.", - "The managed instance group is resuming this instance.", - "The managed instance group is starting this instance.", - "The managed instance group is stopping this instance.", - "The managed instance group is suspending this instance.", - "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)." - ], - "enum": [ - "ABANDONING", - "CREATING", - "CREATING_WITHOUT_RETRIES", - "DELETING", - "NONE", - "RECREATING", - "REFRESHING", - "RESTARTING", - "RESUMING", - "STARTING", - "STOPPING", - "SUSPENDING", - "VERIFYING" - ] - }, - "instanceHealth": { - "description": "[Output Only] Health state of the instance per health-check.", - "type": "array", - "items": { - "$ref": "ManagedInstanceInstanceHealth" - } - }, - "lastAttempt": { - "description": "[Output Only] Information about the last attempt to create or delete the instance.", - "$ref": "ManagedInstanceLastAttempt" - } - } - }, - "ManagedInstanceVersion": { - "id": "ManagedInstanceVersion", - "type": "object", - "properties": { - "name": { - "description": "[Output Only] Name of the version.", - "type": "string" - }, - "instanceTemplate": { - "description": "[Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.", - "type": "string" - } - } - }, - "PreservedState": { - "id": "PreservedState", - "description": "Preserved state for a given instance.", - "type": "object", - "properties": { - "disks": { - "description": "Preserved disks defined for this instance. This map is keyed with the device names of the disks.", - "type": "object", - "additionalProperties": { - "$ref": "PreservedStatePreservedDisk" - } - }, - "metadata": { - "description": "Preserved metadata defined for this instance.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "internalIPs": { - "description": "Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.", - "type": "object", - "additionalProperties": { - "$ref": "PreservedStatePreservedNetworkIp" - } - }, - "externalIPs": { - "description": "Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.", - "type": "object", - "additionalProperties": { - "$ref": "PreservedStatePreservedNetworkIp" - } - } - } - }, - "PreservedStatePreservedDisk": { - "id": "PreservedStatePreservedDisk", - "type": "object", - "properties": { - "source": { - "description": "The URL of the disk resource that is stateful and should be attached to the VM instance.", - "type": "string" - }, - "mode": { - "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.", - "type": "string", - "enumDescriptions": [ - "Attaches this disk in read-only mode. Multiple VM instances can use a disk in READ_ONLY mode at a time.", - "*[Default]* Attaches this disk in READ_WRITE mode. Only one VM instance at a time can be attached to a disk in READ_WRITE mode." - ], - "enum": [ - "READ_ONLY", - "READ_WRITE" - ] - }, - "autoDelete": { - "description": "These stateful disks will never be deleted during autohealing, update, instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole MIG is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ] - } - } - }, - "PreservedStatePreservedNetworkIp": { - "id": "PreservedStatePreservedNetworkIp", - "type": "object", - "properties": { - "autoDelete": { - "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ] - }, - "ipAddress": { - "description": "Ip address representation", - "$ref": "PreservedStatePreservedNetworkIpIpAddress" - } - } - }, - "PreservedStatePreservedNetworkIpIpAddress": { - "id": "PreservedStatePreservedNetworkIpIpAddress", - "type": "object", - "properties": { - "literal": { - "description": "An IPv4 internal network address to assign to the instance for this network interface.", - "type": "string" - }, - "address": { - "description": "The URL of the reservation for this IP address.", - "type": "string" - } - } - }, - "ManagedInstanceInstanceHealth": { - "id": "ManagedInstanceInstanceHealth", - "type": "object", - "properties": { - "healthCheck": { - "description": "[Output Only] The URL for the health check that verifies whether the instance is healthy.", - "type": "string" - }, - "detailedHealthState": { - "description": "[Output Only] The current detailed instance health state.", - "type": "string", - "enumDescriptions": [ - "The instance is being drained. The existing connections to the instance have time to complete, but the new ones are being refused.", - "The instance is reachable i.e. a connection to the application health checking endpoint can be established, and conforms to the requirements defined by the health check.", - "The instance is unreachable i.e. a connection to the application health checking endpoint cannot be established, or the server does not respond within the specified timeout.", - "The instance is reachable, but does not conform to the requirements defined by the health check.", - "The health checking system is aware of the instance but its health is not known at the moment." - ], - "enum": [ - "DRAINING", - "HEALTHY", - "TIMEOUT", - "UNHEALTHY", - "UNKNOWN" - ] - } - } - }, - "ManagedInstanceLastAttempt": { - "id": "ManagedInstanceLastAttempt", - "type": "object", - "properties": { - "errors": { - "description": "[Output Only] Encountered errors during the last attempt to create or delete the instance.", - "type": "object", - "properties": { - "errors": { - "description": "[Output Only] The array of errors encountered while processing this operation.", - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] The error type identifier for this error.", - "type": "string" - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - }, - "message": { - "description": "[Output Only] An optional, human-readable error message.", - "type": "string" - }, - "errorDetails": { - "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", - "type": "array", - "items": { - "type": "object", - "properties": { - "errorInfo": { - "$ref": "ErrorInfo" - }, - "quotaInfo": { - "$ref": "QuotaExceededInfo" - }, - "help": { - "$ref": "Help" - }, - "localizedMessage": { - "$ref": "LocalizedMessage" - } - } - } - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } - } - } - }, - "InstanceGroupManagersListErrorsResponse": { - "id": "InstanceGroupManagersListErrorsResponse", - "type": "object", - "properties": { - "items": { - "description": "[Output Only] The list of errors of the managed instance group.", - "type": "array", - "items": { - "$ref": "InstanceManagedByIgmError" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - } - } - }, - "InstanceManagedByIgmError": { - "id": "InstanceManagedByIgmError", - "type": "object", - "properties": { - "error": { - "description": "[Output Only] Contents of the error.", - "$ref": "InstanceManagedByIgmErrorManagedInstanceError" - }, - "timestamp": { - "description": "[Output Only] The time that this error occurred. This value is in RFC3339 text format.", - "type": "string" + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstanceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "instanceActionDetails": { - "description": "[Output Only] Details of the instance action that triggered this error. May be null, if the error was not caused by an action on an instance. This field is optional.", - "$ref": "InstanceManagedByIgmErrorInstanceActionDetails" - } - } - }, - "InstanceManagedByIgmErrorManagedInstanceError": { - "id": "InstanceManagedByIgmErrorManagedInstanceError", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] Error code.", - "type": "string" + "listReferrers": { + "id": "compute.instances.listReferrers", + "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instance": { + "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.", + "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "InstanceListReferrers" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed or unmanaged instance group, the referrers list includes the instance group. For more information, read Viewing referrers to VM instances." }, - "message": { - "description": "[Output Only] Error message.", - "type": "string" - } - } - }, - "InstanceManagedByIgmErrorInstanceActionDetails": { - "id": "InstanceManagedByIgmErrorInstanceActionDetails", - "type": "object", - "properties": { - "action": { - "description": "[Output Only] Action that managed instance group was executing on the instance when the error occurred. Possible values:", - "type": "string", - "enumDescriptions": [ - "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", - "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", - "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", - "The managed instance group is permanently deleting this instance.", - "The managed instance group has not scheduled any actions for this instance.", - "The managed instance group is recreating this instance.", - "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", - "The managed instance group is restarting this instance.", - "The managed instance group is resuming this instance.", - "The managed instance group is starting this instance.", - "The managed instance group is stopping this instance.", - "The managed instance group is suspending this instance.", - "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)." + "get": { + "id": "compute.instances.get", + "path": "projects/{project}/zones/{zone}/instances/{instance}", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", + "httpMethod": "GET", + "parameters": { + "instance": { + "description": "Name of the instance resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "ABANDONING", - "CREATING", - "CREATING_WITHOUT_RETRIES", - "DELETING", - "NONE", - "RECREATING", - "REFRESHING", - "RESTARTING", - "RESUMING", - "STARTING", - "STOPPING", - "SUSPENDING", - "VERIFYING" - ] + "response": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Instance resource." }, - "instance": { - "description": "[Output Only] The URL of the instance. The URL can be set even if the instance has not yet been created.", - "type": "string" + "insert": { + "id": "compute.instances.insert", + "path": "projects/{project}/zones/{zone}/instances", + "flatPath": "projects/{project}/zones/{zone}/instances", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceInstanceTemplate": { + "description": "Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", + "location": "query", + "type": "string" + }, + "sourceMachineImage": { + "description": "Specifies the machine image to use to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to a machine image: - https://www.googleapis.com/compute/v1/projects/project/global/global /machineImages/machineImage - projects/project/global/global/machineImages/machineImage - global/machineImages/machineImage ", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Instance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an instance resource in the specified project using the data included in the request." }, - "version": { - "description": "[Output Only] Version this instance was created from, or was being created from, but the creation failed. Corresponds to one of the versions that were set on the Instance Group Manager resource at the time this instance was being created.", - "$ref": "ManagedInstanceVersion" - } - } - }, - "InstanceGroupManagersListPerInstanceConfigsResp": { - "id": "InstanceGroupManagersListPerInstanceConfigsResp", - "type": "object", - "properties": { - "items": { - "description": "[Output Only] The list of PerInstanceConfig.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } + "delete": { + "id": "compute.instances.delete", + "path": "projects/{project}/zones/{zone}/instances/{instance}", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", + "httpMethod": "DELETE", + "parameters": { + "instance": { + "description": "Name of the instance resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Instance resource. For more information, see Deleting an instance." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "reset": { + "id": "compute.instances.reset", + "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "simulateMaintenanceEvent": { + "id": "compute.instances.simulateMaintenanceEvent", + "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "withExtendedNotifications": { + "description": "Determines whether the customers receive notifications before migration. Only applicable to SF vms.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event." + }, + "performMaintenance": { + "id": "compute.instances.performMaintenance", + "path": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "PerInstanceConfig": { - "id": "PerInstanceConfig", - "type": "object", - "properties": { - "name": { - "description": "The name of a per-instance configuration and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configconfiguration for a VM instance that either doesn't exist or is not part of the group will result in an error.", - "type": "string" - }, - "preservedState": { - "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy.", - "$ref": "PreservedState" - }, - "status": { - "description": "The status of applying this per-instance configuration on the corresponding managed instance.", - "type": "string", - "enumDescriptions": [ - "The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance configuration deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance configuration is effective on the instance, meaning that all disks, ips and metadata specified in this configuration are attached or set on the instance.", - "*[Default]* The default status, when no per-instance configuration exists.", - "The per-instance configuration is set on an instance but not been applied yet.", - "The per-instance configuration has been deleted, but the deletion is not yet applied." + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "APPLYING", - "DELETING", - "EFFECTIVE", - "NONE", - "UNAPPLIED", - "UNAPPLIED_DELETION" - ] - }, - "fingerprint": { - "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.", - "type": "string", - "format": "byte" - } - } - }, - "InstanceGroupManagersUpdatePerInstanceConfigsReq": { - "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", - "description": "InstanceGroupManagers.updatePerInstanceConfigs", - "type": "object", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "InstanceGroupManagersPatchPerInstanceConfigsReq": { - "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", - "description": "InstanceGroupManagers.patchPerInstanceConfigs", - "type": "object", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "InstanceGroupManagersDeletePerInstanceConfigsReq": { - "id": "InstanceGroupManagersDeletePerInstanceConfigsReq", - "description": "InstanceGroupManagers.deletePerInstanceConfigs", - "type": "object", - "properties": { - "names": { - "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "InstanceGroupManagersApplyUpdatesRequest": { - "id": "InstanceGroupManagersApplyUpdatesRequest", - "description": "InstanceGroupManagers.applyUpdatesToInstances", - "type": "object", - "properties": { - "instances": { - "description": "The list of URLs of one or more instances for which you want to apply updates. Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - }, - "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", - "type": "string", - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] + "description": "Perform a manual maintenance on the instance." }, - "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", - "type": "string", - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." + "addAccessConfig": { + "id": "compute.instances.addAccessConfig", + "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "networkInterface": { + "description": "The name of the network interface to add to this instance.", + "location": "query", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" ], - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] - }, - "allInstances": { - "description": "Flag to update all instances instead of specified list of “instances”. If the flag is set to true then the instances may not be specified in the request.", - "type": "boolean" - } - } - }, - "InstanceGroupManagersCreateInstancesRequest": { - "id": "InstanceGroupManagersCreateInstancesRequest", - "description": "InstanceGroupManagers.createInstances", - "type": "object", - "properties": { - "instances": { - "description": "[Required] List of specifications of per-instance configs.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "RegionInstanceGroupManagerList": { - "id": "RegionInstanceGroupManagerList", - "description": "Contains a list of managed instance groups.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope.", - "default": "compute#regionInstanceGroupManagerList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceGroupManager resources.", - "type": "array", - "items": { - "$ref": "InstanceGroupManager" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "request": { + "$ref": "AccessConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds an access config to an instance's network interface." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "deleteAccessConfig": { + "id": "compute.instances.deleteAccessConfig", + "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", + "httpMethod": "POST", + "parameters": { + "accessConfig": { + "description": "The name of the access config to delete.", + "location": "query", + "required": true, + "type": "string" + }, + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "networkInterface": { + "description": "The name of the network interface.", + "location": "query", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "accessConfig", + "networkInterface" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes an access config from an instance's network interface." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "updateAccessConfig": { + "id": "compute.instances.updateAccessConfig", + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "networkInterface": { + "description": "The name of the network interface where the access config is attached.", + "location": "query", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ], + "request": { + "$ref": "AccessConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified access config from an instance's network interface with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + }, + "updateNetworkInterface": { + "id": "compute.instances.updateNetworkInterface", + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", + "httpMethod": "PATCH", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "networkInterface": { + "description": "The name of the network interface to update.", + "location": "query", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "RegionInstanceGroupManagersDeleteInstancesRequest": { - "id": "RegionInstanceGroupManagersDeleteInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - }, - "skipInstancesOnValidationError": { - "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", - "type": "boolean" - } - } - }, - "RegionInstanceGroupManagersAbandonInstancesRequest": { - "id": "RegionInstanceGroupManagersAbandonInstancesRequest", - "type": "object", - "properties": { - "instances": { - "description": "The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RegionInstanceGroupManagersRecreateRequest": { - "id": "RegionInstanceGroupManagersRecreateRequest", - "type": "object", - "properties": { - "instances": { - "description": "The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RegionInstanceGroupManagersSetTemplateRequest": { - "id": "RegionInstanceGroupManagersSetTemplateRequest", - "type": "object", - "properties": { - "instanceTemplate": { - "description": "URL of the InstanceTemplate resource from which all new instances will be created.", - "type": "string" - } - } - }, - "RegionInstanceGroupManagersSetTargetPoolsRequest": { - "id": "RegionInstanceGroupManagersSetTargetPoolsRequest", - "type": "object", - "properties": { - "targetPools": { - "description": "The URL of all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.", - "type": "array", - "items": { - "type": "string" - } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ], + "request": { + "$ref": "NetworkInterface" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates an instance's network interface. This method can only update an interface's alias IP range and attached network. See Modifying alias IP ranges for an existing instance for instructions on changing alias IP ranges. See Migrating a VM between networks for instructions on migrating an interface. This method follows PATCH semantics." }, - "fingerprint": { - "description": "Fingerprint of the target pools information, which is a hash of the contents. This field is used for optimistic locking when you update the target pool entries. This field is optional.", - "type": "string", - "format": "byte" - } - } - }, - "RegionInstanceGroupManagersListInstancesResponse": { - "id": "RegionInstanceGroupManagersListInstancesResponse", - "type": "object", - "properties": { - "managedInstances": { - "description": "A list of managed instances.", - "type": "array", - "items": { - "$ref": "ManagedInstance" - } + "setScheduling": { + "id": "compute.instances.setScheduling", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "Scheduling" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - } - } - }, - "RegionInstanceGroupManagersListErrorsResponse": { - "id": "RegionInstanceGroupManagersListErrorsResponse", - "type": "object", - "properties": { - "items": { - "description": "[Output Only] The list of errors of the managed instance group.", - "type": "array", - "items": { - "$ref": "InstanceManagedByIgmError" - } + "getSerialPortOutput": { + "id": "compute.instances.getSerialPortOutput", + "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", + "httpMethod": "GET", + "parameters": { + "instance": { + "description": "Name of the instance for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "port": { + "description": "Specifies which COM or serial port to retrieve data from.", + "default": "1", + "minimum": "1", + "maximum": "4", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "start": { + "description": "Specifies the starting byte position of the output to return. To start with the first byte of output to the specified port, omit this field or set it to `0`. If the output for that byte position is available, this field matches the `start` parameter sent with the request. If the amount of serial console output exceeds the size of the buffer (1 MB), the oldest output is discarded and is no longer available. If the requested start position refers to discarded output, the start position is adjusted to the oldest output still available, and the adjusted start position is returned as the `start` property value. You can also provide a negative start position, which translates to the most recent number of bytes written to the serial port. For example, -3 is interpreted as the most recent 3 bytes written to the serial console.", + "location": "query", + "type": "string", + "format": "int64" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "SerialPortOutput" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the last 1 MB of serial port output from the specified instance." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - } - } - }, - "RegionInstanceGroupManagersListInstanceConfigsResp": { - "id": "RegionInstanceGroupManagersListInstanceConfigsResp", - "type": "object", - "properties": { - "items": { - "description": "[Output Only] The list of PerInstanceConfig.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } + "getScreenshot": { + "id": "compute.instances.getScreenshot", + "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", + "httpMethod": "GET", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Screenshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the screenshot from the specified instance." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "sendDiagnosticInterrupt": { + "id": "compute.instances.sendDiagnosticInterrupt", + "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sends diagnostic interrupt to the instance." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getGuestAttributes": { + "id": "compute.instances.getGuestAttributes", + "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", + "httpMethod": "GET", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "queryPath": { + "description": "Specifies the guest attributes path to be queried.", + "location": "query", + "type": "string" + }, + "variableKey": { + "description": "Specifies the key for the guest attributes entry.", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "GuestAttributes" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified guest attributes entry." + }, + "attachDisk": { + "id": "compute.instances.attachDisk", + "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", + "httpMethod": "POST", + "parameters": { + "forceAttach": { + "description": "Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", + "location": "query", + "type": "boolean" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "RegionInstanceGroupManagerUpdateInstanceConfigReq": { - "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", - "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs", - "type": "object", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "RegionInstanceGroupManagerPatchInstanceConfigReq": { - "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", - "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs", - "type": "object", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "RegionInstanceGroupManagerDeleteInstanceConfigReq": { - "id": "RegionInstanceGroupManagerDeleteInstanceConfigReq", - "description": "RegionInstanceGroupManagers.deletePerInstanceConfigs", - "type": "object", - "properties": { - "names": { - "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RegionInstanceGroupManagersApplyUpdatesRequest": { - "id": "RegionInstanceGroupManagersApplyUpdatesRequest", - "description": "RegionInstanceGroupManagers.applyUpdatesToInstances", - "type": "object", - "properties": { - "instances": { - "description": "The list of URLs of one or more instances for which you want to apply updates. Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "type": "array", - "items": { - "type": "string" - } - }, - "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", - "type": "string", - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] - }, - "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", - "type": "string", - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." + "request": { + "$ref": "AttachedDisk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ] - }, - "allInstances": { - "description": "Flag to update all instances instead of specified list of “instances”. If the flag is set to true then the instances may not be specified in the request.", - "type": "boolean" - } - } - }, - "RegionInstanceGroupManagersCreateInstancesRequest": { - "id": "RegionInstanceGroupManagersCreateInstancesRequest", - "description": "RegionInstanceGroupManagers.createInstances", - "type": "object", - "properties": { - "instances": { - "description": "[Required] List of specifications of per-instance configs.", - "type": "array", - "items": { - "$ref": "PerInstanceConfig" - } - } - } - }, - "AutoscalerList": { - "id": "AutoscalerList", - "description": "Contains a list of Autoscaler resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#autoscalerList for lists of autoscalers.", - "default": "compute#autoscalerList", - "type": "string" + "description": "Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "detachDisk": { + "id": "compute.instances.detachDisk", + "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", + "httpMethod": "POST", + "parameters": { + "deviceName": { + "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.", + "location": "query", + "required": true, + "type": "string" + }, + "instance": { + "description": "Instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "deviceName" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Detaches a disk from an instance." }, - "items": { - "description": "A list of Autoscaler resources.", - "type": "array", - "items": { - "$ref": "Autoscaler" - } + "setMachineResources": { + "id": "compute.instances.setMachineResources", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetMachineResourcesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "setMachineType": { + "id": "compute.instances.setMachineType", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetMachineTypeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the machine type for a stopped instance to the machine type specified in the request." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "setMetadata": { + "id": "compute.instances.setMetadata", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "Metadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets metadata for the specified instance to the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setMinCpuPlatform": { + "id": "compute.instances.setMinCpuPlatform", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "Autoscaler": { - "id": "Autoscaler", - "description": "Represents an Autoscaler resource. Google Compute Engine has two Autoscaler resources: * [Zonal](/compute/docs/reference/rest/v1/autoscalers) * [Regional](/compute/docs/reference/rest/v1/regionAutoscalers) Use autoscalers to automatically add or delete instances from a managed instance group according to your defined autoscaling policy. For more information, read Autoscaling Groups of Instances. For zonal managed instance groups resource, use the autoscaler resource. For regional managed instance groups, use the regionAutoscalers resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#autoscaler for autoscalers.", - "default": "compute#autoscaler", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.autoscalers.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "target": { - "description": "URL of the managed instance group that this autoscaler will scale. This field is required when creating an autoscaler.", - "type": "string" - }, - "autoscalingPolicy": { - "description": "The configuration parameters for the autoscaling algorithm. You can define one or more signals for an autoscaler: cpuUtilization, customMetricUtilizations, and loadBalancingUtilization. If none of these are specified, the default will be to autoscale based on cpuUtilization to 0.6 or 60%.", - "$ref": "AutoscalingPolicy" - }, - "zone": { - "description": "[Output Only] URL of the zone where the instance group resides (for autoscalers living in zonal scope).", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the instance group resides (for autoscalers living in regional scope).", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the autoscaler configuration. Current set of possible values: - PENDING: Autoscaler backend hasn't read new/updated configuration. - DELETING: Configuration is being deleted. - ACTIVE: Configuration is acknowledged to be effective. Some warnings might be present in the statusDetails field. - ERROR: Configuration has errors. Actionable for users. Details are present in the statusDetails field. New values might be added in the future.", - "type": "string", - "enumDescriptions": [ - "Configuration is acknowledged to be effective", - "Configuration is being deleted", - "Configuration has errors. Actionable for users.", - "Autoscaler backend hasn't read new/updated configuration" + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "ACTIVE", - "DELETING", - "ERROR", - "PENDING" - ] - }, - "statusDetails": { - "description": "[Output Only] Human-readable details about the current state of the autoscaler. Read the documentation for Commonly returned status messages for examples of status messages you might encounter.", - "type": "array", - "items": { - "$ref": "AutoscalerStatusDetails" - } - }, - "recommendedSize": { - "description": "[Output Only] Target recommended MIG size (number of instances) computed by autoscaler. Autoscaler calculates the recommended MIG size even when the autoscaling policy mode is different from ON. This field is empty when autoscaler is not connected to an existing managed instance group or autoscaler did not generate its prediction.", - "type": "integer", - "format": "int32" - }, - "scalingScheduleStatus": { - "description": "[Output Only] Status information of existing scaling schedules.", - "type": "object", - "additionalProperties": { - "$ref": "ScalingScheduleStatus" - } - } - } - }, - "AutoscalingPolicy": { - "id": "AutoscalingPolicy", - "description": "Cloud Autoscaler policy.", - "type": "object", - "properties": { - "minNumReplicas": { - "description": "The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed.", - "type": "integer", - "format": "int32" - }, - "maxNumReplicas": { - "description": "The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas.", - "type": "integer", - "format": "int32" - }, - "scaleInControl": { - "$ref": "AutoscalingPolicyScaleInControl" - }, - "coolDownPeriodSec": { - "description": "The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process.", - "type": "integer", - "format": "int32" - }, - "cpuUtilization": { - "description": "Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.", - "$ref": "AutoscalingPolicyCpuUtilization" - }, - "customMetricUtilizations": { - "description": "Configuration parameters of autoscaling based on a custom metric.", - "type": "array", - "items": { - "$ref": "AutoscalingPolicyCustomMetricUtilization" - } - }, - "loadBalancingUtilization": { - "description": "Configuration parameters of autoscaling based on load balancer.", - "$ref": "AutoscalingPolicyLoadBalancingUtilization" - }, - "mode": { - "description": "Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see \"Turning off or restricting an autoscaler\"", - "type": "string", - "enumDescriptions": [ - "Do not automatically scale the MIG in or out. The recommended_size field contains the size of MIG that would be set if the actuation mode was enabled.", - "Automatically scale the MIG in and out according to the policy.", - "Automatically create VMs according to the policy, but do not scale the MIG in.", - "Automatically create VMs according to the policy, but do not scale the MIG in." + "request": { + "$ref": "InstancesSetMinCpuPlatformRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "OFF", - "ON", - "ONLY_SCALE_OUT", - "ONLY_UP" - ] - }, - "scalingSchedules": { - "description": "Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed.", - "type": "object", - "additionalProperties": { - "$ref": "AutoscalingPolicyScalingSchedule" - } - } - } - }, - "AutoscalingPolicyScaleInControl": { - "id": "AutoscalingPolicyScaleInControl", - "description": "Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below.", - "type": "object", - "properties": { - "maxScaledInReplicas": { - "description": "Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step.", - "$ref": "FixedOrPercent" - }, - "timeWindowSec": { - "description": "How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above.", - "type": "integer", - "format": "int32" - } - } - }, - "AutoscalingPolicyCpuUtilization": { - "id": "AutoscalingPolicyCpuUtilization", - "description": "CPU utilization policy.", - "type": "object", - "properties": { - "utilizationTarget": { - "description": "The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization.", - "type": "number", - "format": "double" + "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform." }, - "predictiveMethod": { - "description": "Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.", - "type": "string", - "enumDescriptions": [ - "No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics", - "Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand." + "setTags": { + "id": "compute.instances.setTags", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "NONE", - "OPTIMIZE_AVAILABILITY" - ] - } - } - }, - "AutoscalingPolicyCustomMetricUtilization": { - "id": "AutoscalingPolicyCustomMetricUtilization", - "description": "Custom utilization metric policy.", - "type": "object", - "properties": { - "metric": { - "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE.", - "type": "string" - }, - "filter": { - "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value.", - "type": "string" - }, - "utilizationTarget": { - "description": "The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances.", - "type": "number", - "format": "double" - }, - "singleInstanceAssignment": { - "description": "If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", - "type": "number", - "format": "double" - }, - "utilizationTargetType": { - "description": "Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.", - "type": "string", - "enumDescriptions": [ - "Sets the utilization target value for a cumulative or delta metric, expressed as the rate of growth per minute.", - "Sets the utilization target value for a cumulative or delta metric, expressed as the rate of growth per second.", - "Sets the utilization target value for a gauge metric. The autoscaler will collect the average utilization of the virtual machines from the last couple of minutes, and compare the value to the utilization target value to perform autoscaling." + "request": { + "$ref": "Tags" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "DELTA_PER_MINUTE", - "DELTA_PER_SECOND", - "GAUGE" - ] - } - } - }, - "AutoscalingPolicyLoadBalancingUtilization": { - "id": "AutoscalingPolicyLoadBalancingUtilization", - "description": "Configuration parameters of autoscaling based on load balancing.", - "type": "object", - "properties": { - "utilizationTarget": { - "description": "Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8.", - "type": "number", - "format": "double" - } - } - }, - "AutoscalingPolicyScalingSchedule": { - "id": "AutoscalingPolicyScalingSchedule", - "description": "Scaling based on user-defined schedule. The message describes a single scaling schedule. A scaling schedule changes the minimum number of VM instances an autoscaler can recommend, which can trigger scaling out.", - "type": "object", - "properties": { - "minRequiredReplicas": { - "description": "The minimum number of VM instances that the autoscaler will recommend in time intervals starting according to schedule. This field is required.", - "type": "integer", - "format": "int32" - }, - "schedule": { - "description": "The start timestamps of time intervals when this scaling schedule is to provide a scaling signal. This field uses the extended cron format (with an optional year field). The expression can describe a single timestamp if the optional year is set, in which case the scaling schedule runs once. The schedule is interpreted with respect to time_zone. This field is required. Note: These timestamps only describe when autoscaler starts providing the scaling signal. The VMs need additional time to become serving.", - "type": "string" - }, - "timeZone": { - "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \"UTC\" if left empty.", - "type": "string" - }, - "durationSec": { - "description": "The duration of time intervals, in seconds, for which this scaling schedule is to run. The minimum allowed value is 300. This field is required.", - "type": "integer", - "format": "int32" + "description": "Sets network tags for the specified instance to the data included in the request." }, - "disabled": { - "description": "A boolean value that specifies whether a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect. This field is optional, and its value is false by default.", - "type": "boolean" + "setLabels": { + "id": "compute.instances.setLabels", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation." }, - "description": { - "description": "A description of a scaling schedule.", - "type": "string" - } - } - }, - "AutoscalerStatusDetails": { - "id": "AutoscalerStatusDetails", - "type": "object", - "properties": { - "message": { - "description": "The status message.", - "type": "string" + "setName": { + "id": "compute.instances.setName", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetNameRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets name of an instance." }, - "type": { - "description": "The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the \"Autoscale only out\" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions.", - "type": "string", - "enumDescriptions": [ - "All instances in the instance group are unhealthy (not in RUNNING state).", - "There is no backend service attached to the instance group.", - "Autoscaler recommends a size greater than maxNumReplicas.", - "The custom metric samples are not exported often enough to be a credible base for autoscaling.", - "The custom metric that was specified does not exist or does not have the necessary labels.", - "The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group.", - "The autoscaler did not receive any data from the custom metric configured for autoscaling.", - "The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer.", - "Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved.", - "Autoscaling is in the \"Autoscale only scale out\" mode. Instances in the group will be only added.", - "Autoscaling is in the \"Autoscale only out\" mode. Instances in the group will be only added.", - "The instance group cannot be autoscaled because it has more than one backend service attached to it.", - "There is insufficient quota for the necessary resources, such as CPU or number of instances.", - "Showed only for regional autoscalers: there is a resource stockout in the chosen region.", - "The target to be scaled does not exist.", - "For some scaling schedules minRequiredReplicas is greater than maxNumReplicas. Autoscaler always recommends at most maxNumReplicas instances.", - "For some scaling schedules minRequiredReplicas is less than minNumReplicas. Autoscaler always recommends at least minNumReplicas instances.", - "", - "Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate.", - "For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout." + "setDiskAutoDelete": { + "id": "compute.instances.setDiskAutoDelete", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", + "httpMethod": "POST", + "parameters": { + "autoDelete": { + "description": "Whether to auto-delete the disk when the instance is deleted.", + "location": "query", + "required": true, + "type": "boolean" + }, + "deviceName": { + "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.", + "pattern": "\\w[\\w.-]{0,254}", + "location": "query", + "required": true, + "type": "string" + }, + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "autoDelete", + "deviceName" ], - "enum": [ - "ALL_INSTANCES_UNHEALTHY", - "BACKEND_SERVICE_DOES_NOT_EXIST", - "CAPPED_AT_MAX_NUM_REPLICAS", - "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE", - "CUSTOM_METRIC_INVALID", - "MIN_EQUALS_MAX", - "MISSING_CUSTOM_METRIC_DATA_POINTS", - "MISSING_LOAD_BALANCING_DATA_POINTS", - "MODE_OFF", - "MODE_ONLY_SCALE_OUT", - "MODE_ONLY_UP", - "MORE_THAN_ONE_BACKEND_SERVICE", - "NOT_ENOUGH_QUOTA_AVAILABLE", - "REGION_RESOURCE_STOCKOUT", - "SCALING_TARGET_DOES_NOT_EXIST", - "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX", - "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN", - "UNKNOWN", - "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION", - "ZONE_RESOURCE_STOCKOUT" - ] - } - } - }, - "ScalingScheduleStatus": { - "id": "ScalingScheduleStatus", - "type": "object", - "properties": { - "nextStartTime": { - "description": "[Output Only] The next time the scaling schedule is to become active. Note: this is a timestamp when a schedule is planned to run, but the actual time might be slightly different. The timestamp is in RFC3339 text format.", - "type": "string" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the auto-delete flag for a disk attached to an instance." }, - "lastStartTime": { - "description": "[Output Only] The last time the scaling schedule became active. Note: this is a timestamp when a schedule actually became active, not when it was planned to do so. The timestamp is in RFC3339 text format.", - "type": "string" + "start": { + "id": "compute.instances.start", + "path": "projects/{project}/zones/{zone}/instances/{instance}/start", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance resource to start.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance." }, - "state": { - "description": "[Output Only] The current state of a scaling schedule.", - "type": "string", - "enumDescriptions": [ - "The current autoscaling recommendation is influenced by this scaling schedule.", - "This scaling schedule has been disabled by the user.", - "This scaling schedule will never become active again.", - "The current autoscaling recommendation is not influenced by this scaling schedule." + "startWithEncryptionKey": { + "id": "compute.instances.startWithEncryptionKey", + "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance resource to start.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" ], - "enum": [ - "ACTIVE", - "DISABLED", - "OBSOLETE", - "READY" - ] - } - } - }, - "AutoscalerAggregatedList": { - "id": "AutoscalerAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#autoscalerAggregatedList for aggregated lists of autoscalers.", - "default": "compute#autoscalerAggregatedList", - "type": "string" + "request": { + "$ref": "InstancesStartWithEncryptionKeyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "stop": { + "id": "compute.instances.stop", + "path": "projects/{project}/zones/{zone}/instances/{instance}/stop", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop", + "httpMethod": "POST", + "parameters": { + "discardLocalSsd": { + "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", + "location": "query", + "type": "boolean" + }, + "instance": { + "description": "Name of the instance resource to stop.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance." }, - "items": { - "description": "A list of AutoscalersScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of autoscalers.", - "$ref": "AutoscalersScopedList" - } + "getIamPolicy": { + "id": "compute.instances.getIamPolicy", + "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "setIamPolicy": { + "id": "compute.instances.setIamPolicy", + "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "testIamPermissions": { + "id": "compute.instances.testIamPermissions", + "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setServiceAccount": { + "id": "compute.instances.setServiceAccount", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance resource to start.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "AutoscalersScopedList": { - "id": "AutoscalersScopedList", - "type": "object", - "properties": { - "autoscalers": { - "description": "[Output Only] A list of autoscalers contained in this scope.", - "type": "array", - "items": { - "$ref": "Autoscaler" - } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetServiceAccountRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of autoscalers when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setDeletionProtection": { + "id": "compute.instances.setDeletionProtection", + "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + "httpMethod": "POST", + "parameters": { + "deletionProtection": { + "description": "Whether the resource should be protected against deletion.", + "default": "true", + "location": "query", + "type": "boolean" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "RegionAutoscalerList": { - "id": "RegionAutoscalerList", - "description": "Contains a list of autoscalers.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#regionAutoscalerList", - "type": "string" + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets deletion protection on the instance." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "suspend": { + "id": "compute.instances.suspend", + "path": "projects/{project}/zones/{zone}/instances/{instance}/suspend", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/suspend", + "httpMethod": "POST", + "parameters": { + "discardLocalSsd": { + "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", + "location": "query", + "type": "boolean" + }, + "instance": { + "description": "Name of the instance resource to suspend.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances have no compute costs (cores or RAM), and incur only storage charges for the saved VM memory and localSSD data. Any charged resources the virtual machine was using, such as persistent disks and static IP addresses, will continue to be charged while the instance is suspended. For more information, see Suspending and resuming an instance." }, - "items": { - "description": "A list of Autoscaler resources.", - "type": "array", - "items": { - "$ref": "Autoscaler" - } + "resume": { + "id": "compute.instances.resume", + "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the instance resource to resume.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Resumes an instance that was suspended using the instances().suspend method." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "addResourcePolicies": { + "id": "compute.instances.addResourcePolicies", + "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesAddResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "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." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "removeResourcePolicies": { + "id": "compute.instances.removeResourcePolicies", + "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "The instance name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesRemoveResourcePoliciesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes resource policies from an instance." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." + "update": { + "id": "compute.instances.update", + "path": "projects/{project}/zones/{zone}/instances/{instance}", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", + "httpMethod": "PUT", + "parameters": { + "instance": { + "description": "Name of the instance resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "minimalAction": { + "description": "Specifies the action to take when updating an instance even if the updated properties do not require it. If not specified, then Compute Engine acts based on the minimum action that the updated properties require.", + "location": "query", + "type": "string", + "enumDescriptions": [ + "", + "No changes can be made to the instance.", + "The instance will not restart.", + "The instance will restart." ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false + "enum": [ + "INVALID", + "NO_EFFECT", + "REFRESH", + "RESTART" + ] + }, + "mostDisruptiveAllowedAction": { + "description": "Specifies the most disruptive action that can be taken on the instance as part of the update. Compute Engine returns an error if the instance properties require a more disruptive action as part of the instance update. Valid options from lowest to highest are NO_EFFECT, REFRESH, and RESTART.", + "location": "query", + "type": "string", + "enumDescriptions": [ + "", + "No changes can be made to the instance.", + "The instance will not restart.", + "The instance will restart." ], "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" + "INVALID", + "NO_EFFECT", + "REFRESH", + "RESTART" ] }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "BackendBucketList": { - "id": "BackendBucketList", - "description": "Contains a list of BackendBucket resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#backendBucketList", - "type": "string" + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "Instance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates an instance only if the necessary resources are available. This method can update only a specific set of instance properties. See Updating a running instance for a list of updatable instance properties." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "updateShieldedInstanceConfig": { + "id": "compute.instances.updateShieldedInstanceConfig", + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", + "httpMethod": "PATCH", + "parameters": { + "instance": { + "description": "Name or id of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "ShieldedInstanceConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the Shielded Instance config for an instance. You can only use this method on a stopped instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "items": { - "description": "A list of BackendBucket resources.", - "type": "array", - "items": { - "$ref": "BackendBucket" - } + "updateDisplayDevice": { + "id": "compute.instances.updateDisplayDevice", + "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", + "httpMethod": "PATCH", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "DisplayDevice" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the Display config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "setShieldedInstanceIntegrityPolicy": { + "id": "compute.instances.setShieldedInstanceIntegrityPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "httpMethod": "PATCH", + "parameters": { + "instance": { + "description": "Name or id of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "setSecurityPolicy": { + "id": "compute.instances.setSecurityPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "instance": { + "description": "Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "InstancesSetSecurityPolicyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview" }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getShieldedInstanceIdentity": { + "id": "compute.instances.getShieldedInstanceIdentity", + "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", + "httpMethod": "GET", + "parameters": { + "instance": { + "description": "Name or id of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "ShieldedInstanceIdentity" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the Shielded Instance Identity of an instance" + }, + "bulkInsert": { + "id": "compute.instances.bulkInsert", + "path": "projects/{project}/zones/{zone}/instances/bulkInsert", + "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "BackendBucket": { - "id": "BackendBucket", - "description": "Represents a Cloud Storage Bucket resource. This Cloud Storage bucket resource is referenced by a URL map of a load balancer. For more information, read Backend Buckets.", - "type": "object", - "properties": { - "kind": { - "description": "Type of the resource.", - "default": "compute#backendBucket", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional textual description of the resource; provided by the client when the resource is created.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "bucketName": { - "description": "Cloud Storage bucket name.", - "type": "string" - }, - "enableCdn": { - "description": "If true, enable Cloud CDN for this BackendBucket.", - "type": "boolean" - }, - "cdnPolicy": { - "description": "Cloud CDN configuration for this BackendBucket.", - "$ref": "BackendBucketCdnPolicy" - }, - "customResponseHeaders": { - "description": "Headers that the Application Load Balancer should add to proxied responses.", - "type": "array", - "items": { - "type": "string" - } - }, - "edgeSecurityPolicy": { - "description": "[Output Only] The resource URL for the edge security policy associated with this backend bucket.", - "type": "string" - }, - "compressionMode": { - "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", - "type": "string", - "enumDescriptions": [ - "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", - "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." + }, + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "AUTOMATIC", - "DISABLED" - ] - } - } - }, - "BackendBucketCdnPolicy": { - "id": "BackendBucketCdnPolicy", - "description": "Message containing Cloud CDN configuration for a backend bucket.", - "type": "object", - "properties": { - "signedUrlKeyNames": { - "description": "[Output Only] Names of the keys for signing request URLs.", - "type": "array", - "items": { - "type": "string" - } - }, - "signedUrlCacheMaxAgeSec": { - "description": "Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a \"Cache-Control: public, max-age=[TTL]\" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.", - "type": "string", - "format": "int64" - }, - "requestCoalescing": { - "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.", - "type": "boolean" - }, - "cacheMode": { - "description": "Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "type": "string", - "enumDescriptions": [ - "Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.", - "", - "Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server." + "request": { + "$ref": "BulkInsertInstanceResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "CACHE_ALL_STATIC", - "FORCE_CACHE_ALL", - "INVALID_CACHE_MODE", - "USE_ORIGIN_HEADERS" - ] - }, - "defaultTtl": { - "description": "Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of \"0\" means \"always revalidate\". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. 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.", - "type": "integer", - "format": "int32" - }, - "maxTtl": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "clientTtl": { - "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a \"public\" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a \"public\" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year).", - "type": "integer", - "format": "int32" - }, - "negativeCaching": { - "description": "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.", - "type": "boolean" - }, - "negativeCachingPolicy": { - "description": "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.", - "type": "array", - "items": { - "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy" - } - }, - "bypassCacheOnRequestHeaders": { - "description": "Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.", - "type": "array", - "items": { - "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader" - } - }, - "serveWhileStale": { - "description": "Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default \"max-stale\" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.", - "type": "integer", - "format": "int32" - }, - "cacheKeyPolicy": { - "description": "The CacheKeyPolicy for this CdnPolicy.", - "$ref": "BackendBucketCdnPolicyCacheKeyPolicy" - } - } - }, - "BackendBucketCdnPolicyNegativeCachingPolicy": { - "id": "BackendBucketCdnPolicyNegativeCachingPolicy", - "description": "Specify CDN TTLs for response error codes.", - "type": "object", - "properties": { - "code": { - "description": "The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once.", - "type": "integer", - "format": "int32" - }, - "ttl": { - "description": "The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "type": "integer", - "format": "int32" - } - } - }, - "BackendBucketCdnPolicyBypassCacheOnRequestHeader": { - "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader", - "description": "Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting.", - "type": "object", - "properties": { - "headerName": { - "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", - "type": "string" - } - } - }, - "BackendBucketCdnPolicyCacheKeyPolicy": { - "id": "BackendBucketCdnPolicyCacheKeyPolicy", - "description": "Message containing what to include in the cache key for a request for Cloud CDN.", - "type": "object", - "properties": { - "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters.", - "type": "array", - "items": { - "type": "string" - } - }, - "includeHttpHeaders": { - "description": "Allows HTTP request headers (by name) to be used in the cache key.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SignedUrlKey": { - "id": "SignedUrlKey", - "description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs", - "type": "object", - "properties": { - "keyName": { - "description": "Name of the key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs." }, - "keyValue": { - "description": "128-bit key value used for signing the URL. The key value must be a valid RFC 4648 Section 5 base64url encoded string.", - "type": "string" + "getEffectiveFirewalls": { + "id": "compute.instances.getEffectiveFirewalls", + "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls", + "httpMethod": "GET", + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "networkInterface": { + "description": "The name of the network interface to get the effective firewalls.", + "location": "query", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ], + "response": { + "$ref": "InstancesGetEffectiveFirewallsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns effective firewalls applied to an interface of the instance." } } }, - "SecurityPolicyReference": { - "id": "SecurityPolicyReference", - "type": "object", - "properties": { - "securityPolicy": { - "type": "string" + "regionInstances": { + "methods": { + "bulkInsert": { + "id": "compute.regionInstances.bulkInsert", + "path": "projects/{project}/regions/{region}/instances/bulkInsert", + "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "BulkInsertInstanceResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates multiple instances in a given region. Count specifies the number of instances to create." } } }, - "BackendServiceList": { - "id": "BackendServiceList", - "description": "Contains a list of BackendService resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#backendServiceList for lists of backend services.", - "default": "compute#backendServiceList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of BackendService resources.", - "type": "array", - "items": { - "$ref": "BackendService" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "reservations": { + "methods": { + "list": { + "id": "compute.reservations.list", + "path": "projects/{project}/zones/{zone}/reservations", + "flatPath": "projects/{project}/zones/{zone}/reservations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "BackendService": { - "id": "BackendService", - "description": "Represents a Backend Service resource. A backend service defines how Google Cloud load balancers distribute traffic. The backend service configuration contains a set of values, such as the protocol used to connect to backends, various distribution and session settings, health checks, and timeouts. These settings provide fine-grained control over how your load balancer behaves. Most of the settings have default values that allow for easy configuration if you need to get started quickly. Backend services in Google Compute Engine can be either regionally or globally scoped. * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices) For more information, see Backend Services.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#backendService for backend services.", - "default": "compute#backendService", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "backends": { - "description": "The list of backends that serve this BackendService.", - "type": "array", - "items": { - "$ref": "Backend" - } - }, - "healthChecks": { - "description": "The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.", - "type": "array", - "items": { - "type": "string" - } - }, - "timeoutSec": { - "description": "The backend service timeout has a different meaning depending on the type of load balancer. For more information see, Backend service settings. The default is 30 seconds. The full range of timeout values allowed goes from 1 through 2,147,483,647 seconds. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. Instead, use maxStreamDuration.", - "type": "integer", - "format": "int32" - }, - "port": { - "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port.", - "deprecated": true, - "type": "integer", - "format": "int32" - }, - "protocol": { - "description": "The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.", - "type": "string", - "enumDescriptions": [ - "gRPC (available for Traffic Director).", - "", - "HTTP/2 with SSL.", - "", - "TCP proxying with SSL.", - "TCP proxying or TCP pass-through.", - "UDP.", - "If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules." + }, + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "GRPC", - "HTTP", - "HTTP2", - "HTTPS", - "SSL", - "TCP", - "UDP", - "UNSPECIFIED" - ] - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a BackendService.", - "type": "string", - "format": "byte" - }, - "portName": { - "description": "A named port on a backend instance group representing the port for communication to the backend VMs in that group. The named port must be [defined on each backend instance group](https://cloud.google.com/load-balancing/docs/backend-service#named_ports). This parameter has no meaning if the backends are NEGs. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port_name.", - "type": "string" - }, - "enableCDN": { - "description": "If true, enables Cloud CDN for the backend service of a global external Application Load Balancer.", - "type": "boolean" - }, - "sessionAffinity": { - "description": "Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).", - "type": "string", - "enumDescriptions": [ - "2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.", - "1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.", - "5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.", - "The hash is based on a user specified header field.", - "The hash is based on a user provided cookie.", - "No session affinity. Connections from the same client IP may go to any instance in the pool." + "response": { + "$ref": "ReservationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "CLIENT_IP", - "CLIENT_IP_NO_DESTINATION", - "CLIENT_IP_PORT_PROTO", - "CLIENT_IP_PROTO", - "GENERATED_COOKIE", - "HEADER_FIELD", - "HTTP_COOKIE", - "NONE" - ] - }, - "affinityCookieTtlSec": { - "description": "Lifetime of cookies in seconds. This setting is applicable to Application Load Balancers and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value is two weeks (1,209,600). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "integer", - "format": "int32" - }, - "region": { - "description": "[Output Only] URL of the region where the regional backend service resides. This field is not applicable to global backend services. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "failoverPolicy": { - "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).", - "$ref": "BackendServiceFailoverPolicy" + "description": "A list of all the reservations that have been configured for the specified project in specified zone." }, - "loadBalancingScheme": { - "description": "Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.", - "type": "string", - "enumDescriptions": [ - "Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.", - "Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.", - "Signifies that this will be used for internal passthrough Network Load Balancers.", - "Signifies that this will be used for internal Application Load Balancers.", - "Signifies that this will be used by Traffic Director.", - "" + "aggregatedList": { + "id": "compute.reservations.aggregatedList", + "path": "projects/{project}/aggregated/reservations", + "flatPath": "projects/{project}/aggregated/reservations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "EXTERNAL", - "EXTERNAL_MANAGED", - "INTERNAL", - "INTERNAL_MANAGED", - "INTERNAL_SELF_MANAGED", - "INVALID_LOAD_BALANCING_SCHEME" - ] - }, - "connectionDraining": { - "$ref": "ConnectionDraining" - }, - "iap": { - "description": "The configurations for Identity-Aware Proxy on this resource. Not available for internal passthrough Network Load Balancers and external passthrough Network Load Balancers.", - "$ref": "BackendServiceIAP" - }, - "cdnPolicy": { - "description": "Cloud CDN configuration for this BackendService. Only available for specified load balancer types.", - "$ref": "BackendServiceCdnPolicy" - }, - "customRequestHeaders": { - "description": "Headers that the load balancer adds to proxied requests. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", - "type": "array", - "items": { - "type": "string" - } - }, - "customResponseHeaders": { - "description": "Headers that the load balancer adds to proxied responses. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", - "type": "array", - "items": { - "type": "string" - } - }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this backend service.", - "type": "string" - }, - "edgeSecurityPolicy": { - "description": "[Output Only] The resource URL for the edge security policy associated with this backend service.", - "type": "string" - }, - "logConfig": { - "description": "This field denotes the logging options for the load balancer traffic served by this backend service. If logging is enabled, logs will be exported to Stackdriver.", - "$ref": "BackendServiceLogConfig" - }, - "securitySettings": { - "description": "This field specifies the security settings that apply to this backend service. This field is applicable to a global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED.", - "$ref": "SecuritySettings" - }, - "localityLbPolicy": { - "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "string", - "enumDescriptions": [ - "", - "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", - "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", - "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", - "The load balancer selects a random healthy host.", - "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", - "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", - "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." + "response": { + "$ref": "ReservationAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "INVALID_LB_POLICY", - "LEAST_REQUEST", - "MAGLEV", - "ORIGINAL_DESTINATION", - "RANDOM", - "RING_HASH", - "ROUND_ROBIN", - "WEIGHTED_MAGLEV" - ] + "description": "Retrieves an aggregated list of reservations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "consistentHash": { - "description": "Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. ", - "$ref": "ConsistentHashLoadBalancerSettings" - }, - "circuitBreakers": { - "$ref": "CircuitBreakers" - }, - "outlierDetection": { - "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "OutlierDetection" - }, - "network": { - "description": "The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.", - "type": "string" - }, - "subsetting": { - "$ref": "Subsetting" + "get": { + "id": "compute.reservations.get", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "reservation": { + "description": "Name of the reservation to retrieve.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "response": { + "$ref": "Reservation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves information about the specified reservation." }, - "connectionTrackingPolicy": { - "description": "Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for external passthrough Network Load Balancers and internal passthrough Network Load Balancers.", - "$ref": "BackendServiceConnectionTrackingPolicy" + "insert": { + "id": "compute.reservations.insert", + "path": "projects/{project}/zones/{zone}/reservations", + "flatPath": "projects/{project}/zones/{zone}/reservations", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Reservation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new reservation. For more information, read Reserving zonal resources." }, - "maxStreamDuration": { - "description": "Specifies the default maximum duration (timeout) for streams to this service. Duration is computed from the beginning of the stream until the response has been completely processed, including all retries. A stream that does not complete in this duration is closed. If not specified, there will be no timeout limit, i.e. the maximum duration is infinite. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. This field is only allowed when the loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED.", - "$ref": "Duration" + "delete": { + "id": "compute.reservations.delete", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "reservation": { + "description": "Name of the reservation to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified reservation." }, - "compressionMode": { - "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", - "type": "string", - "enumDescriptions": [ - "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", - "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." + "resize": { + "id": "compute.reservations.resize", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "reservation": { + "description": "Name of the reservation to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "reservation" ], - "enum": [ - "AUTOMATIC", - "DISABLED" - ] + "request": { + "$ref": "ReservationsResizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations." }, - "serviceBindings": { - "description": "URLs of networkservices.ServiceBinding resources. Can only be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and health checks must be both empty.", - "type": "array", - "items": { - "type": "string" - } + "update": { + "id": "compute.reservations.update", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "httpMethod": "PATCH", + "parameters": { + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "reservation": { + "description": "Name of the reservation to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "reservation" + ], + "request": { + "$ref": "Reservation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Update share settings of the reservation." }, - "localityLbPolicies": { - "description": "A list of locality load-balancing policies to be used in order of preference. When you use localityLbPolicies, you must set at least one value for either the localityLbPolicies[].policy or the localityLbPolicies[].customPolicy field. localityLbPolicies overrides any value set in the localityLbPolicy field. For an example of how to use this field, see Define a list of preferred policies. Caution: This field and its children are intended for use in a service mesh that includes gRPC clients only. Envoy proxies can't use backend services that have this configuration.", - "type": "array", - "items": { - "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" - } + "getIamPolicy": { + "id": "compute.reservations.getIamPolicy", + "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "metadatas": { - "description": "Deployment metadata associated with the resource to be set by a GKE hub controller and read by the backend RCTH", - "type": "object", - "additionalProperties": { - "type": "string" - } + "setIamPolicy": { + "id": "compute.reservations.setIamPolicy", + "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "usedBy": { - "type": "array", - "items": { - "$ref": "BackendServiceUsedBy" - } + "testIamPermissions": { + "id": "compute.reservations.testIamPermissions", + "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "Backend": { - "id": "Backend", - "description": "Message containing information of one individual backend.", - "type": "object", - "properties": { - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "group": { - "description": "The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.", - "type": "string" - }, - "balancingMode": { - "description": "Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected.", - "type": "string", - "enumDescriptions": [ - "Balance based on the number of simultaneous connections.", - "Balance based on requests per second (RPS).", - "Balance based on the backend utilization." + "instanceGroups": { + "methods": { + "list": { + "id": "compute.instanceGroups.list", + "path": "projects/{project}/zones/{zone}/instanceGroups", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "CONNECTION", - "RATE", - "UTILIZATION" - ] - }, - "maxUtilization": { - "description": "Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", - "type": "number", - "format": "float" - }, - "maxRate": { - "description": "Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", - "type": "integer", - "format": "int32" - }, - "maxRatePerInstance": { - "description": "Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", - "type": "number", - "format": "float" - }, - "maxRatePerEndpoint": { - "description": "Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", - "type": "number", - "format": "float" - }, - "maxConnections": { - "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", - "type": "integer", - "format": "int32" - }, - "maxConnectionsPerInstance": { - "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", - "type": "integer", - "format": "int32" + "response": { + "$ref": "InstanceGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of zonal instance group resources contained within the specified zone. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead." }, - "maxConnectionsPerEndpoint": { - "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", - "type": "integer", - "format": "int32" + "aggregatedList": { + "id": "compute.instanceGroups.aggregatedList", + "path": "projects/{project}/aggregated/instanceGroups", + "flatPath": "projects/{project}/aggregated/instanceGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstanceGroupAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of instance groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "capacityScaler": { - "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs.", - "type": "number", - "format": "float" + "get": { + "id": "compute.instanceGroups.get", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "httpMethod": "GET", + "parameters": { + "instanceGroup": { + "description": "The name of the instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "response": { + "$ref": "InstanceGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead." }, - "failover": { - "description": "This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.", - "type": "boolean" - } - } - }, - "BackendServiceFailoverPolicy": { - "id": "BackendServiceFailoverPolicy", - "description": "For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes).", - "type": "object", - "properties": { - "disableConnectionDrainOnFailover": { - "description": "This can be set to true only if the protocol is TCP. The default is false.", - "type": "boolean" + "insert": { + "id": "compute.instanceGroups.insert", + "path": "projects/{project}/zones/{zone}/instanceGroups", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where you want to create the instance group.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "InstanceGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an instance group in the specified project using the parameters that are included in the request." }, - "dropTrafficIfUnhealthy": { - "description": "If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false.", - "type": "boolean" + "delete": { + "id": "compute.instanceGroups.delete", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "httpMethod": "DELETE", + "parameters": { + "instanceGroup": { + "description": "The name of the instance group to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read Deleting an instance group for more information." }, - "failoverRatio": { - "description": "The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).", - "type": "number", - "format": "float" - } - } - }, - "ConnectionDraining": { - "id": "ConnectionDraining", - "description": "Message containing connection draining configuration.", - "type": "object", - "properties": { - "drainingTimeoutSec": { - "description": "Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.", - "type": "integer", - "format": "int32" - } - } - }, - "BackendServiceIAP": { - "id": "BackendServiceIAP", - "description": "Identity-Aware Proxy", - "type": "object", - "properties": { - "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.", - "type": "boolean" + "addInstances": { + "id": "compute.instanceGroups.addInstances", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroup": { + "description": "The name of the instance group where you are adding instances.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "request": { + "$ref": "InstanceGroupsAddInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. Read Adding instances for more information." }, - "oauth2ClientId": { - "description": "OAuth2 client ID to use for the authentication flow.", - "type": "string" + "removeInstances": { + "id": "compute.instanceGroups.removeInstances", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroup": { + "description": "The name of the instance group where the specified instances will be removed.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "request": { + "$ref": "InstanceGroupsRemoveInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes one or more instances from the specified instance group, but does not delete those instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted." }, - "oauth2ClientSecret": { - "description": "OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly", - "type": "string" + "listInstances": { + "id": "compute.instanceGroups.listInstances", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroup": { + "description": "The name of the instance group from which you want to generate a list of included instances.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "request": { + "$ref": "InstanceGroupsListInstancesRequest" + }, + "response": { + "$ref": "InstanceGroupsListInstances" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use `eq` (equal) or `ne` (not equal) operators." }, - "oauth2ClientSecretSha256": { - "description": "[Output Only] SHA256 hash value for the field oauth2_client_secret above.", - "type": "string" + "setNamedPorts": { + "id": "compute.instanceGroups.setNamedPorts", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", + "httpMethod": "POST", + "parameters": { + "instanceGroup": { + "description": "The name of the instance group where the named ports are updated.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "request": { + "$ref": "InstanceGroupsSetNamedPortsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the named ports for the specified instance group." } } }, - "BackendServiceCdnPolicy": { - "id": "BackendServiceCdnPolicy", - "description": "Message containing Cloud CDN configuration for a backend service.", - "type": "object", - "properties": { - "cacheKeyPolicy": { - "description": "The CacheKeyPolicy for this CdnPolicy.", - "$ref": "CacheKeyPolicy" - }, - "signedUrlKeyNames": { - "description": "[Output Only] Names of the keys for signing request URLs.", - "type": "array", - "items": { - "type": "string" - } - }, - "signedUrlCacheMaxAgeSec": { - "description": "Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a \"Cache-Control: public, max-age=[TTL]\" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.", - "type": "string", - "format": "int64" - }, - "requestCoalescing": { - "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.", - "type": "boolean" - }, - "cacheMode": { - "description": "Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "type": "string", - "enumDescriptions": [ - "Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.", - "", - "Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server." + "regionInstanceGroups": { + "methods": { + "list": { + "id": "compute.regionInstanceGroups.list", + "path": "projects/{project}/regions/{region}/instanceGroups", + "flatPath": "projects/{project}/regions/{region}/instanceGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "CACHE_ALL_STATIC", - "FORCE_CACHE_ALL", - "INVALID_CACHE_MODE", - "USE_ORIGIN_HEADERS" - ] - }, - "defaultTtl": { - "description": "Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of \"0\" means \"always revalidate\". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. 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.", - "type": "integer", - "format": "int32" - }, - "maxTtl": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "clientTtl": { - "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a \"public\" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a \"public\" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year).", - "type": "integer", - "format": "int32" - }, - "negativeCaching": { - "description": "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.", - "type": "boolean" + "response": { + "$ref": "RegionInstanceGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of instance group resources contained within the specified region." }, - "negativeCachingPolicy": { - "description": "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.", - "type": "array", - "items": { - "$ref": "BackendServiceCdnPolicyNegativeCachingPolicy" - } + "get": { + "id": "compute.regionInstanceGroups.get", + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "httpMethod": "GET", + "parameters": { + "instanceGroup": { + "description": "Name of the instance group resource to return.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroup" + ], + "response": { + "$ref": "InstanceGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified instance group resource." }, - "bypassCacheOnRequestHeaders": { - "description": "Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.", - "type": "array", - "items": { - "$ref": "BackendServiceCdnPolicyBypassCacheOnRequestHeader" - } + "listInstances": { + "id": "compute.regionInstanceGroups.listInstances", + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroup": { + "description": "Name of the regional instance group for which we want to list the instances.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroup" + ], + "request": { + "$ref": "RegionInstanceGroupsListInstancesRequest" + }, + "response": { + "$ref": "RegionInstanceGroupsListInstances" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported." }, - "serveWhileStale": { - "description": "Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default \"max-stale\" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.", - "type": "integer", - "format": "int32" + "setNamedPorts": { + "id": "compute.regionInstanceGroups.setNamedPorts", + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", + "httpMethod": "POST", + "parameters": { + "instanceGroup": { + "description": "The name of the regional instance group where the named ports are updated.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroup" + ], + "request": { + "$ref": "RegionInstanceGroupsSetNamedPortsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the named ports for the specified regional instance group." } } }, - "CacheKeyPolicy": { - "id": "CacheKeyPolicy", - "description": "Message containing what to include in the cache key for a request for Cloud CDN.", - "type": "object", - "properties": { - "includeProtocol": { - "description": "If true, http and https requests will be cached separately.", - "type": "boolean" - }, - "includeHost": { - "description": "If true, requests to different hosts will be cached separately.", - "type": "boolean" - }, - "includeQueryString": { - "description": "If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.", - "type": "boolean" - }, - "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.", - "type": "array", - "items": { - "type": "string" - } + "instanceGroupManagers": { + "methods": { + "list": { + "id": "compute.instanceGroupManagers.list", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "InstanceGroupManagerList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone." }, - "queryStringBlacklist": { - "description": "Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.", - "type": "array", - "items": { - "type": "string" - } + "aggregatedList": { + "id": "compute.instanceGroupManagers.aggregatedList", + "path": "projects/{project}/aggregated/instanceGroupManagers", + "flatPath": "projects/{project}/aggregated/instanceGroupManagers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstanceGroupManagerAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of managed instance groups and groups them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "includeHttpHeaders": { - "description": "Allows HTTP request headers (by name) to be used in the cache key.", - "type": "array", - "items": { - "type": "string" - } + "get": { + "id": "compute.instanceGroupManagers.get", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "GET", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "InstanceGroupManager" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns all of the details about the specified managed instance group." }, - "includeNamedCookies": { - "description": "Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "BackendServiceCdnPolicyNegativeCachingPolicy": { - "id": "BackendServiceCdnPolicyNegativeCachingPolicy", - "description": "Specify CDN TTLs for response error codes.", - "type": "object", - "properties": { - "code": { - "description": "The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once.", - "type": "integer", - "format": "int32" + "insert": { + "id": "compute.instanceGroupManagers.insert", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where you want to create the managed instance group.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "InstanceGroupManager" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit." }, - "ttl": { - "description": "The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "type": "integer", - "format": "int32" - } - } - }, - "BackendServiceCdnPolicyBypassCacheOnRequestHeader": { - "id": "BackendServiceCdnPolicyBypassCacheOnRequestHeader", - "description": "Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting.", - "type": "object", - "properties": { - "headerName": { - "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", - "type": "string" - } - } - }, - "BackendServiceLogConfig": { - "id": "BackendServiceLogConfig", - "description": "The available logging options for the load balancer traffic served by this backend service.", - "type": "object", - "properties": { - "enable": { - "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", - "type": "boolean" + "patch": { + "id": "compute.instanceGroupManagers.patch", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "PATCH", + "parameters": { + "instanceGroupManager": { + "description": "The name of the instance group manager.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where you want to create the managed instance group.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManager" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG." }, - "sampleRate": { - "description": "This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.", - "type": "number", - "format": "float" + "delete": { + "id": "compute.instanceGroupManagers.delete", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "DELETE", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read Deleting an instance group for more information." }, - "optionalMode": { - "description": "This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", - "type": "string", - "enumDescriptions": [ - "A subset of optional fields.", - "None optional fields.", - "All optional fields." + "deleteInstances": { + "id": "compute.instanceGroupManagers.deleteInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersDeleteInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "CUSTOM", - "EXCLUDE_ALL_OPTIONAL", - "INCLUDE_ALL_OPTIONAL" - ] - }, - "optionalFields": { - "description": "This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SecuritySettings": { - "id": "SecuritySettings", - "description": "The authentication and authorization settings for a BackendService.", - "type": "object", - "properties": { - "clientTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.", - "type": "string" + "description": "Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." }, - "subjectAltNames": { - "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode).", - "type": "array", - "items": { - "type": "string" - } + "abandonInstances": { + "id": "compute.instanceGroupManagers.abandonInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersAbandonInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." }, - "awsV4Authentication": { - "description": "The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.", - "$ref": "AWSV4Signature" - } - } - }, - "AWSV4Signature": { - "id": "AWSV4Signature", - "description": "Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'.", - "type": "object", - "properties": { - "accessKeyId": { - "description": "The identifier of an access key used for s3 bucket authentication.", - "type": "string" + "recreateInstances": { + "id": "compute.instanceGroupManagers.recreateInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersRecreateInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." }, - "accessKey": { - "description": "The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly", - "type": "string" + "resize": { + "id": "compute.instanceGroupManagers.resize", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "size": { + "description": "The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter.", + "location": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "size" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. When resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including: + The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance. This list is subject to change. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted." }, - "accessKeyVersion": { - "description": "The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.", - "type": "string" + "setInstanceTemplate": { + "id": "compute.instanceGroupManagers.setInstanceTemplate", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE." }, - "originRegion": { - "description": "The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, \"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.", - "type": "string" - } - } - }, - "ConsistentHashLoadBalancerSettings": { - "id": "ConsistentHashLoadBalancerSettings", - "description": "This message defines settings for a consistent hash style load balancer.", - "type": "object", - "properties": { - "httpCookie": { - "description": "Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "ConsistentHashLoadBalancerSettingsHttpCookie" + "setTargetPools": { + "id": "compute.instanceGroupManagers.setTargetPools", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersSetTargetPoolsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group." }, - "httpHeaderName": { - "description": "The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD.", - "type": "string" + "listManagedInstances": { + "id": "compute.instanceGroupManagers.listManagedInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "InstanceGroupManagersListManagedInstancesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`." }, - "minimumRingSize": { - "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node.", - "type": "string", - "format": "int64" - } - } - }, - "ConsistentHashLoadBalancerSettingsHttpCookie": { - "id": "ConsistentHashLoadBalancerSettingsHttpCookie", - "description": "The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash.", - "type": "object", - "properties": { - "name": { - "description": "Name of the cookie.", - "type": "string" + "listErrors": { + "id": "compute.instanceGroupManagers.listErrors", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "InstanceGroupManagersListErrorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported." }, - "path": { - "description": "Path to set for the cookie.", - "type": "string" + "listPerInstanceConfigs": { + "id": "compute.instanceGroupManagers.listPerInstanceConfigs", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "InstanceGroupManagersListPerInstanceConfigsResp" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported." }, - "ttl": { - "description": "Lifetime of the cookie.", - "$ref": "Duration" - } - } - }, - "CircuitBreakers": { - "id": "CircuitBreakers", - "description": "Settings controlling the volume of requests, connections and retries to this backend service.", - "type": "object", - "properties": { - "maxRequestsPerConnection": { - "description": "Maximum requests for a single connection to the backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "integer", - "format": "int32" + "updatePerInstanceConfigs": { + "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." }, - "maxConnections": { - "description": "The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "integer", - "format": "int32" + "patchPerInstanceConfigs": { + "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." }, - "maxPendingRequests": { - "description": "The maximum number of pending requests allowed to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "integer", - "format": "int32" + "deletePerInstanceConfigs": { + "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes selected per-instance configurations for the managed instance group." }, - "maxRequests": { - "description": "The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit.", - "type": "integer", - "format": "int32" + "applyUpdatesToInstances": { + "id": "compute.instanceGroupManagers.applyUpdatesToInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersApplyUpdatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions." }, - "maxRetries": { - "description": "The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "type": "integer", - "format": "int32" + "createInstances": { + "id": "compute.instanceGroupManagers.createInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersCreateInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method." } } }, - "OutlierDetection": { - "id": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.", - "type": "object", - "properties": { - "consecutiveErrors": { - "description": "Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", - "type": "integer", - "format": "int32" - }, - "interval": { - "description": "Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second.", - "$ref": "Duration" - }, - "baseEjectionTime": { - "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s.", - "$ref": "Duration" - }, - "maxEjectionPercent": { - "description": "Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%.", - "type": "integer", - "format": "int32" - }, - "enforcingConsecutiveErrors": { - "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.", - "type": "integer", - "format": "int32" - }, - "enforcingSuccessRate": { - "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG.", - "type": "integer", - "format": "int32" - }, - "successRateMinimumHosts": { - "description": "The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.", - "type": "integer", - "format": "int32" - }, - "successRateRequestVolume": { - "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG.", - "type": "integer", - "format": "int32" - }, - "successRateStdevFactor": { - "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG.", - "type": "integer", - "format": "int32" + "instanceGroupManagerResizeRequests": { + "methods": { + "get": { + "id": "compute.instanceGroupManagerResizeRequests.get", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "httpMethod": "GET", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resizeRequest": { + "description": "The name of the resize request. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the href=\"/compute/docs/regions-zones/#available\"\u003ezone scoping this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "response": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns all of the details about the specified resize request." }, - "consecutiveGatewayFailure": { - "description": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3.", - "type": "integer", - "format": "int32" + "insert": { + "id": "compute.instanceGroupManagerResizeRequests.insert", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new resize request that starts provisioning VMs immediately or queues VM creation." }, - "enforcingConsecutiveGatewayFailure": { - "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", - "type": "integer", - "format": "int32" - } - } - }, - "Subsetting": { - "id": "Subsetting", - "description": "Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director.", - "type": "object", - "properties": { - "policy": { - "type": "string", - "enumDescriptions": [ - "Subsetting based on consistent hashing. For Traffic Director, the number of backends per backend group (the subset size) is based on the `subset_size` parameter. For Internal HTTP(S) load balancing, the number of backends per backend group (the subset size) is dynamically adjusted in two cases: - As the number of proxy instances participating in Internal HTTP(S) load balancing increases, the subset size decreases. - When the total number of backends in a network exceeds the capacity of a single proxy instance, subset sizes are reduced automatically for each service that has backend subsetting enabled.", - "No Subsetting. Clients may open connections and send traffic to all backends of this backend service. This can lead to performance issues if there is substantial imbalance in the count of clients and backends." + "list": { + "id": "compute.instanceGroupManagerResizeRequests.list", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" ], - "enum": [ - "CONSISTENT_HASH_SUBSETTING", - "NONE" - ] - } - } - }, - "BackendServiceConnectionTrackingPolicy": { - "id": "BackendServiceConnectionTrackingPolicy", - "description": "Connection Tracking configuration for this BackendService.", - "type": "object", - "properties": { - "trackingMode": { - "description": "Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode).", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "response": { + "$ref": "InstanceGroupManagerResizeRequestsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of resize requests that are contained in the managed instance group." + }, + "cancel": { + "id": "compute.instanceGroupManagerResizeRequests.cancel", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resizeRequest": { + "description": "The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" ], - "enum": [ - "INVALID_TRACKING_MODE", - "PER_CONNECTION", - "PER_SESSION" - ] - }, - "connectionPersistenceOnUnhealthyBackends": { - "description": "Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence).", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ALWAYS_PERSIST", - "DEFAULT_FOR_PROTOCOL", - "NEVER_PERSIST" - ] - }, - "idleTimeoutSec": { - "description": "Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For internal passthrough Network Load Balancers: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For external passthrough Network Load Balancers the default is 60 seconds. This option is not available publicly.", - "type": "integer", - "format": "int32" - }, - "enableStrongAffinity": { - "description": "Enable Strong Session Affinity for external passthrough Network Load Balancers. This option is not available publicly.", - "type": "boolean" - } - } - }, - "BackendServiceLocalityLoadBalancingPolicyConfig": { - "id": "BackendServiceLocalityLoadBalancingPolicyConfig", - "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", - "type": "object", - "properties": { - "policy": { - "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + "description": "Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue." }, - "customPolicy": { - "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" - } - } - }, - "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { - "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", - "description": "The configuration for a built-in load balancing policy.", - "type": "object", - "properties": { - "name": { - "description": "The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected.", - "type": "string", - "enumDescriptions": [ - "", - "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", - "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", - "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", - "The load balancer selects a random healthy host.", - "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", - "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", - "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." + "delete": { + "id": "compute.instanceGroupManagerResizeRequests.delete", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "httpMethod": "DELETE", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resizeRequest": { + "description": "The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" ], - "enum": [ - "INVALID_LB_POLICY", - "LEAST_REQUEST", - "MAGLEV", - "ORIGINAL_DESTINATION", - "RANDOM", - "RING_HASH", - "ROUND_ROBIN", - "WEIGHTED_MAGLEV" - ] - } - } - }, - "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { - "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", - "description": "The configuration for a custom policy implemented by the user and deployed with the client.", - "type": "object", - "properties": { - "name": { - "description": "Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.", - "type": "string" - }, - "data": { - "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.", - "type": "string" - } - } - }, - "BackendServiceUsedBy": { - "id": "BackendServiceUsedBy", - "type": "object", - "properties": { - "reference": { - "type": "string" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously." } } }, - "BackendServiceAggregatedList": { - "id": "BackendServiceAggregatedList", - "description": "Contains a list of BackendServicesScopedList.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#backendServiceAggregatedList", - "type": "string" + "regionInstanceGroupManagers": { + "methods": { + "list": { + "id": "compute.regionInstanceGroupManagers.list", + "path": "projects/{project}/regions/{region}/instanceGroupManagers", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "RegionInstanceGroupManagerList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of managed instance groups that are contained within the specified region." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "get": { + "id": "compute.regionInstanceGroupManagers.get", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "GET", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group to return.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "response": { + "$ref": "InstanceGroupManager" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns all of the details about the specified managed instance group." }, - "items": { - "description": "A list of BackendServicesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of BackendServices.", - "$ref": "BackendServicesScopedList" - } + "insert": { + "id": "compute.regionInstanceGroupManagers.insert", + "path": "projects/{project}/regions/{region}/instanceGroupManagers", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "InstanceGroupManager" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A regional managed instance group can contain up to 2000 instances." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "patch": { + "id": "compute.regionInstanceGroupManagers.patch", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "PATCH", + "parameters": { + "instanceGroupManager": { + "description": "The name of the instance group manager.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManager" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "delete": { + "id": "compute.regionInstanceGroupManagers.delete", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "DELETE", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified managed instance group and all of the instances in that group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "deleteInstances": { + "id": "compute.regionInstanceGroupManagers.deleteInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "BackendServicesScopedList": { - "id": "BackendServicesScopedList", - "type": "object", - "properties": { - "backendServices": { - "description": "A list of BackendServices contained in this scope.", - "type": "array", - "items": { - "$ref": "BackendService" - } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "abandonInstances": { + "id": "compute.regionInstanceGroupManagers.abandonInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "BackendServiceListUsable": { - "id": "BackendServiceListUsable", - "description": "Contains a list of usable BackendService resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#usableBackendServiceList for lists of usable backend services.", - "default": "compute#usableBackendServiceList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." }, - "items": { - "description": "A list of BackendService resources.", - "type": "array", - "items": { - "$ref": "BackendService" - } + "recreateInstances": { + "id": "compute.regionInstanceGroupManagers.recreateInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagersRecreateRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "resize": { + "id": "compute.regionInstanceGroupManagers.resize", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "size": { + "description": "Number of instances that should exist in this instance group manager.", + "minimum": "0", + "location": "query", + "required": true, + "type": "integer", + "format": "int32" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager", + "size" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances. The resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "setInstanceTemplate": { + "id": "compute.regionInstanceGroupManagers.setInstanceTemplate", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagersSetTemplateRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setTargetPools": { + "id": "compute.regionInstanceGroupManagers.setTargetPools", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "ResourceGroupReference": { - "id": "ResourceGroupReference", - "type": "object", - "properties": { - "group": { - "description": "A URI referencing one of the instance groups or network endpoint groups listed in the backend service.", - "type": "string" - } - } - }, - "BackendServiceGroupHealth": { - "id": "BackendServiceGroupHealth", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#backendServiceGroupHealth for the health of backend services.", - "default": "compute#backendServiceGroupHealth", - "type": "string" - }, - "healthStatus": { - "description": "Health state of the backend instances or endpoints in requested instance or network endpoint group, determined based on configured health checks.", - "type": "array", - "items": { - "$ref": "HealthStatus" - } - }, - "annotations": { - "description": "Metadata defined as annotations on the network endpoint group.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "HealthStatus": { - "id": "HealthStatus", - "type": "object", - "properties": { - "ipAddress": { - "description": "For target pool based Network Load Balancing, it indicates the forwarding rule's IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.", - "type": "string" - }, - "port": { - "description": "The named port of the instance group, not necessarily the port that is health-checked.", - "type": "integer", - "format": "int32" - }, - "instance": { - "description": "URL of the instance resource.", - "type": "string" - }, - "healthState": { - "description": "Health state of the IPv4 address of the instance.", - "type": "string", - "enumDescriptions": [ - "", - "" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "enum": [ - "HEALTHY", - "UNHEALTHY" - ] - }, - "annotations": { - "description": "Metadata defined as annotations for network endpoint.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "weight": { - "type": "string" - }, - "weightError": { - "type": "string", - "enumDescriptions": [ - "The response to a Health Check probe had the HTTP response header field X-Load-Balancing-Endpoint-Weight, but its content was invalid (i.e., not a non-negative single-precision floating-point number in decimal string representation).", - "The response to a Health Check probe did not have the HTTP response header field X-Load-Balancing-Endpoint-Weight.", - "This is the value when the accompanied health status is either TIMEOUT (i.e.,the Health Check probe was not able to get a response in time) or UNKNOWN. For the latter, it should be typically because there has not been sufficient time to parse and report the weight for a new backend (which is with 0.0.0.0 ip address). However, it can be also due to an outage case for which the health status is explicitly reset to UNKNOWN.", - "This is the default value when WeightReportMode is DISABLE, and is also the initial value when WeightReportMode has just updated to ENABLE or DRY_RUN and there has not been sufficient time to parse and report the backend weight." + "request": { + "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "INVALID_WEIGHT", - "MISSING_WEIGHT", - "UNAVAILABLE_WEIGHT", - "WEIGHT_NONE" - ] - }, - "forwardingRuleIp": { - "description": "A forwarding rule IP address assigned to this instance.", - "type": "string" - }, - "forwardingRule": { - "description": "URL of the forwarding rule associated with the health status of the instance.", - "type": "string" - } - } - }, - "CommitmentList": { - "id": "CommitmentList", - "description": "Contains a list of Commitment resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#commitmentList for lists of commitments.", - "default": "compute#commitmentList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Commitment resources.", - "type": "array", - "items": { - "$ref": "Commitment" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "listManagedInstances": { + "id": "compute.regionInstanceGroupManagers.listManagedInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "Commitment": { - "id": "Commitment", - "description": "Represents a regional Commitment resource. Creating a commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#commitment for commitments.", - "default": "compute#commitment", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where this commitment may be used.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.", - "type": "string", - "enumDescriptions": [ - "", - "Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "enum": [ - "ACTIVE", - "CANCELLED", - "CREATING", - "EXPIRED", - "NOT_YET_ACTIVE" - ] - }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", - "type": "string" - }, - "plan": { - "description": "The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "response": { + "$ref": "RegionInstanceGroupManagersListInstancesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "INVALID", - "THIRTY_SIX_MONTH", - "TWELVE_MONTH" - ] - }, - "startTimestamp": { - "description": "[Output Only] Commitment start time in RFC3339 text format.", - "type": "string" - }, - "endTimestamp": { - "description": "[Output Only] Commitment end time in RFC3339 text format.", - "type": "string" - }, - "resources": { - "description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.", - "type": "array", - "items": { - "$ref": "ResourceCommitment" - } + "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`." }, - "type": { - "description": "The type of commitment, which affects the discount rate and the eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to accelerator optimized machines.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "listErrors": { + "id": "compute.regionInstanceGroupManagers.listErrors", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request. This should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "enum": [ - "ACCELERATOR_OPTIMIZED", - "ACCELERATOR_OPTIMIZED_A3", - "COMPUTE_OPTIMIZED", - "COMPUTE_OPTIMIZED_C2D", - "COMPUTE_OPTIMIZED_C3", - "COMPUTE_OPTIMIZED_C3D", - "COMPUTE_OPTIMIZED_H3", - "GENERAL_PURPOSE", - "GENERAL_PURPOSE_E2", - "GENERAL_PURPOSE_N2", - "GENERAL_PURPOSE_N2D", - "GENERAL_PURPOSE_T2D", - "GRAPHICS_OPTIMIZED", - "MEMORY_OPTIMIZED", - "MEMORY_OPTIMIZED_M3", - "STORAGE_OPTIMIZED_Z3", - "TYPE_UNSPECIFIED" - ] - }, - "reservations": { - "description": "List of create-on-create reservations for this commitment.", - "type": "array", - "items": { - "$ref": "Reservation" - } - }, - "category": { - "description": "The category of the commitment. Category MACHINE specifies commitments composed of machine resources such as VCPU or MEMORY, listed in resources. Category LICENSE specifies commitments composed of software licenses, listed in licenseResources. Note that only MACHINE commitments should have a Type specified.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "response": { + "$ref": "RegionInstanceGroupManagersListErrorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "CATEGORY_UNSPECIFIED", - "LICENSE", - "MACHINE" - ] - }, - "licenseResource": { - "description": "The license specification required as part of a license commitment.", - "$ref": "LicenseResourceCommitment" - }, - "autoRenew": { - "description": "Specifies whether to enable automatic renewal for the commitment. The default value is false if not specified. The field can be updated until the day of the commitment expiration at 12:00am PST. If the field is set to true, the commitment will be automatically renewed for either one or three years according to the terms of the existing commitment.", - "type": "boolean" - }, - "mergeSourceCommitments": { - "description": "List of source commitments to be merged into a new commitment.", - "type": "array", - "items": { - "type": "string" - } - }, - "splitSourceCommitment": { - "description": "Source commitment to be split into a new commitment.", - "type": "string" + "description": "Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported." }, - "existingReservations": { - "description": "Specifies the already existing reservations to attach to the Commitment. This field is optional, and it can be a full or partial URL. For example, the following are valid URLs to an reservation: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /reservations/reservation - projects/project/zones/zone/reservations/reservation ", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ResourceCommitment": { - "id": "ResourceCommitment", - "description": "Commitment for a particular resource (a Commitment is composed of one or more of these).", - "type": "object", - "properties": { - "type": { - "description": "Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "listPerInstanceConfigs": { + "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" ], - "enum": [ - "ACCELERATOR", - "LOCAL_SSD", - "MEMORY", - "UNSPECIFIED", - "VCPU" - ] - }, - "amount": { - "description": "The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.", - "type": "string", - "format": "int64" - }, - "acceleratorType": { - "description": "Name of the accelerator type resource. Applicable only when the type is ACCELERATOR.", - "type": "string" - } - } - }, - "LicenseResourceCommitment": { - "id": "LicenseResourceCommitment", - "description": "Commitment for a particular license resource.", - "type": "object", - "properties": { - "license": { - "description": "Any applicable license URI.", - "type": "string" - }, - "amount": { - "description": "The number of licenses purchased.", - "type": "string", - "format": "int64" - }, - "coresPerLicense": { - "description": "Specifies the core range of the instance for which this license applies.", - "type": "string" - } - } - }, - "CommitmentAggregatedList": { - "id": "CommitmentAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.", - "default": "compute#commitmentAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of CommitmentsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of commitments.", - "$ref": "CommitmentsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "response": { + "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "updatePerInstanceConfigs": { + "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "CommitmentsScopedList": { - "id": "CommitmentsScopedList", - "type": "object", - "properties": { - "commitments": { - "description": "[Output Only] A list of commitments contained in this scope.", - "type": "array", - "items": { - "$ref": "Commitment" - } - }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of commitments when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." + }, + "patchPerInstanceConfigs": { + "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "DiskTypeList": { - "id": "DiskTypeList", - "description": "Contains a list of disk types.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#diskTypeList for disk types.", - "default": "compute#diskTypeList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of DiskType resources.", - "type": "array", - "items": { - "$ref": "DiskType" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "deletePerInstanceConfigs": { + "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "DiskType": { - "id": "DiskType", - "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#diskType for disk types.", - "default": "compute#diskType", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional description of this resource.", - "type": "string" - }, - "validDiskSize": { - "description": "[Output Only] An optional textual description of the valid disk size, such as \"10GB-10TB\".", - "type": "string" - }, - "deprecated": { - "description": "[Output Only] The deprecation status associated with this disk type.", - "$ref": "DeprecationStatus" - }, - "zone": { - "description": "[Output Only] URL of the zone where the disk type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "defaultDiskSizeGb": { - "description": "[Output Only] Server-defined default disk size in GB.", - "type": "string", - "format": "int64" - }, - "region": { - "description": "[Output Only] URL of the region where the disk type resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - } - } - }, - "DiskTypeAggregatedList": { - "id": "DiskTypeAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#diskTypeAggregatedList.", - "default": "compute#diskTypeAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of DiskTypesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of disk types.", - "$ref": "DiskTypesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes selected per-instance configurations for the managed instance group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "applyUpdatesToInstances": { + "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "DiskTypesScopedList": { - "id": "DiskTypesScopedList", - "type": "object", - "properties": { - "diskTypes": { - "description": "[Output Only] A list of disk types contained in this scope.", - "type": "array", - "items": { - "$ref": "DiskType" - } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Apply updates to selected instances the managed instance group." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of disk types when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "createInstances": { + "id": "compute.regionInstanceGroupManagers.createInstances", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "httpMethod": "POST", + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "request": { + "$ref": "RegionInstanceGroupManagersCreateInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method." } } }, - "RegionDiskTypeList": { - "id": "RegionDiskTypeList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#regionDiskTypeList for region disk types.", - "default": "compute#regionDiskTypeList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "autoscalers": { + "methods": { + "list": { + "id": "compute.autoscalers.list", + "path": "projects/{project}/zones/{zone}/autoscalers", + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "AutoscalerList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of autoscalers contained within the specified zone." }, - "items": { - "description": "A list of DiskType resources.", - "type": "array", - "items": { - "$ref": "DiskType" - } + "aggregatedList": { + "id": "compute.autoscalers.aggregatedList", + "path": "projects/{project}/aggregated/autoscalers", + "flatPath": "projects/{project}/aggregated/autoscalers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "AutoscalerAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of autoscalers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.autoscalers.get", + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "httpMethod": "GET", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "response": { + "$ref": "Autoscaler" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified autoscaler resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.autoscalers.insert", + "path": "projects/{project}/zones/{zone}/autoscalers", + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an autoscaler in the specified project using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "update": { + "id": "compute.autoscalers.update", + "path": "projects/{project}/zones/{zone}/autoscalers", + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "httpMethod": "PUT", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "ExternalVpnGateway": { - "id": "ExternalVpnGateway", - "description": "Represents an external VPN gateway. External VPN gateway is the on-premises VPN gateway(s) or another cloud provider's VPN gateway that connects to your Google Cloud VPN gateway. To create a highly available VPN from Google Cloud Platform to your VPN gateway or another cloud provider's VPN gateway, you must create a external VPN gateway resource with information about the other gateway. For more information about using external VPN gateways, see Creating an HA VPN gateway and tunnel pair to a peer VPN.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#externalVpnGateway for externalVpnGateways.", - "default": "compute#externalVpnGateway", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.externalVpnGateways.insert" - ] }, - "type": "string" - }, - "redundancyType": { - "description": "Indicates the user-supplied redundancy type of this external VPN gateway.", - "type": "string", - "enumDescriptions": [ - "The external VPN gateway has four public IP addresses; at the time of writing this API, the AWS virtual private gateway is an example which has four public IP addresses for high availability connections; there should be two VPN connections in the AWS virtual private gateway , each AWS VPN connection has two public IP addresses; please make sure to put two public IP addresses from one AWS VPN connection into interfaces 0 and 1 of this external VPN gateway, and put the other two public IP addresses from another AWS VPN connection into interfaces 2 and 3 of this external VPN gateway. When displaying highly available configuration status for the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN gateway, Google will always detect whether interfaces 0 and 1 are connected on one interface of HA Cloud VPN gateway, and detect whether interfaces 2 and 3 are connected to another interface of the HA Cloud VPN gateway.", - "The external VPN gateway has only one public IP address which internally provide redundancy or failover.", - "The external VPN gateway has two public IP addresses which are redundant with each other, the following two types of setup on your on-premises side would have this type of redundancy: (1) Two separate on-premises gateways, each with one public IP address, the two on-premises gateways are redundant with each other. (2) A single on-premise gateway with two public IP addresses that are redundant with eatch other." + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "FOUR_IPS_REDUNDANCY", - "SINGLE_IP_INTERNALLY_REDUNDANT", - "TWO_IPS_REDUNDANCY" - ] - }, - "interfaces": { - "description": "A list of interfaces for this external VPN gateway. If your peer-side gateway is an on-premises gateway and non-AWS cloud providers' gateway, at most two interfaces can be provided for an external VPN gateway. If your peer side is an AWS virtual private gateway, four interfaces should be provided for an external VPN gateway.", - "type": "array", - "items": { - "$ref": "ExternalVpnGatewayInterface" - } - }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates an autoscaler in the specified project using the data included in the request." }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this ExternalVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an ExternalVpnGateway.", - "type": "string", - "format": "byte" - } - } - }, - "ExternalVpnGatewayInterface": { - "id": "ExternalVpnGatewayInterface", - "description": "The interface for the external VPN gateway.", - "type": "object", - "properties": { - "id": { - "description": "The numeric ID of this interface. The allowed input values for this id for different redundancy types of external VPN gateway: - SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 ", - "type": "integer", - "format": "uint32" + "patch": { + "id": "compute.autoscalers.patch", + "path": "projects/{project}/zones/{zone}/autoscalers", + "flatPath": "projects/{project}/zones/{zone}/autoscalers", + "httpMethod": "PATCH", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "ipAddress": { - "description": "IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine.", - "type": "string" + "delete": { + "id": "compute.autoscalers.delete", + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "httpMethod": "DELETE", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified autoscaler." } } }, - "ExternalVpnGatewayList": { - "id": "ExternalVpnGatewayList", - "description": "Response to the list request, and contains a list of externalVpnGateways.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#externalVpnGatewayList for lists of externalVpnGateways.", - "default": "compute#externalVpnGatewayList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of ExternalVpnGateway resources.", - "type": "array", - "items": { - "$ref": "ExternalVpnGateway" - } + "regionAutoscalers": { + "methods": { + "list": { + "id": "compute.regionAutoscalers.list", + "path": "projects/{project}/regions/{region}/autoscalers", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "RegionAutoscalerList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of autoscalers contained within the specified region." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.regionAutoscalers.get", + "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "httpMethod": "GET", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "autoscaler" + ], + "response": { + "$ref": "Autoscaler" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified autoscaler." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.regionAutoscalers.insert", + "path": "projects/{project}/regions/{region}/autoscalers", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an autoscaler in the specified project using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "update": { + "id": "compute.regionAutoscalers.update", + "path": "projects/{project}/regions/{region}/autoscalers", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "PUT", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates an autoscaler in the specified project using the data included in the request." + }, + "patch": { + "id": "compute.regionAutoscalers.patch", + "path": "projects/{project}/regions/{region}/autoscalers", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "PATCH", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "etag": { - "type": "string" + "delete": { + "id": "compute.regionAutoscalers.delete", + "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "httpMethod": "DELETE", + "parameters": { + "autoscaler": { + "description": "Name of the autoscaler to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "autoscaler" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified autoscaler." } } }, - "ForwardingRuleList": { - "id": "ForwardingRuleList", - "description": "Contains a list of ForwardingRule resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#forwardingRuleList", - "type": "string" + "backendBuckets": { + "methods": { + "list": { + "id": "compute.backendBuckets.list", + "path": "projects/{project}/global/backendBuckets", + "flatPath": "projects/{project}/global/backendBuckets", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "BackendBucketList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of BackendBucket resources available to the specified project." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "get": { + "id": "compute.backendBuckets.get", + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "GET", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendBucket" + ], + "response": { + "$ref": "BackendBucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified BackendBucket resource." }, - "items": { - "description": "A list of ForwardingRule resources.", - "type": "array", - "items": { - "$ref": "ForwardingRule" - } + "insert": { + "id": "compute.backendBuckets.insert", + "path": "projects/{project}/global/backendBuckets", + "flatPath": "projects/{project}/global/backendBuckets", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "BackendBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a BackendBucket resource in the specified project using the data included in the request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "delete": { + "id": "compute.backendBuckets.delete", + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "DELETE", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendBucket" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified BackendBucket resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "update": { + "id": "compute.backendBuckets.update", + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "PUT", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendBucket" + ], + "request": { + "$ref": "BackendBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified BackendBucket resource with the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "patch": { + "id": "compute.backendBuckets.patch", + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "PATCH", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendBucket" + ], + "request": { + "$ref": "BackendBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified BackendBucket resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + }, + "addSignedUrlKey": { + "id": "compute.backendBuckets.addSignedUrlKey", + "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", + "httpMethod": "POST", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "ForwardingRule": { - "id": "ForwardingRule", - "description": "Represents a Forwarding Rule resource. Forwarding rule resources in Google Cloud can be either regional or global in scope: * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules can also reference target instances and Cloud VPN Classic gateways (targetVpnGateway). For more information, read Forwarding rule concepts and Using protocol forwarding.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#forwardingRule for forwarding rule resources.", - "default": "compute#forwardingRule", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For Private Service Connect forwarding rules that forward traffic to Google APIs, the forwarding rule name must be a 1-20 characters string with lowercase letters and numbers and must start with a letter.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "IPAddress": { - "description": "IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.", - "type": "string" - }, - "IPProtocol": { - "description": "The IP protocol to which this rule applies. For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. The valid IP protocols are different for different load balancing products as described in [Load balancing features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "backendBucket" ], - "enum": [ - "AH", - "ESP", - "ICMP", - "L3_DEFAULT", - "SCTP", - "TCP", - "UDP" - ] - }, - "portRange": { - "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The portRange field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: external passthrough Network Load Balancers, internal and external proxy Network Load Balancers, internal and external Application Load Balancers, external protocol forwarding, and Classic VPN. - Some products have restrictions on what ports can be used. See port specifications for details. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", - "type": "string" - }, - "ports": { - "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal protocol forwarding. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. @pattern: \\\\d+(?:-\\\\d+)?", - "type": "array", - "items": { - "type": "string" - } - }, - "target": { - "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. ", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "loadBalancingScheme": { - "description": "Specifies the forwarding rule type. For more information about forwarding rules, refer to Forwarding rule concepts.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" + "request": { + "$ref": "SignedUrlKey" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "EXTERNAL", - "EXTERNAL_MANAGED", - "INTERNAL", - "INTERNAL_MANAGED", - "INTERNAL_SELF_MANAGED", - "INVALID" - ] - }, - "subnetwork": { - "description": "This field identifies the subnetwork that the load balanced IP should belong to for this forwarding rule, used with internal load balancers and external passthrough Network Load Balancers with IPv6. If the network specified is in auto subnet mode, this field is optional. However, a subnetwork must be specified if the network is in custom subnet mode or when creating external forwarding rule with IPv6.", - "type": "string" - }, - "network": { - "description": "This field is not used for global external load balancing. For internal passthrough Network Load Balancers, this field identifies the network that the load balanced IP should belong to for this forwarding rule. If the subnetwork is specified, the network of the subnetwork will be used. If neither subnetwork nor this field is specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", - "type": "string" - }, - "backendService": { - "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for internal and external passthrough Network Load Balancers; must be omitted for all other load balancer types.", - "type": "string" - }, - "serviceDirectoryRegistrations": { - "description": "Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource.", - "type": "array", - "items": { - "$ref": "ForwardingRuleServiceDirectoryRegistration" - } - }, - "serviceLabel": { - "description": "An optional prefix to the service name for this forwarding rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "serviceName": { - "description": "[Output Only] The internal fully qualified service name for this forwarding rule. This field is only used for internal load balancing.", - "type": "string" + "description": "Adds a key for validating requests with signed URLs for this backend bucket." }, - "networkTier": { - "description": "This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM, STANDARD. For regional ForwardingRule, the valid values are PREMIUM and STANDARD. For GlobalForwardingRule, the valid value is PREMIUM. If this field is not specified, it is assumed to be PREMIUM. If IPAddress is specified, this value must be equal to the networkTier of the Address.", - "type": "string", - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + "deleteSignedUrlKey": { + "id": "compute.backendBuckets.deleteSignedUrlKey", + "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", + "httpMethod": "POST", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "keyName": { + "description": "The name of the Signed URL Key to delete.", + "location": "query", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendBucket", + "keyName" ], - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ] - }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", - "type": "string", - "format": "byte" - }, - "ipVersion": { - "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "IPV4", - "IPV6", - "UNSPECIFIED_VERSION" - ] - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ForwardingRule. Include the fingerprint in patch request to ensure that you do not overwrite changes that were applied from another concurrent request. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", - "type": "string", - "format": "byte" - }, - "allPorts": { - "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The allPorts field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal and external protocol forwarding. - Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true. ", - "type": "boolean" - }, - "allowGlobalAccess": { - "description": "If set to true, clients can access the internal passthrough Network Load Balancers, the regional internal Application Load Balancer, and the regional internal proxy Network Load Balancer from all regions. If false, only allows access from the local region the load balancer is located at. Note that for INTERNAL_MANAGED forwarding rules, this field cannot be changed after the forwarding rule is created.", - "type": "boolean" - }, - "metadataFilters": { - "description": "Opaque filter criteria used by load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to load balancer, xDS clients present node metadata. When there is a match, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. TargetHttpProxy, UrlMap) referenced by the ForwardingRule are not visible to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadataFilters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here will be applifed before those specified in the UrlMap that this ForwardingRule references. metadataFilters only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED.", - "type": "array", - "items": { - "$ref": "MetadataFilter" - } - }, - "isMirroringCollector": { - "description": "Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a PacketMirroring rule applies to them. This can only be set to true for load balancers that have their loadBalancingScheme set to INTERNAL.", - "type": "boolean" - }, - "sourceIpRanges": { - "description": "If not empty, this forwarding rule will only forward the traffic when the source IP address matches one of the IP addresses or CIDR ranges set here. Note that a forwarding rule can only have up to 64 source IP ranges, and this field can only be used with a regional forwarding rule whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).", - "type": "array", - "items": { - "type": "string" - } - }, - "pscConnectionId": { - "description": "[Output Only] The PSC connection id of the PSC forwarding rule.", - "type": "string", - "format": "uint64" + "description": "Deletes a key for validating requests with signed URLs for this backend bucket." }, - "pscConnectionStatus": { - "type": "string", - "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer and will not serve traffic going forward.", - "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", - "The connection is pending acceptance by the producer.", - "The connection has been rejected by the producer.", - "" + "setEdgeSecurityPolicy": { + "id": "compute.backendBuckets.setEdgeSecurityPolicy", + "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendBucket" ], - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ] - }, - "baseForwardingRule": { - "description": "[Output Only] The URL for the corresponding base forwarding rule. By base forwarding rule, we mean the forwarding rule that has the same IP address, protocol, and port settings with the current forwarding rule, but without sourceIPRanges specified. Always empty if the current forwarding rule does not have sourceIPRanges specified.", - "type": "string" - }, - "allowPscGlobalAccess": { - "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", - "type": "boolean" - }, - "noAutomateDnsZone": { - "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field. Once set, this field is not mutable.", - "type": "boolean" - } - } - }, - "ForwardingRuleServiceDirectoryRegistration": { - "id": "ForwardingRuleServiceDirectoryRegistration", - "description": "Describes the auto-registration of the forwarding rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this forwarding rule.", - "type": "object", - "properties": { - "namespace": { - "description": "Service Directory namespace to register the forwarding rule under.", - "type": "string" - }, - "service": { - "description": "Service Directory service to register the forwarding rule under.", - "type": "string" + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the edge security policy for the specified backend bucket." }, - "serviceDirectoryRegion": { - "description": "[Optional] Service Directory region to register this global forwarding rule under. Default to \"us-central1\". Only used for PSC for Google APIs. All PSC for Google APIs forwarding rules on the same network should use the same Service Directory region.", - "type": "string" - } - } - }, - "MetadataFilter": { - "id": "MetadataFilter", - "description": "Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers.", - "type": "object", - "properties": { - "filterMatchCriteria": { - "description": "Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. ", - "type": "string", - "enumDescriptions": [ - "Specifies that all filterLabels must match for the metadataFilter to be considered a match.", - "Specifies that any filterLabel must match for the metadataFilter to be considered a match.", - "Indicates that the match criteria was not set. A metadataFilter must never be created with this value." + "getIamPolicy": { + "id": "compute.backendBuckets.getIamPolicy", + "path": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "MATCH_ALL", - "MATCH_ANY", - "NOT_SET" - ] + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "filterLabels": { - "description": "The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries.", - "type": "array", - "items": { - "$ref": "MetadataFilterLabelMatch" - } - } - } - }, - "MetadataFilterLabelMatch": { - "id": "MetadataFilterLabelMatch", - "description": "MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer.", - "type": "object", - "properties": { - "name": { - "description": "Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.", - "type": "string" + "setIamPolicy": { + "id": "compute.backendBuckets.setIamPolicy", + "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "value": { - "description": "The value of the label must match the specified value. value can have a maximum length of 1024 characters.", - "type": "string" - } - } - }, - "TargetReference": { - "id": "TargetReference", - "type": "object", - "properties": { - "target": { - "type": "string" + "testIamPermissions": { + "id": "compute.backendBuckets.testIamPermissions", + "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "ForwardingRuleAggregatedList": { - "id": "ForwardingRuleAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#forwardingRuleAggregatedList for lists of forwarding rules.", - "default": "compute#forwardingRuleAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of ForwardingRulesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of addresses.", - "$ref": "ForwardingRulesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "backendServices": { + "methods": { + "list": { + "id": "compute.backendServices.list", + "path": "projects/{project}/global/backendServices", + "flatPath": "projects/{project}/global/backendServices", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "BackendServiceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of BackendService resources available to the specified project." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "aggregatedList": { + "id": "compute.backendServices.aggregatedList", + "path": "projects/{project}/aggregated/backendServices", + "flatPath": "projects/{project}/aggregated/backendServices", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "BackendServiceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." + }, + "listUsable": { + "id": "compute.backendServices.listUsable", + "path": "projects/{project}/global/backendServices/listUsable", + "flatPath": "projects/{project}/global/backendServices/listUsable", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "BackendServiceListUsable" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of all usable backend services in the specified project." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ForwardingRulesScopedList": { - "id": "ForwardingRulesScopedList", - "type": "object", - "properties": { - "forwardingRules": { - "description": "A list of forwarding rules contained in this scope.", - "type": "array", - "items": { - "$ref": "ForwardingRule" - } + "get": { + "id": "compute.backendServices.get", + "path": "projects/{project}/global/backendServices/{backendService}", + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "httpMethod": "GET", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "response": { + "$ref": "BackendService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified BackendService resource." }, - "warning": { - "description": "Informational warning which replaces the list of forwarding rules when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.backendServices.insert", + "path": "projects/{project}/global/backendServices", + "flatPath": "projects/{project}/global/backendServices", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview ." + }, + "delete": { + "id": "compute.backendServices.delete", + "path": "projects/{project}/global/backendServices/{backendService}", + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "httpMethod": "DELETE", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "HealthCheckServicesList": { - "id": "HealthCheckServicesList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#healthCheckServicesList for lists of HealthCheckServices.", - "default": "compute#healthCheckServicesList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of HealthCheckService resources.", - "type": "array", - "items": { - "$ref": "HealthCheckService" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "backendService" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified BackendService resource." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "update": { + "id": "compute.backendServices.update", + "path": "projects/{project}/global/backendServices/{backendService}", + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "httpMethod": "PUT", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "HealthCheckService": { - "id": "HealthCheckService", - "description": "Represents a Health-Check as a Service resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#healthCheckServicefor health check services.", - "default": "compute#healthCheckService", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "name": { - "description": "Name of the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the health check service resides. This field is not applicable to global health check services. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "healthStatusAggregationPolicy": { - "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is only allowed with regional HealthCheckService.", - "type": "string", - "enumDescriptions": [ - "If any backend's health check reports UNHEALTHY, then UNHEALTHY is the HealthState of the entire health check service. If all backend's are healthy, the HealthState of the health check service is HEALTHY.", - "An EndpointHealth message is returned for each backend in the health check service." + }, + "parameterOrder": [ + "project", + "backendService" ], - "enum": [ - "AND", - "NO_AGGREGATION" - ] - }, - "healthChecks": { - "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10 for regional HealthCheckService, and not more than 1 for global HealthCheckService. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NetworkEndpointGroups. For global HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify sourceRegions, and HealthChecks that specify sourceRegions can only be used with global INTERNET_IP_PORT NetworkEndpointGroups.", - "type": "array", - "items": { - "type": "string" - } - }, - "networkEndpointGroups": { - "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService. For global HealthCheckServices, the NetworkEndpointGroups must be global INTERNET_IP_PORT.", - "type": "array", - "items": { - "type": "string" - } - }, - "notificationEndpoints": { - "description": "A list of URLs to the NotificationEndpoint resources. Must not have more than 10. A list of endpoints for receiving notifications of change in health status. For regional HealthCheckService, NotificationEndpoint must be regional and in the same region. For global HealthCheckService, NotificationEndpoint must be global.", - "type": "array", - "items": { - "type": "string" - } - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a HealthCheckService. An up-to-date fingerprint must be provided in order to patch/update the HealthCheckService; Otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the HealthCheckService.", - "type": "string", - "format": "byte" - } - } - }, - "HealthCheckList": { - "id": "HealthCheckList", - "description": "Contains a list of HealthCheck resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#healthCheckList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of HealthCheck resources.", - "type": "array", - "items": { - "$ref": "HealthCheck" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "patch": { + "id": "compute.backendServices.patch", + "path": "projects/{project}/global/backendServices/{backendService}", + "flatPath": "projects/{project}/global/backendServices/{backendService}", + "httpMethod": "PATCH", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "addSignedUrlKey": { + "id": "compute.backendServices.addSignedUrlKey", + "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", + "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "request": { + "$ref": "SignedUrlKey" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds a key for validating requests with signed URLs for this backend service." + }, + "deleteSignedUrlKey": { + "id": "compute.backendServices.deleteSignedUrlKey", + "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", + "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "keyName": { + "description": "The name of the Signed URL Key to delete.", + "location": "query", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "HealthCheck": { - "id": "HealthCheck", - "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) * [Global](/compute/docs/reference/rest/v1/healthChecks) These health check resources can be used for load balancing and for autohealing VMs in a managed instance group (MIG). **Load balancing** Health check requirements vary depending on the type of load balancer. For details about the type of health check supported for each load balancer and corresponding backend type, see Health checks overview: Load balancer guide. **Autohealing in MIGs** The health checks that you use for autohealing VMs in a MIG can be either regional or global. For more information, see Set up an application health check and autohealing. For more information, see Health checks overview.", - "type": "object", - "properties": { - "kind": { - "description": "Type of the resource.", - "default": "compute#healthCheck", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in 3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. For example, a name that is 1-63 characters long, matches the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This regular expression describes a name where the first character is a lowercase letter, and all following characters are a dash, lowercase letter, or digit, except the last character, which isn't a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "type": "integer", - "format": "int32" - }, - "timeoutSec": { - "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", - "type": "integer", - "format": "int32" - }, - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "type": "integer", - "format": "int32" - }, - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "type": "integer", - "format": "int32" - }, - "type": { - "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "backendService", + "keyName" ], - "enum": [ - "GRPC", - "HTTP", - "HTTP2", - "HTTPS", - "INVALID", - "SSL", - "TCP" - ] - }, - "tcpHealthCheck": { - "$ref": "TCPHealthCheck" - }, - "sslHealthCheck": { - "$ref": "SSLHealthCheck" - }, - "httpHealthCheck": { - "$ref": "HTTPHealthCheck" - }, - "httpsHealthCheck": { - "$ref": "HTTPSHealthCheck" - }, - "http2HealthCheck": { - "$ref": "HTTP2HealthCheck" - }, - "grpcHealthCheck": { - "$ref": "GRPCHealthCheck" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] Region where the health check resides. Not applicable to global health checks.", - "type": "string" - }, - "logConfig": { - "description": "Configure logging on this health check.", - "$ref": "HealthCheckLogConfig" - } - } - }, - "TCPHealthCheck": { - "id": "TCPHealthCheck", - "type": "object", - "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" - }, - "portName": { - "description": "Not supported.", - "type": "string" - }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "type": "string", - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ] - }, - "request": { - "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection.", - "type": "string" - }, - "response": { - "description": "Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", - "type": "string" + "description": "Deletes a key for validating requests with signed URLs for this backend service." }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "setSecurityPolicy": { + "id": "compute.backendServices.setSecurityPolicy", + "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", + "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendService" ], - "enum": [ - "NONE", - "PROXY_V1" - ] - } - } - }, - "SSLHealthCheck": { - "id": "SSLHealthCheck", - "type": "object", - "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" - }, - "portName": { - "description": "Not supported.", - "type": "string" - }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "type": "string", - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ] - }, - "request": { - "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake.", - "type": "string" - }, - "response": { - "description": "Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", - "type": "string" + "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview" }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "setEdgeSecurityPolicy": { + "id": "compute.backendServices.setEdgeSecurityPolicy", + "path": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy", + "flatPath": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendService" ], - "enum": [ - "NONE", - "PROXY_V1" - ] - } - } - }, - "HTTPHealthCheck": { - "id": "HTTPHealthCheck", - "type": "object", - "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" - }, - "portName": { - "description": "Not supported.", - "type": "string" + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the edge security policy for the specified backend service." }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "type": "string", - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "getHealth": { + "id": "compute.backendServices.getHealth", + "path": "projects/{project}/global/backendServices/{backendService}/getHealth", + "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the queried instance belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "backendService" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ] + "request": { + "$ref": "ResourceGroupReference" + }, + "response": { + "$ref": "BackendServiceGroupHealth" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }" }, - "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", - "type": "string" + "getIamPolicy": { + "id": "compute.backendServices.getIamPolicy", + "path": "projects/{project}/global/backendServices/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/backendServices/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /.", - "type": "string" + "setIamPolicy": { + "id": "compute.backendServices.setIamPolicy", + "path": "projects/{project}/global/backendServices/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/backendServices/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "testIamPermissions": { + "id": "compute.backendServices.testIamPermissions", + "path": "projects/{project}/global/backendServices/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/backendServices/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "NONE", - "PROXY_V1" - ] - }, - "response": { - "description": "Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", - "type": "string" + "description": "Returns permissions that a caller has on the specified resource." } } }, - "HTTPSHealthCheck": { - "id": "HTTPSHealthCheck", - "type": "object", - "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" - }, - "portName": { - "description": "Not supported.", - "type": "string" - }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "type": "string", - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "regionBackendServices": { + "methods": { + "list": { + "id": "compute.regionBackendServices.list", + "path": "projects/{project}/regions/{region}/backendServices", + "flatPath": "projects/{project}/regions/{region}/backendServices", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ] - }, - "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", - "type": "string" - }, - "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is /.", - "type": "string" - }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "response": { + "$ref": "BackendServiceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "NONE", - "PROXY_V1" - ] - }, - "response": { - "description": "Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", - "type": "string" - } - } - }, - "HTTP2HealthCheck": { - "id": "HTTP2HealthCheck", - "type": "object", - "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" - }, - "portName": { - "description": "Not supported.", - "type": "string" + "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region." }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "type": "string", - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "listUsable": { + "id": "compute.regionBackendServices.listUsable", + "path": "projects/{project}/regions/{region}/backendServices/listUsable", + "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request. It must be a string that meets the requirements in RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ] - }, - "host": { - "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", - "type": "string" - }, - "requestPath": { - "description": "The request path of the HTTP/2 health check request. The default value is /.", - "type": "string" - }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "response": { + "$ref": "BackendServiceListUsable" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "NONE", - "PROXY_V1" - ] - }, - "response": { - "description": "Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", - "type": "string" - } - } - }, - "GRPCHealthCheck": { - "id": "GRPCHealthCheck", - "type": "object", - "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", - "type": "integer", - "format": "int32" - }, - "portName": { - "description": "Not supported.", - "type": "string" + "description": "Retrieves an aggregated list of all usable backend services in the specified project in the given region." }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "type": "string", - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "get": { + "id": "compute.regionBackendServices.get", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "GET", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "backendService" ], - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ] - }, - "grpcServiceName": { - "description": "The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII.", - "type": "string" - } - } - }, - "HealthCheckLogConfig": { - "id": "HealthCheckLogConfig", - "description": "Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver.", - "type": "object", - "properties": { - "enable": { - "description": "Indicates whether or not to export logs. This is false by default, which means no health check logging will be done.", - "type": "boolean" - } - } - }, - "HealthChecksAggregatedList": { - "id": "HealthChecksAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#healthChecksAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of HealthChecksScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of HealthChecks.", - "$ref": "HealthChecksScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "response": { + "$ref": "BackendService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified regional BackendService resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.regionBackendServices.insert", + "path": "projects/{project}/regions/{region}/backendServices", + "flatPath": "projects/{project}/regions/{region}/backendServices", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.regionBackendServices.delete", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "DELETE", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified regional BackendService resource." + }, + "update": { + "id": "compute.regionBackendServices.update", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "PUT", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "HealthChecksScopedList": { - "id": "HealthChecksScopedList", - "type": "object", - "properties": { - "healthChecks": { - "description": "A list of HealthChecks contained in this scope.", - "type": "array", - "items": { - "$ref": "HealthCheck" - } + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview ." }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "patch": { + "id": "compute.regionBackendServices.patch", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "PATCH", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "HttpHealthCheckList": { - "id": "HttpHealthCheckList", - "description": "Contains a list of HttpHealthCheck resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#httpHealthCheckList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of HttpHealthCheck resources.", - "type": "array", - "items": { - "$ref": "HttpHealthCheck" - } + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "setSecurityPolicy": { + "id": "compute.regionBackendServices.setSecurityPolicy", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "getHealth": { + "id": "compute.regionBackendServices.getHealth", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", + "httpMethod": "POST", + "parameters": { + "backendService": { + "description": "Name of the BackendService resource for which to get health.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "backendService" + ], + "request": { + "$ref": "ResourceGroupReference" + }, + "response": { + "$ref": "BackendServiceGroupHealth" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the most recent health check results for this regional BackendService." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getIamPolicy": { + "id": "compute.regionBackendServices.getIamPolicy", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + }, + "setIamPolicy": { + "id": "compute.regionBackendServices.setIamPolicy", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "HttpHealthCheck": { - "id": "HttpHealthCheck", - "description": "Represents a legacy HTTP Health Check resource. Legacy HTTP health checks are now only required by target pool-based network load balancers. For all other load balancers, including backend service-based network load balancers, and for managed instance group auto-healing, you must use modern (non-legacy) health checks. For more information, see Health checks overview .", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP health checks.", - "default": "compute#httpHealthCheck", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.", - "type": "string" - }, - "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters. Must comply with RFC3986.", - "type": "string" - }, - "port": { - "description": "The TCP port number for the HTTP health check request. The default value is 80.", - "type": "integer", - "format": "int32" - }, - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "type": "integer", - "format": "int32" - }, - "timeoutSec": { - "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", - "type": "integer", - "format": "int32" - }, - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "type": "integer", - "format": "int32" - }, - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "type": "integer", - "format": "int32" + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "testIamPermissions": { + "id": "compute.regionBackendServices.testIamPermissions", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "HttpsHealthCheckList": { - "id": "HttpsHealthCheckList", - "description": "Contains a list of HttpsHealthCheck resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#httpsHealthCheckList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "regionCommitments": { + "methods": { + "list": { + "id": "compute.regionCommitments.list", + "path": "projects/{project}/regions/{region}/commitments", + "flatPath": "projects/{project}/regions/{region}/commitments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "CommitmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of commitments contained within the specified region." }, - "items": { - "description": "A list of HttpsHealthCheck resources.", - "type": "array", - "items": { - "$ref": "HttpsHealthCheck" - } + "aggregatedList": { + "id": "compute.regionCommitments.aggregatedList", + "path": "projects/{project}/aggregated/commitments", + "flatPath": "projects/{project}/aggregated/commitments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "CommitmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of commitments by region. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.regionCommitments.get", + "path": "projects/{project}/regions/{region}/commitments/{commitment}", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", + "httpMethod": "GET", + "parameters": { + "commitment": { + "description": "Name of the commitment to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "commitment" + ], + "response": { + "$ref": "Commitment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified commitment resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.regionCommitments.insert", + "path": "projects/{project}/regions/{region}/commitments", + "flatPath": "projects/{project}/regions/{region}/commitments", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Commitment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a commitment in the specified project using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "update": { + "id": "compute.regionCommitments.update", + "path": "projects/{project}/regions/{region}/commitments/{commitment}", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", + "httpMethod": "PATCH", + "parameters": { + "commitment": { + "description": "Name of the commitment for which auto renew is being updated.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "paths": { + "location": "query", + "repeated": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" } - } - } - } - }, - "HttpsHealthCheck": { - "id": "HttpsHealthCheck", - "description": "Represents a legacy HTTPS Health Check resource. Legacy HTTPS health checks have been deprecated. If you are using a target pool-based network load balancer, you must use a legacy HTTP (not HTTPS) health check. For all other load balancers, including backend service-based network load balancers, and for managed instance group auto-healing, you must use modern (non-legacy) health checks. For more information, see Health checks overview .", - "type": "object", - "properties": { - "kind": { - "description": "Type of the resource.", - "default": "compute#httpsHealthCheck", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.", - "type": "string" - }, - "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is \"/\". Must comply with RFC3986.", - "type": "string" - }, - "port": { - "description": "The TCP port number for the HTTPS health check request. The default value is 443.", - "type": "integer", - "format": "int32" - }, - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "type": "integer", - "format": "int32" - }, - "timeoutSec": { - "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have a greater value than checkIntervalSec.", - "type": "integer", - "format": "int32" - }, - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "type": "integer", - "format": "int32" - }, - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "type": "integer", - "format": "int32" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "commitment" + ], + "request": { + "$ref": "Commitment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: auto_renew." } } }, - "InstanceTemplateList": { - "id": "InstanceTemplateList", - "description": "A list of instance templates.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceTemplatesListResponse for instance template lists.", - "default": "compute#instanceTemplateList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceTemplate resources.", - "type": "array", - "items": { - "$ref": "InstanceTemplate" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "diskTypes": { + "methods": { + "list": { + "id": "compute.diskTypes.list", + "path": "projects/{project}/zones/{zone}/diskTypes", + "flatPath": "projects/{project}/zones/{zone}/diskTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "InstanceTemplate": { - "id": "InstanceTemplate", - "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/v1/instanceTemplates) * [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.", - "default": "compute#instanceTemplate", - "type": "string" - }, - "id": { - "description": "[Output Only] A unique identifier for this instance template. The server defines this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this instance template in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.instanceTemplates.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "properties": { - "description": "The instance properties for this instance template.", - "$ref": "InstanceProperties" - }, - "selfLink": { - "description": "[Output Only] The URL for this instance template. The server defines this URL.", - "type": "string" - }, - "sourceInstance": { - "description": "The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance ", - "type": "string" + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "DiskTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of disk types available to the specified project." }, - "sourceInstanceParams": { - "description": "The source instance params to use to create this instance template.", - "$ref": "SourceInstanceParams" + "aggregatedList": { + "id": "compute.diskTypes.aggregatedList", + "path": "projects/{project}/aggregated/diskTypes", + "flatPath": "projects/{project}/aggregated/diskTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "DiskTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of disk types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "region": { - "description": "[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.", - "type": "string" - } - } - }, - "SourceInstanceParams": { - "id": "SourceInstanceParams", - "description": "A specification of the parameters to use when creating the instance template from a source instance.", - "type": "object", - "properties": { - "diskConfigs": { - "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", - "type": "array", - "items": { - "$ref": "DiskInstantiationConfig" - } + "get": { + "id": "compute.diskTypes.get", + "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}", + "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}", + "httpMethod": "GET", + "parameters": { + "diskType": { + "description": "Name of the disk type to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "diskType" + ], + "response": { + "$ref": "DiskType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified disk type." } } }, - "DiskInstantiationConfig": { - "id": "DiskInstantiationConfig", - "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", - "type": "object", - "properties": { - "deviceName": { - "description": "Specifies the device name of the disk to which the configurations apply to.", - "type": "string" - }, - "instantiateFrom": { - "description": "Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. ", - "type": "string", - "enumDescriptions": [ - "Attach the existing disk in read-only mode. The request will fail if the disk was attached in read-write mode on the source instance. Applicable to: read-only disks.", - "Create a blank disk. The disk will be created unformatted. Applicable to: additional read-write disks, local SSDs.", - "Use the custom image specified in the custom_image field. Applicable to: boot disk, additional read-write disks.", - "Use the default instantiation option for the corresponding type of disk. For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", - "Do not include the disk in the instance template. Applicable to: additional read-write disks, local SSDs, read-only disks.", - "Use the same source image used for creation of the source instance's corresponding disk. The request will fail if the source VM's disk was created from a snapshot. Applicable to: boot disk, additional read-write disks.", - "Use the same source image family used for creation of the source instance's corresponding disk. The request will fail if the source image of the source disk does not belong to any image family. Applicable to: boot disk, additional read-write disks." + "regionDiskTypes": { + "methods": { + "list": { + "id": "compute.regionDiskTypes.list", + "path": "projects/{project}/regions/{region}/diskTypes", + "flatPath": "projects/{project}/regions/{region}/diskTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "ATTACH_READ_ONLY", - "BLANK", - "CUSTOM_IMAGE", - "DEFAULT", - "DO_NOT_INCLUDE", - "SOURCE_IMAGE", - "SOURCE_IMAGE_FAMILY" - ] - }, - "autoDelete": { - "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", - "type": "boolean" + "response": { + "$ref": "RegionDiskTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of regional disk types available to the specified project." }, - "customImage": { - "description": "The custom source image to be used to restore this disk when instantiating this instance template.", - "type": "string" + "get": { + "id": "compute.regionDiskTypes.get", + "path": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "httpMethod": "GET", + "parameters": { + "diskType": { + "description": "Name of the disk type to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "diskType" + ], + "response": { + "$ref": "DiskType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified regional disk type." } } }, - "InstanceTemplateAggregatedList": { - "id": "InstanceTemplateAggregatedList", - "description": "Contains a list of InstanceTemplatesScopedList.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#instanceTemplateAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceTemplatesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "The name of the scope that contains this set of instance templates.", - "$ref": "InstanceTemplatesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "externalVpnGateways": { + "methods": { + "insert": { + "id": "compute.externalVpnGateways.insert", + "path": "projects/{project}/global/externalVpnGateways", + "flatPath": "projects/{project}/global/externalVpnGateways", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ExternalVpnGateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "list": { + "id": "compute.externalVpnGateways.list", + "path": "projects/{project}/global/externalVpnGateways", + "flatPath": "projects/{project}/global/externalVpnGateways", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "InstanceTemplatesScopedList": { - "id": "InstanceTemplatesScopedList", - "type": "object", - "properties": { - "instanceTemplates": { - "description": "[Output Only] A list of instance templates that are contained within the specified project and zone.", - "type": "array", - "items": { - "$ref": "InstanceTemplate" - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ExternalVpnGatewayList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of ExternalVpnGateway available to the specified project." }, - "warning": { - "description": "[Output Only] An informational warning that replaces the list of instance templates when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "get": { + "id": "compute.externalVpnGateways.get", + "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "httpMethod": "GET", + "parameters": { + "externalVpnGateway": { + "description": "Name of the externalVpnGateway to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "externalVpnGateway" + ], + "response": { + "$ref": "ExternalVpnGateway" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request." + }, + "delete": { + "id": "compute.externalVpnGateways.delete", + "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", + "httpMethod": "DELETE", + "parameters": { + "externalVpnGateway": { + "description": "Name of the externalVpnGateways to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "InterconnectAttachmentList": { - "id": "InterconnectAttachmentList", - "description": "Response to the list request, and contains a list of interconnect attachments.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.", - "default": "compute#interconnectAttachmentList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InterconnectAttachment resources.", - "type": "array", - "items": { - "$ref": "InterconnectAttachment" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "externalVpnGateway" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified externalVpnGateway." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "testIamPermissions": { + "id": "compute.externalVpnGateways.testIamPermissions", + "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." + }, + "setLabels": { + "id": "compute.externalVpnGateways.setLabels", + "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", + "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation." } } }, - "InterconnectAttachment": { - "id": "InterconnectAttachment", - "description": "Represents an Interconnect Attachment (VLAN) resource. You can use Interconnect attachments (VLANS) to connect your Virtual Private Cloud networks to your on-premises networks through an Interconnect. For more information, read Creating VLAN Attachments.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", - "default": "compute#interconnectAttachment", - "type": "string" - }, - "description": { - "description": "An optional description of this resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "interconnect": { - "description": "URL of the underlying Interconnect object that this attachment's traffic will traverse through.", - "type": "string" - }, - "router": { - "description": "URL of the Cloud Router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional interconnect attachment resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "googleReferenceId": { - "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.", - "deprecated": true, - "type": "string" - }, - "mtu": { - "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the value will default to 1440.", - "type": "integer", - "format": "int32" - }, - "privateInterconnectInfo": { - "description": "[Output Only] Information specific to an InterconnectAttachment. This property is populated if the interconnect that this is attached to is of type DEDICATED.", - "$ref": "InterconnectAttachmentPrivateInfo" - }, - "operationalStatus": { - "description": "[Output Only] The current status of whether or not this interconnect attachment is functional, which can take one of the following values: - OS_ACTIVE: The attachment has been turned up and is ready to use. - OS_UNPROVISIONED: The attachment is not ready to use yet, because turnup is not complete. ", - "type": "string", - "enumDescriptions": [ - "Indicates that attachment has been turned up and is ready to use.", - "Indicates that attachment is not ready to use yet, because turnup is not complete." + "globalForwardingRules": { + "methods": { + "list": { + "id": "compute.globalForwardingRules.list", + "path": "projects/{project}/global/forwardingRules", + "flatPath": "projects/{project}/global/forwardingRules", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "OS_ACTIVE", - "OS_UNPROVISIONED" - ] + "response": { + "$ref": "ForwardingRuleList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project." }, - "cloudRouterIpAddress": { - "description": "[Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", - "type": "string" + "get": { + "id": "compute.globalForwardingRules.get", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}", + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", + "httpMethod": "GET", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" + ], + "response": { + "$ref": "ForwardingRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request." }, - "customerRouterIpAddress": { - "description": "[Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", - "type": "string" + "insert": { + "id": "compute.globalForwardingRules.insert", + "path": "projects/{project}/global/forwardingRules", + "flatPath": "projects/{project}/global/forwardingRules", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ForwardingRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request." }, - "type": { - "description": "The type of interconnect attachment this is, which can take one of the following values: - DEDICATED: an attachment to a Dedicated Interconnect. - PARTNER: an attachment to a Partner Interconnect, created by the customer. - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the partner. ", - "type": "string", - "enumDescriptions": [ - "Attachment to a dedicated interconnect.", - "Attachment to a partner interconnect, created by the customer.", - "Attachment to a partner interconnect, created by the partner." + "delete": { + "id": "compute.globalForwardingRules.delete", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}", + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", + "httpMethod": "DELETE", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "DEDICATED", - "PARTNER", - "PARTNER_PROVIDER" - ] - }, - "pairingKey": { - "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of a PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", - "type": "string" - }, - "adminEnabled": { - "description": "Determines whether this Attachment will carry packets. Not present for PARTNER_PROVIDER.", - "type": "boolean" - }, - "vlanTag8021q": { - "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093. Only specified at creation time.", - "type": "integer", - "format": "int32" + "description": "Deletes the specified GlobalForwardingRule resource." }, - "edgeAvailabilityDomain": { - "description": "Desired availability domain for the attachment. Only available for type PARTNER, at creation time, and can take one of the following values: - AVAILABILITY_DOMAIN_ANY - AVAILABILITY_DOMAIN_1 - AVAILABILITY_DOMAIN_2 For improved reliability, customers should configure a pair of attachments, one per availability domain. The selected availability domain will be provided to the Partner via the pairing key, so that the provisioned circuit will lie in the specified domain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "setTarget": { + "id": "compute.globalForwardingRules.setTarget", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", + "httpMethod": "POST", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource in which target is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" ], - "enum": [ - "AVAILABILITY_DOMAIN_1", - "AVAILABILITY_DOMAIN_2", - "AVAILABILITY_DOMAIN_ANY" - ] - }, - "candidateSubnets": { - "description": "Up to 16 candidate prefixes that can be used to restrict the allocation of cloudRouterIpAddress and customerRouterIpAddress for this attachment. All prefixes must be within link-local address space (169.254.0.0/16) and must be /29 or shorter (/28, /27, etc). Google will attempt to select an unused /29 from the supplied candidate prefix(es). The request will fail if all possible /29s are in use on Google's edge. If not supplied, Google will randomly select an unused /29 from all of link-local space.", - "type": "array", - "items": { - "type": "string" - } - }, - "bandwidth": { - "description": "Provisioned bandwidth capacity for the interconnect attachment. For attachments of type DEDICATED, the user can set the bandwidth. For attachments of type PARTNER, the Google Partner that is operating the interconnect must set the bandwidth. Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can take one of the following values: - BPS_50M: 50 Mbit/s - BPS_100M: 100 Mbit/s - BPS_200M: 200 Mbit/s - BPS_300M: 300 Mbit/s - BPS_400M: 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: 1 Gbit/s - BPS_2G: 2 Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - BPS_20G: 20 Gbit/s - BPS_50G: 50 Gbit/s ", - "type": "string", - "enumDescriptions": [ - "100 Mbit/s", - "10 Gbit/s", - "1 Gbit/s", - "200 Mbit/s", - "20 Gbit/s", - "2 Gbit/s", - "300 Mbit/s", - "400 Mbit/s", - "500 Mbit/s", - "50 Gbit/s", - "50 Mbit/s", - "5 Gbit/s" + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "BPS_100M", - "BPS_10G", - "BPS_1G", - "BPS_200M", - "BPS_20G", - "BPS_2G", - "BPS_300M", - "BPS_400M", - "BPS_500M", - "BPS_50G", - "BPS_50M", - "BPS_5G" - ] - }, - "partnerMetadata": { - "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED.", - "$ref": "InterconnectAttachmentPartnerMetadata" - }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this InterconnectAttachment, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InterconnectAttachment.", - "type": "string", - "format": "byte" + "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target." }, - "state": { - "description": "[Output Only] The current state of this attachment's functionality. Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only PARTNER and PARTNER_PROVIDER interconnect attachments. This state can take one of the following values: - ACTIVE: The attachment has been turned up and is ready to use. - UNPROVISIONED: The attachment is not ready to use yet, because turnup is not complete. - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet been configured on the Partner side. - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER attachment was created that references it. - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is waiting for a customer to activate it. - DEFUNCT: The attachment was deleted externally and is no longer functional. This could be because the associated Interconnect was removed, or because the other side of a Partner attachment was deleted. ", - "type": "string", - "enumDescriptions": [ - "Indicates that attachment has been turned up and is ready to use.", - "The attachment was deleted externally and is no longer functional. This could be because the associated Interconnect was wiped out, or because the other side of a Partner attachment was deleted.", - "A PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER attachment was created that references it.", - "PARTNER or PARTNER_PROVIDER attachment that is waiting for the customer to activate.", - "A newly created PARTNER attachment that has not yet been configured on the Partner side.", - "", - "Indicates that attachment is not ready to use yet, because turnup is not complete." + "patch": { + "id": "compute.globalForwardingRules.patch", + "path": "projects/{project}/global/forwardingRules/{forwardingRule}", + "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", + "httpMethod": "PATCH", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" ], - "enum": [ - "ACTIVE", - "DEFUNCT", - "PARTNER_REQUEST_RECEIVED", - "PENDING_CUSTOMER", - "PENDING_PARTNER", - "STATE_UNSPECIFIED", - "UNPROVISIONED" - ] - }, - "partnerAsn": { - "description": "Optional BGP ASN for the router supplied by a Layer 3 Partner if they configured BGP on behalf of the customer. Output only for PARTNER type, input only for PARTNER_PROVIDER, not available for DEDICATED.", - "type": "string", - "format": "int64" - }, - "encryption": { - "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud Interconnect*, the VLAN attachment must be created with this option. ", - "type": "string", - "enumDescriptions": [ - "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use HA VPN over Cloud Interconnect, the interconnect attachment must be created with this option.", - "This is the default value, which means the Interconnect Attachment will carry unencrypted traffic. VMs will be able to send traffic to or receive traffic from such interconnect attachment." + "request": { + "$ref": "ForwardingRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "IPSEC", - "NONE" - ] - }, - "ipsecInternalAddresses": { - "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool.", - "type": "array", - "items": { - "type": "string" - } - }, - "dataplaneVersion": { - "description": "[Output Only] Dataplane version for this InterconnectAttachment. This field is only present for Dataplane version 2 and higher. Absence of this field in the API output indicates that the Dataplane is version 1.", - "type": "integer", - "format": "int32" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field." }, - "stackType": { - "description": "The stack type for this interconnect attachment to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at interconnect attachments creation and update interconnect attachment operations.", - "type": "string", - "enumDescriptions": [ - "The interconnect attachment can have both IPv4 and IPv6 addresses.", - "The interconnect attachment will only be assigned IPv4 addresses." + "setLabels": { + "id": "compute.globalForwardingRules.setLabels", + "path": "projects/{project}/global/forwardingRules/{resource}/setLabels", + "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ] - }, - "cloudRouterIpv6Address": { - "description": "[Output Only] IPv6 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", - "type": "string" - }, - "customerRouterIpv6Address": { - "description": "[Output Only] IPv6 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", - "type": "string" - }, - "candidateIpv6Subnets": { - "description": "This field is not available.", - "type": "array", - "items": { - "type": "string" - } - }, - "cloudRouterIpv6InterfaceId": { - "description": "This field is not available.", - "type": "string" - }, - "customerRouterIpv6InterfaceId": { - "description": "This field is not available.", - "type": "string" - }, - "subnetLength": { - "description": "Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The default value is 29, except for Cross-Cloud Interconnect connections that use an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal to 30. For example, connections that use an Azure remote location fall into this category. In these cases, the default value is 30, and requesting 29 returns an error. Where both 29 and 30 are allowed, 29 is preferred, because it gives Google Cloud Support more debugging visibility. ", - "type": "integer", - "format": "int32" - }, - "remoteService": { - "description": "[Output Only] If the attachment is on a Cross-Cloud Interconnect connection, this field contains the interconnect's remote location service provider. Example values: \"Amazon Web Services\" \"Microsoft Azure\". The field is set only for attachments on Cross-Cloud Interconnect connections. Its value is copied from the InterconnectRemoteLocation remoteService field.", - "type": "string" - }, - "configurationConstraints": { - "description": "[Output Only] Constraints for this attachment, if any. The attachment does not work if these constraints are not met.", - "$ref": "InterconnectAttachmentConfigurationConstraints" - } - } - }, - "InterconnectAttachmentPrivateInfo": { - "id": "InterconnectAttachmentPrivateInfo", - "description": "Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED.", - "type": "object", - "properties": { - "tag8021q": { - "description": "[Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.", - "type": "integer", - "format": "uint32" - } - } - }, - "InterconnectAttachmentPartnerMetadata": { - "id": "InterconnectAttachmentPartnerMetadata", - "description": "Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments.", - "type": "object", - "properties": { - "partnerName": { - "description": "Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values.", - "type": "string" - }, - "interconnectName": { - "description": "Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance \"Chicago 1\". This value may be validated to match approved Partner values.", - "type": "string" - }, - "portalUrl": { - "description": "URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values.", - "type": "string" - } - } - }, - "InterconnectAttachmentConfigurationConstraints": { - "id": "InterconnectAttachmentConfigurationConstraints", - "type": "object", - "properties": { - "bgpMd5": { - "description": "[Output Only] Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested.", - "type": "string", - "enumDescriptions": [ - "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be configured.", - "MD5_REQUIRED: BGP MD5 authentication must be configured.", - "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured" + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "MD5_OPTIONAL", - "MD5_REQUIRED", - "MD5_UNSUPPORTED" - ] - }, - "bgpPeerAsnRanges": { - "description": "[Output Only] List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend.", - "type": "array", - "items": { - "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange" - } + "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation." } } }, - "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange": { - "id": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange", - "type": "object", - "properties": { - "min": { - "type": "integer", - "format": "uint32" + "forwardingRules": { + "methods": { + "list": { + "id": "compute.forwardingRules.list", + "path": "projects/{project}/regions/{region}/forwardingRules", + "flatPath": "projects/{project}/regions/{region}/forwardingRules", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "ForwardingRuleList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of ForwardingRule resources available to the specified project and region." }, - "max": { - "type": "integer", - "format": "uint32" - } - } - }, - "InterconnectAttachmentAggregatedList": { - "id": "InterconnectAttachmentAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.", - "default": "compute#interconnectAttachmentAggregatedList", - "type": "string" + "aggregatedList": { + "id": "compute.forwardingRules.aggregatedList", + "path": "projects/{project}/aggregated/forwardingRules", + "flatPath": "projects/{project}/aggregated/forwardingRules", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ForwardingRuleAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of forwarding rules. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "get": { + "id": "compute.forwardingRules.get", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "httpMethod": "GET", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "response": { + "$ref": "ForwardingRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified ForwardingRule resource." }, - "items": { - "description": "A list of InterconnectAttachmentsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of interconnect attachments.", - "$ref": "InterconnectAttachmentsScopedList" - } + "insert": { + "id": "compute.forwardingRules.insert", + "path": "projects/{project}/regions/{region}/forwardingRules", + "flatPath": "projects/{project}/regions/{region}/forwardingRules", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "ForwardingRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "delete": { + "id": "compute.forwardingRules.delete", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "httpMethod": "DELETE", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified ForwardingRule resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "setTarget": { + "id": "compute.forwardingRules.setTarget", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", + "httpMethod": "POST", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource in which target is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "patch": { + "id": "compute.forwardingRules.patch", + "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", + "httpMethod": "PATCH", + "parameters": { + "forwardingRule": { + "description": "Name of the ForwardingRule resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "request": { + "$ref": "ForwardingRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } + "setLabels": { + "id": "compute.forwardingRules.setLabels", + "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation." } } }, - "InterconnectAttachmentsScopedList": { - "id": "InterconnectAttachmentsScopedList", - "type": "object", - "properties": { - "interconnectAttachments": { - "description": "A list of interconnect attachments contained in this scope.", - "type": "array", - "items": { - "$ref": "InterconnectAttachment" - } - }, - "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "regionHealthCheckServices": { + "methods": { + "list": { + "id": "compute.regionHealthCheckServices.list", + "path": "projects/{project}/regions/{region}/healthCheckServices", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "Interconnect": { - "id": "Interconnect", - "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the Google Cloud network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", - "default": "compute#interconnect", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.interconnects.insert" - ] }, - "type": "string" - }, - "location": { - "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned.", - "type": "string" - }, - "linkType": { - "description": "Type of link requested, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this field indicates the speed of each of the links in the bundle, not the speed of the entire bundle.", - "type": "string", - "enumDescriptions": [ - "100G Ethernet, LR Optics.", - "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "LINK_TYPE_ETHERNET_100G_LR", - "LINK_TYPE_ETHERNET_10G_LR" - ] - }, - "requestedLinkCount": { - "description": "Target number of physical links in the link bundle, as requested by the customer.", - "type": "integer", - "format": "int32" - }, - "interconnectType": { - "description": "Type of interconnect, which can take one of the following values: - PARTNER: A partner-managed interconnection shared between customers though a partner. - DEDICATED: A dedicated physical interconnection with the customer. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.", - "type": "string", - "enumDescriptions": [ - "A dedicated physical interconnection with the customer.", - "[Deprecated] A private, physical interconnection with the customer.", - "A partner-managed interconnection shared between customers via partner." + "response": { + "$ref": "HealthCheckServicesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "DEDICATED", - "IT_PRIVATE", - "PARTNER" - ] - }, - "adminEnabled": { - "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", - "type": "boolean" - }, - "nocContactEmail": { - "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications. This field is required for users who sign up for Cloud Interconnect using workforce identity federation.", - "type": "string" - }, - "customerName": { - "description": "Customer name, to put in the Letter of Authorization as the party authorized to request a crossconnect.", - "type": "string" + "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region." }, - "operationalStatus": { - "description": "[Output Only] The current status of this Interconnect's functionality, which can take one of the following values: - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may be provisioned on this Interconnect. - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be provisioned on this Interconnect. - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No attachments may be provisioned or updated on this Interconnect. ", - "type": "string", - "enumDescriptions": [ - "The interconnect is valid, turned up, and ready to use. Attachments may be provisioned on this interconnect.", - "The interconnect has not completed turnup. No attachments may be provisioned on this interconnect." + "get": { + "id": "compute.regionHealthCheckServices.get", + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "httpMethod": "GET", + "parameters": { + "healthCheckService": { + "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheckService" ], - "enum": [ - "OS_ACTIVE", - "OS_UNPROVISIONED" - ] - }, - "provisionedLinkCount": { - "description": "[Output Only] Number of links actually provisioned in this interconnect.", - "type": "integer", - "format": "int32" - }, - "interconnectAttachments": { - "description": "[Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.", - "type": "array", - "items": { - "type": "string" - } - }, - "peerIpAddress": { - "description": "[Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.", - "type": "string" - }, - "googleIpAddress": { - "description": "[Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.", - "type": "string" - }, - "googleReferenceId": { - "description": "[Output Only] Google reference ID to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.", - "type": "string" - }, - "expectedOutages": { - "description": "[Output Only] A list of outages expected for this Interconnect.", - "type": "array", - "items": { - "$ref": "InterconnectOutageNotification" - } - }, - "circuitInfos": { - "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", - "type": "array", - "items": { - "$ref": "InterconnectCircuitInfo" - } - }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this Interconnect, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Interconnect.", - "type": "string", - "format": "byte" - }, - "state": { - "description": "[Output Only] The current state of Interconnect functionality, which can take one of the following values: - ACTIVE: The Interconnect is valid, turned up and ready to use. Attachments may be provisioned on this Interconnect. - UNPROVISIONED: The Interconnect has not completed turnup. No attachments may be provisioned on this Interconnect. - UNDER_MAINTENANCE: The Interconnect is undergoing internal maintenance. No attachments may be provisioned or updated on this Interconnect. ", - "type": "string", - "enumDescriptions": [ - "The interconnect is valid, turned up, and ready to use. Attachments may be provisioned on this interconnect.", - "The interconnect has not completed turnup. No attachments may be provisioned on this interconnect." + "response": { + "$ref": "HealthCheckService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "ACTIVE", - "UNPROVISIONED" - ] - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "macsec": { - "description": "Configuration that enables Media Access Control security (MACsec) on the Cloud Interconnect connection between Google and your on-premises router.", - "$ref": "InterconnectMacsec" - }, - "macsecEnabled": { - "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement fails if the MACsec object is not specified.", - "type": "boolean" + "description": "Returns the specified regional HealthCheckService resource." }, - "remoteLocation": { - "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside of Google's network that the interconnect is connected to.", - "type": "string" + "insert": { + "id": "compute.regionHealthCheckServices.insert", + "path": "projects/{project}/regions/{region}/healthCheckServices", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "HealthCheckService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request." }, - "requestedFeatures": { - "description": "Optional. List of features requested for this Interconnect connection, which can take one of the following values: - MACSEC If specified then the connection is created on MACsec capable hardware ports. If not specified, the default value is false, which allocates non-MACsec capable ports first if available. This parameter can be provided only with Interconnect INSERT. It isn't valid for Interconnect PATCH.", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "Media Access Control security (MACsec)" - ], - "enum": [ - "IF_MACSEC" - ] - } + "delete": { + "id": "compute.regionHealthCheckServices.delete", + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "httpMethod": "DELETE", + "parameters": { + "healthCheckService": { + "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheckService" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified regional HealthCheckService." }, - "availableFeatures": { - "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "Media Access Control security (MACsec)" - ], - "enum": [ - "IF_MACSEC" - ] - } + "patch": { + "id": "compute.regionHealthCheckServices.patch", + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "httpMethod": "PATCH", + "parameters": { + "healthCheckService": { + "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheckService" + ], + "request": { + "$ref": "HealthCheckService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified regional HealthCheckService resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." } } }, - "InterconnectOutageNotification": { - "id": "InterconnectOutageNotification", - "description": "Description of a planned outage on this Interconnect.", - "type": "object", - "properties": { - "name": { - "description": "Unique identifier for this outage notification.", - "type": "string" - }, - "description": { - "description": "A description about the purpose of the outage.", - "type": "string" - }, - "source": { - "description": "The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.", - "type": "string", - "enumDescriptions": [ - "This notification was generated by Google.", - "[Deprecated] This notification was generated by Google." - ], - "enum": [ - "GOOGLE", - "NSRC_GOOGLE" - ] - }, - "state": { - "description": "State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with \"NS_\" have been deprecated in favor of the unprefixed values.", - "type": "string", - "enumDescriptions": [ - "This outage notification is active. The event could be in the future, present, or past. See start_time and end_time for scheduling.", - "The outage associated with this notification was cancelled before the outage was due to start.", - "The outage associated with this notification is complete.", - "[Deprecated] This outage notification is active. The event could be in the future, present, or past. See start_time and end_time for scheduling.", - "[Deprecated] The outage associated with this notification was canceled before the outage was due to start." + "healthChecks": { + "methods": { + "list": { + "id": "compute.healthChecks.list", + "path": "projects/{project}/global/healthChecks", + "flatPath": "projects/{project}/global/healthChecks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "ACTIVE", - "CANCELLED", - "COMPLETED", - "NS_ACTIVE", - "NS_CANCELED" - ] - }, - "issueType": { - "description": "Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with \"IT_\" have been deprecated in favor of the unprefixed values.", - "type": "string", - "enumDescriptions": [ - "[Deprecated] The Interconnect may be completely out of service for some or all of the specified window.", - "[Deprecated] Some circuits comprising the Interconnect will be out of service during the expected window. The interconnect as a whole should remain up, albeit with reduced bandwidth.", - "The Interconnect may be completely out of service for some or all of the specified window.", - "Some circuits comprising the Interconnect will be out of service during the expected window. The interconnect as a whole should remain up, albeit with reduced bandwidth." + "response": { + "$ref": "HealthCheckList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "IT_OUTAGE", - "IT_PARTIAL_OUTAGE", - "OUTAGE", - "PARTIAL_OUTAGE" - ] - }, - "affectedCircuits": { - "description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.", - "type": "array", - "items": { - "type": "string" - } + "description": "Retrieves the list of HealthCheck resources available to the specified project." }, - "startTime": { - "description": "Scheduled start time for the outage (milliseconds since Unix epoch).", - "type": "string", - "format": "int64" + "aggregatedList": { + "id": "compute.healthChecks.aggregatedList", + "path": "projects/{project}/aggregated/healthChecks", + "flatPath": "projects/{project}/aggregated/healthChecks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "HealthChecksAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "endTime": { - "description": "Scheduled end time for the outage (milliseconds since Unix epoch).", - "type": "string", - "format": "int64" - } - } - }, - "InterconnectCircuitInfo": { - "id": "InterconnectCircuitInfo", - "description": "Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only.", - "type": "object", - "properties": { - "googleCircuitId": { - "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up.", - "type": "string" + "get": { + "id": "compute.healthChecks.get", + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "GET", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "healthCheck" + ], + "response": { + "$ref": "HealthCheck" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified HealthCheck resource." }, - "googleDemarcId": { - "description": "Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA.", - "type": "string" + "insert": { + "id": "compute.healthChecks.insert", + "path": "projects/{project}/global/healthChecks", + "flatPath": "projects/{project}/global/healthChecks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a HealthCheck resource in the specified project using the data included in the request." }, - "customerDemarcId": { - "description": "Customer-side demarc ID for this circuit.", - "type": "string" - } - } - }, - "InterconnectMacsec": { - "id": "InterconnectMacsec", - "description": "Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router.", - "type": "object", - "properties": { - "preSharedKeys": { - "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", - "type": "array", - "items": { - "$ref": "InterconnectMacsecPreSharedKey" - } + "delete": { + "id": "compute.healthChecks.delete", + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "DELETE", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "healthCheck" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified HealthCheck resource." }, - "failOpen": { - "description": "If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", - "type": "boolean" - } - } - }, - "InterconnectMacsecPreSharedKey": { - "id": "InterconnectMacsecPreSharedKey", - "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", - "type": "object", - "properties": { - "name": { - "description": "Required. A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "type": "string" + "update": { + "id": "compute.healthChecks.update", + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "PUT", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "healthCheck" + ], + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HealthCheck resource in the specified project using the data included in the request." }, - "startTime": { - "description": "A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart.", - "type": "string" + "patch": { + "id": "compute.healthChecks.patch", + "path": "projects/{project}/global/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", + "httpMethod": "PATCH", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "healthCheck" + ], + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." } } }, - "InterconnectList": { - "id": "InterconnectList", - "description": "Response to the list request, and contains a list of interconnects.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.", - "default": "compute#interconnectList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Interconnect resources.", - "type": "array", - "items": { - "$ref": "Interconnect" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "regionHealthChecks": { + "methods": { + "list": { + "id": "compute.regionHealthChecks.list", + "path": "projects/{project}/regions/{region}/healthChecks", + "flatPath": "projects/{project}/regions/{region}/healthChecks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "InterconnectsGetDiagnosticsResponse": { - "id": "InterconnectsGetDiagnosticsResponse", - "description": "Response for the InterconnectsGetDiagnosticsRequest.", - "type": "object", - "properties": { - "result": { - "$ref": "InterconnectDiagnostics" - } - } - }, - "InterconnectDiagnostics": { - "id": "InterconnectDiagnostics", - "description": "Diagnostics information about the Interconnect connection, which contains detailed and current technical information about Google's side of the connection.", - "type": "object", - "properties": { - "macAddress": { - "description": "The MAC address of the Interconnect's bundle interface.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "HealthCheckList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of HealthCheck resources available to the specified project." }, - "arpCaches": { - "description": "A list of InterconnectDiagnostics.ARPEntry objects, describing individual neighbors currently seen by the Google router in the ARP cache for the Interconnect. This will be empty when the Interconnect is not bundled.", - "type": "array", - "items": { - "$ref": "InterconnectDiagnosticsARPEntry" - } + "get": { + "id": "compute.regionHealthChecks.get", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "GET", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheck" + ], + "response": { + "$ref": "HealthCheck" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified HealthCheck resource." }, - "links": { - "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", - "type": "array", - "items": { - "$ref": "InterconnectDiagnosticsLinkStatus" - } + "insert": { + "id": "compute.regionHealthChecks.insert", + "path": "projects/{project}/regions/{region}/healthChecks", + "flatPath": "projects/{project}/regions/{region}/healthChecks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a HealthCheck resource in the specified project using the data included in the request." }, - "bundleOperationalStatus": { - "description": "The operational status of the bundle interface.", - "type": "string", - "enumDescriptions": [ - "If bundleAggregationType is LACP: LACP is not established and/or all links in the bundle have DOWN operational status. If bundleAggregationType is STATIC: one or more links in the bundle has DOWN operational status.", - "If bundleAggregationType is LACP: LACP is established and at least one link in the bundle has UP operational status. If bundleAggregationType is STATIC: all links in the bundle (typically just one) have UP operational status." + "delete": { + "id": "compute.regionHealthChecks.delete", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "DELETE", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheck" ], - "enum": [ - "BUNDLE_OPERATIONAL_STATUS_DOWN", - "BUNDLE_OPERATIONAL_STATUS_UP" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified HealthCheck resource." }, - "bundleAggregationType": { - "description": "The aggregation type of the bundle interface.", - "type": "string", - "enumDescriptions": [ - "LACP is enabled.", - "LACP is disabled." + "update": { + "id": "compute.regionHealthChecks.update", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "PUT", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheck" ], - "enum": [ - "BUNDLE_AGGREGATION_TYPE_LACP", - "BUNDLE_AGGREGATION_TYPE_STATIC" - ] - } - } - }, - "InterconnectDiagnosticsARPEntry": { - "id": "InterconnectDiagnosticsARPEntry", - "description": "Describing the ARP neighbor entries seen on this link", - "type": "object", - "properties": { - "macAddress": { - "description": "The MAC address of this ARP neighbor.", - "type": "string" + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HealthCheck resource in the specified project using the data included in the request." }, - "ipAddress": { - "description": "The IP address of this ARP neighbor.", - "type": "string" + "patch": { + "id": "compute.regionHealthChecks.patch", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "PATCH", + "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "healthCheck" + ], + "request": { + "$ref": "HealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." } } }, - "InterconnectDiagnosticsLinkStatus": { - "id": "InterconnectDiagnosticsLinkStatus", - "type": "object", - "properties": { - "circuitId": { - "description": "The unique ID for this link assigned during turn up by Google.", - "type": "string" - }, - "googleDemarc": { - "description": "The Demarc address assigned by Google and provided in the LoA.", - "type": "string" - }, - "receivingOpticalPower": { - "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level.", - "$ref": "InterconnectDiagnosticsLinkOpticalPower" + "httpHealthChecks": { + "methods": { + "list": { + "id": "compute.httpHealthChecks.list", + "path": "projects/{project}/global/httpHealthChecks", + "flatPath": "projects/{project}/global/httpHealthChecks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "HttpHealthCheckList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of HttpHealthCheck resources available to the specified project." }, - "transmittingOpticalPower": { - "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the transmitted light level.", - "$ref": "InterconnectDiagnosticsLinkOpticalPower" + "get": { + "id": "compute.httpHealthChecks.get", + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "GET", + "parameters": { + "httpHealthCheck": { + "description": "Name of the HttpHealthCheck resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "response": { + "$ref": "HttpHealthCheck" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified HttpHealthCheck resource." }, - "lacpStatus": { - "$ref": "InterconnectDiagnosticsLinkLACPStatus" + "insert": { + "id": "compute.httpHealthChecks.insert", + "path": "projects/{project}/global/httpHealthChecks", + "flatPath": "projects/{project}/global/httpHealthChecks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "HttpHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request." }, - "operationalStatus": { - "description": "The operational status of the link.", - "type": "string", - "enumDescriptions": [ - "The interface is unable to communicate with the remote end.", - "The interface has low level communication with the remote end." + "delete": { + "id": "compute.httpHealthChecks.delete", + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "DELETE", + "parameters": { + "httpHealthCheck": { + "description": "Name of the HttpHealthCheck resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "LINK_OPERATIONAL_STATUS_DOWN", - "LINK_OPERATIONAL_STATUS_UP" - ] - }, - "arpCaches": { - "description": "A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP neighbor entries seen on this link. This will be empty if the link is bundled", - "type": "array", - "items": { - "$ref": "InterconnectDiagnosticsARPEntry" - } - }, - "macsec": { - "description": "Describes the status of MACsec encryption on this link.", - "$ref": "InterconnectDiagnosticsMacsecStatus" - } - } - }, - "InterconnectDiagnosticsLinkOpticalPower": { - "id": "InterconnectDiagnosticsLinkOpticalPower", - "type": "object", - "properties": { - "value": { - "description": "Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links.", - "type": "number", - "format": "float" + "description": "Deletes the specified HttpHealthCheck resource." }, - "state": { - "description": "The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include: - OK: The value has not crossed a warning threshold. - LOW_WARNING: The value has crossed below the low warning threshold. - HIGH_WARNING: The value has crossed above the high warning threshold. - LOW_ALARM: The value has crossed below the low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm threshold. ", - "type": "string", - "enumDescriptions": [ - "The value has crossed above the high alarm threshold.", - "The value of the current optical power has crossed above the high warning threshold.", - "The value of the current optical power has crossed below the low alarm threshold.", - "The value of the current optical power has crossed below the low warning threshold.", - "The value of the current optical power has not crossed a warning threshold." + "update": { + "id": "compute.httpHealthChecks.update", + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "PUT", + "parameters": { + "httpHealthCheck": { + "description": "Name of the HttpHealthCheck resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" ], - "enum": [ - "HIGH_ALARM", - "HIGH_WARNING", - "LOW_ALARM", - "LOW_WARNING", - "OK" - ] - } - } - }, - "InterconnectDiagnosticsLinkLACPStatus": { - "id": "InterconnectDiagnosticsLinkLACPStatus", - "type": "object", - "properties": { - "state": { - "description": "The state of a LACP link, which can take one of the following values: - ACTIVE: The link is configured and active within the bundle. - DETACHED: The link is not configured within the bundle. This means that the rest of the object should be empty. ", - "type": "string", - "enumDescriptions": [ - "The link is configured and active within the bundle.", - "The link is not configured within the bundle, this means the rest of the object should be empty." + "request": { + "$ref": "HttpHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACTIVE", - "DETACHED" - ] - }, - "googleSystemId": { - "description": "System ID of the port on Google's side of the LACP exchange.", - "type": "string" - }, - "neighborSystemId": { - "description": "System ID of the port on the neighbor's side of the LACP exchange.", - "type": "string" - } - } - }, - "InterconnectDiagnosticsMacsecStatus": { - "id": "InterconnectDiagnosticsMacsecStatus", - "description": "Describes the status of MACsec encryption on the link.", - "type": "object", - "properties": { - "operational": { - "description": "Indicates whether or not MACsec is operational on this link.", - "type": "boolean" - }, - "ckn": { - "description": "Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational.", - "type": "string" - } - } - }, - "InterconnectsGetMacsecConfigResponse": { - "id": "InterconnectsGetMacsecConfigResponse", - "description": "Response for the InterconnectsGetMacsecConfigRequest.", - "type": "object", - "properties": { - "result": { - "$ref": "InterconnectMacsecConfig" - }, - "etag": { - "description": "end_interface: MixerGetResponseWithEtagBuilder", - "type": "string" - } - } - }, - "InterconnectMacsecConfig": { - "id": "InterconnectMacsecConfig", - "description": "MACsec configuration information for the Interconnect connection. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect connection.", - "type": "object", - "properties": { - "preSharedKeys": { - "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", - "type": "array", - "items": { - "$ref": "InterconnectMacsecConfigPreSharedKey" - } - } - } - }, - "InterconnectMacsecConfigPreSharedKey": { - "id": "InterconnectMacsecConfigPreSharedKey", - "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", - "type": "object", - "properties": { - "name": { - "description": "User provided name for this pre-shared key.", - "type": "string" - }, - "ckn": { - "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.", - "type": "string" - }, - "cak": { - "description": "An auto-generated Connectivity Association Key (CAK) for this key.", - "type": "string" + "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request." }, - "startTime": { - "description": "User provided timestamp on or after which this key is valid.", - "type": "string" + "patch": { + "id": "compute.httpHealthChecks.patch", + "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "PATCH", + "parameters": { + "httpHealthCheck": { + "description": "Name of the HttpHealthCheck resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "request": { + "$ref": "HttpHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." } } }, - "InterconnectLocationList": { - "id": "InterconnectLocationList", - "description": "Response to the list request, and contains a list of interconnect locations.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations.", - "default": "compute#interconnectLocationList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "httpsHealthChecks": { + "methods": { + "list": { + "id": "compute.httpsHealthChecks.list", + "path": "projects/{project}/global/httpsHealthChecks", + "flatPath": "projects/{project}/global/httpsHealthChecks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "HttpsHealthCheckList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project." }, - "items": { - "description": "A list of InterconnectLocation resources.", - "type": "array", - "items": { - "$ref": "InterconnectLocation" - } + "get": { + "id": "compute.httpsHealthChecks.get", + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "httpMethod": "GET", + "parameters": { + "httpsHealthCheck": { + "description": "Name of the HttpsHealthCheck resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpsHealthCheck" + ], + "response": { + "$ref": "HttpsHealthCheck" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified HttpsHealthCheck resource." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "insert": { + "id": "compute.httpsHealthChecks.insert", + "path": "projects/{project}/global/httpsHealthChecks", + "flatPath": "projects/{project}/global/httpsHealthChecks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "HttpsHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "delete": { + "id": "compute.httpsHealthChecks.delete", + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "httpMethod": "DELETE", + "parameters": { + "httpsHealthCheck": { + "description": "Name of the HttpsHealthCheck resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpsHealthCheck" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified HttpsHealthCheck resource." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "update": { + "id": "compute.httpsHealthChecks.update", + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "httpMethod": "PUT", + "parameters": { + "httpsHealthCheck": { + "description": "Name of the HttpsHealthCheck resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "httpsHealthCheck" + ], + "request": { + "$ref": "HttpsHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request." + }, + "patch": { + "id": "compute.httpsHealthChecks.patch", + "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", + "httpMethod": "PATCH", + "parameters": { + "httpsHealthCheck": { + "description": "Name of the HttpsHealthCheck resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "httpsHealthCheck" + ], + "request": { + "$ref": "HttpsHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." } } }, - "InterconnectLocation": { - "id": "InterconnectLocation", - "description": "Represents an Interconnect Attachment (VLAN) Location resource. You can use this resource to find location details about an Interconnect attachment (VLAN). For more information about interconnect attachments, read Creating VLAN Attachments.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.", - "default": "compute#interconnectLocation", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional description of the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "peeringdbFacilityId": { - "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", - "type": "string" - }, - "address": { - "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", - "type": "string" - }, - "facilityProvider": { - "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", - "type": "string" - }, - "facilityProviderFacilityId": { - "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", - "type": "string" - }, - "regionInfos": { - "description": "[Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions.", - "type": "array", - "items": { - "$ref": "InterconnectLocationRegionInfo" - } - }, - "continent": { - "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "instanceTemplates": { + "methods": { + "list": { + "id": "compute.instanceTemplates.list", + "path": "projects/{project}/global/instanceTemplates", + "flatPath": "projects/{project}/global/instanceTemplates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "AFRICA", - "ASIA_PAC", - "C_AFRICA", - "C_ASIA_PAC", - "C_EUROPE", - "C_NORTH_AMERICA", - "C_SOUTH_AMERICA", - "EUROPE", - "NORTH_AMERICA", - "SOUTH_AMERICA" - ] - }, - "city": { - "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", - "type": "string" + "response": { + "$ref": "InstanceTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of instance templates that are contained within the specified project." }, - "availabilityZone": { - "description": "[Output Only] Availability zone for this InterconnectLocation. Within a metropolitan area (metro), maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\".", - "type": "string" + "get": { + "id": "compute.instanceTemplates.get", + "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "instanceTemplate" + ], + "response": { + "$ref": "InstanceTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified instance template." }, - "status": { - "description": "[Output Only] The status of this InterconnectLocation, which can take one of the following values: - CLOSED: The InterconnectLocation is closed and is unavailable for provisioning new Interconnects. - AVAILABLE: The InterconnectLocation is available for provisioning new Interconnects. ", - "type": "string", - "enumDescriptions": [ - "The InterconnectLocation is available for provisioning new Interconnects.", - "The InterconnectLocation is closed for provisioning new Interconnects." + "insert": { + "id": "compute.instanceTemplates.insert", + "path": "projects/{project}/global/instanceTemplates", + "flatPath": "projects/{project}/global/instanceTemplates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "AVAILABLE", - "CLOSED" - ] + "request": { + "$ref": "InstanceTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template." }, - "supportsPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "delete": { + "id": "compute.instanceTemplates.delete", + "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "instanceTemplate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group." }, - "availableFeatures": { - "description": "[Output only] List of features available at this InterconnectLocation, which can take one of the following values: - MACSEC ", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "Media Access Control security (MACsec)" - ], - "enum": [ - "IF_MACSEC" - ] - } + "aggregatedList": { + "id": "compute.instanceTemplates.aggregatedList", + "path": "projects/{project}/aggregated/instanceTemplates", + "flatPath": "projects/{project}/aggregated/instanceTemplates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstanceTemplateAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "availableLinkTypes": { - "description": "[Output only] List of link types available at this InterconnectLocation, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR ", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "100G Ethernet, LR Optics.", - "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" - ], - "enum": [ - "LINK_TYPE_ETHERNET_100G_LR", - "LINK_TYPE_ETHERNET_10G_LR" - ] - } - } - } - }, - "InterconnectLocationRegionInfo": { - "id": "InterconnectLocationRegionInfo", - "description": "Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.", - "type": "object", - "properties": { - "region": { - "description": "URL for the region of this location.", - "type": "string" + "getIamPolicy": { + "id": "compute.instanceTemplates.getIamPolicy", + "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "expectedRttMs": { - "description": "Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.", - "type": "string", - "format": "int64" + "setIamPolicy": { + "id": "compute.instanceTemplates.setIamPolicy", + "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "locationPresence": { - "description": "Identifies the network presence of this location.", - "type": "string", - "enumDescriptions": [ - "This region is not in any common network presence with this InterconnectLocation.", - "This region shares the same regional network presence as this InterconnectLocation.", - "[Deprecated] This region is not in any common network presence with this InterconnectLocation.", - "[Deprecated] This region shares the same regional network presence as this InterconnectLocation." + "testIamPermissions": { + "id": "compute.instanceTemplates.testIamPermissions", + "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "GLOBAL", - "LOCAL_REGION", - "LP_GLOBAL", - "LP_LOCAL_REGION" - ] + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "InterconnectRemoteLocationList": { - "id": "InterconnectRemoteLocationList", - "description": "Response to the list request, and contains a list of interconnect remote locations.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#interconnectRemoteLocationList for lists of interconnect remote locations.", - "default": "compute#interconnectRemoteLocationList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InterconnectRemoteLocation resources.", - "type": "array", - "items": { - "$ref": "InterconnectRemoteLocation" - } - }, - "nextPageToken": { - "description": "[Output Only] This token lets you get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "regionInstanceTemplates": { + "methods": { + "list": { + "id": "compute.regionInstanceTemplates.list", + "path": "projects/{project}/regions/{region}/instanceTemplates", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the regions for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "InterconnectRemoteLocation": { - "id": "InterconnectRemoteLocation", - "description": "Represents a Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#interconnectRemoteLocation for interconnect remote locations.", - "default": "compute#interconnectRemoteLocation", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional description of the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "peeringdbFacilityId": { - "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", - "type": "string" - }, - "address": { - "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", - "type": "string" - }, - "facilityProvider": { - "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", - "type": "string" - }, - "facilityProviderFacilityId": { - "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", - "type": "string" - }, - "continent": { - "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "AFRICA", - "ASIA_PAC", - "EUROPE", - "NORTH_AMERICA", - "SOUTH_AMERICA" - ] - }, - "city": { - "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of this InterconnectRemoteLocation, which can take one of the following values: - CLOSED: The InterconnectRemoteLocation is closed and is unavailable for provisioning new Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects. ", - "type": "string", - "enumDescriptions": [ - "The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects.", - "The InterconnectRemoteLocation is closed for provisioning new Cross-Cloud Interconnects." + "response": { + "$ref": "InstanceTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "AVAILABLE", - "CLOSED" - ] - }, - "remoteService": { - "description": "[Output Only] Indicates the service provider present at the remote location. Example values: \"Amazon Web Services\", \"Microsoft Azure\".", - "type": "string" - }, - "permittedConnections": { - "description": "[Output Only] Permitted connections.", - "type": "array", - "items": { - "$ref": "InterconnectRemoteLocationPermittedConnections" - } - }, - "constraints": { - "description": "[Output Only] Constraints on the parameters for creating Cross-Cloud Interconnect and associated InterconnectAttachments.", - "$ref": "InterconnectRemoteLocationConstraints" - }, - "attachmentConfigurationConstraints": { - "description": "[Output Only] Subset of fields from InterconnectAttachment's |configurationConstraints| field that apply to all attachments for this remote location.", - "$ref": "InterconnectAttachmentConfigurationConstraints" + "description": "Retrieves a list of instance templates that are contained within the specified project and region." }, - "lacp": { - "description": "[Output Only] Link Aggregation Control Protocol (LACP) constraints, which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED", - "type": "string", - "enumDescriptions": [ - "LACP_SUPPORTED: LACP is supported, and enabled by default on the Cross-Cloud Interconnect.", - "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this port. GetDiagnostics shows bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." + "get": { + "id": "compute.regionInstanceTemplates.get", + "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceTemplate" ], - "enum": [ - "LACP_SUPPORTED", - "LACP_UNSUPPORTED" - ] - }, - "maxLagSize100Gbps": { - "description": "[Output Only] The maximum number of 100 Gbps ports supported in a link aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed max_lag_size_100_gbps.", - "type": "integer", - "format": "int32" + "response": { + "$ref": "InstanceTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified instance template." }, - "maxLagSize10Gbps": { - "description": "[Output Only] The maximum number of 10 Gbps ports supported in a link aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed max_lag_size_10_gbps.", - "type": "integer", - "format": "int32" - } - } - }, - "InterconnectRemoteLocationPermittedConnections": { - "id": "InterconnectRemoteLocationPermittedConnections", - "type": "object", - "properties": { - "interconnectLocation": { - "description": "[Output Only] URL of an Interconnect location that is permitted to connect to this Interconnect remote location.", - "type": "string" - } - } - }, - "InterconnectRemoteLocationConstraints": { - "id": "InterconnectRemoteLocationConstraints", - "type": "object", - "properties": { - "subnetLengthRange": { - "description": "[Output Only] [min-length, max-length] The minimum and maximum value (inclusive) for the IPv4 subnet length. For example, an interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure requires /30 subnets. This range specifies the values supported by both cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If a remote cloud has no constraint on IPv4 subnet length, the range would thus be {min: 29, max: 30}. ", - "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange" + "insert": { + "id": "compute.regionInstanceTemplates.insert", + "path": "projects/{project}/regions/{region}/instanceTemplates", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "InstanceTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request." }, - "portPairVlan": { - "description": "[Output Only] Port pair VLAN constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN", - "type": "string", - "enumDescriptions": [ - "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is part of a pair of ports that should have matching VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote locations. While GCP's API does not explicitly group pairs of ports, the UI uses this field to ensure matching VLAN ids when configuring a redundant VLAN pair.", - "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint." + "delete": { + "id": "compute.regionInstanceTemplates.delete", + "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instanceTemplate" ], - "enum": [ - "PORT_PAIR_MATCHING_VLAN", - "PORT_PAIR_UNCONSTRAINED_VLAN" - ] - }, - "portPairRemoteLocation": { - "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", - "type": "string", - "enumDescriptions": [ - "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates ports in pairs, and the user should choose the same remote location for both ports.", - "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a redundant pair of Cross-Cloud Interconnects using two different remote locations in the same city." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "PORT_PAIR_MATCHING_REMOTE_LOCATION", - "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" - ] - } - } - }, - "InterconnectRemoteLocationConstraintsSubnetLengthRange": { - "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange", - "type": "object", - "properties": { - "min": { - "type": "integer", - "format": "int32" - }, - "max": { - "type": "integer", - "format": "int32" + "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone." } } }, - "LicenseCode": { - "id": "LicenseCode", - "description": "Represents a License Code resource. A License Code is a unique identifier used to represent a license resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#licenseCode for licenses.", - "default": "compute#licenseCode", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "name": { - "description": "[Output Only] Name of the resource. The name is 1-20 characters long and must be a valid 64 bit integer.", - "pattern": "[0-9]{0,20}?", - "annotations": { - "required": [ - "compute.licenses.insert" - ] + "instanceSettings": { + "methods": { + "get": { + "id": "compute.instanceSettings.get", + "path": "projects/{project}/zones/{zone}/instanceSettings", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } }, - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "[Output Only] Description of this License Code.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "transferable": { - "description": "[Output Only] If true, the license will remain attached when creating images or snapshots from disks. Otherwise, the license is not transferred.", - "type": "boolean" - }, - "state": { - "description": "[Output Only] Current state of this License Code.", - "type": "string", - "enumDescriptions": [ - "Machines are not allowed to attach boot disks with this License Code. Requests to create new resources with this license will be rejected.", - "Use is allowed for anyone with USE_READ_ONLY access to this License Code.", - "Use of this license is limited to a project whitelist.", - "", - "Reserved state." + "parameterOrder": [ + "project", + "zone" ], - "enum": [ - "DISABLED", - "ENABLED", - "RESTRICTED", - "STATE_UNSPECIFIED", - "TERMINATED" - ] - }, - "licenseAlias": { - "description": "[Output Only] URL and description aliases of Licenses with the same License Code.", - "type": "array", - "items": { - "$ref": "LicenseCodeLicenseAlias" - } - } - } - }, - "LicenseCodeLicenseAlias": { - "id": "LicenseCodeLicenseAlias", - "type": "object", - "properties": { - "selfLink": { - "description": "[Output Only] URL of license corresponding to this License Code.", - "type": "string" - }, - "description": { - "description": "[Output Only] Description of this License Code.", - "type": "string" - } - } - }, - "License": { - "id": "License", - "description": "Represents a License resource. A License represents billing and aggregate usage data for public and marketplace images. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#license for licenses.", - "default": "compute#license", - "type": "string" - }, - "name": { - "description": "Name of the resource. The name must be 1-63 characters long and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.images.insert" - ] + "response": { + "$ref": "InstanceSettings" }, - "type": "string" - }, - "chargesUseFee": { - "description": "[Output Only] Deprecated. This field no longer reflects whether a license charges a usage fee.", - "type": "boolean" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "licenseCode": { - "description": "[Output Only] The unique code used to attach this license to images, snapshots, and disks.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional textual description of the resource; provided by the client when the resource is created.", - "type": "string" - }, - "transferable": { - "description": "If false, licenses will not be copied from the source resource when creating an image from a disk, disk from snapshot, or snapshot from disk.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "resourceRequirements": { - "$ref": "LicenseResourceRequirements" - } - } - }, - "LicenseResourceRequirements": { - "id": "LicenseResourceRequirements", - "type": "object", - "properties": { - "minGuestCpuCount": { - "description": "Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.", - "type": "integer", - "format": "int32" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Get Instance settings." }, - "minMemoryMb": { - "description": "Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.", - "type": "integer", - "format": "int32" + "patch": { + "id": "compute.instanceSettings.patch", + "path": "projects/{project}/zones/{zone}/instanceSettings", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + }, + "zone": { + "description": "The zone scoping this request. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "InstanceSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patch Instance settings" } } }, - "LicensesListResponse": { - "id": "LicensesListResponse", - "type": "object", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of License resources.", - "type": "array", - "items": { - "$ref": "License" - } + "instantSnapshots": { + "methods": { + "list": { + "id": "compute.instantSnapshots.list", + "path": "projects/{project}/zones/{zone}/instantSnapshots", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "InstantSnapshotList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of InstantSnapshot resources contained within the specified zone." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.instantSnapshots.get", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "httpMethod": "GET", + "parameters": { + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "instantSnapshot" + ], + "response": { + "$ref": "InstantSnapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified InstantSnapshot resource in the specified zone." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.instantSnapshots.insert", + "path": "projects/{project}/zones/{zone}/instantSnapshots", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "InstantSnapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an instant snapshot in the specified zone." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setLabels": { + "id": "compute.instantSnapshots.setLabels", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "MachineImageList": { - "id": "MachineImageList", - "description": "A list of machine images.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#machineImagesListResponse for machine image lists.", - "default": "compute#machineImageList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of MachineImage resources.", - "type": "array", - "items": { - "$ref": "MachineImage" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a instantSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.instantSnapshots.delete", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "httpMethod": "DELETE", + "parameters": { + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "MachineImage": { - "id": "MachineImage", - "description": "Represents a machine image resource. A machine image is a Compute Engine resource that stores all the configuration, metadata, permissions, and data from one or more disks required to create a Virtual machine (VM) instance. For more information, see Machine images.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#machineImage for machine image.", - "default": "compute#machineImage", - "type": "string" - }, - "id": { - "description": "[Output Only] A unique identifier for this machine image. The server defines this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this machine image in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.machineImages.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] The URL for this machine image. The server defines this URL.", - "type": "string" - }, - "sourceInstance": { - "description": "The source instance used to create the machine image. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance ", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the machine image. One of the following values: INVALID, CREATING, READY, DELETING, and UPLOADING.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "parameterOrder": [ + "project", + "zone", + "instantSnapshot" ], - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "UPLOADING" - ] - }, - "sourceInstanceProperties": { - "description": "[Output Only] DEPRECATED: Please use instance_properties instead for source instance related properties. New properties will not be added to this field.", - "$ref": "SourceInstanceProperties" - }, - "instanceProperties": { - "description": "[Output Only] Properties of source instance", - "$ref": "InstanceProperties" - }, - "savedDisks": { - "description": "An array of Machine Image specific properties for disks attached to the source instance", - "type": "array", - "items": { - "$ref": "SavedDisk" - } - }, - "storageLocations": { - "description": "The regional or multi-regional Cloud Storage bucket location where the machine image is stored.", - "type": "array", - "items": { - "type": "string" - } - }, - "machineImageEncryptionKey": { - "description": "Encrypts the machine image using a customer-supplied encryption key. After you encrypt a machine image using a customer-supplied key, you must provide the same key if you use the machine image later. For example, you must provide the encryption key when you create an instance from the encrypted machine image in a future request. Customer-supplied encryption keys do not protect access to metadata of the machine image. If you do not provide an encryption key when creating the machine image, then the machine image will be encrypted using an automatically generated key and you do not need to provide a key to use the machine image later.", - "$ref": "CustomerEncryptionKey" - }, - "guestFlush": { - "description": "[Input Only] Whether to attempt an application consistent machine image by informing the OS to prepare for the snapshot process.", - "type": "boolean" - }, - "sourceDiskEncryptionKeys": { - "description": "[Input Only] The customer-supplied encryption key of the disks attached to the source instance. Required if the source disk is protected by a customer-supplied encryption key.", - "type": "array", - "items": { - "$ref": "SourceDiskEncryptionKey" - } - }, - "totalStorageBytes": { - "description": "[Output Only] Total size of the storage used by the machine image.", - "type": "string", - "format": "int64" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - } - } - }, - "SourceInstanceProperties": { - "id": "SourceInstanceProperties", - "description": "DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field.", - "type": "object", - "properties": { - "description": { - "description": "An optional text description for the instances that are created from this machine image.", - "type": "string" - }, - "tags": { - "description": "A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.", - "$ref": "Tags" - }, - "machineType": { - "description": "The machine type to use for instances that are created from this machine image.", - "type": "string" - }, - "canIpForward": { - "description": "Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.", - "type": "boolean" - }, - "networkInterfaces": { - "description": "An array of network access configurations for this interface.", - "type": "array", - "items": { - "$ref": "NetworkInterface" - } - }, - "disks": { - "description": "An array of disks that are associated with the instances that are created from this machine image.", - "type": "array", - "items": { - "$ref": "SavedAttachedDisk" - } - }, - "metadata": { - "description": "The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.", - "$ref": "Metadata" - }, - "serviceAccounts": { - "description": "A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances.", - "type": "array", - "items": { - "$ref": "ServiceAccount" - } - }, - "scheduling": { - "description": "Specifies the scheduling options for the instances that are created from this machine image.", - "$ref": "Scheduling" - }, - "labels": { - "description": "Labels to apply to instances that are created from this machine image.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots." }, - "guestAccelerators": { - "description": "A list of guest accelerator cards' type and count to use for instances created from this machine image.", - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } + "getIamPolicy": { + "id": "compute.instantSnapshots.getIamPolicy", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "minCpuPlatform": { - "description": "Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more information, read Specifying a Minimum CPU Platform.", - "type": "string" + "setIamPolicy": { + "id": "compute.instantSnapshots.setIamPolicy", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "deletionProtection": { - "description": "Whether the instance created from this machine image should be protected against deletion.", - "type": "boolean" + "testIamPermissions": { + "id": "compute.instantSnapshots.testIamPermissions", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." }, - "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", - "type": "string", - "enumDescriptions": [ - "Default value. This value is unused.", - "Indicates user chose no operation.", - "Indicates user chose to opt for VM shutdown on key revocation." + "aggregatedList": { + "id": "compute.instantSnapshots.aggregatedList", + "path": "projects/{project}/aggregated/instantSnapshots", + "flatPath": "projects/{project}/aggregated/instantSnapshots", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", - "NONE", - "STOP" - ] + "response": { + "$ref": "InstantSnapshotAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of instantSnapshots. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "SavedAttachedDisk": { - "id": "SavedAttachedDisk", - "description": "DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", - "default": "compute#savedAttachedDisk", - "type": "string" - }, - "type": { - "description": "Specifies the type of the attached disk, either SCRATCH or PERSISTENT.", - "type": "string", - "enumDescriptions": [ - "", - "" + "regionInstantSnapshots": { + "methods": { + "list": { + "id": "compute.regionInstantSnapshots.list", + "path": "projects/{project}/regions/{region}/instantSnapshots", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "PERSISTENT", - "SCRATCH" - ] - }, - "mode": { - "description": "The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY.", - "type": "string", - "enumDescriptions": [ - "Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.", - "*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode." + "response": { + "$ref": "InstantSnapshotList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "READ_ONLY", - "READ_WRITE" - ] - }, - "source": { - "description": "Specifies a URL of the disk attached to the source instance.", - "type": "string" - }, - "deviceName": { - "description": "Specifies the name of the disk attached to the source instance.", - "type": "string" - }, - "index": { - "description": "Specifies zero-based index of the disk that is attached to the source instance.", - "type": "integer", - "format": "int32" - }, - "boot": { - "description": "Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", - "type": "boolean" - }, - "autoDelete": { - "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", - "type": "boolean" - }, - "licenses": { - "description": "[Output Only] Any valid publicly visible licenses.", - "type": "array", - "items": { - "type": "string" - } + "description": "Retrieves the list of InstantSnapshot resources contained within the specified region." }, - "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.", - "type": "string", - "enumDescriptions": [ - "", - "" + "get": { + "id": "compute.regionInstantSnapshots.get", + "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "httpMethod": "GET", + "parameters": { + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instantSnapshot" ], - "enum": [ - "NVME", - "SCSI" - ] - }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "type": "array", - "items": { - "$ref": "GuestOsFeature" - } - }, - "diskEncryptionKey": { - "description": "The encryption key for the disk.", - "$ref": "CustomerEncryptionKey" - }, - "diskSizeGb": { - "description": "The size of the disk in base-2 GB.", - "type": "string", - "format": "int64" - }, - "storageBytes": { - "description": "[Output Only] A size of the storage used by the disk's snapshot by this machine image.", - "type": "string", - "format": "int64" + "response": { + "$ref": "InstantSnapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified InstantSnapshot resource in the specified region." }, - "storageBytesStatus": { - "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", - "type": "string", - "enumDescriptions": [ - "", - "" + "insert": { + "id": "compute.regionInstantSnapshots.insert", + "path": "projects/{project}/regions/{region}/instantSnapshots", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "UPDATING", - "UP_TO_DATE" - ] + "request": { + "$ref": "InstantSnapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an instant snapshot in the specified region." }, - "diskType": { - "description": "[Output Only] URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd", - "type": "string" - } - } - }, - "SavedDisk": { - "id": "SavedDisk", - "description": "An instance-attached disk resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks.", - "default": "compute#savedDisk", - "type": "string" + "setLabels": { + "id": "compute.regionInstantSnapshots.setLabels", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a instantSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation." }, - "sourceDisk": { - "description": "Specifies a URL of the disk attached to the source instance.", - "type": "string" + "delete": { + "id": "compute.regionInstantSnapshots.delete", + "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "httpMethod": "DELETE", + "parameters": { + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "instantSnapshot" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots." }, - "storageBytes": { - "description": "[Output Only] Size of the individual disk snapshot used by this machine image.", - "type": "string", - "format": "int64" + "getIamPolicy": { + "id": "compute.regionInstantSnapshots.getIamPolicy", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "storageBytesStatus": { - "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", - "type": "string", - "enumDescriptions": [ - "", - "" + "setIamPolicy": { + "id": "compute.regionInstantSnapshots.setIamPolicy", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "UPDATING", - "UP_TO_DATE" - ] + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "architecture": { - "description": "[Output Only] The architecture of the attached disk.", - "type": "string", - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "testIamPermissions": { + "id": "compute.regionInstantSnapshots.testIamPermissions", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" ], - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ] + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "SourceDiskEncryptionKey": { - "id": "SourceDiskEncryptionKey", - "type": "object", - "properties": { - "sourceDisk": { - "description": "URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", - "type": "string" + "interconnectAttachments": { + "methods": { + "list": { + "id": "compute.interconnectAttachments.list", + "path": "projects/{project}/regions/{region}/interconnectAttachments", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "InterconnectAttachmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of interconnect attachments contained within the specified region." }, - "diskEncryptionKey": { - "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.", - "$ref": "CustomerEncryptionKey" - } - } - }, - "MachineTypeList": { - "id": "MachineTypeList", - "description": "Contains a list of machine types.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#machineTypeList for lists of machine types.", - "default": "compute#machineTypeList", - "type": "string" + "aggregatedList": { + "id": "compute.interconnectAttachments.aggregatedList", + "path": "projects/{project}/aggregated/interconnectAttachments", + "flatPath": "projects/{project}/aggregated/interconnectAttachments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectAttachmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of interconnect attachments. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "get": { + "id": "compute.interconnectAttachments.get", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "GET", + "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "response": { + "$ref": "InterconnectAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified interconnect attachment." }, - "items": { - "description": "A list of MachineType resources.", - "type": "array", - "items": { - "$ref": "MachineType" - } + "insert": { + "id": "compute.interconnectAttachments.insert", + "path": "projects/{project}/regions/{region}/interconnectAttachments", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "InterconnectAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an InterconnectAttachment in the specified project using the data included in the request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "patch": { + "id": "compute.interconnectAttachments.patch", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "PATCH", + "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "request": { + "$ref": "InterconnectAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "delete": { + "id": "compute.interconnectAttachments.delete", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "DELETE", + "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified interconnect attachment." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setLabels": { + "id": "compute.interconnectAttachments.setLabels", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation." } } }, - "MachineType": { - "id": "MachineType", - "description": "Represents a Machine Type resource. You can use specific machine types for your VM instances based on performance and pricing requirements. For more information, read Machine Types.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The type of the resource. Always compute#machineType for machine types.", - "default": "compute#machineType", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" - }, - "guestCpus": { - "description": "[Output Only] The number of virtual CPUs that are available to the instance.", - "type": "integer", - "format": "int32" - }, - "memoryMb": { - "description": "[Output Only] The amount of physical memory available to the instance, defined in MB.", - "type": "integer", - "format": "int32" - }, - "imageSpaceGb": { - "description": "[Deprecated] This property is deprecated and will never be populated with any relevant values.", - "type": "integer", - "format": "int32" - }, - "scratchDisks": { - "description": "[Output Only] A list of extended scratch disks assigned to the instance.", - "type": "array", - "items": { - "type": "object", - "properties": { - "diskGb": { - "description": "Size of the scratch disk, defined in GB.", - "type": "integer", - "format": "int32" - } + "interconnects": { + "methods": { + "insert": { + "id": "compute.interconnects.insert", + "path": "projects/{project}/global/interconnects", + "flatPath": "projects/{project}/global/interconnects", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "maximumPersistentDisks": { - "description": "[Output Only] Maximum persistent disks allowed.", - "type": "integer", - "format": "int32" - }, - "maximumPersistentDisksSizeGb": { - "description": "[Output Only] Maximum total persistent disks size (GB) allowed.", - "type": "string", - "format": "int64" - }, - "deprecated": { - "description": "[Output Only] The deprecation status associated with this machine type. Only applicable if the machine type is unavailable.", - "$ref": "DeprecationStatus" - }, - "zone": { - "description": "[Output Only] The name of the zone where the machine type resides, such as us-central1-a.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "isSharedCpu": { - "description": "[Output Only] Whether this machine type has a shared CPU. See Shared-core machine types for more information.", - "type": "boolean" + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Interconnect" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates an Interconnect in the specified project using the data included in the request." }, - "accelerators": { - "description": "[Output Only] A list of accelerator configurations assigned to this machine type.", - "type": "array", - "items": { - "type": "object", - "properties": { - "guestAcceleratorType": { - "description": "The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.", - "type": "string" - }, - "guestAcceleratorCount": { - "description": "Number of accelerator cards exposed to the guest.", - "type": "integer", - "format": "int32" - } + "list": { + "id": "compute.interconnects.list", + "path": "projects/{project}/global/interconnects", + "flatPath": "projects/{project}/global/interconnects", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "MachineTypeAggregatedList": { - "id": "MachineTypeAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#machineTypeAggregatedList for aggregated lists of machine types.", - "default": "compute#machineTypeAggregatedList", - "type": "string" + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of Interconnects available to the specified project." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "getDiagnostics": { + "id": "compute.interconnects.getDiagnostics", + "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", + "httpMethod": "GET", + "parameters": { + "interconnect": { + "description": "Name of the interconnect resource to query.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "InterconnectsGetDiagnosticsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly." }, - "items": { - "description": "A list of MachineTypesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of machine types.", - "$ref": "MachineTypesScopedList" - } + "getMacsecConfig": { + "id": "compute.interconnects.getMacsecConfig", + "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "httpMethod": "GET", + "parameters": { + "interconnect": { + "description": "Name of the interconnect resource to query.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "InterconnectsGetMacsecConfigResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the interconnectMacsecConfig for the specified Interconnect." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.interconnects.get", + "path": "projects/{project}/global/interconnects/{interconnect}", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "httpMethod": "GET", + "parameters": { + "interconnect": { + "description": "Name of the interconnect to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "Interconnect" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Interconnect. Get a list of available Interconnects by making a list() request." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "delete": { + "id": "compute.interconnects.delete", + "path": "projects/{project}/global/interconnects/{interconnect}", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "httpMethod": "DELETE", + "parameters": { + "interconnect": { + "description": "Name of the interconnect to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Interconnect." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "patch": { + "id": "compute.interconnects.patch", + "path": "projects/{project}/global/interconnects/{interconnect}", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "httpMethod": "PATCH", + "parameters": { + "interconnect": { + "description": "Name of the interconnect to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "interconnect" + ], + "request": { + "$ref": "Interconnect" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } + "setLabels": { + "id": "compute.interconnects.setLabels", + "path": "projects/{project}/global/interconnects/{resource}/setLabels", + "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation." } } }, - "MachineTypesScopedList": { - "id": "MachineTypesScopedList", - "type": "object", - "properties": { - "machineTypes": { - "description": "[Output Only] A list of machine types contained in this scope.", - "type": "array", - "items": { - "$ref": "MachineType" - } - }, - "warning": { - "description": "[Output Only] An informational warning that appears when the machine types list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "interconnectLocations": { + "methods": { + "list": { + "id": "compute.interconnectLocations.list", + "path": "projects/{project}/global/interconnectLocations", + "flatPath": "projects/{project}/global/interconnectLocations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectLocationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of interconnect locations available to the specified project." + }, + "get": { + "id": "compute.interconnectLocations.get", + "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}", + "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}", + "httpMethod": "GET", + "parameters": { + "interconnectLocation": { + "description": "Name of the interconnect location to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "interconnectLocation" + ], + "response": { + "$ref": "InterconnectLocation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request." } } }, - "NetworkAttachmentAggregatedList": { - "id": "NetworkAttachmentAggregatedList", - "description": "Contains a list of NetworkAttachmentsScopedList.", - "type": "object", - "properties": { - "kind": { - "default": "compute#networkAttachmentAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NetworkAttachmentsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of NetworkAttachments.", - "$ref": "NetworkAttachmentsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "interconnectRemoteLocations": { + "methods": { + "list": { + "id": "compute.interconnectRemoteLocations.list", + "path": "projects/{project}/global/interconnectRemoteLocations", + "flatPath": "projects/{project}/global/interconnectRemoteLocations", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InterconnectRemoteLocationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of interconnect remote locations available to the specified project." + }, + "get": { + "id": "compute.interconnectRemoteLocations.get", + "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", + "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", + "httpMethod": "GET", + "parameters": { + "interconnectRemoteLocation": { + "description": "Name of the interconnect remote location to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "interconnectRemoteLocation" + ], + "response": { + "$ref": "InterconnectRemoteLocation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request." } } }, - "NetworkAttachmentsScopedList": { - "id": "NetworkAttachmentsScopedList", - "type": "object", - "properties": { - "networkAttachments": { - "description": "A list of NetworkAttachments contained in this scope.", - "type": "array", - "items": { - "$ref": "NetworkAttachment" - } - }, - "warning": { - "description": "Informational warning which replaces the list of network attachments when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "licenseCodes": { + "methods": { + "get": { + "id": "compute.licenseCodes.get", + "path": "projects/{project}/global/licenseCodes/{licenseCode}", + "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}", + "httpMethod": "GET", + "parameters": { + "licenseCode": { + "description": "Number corresponding to the License code resource to return.", + "pattern": "[0-9]{0,61}?", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "licenseCode" + ], + "response": { + "$ref": "LicenseCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + }, + "testIamPermissions": { + "id": "compute.licenseCodes.testIamPermissions", + "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " } } }, - "NetworkAttachment": { - "id": "NetworkAttachment", - "description": "NetworkAttachments A network attachment resource ...", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource.", - "default": "compute#networkAttachment", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.networkAttachments.insert" - ] + "licenses": { + "methods": { + "get": { + "id": "compute.licenses.get", + "path": "projects/{project}/global/licenses/{license}", + "flatPath": "projects/{project}/global/licenses/{license}", + "httpMethod": "GET", + "parameters": { + "license": { + "description": "Name of the License resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource's resource id.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the network attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "connectionPreference": { - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "parameterOrder": [ + "project", + "license" ], - "enum": [ - "ACCEPT_AUTOMATIC", - "ACCEPT_MANUAL", - "INVALID" - ] - }, - "connectionEndpoints": { - "description": "[Output Only] An array of connections for all the producers connected to this network attachment.", - "type": "array", - "items": { - "$ref": "NetworkAttachmentConnectedEndpoint" - } - }, - "subnetworks": { - "description": "An array of URLs where each entry is the URL of a subnet provided by the service consumer to use for endpoints in the producers that connect to this network attachment.", - "type": "array", - "items": { - "type": "string" - } + "response": { + "$ref": "License" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "producerRejectLists": { - "description": "Projects that are not allowed to connect to this network attachment. The project can be specified using its id or number.", - "type": "array", - "items": { - "type": "string" - } + "list": { + "id": "compute.licenses.list", + "path": "projects/{project}/global/licenses", + "flatPath": "projects/{project}/global/licenses", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "LicensesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "producerAcceptLists": { - "description": "Projects that are allowed to connect to this network attachment. The project can be specified using its id or number.", - "type": "array", - "items": { - "type": "string" - } + "delete": { + "id": "compute.licenses.delete", + "path": "projects/{project}/global/licenses/{license}", + "flatPath": "projects/{project}/global/licenses/{license}", + "httpMethod": "DELETE", + "parameters": { + "license": { + "description": "Name of the license resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "license" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", - "type": "string", - "format": "byte" + "insert": { + "id": "compute.licenses.insert", + "path": "projects/{project}/global/licenses", + "flatPath": "projects/{project}/global/licenses", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "License" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "description": "Create a License resource in the specified project. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "network": { - "description": "[Output Only] The URL of the network which the Network Attachment belongs to. Practically it is inferred by fetching the network of the first subnetwork associated. Because it is required that all the subnetworks must be from the same network, it is assured that the Network Attachment belongs to the same network as all the subnetworks.", - "type": "string" - } - } - }, - "NetworkAttachmentConnectedEndpoint": { - "id": "NetworkAttachmentConnectedEndpoint", - "description": "[Output Only] A connection connected to this network attachment.", - "type": "object", - "properties": { - "status": { - "description": "The status of a connected endpoint to this network attachment.", - "type": "string", - "enumDescriptions": [ - "The consumer allows traffic from the producer to reach its VPC.", - "The consumer network attachment no longer exists.", - "The consumer needs to take further action before traffic can be served.", - "The consumer neither allows nor prohibits traffic from the producer to reach its VPC.", - "The consumer prohibits traffic from the producer to reach its VPC.", - "" + "getIamPolicy": { + "id": "compute.licenses.getIamPolicy", + "path": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" ], - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ] - }, - "projectIdOrNum": { - "description": "The project id or number of the interface to which the IP was assigned.", - "type": "string" - }, - "subnetwork": { - "description": "The subnetwork used to assign the IP to the producer instance network interface.", - "type": "string" - }, - "ipAddress": { - "description": "The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.", - "type": "string" - }, - "ipv6Address": { - "description": "The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6.", - "type": "string" + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "secondaryIpCidrRanges": { - "description": "Alias IP ranges from the same subnetwork.", - "type": "array", - "items": { - "type": "string" - } + "setIamPolicy": { + "id": "compute.licenses.setIamPolicy", + "path": "projects/{project}/global/licenses/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " }, - "subnetworkCidrRange": { - "description": "[Output Only] The CIDR range of the subnet from which the IPv4 internal IP was allocated from.", - "type": "string" + "testIamPermissions": { + "id": "compute.licenses.testIamPermissions", + "path": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " } } }, - "NetworkAttachmentList": { - "id": "NetworkAttachmentList", - "type": "object", - "properties": { - "kind": { - "default": "compute#networkAttachmentList", - "type": "string" + "machineImages": { + "methods": { + "list": { + "id": "compute.machineImages.list", + "path": "projects/{project}/global/machineImages", + "flatPath": "projects/{project}/global/machineImages", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "MachineImageList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of machine images that are contained within the specified project." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "get": { + "id": "compute.machineImages.get", + "path": "projects/{project}/global/machineImages/{machineImage}", + "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "httpMethod": "GET", + "parameters": { + "machineImage": { + "description": "The name of the machine image.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "machineImage" + ], + "response": { + "$ref": "MachineImage" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified machine image." }, - "items": { - "description": "A list of NetworkAttachment resources.", - "type": "array", - "items": { - "$ref": "NetworkAttachment" - } + "insert": { + "id": "compute.machineImages.insert", + "path": "projects/{project}/global/machineImages", + "flatPath": "projects/{project}/global/machineImages", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sourceInstance": { + "description": "Required. Source instance that is used to create the machine image from.", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "MachineImage" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "delete": { + "id": "compute.machineImages.delete", + "path": "projects/{project}/global/machineImages/{machineImage}", + "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "httpMethod": "DELETE", + "parameters": { + "machineImage": { + "description": "The name of the machine image to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "machineImage" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "getIamPolicy": { + "id": "compute.machineImages.getIamPolicy", + "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "flatPath": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setIamPolicy": { + "id": "compute.machineImages.setIamPolicy", + "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "flatPath": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + }, + "testIamPermissions": { + "id": "compute.machineImages.testIamPermissions", + "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/machineImages/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "NetworkEdgeSecurityService": { - "id": "NetworkEdgeSecurityService", - "description": "Represents a Google Cloud Armor network edge security service resource.", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", - "default": "compute#networkEdgeSecurityService", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the resource resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "machineTypes": { + "methods": { + "list": { + "id": "compute.machineTypes.list", + "path": "projects/{project}/zones/{zone}/machineTypes", + "flatPath": "projects/{project}/zones/{zone}/machineTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "MachineTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of machine types available to the specified project." }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be provided in order to update the NetworkEdgeSecurityService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.", - "type": "string", - "format": "byte" + "aggregatedList": { + "id": "compute.machineTypes.aggregatedList", + "path": "projects/{project}/aggregated/machineTypes", + "flatPath": "projects/{project}/aggregated/machineTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "MachineTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of machine types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "securityPolicy": { - "description": "The resource URL for the network edge security service associated with this network edge security service.", - "type": "string" + "get": { + "id": "compute.machineTypes.get", + "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "httpMethod": "GET", + "parameters": { + "machineType": { + "description": "Name of the machine type to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "machineType" + ], + "response": { + "$ref": "MachineType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified machine type." } } }, - "NetworkEdgeSecurityServiceAggregatedList": { - "id": "NetworkEdgeSecurityServiceAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security Services.", - "default": "compute#networkEdgeSecurityServiceAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of security policies.", - "$ref": "NetworkEdgeSecurityServicesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "networkAttachments": { + "methods": { + "aggregatedList": { + "id": "compute.networkAttachments.aggregatedList", + "path": "projects/{project}/aggregated/networkAttachments", + "flatPath": "projects/{project}/aggregated/networkAttachments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NetworkAttachmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "list": { + "id": "compute.networkAttachments.list", + "path": "projects/{project}/regions/{region}/networkAttachments", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "NetworkAttachmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the NetworkAttachments for a project in the given scope." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "get": { + "id": "compute.networkAttachments.get", + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "GET", + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "response": { + "$ref": "NetworkAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified NetworkAttachment resource in the given scope." + }, + "insert": { + "id": "compute.networkAttachments.insert", + "path": "projects/{project}/regions/{region}/networkAttachments", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" } - } - }, - "etag": { - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NetworkEdgeSecurityServicesScopedList": { - "id": "NetworkEdgeSecurityServicesScopedList", - "type": "object", - "properties": { - "networkEdgeSecurityServices": { - "description": "A list of NetworkEdgeSecurityServices contained in this scope.", - "type": "array", - "items": { - "$ref": "NetworkEdgeSecurityService" - } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "NetworkAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a NetworkAttachment in the specified project in the given scope using the parameters that are included in the request." }, - "warning": { - "description": "Informational warning which replaces the list of security policies when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.networkAttachments.delete", + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "DELETE", + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" } - } - } - } - }, - "NetworkEndpointGroupList": { - "id": "NetworkEndpointGroupList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupList for network endpoint group lists.", - "default": "compute#networkEndpointGroupList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NetworkEndpointGroup resources.", - "type": "array", - "items": { - "$ref": "NetworkEndpointGroup" - } + }, + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified NetworkAttachment in the given scope" }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "patch": { + "id": "compute.networkAttachments.patch", + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "PATCH", + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "request": { + "$ref": "NetworkAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "getIamPolicy": { + "id": "compute.networkAttachments.getIamPolicy", + "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setIamPolicy": { + "id": "compute.networkAttachments.setIamPolicy", + "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + }, + "testIamPermissions": { + "id": "compute.networkAttachments.testIamPermissions", + "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NetworkEndpointGroup": { - "id": "NetworkEndpointGroup", - "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#networkEndpointGroup for network endpoint group.", - "default": "compute#networkEndpointGroup", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "networkEndpointType": { - "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.", - "type": "string", - "enumDescriptions": [ - "The network endpoint is represented by an IP address.", - "The network endpoint is represented by IP address and port pair.", - "The network endpoint is represented by fully qualified domain name and port.", - "The network endpoint is represented by an internet IP address and port.", - "The network endpoint is represented by an IP address and port. The endpoint belongs to a VM or pod running in a customer's on-premises.", - "The network endpoint is either public Google APIs or services exposed by other GCP Project with a Service Attachment. The connection is set up by private service connect", - "The network endpoint is handled by specified serverless infrastructure." + }, + "parameterOrder": [ + "project", + "region", + "resource" ], - "enum": [ - "GCE_VM_IP", - "GCE_VM_IP_PORT", - "INTERNET_FQDN_PORT", - "INTERNET_IP_PORT", - "NON_GCP_PRIVATE_IP_PORT", - "PRIVATE_SERVICE_CONNECT", - "SERVERLESS" - ] - }, - "size": { - "description": "[Output only] Number of network endpoints in the network endpoint group.", - "type": "integer", - "format": "int32" - }, - "region": { - "description": "[Output Only] The URL of the region where the network endpoint group is located.", - "type": "string" - }, - "zone": { - "description": "[Output Only] The URL of the zone where the network endpoint group is located.", - "type": "string" - }, - "network": { - "description": "The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified.", - "type": "string" - }, - "subnetwork": { - "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong.", - "type": "string" - }, - "defaultPort": { - "description": "The default port used if the port number is not specified in the network endpoint. If the network endpoint type is either GCE_VM_IP, SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.", - "type": "integer", - "format": "int32" - }, - "annotations": { - "description": "Metadata defined as annotations on the network endpoint group.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "cloudRun": { - "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set.", - "$ref": "NetworkEndpointGroupCloudRun" - }, - "appEngine": { - "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set.", - "$ref": "NetworkEndpointGroupAppEngine" - }, - "cloudFunction": { - "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set.", - "$ref": "NetworkEndpointGroupCloudFunction" - }, - "pscTargetService": { - "description": "The target service url used to set up private service connection to a Google API or a PSC Producer Service Attachment. An example value is: asia-northeast3-cloudkms.googleapis.com", - "type": "string" - }, - "pscData": { - "$ref": "NetworkEndpointGroupPscData" - } - } - }, - "NetworkEndpointGroupCloudRun": { - "id": "NetworkEndpointGroupCloudRun", - "description": "Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG.", - "type": "object", - "properties": { - "service": { - "description": "Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: \"run-service\".", - "type": "string" - }, - "tag": { - "description": "Optional Cloud Run tag represents the \"named-revision\" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: \"revision-0010\".", - "type": "string" - }, - "urlMask": { - "description": "An URL mask is one of the main components of the Cloud Function. A template to parse \u003cservice\u003e and \u003ctag\u003e fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask \u003ctag\u003e.domain.com/\u003cservice\u003e. The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" } and { service=\"bar2\", tag=\"foo2\" } respectively.", - "type": "string" + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "NetworkEndpointGroupAppEngine": { - "id": "NetworkEndpointGroupAppEngine", - "description": "Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG.", - "type": "object", - "properties": { - "service": { - "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: default, my-service.", - "type": "string" - }, - "version": { - "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: v1, v2.", - "type": "string" + "networkEdgeSecurityServices": { + "methods": { + "get": { + "id": "compute.networkEdgeSecurityServices.get", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "GET", + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to get.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "response": { + "$ref": "NetworkEdgeSecurityService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets a specified NetworkEdgeSecurityService." }, - "urlMask": { - "description": "An URL mask is one of the main components of the Cloud Function. A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs foo1-dot-appname.appspot.com/v1 and foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG with URL mask \u003cservice\u003e-dot-appname.appspot.com/\u003cversion\u003e. The URL mask will parse them to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.", - "type": "string" - } - } - }, - "NetworkEndpointGroupCloudFunction": { - "id": "NetworkEndpointGroupCloudFunction", - "description": "Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG.", - "type": "object", - "properties": { - "function": { - "description": "A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: func1.", - "type": "string" + "insert": { + "id": "compute.networkEdgeSecurityServices.insert", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new service in the specified project using the data included in the request." }, - "urlMask": { - "description": "An URL mask is one of the main components of the Cloud Function. A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs mydomain.com/function1 and mydomain.com/function2 can be backed by the same Serverless NEG with URL mask /\u003cfunction\u003e. The URL mask will parse them to { function = \"function1\" } and { function = \"function2\" } respectively.", - "type": "string" - } - } - }, - "NetworkEndpointGroupPscData": { - "id": "NetworkEndpointGroupPscData", - "description": "All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT.", - "type": "object", - "properties": { - "consumerPscAddress": { - "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", - "type": "string" + "delete": { + "id": "compute.networkEdgeSecurityServices.delete", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "DELETE", + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified service." }, - "pscConnectionId": { - "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", - "type": "string", - "format": "uint64" + "patch": { + "id": "compute.networkEdgeSecurityServices.patch", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "PATCH", + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified policy with the data included in the request." }, - "pscConnectionStatus": { - "description": "[Output Only] The connection status of the PSC Forwarding Rule.", - "type": "string", - "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer and will not serve traffic going forward.", - "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", - "The connection is pending acceptance by the producer.", - "The connection has been rejected by the producer.", - "" + "aggregatedList": { + "id": "compute.networkEdgeSecurityServices.aggregatedList", + "path": "projects/{project}/aggregated/networkEdgeSecurityServices", + "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ] + "response": { + "$ref": "NetworkEdgeSecurityServiceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "NetworkEndpointGroupAggregatedList": { - "id": "NetworkEndpointGroupAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupAggregatedList for aggregated lists of network endpoint groups.", - "default": "compute#networkEndpointGroupAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NetworkEndpointGroupsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "The name of the scope that contains this set of network endpoint groups.", - "$ref": "NetworkEndpointGroupsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "networkEndpointGroups": { + "methods": { + "list": { + "id": "compute.networkEndpointGroups.list", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "NetworkEndpointGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "aggregatedList": { + "id": "compute.networkEndpointGroups.aggregatedList", + "path": "projects/{project}/aggregated/networkEndpointGroups", + "flatPath": "projects/{project}/aggregated/networkEndpointGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NetworkEndpointGroupAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of network endpoint groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." + }, + "get": { + "id": "compute.networkEndpointGroups.get", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "GET", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "response": { + "$ref": "NetworkEndpointGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network endpoint group." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NetworkEndpointGroupsScopedList": { - "id": "NetworkEndpointGroupsScopedList", - "type": "object", - "properties": { - "networkEndpointGroups": { - "description": "[Output Only] The list of network endpoint groups that are contained in this scope.", - "type": "array", - "items": { + "insert": { + "id": "compute.networkEndpointGroups.insert", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { "$ref": "NetworkEndpointGroup" - } + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request." }, - "warning": { - "description": "[Output Only] An informational warning that replaces the list of network endpoint groups when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.networkEndpointGroups.delete", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "DELETE", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified network endpoint group. The network endpoints in the NEG and the VM instances they belong to are not terminated when the NEG is deleted. Note that the NEG cannot be deleted if there are backend services referencing it." + }, + "attachNetworkEndpoints": { + "id": "compute.networkEndpointGroups.attachNetworkEndpoints", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NetworkEndpointGroupsAttachEndpointsRequest": { - "id": "NetworkEndpointGroupsAttachEndpointsRequest", - "type": "object", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - } - }, - "NetworkEndpoint": { - "id": "NetworkEndpoint", - "description": "The network endpoint.", - "type": "object", - "properties": { - "ipAddress": { - "description": "Optional IPv4 address of network endpoint. The IP address must belong to a VM in Compute Engine (either the primary IP or as part of an aliased IP range). If the IP address is not specified, then the primary IP address for the VM instance in the network that the network endpoint group belongs to will be used. This field is redundant and need not be set for network endpoints of type GCE_VM_IP. If set, it must be set to the primary internal IP address of the attached VM instance that matches the subnetwork of the NEG. The primary internal IP address from any NIC of a multi-NIC VM instance can be added to a NEG as long as it matches the NEG subnetwork.", - "type": "string" - }, - "fqdn": { - "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.", - "type": "string" - }, - "port": { - "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used. This field can not be set for network endpoints of type GCE_VM_IP.", - "type": "integer", - "format": "int32" - }, - "instance": { - "description": "The name or a URL of VM instance of this network endpoint. This field is required for network endpoints of type GCE_VM_IP and GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group (for zonal NEGs) or in the zone within the region of the NEG (for regional NEGs). If the ipAddress is specified, it must belongs to the VM instance. The name must be 1-63 characters long, and comply with RFC1035 or be a valid URL pointing to an existing instance.", - "type": "string" - }, - "annotations": { - "description": "Metadata defined as annotations on the network endpoint.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "NetworkEndpointGroupsDetachEndpointsRequest": { - "id": "NetworkEndpointGroupsDetachEndpointsRequest", - "type": "object", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - } - }, - "NetworkEndpointGroupsListEndpointsRequest": { - "id": "NetworkEndpointGroupsListEndpointsRequest", - "type": "object", - "properties": { - "healthStatus": { - "description": "Optional query parameter for showing the health status of each network endpoint. Valid options are SKIP or SHOW. If you don't specify this parameter, the health status of network endpoints will not be provided.", - "type": "string", - "enumDescriptions": [ - "Show the health status for each network endpoint. Impacts latency of the call.", - "Health status for network endpoints will not be provided." + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" ], - "enum": [ - "SHOW", - "SKIP" - ] - } - } - }, - "NetworkEndpointGroupsListNetworkEndpoints": { - "id": "NetworkEndpointGroupsListNetworkEndpoints", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in the specified network endpoint group.", - "default": "compute#networkEndpointGroupsListNetworkEndpoints", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NetworkEndpointWithHealthStatus resources.", - "type": "array", - "items": { - "$ref": "NetworkEndpointWithHealthStatus" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "request": { + "$ref": "NetworkEndpointGroupsAttachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Attach a list of network endpoints to the specified network endpoint group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "detachNetworkEndpoints": { + "id": "compute.networkEndpointGroups.detachNetworkEndpoints", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NetworkEndpointWithHealthStatus": { - "id": "NetworkEndpointWithHealthStatus", - "type": "object", - "properties": { - "networkEndpoint": { - "description": "[Output only] The network endpoint;", - "$ref": "NetworkEndpoint" - }, - "healths": { - "description": "[Output only] The health status of network endpoint;", - "type": "array", - "items": { - "$ref": "HealthStatusForNetworkEndpoint" - } - } - } - }, - "HealthStatusForNetworkEndpoint": { - "id": "HealthStatusForNetworkEndpoint", - "type": "object", - "properties": { - "forwardingRule": { - "description": "URL of the forwarding rule associated with the health state of the network endpoint.", - "$ref": "ForwardingRuleReference" - }, - "backendService": { - "description": "URL of the backend service associated with the health state of the network endpoint.", - "$ref": "BackendServiceReference" - }, - "healthCheck": { - "description": "URL of the health check associated with the health state of the network endpoint.", - "$ref": "HealthCheckReference" - }, - "healthCheckService": { - "description": "URL of the health check service associated with the health state of the network endpoint.", - "$ref": "HealthCheckServiceReference" - }, - "healthState": { - "description": "Health state of the network endpoint determined based on the health checks configured.", - "type": "string", - "enumDescriptions": [ - "Endpoint is being drained.", - "Endpoint is healthy.", - "Endpoint is unhealthy.", - "Health status of the endpoint is unknown." + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" ], - "enum": [ - "DRAINING", - "HEALTHY", - "UNHEALTHY", - "UNKNOWN" - ] - } - } - }, - "ForwardingRuleReference": { - "id": "ForwardingRuleReference", - "type": "object", - "properties": { - "forwardingRule": { - "type": "string" - } - } - }, - "BackendServiceReference": { - "id": "BackendServiceReference", - "type": "object", - "properties": { - "backendService": { - "type": "string" - } - } - }, - "HealthCheckReference": { - "id": "HealthCheckReference", - "description": "A full or valid partial URL to a health check. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check - projects/project-id/global/httpHealthChecks/health-check - global/httpHealthChecks/health-check ", - "type": "object", - "properties": { - "healthCheck": { - "type": "string" - } - } - }, - "HealthCheckServiceReference": { - "id": "HealthCheckServiceReference", - "description": "A full or valid partial URL to a health check service. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service - projects/project-id/regions/us-west1/healthCheckServices/health-check-service - regions/us-west1/healthCheckServices/health-check-service ", - "type": "object", - "properties": { - "healthCheckService": { - "type": "string" - } - } - }, - "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { - "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", - "type": "object", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - } - }, - "GlobalNetworkEndpointGroupsDetachEndpointsRequest": { - "id": "GlobalNetworkEndpointGroupsDetachEndpointsRequest", - "type": "object", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - } - }, - "RegionNetworkEndpointGroupsAttachEndpointsRequest": { - "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", - "type": "object", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - } - }, - "RegionNetworkEndpointGroupsDetachEndpointsRequest": { - "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", - "type": "object", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", - "type": "array", - "items": { - "$ref": "NetworkEndpoint" - } - } - } - }, - "NetworkList": { - "id": "NetworkList", - "description": "Contains a list of networks.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#networkList for lists of networks.", - "default": "compute#networkList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Network resources.", - "type": "array", - "items": { - "$ref": "Network" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "request": { + "$ref": "NetworkEndpointGroupsDetachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Detach a list of network endpoints from the specified network endpoint group." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "listNetworkEndpoints": { + "id": "compute.networkEndpointGroups.listNetworkEndpoints", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "networkEndpointGroup" + ], + "request": { + "$ref": "NetworkEndpointGroupsListEndpointsRequest" + }, + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the network endpoints in the specified network endpoint group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "testIamPermissions": { + "id": "compute.networkEndpointGroups.testIamPermissions", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "Network": { - "id": "Network", - "description": "Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#network for networks.", - "default": "compute#network", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.networks.insert" - ] + "globalNetworkEndpointGroups": { + "methods": { + "list": { + "id": "compute.globalNetworkEndpointGroups.list", + "path": "projects/{project}/global/networkEndpointGroups", + "flatPath": "projects/{project}/global/networkEndpointGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "IPv4Range": { - "description": "Deprecated in favor of subnet mode networks. The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", - "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", - "deprecated": true, - "type": "string" - }, - "gatewayIPv4": { - "description": "[Output Only] The gateway address for default routing out of the network, selected by Google Cloud.", - "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" - }, - "autoCreateSubnetworks": { - "description": "Must be set to create a VPC network. If not set, a legacy network is created. When set to true, the VPC network is created in auto mode. When set to false, the VPC network is created in custom mode. An auto mode VPC network starts with one subnet per region. Each subnet has a predetermined range as described in Auto mode VPC network IP ranges. For custom mode VPC networks, you can add subnets using the subnetworks insert method.", - "type": "boolean" - }, - "subnetworks": { - "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks in this VPC network.", - "type": "array", - "items": { - "type": "string" - } + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NetworkEndpointGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of network endpoint groups that are located in the specified project." }, - "peerings": { - "description": "[Output Only] A list of network peerings for the resource.", - "type": "array", - "items": { - "$ref": "NetworkPeering" - } + "get": { + "id": "compute.globalNetworkEndpointGroups.get", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "GET", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "response": { + "$ref": "NetworkEndpointGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network endpoint group." }, - "routingConfig": { - "description": "The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce.", - "$ref": "NetworkRoutingConfig" + "insert": { + "id": "compute.globalNetworkEndpointGroups.insert", + "path": "projects/{project}/global/networkEndpointGroups", + "flatPath": "projects/{project}/global/networkEndpointGroups", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "NetworkEndpointGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request." }, - "mtu": { - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1300 and the maximum value is 8896. The suggested value is 1500, which is the default MTU used on the Internet, or 8896 if you want to use Jumbo frames. If unspecified, the value defaults to 1460.", - "type": "integer", - "format": "int32" + "delete": { + "id": "compute.globalNetworkEndpointGroups.delete", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "DELETE", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it." }, - "firewallPolicy": { - "description": "[Output Only] URL of the firewall policy the network is associated with.", - "type": "string" + "attachNetworkEndpoints": { + "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "request": { + "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Attach a network endpoint to the specified network endpoint group." }, - "networkFirewallPolicyEnforcementOrder": { - "description": "The network firewall policy enforcement order. Can be either AFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to AFTER_CLASSIC_FIREWALL if the field is not specified.", - "type": "string", - "enumDescriptions": [ - "", - "" + "detachNetworkEndpoints": { + "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "networkEndpointGroup" + ], + "request": { + "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "AFTER_CLASSIC_FIREWALL", - "BEFORE_CLASSIC_FIREWALL" - ] - }, - "enableUlaInternalIpv6": { - "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign a /48 from google defined ULA prefix fd20::/20. .", - "type": "boolean" - }, - "internalIpv6Range": { - "description": "When enabling ula internal ipv6, caller optionally can specify the /48 range they want from the google defined ULA prefix fd20::/20. The input must be a valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. .", - "type": "string" - } - } - }, - "NetworkPeering": { - "id": "NetworkPeering", - "description": "A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.", - "type": "object", - "properties": { - "name": { - "description": "Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "type": "string" - }, - "network": { - "description": "The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.", - "type": "string" + "description": "Detach the network endpoint from the specified network endpoint group." }, - "state": { - "description": "[Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network.", - "type": "string", - "enumDescriptions": [ - "Matching configuration exists on the peer.", - "There is no matching configuration on the peer, including the case when peer does not exist." + "listNetworkEndpoints": { + "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints", + "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "networkEndpointGroup" ], - "enum": [ - "ACTIVE", - "INACTIVE" - ] - }, - "stateDetails": { - "description": "[Output Only] Details about the current state of the peering.", - "type": "string" - }, - "autoCreateRoutes": { - "description": "This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", - "type": "boolean" - }, - "exportCustomRoutes": { - "description": "Whether to export the custom routes to peer network. The default value is false.", - "type": "boolean" - }, - "importCustomRoutes": { - "description": "Whether to import the custom routes from peer network. The default value is false.", - "type": "boolean" - }, - "exchangeSubnetRoutes": { - "description": "Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", - "type": "boolean" - }, - "exportSubnetRoutesWithPublicIp": { - "description": "Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field.", - "type": "boolean" - }, - "importSubnetRoutesWithPublicIp": { - "description": "Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field.", - "type": "boolean" - }, - "peerMtu": { - "description": "Maximum Transmission Unit in bytes.", - "type": "integer", - "format": "int32" - }, - "stackType": { - "description": "Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY.", - "type": "string", - "enumDescriptions": [ - "This Peering will allow IPv4 traffic and routes to be exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic and routes will be exchanged as well.", - "This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6." + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ] + "description": "Lists the network endpoints in the specified network endpoint group." } } }, - "NetworkRoutingConfig": { - "id": "NetworkRoutingConfig", - "description": "A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide.", - "type": "object", - "properties": { - "routingMode": { - "description": "The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions.", - "type": "string", - "enumDescriptions": [ - "", - "" + "regionNetworkEndpointGroups": { + "methods": { + "list": { + "id": "compute.regionNetworkEndpointGroups.list", + "path": "projects/{project}/regions/{region}/networkEndpointGroups", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "GLOBAL", - "REGIONAL" - ] - } - } - }, - "NetworksUpdatePeeringRequest": { - "id": "NetworksUpdatePeeringRequest", - "type": "object", - "properties": { - "networkPeering": { - "$ref": "NetworkPeering" - } - } - }, - "NetworksAddPeeringRequest": { - "id": "NetworksAddPeeringRequest", - "type": "object", - "properties": { - "name": { - "description": "Name of the peering, which should conform to RFC1035.", - "annotations": { - "required": [ - "compute.networks.addPeering" - ] + "response": { + "$ref": "NetworkEndpointGroupList" }, - "type": "string" - }, - "peerNetwork": { - "description": "URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.", - "type": "string" - }, - "autoCreateRoutes": { - "description": "This field will be deprecated soon. Use exchange_subnet_routes in network_peering instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", - "type": "boolean" - }, - "networkPeering": { - "description": "Network peering parameters. In order to specify route policies for peering using import and export custom routes, you must specify all peering related parameters (name, peer network, exchange_subnet_routes) in the network_peering field. The corresponding fields in NetworksAddPeeringRequest will be deprecated soon.", - "$ref": "NetworkPeering" - } - } - }, - "NetworksRemovePeeringRequest": { - "id": "NetworksRemovePeeringRequest", - "type": "object", - "properties": { - "name": { - "description": "Name of the peering, which should conform to RFC1035.", - "type": "string" - } - } - }, - "NetworksGetEffectiveFirewallsResponse": { - "id": "NetworksGetEffectiveFirewallsResponse", - "type": "object", - "properties": { - "firewalls": { - "description": "Effective firewalls on the network.", - "type": "array", - "items": { - "$ref": "Firewall" - } - }, - "firewallPolicys": { - "description": "Effective firewalls from firewall policy.", - "type": "array", - "items": { - "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" - } - } - } - }, - "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", - "type": "object", - "properties": { - "name": { - "description": "[Output Only] The name of the firewall policy.", - "type": "string" - }, - "type": { - "description": "[Output Only] The type of the firewall policy.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "HIERARCHY", - "NETWORK", - "UNSPECIFIED" - ] - }, - "shortName": { - "description": "[Output Only] The short name of the firewall policy.", - "type": "string" - }, - "displayName": { - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", - "deprecated": true, - "type": "string" - }, - "rules": { - "description": "The rules that apply to the network.", - "type": "array", - "items": { - "$ref": "FirewallPolicyRule" - } - } - } - }, - "ExchangedPeeringRoutesList": { - "id": "ExchangedPeeringRoutesList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#exchangedPeeringRoutesList for exchanged peering routes lists.", - "default": "compute#exchangedPeeringRoutesList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of ExchangedPeeringRoute resources.", - "type": "array", - "items": { - "$ref": "ExchangedPeeringRoute" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "get": { + "id": "compute.regionNetworkEndpointGroups.get", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "GET", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "response": { + "$ref": "NetworkEndpointGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network endpoint group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.regionNetworkEndpointGroups.insert", + "path": "projects/{project}/regions/{region}/networkEndpointGroups", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "NetworkEndpointGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request." + }, + "delete": { + "id": "compute.regionNetworkEndpointGroups.delete", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "DELETE", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "ExchangedPeeringRoute": { - "id": "ExchangedPeeringRoute", - "type": "object", - "properties": { - "destRange": { - "description": "The destination range of the route.", - "type": "string" - }, - "type": { - "description": "The type of the peering route.", - "type": "string", - "enumDescriptions": [ - "For routes exported from local network.", - "The peering route.", - "The peering route corresponding to subnetwork range." + }, + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" ], - "enum": [ - "DYNAMIC_PEERING_ROUTE", - "STATIC_PEERING_ROUTE", - "SUBNET_PEERING_ROUTE" - ] + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service." }, - "nextHopRegion": { - "description": "The region of peering route next hop, only applies to dynamic routes.", - "type": "string" + "attachNetworkEndpoints": { + "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "request": { + "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Attach a list of network endpoints to the specified network endpoint group." }, - "priority": { - "description": "The priority of the peering route.", - "type": "integer", - "format": "uint32" + "detachNetworkEndpoints": { + "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "networkEndpointGroup": { + "description": "The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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). end_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "request": { + "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Detach the network endpoint from the specified network endpoint group." }, - "imported": { - "description": "True if the peering route has been imported from a peer. The actual import happens if the field networkPeering.importCustomRoutes is true for this network, and networkPeering.exportCustomRoutes is true for the peer network, and the import does not result in a route conflict.", - "type": "boolean" + "listNetworkEndpoints": { + "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region", + "networkEndpointGroup" + ], + "response": { + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the network endpoints in the specified network endpoint group." } } }, - "NodeGroupList": { - "id": "NodeGroupList", - "description": "Contains a list of nodeGroups.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeGroupList for lists of node groups.", - "default": "compute#nodeGroupList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NodeGroup resources.", - "type": "array", - "items": { - "$ref": "NodeGroup" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "networks": { + "methods": { + "list": { + "id": "compute.networks.list", + "path": "projects/{project}/global/networks", + "flatPath": "projects/{project}/global/networks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NetworkList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of networks available to the specified project." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "get": { + "id": "compute.networks.get", + "path": "projects/{project}/global/networks/{network}", + "flatPath": "projects/{project}/global/networks/{network}", + "httpMethod": "GET", + "parameters": { + "network": { + "description": "Name of the network to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "response": { + "$ref": "Network" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.networks.insert", + "path": "projects/{project}/global/networks", + "flatPath": "projects/{project}/global/networks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Network" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a network in the specified project using the data included in the request." + }, + "delete": { + "id": "compute.networks.delete", + "path": "projects/{project}/global/networks/{network}", + "flatPath": "projects/{project}/global/networks/{network}", + "httpMethod": "DELETE", + "parameters": { + "network": { + "description": "Name of the network to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "NodeGroup": { - "id": "NodeGroup", - "description": "Represents a sole-tenant Node Group resource. A sole-tenant node is a physical server that is dedicated to hosting VM instances only for your specific project. Use sole-tenant nodes to keep your instances physically separated from instances in other projects, or to group your instances together on the same host hardware. For more information, read Sole-tenant nodes.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The type of the resource. Always compute#nodeGroup for node group.", - "default": "compute#nodeGroup", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "nodeTemplate": { - "description": "URL of the node template to create the node group from.", - "type": "string" - }, - "zone": { - "description": "[Output Only] The name of the zone where the node group resides, such as us-central1-a.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "status": { - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "network" ], - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY" - ] - }, - "size": { - "description": "[Output Only] The total number of nodes in the node group.", - "type": "integer", - "format": "int32" - }, - "autoscalingPolicy": { - "description": "Specifies how autoscaling should behave.", - "$ref": "NodeGroupAutoscalingPolicy" - }, - "maintenancePolicy": { - "description": "Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies.", - "type": "string", - "enumDescriptions": [ - "Allow the node and corresponding instances to retain default maintenance behavior.", - "", - "When maintenance must be done on a node, the instances on that node will be moved to other nodes in the group. Instances with onHostMaintenance = MIGRATE will live migrate to their destinations while instances with onHostMaintenance = TERMINATE will terminate and then restart on their destination nodes if automaticRestart = true.", - "Instances in this group will restart on the same node when maintenance has completed. Instances must have onHostMaintenance = TERMINATE, and they will only restart if automaticRestart = true." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "DEFAULT", - "MAINTENANCE_POLICY_UNSPECIFIED", - "MIGRATE_WITHIN_NODE_GROUP", - "RESTART_IN_PLACE" - ] - }, - "locationHint": { - "description": "An opaque location hint used to place the Node close to other resources. This field is for use by internal tools that use the public API. The location hint here on the NodeGroup overrides any location_hint present in the NodeTemplate.", - "type": "string" - }, - "fingerprint": { - "type": "string", - "format": "byte" - }, - "maintenanceWindow": { - "$ref": "NodeGroupMaintenanceWindow" + "description": "Deletes the specified network." }, - "shareSettings": { - "description": "Share-settings for the node group", - "$ref": "ShareSettings" - } - } - }, - "NodeGroupAutoscalingPolicy": { - "id": "NodeGroupAutoscalingPolicy", - "type": "object", - "properties": { - "mode": { - "description": "The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes.", - "type": "string", - "enumDescriptions": [ - "", - "Autoscaling is disabled.", - "Autocaling is fully enabled.", - "Autoscaling will only scale out and will not remove nodes." + "patch": { + "id": "compute.networks.patch", + "path": "projects/{project}/global/networks/{network}", + "flatPath": "projects/{project}/global/networks/{network}", + "httpMethod": "PATCH", + "parameters": { + "network": { + "description": "Name of the network to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "network" ], - "enum": [ - "MODE_UNSPECIFIED", - "OFF", - "ON", - "ONLY_SCALE_OUT" - ] - }, - "minNodes": { - "description": "The minimum number of nodes that the group should have.", - "type": "integer", - "format": "int32" - }, - "maxNodes": { - "description": "The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100.", - "type": "integer", - "format": "int32" - } - } - }, - "NodeGroupMaintenanceWindow": { - "id": "NodeGroupMaintenanceWindow", - "description": "Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window.", - "type": "object", - "properties": { - "startTime": { - "description": "Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.", - "type": "string" - }, - "maintenanceDuration": { - "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", - "$ref": "Duration" - } - } - }, - "NodeGroupAggregatedList": { - "id": "NodeGroupAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeGroupAggregatedList for aggregated lists of node groups.", - "default": "compute#nodeGroupAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "request": { + "$ref": "Network" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode." }, - "items": { - "description": "A list of NodeGroupsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of node groups.", - "$ref": "NodeGroupsScopedList" - } + "updatePeering": { + "id": "compute.networks.updatePeering", + "path": "projects/{project}/global/networks/{network}/updatePeering", + "flatPath": "projects/{project}/global/networks/{network}/updatePeering", + "httpMethod": "PATCH", + "parameters": { + "network": { + "description": "Name of the network resource which the updated peering is belonging to.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "request": { + "$ref": "NetworksUpdatePeeringRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified network peering with the data included in the request. You can only modify the NetworkPeering.export_custom_routes field and the NetworkPeering.import_custom_routes field." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "addPeering": { + "id": "compute.networks.addPeering", + "path": "projects/{project}/global/networks/{network}/addPeering", + "flatPath": "projects/{project}/global/networks/{network}/addPeering", + "httpMethod": "POST", + "parameters": { + "network": { + "description": "Name of the network resource to add peering to.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "request": { + "$ref": "NetworksAddPeeringRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds a peering to the specified network." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "removePeering": { + "id": "compute.networks.removePeering", + "path": "projects/{project}/global/networks/{network}/removePeering", + "flatPath": "projects/{project}/global/networks/{network}/removePeering", + "httpMethod": "POST", + "parameters": { + "network": { + "description": "Name of the network resource to remove peering from.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "request": { + "$ref": "NetworksRemovePeeringRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes a peering from the specified network." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "switchToCustomMode": { + "id": "compute.networks.switchToCustomMode", + "path": "projects/{project}/global/networks/{network}/switchToCustomMode", + "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode", + "httpMethod": "POST", + "parameters": { + "network": { + "description": "Name of the network to be updated.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Switches the network mode from auto subnet mode to custom subnet mode." + }, + "getEffectiveFirewalls": { + "id": "compute.networks.getEffectiveFirewalls", + "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", + "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", + "httpMethod": "GET", + "parameters": { + "network": { + "description": "Name of the network for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NodeGroupsScopedList": { - "id": "NodeGroupsScopedList", - "type": "object", - "properties": { - "nodeGroups": { - "description": "[Output Only] A list of node groups contained in this scope.", - "type": "array", - "items": { - "$ref": "NodeGroup" - } + }, + "parameterOrder": [ + "project", + "network" + ], + "response": { + "$ref": "NetworksGetEffectiveFirewallsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the effective firewalls on a given network." }, - "warning": { - "description": "[Output Only] An informational warning that appears when the nodeGroup list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "listPeeringRoutes": { + "id": "compute.networks.listPeeringRoutes", + "path": "projects/{project}/global/networks/{network}/listPeeringRoutes", + "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes", + "httpMethod": "GET", + "parameters": { + "direction": { + "description": "The direction of the exchanged routes.", + "location": "query", "type": "string", "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false + "For routes exported from peer network.", + "For routes exported from local network." ], "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" + "INCOMING", + "OUTGOING" ] }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "network": { + "description": "Name of the network for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "peeringName": { + "description": "The response will show routes exchanged over the given peering connection.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.", + "location": "query", + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "NodeGroupsAddNodesRequest": { - "id": "NodeGroupsAddNodesRequest", - "type": "object", - "properties": { - "additionalNodeCount": { - "description": "Count of additional nodes to be added to the node group.", - "type": "integer", - "format": "int32" - } - } - }, - "NodeGroupsDeleteNodesRequest": { - "id": "NodeGroupsDeleteNodesRequest", - "type": "object", - "properties": { - "nodes": { - "description": "Names of the nodes to delete.", - "type": "array", - "items": { - "type": "string" - } + }, + "parameterOrder": [ + "project", + "network" + ], + "response": { + "$ref": "ExchangedPeeringRoutesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the peering routes exchanged over peering connection." } } }, - "NodeGroupsListNodes": { - "id": "NodeGroupsListNodes", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The resource type, which is always compute.nodeGroupsListNodes for the list of nodes in the specified node group.", - "default": "compute#nodeGroupsListNodes", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Node resources.", - "type": "array", - "items": { - "$ref": "NodeGroupNode" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "nodeGroups": { + "methods": { + "list": { + "id": "compute.nodeGroups.list", + "path": "projects/{project}/zones/{zone}/nodeGroups", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "NodeGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.nodeGroups.aggregatedList", + "path": "projects/{project}/aggregated/nodeGroups", + "flatPath": "projects/{project}/aggregated/nodeGroups", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } - } - } - }, - "NodeGroupNode": { - "id": "NodeGroupNode", - "type": "object", - "properties": { - "name": { - "description": "The name of the node.", - "type": "string" - }, - "status": { - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + }, + "parameterOrder": [ + "project" ], - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "REPAIRING" - ] - }, - "nodeType": { - "description": "The type of this node.", - "type": "string" - }, - "serverBinding": { - "description": "Binding properties for the physical server.", - "$ref": "ServerBinding" - }, - "serverId": { - "description": "Server ID associated with this node.", - "type": "string" - }, - "disks": { - "description": "Local disk configurations.", - "type": "array", - "items": { - "$ref": "LocalDisk" - } - }, - "accelerators": { - "description": "Accelerators for this node.", - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } - }, - "instances": { - "description": "Instances scheduled on this node.", - "type": "array", - "items": { - "type": "string" - } - }, - "instanceConsumptionData": { - "description": "Instance data that shows consumed resources on the node.", - "type": "array", - "items": { - "$ref": "InstanceConsumptionData" - } - }, - "consumedResources": { - "description": "Node resources that are reserved by all instances.", - "$ref": "InstanceConsumptionInfo" - }, - "totalResources": { - "description": "Total amount of available resources on the node.", - "$ref": "InstanceConsumptionInfo" - }, - "cpuOvercommitType": { - "description": "CPU overcommit.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "response": { + "$ref": "NodeGroupAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", - "ENABLED", - "NONE" - ] + "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - } - } - }, - "ServerBinding": { - "id": "ServerBinding", - "type": "object", - "properties": { - "type": { - "type": "string", - "enumDescriptions": [ - "Node may associate with any physical server over its lifetime.", - "Node may associate with minimal physical servers over its lifetime.", - "" + "get": { + "id": "compute.nodeGroups.get", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "GET", + "parameters": { + "nodeGroup": { + "description": "Name of the node group to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" ], - "enum": [ - "RESTART_NODE_ON_ANY_SERVER", - "RESTART_NODE_ON_MINIMAL_SERVERS", - "SERVER_BINDING_TYPE_UNSPECIFIED" - ] - } - } - }, - "LocalDisk": { - "id": "LocalDisk", - "type": "object", - "properties": { - "diskType": { - "description": "Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.", - "type": "string" - }, - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB.", - "type": "integer", - "format": "int32" - }, - "diskCount": { - "description": "Specifies the number of such disks.", - "type": "integer", - "format": "int32" - } - } - }, - "InstanceConsumptionData": { - "id": "InstanceConsumptionData", - "type": "object", - "properties": { - "instance": { - "description": "Server-defined URL for the instance.", - "type": "string" - }, - "consumptionInfo": { - "description": "Resources consumed by the instance.", - "$ref": "InstanceConsumptionInfo" - } - } - }, - "InstanceConsumptionInfo": { - "id": "InstanceConsumptionInfo", - "type": "object", - "properties": { - "minNodeCpus": { - "description": "The minimal guaranteed number of virtual CPUs that are reserved.", - "type": "integer", - "format": "int32" - }, - "guestCpus": { - "description": "The number of virtual CPUs that are available to the instance.", - "type": "integer", - "format": "int32" - }, - "memoryMb": { - "description": "The amount of physical memory available to the instance, defined in MiB.", - "type": "integer", - "format": "int32" - }, - "localSsdGb": { - "description": "The amount of local SSD storage available to the instance, defined in GiB.", - "type": "integer", - "format": "int32" - } - } - }, - "NodeGroupsSetNodeTemplateRequest": { - "id": "NodeGroupsSetNodeTemplateRequest", - "type": "object", - "properties": { - "nodeTemplate": { - "description": "Full or partial URL of the node template resource to be updated for this node group.", - "type": "string" - } - } - }, - "NodeGroupsSimulateMaintenanceEventRequest": { - "id": "NodeGroupsSimulateMaintenanceEventRequest", - "type": "object", - "properties": { - "nodes": { - "description": "Names of the nodes to go under maintenance simulation.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NodeTemplateList": { - "id": "NodeTemplateList", - "description": "Contains a list of node templates.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeTemplateList for lists of node templates.", - "default": "compute#nodeTemplateList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NodeTemplate resources.", - "type": "array", - "items": { - "$ref": "NodeTemplate" - } + "response": { + "$ref": "NodeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified NodeGroup. Get a list of available NodeGroups by making a list() request. Note: the \"nodes\" field should not be used. Use nodeGroups.listNodes instead." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "insert": { + "id": "compute.nodeGroups.insert", + "path": "projects/{project}/zones/{zone}/nodeGroups", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "httpMethod": "POST", + "parameters": { + "initialNodeCount": { + "description": "Initial count of nodes in the node group.", + "location": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "initialNodeCount" + ], + "request": { + "$ref": "NodeGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a NodeGroup resource in the specified project using the data included in the request." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "delete": { + "id": "compute.nodeGroups.delete", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "DELETE", + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified NodeGroup resource." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "addNodes": { + "id": "compute.nodeGroups.addNodes", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "httpMethod": "POST", + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NodeTemplate": { - "id": "NodeTemplate", - "description": "Represent a sole-tenant Node Template resource. You can use a template to define properties for nodes in a node group. For more information, read Creating node groups and instances.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The type of the resource. Always compute#nodeTemplate for node templates.", - "default": "compute#nodeTemplate", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "nodeType": { - "description": "The node type to use for nodes group that are created from this template.", - "type": "string" - }, - "nodeAffinityLabels": { - "description": "Labels to use for node affinity, which will be used in instance scheduling.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "status": { - "description": "[Output Only] The status of the node template. One of the following values: CREATING, READY, and DELETING.", - "type": "string", - "enumDescriptions": [ - "Resources are being allocated.", - "The node template is currently being deleted.", - "Invalid status.", - "The node template is ready." + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" ], - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY" - ] - }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", - "type": "string" - }, - "region": { - "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "nodeTypeFlexibility": { - "description": "Do not use. Instead, use the node_type property.", - "$ref": "NodeTemplateNodeTypeFlexibility" - }, - "serverBinding": { - "description": "Sets the binding properties for the physical server. Valid values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available physical server - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical server whenever possible See Sole-tenant node options for more information.", - "$ref": "ServerBinding" - }, - "disks": { - "type": "array", - "items": { - "$ref": "LocalDisk" - } - }, - "accelerators": { - "type": "array", - "items": { - "$ref": "AcceleratorConfig" - } - }, - "cpuOvercommitType": { - "description": "CPU overcommit.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "request": { + "$ref": "NodeGroupsAddNodesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", - "ENABLED", - "NONE" - ] - } - } - }, - "NodeTemplateNodeTypeFlexibility": { - "id": "NodeTemplateNodeTypeFlexibility", - "type": "object", - "properties": { - "cpus": { - "type": "string" - }, - "memory": { - "type": "string" - }, - "localSsd": { - "type": "string" - } - } - }, - "NodeTemplateAggregatedList": { - "id": "NodeTemplateAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeTemplateAggregatedList for aggregated lists of node templates.", - "default": "compute#nodeTemplateAggregatedList", - "type": "string" + "description": "Adds specified number of nodes to the node group." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "deleteNodes": { + "id": "compute.nodeGroups.deleteNodes", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", + "httpMethod": "POST", + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes will be deleted.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "request": { + "$ref": "NodeGroupsDeleteNodesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes specified nodes from the node group." }, - "items": { - "description": "A list of NodeTemplatesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of node templates.", - "$ref": "NodeTemplatesScopedList" - } + "listNodes": { + "id": "compute.nodeGroups.listNodes", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes you want to list.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "response": { + "$ref": "NodeGroupsListNodes" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists nodes in the node group." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "setNodeTemplate": { + "id": "compute.nodeGroups.setNodeTemplate", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", + "httpMethod": "POST", + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "request": { + "$ref": "NodeGroupsSetNodeTemplateRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the node template of the node group." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "patch": { + "id": "compute.nodeGroups.patch", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "PATCH", + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "request": { + "$ref": "NodeGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified node group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "simulateMaintenanceEvent": { + "id": "compute.nodeGroups.simulateMaintenanceEvent", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", + "httpMethod": "POST", + "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes will go under maintenance simulation.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NodeTemplatesScopedList": { - "id": "NodeTemplatesScopedList", - "type": "object", - "properties": { - "nodeTemplates": { - "description": "[Output Only] A list of node templates contained in this scope.", - "type": "array", - "items": { - "$ref": "NodeTemplate" - } + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "request": { + "$ref": "NodeGroupsSimulateMaintenanceEventRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Simulates maintenance event on specified nodes from the node group." }, - "warning": { - "description": "[Output Only] An informational warning that appears when the node templates list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "performMaintenance": { + "id": "compute.nodeGroups.performMaintenance", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", + "httpMethod": "POST", + "parameters": { + "nodeGroup": { + "description": "Name of the node group scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NodeTypeList": { - "id": "NodeTypeList", - "description": "Contains a list of node types.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeTypeList for lists of node types.", - "default": "compute#nodeTypeList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NodeType resources.", - "type": "array", - "items": { - "$ref": "NodeType" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "zone", + "nodeGroup" + ], + "request": { + "$ref": "NodeGroupsPerformMaintenanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Perform maintenance on a subset of nodes in the node group." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getIamPolicy": { + "id": "compute.nodeGroups.getIamPolicy", + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NodeType": { - "id": "NodeType", - "description": "Represent a sole-tenant Node Type resource. Each node within a node group must have a node type. A node type specifies the total amount of cores and memory for that node. Currently, the only available node type is n1-node-96-624 node type that has 96 vCPUs and 624 GB of memory, available in multiple zones. For more information read Node types.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The type of the resource. Always compute#nodeType for node types.", - "default": "compute#nodeType", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" - }, - "cpuPlatform": { - "description": "[Output Only] The CPU platform used by this node type.", - "type": "string" - }, - "guestCpus": { - "description": "[Output Only] The number of virtual CPUs that are available to the node type.", - "type": "integer", - "format": "int32" - }, - "memoryMb": { - "description": "[Output Only] The amount of physical memory available to the node type, defined in MB.", - "type": "integer", - "format": "int32" - }, - "localSsdGb": { - "description": "[Output Only] Local SSD available to the node type, defined in GB.", - "type": "integer", - "format": "int32" - }, - "deprecated": { - "description": "[Output Only] The deprecation status associated with this node type.", - "$ref": "DeprecationStatus" + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "zone": { - "description": "[Output Only] The name of the zone where the node type resides, such as us-central1-a.", - "type": "string" + "setIamPolicy": { + "id": "compute.nodeGroups.setIamPolicy", + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "testIamPermissions": { + "id": "compute.nodeGroups.testIamPermissions", + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "NodeTypeAggregatedList": { - "id": "NodeTypeAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#nodeTypeAggregatedList for aggregated lists of node types.", - "default": "compute#nodeTypeAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NodeTypesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of node types.", - "$ref": "NodeTypesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "nodeTemplates": { + "methods": { + "list": { + "id": "compute.nodeTemplates.list", + "path": "projects/{project}/regions/{region}/nodeTemplates", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "NodeTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of node templates available to the specified project." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.nodeTemplates.aggregatedList", + "path": "projects/{project}/aggregated/nodeTemplates", + "flatPath": "projects/{project}/aggregated/nodeTemplates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NodeTemplateAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of node templates. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NodeTypesScopedList": { - "id": "NodeTypesScopedList", - "type": "object", - "properties": { - "nodeTypes": { - "description": "[Output Only] A list of node types contained in this scope.", - "type": "array", - "items": { - "$ref": "NodeType" - } + "get": { + "id": "compute.nodeTemplates.get", + "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "httpMethod": "GET", + "parameters": { + "nodeTemplate": { + "description": "Name of the node template to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "nodeTemplate" + ], + "response": { + "$ref": "NodeTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified node template." }, - "warning": { - "description": "[Output Only] An informational warning that appears when the node types list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.nodeTemplates.insert", + "path": "projects/{project}/regions/{region}/nodeTemplates", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "NodeTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a NodeTemplate resource in the specified project using the data included in the request." + }, + "delete": { + "id": "compute.nodeTemplates.delete", + "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "httpMethod": "DELETE", + "parameters": { + "nodeTemplate": { + "description": "Name of the NodeTemplate resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "NotificationEndpointList": { - "id": "NotificationEndpointList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", - "default": "compute#notificationEndpointList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of NotificationEndpoint resources.", - "type": "array", - "items": { - "$ref": "NotificationEndpoint" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region", + "nodeTemplate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified NodeTemplate resource." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getIamPolicy": { + "id": "compute.nodeTemplates.getIamPolicy", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "NotificationEndpoint": { - "id": "NotificationEndpoint", - "description": "Represents a notification endpoint. A notification endpoint resource defines an endpoint to receive notifications when there are status changes detected by the associated health check service. For more information, see Health checks overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", - "default": "compute#notificationEndpoint", - "type": "string" - }, - "id": { - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the notification endpoint resides. This field applies only to the regional resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "grpcSettings": { - "description": "Settings of the gRPC notification endpoint including the endpoint URL and the retry duration.", - "$ref": "NotificationEndpointGrpcSettings" - } - } - }, - "NotificationEndpointGrpcSettings": { - "id": "NotificationEndpointGrpcSettings", - "description": "Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint.", - "type": "object", - "properties": { - "endpoint": { - "description": "Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name.", - "type": "string" - }, - "retryDurationSec": { - "description": "How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number.", - "type": "integer", - "format": "uint32" - }, - "payloadName": { - "description": "Optional. If specified, this field is used to populate the \"name\" field in gRPC requests.", - "type": "string" - }, - "authority": { - "description": "Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3", - "type": "string" - }, - "resendInterval": { - "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints.", - "$ref": "Duration" - } - } - }, - "PacketMirroring": { - "id": "PacketMirroring", - "description": "Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of specified instances in your Virtual Private Cloud (VPC) network and forwards it to a collector destination, such as an instance group of an internal TCP/UDP load balancer, for analysis or examination. For more information about setting up Packet Mirroring, see Using Packet Mirroring.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#packetMirroring for packet mirrorings.", - "default": "compute#packetMirroring", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.packetMirrorings.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URI of the region where the packetMirroring resides.", - "type": "string" - }, - "network": { - "description": "Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network.", - "annotations": { - "required": [ - "compute.packetMirrorings.insert" - ] + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" }, - "$ref": "PacketMirroringNetworkInfo" - }, - "priority": { - "description": "The priority of applying this configuration. Priority is used to break ties in cases where there is more than one matching rule. In the case of two rules that apply for a given Instance, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.", - "type": "integer", - "format": "uint32" - }, - "collectorIlb": { - "description": "The Forwarding Rule resource of type loadBalancingScheme=INTERNAL that will be used as collector for mirrored traffic. The specified forwarding rule must have isMirroringCollector set to true.", - "$ref": "PacketMirroringForwardingRuleInfo" - }, - "mirroredResources": { - "description": "PacketMirroring mirroredResourceInfos. MirroredResourceInfo specifies a set of mirrored VM instances, subnetworks and/or tags for which traffic from/to all VM instances will be mirrored.", - "$ref": "PacketMirroringMirroredResourceInfo" - }, - "filter": { - "description": "Filter for mirrored traffic. If unspecified, all traffic is mirrored.", - "$ref": "PacketMirroringFilter" - }, - "enable": { - "description": "Indicates whether or not this packet mirroring takes effect. If set to FALSE, this packet mirroring policy will not be enforced on the network. The default is TRUE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "FALSE", - "TRUE" - ] - } - } - }, - "PacketMirroringNetworkInfo": { - "id": "PacketMirroringNetworkInfo", - "type": "object", - "properties": { - "url": { - "description": "URL of the network resource.", - "type": "string" - }, - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the network; defined by the server.", - "type": "string" - } - } - }, - "PacketMirroringForwardingRuleInfo": { - "id": "PacketMirroringForwardingRuleInfo", - "type": "object", - "properties": { - "url": { - "description": "Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic.", - "type": "string" - }, - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the forwarding rule; defined by the server.", - "type": "string" - } - } - }, - "PacketMirroringMirroredResourceInfo": { - "id": "PacketMirroringMirroredResourceInfo", - "type": "object", - "properties": { - "subnetworks": { - "description": "A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks.", - "type": "array", - "items": { - "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo" - } - }, - "instances": { - "description": "A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances.", - "type": "array", - "items": { - "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo" - } - }, - "tags": { - "description": "A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PacketMirroringMirroredResourceInfoSubnetInfo": { - "id": "PacketMirroringMirroredResourceInfoSubnetInfo", - "type": "object", - "properties": { - "url": { - "description": "Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored.", - "type": "string" + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the subnetwork; defined by the server.", - "type": "string" - } - } - }, - "PacketMirroringMirroredResourceInfoInstanceInfo": { - "id": "PacketMirroringMirroredResourceInfoInstanceInfo", - "type": "object", - "properties": { - "url": { - "description": "Resource URL to the virtual machine instance which is being mirrored.", - "type": "string" + "setIamPolicy": { + "id": "compute.nodeTemplates.setIamPolicy", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the instance; defined by the server.", - "type": "string" + "testIamPermissions": { + "id": "compute.nodeTemplates.testIamPermissions", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "PacketMirroringFilter": { - "id": "PacketMirroringFilter", - "type": "object", - "properties": { - "cidrRanges": { - "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\". Note: Support for IPv6 traffic is in preview.", - "type": "array", - "items": { - "type": "string" - } + "nodeTypes": { + "methods": { + "list": { + "id": "compute.nodeTypes.list", + "path": "projects/{project}/zones/{zone}/nodeTypes", + "flatPath": "projects/{project}/zones/{zone}/nodeTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "NodeTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of node types available to the specified project." }, - "IPProtocols": { - "description": "Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored.", - "type": "array", - "items": { - "type": "string" - } + "aggregatedList": { + "id": "compute.nodeTypes.aggregatedList", + "path": "projects/{project}/aggregated/nodeTypes", + "flatPath": "projects/{project}/aggregated/nodeTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NodeTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of node types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "direction": { - "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH.", - "type": "string", - "enumDescriptions": [ - "Default, both directions are mirrored.", - "Only egress traffic is mirrored.", - "Only ingress traffic is mirrored." + "get": { + "id": "compute.nodeTypes.get", + "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", + "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", + "httpMethod": "GET", + "parameters": { + "nodeType": { + "description": "Name of the node type to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "nodeType" ], - "enum": [ - "BOTH", - "EGRESS", - "INGRESS" - ] + "response": { + "$ref": "NodeType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified node type." } } }, - "PacketMirroringList": { - "id": "PacketMirroringList", - "description": "Contains a list of PacketMirroring resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#packetMirroring for packetMirrorings.", - "default": "compute#packetMirroringList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of PacketMirroring resources.", - "type": "array", - "items": { - "$ref": "PacketMirroring" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "regionNotificationEndpoints": { + "methods": { + "list": { + "id": "compute.regionNotificationEndpoints.list", + "path": "projects/{project}/regions/{region}/notificationEndpoints", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "NotificationEndpointList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the NotificationEndpoints for a project in the given region." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "get": { + "id": "compute.regionNotificationEndpoints.get", + "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "httpMethod": "GET", + "parameters": { + "notificationEndpoint": { + "description": "Name of the NotificationEndpoint resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "notificationEndpoint" + ], + "response": { + "$ref": "NotificationEndpoint" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified NotificationEndpoint resource in the given region." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.regionNotificationEndpoints.insert", + "path": "projects/{project}/regions/{region}/notificationEndpoints", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "NotificationEndpoint" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request." + }, + "delete": { + "id": "compute.regionNotificationEndpoints.delete", + "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "httpMethod": "DELETE", + "parameters": { + "notificationEndpoint": { + "description": "Name of the NotificationEndpoint resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "notificationEndpoint" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified NotificationEndpoint in the given region" } } }, - "PacketMirroringAggregatedList": { - "id": "PacketMirroringAggregatedList", - "description": "Contains a list of packetMirrorings.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#packetMirroringAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of PacketMirroring resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of packetMirrorings.", - "$ref": "PacketMirroringsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "packetMirrorings": { + "methods": { + "get": { + "id": "compute.packetMirrorings.get", + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "httpMethod": "GET", + "parameters": { + "packetMirroring": { + "description": "Name of the PacketMirroring resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PacketMirroringsScopedList": { - "id": "PacketMirroringsScopedList", - "type": "object", - "properties": { - "packetMirrorings": { - "description": "A list of packetMirrorings contained in this scope.", - "type": "array", - "items": { + }, + "parameterOrder": [ + "project", + "region", + "packetMirroring" + ], + "response": { "$ref": "PacketMirroring" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified PacketMirroring resource." }, - "warning": { - "description": "Informational warning which replaces the list of packetMirrorings when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.packetMirrorings.insert", + "path": "projects/{project}/regions/{region}/packetMirrorings", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "Project": { - "id": "Project", - "description": "Represents a Project resource. A project is used to organize resources in a Google Cloud Platform environment. For more information, read about the Resource Hierarchy.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#project for projects.", - "default": "compute#project", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server. This is *not* the project ID, and is just a unique ID used by Compute Engine to identify resources.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", - "type": "string" - }, - "description": { - "description": "An optional textual description of the resource.", - "type": "string" - }, - "commonInstanceMetadata": { - "description": "Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information.", - "$ref": "Metadata" - }, - "quotas": { - "description": "[Output Only] Quotas assigned to this project.", - "type": "array", - "items": { - "$ref": "Quota" - } - }, - "usageExportLocation": { - "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored.", - "$ref": "UsageExportLocation" - }, - "enabledFeatures": { - "description": "Restricted features enabled for use on this project.", - "type": "array", - "items": { - "type": "string" - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "defaultServiceAccount": { - "description": "[Output Only] Default service account used by VMs running in this project.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "PacketMirroring" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request." }, - "xpnProjectStatus": { - "description": "[Output Only] The role this project has in a shared VPC configuration. Currently, only projects with the host role, which is specified by the value HOST, are differentiated.", - "type": "string", - "enumDescriptions": [ - "", - "" + "patch": { + "id": "compute.packetMirrorings.patch", + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "httpMethod": "PATCH", + "parameters": { + "packetMirroring": { + "description": "Name of the PacketMirroring resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "packetMirroring" ], - "enum": [ - "HOST", - "UNSPECIFIED_XPN_PROJECT_STATUS" - ] - }, - "defaultNetworkTier": { - "description": "This signifies the default network tier used for configuring resources of the project and can only take the following values: PREMIUM, STANDARD. Initially the default network tier is PREMIUM.", - "type": "string", - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + "request": { + "$ref": "PacketMirroring" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ] + "description": "Patches the specified PacketMirroring resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "vmDnsSetting": { - "description": "[Output Only] Default internal DNS setting used by VMs running in this project.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + "delete": { + "id": "compute.packetMirrorings.delete", + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "httpMethod": "DELETE", + "parameters": { + "packetMirroring": { + "description": "Name of the PacketMirroring resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "packetMirroring" ], - "enum": [ - "GLOBAL_DEFAULT", - "UNSPECIFIED_VM_DNS_SETTING", - "ZONAL_DEFAULT", - "ZONAL_ONLY" - ] - } - } - }, - "Quota": { - "id": "Quota", - "description": "A quotas entry.", - "type": "object", - "properties": { - "metric": { - "description": "[Output Only] Name of the quota metric.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Guest CPUs", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "The total number of snapshots allowed for a single project.", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "A2_CPUS", - "AFFINITY_GROUPS", - "AUTOSCALERS", - "BACKEND_BUCKETS", - "BACKEND_SERVICES", - "C2D_CPUS", - "C2_CPUS", - "C3_CPUS", - "COMMITMENTS", - "COMMITTED_A2_CPUS", - "COMMITTED_C2D_CPUS", - "COMMITTED_C2_CPUS", - "COMMITTED_C3_CPUS", - "COMMITTED_CPUS", - "COMMITTED_E2_CPUS", - "COMMITTED_LICENSES", - "COMMITTED_LOCAL_SSD_TOTAL_GB", - "COMMITTED_M3_CPUS", - "COMMITTED_MEMORY_OPTIMIZED_CPUS", - "COMMITTED_N2A_CPUS", - "COMMITTED_N2D_CPUS", - "COMMITTED_N2_CPUS", - "COMMITTED_NVIDIA_A100_80GB_GPUS", - "COMMITTED_NVIDIA_A100_GPUS", - "COMMITTED_NVIDIA_H100_GPUS", - "COMMITTED_NVIDIA_K80_GPUS", - "COMMITTED_NVIDIA_L4_GPUS", - "COMMITTED_NVIDIA_P100_GPUS", - "COMMITTED_NVIDIA_P4_GPUS", - "COMMITTED_NVIDIA_T4_GPUS", - "COMMITTED_NVIDIA_V100_GPUS", - "COMMITTED_T2A_CPUS", - "COMMITTED_T2D_CPUS", - "COMMITTED_Z3_CPUS", - "CPUS", - "CPUS_ALL_REGIONS", - "DISKS_TOTAL_GB", - "E2_CPUS", - "EXTERNAL_MANAGED_FORWARDING_RULES", - "EXTERNAL_NETWORK_LB_FORWARDING_RULES", - "EXTERNAL_PROTOCOL_FORWARDING_RULES", - "EXTERNAL_VPN_GATEWAYS", - "FIREWALLS", - "FORWARDING_RULES", - "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", - "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", - "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", - "GLOBAL_INTERNAL_ADDRESSES", - "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", - "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", - "GPUS_ALL_REGIONS", - "HEALTH_CHECKS", - "IMAGES", - "INSTANCES", - "INSTANCE_GROUPS", - "INSTANCE_GROUP_MANAGERS", - "INSTANCE_TEMPLATES", - "INTERCONNECTS", - "INTERCONNECT_ATTACHMENTS_PER_REGION", - "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS", - "INTERCONNECT_TOTAL_GBPS", - "INTERNAL_ADDRESSES", - "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES", - "IN_PLACE_SNAPSHOTS", - "IN_USE_ADDRESSES", - "IN_USE_BACKUP_SCHEDULES", - "IN_USE_SNAPSHOT_SCHEDULES", - "LOCAL_SSD_TOTAL_GB", - "M1_CPUS", - "M2_CPUS", - "M3_CPUS", - "MACHINE_IMAGES", - "N2A_CPUS", - "N2D_CPUS", - "N2_CPUS", - "NETWORKS", - "NETWORK_ATTACHMENTS", - "NETWORK_ENDPOINT_GROUPS", - "NETWORK_FIREWALL_POLICIES", - "NET_LB_SECURITY_POLICIES_PER_REGION", - "NET_LB_SECURITY_POLICY_RULES_PER_REGION", - "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", - "NODE_GROUPS", - "NODE_TEMPLATES", - "NVIDIA_A100_80GB_GPUS", - "NVIDIA_A100_GPUS", - "NVIDIA_K80_GPUS", - "NVIDIA_L4_GPUS", - "NVIDIA_P100_GPUS", - "NVIDIA_P100_VWS_GPUS", - "NVIDIA_P4_GPUS", - "NVIDIA_P4_VWS_GPUS", - "NVIDIA_T4_GPUS", - "NVIDIA_T4_VWS_GPUS", - "NVIDIA_V100_GPUS", - "PACKET_MIRRORINGS", - "PD_EXTREME_TOTAL_PROVISIONED_IOPS", - "PREEMPTIBLE_CPUS", - "PREEMPTIBLE_LOCAL_SSD_GB", - "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", - "PREEMPTIBLE_NVIDIA_A100_GPUS", - "PREEMPTIBLE_NVIDIA_H100_GPUS", - "PREEMPTIBLE_NVIDIA_K80_GPUS", - "PREEMPTIBLE_NVIDIA_L4_GPUS", - "PREEMPTIBLE_NVIDIA_P100_GPUS", - "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", - "PREEMPTIBLE_NVIDIA_P4_GPUS", - "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS", - "PREEMPTIBLE_NVIDIA_T4_GPUS", - "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", - "PREEMPTIBLE_NVIDIA_V100_GPUS", - "PREEMPTIBLE_TPU_LITE_DEVICE_V5", - "PREEMPTIBLE_TPU_LITE_PODSLICE_V5", - "PREEMPTIBLE_TPU_PODSLICE_V4", - "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", - "PSC_INTERNAL_LB_FORWARDING_RULES", - "PUBLIC_ADVERTISED_PREFIXES", - "PUBLIC_DELEGATED_PREFIXES", - "REGIONAL_AUTOSCALERS", - "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", - "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", - "REGIONAL_INSTANCE_GROUP_MANAGERS", - "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", - "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", - "RESERVATIONS", - "RESOURCE_POLICIES", - "ROUTERS", - "ROUTES", - "SECURITY_POLICIES", - "SECURITY_POLICIES_PER_REGION", - "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", - "SECURITY_POLICY_CEVAL_RULES", - "SECURITY_POLICY_RULES", - "SECURITY_POLICY_RULES_PER_REGION", - "SERVICE_ATTACHMENTS", - "SNAPSHOTS", - "SSD_TOTAL_GB", - "SSL_CERTIFICATES", - "STATIC_ADDRESSES", - "STATIC_BYOIP_ADDRESSES", - "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", - "SUBNETWORKS", - "T2A_CPUS", - "T2D_CPUS", - "TARGET_HTTPS_PROXIES", - "TARGET_HTTP_PROXIES", - "TARGET_INSTANCES", - "TARGET_POOLS", - "TARGET_SSL_PROXIES", - "TARGET_TCP_PROXIES", - "TARGET_VPN_GATEWAYS", - "TPU_LITE_DEVICE_V5", - "TPU_LITE_PODSLICE_V5", - "TPU_PODSLICE_V4", - "URL_MAPS", - "VPN_GATEWAYS", - "VPN_TUNNELS", - "XPN_SERVICE_PROJECTS" - ] + "description": "Deletes the specified PacketMirroring resource." }, - "limit": { - "description": "[Output Only] Quota limit for this metric.", - "type": "number", - "format": "double" + "list": { + "id": "compute.packetMirrorings.list", + "path": "projects/{project}/regions/{region}/packetMirrorings", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "PacketMirroringList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of PacketMirroring resources available to the specified project and region." }, - "usage": { - "description": "[Output Only] Current usage of this metric.", - "type": "number", - "format": "double" + "aggregatedList": { + "id": "compute.packetMirrorings.aggregatedList", + "path": "projects/{project}/aggregated/packetMirrorings", + "flatPath": "projects/{project}/aggregated/packetMirrorings", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "PacketMirroringAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of packetMirrorings. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "owner": { - "description": "[Output Only] Owning resource. This is the resource on which this quota is applied.", - "type": "string" + "testIamPermissions": { + "id": "compute.packetMirrorings.testIamPermissions", + "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." } } }, - "UsageExportLocation": { - "id": "UsageExportLocation", - "description": "The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.", - "type": "object", - "properties": { - "bucketName": { - "description": "The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.", - "type": "string" + "projects": { + "methods": { + "get": { + "id": "compute.projects.get", + "path": "projects/{project}", + "flatPath": "projects/{project}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Project resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request." }, - "reportNamePrefix": { - "description": "An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage_gce. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.", - "type": "string" - } - } - }, - "InstanceMoveRequest": { - "id": "InstanceMoveRequest", - "type": "object", - "properties": { - "targetInstance": { - "description": "The URL of the target instance to move. This can be a full or partial URL. For example, the following are all valid URLs to an instance: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance - zones/zone/instances/instance ", - "type": "string" + "setCommonInstanceMetadata": { + "id": "compute.projects.setCommonInstanceMetadata", + "path": "projects/{project}/setCommonInstanceMetadata", + "flatPath": "projects/{project}/setCommonInstanceMetadata", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Metadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets metadata common to all instances within the specified project using the data included in the request." }, - "destinationZone": { - "description": "The URL of the destination zone to move the instance. This can be a full or partial URL. For example, the following are all valid URLs to a zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/zones/zone - zones/zone ", - "type": "string" - } - } - }, - "DiskMoveRequest": { - "id": "DiskMoveRequest", - "type": "object", - "properties": { - "targetDisk": { - "description": "The URL of the target disk to move. This can be a full or partial URL. For example, the following are all valid URLs to a disk: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", - "type": "string" + "setUsageExportBucket": { + "id": "compute.projects.setUsageExportBucket", + "path": "projects/{project}/setUsageExportBucket", + "flatPath": "projects/{project}/setUsageExportBucket", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "UsageExportLocation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "description": "Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled." }, - "destinationZone": { - "description": "The URL of the destination zone to move the disk. This can be a full or partial URL. For example, the following are all valid URLs to a zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/zones/zone - zones/zone ", - "type": "string" - } - } - }, - "ProjectsListXpnHostsRequest": { - "id": "ProjectsListXpnHostsRequest", - "type": "object", - "properties": { - "organization": { - "description": "Optional organization ID managed by Cloud Resource Manager, for which to list shared VPC host projects. If not specified, the organization will be inferred from the project.", - "type": "string" - } - } - }, - "XpnHostList": { - "id": "XpnHostList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#xpnHostList for lists of shared VPC hosts.", - "default": "compute#xpnHostList", - "type": "string" + "moveInstance": { + "id": "compute.projects.moveInstance", + "path": "projects/{project}/moveInstance", + "flatPath": "projects/{project}/moveInstance", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "InstanceMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "deprecated": true, + "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method is deprecated. See [moving instance across zones](/compute/docs/instances/moving-instance-across-zones) instead." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "moveDisk": { + "id": "compute.projects.moveDisk", + "path": "projects/{project}/moveDisk", + "flatPath": "projects/{project}/moveDisk", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "DiskMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Moves a persistent disk from one zone to another." + }, + "listXpnHosts": { + "id": "compute.projects.listXpnHosts", + "path": "projects/{project}/listXpnHosts", + "flatPath": "projects/{project}/listXpnHosts", + "httpMethod": "POST", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ProjectsListXpnHostsRequest" + }, + "response": { + "$ref": "XpnHostList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Lists all shared VPC host projects visible to the user in an organization." + }, + "enableXpnHost": { + "id": "compute.projects.enableXpnHost", + "path": "projects/{project}/enableXpnHost", + "flatPath": "projects/{project}/enableXpnHost", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Enable this project as a shared VPC host project." + }, + "disableXpnHost": { + "id": "compute.projects.disableXpnHost", + "path": "projects/{project}/disableXpnHost", + "flatPath": "projects/{project}/disableXpnHost", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Disable this project as a shared VPC host project." + }, + "enableXpnResource": { + "id": "compute.projects.enableXpnResource", + "path": "projects/{project}/enableXpnResource", + "flatPath": "projects/{project}/enableXpnResource", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ProjectsEnableXpnResourceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Enable service resource (a.k.a service project) for a host project, so that subnets in the host project can be used by instances in the service project." + }, + "disableXpnResource": { + "id": "compute.projects.disableXpnResource", + "path": "projects/{project}/disableXpnResource", + "flatPath": "projects/{project}/disableXpnResource", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ProjectsDisableXpnResourceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Disable a service resource (also known as service project) associated with this host project." }, - "items": { - "description": "[Output Only] A list of shared VPC host project URLs.", - "type": "array", - "items": { + "getXpnHost": { + "id": "compute.projects.getXpnHost", + "path": "projects/{project}/getXpnHost", + "flatPath": "projects/{project}/getXpnHost", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "response": { "$ref": "Project" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getXpnResources": { + "id": "compute.projects.getXpnResources", + "path": "projects/{project}/getXpnResources", + "flatPath": "projects/{project}/getXpnResources", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "ProjectsEnableXpnResourceRequest": { - "id": "ProjectsEnableXpnResourceRequest", - "type": "object", - "properties": { - "xpnResource": { - "description": "Service resource (a.k.a service project) ID.", - "$ref": "XpnResourceId" - } - } - }, - "XpnResourceId": { - "id": "XpnResourceId", - "description": "Service resource (a.k.a service project) ID.", - "type": "object", - "properties": { - "type": { - "description": "The type of the service resource.", - "type": "string", - "enumDescriptions": [ - "", - "" + }, + "parameterOrder": [ + "project" ], - "enum": [ - "PROJECT", - "XPN_RESOURCE_TYPE_UNSPECIFIED" - ] - }, - "id": { - "description": "The ID of the service resource. In the case of projects, this field supports project id (e.g., my-project-123) and project number (e.g. 12345678).", - "type": "string" - } - } - }, - "ProjectsDisableXpnResourceRequest": { - "id": "ProjectsDisableXpnResourceRequest", - "type": "object", - "properties": { - "xpnResource": { - "description": "Service resource (a.k.a service project) ID.", - "$ref": "XpnResourceId" - } - } - }, - "ProjectsGetXpnResources": { - "id": "ProjectsGetXpnResources", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of service resources (a.k.a service projects)", - "default": "compute#projectsGetXpnResources", - "type": "string" + "response": { + "$ref": "ProjectsGetXpnResources" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Gets service resources (a.k.a service project) associated with this host project." }, - "resources": { - "description": "Service resources (a.k.a service projects) attached to this project as their shared VPC host.", - "type": "array", - "items": { - "$ref": "XpnResourceId" - } + "setDefaultNetworkTier": { + "id": "compute.projects.setDefaultNetworkTier", + "path": "projects/{project}/setDefaultNetworkTier", + "flatPath": "projects/{project}/setDefaultNetworkTier", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ProjectsSetDefaultNetworkTierRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the default network tier of the project. The default network tier is used when an address/forwardingRule/instance is created without specifying the network tier field." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - } - } - }, - "ProjectsSetDefaultNetworkTierRequest": { - "id": "ProjectsSetDefaultNetworkTierRequest", - "type": "object", - "properties": { - "networkTier": { - "description": "Default network tier to be set.", - "type": "string", - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + "setCloudArmorTier": { + "id": "compute.projects.setCloudArmorTier", + "path": "projects/{project}/setCloudArmorTier", + "flatPath": "projects/{project}/setCloudArmorTier", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ] + "request": { + "$ref": "ProjectsSetCloudArmorTierRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the billing account of the project must be subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more information." } } }, - "PublicAdvertisedPrefixList": { - "id": "PublicAdvertisedPrefixList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", - "default": "compute#publicAdvertisedPrefixList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of PublicAdvertisedPrefix resources.", - "type": "array", - "items": { - "$ref": "PublicAdvertisedPrefix" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "publicAdvertisedPrefixes": { + "methods": { + "list": { + "id": "compute.publicAdvertisedPrefixes.list", + "path": "projects/{project}/global/publicAdvertisedPrefixes", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "PublicAdvertisedPrefixList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the PublicAdvertisedPrefixes for a project." + }, + "get": { + "id": "compute.publicAdvertisedPrefixes.get", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "PublicAdvertisedPrefix": { - "id": "PublicAdvertisedPrefix", - "description": "A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", - "default": "compute#publicAdvertisedPrefix", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.publicAdvertisedPrefixes.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "ipCidrRange": { - "description": "The address range, in CIDR format, represented by this public advertised prefix.", - "type": "string" - }, - "dnsVerificationIp": { - "description": "The address to be used for reverse DNS verification.", - "type": "string" - }, - "sharedSecret": { - "description": "[Output Only] The shared secret to be used for reverse DNS verification.", - "type": "string" - }, - "status": { - "description": "The status of the public advertised prefix. Possible values include: - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. ", - "type": "string", - "enumDescriptions": [ - "The prefix is announced to Internet.", - "RPKI validation is complete.", - "The prefix is fully configured.", - "The prefix is being configured.", - "The prefix is being removed.", - "User has configured the PTR.", - "The prefix is currently withdrawn but ready to be announced.", - "Reverse DNS lookup failed.", - "Reverse DNS lookup is successful." + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" ], - "enum": [ - "ANNOUNCED_TO_INTERNET", - "INITIAL", - "PREFIX_CONFIGURATION_COMPLETE", - "PREFIX_CONFIGURATION_IN_PROGRESS", - "PREFIX_REMOVAL_IN_PROGRESS", - "PTR_CONFIGURED", - "READY_TO_ANNOUNCE", - "REVERSE_DNS_LOOKUP_FAILED", - "VALIDATED" - ] - }, - "pdpScope": { - "description": "Specifies how child public delegated prefix will be scoped. It could be one of following values: - `REGIONAL`: The public delegated prefix is regional only. The provisioning will take a few minutes. - `GLOBAL`: The public delegated prefix is global only. The provisioning will take ~4 weeks. - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2. ", - "type": "string", - "enumDescriptions": [ - "The public delegated prefix is global only. The provisioning will take ~4 weeks.", - "The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2.", - "The public delegated prefix is regional only. The provisioning will take a few minutes." + "response": { + "$ref": "PublicAdvertisedPrefix" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "GLOBAL", - "GLOBAL_AND_REGIONAL", - "REGIONAL" - ] - }, - "publicDelegatedPrefixs": { - "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", - "type": "array", - "items": { - "$ref": "PublicAdvertisedPrefixPublicDelegatedPrefix" - } - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicAdvertisedPrefix. An up-to-date fingerprint must be provided in order to update the PublicAdvertisedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicAdvertisedPrefix.", - "type": "string", - "format": "byte" + "description": "Returns the specified PublicAdvertisedPrefix resource." }, - "byoipApiVersion": { - "description": "[Output Only] The version of BYOIP API.", - "type": "string", - "enumDescriptions": [ - "This public advertised prefix can be used to create both regional and global public delegated prefixes. It usually takes 4 weeks to create or delete a public delegated prefix. The BGP status cannot be changed.", - "This public advertised prefix can only be used to create regional public delegated prefixes. Public delegated prefix creation and deletion takes minutes and the BGP status can be modified." + "insert": { + "id": "compute.publicAdvertisedPrefixes.insert", + "path": "projects/{project}/global/publicAdvertisedPrefixes", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "V1", - "V2" - ] - } - } - }, - "PublicAdvertisedPrefixPublicDelegatedPrefix": { - "id": "PublicAdvertisedPrefixPublicDelegatedPrefix", - "description": "Represents a CIDR range which can be used to assign addresses.", - "type": "object", - "properties": { - "name": { - "description": "The name of the public delegated prefix", - "type": "string" + "request": { + "$ref": "PublicAdvertisedPrefix" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request." }, - "region": { - "description": "The region of the public delegated prefix if it is regional. If absent, the prefix is global.", - "type": "string" + "delete": { + "id": "compute.publicAdvertisedPrefixes.delete", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified PublicAdvertisedPrefix" }, - "project": { - "description": "The project number of the public delegated prefix", - "type": "string" + "patch": { + "id": "compute.publicAdvertisedPrefixes.patch", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "request": { + "$ref": "PublicAdvertisedPrefix" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "status": { - "description": "The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active.", - "type": "string" + "announce": { + "id": "compute.publicAdvertisedPrefixes.announce", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Announces the specified PublicAdvertisedPrefix" }, - "ipRange": { - "description": "The IP address range of the public delegated prefix", - "type": "string" + "withdraw": { + "id": "compute.publicAdvertisedPrefixes.withdraw", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Withdraws the specified PublicAdvertisedPrefix" } } }, - "PublicDelegatedPrefixList": { - "id": "PublicDelegatedPrefixList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixList for public delegated prefixes.", - "default": "compute#publicDelegatedPrefixList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of PublicDelegatedPrefix resources.", - "type": "array", - "items": { - "$ref": "PublicDelegatedPrefix" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "globalPublicDelegatedPrefixes": { + "methods": { + "list": { + "id": "compute.globalPublicDelegatedPrefixes.list", + "path": "projects/{project}/global/publicDelegatedPrefixes", + "flatPath": "projects/{project}/global/publicDelegatedPrefixes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "PublicDelegatedPrefix": { - "id": "PublicDelegatedPrefix", - "description": "A PublicDelegatedPrefix resource represents an IP block within a PublicAdvertisedPrefix that is configured within a single cloud scope (global or region). IPs in the block can be allocated to resources within that scope. Public delegated prefixes may be further broken up into smaller IP blocks in the same scope as the parent block.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes.", - "default": "compute#publicDelegatedPrefix", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.publicDelegatedPrefixes.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the public delegated prefix resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "ipCidrRange": { - "description": "The IP address range, in CIDR format, represented by this public delegated prefix.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the public delegated prefix, which can be one of following values: - `INITIALIZING` The public delegated prefix is being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public delegated prefix is being deprovsioned. ", - "type": "string", - "enumDescriptions": [ - "The public delegated prefix is active.", - "The prefix is announced within Google network.", - "The prefix is announced to Internet and within Google.", - "The public delegated prefix is being deprovsioned.", - "The public delegated prefix is being initialized and addresses cannot be created yet.", - "The public delegated prefix is currently withdrawn but ready to be announced." + "parameterOrder": [ + "project" ], - "enum": [ - "ANNOUNCED", - "ANNOUNCED_TO_GOOGLE", - "ANNOUNCED_TO_INTERNET", - "DELETING", - "INITIALIZING", - "READY_TO_ANNOUNCE" - ] - }, - "parentPrefix": { - "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or PublicDelegatedPrefix.", - "type": "string" - }, - "publicDelegatedSubPrefixs": { - "description": "The list of sub public delegated prefixes that exist for this public delegated prefix.", - "type": "array", - "items": { - "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix" - } - }, - "isLiveMigration": { - "description": "If true, the prefix will be live migrated.", - "type": "boolean" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicDelegatedPrefix. An up-to-date fingerprint must be provided in order to update the PublicDelegatedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicDelegatedPrefix.", - "type": "string", - "format": "byte" - }, - "byoipApiVersion": { - "description": "[Output Only] The version of BYOIP API.", - "type": "string", - "enumDescriptions": [ - "This public delegated prefix usually takes 4 weeks to delete, and the BGP status cannot be changed. Announce and Withdraw APIs can not be used on this prefix.", - "This public delegated prefix takes minutes to delete. Announce and Withdraw APIs can be used on this prefix to change the BGP status." + "response": { + "$ref": "PublicDelegatedPrefixList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "V1", - "V2" - ] - } - } - }, - "PublicDelegatedPrefixPublicDelegatedSubPrefix": { - "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", - "description": "Represents a sub PublicDelegatedPrefix.", - "type": "object", - "properties": { - "name": { - "description": "The name of the sub public delegated prefix.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global.", - "type": "string" + "description": "Lists the global PublicDelegatedPrefixes for a project." }, - "status": { - "description": "[Output Only] The status of the sub public delegated prefix.", - "type": "string", - "enumDescriptions": [ - "", - "" + "get": { + "id": "compute.globalPublicDelegatedPrefixes.get", + "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicDelegatedPrefix" ], - "enum": [ - "ACTIVE", - "INACTIVE" - ] + "response": { + "$ref": "PublicDelegatedPrefix" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified global PublicDelegatedPrefix resource." }, - "ipCidrRange": { - "description": "The IP address range, in CIDR format, represented by this sub public delegated prefix.", - "type": "string" + "insert": { + "id": "compute.globalPublicDelegatedPrefixes.insert", + "path": "projects/{project}/global/publicDelegatedPrefixes", + "flatPath": "projects/{project}/global/publicDelegatedPrefixes", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request." }, - "delegateeProject": { - "description": "Name of the project scoping this PublicDelegatedSubPrefix.", - "type": "string" + "delete": { + "id": "compute.globalPublicDelegatedPrefixes.delete", + "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicDelegatedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified global PublicDelegatedPrefix." }, - "isAddress": { - "description": "Whether the sub prefix is delegated to create Address resources in the delegatee project.", - "type": "boolean" + "patch": { + "id": "compute.globalPublicDelegatedPrefixes.patch", + "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "publicDelegatedPrefix" + ], + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." } } }, - "PublicDelegatedPrefixAggregatedList": { - "id": "PublicDelegatedPrefixAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixAggregatedList for aggregated lists of public delegated prefixes.", - "default": "compute#publicDelegatedPrefixAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of PublicDelegatedPrefixesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of PublicDelegatedPrefixes.", - "$ref": "PublicDelegatedPrefixesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "publicDelegatedPrefixes": { + "methods": { + "list": { + "id": "compute.publicDelegatedPrefixes.list", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "PublicDelegatedPrefixList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the PublicDelegatedPrefixes for a project in the given region." + }, + "get": { + "id": "compute.publicDelegatedPrefixes.get", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PublicDelegatedPrefixesScopedList": { - "id": "PublicDelegatedPrefixesScopedList", - "type": "object", - "properties": { - "publicDelegatedPrefixes": { - "description": "[Output Only] A list of PublicDelegatedPrefixes contained in this scope.", - "type": "array", - "items": { + }, + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "response": { "$ref": "PublicDelegatedPrefix" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified PublicDelegatedPrefix resource in the given region." }, - "warning": { - "description": "[Output Only] Informational warning which replaces the list of public delegated prefixes when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.publicDelegatedPrefixes.insert", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "RegionList": { - "id": "RegionList", - "description": "Contains a list of region resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#regionList for lists of regions.", - "default": "compute#regionList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request." }, - "items": { - "description": "A list of Region resources.", - "type": "array", - "items": { - "$ref": "Region" - } + "delete": { + "id": "compute.publicDelegatedPrefixes.delete", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified PublicDelegatedPrefix in the given region." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "patch": { + "id": "compute.publicDelegatedPrefixes.patch", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "request": { + "$ref": "PublicDelegatedPrefix" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "announce": { + "id": "compute.publicDelegatedPrefixes.announce", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Announces the specified PublicDelegatedPrefix in the given region." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "withdraw": { + "id": "compute.publicDelegatedPrefixes.withdraw", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "publicDelegatedPrefix" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Withdraws the specified PublicDelegatedPrefix in the given region." + }, + "aggregatedList": { + "id": "compute.publicDelegatedPrefixes.aggregatedList", + "path": "projects/{project}/aggregated/publicDelegatedPrefixes", + "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "PublicDelegatedPrefixAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "Region": { - "id": "Region", - "description": "Represents a Region resource. A region is a geographical area where a resource is located. For more information, read Regions and Zones.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#region for regions.", - "default": "compute#region", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "description": { - "description": "[Output Only] Textual description of the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] Status of the region, either UP or DOWN.", - "type": "string", - "enumDescriptions": [ - "", - "" + "regions": { + "methods": { + "list": { + "id": "compute.regions.list", + "path": "projects/{project}/regions", + "flatPath": "projects/{project}/regions", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "DOWN", - "UP" - ] - }, - "zones": { - "description": "[Output Only] A list of zones available in this region, in the form of resource URLs.", - "type": "array", - "items": { - "type": "string" - } - }, - "quotas": { - "description": "[Output Only] Quotas assigned to this region.", - "type": "array", - "items": { - "$ref": "Quota" - } - }, - "deprecated": { - "description": "[Output Only] The deprecation status associated with this region.", - "$ref": "DeprecationStatus" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "response": { + "$ref": "RegionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of region resources available to the specified project. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `items.quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request." }, - "supportsPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "get": { + "id": "compute.regions.get", + "path": "projects/{project}/regions/{region}", + "flatPath": "projects/{project}/regions/{region}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "Region" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request." } } }, - "ResourcePolicyList": { - "id": "ResourcePolicyList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource.Always compute#resourcePoliciesList for listsof resourcePolicies", - "default": "compute#resourcePolicyList", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "items": { - "description": "[Output Only] A list of ResourcePolicy resources.", - "type": "array", - "items": { - "$ref": "ResourcePolicy" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "resourcePolicies": { + "methods": { + "list": { + "id": "compute.resourcePolicies.list", + "path": "projects/{project}/regions/{region}/resourcePolicies", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "ResourcePolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "A list all the resource policies that have been configured for the specified project in specified region." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "aggregatedList": { + "id": "compute.resourcePolicies.aggregatedList", + "path": "projects/{project}/aggregated/resourcePolicies", + "flatPath": "projects/{project}/aggregated/resourcePolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ResourcePolicyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of resource policies. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." + }, + "get": { + "id": "compute.resourcePolicies.get", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resourcePolicy": { + "description": "Name of the resource policy to retrieve.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "etag": { - "type": "string" - } - } - }, - "ResourcePolicy": { - "id": "ResourcePolicy", - "description": "Represents a Resource Policy resource. You can use resource policies to schedule actions for some Compute Engine resources. For example, you can use them to schedule persistent disk snapshots.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#resource_policies for resource policies.", - "default": "compute#resourcePolicy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "region": { - "type": "string" - }, - "description": { - "type": "string" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.instances.insert" - ] }, - "type": "string" - }, - "snapshotSchedulePolicy": { - "description": "Resource policy for persistent disks for creating snapshots.", - "$ref": "ResourcePolicySnapshotSchedulePolicy" - }, - "groupPlacementPolicy": { - "description": "Resource policy for instances for placement configuration.", - "$ref": "ResourcePolicyGroupPlacementPolicy" - }, - "instanceSchedulePolicy": { - "description": "Resource policy for scheduling instance operations.", - "$ref": "ResourcePolicyInstanceSchedulePolicy" - }, - "diskConsistencyGroupPolicy": { - "description": "Resource policy for disk consistency groups.", - "$ref": "ResourcePolicyDiskConsistencyGroupPolicy" - }, - "status": { - "description": "[Output Only] The status of resource policy creation.", - "type": "string", - "enumDescriptions": [ - "Resource policy is being created.", - "Resource policy is being deleted.", - "Resource policy is expired and will not run again.", - "", - "Resource policy is ready to be used." + "parameterOrder": [ + "project", + "region", + "resourcePolicy" ], - "enum": [ - "CREATING", - "DELETING", - "EXPIRED", - "INVALID", - "READY" - ] - }, - "resourceStatus": { - "description": "[Output Only] The system status of the resource policy.", - "$ref": "ResourcePolicyResourceStatus" - } - } - }, - "ResourcePolicySnapshotSchedulePolicy": { - "id": "ResourcePolicySnapshotSchedulePolicy", - "description": "A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained.", - "type": "object", - "properties": { - "schedule": { - "description": "A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy.", - "$ref": "ResourcePolicySnapshotSchedulePolicySchedule" - }, - "retentionPolicy": { - "description": "Retention policy applied to snapshots created by this resource policy.", - "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy" - }, - "snapshotProperties": { - "description": "Properties with which snapshots are created such as labels, encryption keys.", - "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties" - } - } - }, - "ResourcePolicySnapshotSchedulePolicySchedule": { - "id": "ResourcePolicySnapshotSchedulePolicySchedule", - "description": "A schedule for disks where the schedueled operations are performed.", - "type": "object", - "properties": { - "hourlySchedule": { - "$ref": "ResourcePolicyHourlyCycle" + "response": { + "$ref": "ResourcePolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves all information of the specified resource policy." }, - "dailySchedule": { - "$ref": "ResourcePolicyDailyCycle" + "insert": { + "id": "compute.resourcePolicies.insert", + "path": "projects/{project}/regions/{region}/resourcePolicies", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "ResourcePolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new resource policy." }, - "weeklySchedule": { - "$ref": "ResourcePolicyWeeklyCycle" - } - } - }, - "ResourcePolicyHourlyCycle": { - "id": "ResourcePolicyHourlyCycle", - "description": "Time window specified for hourly operations.", - "type": "object", - "properties": { - "hoursInCycle": { - "description": "Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle.", - "type": "integer", - "format": "int32" + "delete": { + "id": "compute.resourcePolicies.delete", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resourcePolicy": { + "description": "Name of the resource policy to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resourcePolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified resource policy." }, - "startTime": { - "description": "Time within the window to start the operations. It must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", - "type": "string" + "patch": { + "id": "compute.resourcePolicies.patch", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resourcePolicy": { + "description": "Id of the resource policy to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + } + }, + "parameterOrder": [ + "project", + "region", + "resourcePolicy" + ], + "request": { + "$ref": "ResourcePolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Modify the specified resource policy." }, - "duration": { - "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", - "type": "string" - } - } - }, - "ResourcePolicyDailyCycle": { - "id": "ResourcePolicyDailyCycle", - "description": "Time window specified for daily operations.", - "type": "object", - "properties": { - "daysInCycle": { - "description": "Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle.", - "type": "integer", - "format": "int32" + "getIamPolicy": { + "id": "compute.resourcePolicies.getIamPolicy", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "startTime": { - "description": "Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.", - "type": "string" + "setIamPolicy": { + "id": "compute.resourcePolicies.setIamPolicy", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "duration": { - "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", - "type": "string" - } - } - }, - "ResourcePolicyWeeklyCycle": { - "id": "ResourcePolicyWeeklyCycle", - "description": "Time window specified for weekly operations.", - "type": "object", - "properties": { - "dayOfWeeks": { - "description": "Up to 7 intervals/windows, one for each day of the week.", - "type": "array", - "items": { - "$ref": "ResourcePolicyWeeklyCycleDayOfWeek" - } - } - } - }, - "ResourcePolicyWeeklyCycleDayOfWeek": { - "id": "ResourcePolicyWeeklyCycleDayOfWeek", - "type": "object", - "properties": { - "day": { - "description": "Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" + "testIamPermissions": { + "id": "compute.resourcePolicies.testIamPermissions", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "FRIDAY", - "INVALID", - "MONDAY", - "SATURDAY", - "SUNDAY", - "THURSDAY", - "TUESDAY", - "WEDNESDAY" - ] - }, - "startTime": { - "description": "Time within the window to start the operations. It must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", - "type": "string" - }, - "duration": { - "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", - "type": "string" + "description": "Returns permissions that a caller has on the specified resource." } } }, - "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": { - "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", - "description": "Policy for retention of scheduled snapshots.", - "type": "object", - "properties": { - "maxRetentionDays": { - "description": "Maximum age of the snapshot that is allowed to be kept.", - "type": "integer", - "format": "int32" + "routes": { + "methods": { + "list": { + "id": "compute.routes.list", + "path": "projects/{project}/global/routes", + "flatPath": "projects/{project}/global/routes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "RouteList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of Route resources available to the specified project." }, - "onSourceDiskDelete": { - "description": "Specifies the behavior to apply to scheduled snapshots when the source disk is deleted.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "get": { + "id": "compute.routes.get", + "path": "projects/{project}/global/routes/{route}", + "flatPath": "projects/{project}/global/routes/{route}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "route": { + "description": "Name of the Route resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "route" ], - "enum": [ - "APPLY_RETENTION_POLICY", - "KEEP_AUTO_SNAPSHOTS", - "UNSPECIFIED_ON_SOURCE_DISK_DELETE" - ] + "response": { + "$ref": "Route" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Route resource." + }, + "insert": { + "id": "compute.routes.insert", + "path": "projects/{project}/global/routes", + "flatPath": "projects/{project}/global/routes", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Route" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a Route resource in the specified project using the data included in the request." + }, + "delete": { + "id": "compute.routes.delete", + "path": "projects/{project}/global/routes/{route}", + "flatPath": "projects/{project}/global/routes/{route}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "route": { + "description": "Name of the Route resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "route" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Route resource." } } }, - "ResourcePolicySnapshotSchedulePolicySnapshotProperties": { - "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", - "description": "Specified snapshot properties for scheduled snapshots created by this policy.", - "type": "object", - "properties": { - "labels": { - "description": "Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "routers": { + "methods": { + "get": { + "id": "compute.routers.get", + "path": "projects/{project}/regions/{region}/routers/{router}", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "router": { + "description": "Name of the Router resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "response": { + "$ref": "Router" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Router resource." }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional).", - "type": "array", - "items": { - "type": "string" - } + "insert": { + "id": "compute.routers.insert", + "path": "projects/{project}/regions/{region}/routers", + "flatPath": "projects/{project}/regions/{region}/routers", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Router" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a Router resource in the specified project and region using the data included in the request." }, - "guestFlush": { - "description": "Indication to perform a 'guest aware' snapshot.", - "type": "boolean" + "update": { + "id": "compute.routers.update", + "path": "projects/{project}/regions/{region}/routers/{router}", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "httpMethod": "PUT", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "router": { + "description": "Name of the Router resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "request": { + "$ref": "Router" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified Router resource with the data included in the request. This method conforms to PUT semantics, which requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload." }, - "chainName": { - "description": "Chain name that the snapshot is created in.", - "type": "string" - } - } - }, - "ResourcePolicyGroupPlacementPolicy": { - "id": "ResourcePolicyGroupPlacementPolicy", - "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", - "type": "object", - "properties": { - "vmCount": { - "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", - "type": "integer", - "format": "int32" + "patch": { + "id": "compute.routers.patch", + "path": "projects/{project}/regions/{region}/routers/{router}", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "router": { + "description": "Name of the Router resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "request": { + "$ref": "Router" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "availabilityDomainCount": { - "description": "The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network.", - "type": "integer", - "format": "int32" + "delete": { + "id": "compute.routers.delete", + "path": "projects/{project}/regions/{region}/routers/{router}", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "router": { + "description": "Name of the Router resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified Router resource." }, - "collocation": { - "description": "Specifies network collocation", - "type": "string", - "enumDescriptions": [ - "", - "" + "list": { + "id": "compute.routers.list", + "path": "projects/{project}/regions/{region}/routers", + "flatPath": "projects/{project}/regions/{region}/routers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "COLLOCATED", - "UNSPECIFIED_COLLOCATION" - ] - } - } - }, - "ResourcePolicyInstanceSchedulePolicy": { - "id": "ResourcePolicyInstanceSchedulePolicy", - "description": "An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance.", - "type": "object", - "properties": { - "vmStartSchedule": { - "description": "Specifies the schedule for starting instances.", - "$ref": "ResourcePolicyInstanceSchedulePolicySchedule" + "response": { + "$ref": "RouterList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of Router resources available to the specified project." }, - "vmStopSchedule": { - "description": "Specifies the schedule for stopping instances.", - "$ref": "ResourcePolicyInstanceSchedulePolicySchedule" + "aggregatedList": { + "id": "compute.routers.aggregatedList", + "path": "projects/{project}/aggregated/routers", + "flatPath": "projects/{project}/aggregated/routers", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "RouterAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of routers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "timeZone": { - "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database.", - "type": "string" + "getRouterStatus": { + "id": "compute.routers.getRouterStatus", + "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "router": { + "description": "Name of the Router resource to query.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "response": { + "$ref": "RouterStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves runtime information of the specified router." }, - "startTime": { - "description": "The start time of the schedule. The timestamp is an RFC3339 string.", - "type": "string" + "getNatMappingInfo": { + "id": "compute.routers.getNatMappingInfo", + "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "natName": { + "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "router": { + "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "response": { + "$ref": "VmEndpointNatMappingsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves runtime Nat mapping information of VM endpoints." }, - "expirationTime": { - "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.", - "type": "string" - } - } - }, - "ResourcePolicyInstanceSchedulePolicySchedule": { - "id": "ResourcePolicyInstanceSchedulePolicySchedule", - "description": "Schedule for an instance operation.", - "type": "object", - "properties": { - "schedule": { - "description": "Specifies the frequency for the operation, using the unix-cron format.", - "type": "string" - } - } - }, - "ResourcePolicyDiskConsistencyGroupPolicy": { - "id": "ResourcePolicyDiskConsistencyGroupPolicy", - "description": "Resource policy for disk consistency groups.", - "type": "object", - "properties": {} - }, - "ResourcePolicyResourceStatus": { - "id": "ResourcePolicyResourceStatus", - "description": "Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this \"status\" field should mimic the structure of ResourcePolicy proto specification.", - "type": "object", - "properties": { - "instanceSchedulePolicy": { - "description": "[Output Only] Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field.", - "$ref": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus" - } - } - }, - "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus": { - "id": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", - "type": "object", - "properties": { - "nextRunStartTime": { - "description": "[Output Only] The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string.", - "type": "string" + "getNatIpInfo": { + "id": "compute.routers.getNatIpInfo", + "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "httpMethod": "GET", + "parameters": { + "natName": { + "description": "Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "router": { + "description": "Name of the Router resource to query for Nat IP information. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "response": { + "$ref": "NatIpInfoResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves runtime NAT IP information." }, - "lastRunStartTime": { - "description": "[Output Only] The last time the schedule successfully ran. The timestamp is an RFC3339 string.", - "type": "string" + "preview": { + "id": "compute.routers.preview", + "path": "projects/{project}/regions/{region}/routers/{router}/preview", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "router": { + "description": "Name of the Router resource to query.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "router" + ], + "request": { + "$ref": "Router" + }, + "response": { + "$ref": "RoutersPreviewResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router." } } }, - "ResourcePolicyAggregatedList": { - "id": "ResourcePolicyAggregatedList", - "description": "Contains a list of resourcePolicies.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#resourcePolicyAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of ResourcePolicy resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of resourcePolicies.", - "$ref": "ResourcePoliciesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "serviceAttachments": { + "methods": { + "aggregatedList": { + "id": "compute.serviceAttachments.aggregatedList", + "path": "projects/{project}/aggregated/serviceAttachments", + "flatPath": "projects/{project}/aggregated/serviceAttachments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } - }, - "etag": { - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ResourcePoliciesScopedList": { - "id": "ResourcePoliciesScopedList", - "type": "object", - "properties": { - "resourcePolicies": { - "description": "A list of resourcePolicies contained in this scope.", - "type": "array", - "items": { - "$ref": "ResourcePolicy" - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ServiceAttachmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "warning": { - "description": "Informational warning which replaces the list of resourcePolicies when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "list": { + "id": "compute.serviceAttachments.list", + "path": "projects/{project}/regions/{region}/serviceAttachments", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "RouteList": { - "id": "RouteList", - "description": "Contains a list of Route resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#routeList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Route resources.", - "type": "array", - "items": { - "$ref": "Route" - } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "ServiceAttachmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the ServiceAttachments for a project in the given scope." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.serviceAttachments.get", + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "serviceAttachment": { + "description": "Name of the ServiceAttachment resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "response": { + "$ref": "ServiceAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified ServiceAttachment resource in the given scope." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.serviceAttachments.insert", + "path": "projects/{project}/regions/{region}/serviceAttachments", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "ServiceAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.serviceAttachments.delete", + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region of this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "serviceAttachment": { + "description": "Name of the ServiceAttachment resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified ServiceAttachment in the given scope" + }, + "patch": { + "id": "compute.serviceAttachments.patch", + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "The region scoping this request and should conform to RFC1035.", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "serviceAttachment": { + "description": "The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number.", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "Route": { - "id": "Route", - "description": "Represents a Route resource. A route defines a path from VM instances in the VPC network to a specific destination. This destination can be inside or outside the VPC network. For more information, read the Routes overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of this resource. Always compute#routes for Route resources.", - "default": "compute#route", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.routes.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "network": { - "description": "Fully-qualified URL of the network that this route applies to.", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "request": { + "$ref": "ServiceAttachment" }, - "type": "string" - }, - "tags": { - "description": "A list of instance tags to which this route applies.", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "response": { + "$ref": "Operation" }, - "type": "array", - "items": { - "type": "string" - } + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "destRange": { - "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952 compressed format.", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "getIamPolicy": { + "id": "compute.serviceAttachments.getIamPolicy", + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } }, - "type": "string" - }, - "priority": { - "description": "The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In cases where multiple routes have equal prefix length, the one with the lowest-numbered priority value wins. The default value is `1000`. The priority value must be from `0` to `65535`, inclusive.", - "annotations": { - "required": [ - "compute.routes.insert" - ] + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" }, - "type": "integer", - "format": "uint32" - }, - "nextHopInstance": { - "description": "The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/", - "type": "string" - }, - "nextHopIp": { - "description": "The network IP address of an instance that should handle matching packets. Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952 compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", - "type": "string" - }, - "nextHopNetwork": { - "description": "The URL of the local network if it should handle matching packets.", - "type": "string" - }, - "nextHopGateway": { - "description": "The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL: projects/ project/global/gateways/default-internet-gateway", - "type": "string" - }, - "nextHopPeering": { - "description": "[Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.", - "type": "string" - }, - "nextHopIlb": { - "description": "The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets or the IP address of the forwarding Rule. For example, the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - regions/region/forwardingRules/forwardingRule ", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "warnings": { - "description": "[Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.", - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } + "setIamPolicy": { + "id": "compute.serviceAttachments.setIamPolicy", + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - }, - "nextHopVpnTunnel": { - "description": "The URL to a VpnTunnel that should handle matching packets.", - "type": "string" - }, - "nextHopHub": { - "description": "[Output Only] The full resource name of the Network Connectivity Center hub that will handle matching packets.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "routeType": { - "description": "[Output Only] The type of this route, which can be one of the following values: - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers - 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this router - 'STATIC' for a static route", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + }, + "parameterOrder": [ + "project", + "region", + "resource" ], - "enum": [ - "BGP", - "STATIC", - "SUBNET", - "TRANSIT" - ] + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "asPaths": { - "description": "[Output Only] AS path.", - "type": "array", - "items": { - "$ref": "RouteAsPath" - } + "testIamPermissions": { + "id": "compute.serviceAttachments.testIamPermissions", + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." + } + } + }, + "snapshotSettings": { + "methods": { + "get": { + "id": "compute.snapshotSettings.get", + "path": "projects/{project}/global/snapshotSettings", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SnapshotSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Get snapshot settings." }, - "routeStatus": { - "description": "[Output only] The status of the route.", - "type": "string", - "enumDescriptions": [ - "This route is processed and active.", - "The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example", - "This route is processed but inactive due to failure from the backend. The backend may have rejected the route", - "This route is being processed internally. The status will change once processed." + "patch": { + "id": "compute.snapshotSettings.patch", + "path": "projects/{project}/global/snapshotSettings", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "SnapshotSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACTIVE", - "DROPPED", - "INACTIVE", - "PENDING" - ] + "description": "Patch snapshot settings." } } }, - "RouteAsPath": { - "id": "RouteAsPath", - "type": "object", - "properties": { - "pathSegmentType": { - "description": "[Output Only] The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed ", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "" + "sslCertificates": { + "methods": { + "list": { + "id": "compute.sslCertificates.list", + "path": "projects/{project}/global/sslCertificates", + "flatPath": "projects/{project}/global/sslCertificates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "AS_CONFED_SEQUENCE", - "AS_CONFED_SET", - "AS_SEQUENCE", - "AS_SET" - ] - }, - "asLists": { - "description": "[Output Only] The AS numbers of the AS Path.", - "type": "array", - "items": { - "type": "integer", - "format": "uint32" - } - } - } - }, - "Router": { - "id": "Router", - "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#router for routers.", - "default": "compute#router", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.routers.insert" - ] + "response": { + "$ref": "SslCertificateList" }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[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.", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of SslCertificate resources available to the specified project." }, - "network": { - "description": "URI of the network to which this router belongs.", - "annotations": { - "required": [ - "compute.routers.insert", - "compute.routers.update" - ] + "get": { + "id": "compute.sslCertificates.get", + "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } }, - "type": "string" - }, - "interfaces": { - "description": "Router interfaces. To create a BGP peer that uses a router interface, the interface must have one of the following fields specified: - linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a router interface without any of these fields specified. However, you cannot create a BGP peer that uses that interface.", - "type": "array", - "items": { - "$ref": "RouterInterface" - } - }, - "bgpPeers": { - "description": "BGP information that must be configured into the routing stack to establish BGP peering. This information must specify the peer ASN and either the interface name, IP address, or peer IP address. Please refer to RFC4273.", - "type": "array", - "items": { - "$ref": "RouterBgpPeer" - } - }, - "bgp": { - "description": "BGP information specific to this router.", - "$ref": "RouterBgp" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "parameterOrder": [ + "project", + "sslCertificate" + ], + "response": { + "$ref": "SslCertificate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified SslCertificate resource." }, - "nats": { - "description": "A list of NAT services created in this router.", - "type": "array", - "items": { - "$ref": "RouterNat" - } + "insert": { + "id": "compute.sslCertificates.insert", + "path": "projects/{project}/global/sslCertificates", + "flatPath": "projects/{project}/global/sslCertificates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "SslCertificate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a SslCertificate resource in the specified project using the data included in the request." }, - "encryptedInterconnectRouter": { - "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments).", - "type": "boolean" + "delete": { + "id": "compute.sslCertificates.delete", + "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "sslCertificate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified SslCertificate resource." }, - "md5AuthenticationKeys": { - "description": "Keys used for MD5 authentication.", - "type": "array", - "items": { - "$ref": "RouterMd5AuthenticationKey" - } + "aggregatedList": { + "id": "compute.sslCertificates.aggregatedList", + "path": "projects/{project}/aggregated/sslCertificates", + "flatPath": "projects/{project}/aggregated/sslCertificates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SslCertificateAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "RouterInterface": { - "id": "RouterInterface", - "type": "object", - "properties": { - "name": { - "description": "Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.routers.insert" - ] + "regionSslCertificates": { + "methods": { + "list": { + "id": "compute.regionSslCertificates.list", + "path": "projects/{project}/regions/{region}/sslCertificates", + "flatPath": "projects/{project}/regions/{region}/sslCertificates", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } }, - "type": "string" - }, - "linkedVpnTunnel": { - "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", - "type": "string" - }, - "linkedInterconnectAttachment": { - "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", - "type": "string" + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "SslCertificateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region." }, - "ipRange": { - "description": "IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.", - "type": "string" + "get": { + "id": "compute.regionSslCertificates.get", + "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "sslCertificate" + ], + "response": { + "$ref": "SslCertificate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request." }, - "managementType": { - "description": "[Output Only] The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. ", - "type": "string", - "enumDescriptions": [ - "The interface is automatically created for PARTNER type InterconnectAttachment, Google will automatically create/update/delete this interface when the PARTNER InterconnectAttachment is created/provisioned/deleted. This type of interface cannot be manually managed by user.", - "Default value, the interface is manually created and managed by user." + "insert": { + "id": "compute.regionSslCertificates.insert", + "path": "projects/{project}/regions/{region}/sslCertificates", + "flatPath": "projects/{project}/regions/{region}/sslCertificates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "SslCertificate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "MANAGED_BY_ATTACHMENT", - "MANAGED_BY_USER" - ] - }, - "privateIpAddress": { - "description": "The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM.", - "type": "string" - }, - "redundantInterface": { - "description": "Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request" }, - "subnetwork": { - "description": "The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here.", - "type": "string" + "delete": { + "id": "compute.regionSslCertificates.delete", + "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "sslCertificate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified SslCertificate resource in the region." } } }, - "RouterBgpPeer": { - "id": "RouterBgpPeer", - "type": "object", - "properties": { - "name": { - "description": "Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.routers.insert" - ] + "sslPolicies": { + "methods": { + "list": { + "id": "compute.sslPolicies.list", + "path": "projects/{project}/global/sslPolicies", + "flatPath": "projects/{project}/global/sslPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } }, - "type": "string" - }, - "interfaceName": { - "description": "Name of the interface the BGP peer is associated with.", - "type": "string" - }, - "ipAddress": { - "description": "IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.", - "type": "string" - }, - "peerIpAddress": { - "description": "IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported.", - "type": "string" - }, - "peerAsn": { - "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.", - "annotations": { - "required": [ - "compute.routers.insert" - ] + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SslPoliciesList" }, - "type": "integer", - "format": "uint32" - }, - "advertisedRoutePriority": { - "description": "The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win.", - "type": "integer", - "format": "uint32" - }, - "advertiseMode": { - "description": "User-specified flag to indicate which mode to use for advertisement.", - "type": "string", - "enumDescriptions": [ - "", - "" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "CUSTOM", - "DEFAULT" - ] - }, - "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "Advertise all available subnets (including peer VPC subnets)." - ], - "enum": [ - "ALL_SUBNETS" - ] - } - }, - "advertisedIpRanges": { - "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", - "type": "array", - "items": { - "$ref": "RouterAdvertisedIpRange" - } + "description": "Lists all the SSL policies that have been configured for the specified project." }, - "managementType": { - "description": "[Output Only] The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. ", - "type": "string", - "enumDescriptions": [ - "The BGP peer is automatically created for PARTNER type InterconnectAttachment; Google will automatically create/delete this BGP peer when the PARTNER InterconnectAttachment is created/deleted, and Google will update the ipAddress and peerIpAddress when the PARTNER InterconnectAttachment is provisioned. This type of BGP peer cannot be created or deleted, but can be modified for all fields except for name, ipAddress and peerIpAddress.", - "Default value, the BGP peer is manually created and managed by user." + "get": { + "id": "compute.sslPolicies.get", + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "sslPolicy" ], - "enum": [ - "MANAGED_BY_ATTACHMENT", - "MANAGED_BY_USER" - ] - }, - "enable": { - "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", - "type": "string", - "enumDescriptions": [ - "", - "" + "response": { + "$ref": "SslPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "FALSE", - "TRUE" - ] - }, - "bfd": { - "description": "BFD configuration for the BGP peering.", - "$ref": "RouterBgpPeerBfd" - }, - "routerApplianceInstance": { - "description": "URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session.", - "type": "string" - }, - "enableIpv6": { - "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", - "type": "boolean" - }, - "ipv6NexthopAddress": { - "description": "IPv6 address of the interface inside Google Cloud Platform.", - "type": "string" + "description": "Lists all of the ordered rules present in a single specified policy." }, - "peerIpv6NexthopAddress": { - "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", - "type": "string" + "insert": { + "id": "compute.sslPolicies.insert", + "path": "projects/{project}/global/sslPolicies", + "flatPath": "projects/{project}/global/sslPolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Returns the specified SSL policy resource." }, - "md5AuthenticationKeyName": { - "description": "Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035.", - "type": "string" + "delete": { + "id": "compute.sslPolicies.delete", + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "sslPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources." }, - "customLearnedRoutePriority": { - "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", - "type": "integer", - "format": "int32" + "patch": { + "id": "compute.sslPolicies.patch", + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "sslPolicy" + ], + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified SSL policy with the data included in the request." }, - "customLearnedIpRanges": { - "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", - "type": "array", - "items": { - "$ref": "RouterBgpPeerCustomLearnedIpRange" - } - } - } - }, - "RouterAdvertisedIpRange": { - "id": "RouterAdvertisedIpRange", - "description": "Description-tagged IP ranges for the router to advertise.", - "type": "object", - "properties": { - "range": { - "description": "The IP range to advertise. The value must be a CIDR-formatted string.", - "type": "string" + "listAvailableFeatures": { + "id": "compute.sslPolicies.listAvailableFeatures", + "path": "projects/{project}/global/sslPolicies/listAvailableFeatures", + "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all features that can be specified in the SSL policy when using custom profile." }, - "description": { - "description": "User-specified description for the IP range.", - "type": "string" - } - } - }, - "RouterBgpPeerBfd": { - "id": "RouterBgpPeerBfd", - "type": "object", - "properties": { - "sessionInitializationMode": { - "description": "The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is DISABLED.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "aggregatedList": { + "id": "compute.sslPolicies.aggregatedList", + "path": "projects/{project}/aggregated/sslPolicies", + "flatPath": "projects/{project}/aggregated/sslPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "ACTIVE", - "DISABLED", - "PASSIVE" - ] - }, - "minTransmitInterval": { - "description": "The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000.", - "type": "integer", - "format": "uint32" - }, - "minReceiveInterval": { - "description": "The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000.", - "type": "integer", - "format": "uint32" - }, - "multiplier": { - "description": "The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5.", - "type": "integer", - "format": "uint32" - } - } - }, - "RouterBgpPeerCustomLearnedIpRange": { - "id": "RouterBgpPeerCustomLearnedIpRange", - "type": "object", - "properties": { - "range": { - "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", - "type": "string" - } - } - }, - "RouterBgp": { - "id": "RouterBgp", - "type": "object", - "properties": { - "asn": { - "description": "Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.", - "type": "integer", - "format": "uint32" - }, - "advertiseMode": { - "description": "User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM.", - "type": "string", - "enumDescriptions": [ - "", - "" + "response": { + "$ref": "SslPoliciesAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "CUSTOM", - "DEFAULT" - ] - }, - "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "Advertise all available subnets (including peer VPC subnets)." - ], - "enum": [ - "ALL_SUBNETS" - ] - } - }, - "advertisedIpRanges": { - "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", - "type": "array", - "items": { - "$ref": "RouterAdvertisedIpRange" - } - }, - "keepaliveInterval": { - "description": "The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20.", - "type": "integer", - "format": "uint32" + "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "RouterNat": { - "id": "RouterNat", - "description": "Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided.", - "type": "object", - "properties": { - "name": { - "description": "Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "type": { - "description": "Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC.", - "type": "string", - "enumDescriptions": [ - "NAT used for private IP translation.", - "NAT used for public IP translation. This is the default." + "regionSslPolicies": { + "methods": { + "list": { + "id": "compute.regionSslPolicies.list", + "path": "projects/{project}/regions/{region}/sslPolicies", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "PRIVATE", - "PUBLIC" - ] - }, - "autoNetworkTier": { - "description": "The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used.", - "type": "string", - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + "response": { + "$ref": "SslPoliciesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ] - }, - "endpointTypes": { - "description": "List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "This is used for regional Application Load Balancers (internal and external) and regional proxy Network Load Balancers (internal and external) endpoints.", - "This is used for Secure Web Gateway endpoints.", - "This is the default." - ], - "enum": [ - "ENDPOINT_TYPE_MANAGED_PROXY_LB", - "ENDPOINT_TYPE_SWG", - "ENDPOINT_TYPE_VM" - ] - } + "description": "Lists all the SSL policies that have been configured for the specified project and region." }, - "sourceSubnetworkIpRangesToNat": { - "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region.", - "type": "string", - "enumDescriptions": [ - "All the IP ranges in every Subnetwork are allowed to Nat.", - "All the primary IP ranges in every Subnetwork are allowed to Nat.", - "A list of Subnetworks are allowed to Nat (specified in the field subnetwork below)" + "get": { + "id": "compute.regionSslPolicies.get", + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "sslPolicy" ], - "enum": [ - "ALL_SUBNETWORKS_ALL_IP_RANGES", - "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", - "LIST_OF_SUBNETWORKS" - ] - }, - "subnetworks": { - "description": "A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above.", - "type": "array", - "items": { - "$ref": "RouterNatSubnetworkToNat" - } - }, - "natIps": { - "description": "A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project.", - "type": "array", - "items": { - "type": "string" - } - }, - "drainNatIps": { - "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only.", - "type": "array", - "items": { - "type": "string" - } - }, - "natIpAllocateOption": { - "description": "Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. ", - "type": "string", - "enumDescriptions": [ - "Nat IPs are allocated by GCP; customers can not specify any Nat IPs.", - "Only use Nat IPs provided by customers. When specified Nat IPs are not enough then the Nat service fails for new VMs." + "response": { + "$ref": "SslPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "AUTO_ONLY", - "MANUAL_ONLY" - ] - }, - "minPortsPerVm": { - "description": "Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM.", - "type": "integer", - "format": "int32" - }, - "maxPortsPerVm": { - "description": "Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config.", - "type": "integer", - "format": "int32" - }, - "enableDynamicPortAllocation": { - "description": "Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. ", - "type": "boolean" - }, - "udpIdleTimeoutSec": { - "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", - "type": "integer", - "format": "int32" - }, - "icmpIdleTimeoutSec": { - "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", - "type": "integer", - "format": "int32" - }, - "tcpEstablishedIdleTimeoutSec": { - "description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.", - "type": "integer", - "format": "int32" - }, - "tcpTransitoryIdleTimeoutSec": { - "description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.", - "type": "integer", - "format": "int32" - }, - "tcpTimeWaitTimeoutSec": { - "description": "Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.", - "type": "integer", - "format": "int32" - }, - "logConfig": { - "description": "Configure logging on this NAT.", - "$ref": "RouterNatLogConfig" - }, - "rules": { - "description": "A list of rules associated with this NAT.", - "type": "array", - "items": { - "$ref": "RouterNatRule" - } - }, - "enableEndpointIndependentMapping": { - "type": "boolean" - } - } - }, - "RouterNatSubnetworkToNat": { - "id": "RouterNatSubnetworkToNat", - "description": "Defines the IP ranges that want to use NAT for a subnetwork.", - "type": "object", - "properties": { - "name": { - "description": "URL for the subnetwork resource that will use NAT.", - "type": "string" + "description": "Lists all of the ordered rules present in a single specified policy." }, - "sourceIpRangesToNat": { - "description": "Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: [\"PRIMARY_IP_RANGE\", \"LIST_OF_SECONDARY_IP_RANGES\"] Default: [ALL_IP_RANGES]", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "The primary and all the secondary ranges are allowed to Nat.", - "A list of secondary ranges are allowed to Nat.", - "The primary range is allowed to Nat." - ], - "enum": [ - "ALL_IP_RANGES", - "LIST_OF_SECONDARY_IP_RANGES", - "PRIMARY_IP_RANGE" - ] - } + "insert": { + "id": "compute.regionSslPolicies.insert", + "path": "projects/{project}/regions/{region}/sslPolicies", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a new policy in the specified project and region using the data included in the request." }, - "secondaryIpRangeNames": { - "description": "A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if \"LIST_OF_SECONDARY_IP_RANGES\" is one of the values in source_ip_ranges_to_nat.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RouterNatLogConfig": { - "id": "RouterNatLogConfig", - "description": "Configuration of logging on a NAT.", - "type": "object", - "properties": { - "enable": { - "description": "Indicates whether or not to export logs. This is false by default.", - "type": "boolean" + "delete": { + "id": "compute.regionSslPolicies.delete", + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources." }, - "filter": { - "description": "Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. ", - "type": "string", - "enumDescriptions": [ - "Export logs for all (successful and unsuccessful) connections.", - "Export logs for connection failures only.", - "Export logs for successful connections only." + "patch": { + "id": "compute.regionSslPolicies.patch", + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ALL", - "ERRORS_ONLY", - "TRANSLATIONS_ONLY" - ] - } - } - }, - "RouterNatRule": { - "id": "RouterNatRule", - "type": "object", - "properties": { - "ruleNumber": { - "description": "An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.", - "type": "integer", - "format": "uint32" - }, - "description": { - "description": "An optional description of this rule.", - "type": "string" - }, - "match": { - "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'\"", - "type": "string" + "description": "Patches the specified SSL policy with the data included in the request." }, - "action": { - "description": "The action to be enforced for traffic that matches this rule.", - "$ref": "RouterNatRuleAction" + "listAvailableFeatures": { + "id": "compute.regionSslPolicies.listAvailableFeatures", + "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists all features that can be specified in the SSL policy when using custom profile." } } }, - "RouterNatRuleAction": { - "id": "RouterNatRuleAction", - "type": "object", - "properties": { - "sourceNatActiveIps": { - "description": "A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.", - "type": "array", - "items": { - "type": "string" - } - }, - "sourceNatDrainIps": { - "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.", - "type": "array", - "items": { - "type": "string" - } - }, - "sourceNatActiveRanges": { - "description": "A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.", - "type": "array", - "items": { - "type": "string" - } + "storagePoolTypes": { + "methods": { + "list": { + "id": "compute.storagePoolTypes.list", + "path": "projects/{project}/zones/{zone}/storagePoolTypes", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "StoragePoolTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of storage pool types available to the specified project." }, - "sourceNatDrainRanges": { - "description": "A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RouterMd5AuthenticationKey": { - "id": "RouterMd5AuthenticationKey", - "type": "object", - "properties": { - "name": { - "description": "Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035.", - "annotations": { - "required": [ - "compute.routers.insert", - "compute.routers.update" - ] + "aggregatedList": { + "id": "compute.storagePoolTypes.aggregatedList", + "path": "projects/{project}/aggregated/storagePoolTypes", + "flatPath": "projects/{project}/aggregated/storagePoolTypes", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } }, - "type": "string" + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "StoragePoolTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "key": { - "description": "[Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters.", - "annotations": { - "required": [ - "compute.routers.insert" - ] + "get": { + "id": "compute.storagePoolTypes.get", + "path": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "storagePoolType": { + "description": "Name of the storage pool type to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } }, - "type": "string" + "parameterOrder": [ + "project", + "zone", + "storagePoolType" + ], + "response": { + "$ref": "StoragePoolType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified storage pool type." } } }, - "RouterList": { - "id": "RouterList", - "description": "Contains a list of Router resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#router for routers.", - "default": "compute#routerList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Router resources.", - "type": "array", - "items": { - "$ref": "Router" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "storagePools": { + "methods": { + "list": { + "id": "compute.storagePools.list", + "path": "projects/{project}/zones/{zone}/storagePools", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "StoragePoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of storage pools contained within the specified zone." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.storagePools.aggregatedList", + "path": "projects/{project}/aggregated/storagePools", + "flatPath": "projects/{project}/aggregated/storagePools", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } - } - } - }, - "RouterAggregatedList": { - "id": "RouterAggregatedList", - "description": "Contains a list of routers.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#routerAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "StoragePoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "items": { - "description": "A list of Router resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of routers.", - "$ref": "RoutersScopedList" - } + "get": { + "id": "compute.storagePools.get", + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "storagePool": { + "description": "Name of the storage pool to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "response": { + "$ref": "StoragePool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns a specified storage pool. Gets a list of available storage pools by making a list() request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "insert": { + "id": "compute.storagePools.insert", + "path": "projects/{project}/zones/{zone}/storagePools", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a storage pool in the specified project using the data in the request." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "delete": { + "id": "compute.storagePools.delete", + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "storagePool": { + "description": "Name of the storage pool to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "getIamPolicy": { + "id": "compute.storagePools.getIamPolicy", + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RoutersScopedList": { - "id": "RoutersScopedList", - "type": "object", - "properties": { - "routers": { - "description": "A list of routers contained in this scope.", - "type": "array", - "items": { - "$ref": "Router" - } + "setIamPolicy": { + "id": "compute.storagePools.setIamPolicy", + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "warning": { - "description": "Informational warning which replaces the list of routers when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "testIamPermissions": { + "id": "compute.storagePools.testIamPermissions", + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." + }, + "update": { + "id": "compute.storagePools.update", + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "storagePool": { + "description": "The storagePool name for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "location": "query", + "type": "string", + "format": "google-fieldmask" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "RouterStatusResponse": { - "id": "RouterStatusResponse", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#routerStatusResponse", - "type": "string" - }, - "result": { - "$ref": "RouterStatus" - } - } - }, - "RouterStatus": { - "id": "RouterStatus", - "type": "object", - "properties": { - "network": { - "description": "URI of the network to which this router belongs.", - "type": "string" - }, - "bestRoutes": { - "description": "Best routes for this router's network.", - "type": "array", - "items": { - "$ref": "Route" - } - }, - "bestRoutesForRouter": { - "description": "Best routes learned by this router.", - "type": "array", - "items": { - "$ref": "Route" - } - }, - "bgpPeerStatus": { - "type": "array", - "items": { - "$ref": "RouterStatusBgpPeerStatus" - } + }, + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: size_tb and provisioned_iops." }, - "natStatus": { - "type": "array", - "items": { - "$ref": "RouterStatusNatStatus" - } + "listDisks": { + "id": "compute.storagePools.listDisks", + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "storagePool": { + "description": "Name of the storage pool to list disks of.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "response": { + "$ref": "StoragePoolListDisks" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Lists the disks in a specified storage pool." } } }, - "RouterStatusBgpPeerStatus": { - "id": "RouterStatusBgpPeerStatus", - "type": "object", - "properties": { - "name": { - "description": "Name of this BGP peer. Unique within the Routers resource.", - "type": "string" - }, - "linkedVpnTunnel": { - "description": "URL of the VPN tunnel that this BGP peer controls.", - "type": "string" - }, - "routerApplianceInstance": { - "description": "[Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.", - "type": "string" - }, - "ipAddress": { - "description": "IP address of the local BGP interface.", - "type": "string" - }, - "peerIpAddress": { - "description": "IP address of the remote BGP interface.", - "type": "string" - }, - "ipv6NexthopAddress": { - "description": "IPv6 address of the local BGP interface.", - "type": "string" - }, - "peerIpv6NexthopAddress": { - "description": "IPv6 address of the remote BGP interface.", - "type": "string" - }, - "enableIpv6": { - "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", - "type": "boolean" - }, - "status": { - "description": "Status of the BGP peer: {UP, DOWN}", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "subnetworks": { + "methods": { + "list": { + "id": "compute.subnetworks.list", + "path": "projects/{project}/regions/{region}/subnetworks", + "flatPath": "projects/{project}/regions/{region}/subnetworks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "DOWN", - "UNKNOWN", - "UP" - ] - }, - "state": { - "description": "The state of the BGP session. For a list of possible values for this field, see BGP session states.", - "type": "string" - }, - "uptime": { - "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds", - "type": "string" - }, - "uptimeSeconds": { - "description": "Time this session has been up, in seconds. Format: 145", - "type": "string" - }, - "numLearnedRoutes": { - "description": "Number of routes learned from the remote BGP Peer.", - "type": "integer", - "format": "uint32" - }, - "advertisedRoutes": { - "description": "Routes that were advertised to the remote BGP peer", - "type": "array", - "items": { - "$ref": "Route" - } - }, - "bfdStatus": { - "$ref": "BfdStatus" + "response": { + "$ref": "SubnetworkList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of subnetworks available to the specified project." }, - "md5AuthEnabled": { - "description": "Informs whether MD5 authentication is enabled on this BGP peer.", - "type": "boolean" + "aggregatedList": { + "id": "compute.subnetworks.aggregatedList", + "path": "projects/{project}/aggregated/subnetworks", + "flatPath": "projects/{project}/aggregated/subnetworks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SubnetworkAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of subnetworks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "statusReason": { - "description": "Indicates why particular status was returned.", - "type": "string", - "enumDescriptions": [ - "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", - "" + "listUsable": { + "id": "compute.subnetworks.listUsable", + "path": "projects/{project}/aggregated/subnetworks/listUsable", + "flatPath": "projects/{project}/aggregated/subnetworks/listUsable", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "MD5_AUTH_INTERNAL_PROBLEM", - "STATUS_REASON_UNSPECIFIED" - ] - } - } - }, - "BfdStatus": { - "id": "BfdStatus", - "description": "Next free: 15", - "type": "object", - "properties": { - "uptimeMs": { - "description": "Session uptime in milliseconds. Value will be 0 if session is not up.", - "type": "string", - "format": "int64" + "response": { + "$ref": "UsableSubnetworksAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of all usable subnetworks in the project." }, - "localState": { - "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "get": { + "id": "compute.subnetworks.get", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "response": { + "$ref": "Subnetwork" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "ADMIN_DOWN", - "DOWN", - "INIT", - "STATE_UNSPECIFIED", - "UP" - ] + "description": "Returns the specified subnetwork." }, - "localDiagnostic": { - "description": "The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "insert": { + "id": "compute.subnetworks.insert", + "path": "projects/{project}/regions/{region}/subnetworks", + "flatPath": "projects/{project}/regions/{region}/subnetworks", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" ], - "enum": [ - "ADMINISTRATIVELY_DOWN", - "CONCATENATED_PATH_DOWN", - "CONTROL_DETECTION_TIME_EXPIRED", - "DIAGNOSTIC_UNSPECIFIED", - "ECHO_FUNCTION_FAILED", - "FORWARDING_PLANE_RESET", - "NEIGHBOR_SIGNALED_SESSION_DOWN", - "NO_DIAGNOSTIC", - "PATH_DOWN", - "REVERSE_CONCATENATED_PATH_DOWN" - ] - }, - "controlPacketCounts": { - "description": "Control packet counts for the current BFD session.", - "$ref": "BfdStatusPacketCounts" - }, - "txPacket": { - "description": "The most recent Tx control packet for this BFD session.", - "$ref": "BfdPacket" - }, - "rxPacket": { - "description": "The most recent Rx control packet for this BFD session.", - "$ref": "BfdPacket" - }, - "controlPacketIntervals": { - "description": "Inter-packet time interval statistics for control packets.", - "type": "array", - "items": { - "$ref": "PacketIntervals" - } - }, - "negotiatedLocalControlTxIntervalMs": { - "description": "Negotiated transmit interval for control packets.", - "type": "integer", - "format": "uint32" - }, - "bfdSessionInitializationMode": { - "description": "The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "request": { + "$ref": "Subnetwork" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACTIVE", - "DISABLED", - "PASSIVE" - ] - }, - "configUpdateTimestampMicros": { - "description": "Unix timestamp of the most recent config update.", - "type": "string", - "format": "int64" - } - } - }, - "BfdStatusPacketCounts": { - "id": "BfdStatusPacketCounts", - "type": "object", - "properties": { - "numTx": { - "description": "Number of packets transmitted since the beginning of the current BFD session.", - "type": "integer", - "format": "uint32" - }, - "numRx": { - "description": "Number of packets received since the beginning of the current BFD session.", - "type": "integer", - "format": "uint32" - }, - "numRxSuccessful": { - "description": "Number of packets received that were successfully processed since the beginning of the current BFD session.", - "type": "integer", - "format": "uint32" - }, - "numRxRejected": { - "description": "Number of packets received that were rejected because of errors since the beginning of the current BFD session.", - "type": "integer", - "format": "uint32" - } - } - }, - "BfdPacket": { - "id": "BfdPacket", - "type": "object", - "properties": { - "version": { - "description": "The version number of the BFD protocol, as specified in section 4.1 of RFC5880.", - "type": "integer", - "format": "uint32" + "description": "Creates a subnetwork in the specified project using the data included in the request." }, - "diagnostic": { - "description": "The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "delete": { + "id": "compute.subnetworks.delete", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "subnetwork" ], - "enum": [ - "ADMINISTRATIVELY_DOWN", - "CONCATENATED_PATH_DOWN", - "CONTROL_DETECTION_TIME_EXPIRED", - "DIAGNOSTIC_UNSPECIFIED", - "ECHO_FUNCTION_FAILED", - "FORWARDING_PLANE_RESET", - "NEIGHBOR_SIGNALED_SESSION_DOWN", - "NO_DIAGNOSTIC", - "PATH_DOWN", - "REVERSE_CONCATENATED_PATH_DOWN" - ] - }, - "state": { - "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ADMIN_DOWN", - "DOWN", - "INIT", - "STATE_UNSPECIFIED", - "UP" - ] - }, - "poll": { - "description": "The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "final": { - "description": "The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "controlPlaneIndependent": { - "description": "The Control Plane Independent bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "authenticationPresent": { - "description": "The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "demand": { - "description": "The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "multipoint": { - "description": "The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "multiplier": { - "description": "The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "description": "Deletes the specified subnetwork." }, - "length": { - "description": "The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "expandIpCidrRange": { + "id": "compute.subnetworks.expandIpCidrRange", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "request": { + "$ref": "SubnetworksExpandIpCidrRangeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Expands the IP CIDR range of the subnetwork to a specified value." }, - "myDiscriminator": { - "description": "The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "patch": { + "id": "compute.subnetworks.patch", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "httpMethod": "PATCH", + "parameters": { + "drainTimeoutSeconds": { + "description": "The drain timeout specifies the upper bound in seconds on the amount of time allowed to drain connections from the current ACTIVE subnetwork to the current BACKUP subnetwork. The drain timeout is only applicable when the following conditions are true: - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role = BACKUP - the patch request is setting the role to ACTIVE. Note that after this patch operation the roles of the ACTIVE and BACKUP subnetworks will be swapped.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "request": { + "$ref": "Subnetwork" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified subnetwork with the data included in the request. Only certain fields can be updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched." }, - "yourDiscriminator": { - "description": "The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "getIamPolicy": { + "id": "compute.subnetworks.getIamPolicy", + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "httpMethod": "GET", + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "location": "query", + "type": "integer", + "format": "int32" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." }, - "minTxIntervalMs": { - "description": "The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "setIamPolicy": { + "id": "compute.subnetworks.setIamPolicy", + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the access control policy on the specified resource. Replaces any existing policy." }, - "minRxIntervalMs": { - "description": "The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "testIamPermissions": { + "id": "compute.subnetworks.testIamPermissions", + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns permissions that a caller has on the specified resource." }, - "minEchoRxIntervalMs": { - "description": "The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "integer", - "format": "uint32" + "setPrivateIpGoogleAccess": { + "id": "compute.subnetworks.setPrivateIpGoogleAccess", + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "request": { + "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access." } } }, - "PacketIntervals": { - "id": "PacketIntervals", - "description": "Next free: 7", - "type": "object", - "properties": { - "type": { - "description": "The type of packets for which inter-packet intervals were computed.", - "type": "string", - "enumDescriptions": [ - "Only applies to Echo packets. This shows the intervals between sending and receiving the same packet.", - "Intervals between received packets.", - "Intervals between transmitted packets.", - "" + "targetGrpcProxies": { + "methods": { + "list": { + "id": "compute.targetGrpcProxies.list", + "path": "projects/{project}/global/targetGrpcProxies", + "flatPath": "projects/{project}/global/targetGrpcProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "LOOPBACK", - "RECEIVE", - "TRANSMIT", - "TYPE_UNSPECIFIED" - ] - }, - "duration": { - "description": "From how long ago in the past these intervals were observed.", - "type": "string", - "enumDescriptions": [ - "", - "", - "From BfdSession object creation time.", - "" + "response": { + "$ref": "TargetGrpcProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "DURATION_UNSPECIFIED", - "HOUR", - "MAX", - "MINUTE" - ] + "description": "Lists the TargetGrpcProxies for a project in the given scope." }, - "numIntervals": { - "description": "Number of inter-packet intervals from which these statistics were derived.", - "type": "string", - "format": "int64" + "get": { + "id": "compute.targetGrpcProxies.get", + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "targetGrpcProxy": { + "description": "Name of the TargetGrpcProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetGrpcProxy" + ], + "response": { + "$ref": "TargetGrpcProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetGrpcProxy resource in the given scope." }, - "minMs": { - "description": "Minimum observed inter-packet interval in milliseconds.", - "type": "string", - "format": "int64" + "insert": { + "id": "compute.targetGrpcProxies.insert", + "path": "projects/{project}/global/targetGrpcProxies", + "flatPath": "projects/{project}/global/targetGrpcProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "TargetGrpcProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request." }, - "maxMs": { - "description": "Maximum observed inter-packet interval in milliseconds.", - "type": "string", - "format": "int64" + "delete": { + "id": "compute.targetGrpcProxies.delete", + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetGrpcProxy": { + "description": "Name of the TargetGrpcProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetGrpcProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetGrpcProxy in the given scope" }, - "avgMs": { - "description": "Average observed inter-packet interval in milliseconds.", - "type": "string", - "format": "int64" + "patch": { + "id": "compute.targetGrpcProxies.patch", + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetGrpcProxy": { + "description": "Name of the TargetGrpcProxy resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetGrpcProxy" + ], + "request": { + "$ref": "TargetGrpcProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified TargetGrpcProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." } } }, - "RouterStatusNatStatus": { - "id": "RouterStatusNatStatus", - "description": "Status of a NAT contained in this router.", - "type": "object", - "properties": { - "name": { - "description": "Unique name of this NAT.", - "type": "string" - }, - "userAllocatedNatIpResources": { - "description": "A list of fully qualified URLs of reserved IP address resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "drainUserAllocatedNatIps": { - "description": "A list of IPs user-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", - "type": "array", - "items": { - "type": "string" - } - }, - "userAllocatedNatIps": { - "description": "A list of IPs user-allocated for NAT. They will be raw IP strings like \"179.12.26.133\".", - "type": "array", - "items": { - "type": "string" - } - }, - "autoAllocatedNatIps": { - "description": "A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\", \"129.2.16.89\"]", - "type": "array", - "items": { - "type": "string" - } - }, - "drainAutoAllocatedNatIps": { - "description": "A list of IPs auto-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", - "type": "array", - "items": { - "type": "string" - } - }, - "minExtraNatIpsNeeded": { - "description": "The number of extra IPs to allocate. This will be greater than 0 only if user-specified IPs are NOT enough to allow all configured VMs to use NAT. This value is meaningful only when auto-allocation of NAT IPs is *not* used.", - "type": "integer", - "format": "int32" + "targetHttpProxies": { + "methods": { + "list": { + "id": "compute.targetHttpProxies.list", + "path": "projects/{project}/global/targetHttpProxies", + "flatPath": "projects/{project}/global/targetHttpProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetHttpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of TargetHttpProxy resources available to the specified project." }, - "numVmEndpointsWithNatMappings": { - "description": "Number of VM endpoints (i.e., Nics) that can use NAT.", - "type": "integer", - "format": "int32" + "get": { + "id": "compute.targetHttpProxies.get", + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "response": { + "$ref": "TargetHttpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetHttpProxy resource." }, - "ruleStatus": { - "description": "Status of rules in this NAT.", - "type": "array", - "items": { - "$ref": "RouterStatusNatStatusNatRuleStatus" - } - } - } - }, - "RouterStatusNatStatusNatRuleStatus": { - "id": "RouterStatusNatStatusNatRuleStatus", - "description": "Status of a NAT Rule contained in this NAT.", - "type": "object", - "properties": { - "ruleNumber": { - "description": "Rule number of the rule.", - "type": "integer", - "format": "int32" + "insert": { + "id": "compute.targetHttpProxies.insert", + "path": "projects/{project}/global/targetHttpProxies", + "flatPath": "projects/{project}/global/targetHttpProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "TargetHttpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request." }, - "activeNatIps": { - "description": "A list of active IPs for NAT. Example: [\"1.1.1.1\", \"179.12.26.133\"].", - "type": "array", - "items": { - "type": "string" - } + "delete": { + "id": "compute.targetHttpProxies.delete", + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetHttpProxy resource." }, - "drainNatIps": { - "description": "A list of IPs for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", - "type": "array", - "items": { - "type": "string" - } + "patch": { + "id": "compute.targetHttpProxies.patch", + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "request": { + "$ref": "TargetHttpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified TargetHttpProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "minExtraIpsNeeded": { - "description": "The number of extra IPs to allocate. This will be greater than 0 only if the existing IPs in this NAT Rule are NOT enough to allow all configured VMs to use NAT.", - "type": "integer", - "format": "int32" + "setUrlMap": { + "id": "compute.targetHttpProxies.setUrlMap", + "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy to set a URL map for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the URL map for TargetHttpProxy." }, - "numVmEndpointsWithNatMappings": { - "description": "Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule.", - "type": "integer", - "format": "int32" + "aggregatedList": { + "id": "compute.targetHttpProxies.aggregatedList", + "path": "projects/{project}/aggregated/targetHttpProxies", + "flatPath": "projects/{project}/aggregated/targetHttpProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetHttpProxyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." } } }, - "VmEndpointNatMappingsList": { - "id": "VmEndpointNatMappingsList", - "description": "Contains a list of VmEndpointNatMappings.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for lists of Nat mappings of VM endpoints.", - "default": "compute#vmEndpointNatMappingsList", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "result": { - "description": "[Output Only] A list of Nat mapping information of VM endpoints.", - "type": "array", - "items": { - "$ref": "VmEndpointNatMappings" - } + "regionTargetHttpProxies": { + "methods": { + "list": { + "id": "compute.regionTargetHttpProxies.list", + "path": "projects/{project}/regions/{region}/targetHttpProxies", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "TargetHttpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.regionTargetHttpProxies.get", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" + ], + "response": { + "$ref": "TargetHttpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetHttpProxy resource in the specified region." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.regionTargetHttpProxies.insert", + "path": "projects/{project}/regions/{region}/targetHttpProxies", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "TargetHttpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.regionTargetHttpProxies.delete", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetHttpProxy resource." + }, + "setUrlMap": { + "id": "compute.regionTargetHttpProxies.setUrlMap", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy to set a URL map for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" + ], + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the URL map for TargetHttpProxy." } } }, - "VmEndpointNatMappings": { - "id": "VmEndpointNatMappings", - "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).", - "type": "object", - "properties": { - "instanceName": { - "description": "Name of the VM instance which the endpoint belongs to", - "type": "string" + "targetHttpsProxies": { + "methods": { + "list": { + "id": "compute.targetHttpsProxies.list", + "path": "projects/{project}/global/targetHttpsProxies", + "flatPath": "projects/{project}/global/targetHttpsProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetHttpsProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project." }, - "interfaceNatMappings": { - "type": "array", - "items": { - "$ref": "VmEndpointNatMappingsInterfaceNatMappings" - } - } - } - }, - "VmEndpointNatMappingsInterfaceNatMappings": { - "id": "VmEndpointNatMappingsInterfaceNatMappings", - "description": "Contain information of Nat mapping for an interface of this endpoint.", - "type": "object", - "properties": { - "sourceVirtualIp": { - "description": "Primary IP of the VM for this NIC.", - "type": "string" + "aggregatedList": { + "id": "compute.targetHttpsProxies.aggregatedList", + "path": "projects/{project}/aggregated/targetHttpsProxies", + "flatPath": "projects/{project}/aggregated/targetHttpsProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetHttpsProxyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "sourceAliasIpRange": { - "description": "Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP range. Examples: \"10.33.4.55/32\", or \"192.168.5.0/24\".", - "type": "string" + "get": { + "id": "compute.targetHttpsProxies.get", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "response": { + "$ref": "TargetHttpsProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetHttpsProxy resource." }, - "numTotalNatPorts": { - "description": "Total number of ports across all NAT IPs allocated to this interface. It equals to the aggregated port number in the field nat_ip_port_ranges.", - "type": "integer", - "format": "int32" + "insert": { + "id": "compute.targetHttpsProxies.insert", + "path": "projects/{project}/global/targetHttpsProxies", + "flatPath": "projects/{project}/global/targetHttpsProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request." }, - "natIpPortRanges": { - "description": "A list of all IP:port-range mappings assigned to this interface. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", - "type": "array", - "items": { - "type": "string" - } + "patch": { + "id": "compute.targetHttpsProxies.patch", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "drainNatIpPortRanges": { - "description": "List of all drain IP:port-range mappings assigned to this interface. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", - "type": "array", - "items": { - "type": "string" - } + "delete": { + "id": "compute.targetHttpsProxies.delete", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetHttpsProxy resource." }, - "numTotalDrainNatPorts": { - "description": "Total number of drain ports across all NAT IPs allocated to this interface. It equals to the aggregated port number in the field drain_nat_ip_port_ranges.", - "type": "integer", - "format": "int32" + "setUrlMap": { + "id": "compute.targetHttpsProxies.setUrlMap", + "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the URL map for TargetHttpsProxy." + }, + "setSslCertificates": { + "id": "compute.targetHttpsProxies.setSslCertificates", + "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "request": { + "$ref": "TargetHttpsProxiesSetSslCertificatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Replaces SslCertificates for TargetHttpsProxy." + }, + "setCertificateMap": { + "id": "compute.targetHttpsProxies.setCertificateMap", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "request": { + "$ref": "TargetHttpsProxiesSetCertificateMapRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the Certificate Map for TargetHttpsProxy." + }, + "setSslPolicy": { + "id": "compute.targetHttpsProxies.setSslPolicy", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "request": { + "$ref": "SslPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the HTTPS proxy load balancer. They do not affect the connection between the load balancer and the backends." }, - "ruleMappings": { - "description": "Information about mappings provided by rules in this NAT.", - "type": "array", - "items": { - "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" - } + "setQuicOverride": { + "id": "compute.targetHttpsProxies.setQuicOverride", + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "request": { + "$ref": "TargetHttpsProxiesSetQuicOverrideRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the QUIC override policy for TargetHttpsProxy." } } }, - "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { - "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", - "description": "Contains information of NAT Mappings provided by a NAT Rule.", - "type": "object", - "properties": { - "ruleNumber": { - "description": "Rule number of the NAT Rule.", - "type": "integer", - "format": "int32" - }, - "numTotalNatPorts": { - "description": "Total number of ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field nat_ip_port_ranges.", - "type": "integer", - "format": "int32" + "regionTargetHttpsProxies": { + "methods": { + "list": { + "id": "compute.regionTargetHttpsProxies.list", + "path": "projects/{project}/regions/{region}/targetHttpsProxies", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "TargetHttpsProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region." }, - "natIpPortRanges": { - "description": "A list of all IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", - "type": "array", - "items": { - "type": "string" - } + "get": { + "id": "compute.regionTargetHttpsProxies.get", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "response": { + "$ref": "TargetHttpsProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetHttpsProxy resource in the specified region." }, - "drainNatIpPortRanges": { - "description": "List of all drain IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", - "type": "array", - "items": { - "type": "string" - } + "insert": { + "id": "compute.regionTargetHttpsProxies.insert", + "path": "projects/{project}/regions/{region}/targetHttpsProxies", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request." }, - "numTotalDrainNatPorts": { - "description": "Total number of drain ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field drain_nat_ip_port_ranges.", - "type": "integer", - "format": "int32" - } - } - }, - "NatIpInfoResponse": { - "id": "NatIpInfoResponse", - "type": "object", - "properties": { - "result": { - "description": "[Output Only] A list of NAT IP information.", - "type": "array", - "items": { - "$ref": "NatIpInfo" - } - } - } - }, - "NatIpInfo": { - "id": "NatIpInfo", - "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", - "type": "object", - "properties": { - "natName": { - "description": "Name of the NAT config which the NAT IP belongs to.", - "type": "string" + "delete": { + "id": "compute.regionTargetHttpsProxies.delete", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetHttpsProxy resource." }, - "natIpInfoMappings": { - "description": "A list of all NAT IPs assigned to this NAT config.", - "type": "array", - "items": { - "$ref": "NatIpInfoNatIpInfoMapping" - } - } - } - }, - "NatIpInfoNatIpInfoMapping": { - "id": "NatIpInfoNatIpInfoMapping", - "description": "Contains information of a NAT IP.", - "type": "object", - "properties": { - "natIp": { - "description": "NAT IP address. For example: 203.0.113.11.", - "type": "string" + "patch": { + "id": "compute.regionTargetHttpsProxies.patch", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." }, - "usage": { - "description": "Specifies whether NAT IP is currently serving at least one endpoint or not.", - "type": "string", - "enumDescriptions": [ - "", - "" + "setUrlMap": { + "id": "compute.regionTargetHttpsProxies.setUrlMap", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy to set a URL map for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" ], - "enum": [ - "IN_USE", - "UNUSED" - ] + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the URL map for TargetHttpsProxy." }, - "mode": { - "description": "Specifies whether NAT IP is auto or manual.", - "type": "string", - "enumDescriptions": [ - "", - "" + "setSslCertificates": { + "id": "compute.regionTargetHttpsProxies.setSslCertificates", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" ], - "enum": [ - "AUTO", - "MANUAL" - ] - } - } - }, - "RoutersPreviewResponse": { - "id": "RoutersPreviewResponse", - "type": "object", - "properties": { - "resource": { - "description": "Preview of given router.", - "$ref": "Router" + "request": { + "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Replaces SslCertificates for TargetHttpsProxy." } } }, - "ServiceAttachmentAggregatedList": { - "id": "ServiceAttachmentAggregatedList", - "description": "Contains a list of ServiceAttachmentsScopedList.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#serviceAttachmentAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of ServiceAttachmentsScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of ServiceAttachments.", - "$ref": "ServiceAttachmentsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "targetInstances": { + "methods": { + "list": { + "id": "compute.targetInstances.list", + "path": "projects/{project}/zones/{zone}/targetInstances", + "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "TargetInstanceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of TargetInstance resources available to the specified project and zone." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "aggregatedList": { + "id": "compute.targetInstances.aggregatedList", + "path": "projects/{project}/aggregated/targetInstances", + "flatPath": "projects/{project}/aggregated/targetInstances", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetInstanceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of target instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." + }, + "get": { + "id": "compute.targetInstances.get", + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "targetInstance": { + "description": "Name of the TargetInstance resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "zone": { + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "response": { + "$ref": "TargetInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetInstance resource." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ServiceAttachmentsScopedList": { - "id": "ServiceAttachmentsScopedList", - "type": "object", - "properties": { - "serviceAttachments": { - "description": "A list of ServiceAttachments contained in this scope.", - "type": "array", - "items": { - "$ref": "ServiceAttachment" - } + "insert": { + "id": "compute.targetInstances.insert", + "path": "projects/{project}/zones/{zone}/targetInstances", + "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "TargetInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request." }, - "warning": { - "description": "Informational warning which replaces the list of service attachments when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.targetInstances.delete", + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetInstance resource." + }, + "setSecurityPolicy": { + "id": "compute.targetInstances.setSecurityPolicy", + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "targetInstance": { + "description": "Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "ServiceAttachment": { - "id": "ServiceAttachment", - "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", - "default": "compute#serviceAttachment", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.serviceAttachments.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "producerForwardingRule": { - "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", - "deprecated": true, - "type": "string" - }, - "targetService": { - "description": "The URL of a service serving the endpoint identified by this service attachment.", - "type": "string" - }, - "connectionPreference": { - "description": "The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "parameterOrder": [ + "project", + "zone", + "targetInstance" ], - "enum": [ - "ACCEPT_AUTOMATIC", - "ACCEPT_MANUAL", - "CONNECTION_PREFERENCE_UNSPECIFIED" - ] - }, - "connectedEndpoints": { - "description": "[Output Only] An array of connections for all the consumers connected to this service attachment.", - "type": "array", - "items": { - "$ref": "ServiceAttachmentConnectedEndpoint" - } - }, - "natSubnets": { - "description": "An array of URLs where each entry is the URL of a subnet provided by the service producer to use for NAT in this service attachment.", - "type": "array", - "items": { - "type": "string" - } - }, - "enableProxyProtocol": { - "description": "If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.", - "type": "boolean" - }, - "consumerRejectLists": { - "description": "Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.", - "type": "array", - "items": { - "type": "string" - } - }, - "consumerAcceptLists": { - "description": "Projects that are allowed to connect to this service attachment.", - "type": "array", - "items": { - "$ref": "ServiceAttachmentConsumerProjectLimit" - } - }, - "pscServiceAttachmentId": { - "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment.", - "$ref": "Uint128" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.", - "type": "string", - "format": "byte" - }, - "domainNames": { - "description": "If specified, the domain name will be used during the integration between the PSC connected endpoints and the Cloud DNS. For example, this is a valid domain name: \"p.mycompany.com.\". Current max number of domain names supported is 1.", - "type": "array", - "items": { - "type": "string" - } - }, - "reconcileConnections": { - "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false.", - "type": "boolean" - } - } - }, - "ServiceAttachmentConnectedEndpoint": { - "id": "ServiceAttachmentConnectedEndpoint", - "description": "[Output Only] A connection connected to this service attachment.", - "type": "object", - "properties": { - "status": { - "description": "The status of a connected endpoint to this service attachment.", - "type": "string", - "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer.", - "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", - "The connection is pending acceptance by the producer.", - "The consumer is still connected but not using the connection.", - "" + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ] - }, - "pscConnectionId": { - "description": "The PSC connection id of the connected endpoint.", - "type": "string", - "format": "uint64" - }, - "endpoint": { - "description": "The url of a connected endpoint.", - "type": "string" - }, - "consumerNetwork": { - "description": "The url of the consumer network.", - "type": "string" - } - } - }, - "ServiceAttachmentConsumerProjectLimit": { - "id": "ServiceAttachmentConsumerProjectLimit", - "type": "object", - "properties": { - "projectIdOrNum": { - "description": "The project id or number for the project to set the limit for.", - "type": "string" - }, - "networkUrl": { - "description": "The network URL for the network to set the limit for.", - "type": "string" - }, - "connectionLimit": { - "description": "The value of the limit to set.", - "type": "integer", - "format": "uint32" - } - } - }, - "Uint128": { - "id": "Uint128", - "type": "object", - "properties": { - "high": { - "type": "string", - "format": "uint64" - }, - "low": { - "type": "string", - "format": "uint64" + "description": "Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview" } } }, - "ServiceAttachmentList": { - "id": "ServiceAttachmentList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", - "default": "compute#serviceAttachmentList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of ServiceAttachment resources.", - "type": "array", - "items": { - "$ref": "ServiceAttachment" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "targetPools": { + "methods": { + "list": { + "id": "compute.targetPools.list", + "path": "projects/{project}/regions/{region}/targetPools", + "flatPath": "projects/{project}/regions/{region}/targetPools", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "TargetPoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of target pools available to the specified project and region." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "aggregatedList": { + "id": "compute.targetPools.aggregatedList", + "path": "projects/{project}/aggregated/targetPools", + "flatPath": "projects/{project}/aggregated/targetPools", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetPoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of target pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." + }, + "get": { + "id": "compute.targetPools.get", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "targetPool": { + "description": "Name of the TargetPool resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "SnapshotSettings": { - "id": "SnapshotSettings", - "type": "object", - "properties": { - "storageLocation": { - "description": "Policy of which storage location is going to be resolved, and additional data that particularizes how the policy is going to be carried out.", - "$ref": "SnapshotSettingsStorageLocationSettings" - } - } - }, - "SnapshotSettingsStorageLocationSettings": { - "id": "SnapshotSettingsStorageLocationSettings", - "type": "object", - "properties": { - "policy": { - "description": "The chosen location policy.", - "type": "string", - "enumDescriptions": [ - "Store snapshot in the same region as with the originating disk. No additional parameters are needed.", - "Store snapshot to the nearest multi region GCS bucket, relative to the originating disk. No additional parameters are needed.", - "Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field.", - "" + }, + "parameterOrder": [ + "project", + "region", + "targetPool" ], - "enum": [ - "LOCAL_REGION", - "NEAREST_MULTI_REGION", - "SPECIFIC_LOCATIONS", - "STORAGE_LOCATION_POLICY_UNSPECIFIED" - ] + "response": { + "$ref": "TargetPool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified target pool." }, - "locations": { - "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are GCS bucket locations.", - "type": "object", - "additionalProperties": { - "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" - } - } - } - }, - "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { - "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", - "description": "A structure for specifying storage locations.", - "type": "object", - "properties": { - "name": { - "description": "Name of the location. It should be one of the GCS buckets.", - "type": "string" - } - } - }, - "SslCertificateList": { - "id": "SslCertificateList", - "description": "Contains a list of SslCertificate resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#sslCertificateList", - "type": "string" + "insert": { + "id": "compute.targetPools.insert", + "path": "projects/{project}/regions/{region}/targetPools", + "flatPath": "projects/{project}/regions/{region}/targetPools", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "TargetPool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a target pool in the specified project and region using the data included in the request." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "delete": { + "id": "compute.targetPools.delete", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified target pool." }, - "items": { - "description": "A list of SslCertificate resources.", - "type": "array", - "items": { - "$ref": "SslCertificate" - } + "getHealth": { + "id": "compute.targetPools.getHealth", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the queried instance belongs.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "InstanceReference" + }, + "response": { + "$ref": "TargetPoolInstanceHealth" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "addHealthCheck": { + "id": "compute.targetPools.addHealthCheck", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the target pool to add a health check to.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsAddHealthCheckRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds health check URLs to a target pool." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "removeHealthCheck": { + "id": "compute.targetPools.removeHealthCheck", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the target pool to remove health checks from.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsRemoveHealthCheckRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Removes health check URL from a target pool." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "addInstance": { + "id": "compute.targetPools.addInstance", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to add instances to.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsAddInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Adds an instance to a target pool." + }, + "removeInstance": { + "id": "compute.targetPools.removeInstance", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "targetPool": { + "description": "Name of the TargetPool resource to remove instances from.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "SslCertificate": { - "id": "SslCertificate", - "description": "Represents an SSL certificate resource. Google Compute Engine has two SSL certificate resources: * [Global](/compute/docs/reference/rest/v1/sslCertificates) * [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The global SSL certificates (sslCertificates) are used by: - Global external Application Load Balancers - Classic Application Load Balancers - Proxy Network Load Balancers (with target SSL proxies) The regional SSL certificates (regionSslCertificates) are used by: - Regional external Application Load Balancers - Regional internal Application Load Balancers Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#sslCertificate for SSL certificates.", - "default": "compute#sslCertificate", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output only] Server-defined URL for the resource.", - "type": "string" - }, - "certificate": { - "description": "A value read into memory from a certificate file. The certificate file must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert.", - "type": "string" - }, - "privateKey": { - "description": "A value read into memory from a write-only private key file. The private key file must be in PEM format. For security, only insert requests include this field.", - "type": "string" - }, - "managed": { - "description": "Configuration and status of a managed SSL certificate.", - "$ref": "SslCertificateManagedSslCertificate" - }, - "selfManaged": { - "description": "Configuration and status of a self-managed SSL certificate.", - "$ref": "SslCertificateSelfManagedSslCertificate" - }, - "type": { - "description": "(Optional) Specifies the type of SSL certificate, either \"SELF_MANAGED\" or \"MANAGED\". If not specified, the certificate is self-managed and the fields certificate and private_key are used.", - "type": "string", - "enumDescriptions": [ - "Google-managed SSLCertificate.", - "Certificate uploaded by user.", - "" + }, + "parameterOrder": [ + "project", + "region", + "targetPool" ], - "enum": [ - "MANAGED", - "SELF_MANAGED", - "TYPE_UNSPECIFIED" - ] - }, - "subjectAlternativeNames": { - "description": "[Output Only] Domains associated with the certificate via Subject Alternative Name.", - "type": "array", - "items": { - "type": "string" - } - }, - "expireTime": { - "description": "[Output Only] Expire time of the certificate. RFC3339", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional SSL Certificate resides. This field is not applicable to global SSL Certificate.", - "type": "string" - } - } - }, - "SslCertificateManagedSslCertificate": { - "id": "SslCertificateManagedSslCertificate", - "description": "Configuration and status of a managed SSL certificate.", - "type": "object", - "properties": { - "domains": { - "description": "The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates).", - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "description": "[Output only] Status of the managed certificate resource.", - "type": "string", - "enumDescriptions": [ - "The certificate management is working, and a certificate has been provisioned.", - "", - "The certificate management is working. GCP will attempt to provision the first certificate.", - "Certificate provisioning failed due to an issue with the DNS or load balancing configuration. For details of which domain failed, consult domain_status field.", - "Certificate provisioning failed due to an issue with the DNS or load balancing configuration. It won't be retried. To try again delete and create a new managed SslCertificate resource. For details of which domain failed, consult domain_status field.", - "Renewal of the certificate has failed due to an issue with the DNS or load balancing configuration. The existing cert is still serving; however, it will expire shortly. To provision a renewed certificate, delete and create a new managed SslCertificate resource. For details on which domain failed, consult domain_status field." + "request": { + "$ref": "TargetPoolsRemoveInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "ACTIVE", - "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED", - "PROVISIONING", - "PROVISIONING_FAILED", - "PROVISIONING_FAILED_PERMANENTLY", - "RENEWAL_FAILED" - ] - }, - "domainStatus": { - "description": "[Output only] Detailed statuses of the domains specified for managed certificate resource.", - "type": "object", - "additionalProperties": { - "type": "string", - "enumDescriptions": [ - "A managed certificate can be provisioned, no issues for this domain.", - "", - "Failed to check CAA records for the domain.", - "Certificate issuance forbidden by an explicit CAA record for the domain.", - "There seems to be problem with the user's DNS or load balancer configuration for this domain.", - "Reached rate-limit for certificates per top-level private domain.", - "Certificate provisioning for this domain is under way. GCP will attempt to provision the first certificate." - ], - "enum": [ - "ACTIVE", - "DOMAIN_STATUS_UNSPECIFIED", - "FAILED_CAA_CHECKING", - "FAILED_CAA_FORBIDDEN", - "FAILED_NOT_VISIBLE", - "FAILED_RATE_LIMITED", - "PROVISIONING" - ] - } - } - } - }, - "SslCertificateSelfManagedSslCertificate": { - "id": "SslCertificateSelfManagedSslCertificate", - "description": "Configuration and status of a self-managed SSL certificate.", - "type": "object", - "properties": { - "certificate": { - "description": "A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert.", - "type": "string" - }, - "privateKey": { - "description": "A write-only private key in PEM format. Only insert requests will include this field.", - "type": "string" - } - } - }, - "SslCertificateAggregatedList": { - "id": "SslCertificateAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#sslCertificateAggregatedList for lists of SSL Certificates.", - "default": "compute#sslCertificateAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of SslCertificatesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of SslCertificates.", - "$ref": "SslCertificatesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "description": "Removes instance URL from a target pool." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setBackup": { + "id": "compute.targetPools.setBackup", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "httpMethod": "POST", + "parameters": { + "failoverRatio": { + "description": "New failoverRatio value for the target pool.", + "location": "query", + "type": "number", + "format": "float" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to set a backup pool for.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SslCertificatesScopedList": { - "id": "SslCertificatesScopedList", - "type": "object", - "properties": { - "sslCertificates": { - "description": "List of SslCertificates contained in this scope.", - "type": "array", - "items": { - "$ref": "SslCertificate" - } - }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes a backup target pool's configurations." + }, + "setSecurityPolicy": { + "id": "compute.targetPools.setSecurityPolicy", + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview" } } }, - "SslPoliciesList": { - "id": "SslPoliciesList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#sslPoliciesList for lists of sslPolicies.", - "default": "compute#sslPoliciesList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of SslPolicy resources.", - "type": "array", - "items": { - "$ref": "SslPolicy" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "targetSslProxies": { + "methods": { + "list": { + "id": "compute.targetSslProxies.list", + "path": "projects/{project}/global/targetSslProxies", + "flatPath": "projects/{project}/global/targetSslProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "SslPolicy": { - "id": "SslPolicy", - "description": "Represents an SSL Policy resource. Use SSL policies to control SSL features, such as versions and cipher suites, that are offered by Application Load Balancers and proxy Network Load Balancers. For more information, read SSL policies overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output only] Type of the resource. Always compute#sslPolicyfor SSL policies.", - "default": "compute#sslPolicy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "name": { - "description": "Name of the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "profile": { - "description": "Profile specifies the set of SSL features that can be used by the load balancer when negotiating SSL with clients. This can be one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to enable must be specified in the customFeatures field.", - "type": "string", - "enumDescriptions": [ - "Compatible profile. Allows the broadset set of clients, even those which support only out-of-date SSL features to negotiate with the load balancer.", - "Custom profile. Allow only the set of allowed SSL features specified in the customFeatures field.", - "Modern profile. Supports a wide set of SSL features, allowing modern clients to negotiate SSL with the load balancer.", - "Restricted profile. Supports a reduced set of SSL features, intended to meet stricter compliance requirements." + }, + "parameterOrder": [ + "project" ], - "enum": [ - "COMPATIBLE", - "CUSTOM", - "MODERN", - "RESTRICTED" - ] - }, - "minTlsVersion": { - "description": "The minimum version of SSL protocol that can be used by the clients to establish a connection with the load balancer. This can be one of TLS_1_0, TLS_1_1, TLS_1_2.", - "type": "string", - "enumDescriptions": [ - "TLS 1.0", - "TLS 1.1", - "TLS 1.2" + "response": { + "$ref": "TargetSslProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "TLS_1_0", - "TLS_1_1", - "TLS_1_2" - ] - }, - "enabledFeatures": { - "description": "[Output Only] The list of features enabled in the SSL policy.", - "type": "array", - "items": { - "type": "string" - } - }, - "customFeatures": { - "description": "A list of features enabled when the selected profile is CUSTOM. The method returns the set of features that can be specified in this list. This field must be empty if the profile is not CUSTOM.", - "type": "array", - "items": { - "type": "string" - } - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a SslPolicy. An up-to-date fingerprint must be provided in order to update the SslPolicy, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an SslPolicy.", - "type": "string", - "format": "byte" + "description": "Retrieves the list of TargetSslProxy resources available to the specified project." }, - "warnings": { - "description": "[Output Only] If potential misconfigurations are detected for this SSL policy, this field will be populated with warning messages.", - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } + "get": { + "id": "compute.targetSslProxies.get", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - }, - "region": { - "description": "[Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies.", - "type": "string" - } - } - }, - "SslPoliciesListAvailableFeaturesResponse": { - "id": "SslPoliciesListAvailableFeaturesResponse", - "type": "object", - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SslPoliciesAggregatedList": { - "id": "SslPoliciesAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL Policies.", - "default": "compute#sslPoliciesAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "response": { + "$ref": "TargetSslProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetSslProxy resource." }, - "items": { - "description": "A list of SslPoliciesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of SSL policies.", - "$ref": "SslPoliciesScopedList" - } + "insert": { + "id": "compute.targetSslProxies.insert", + "path": "projects/{project}/global/targetSslProxies", + "flatPath": "projects/{project}/global/targetSslProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "TargetSslProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "delete": { + "id": "compute.targetSslProxies.delete", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetSslProxy resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "setBackendService": { + "id": "compute.targetSslProxies.setBackendService", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "request": { + "$ref": "TargetSslProxiesSetBackendServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the BackendService for TargetSslProxy." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setSslCertificates": { + "id": "compute.targetSslProxies.setSslCertificates", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "request": { + "$ref": "TargetSslProxiesSetSslCertificatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes SslCertificates for TargetSslProxy." }, - "etag": { - "type": "string" + "setCertificateMap": { + "id": "compute.targetSslProxies.setCertificateMap", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "request": { + "$ref": "TargetSslProxiesSetCertificateMapRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the Certificate Map for TargetSslProxy." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SslPoliciesScopedList": { - "id": "SslPoliciesScopedList", - "type": "object", - "properties": { - "sslPolicies": { - "description": "A list of SslPolicies contained in this scope.", - "type": "array", - "items": { - "$ref": "SslPolicy" - } + "setProxyHeader": { + "id": "compute.targetSslProxies.setProxyHeader", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "request": { + "$ref": "TargetSslProxiesSetProxyHeaderRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Changes the ProxyHeaderType for TargetSslProxy." }, - "warning": { - "description": "Informational warning which replaces the list of SSL policies when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "setSslPolicy": { + "id": "compute.targetSslProxies.setSslPolicy", + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } } - } + }, + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "request": { + "$ref": "SslPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the load balancer. They do not affect the connection between the load balancer and the backends." } } }, - "SubnetworkList": { - "id": "SubnetworkList", - "description": "Contains a list of Subnetwork resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#subnetworkList for lists of subnetworks.", - "default": "compute#subnetworkList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Subnetwork resources.", - "type": "array", - "items": { - "$ref": "Subnetwork" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "targetTcpProxies": { + "methods": { + "list": { + "id": "compute.targetTcpProxies.list", + "path": "projects/{project}/global/targetTcpProxies", + "flatPath": "projects/{project}/global/targetTcpProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "Subnetwork": { - "id": "Subnetwork", - "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.", - "default": "compute#subnetwork", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.", - "type": "string" - }, - "network": { - "description": "The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.", - "type": "string" - }, - "ipCidrRange": { - "description": "The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.", - "type": "string" - }, - "reservedInternalRange": { - "description": "The URL of the reserved internal range.", - "type": "string" - }, - "gatewayAddress": { - "description": "[Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.", - "type": "string" - }, - "region": { - "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "privateIpGoogleAccess": { - "description": "Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.", - "type": "boolean" - }, - "secondaryIpRanges": { - "description": "An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.", - "type": "array", - "items": { - "$ref": "SubnetworkSecondaryRange" - } - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.", - "type": "string", - "format": "byte" - }, - "enableFlowLogs": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", - "type": "boolean" - }, - "privateIpv6GoogleAccess": { - "description": "This field is for internal use. This field can be both set at resource creation time and updated using patch.", - "type": "string", - "enumDescriptions": [ - "Disable private IPv6 access to/from Google services.", - "Bidirectional private IPv6 access to/from Google services.", - "Outbound private IPv6 access from VMs in this subnet to Google services." + }, + "parameterOrder": [ + "project" ], - "enum": [ - "DISABLE_GOOGLE_ACCESS", - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - ] - }, - "ipv6CidrRange": { - "description": "[Output Only] This field is for internal use.", - "type": "string" + "response": { + "$ref": "TargetTcpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of TargetTcpProxy resources available to the specified project." }, - "externalIpv6Prefix": { - "description": "The external IPv6 address range that is owned by this subnetwork.", - "type": "string" + "aggregatedList": { + "id": "compute.targetTcpProxies.aggregatedList", + "path": "projects/{project}/aggregated/targetTcpProxies", + "flatPath": "projects/{project}/aggregated/targetTcpProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetTcpProxyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "internalIpv6Prefix": { - "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", - "type": "string" + "get": { + "id": "compute.targetTcpProxies.get", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "response": { + "$ref": "TargetTcpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetTcpProxy resource." }, - "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", - "type": "string", - "enumDescriptions": [ - "Subnet reserved for Global Envoy-based Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", - "Regular user created or automatically created subnet.", - "Subnetwork used as source range for Private NAT Gateways.", - "Regular user created or automatically created subnet.", - "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Envoy-based Load Balancing." + "insert": { + "id": "compute.targetTcpProxies.insert", + "path": "projects/{project}/global/targetTcpProxies", + "flatPath": "projects/{project}/global/targetTcpProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "GLOBAL_MANAGED_PROXY", - "INTERNAL_HTTPS_LOAD_BALANCER", - "PRIVATE", - "PRIVATE_NAT", - "PRIVATE_RFC_1918", - "PRIVATE_SERVICE_CONNECT", - "REGIONAL_MANAGED_PROXY" - ] + "request": { + "$ref": "TargetTcpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request." }, - "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", - "type": "string", - "enumDescriptions": [ - "The ACTIVE subnet that is currently used.", - "The BACKUP subnet that could be promoted to ACTIVE." + "delete": { + "id": "compute.targetTcpProxies.delete", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetTcpProxy" ], - "enum": [ - "ACTIVE", - "BACKUP" - ] - }, - "state": { - "description": "[Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY", - "type": "string", - "enumDescriptions": [ - "Subnetwork is being drained.", - "Subnetwork is ready for use." + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "DRAINING", - "READY" - ] - }, - "logConfig": { - "description": "This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.", - "$ref": "SubnetworkLogConfig" + "description": "Deletes the specified TargetTcpProxy resource." }, - "stackType": { - "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", - "type": "string", - "enumDescriptions": [ - "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses." + "setBackendService": { + "id": "compute.targetTcpProxies.setBackendService", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetTcpProxy" ], - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ] - }, - "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", - "type": "string", - "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", - "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." + "request": { + "$ref": "TargetTcpProxiesSetBackendServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "EXTERNAL", - "INTERNAL" - ] - } - } - }, - "SubnetworkSecondaryRange": { - "id": "SubnetworkSecondaryRange", - "description": "Represents a secondary IP range of a subnetwork.", - "type": "object", - "properties": { - "rangeName": { - "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", - "type": "string" - }, - "ipCidrRange": { - "description": "The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list.", - "type": "string" - }, - "reservedInternalRange": { - "description": "The URL of the reserved internal range.", - "type": "string" - } - } - }, - "SubnetworkLogConfig": { - "id": "SubnetworkLogConfig", - "description": "The available logging options for this subnetwork.", - "type": "object", - "properties": { - "enable": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", - "type": "boolean" + "description": "Changes the BackendService for TargetTcpProxy." }, - "aggregationInterval": { - "description": "Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection.", - "type": "string", - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" + "setProxyHeader": { + "id": "compute.targetTcpProxies.setProxyHeader", + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "targetTcpProxy" ], - "enum": [ - "INTERVAL_10_MIN", - "INTERVAL_15_MIN", - "INTERVAL_1_MIN", - "INTERVAL_30_SEC", - "INTERVAL_5_MIN", - "INTERVAL_5_SEC" - ] - }, - "flowSampling": { - "description": "Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported.", - "type": "number", - "format": "float" - }, - "metadata": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.", - "type": "string", - "enumDescriptions": [ - "", - "", - "" + "request": { + "$ref": "TargetTcpProxiesSetProxyHeaderRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" ], - "enum": [ - "CUSTOM_METADATA", - "EXCLUDE_ALL_METADATA", - "INCLUDE_ALL_METADATA" - ] - }, - "metadataFields": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" was set to CUSTOM_METADATA.", - "type": "array", - "items": { - "type": "string" - } - }, - "filterExpr": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. The filter expression is used to define which VPC flow logs should be exported to Cloud Logging.", - "type": "string" + "description": "Changes the ProxyHeaderType for TargetTcpProxy." } } }, - "SubnetworkAggregatedList": { - "id": "SubnetworkAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#subnetworkAggregatedList for aggregated lists of subnetworks.", - "default": "compute#subnetworkAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of SubnetworksScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of Subnetworks.", - "$ref": "SubnetworksScopedList" - } + "regionTargetTcpProxies": { + "methods": { + "list": { + "id": "compute.regionTargetTcpProxies.list", + "path": "projects/{project}/regions/{region}/targetTcpProxies", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "TargetTcpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of TargetTcpProxy resources available to the specified project in a given region." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.regionTargetTcpProxies.get", + "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "response": { + "$ref": "TargetTcpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified TargetTcpProxy resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.regionTargetTcpProxies.insert", + "path": "projects/{project}/regions/{region}/targetTcpProxies", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "TargetTcpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a TargetTcpProxy resource in the specified project and region using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.regionTargetTcpProxies.delete", + "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } + }, + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified TargetTcpProxy resource." } } }, - "SubnetworksScopedList": { - "id": "SubnetworksScopedList", - "type": "object", - "properties": { - "subnetworks": { - "description": "A list of subnetworks contained in this scope.", - "type": "array", - "items": { - "$ref": "Subnetwork" - } - }, - "warning": { - "description": "An informational warning that appears when the list of addresses is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "targetVpnGateways": { + "methods": { + "list": { + "id": "compute.targetVpnGateways.list", + "path": "projects/{project}/regions/{region}/targetVpnGateways", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } - } - } - }, - "UsableSubnetworksAggregatedList": { - "id": "UsableSubnetworksAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#usableSubnetworksAggregatedList for aggregated lists of usable subnetworks.", - "default": "compute#usableSubnetworksAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "TargetVpnGatewayList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of target VPN gateways available to the specified project and region." }, - "items": { - "description": "[Output] A list of usable subnetwork URLs.", - "type": "array", - "items": { - "$ref": "UsableSubnetwork" - } + "aggregatedList": { + "id": "compute.targetVpnGateways.aggregatedList", + "path": "projects/{project}/aggregated/targetVpnGateways", + "flatPath": "projects/{project}/aggregated/targetVpnGateways", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetVpnGatewayAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of target VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. In special cases listUsable may return 0 subnetworks and nextPageToken which still should be used to get the next page of results.", - "type": "string" + "get": { + "id": "compute.targetVpnGateways.get", + "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "targetVpnGateway": { + "description": "Name of the target VPN gateway to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetVpnGateway" + ], + "response": { + "$ref": "TargetVpnGateway" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified target VPN gateway." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.targetVpnGateways.insert", + "path": "projects/{project}/regions/{region}/targetVpnGateways", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "TargetVpnGateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a target VPN gateway in the specified project and region using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.targetVpnGateways.delete", + "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "targetVpnGateway": { + "description": "Name of the target VPN gateway to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "targetVpnGateway" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified target VPN gateway." + }, + "setLabels": { + "id": "compute.targetVpnGateways.setLabels", + "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation." } } }, - "UsableSubnetwork": { - "id": "UsableSubnetwork", - "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", - "type": "object", - "properties": { - "subnetwork": { - "description": "Subnetwork URL.", - "type": "string" - }, - "network": { - "description": "Network URL.", - "type": "string" - }, - "ipCidrRange": { - "description": "The range of internal addresses that are owned by this subnetwork.", - "type": "string" - }, - "secondaryIpRanges": { - "description": "Secondary IP ranges.", - "type": "array", - "items": { - "$ref": "UsableSubnetworkSecondaryRange" - } - }, - "stackType": { - "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", - "type": "string", - "enumDescriptions": [ - "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses." + "urlMaps": { + "methods": { + "list": { + "id": "compute.urlMaps.list", + "path": "projects/{project}/global/urlMaps", + "flatPath": "projects/{project}/global/urlMaps", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ] - }, - "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", - "type": "string", - "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", - "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." + "response": { + "$ref": "UrlMapList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "EXTERNAL", - "INTERNAL" - ] + "description": "Retrieves the list of UrlMap resources available to the specified project." }, - "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", - "type": "string", - "enumDescriptions": [ - "Subnet reserved for Global Envoy-based Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", - "Regular user created or automatically created subnet.", - "Subnetwork used as source range for Private NAT Gateways.", - "Regular user created or automatically created subnet.", - "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Envoy-based Load Balancing." + "aggregatedList": { + "id": "compute.urlMaps.aggregatedList", + "path": "projects/{project}/aggregated/urlMaps", + "flatPath": "projects/{project}/aggregated/urlMaps", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" ], - "enum": [ - "GLOBAL_MANAGED_PROXY", - "INTERNAL_HTTPS_LOAD_BALANCER", - "PRIVATE", - "PRIVATE_NAT", - "PRIVATE_RFC_1918", - "PRIVATE_SERVICE_CONNECT", - "REGIONAL_MANAGED_PROXY" - ] - }, - "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", - "type": "string", - "enumDescriptions": [ - "The ACTIVE subnet that is currently used.", - "The BACKUP subnet that could be promoted to ACTIVE." + "response": { + "$ref": "UrlMapsAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "ACTIVE", - "BACKUP" - ] - }, - "externalIpv6Prefix": { - "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", - "type": "string" - }, - "internalIpv6Prefix": { - "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", - "type": "string" - } - } - }, - "UsableSubnetworkSecondaryRange": { - "id": "UsableSubnetworkSecondaryRange", - "description": "Secondary IP range of a usable subnetwork.", - "type": "object", - "properties": { - "rangeName": { - "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", - "type": "string" - }, - "ipCidrRange": { - "description": "The range of IP addresses belonging to this subnetwork secondary range.", - "type": "string" - } - } - }, - "SubnetworksExpandIpCidrRangeRequest": { - "id": "SubnetworksExpandIpCidrRangeRequest", - "type": "object", - "properties": { - "ipCidrRange": { - "description": "The IP (in CIDR format or netmask) of internal addresses that are legal on this Subnetwork. This range should be disjoint from other subnetworks within this network. This range can only be larger than (i.e. a superset of) the range previously defined before the update.", - "type": "string" - } - } - }, - "SubnetworksSetPrivateIpGoogleAccessRequest": { - "id": "SubnetworksSetPrivateIpGoogleAccessRequest", - "type": "object", - "properties": { - "privateIpGoogleAccess": { - "type": "boolean" - } - } - }, - "TargetGrpcProxyList": { - "id": "TargetGrpcProxyList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", - "default": "compute#targetGrpcProxyList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetGrpcProxy resources.", - "type": "array", - "items": { - "$ref": "TargetGrpcProxy" - } + "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.urlMaps.get", + "path": "projects/{project}/global/urlMaps/{urlMap}", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "response": { + "$ref": "UrlMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified UrlMap resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "insert": { + "id": "compute.urlMaps.insert", + "path": "projects/{project}/global/urlMaps", + "flatPath": "projects/{project}/global/urlMaps", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a UrlMap resource in the specified project using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.urlMaps.delete", + "path": "projects/{project}/global/urlMaps/{urlMap}", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "urlMap": { + "description": "Name of the UrlMap resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "TargetGrpcProxy": { - "id": "TargetGrpcProxy", - "description": "Represents a Target gRPC Proxy resource. A target gRPC proxy is a component of load balancers intended for load balancing gRPC traffic. Only global forwarding rules with load balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target gRPC Proxy references a URL map that specifies how traffic is routed to gRPC backend services.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", - "default": "compute#targetGrpcProxy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.targetGrpcProxies.insert" - ] }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL with id for the resource.", - "type": "string" - }, - "urlMap": { - "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService. The protocol field in the BackendService must be set to GRPC.", - "type": "string" - }, - "validateForProxyless": { - "description": "If true, indicates that the BackendServices referenced by the urlMap may be accessed by gRPC applications without using a sidecar proxy. This will enable configuration checks on urlMap and its referenced BackendServices to not allow unsupported features. A gRPC application must use \"xds:///\" scheme in the target URI of the service it is connecting to. If false, indicates that the BackendServices referenced by the urlMap will be accessed by gRPC applications via a sidecar proxy. In this case, a gRPC application must not use \"xds:///\" scheme in the target URI of the service it is connecting to", - "type": "boolean" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetGrpcProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetGrpcProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetGrpcProxy.", - "type": "string", - "format": "byte" - } - } - }, - "TargetHttpProxyList": { - "id": "TargetHttpProxyList", - "description": "A list of TargetHttpProxy resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource. Always compute#targetHttpProxyList for lists of target HTTP proxies.", - "default": "compute#targetHttpProxyList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetHttpProxy resources.", - "type": "array", - "items": { - "$ref": "TargetHttpProxy" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "parameterOrder": [ + "project", + "urlMap" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified UrlMap resource." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "update": { + "id": "compute.urlMaps.update", + "path": "projects/{project}/global/urlMaps/{urlMap}", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "PUT", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "requestId": { + "description": "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).", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "urlMap": { + "description": "Name of the UrlMap resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "TargetHttpProxy": { - "id": "TargetHttpProxy", - "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target HTTP proxy is a component of Google Cloud HTTP load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetHttpProxy for target HTTP proxies.", - "default": "compute#targetHttpProxy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "urlMap": { - "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional Target HTTP Proxy resides. This field is not applicable to global Target HTTP Proxies.", - "type": "string" - }, - "proxyBind": { - "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", - "type": "boolean" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.", - "type": "string", - "format": "byte" - }, - "httpKeepAliveTimeoutSec": { - "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", - "type": "integer", - "format": "int32" - } - } - }, - "UrlMapReference": { - "id": "UrlMapReference", - "type": "object", - "properties": { - "urlMap": { - "type": "string" - } - } - }, - "TargetHttpProxyAggregatedList": { - "id": "TargetHttpProxyAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies.", - "default": "compute#targetHttpProxyAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetHttpProxiesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of TargetHttpProxies.", - "$ref": "TargetHttpProxiesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetHttpProxiesScopedList": { - "id": "TargetHttpProxiesScopedList", - "type": "object", - "properties": { - "targetHttpProxies": { - "description": "A list of TargetHttpProxies contained in this scope.", - "type": "array", - "items": { - "$ref": "TargetHttpProxy" - } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified UrlMap resource with the data included in the request." }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "patch": { + "id": "compute.urlMaps.patch", + "path": "projects/{project}/global/urlMaps/{urlMap}", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "urlMap": { + "description": "Name of the UrlMap resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + }, + "validate": { + "id": "compute.urlMaps.validate", + "path": "projects/{project}/global/urlMaps/{urlMap}/validate", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "urlMap": { + "description": "Name of the UrlMap resource to be validated as.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "UrlMapsValidateRequest" + }, + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap." + }, + "invalidateCache": { + "id": "compute.urlMaps.invalidateCache", + "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "CacheInvalidationRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. For more information, see [Invalidating cached content](/cdn/docs/invalidating-cached-content)." } } }, - "TargetHttpsProxyList": { - "id": "TargetHttpsProxyList", - "description": "Contains a list of TargetHttpsProxy resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource. Always compute#targetHttpsProxyList for lists of target HTTPS proxies.", - "default": "compute#targetHttpsProxyList", - "type": "string" + "regionUrlMaps": { + "methods": { + "list": { + "id": "compute.regionUrlMaps.list", + "path": "projects/{project}/regions/{region}/urlMaps", + "flatPath": "projects/{project}/regions/{region}/urlMaps", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "UrlMapList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "get": { + "id": "compute.regionUrlMaps.get", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "response": { + "$ref": "UrlMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified UrlMap resource." }, - "items": { - "description": "A list of TargetHttpsProxy resources.", - "type": "array", - "items": { - "$ref": "TargetHttpsProxy" - } + "insert": { + "id": "compute.regionUrlMaps.insert", + "path": "projects/{project}/regions/{region}/urlMaps", + "flatPath": "projects/{project}/regions/{region}/urlMaps", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "location": "query", + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a UrlMap resource in the specified project using the data included in the request." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "delete": { + "id": "compute.regionUrlMaps.delete", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified UrlMap resource." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "update": { + "id": "compute.regionUrlMaps.update", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "httpMethod": "PUT", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to update.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Updates the specified UrlMap resource with the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "patch": { + "id": "compute.regionUrlMaps.patch", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "httpMethod": "PATCH", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to patch.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + }, + "validate": { + "id": "compute.regionUrlMaps.validate", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region scoping this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "urlMap": { + "description": "Name of the UrlMap resource to be validated as.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "TargetHttpsProxy": { - "id": "TargetHttpsProxy", - "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetHttpsProxy for target HTTPS proxies.", - "default": "compute#targetHttpsProxy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "urlMap": { - "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines the mapping from URL to the BackendService. For example, the following are all valid URLs for specifying a URL map: - https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - projects/project/global/urlMaps/url-map - global/urlMaps/url-map ", - "type": "string" - }, - "sslCertificates": { - "description": "URLs to SslCertificate resources that are used to authenticate connections between users and the load balancer. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates. sslCertificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.", - "type": "array", - "items": { - "type": "string" - } - }, - "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", - "type": "string" - }, - "quicOverride": { - "description": "Specifies the QUIC override policy for this TargetHttpsProxy resource. This setting determines whether the load balancer attempts to negotiate QUIC with clients. You can specify NONE, ENABLE, or DISABLE. - When quic-override is set to NONE, Google manages whether QUIC is used. - When quic-override is set to ENABLE, the load balancer uses QUIC when possible. - When quic-override is set to DISABLE, the load balancer doesn't use QUIC. - If the quic-override flag is not specified, NONE is implied. ", - "type": "string", - "enumDescriptions": [ - "The load balancer will not attempt to negotiate QUIC with clients.", - "The load balancer will attempt to negotiate QUIC with clients.", - "No overrides to the default QUIC policy. This option is implicit if no QUIC override has been specified in the request." + }, + "parameterOrder": [ + "project", + "region", + "urlMap" ], - "enum": [ - "DISABLE", - "ENABLE", - "NONE" - ] - }, - "sslPolicy": { - "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no SSL policy configured.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional TargetHttpsProxy resides. This field is not applicable to global TargetHttpsProxies.", - "type": "string" - }, - "proxyBind": { - "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", - "type": "boolean" - }, - "serverTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, communications are not encrypted.", - "type": "string" - }, - "authorizationPolicy": { - "description": "Optional. A URL referring to a networksecurity.AuthorizationPolicy resource that describes how the proxy should authorize inbound traffic. If left blank, access will not be restricted by an authorization policy. Refer to the AuthorizationPolicy resource for additional details. authorizationPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field currently has no impact.", - "type": "string" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in order to patch the TargetHttpsProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpsProxy.", - "type": "string", - "format": "byte" - }, - "httpKeepAliveTimeoutSec": { - "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", - "type": "integer", - "format": "int32" + "request": { + "$ref": "RegionUrlMapsValidateRequest" + }, + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap." } } }, - "TargetHttpsProxyAggregatedList": { - "id": "TargetHttpsProxyAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies.", - "default": "compute#targetHttpsProxyAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "vpnGateways": { + "methods": { + "list": { + "id": "compute.vpnGateways.list", + "path": "projects/{project}/regions/{region}/vpnGateways", + "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "VpnGatewayList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of VPN gateways available to the specified project and region." }, - "items": { - "description": "A list of TargetHttpsProxiesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of TargetHttpsProxies.", - "$ref": "TargetHttpsProxiesScopedList" - } + "aggregatedList": { + "id": "compute.vpnGateways.aggregatedList", + "path": "projects/{project}/aggregated/vpnGateways", + "flatPath": "projects/{project}/aggregated/vpnGateways", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "VpnGatewayAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" + "get": { + "id": "compute.vpnGateways.get", + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "vpnGateway": { + "description": "Name of the VPN gateway to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "vpnGateway" + ], + "response": { + "$ref": "VpnGateway" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified VPN gateway." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "getStatus": { + "id": "compute.vpnGateways.getStatus", + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "vpnGateway": { + "description": "Name of the VPN gateway to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "vpnGateway" + ], + "response": { + "$ref": "VpnGatewaysGetStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the status for the specified VPN gateway." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.vpnGateways.insert", + "path": "projects/{project}/regions/{region}/vpnGateways", + "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetHttpsProxiesScopedList": { - "id": "TargetHttpsProxiesScopedList", - "type": "object", - "properties": { - "targetHttpsProxies": { - "description": "A list of TargetHttpsProxies contained in this scope.", - "type": "array", - "items": { - "$ref": "TargetHttpsProxy" - } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "VpnGateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a VPN gateway in the specified project and region using the data included in the request." }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.vpnGateways.delete", + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "vpnGateway": { + "description": "Name of the VPN gateway to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "TargetHttpsProxiesSetSslCertificatesRequest": { - "id": "TargetHttpsProxiesSetSslCertificatesRequest", - "type": "object", - "properties": { - "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetHttpsProxiesSetCertificateMapRequest": { - "id": "TargetHttpsProxiesSetCertificateMapRequest", - "type": "object", - "properties": { - "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", - "type": "string" - } - } - }, - "SslPolicyReference": { - "id": "SslPolicyReference", - "type": "object", - "properties": { - "sslPolicy": { - "description": "URL of the SSL policy resource. Set this to empty string to clear any existing SSL policy associated with the target proxy resource.", - "type": "string" - } - } - }, - "TargetHttpsProxiesSetQuicOverrideRequest": { - "id": "TargetHttpsProxiesSetQuicOverrideRequest", - "type": "object", - "properties": { - "quicOverride": { - "description": "QUIC policy for the TargetHttpsProxy resource.", - "type": "string", - "enumDescriptions": [ - "The load balancer will not attempt to negotiate QUIC with clients.", - "The load balancer will attempt to negotiate QUIC with clients.", - "No overrides to the default QUIC policy. This option is implicit if no QUIC override has been specified in the request." + }, + "parameterOrder": [ + "project", + "region", + "vpnGateway" ], - "enum": [ - "DISABLE", - "ENABLE", - "NONE" - ] - } - } - }, - "RegionTargetHttpsProxiesSetSslCertificatesRequest": { - "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", - "type": "object", - "properties": { - "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetInstanceList": { - "id": "TargetInstanceList", - "description": "Contains a list of TargetInstance resources.", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#targetInstanceList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetInstance resources.", - "type": "array", - "items": { - "$ref": "TargetInstance" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified VPN gateway." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "testIamPermissions": { + "id": "compute.vpnGateways.testIamPermissions", + "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "The name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "TargetInstance": { - "id": "TargetInstance", - "description": "Represents a Target Instance resource. You can use a target instance to handle traffic for one or more forwarding rules, which is ideal for forwarding protocol traffic that is managed by a single source. For example, ESP, AH, TCP, or UDP. For more information, read Target instances.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] The type of the resource. Always compute#targetInstance for target instances.", - "default": "compute#targetInstance", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "zone": { - "description": "[Output Only] URL of the zone where the target instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "natPolicy": { - "description": "Must have a value of NO_NAT. Protocol forwarding delivers packets while preserving the destination IP address of the forwarding rule referencing the target instance.", - "type": "string", - "enumDescriptions": [ - "No NAT performed." + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ], - "enum": [ - "NO_NAT" - ] - }, - "instance": { - "description": "A URL to the virtual machine instance that handles traffic for this target instance. When creating a target instance, you can provide the fully-qualified URL or a valid partial URL to the desired virtual machine. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance - zones/zone/instances/instance ", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "network": { - "description": "The URL of the network this target instance uses to forward traffic. If not specified, the traffic will be forwarded to the network that the default network interface belongs to.", - "type": "string" + "description": "Returns permissions that a caller has on the specified resource." }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this target instance.", - "type": "string" + "setLabels": { + "id": "compute.vpnGateways.setLabels", + "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation." } } }, - "TargetInstanceAggregatedList": { - "id": "TargetInstanceAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#targetInstanceAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetInstance resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of target instances.", - "$ref": "TargetInstancesScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "vpnTunnels": { + "methods": { + "list": { + "id": "compute.vpnTunnels.list", + "path": "projects/{project}/regions/{region}/vpnTunnels", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "VpnTunnelList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "aggregatedList": { + "id": "compute.vpnTunnels.aggregatedList", + "path": "projects/{project}/aggregated/vpnTunnels", + "flatPath": "projects/{project}/aggregated/vpnTunnels", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "location": "query", + "type": "string", + "format": "int64" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "VpnTunnelAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves an aggregated list of VPN tunnels. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetInstancesScopedList": { - "id": "TargetInstancesScopedList", - "type": "object", - "properties": { - "targetInstances": { - "description": "A list of target instances contained in this scope.", - "type": "array", - "items": { - "$ref": "TargetInstance" - } + "get": { + "id": "compute.vpnTunnels.get", + "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "vpnTunnel": { + "description": "Name of the VpnTunnel resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "vpnTunnel" + ], + "response": { + "$ref": "VpnTunnel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified VpnTunnel resource." }, - "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "insert": { + "id": "compute.vpnTunnels.insert", + "path": "projects/{project}/regions/{region}/vpnTunnels", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" } - } - } - } - }, - "TargetPoolList": { - "id": "TargetPoolList", - "description": "Contains a list of TargetPool resources.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetPoolList for lists of target pools.", - "default": "compute#targetPoolList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetPool resources.", - "type": "array", - "items": { - "$ref": "TargetPool" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "VpnTunnel" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request." }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "delete": { + "id": "compute.vpnTunnels.delete", + "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "httpMethod": "DELETE", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "region": { + "description": "Name of the region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "vpnTunnel": { + "description": "Name of the VpnTunnel resource to delete.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" } - } - } - } - }, - "TargetPool": { - "id": "TargetPool", - "description": "Represents a Target Pool resource. Target pools are used with external passthrough Network Load Balancers. A target pool references member instances, an associated legacy HttpHealthCheck resource, and, optionally, a backup target pool. For more information, read Using target pools.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#targetPool for target pools.", - "default": "compute#targetPool", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the target pool resides.", - "type": "string" - }, - "healthChecks": { - "description": "The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. Only legacy HttpHealthChecks are supported. Only one health check may be specified.", - "type": "array", - "items": { - "type": "string" - } - }, - "instances": { - "description": "A list of resource URLs to the virtual machine instances serving this pool. They must live in zones contained in the same region as this pool.", - "type": "array", - "items": { - "type": "string" - } - }, - "sessionAffinity": { - "description": "Session affinity option, must be one of the following values: NONE: Connections from the same client IP may go to any instance in the pool. CLIENT_IP: Connections from the same client IP will go to the same instance in the pool while that instance remains healthy. CLIENT_IP_PROTO: Connections from the same client IP with the same IP protocol will go to the same instance in the pool while that instance remains healthy.", - "type": "string", - "enumDescriptions": [ - "2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.", - "1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.", - "5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.", - "The hash is based on a user specified header field.", - "The hash is based on a user provided cookie.", - "No session affinity. Connections from the same client IP may go to any instance in the pool." + }, + "parameterOrder": [ + "project", + "region", + "vpnTunnel" ], - "enum": [ - "CLIENT_IP", - "CLIENT_IP_NO_DESTINATION", - "CLIENT_IP_PORT_PROTO", - "CLIENT_IP_PROTO", - "GENERATED_COOKIE", - "HEADER_FIELD", - "HTTP_COOKIE", - "NONE" - ] - }, - "failoverRatio": { - "description": "This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool (i.e., not as a backup pool to some other target pool). The value of the field must be in [0, 1]. If set, backupPool must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool. In case where failoverRatio is not set or all the instances in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy instances with the best effort, or to all instances when no instance is healthy.", - "type": "number", - "format": "float" - }, - "backupPool": { - "description": "The server-defined URL for the resource. This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its failoverRatio field is properly set to a value between [0, 1]. backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances in the primary pool is at or below failoverRatio, traffic arriving at the load-balanced IP will be directed to the backup pool. In case where failoverRatio and backupPool are not set, or all the instances in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy instances with the best effort, or to all instances when no instance is healthy.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Deletes the specified VpnTunnel resource." }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this target pool.", - "type": "string" + "setLabels": { + "id": "compute.vpnTunnels.setLabels", + "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "region", + "resource" + ], + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation." } } }, - "TargetPoolAggregatedList": { - "id": "TargetPoolAggregatedList", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetPoolAggregatedList for aggregated lists of target pools.", - "default": "compute#targetPoolAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetPool resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of target pools.", - "$ref": "TargetPoolsScopedList" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "zones": { + "methods": { + "list": { + "id": "compute.zones.list", + "path": "projects/{project}/zones", + "flatPath": "projects/{project}/zones", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ZoneList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of Zone resources available to the specified project." }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } + "get": { + "id": "compute.zones.get", + "path": "projects/{project}/zones/{zone}", + "flatPath": "projects/{project}/zones/{zone}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone resource to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "Zone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified Zone resource." } } }, - "TargetPoolsScopedList": { - "id": "TargetPoolsScopedList", - "type": "object", - "properties": { - "targetPools": { - "description": "A list of target pools contained in this scope.", - "type": "array", - "items": { - "$ref": "TargetPool" - } - }, - "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] + "regionZones": { + "methods": { + "list": { + "id": "compute.regionZones.list", + "path": "projects/{project}/regions/{region}/zones", + "flatPath": "projects/{project}/regions/{region}/zones", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", "type": "string" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "region": { + "description": "Region for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" } - } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "ZoneList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves the list of Zone resources under the specific region available to the specified project." } } - }, - "TargetPoolInstanceHealth": { - "id": "TargetPoolInstanceHealth", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetPoolInstanceHealth when checking the health of an instance.", - "default": "compute#targetPoolInstanceHealth", - "type": "string" + } + }, + "ownerDomain": "google.com", + "id": "compute:v1", + "kind": "discovery#restDescription", + "basePath": "/compute/v1/", + "batchPath": "batch/compute/v1", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" + }, + "servicePath": "compute/v1/", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." }, - "healthStatus": { - "type": "array", - "items": { - "$ref": "HealthStatus" - } - } - } - }, - "TargetPoolsAddHealthCheckRequest": { - "id": "TargetPoolsAddHealthCheckRequest", - "type": "object", - "properties": { - "healthChecks": { - "description": "The HttpHealthCheck to add to the target pool.", - "type": "array", - "items": { - "$ref": "HealthCheckReference" - } - } - } - }, - "TargetPoolsRemoveHealthCheckRequest": { - "id": "TargetPoolsRemoveHealthCheckRequest", - "type": "object", - "properties": { - "healthChecks": { - "description": "Health check URL to be removed. This can be a full or valid partial URL. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project /global/httpHealthChecks/health-check - projects/project/global/httpHealthChecks/health-check - global/httpHealthChecks/health-check ", - "type": "array", - "items": { - "$ref": "HealthCheckReference" - } - } - } - }, - "TargetPoolsAddInstanceRequest": { - "id": "TargetPoolsAddInstanceRequest", - "type": "object", - "properties": { - "instances": { - "description": "A full or partial URL to an instance to add to this target pool. This can be a full or partial URL. For example, the following are valid URLs: - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone /instances/instance-name - projects/project-id/zones/zone/instances/instance-name - zones/zone/instances/instance-name ", - "type": "array", - "items": { - "$ref": "InstanceReference" - } - } - } - }, - "TargetPoolsRemoveInstanceRequest": { - "id": "TargetPoolsRemoveInstanceRequest", - "type": "object", - "properties": { - "instances": { - "description": "URLs of the instances to be removed from target pool.", - "type": "array", - "items": { - "$ref": "InstanceReference" - } + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Cloud Storage and see the email address for your Google Account" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Cloud Storage and see the email address of your Google Account" } } - }, - "TargetSslProxyList": { - "id": "TargetSslProxyList", - "description": "Contains a list of TargetSslProxy resources.", + } + }, + "documentationLink": "https://cloud.google.com/compute/", + "revision": "20240430", + "title": "Compute Engine API", + "rootUrl": "https://compute.googleapis.com/", + "description": "Creates and runs virtual machines on Google Cloud Platform. ", + "name": "compute", + "mtlsRootUrl": "https://compute.mtls.googleapis.com/", + "schemas": { + "AcceleratorTypeList": { + "id": "AcceleratorTypeList", + "description": "Contains a list of accelerator types.", "type": "object", "properties": { "kind": { - "description": "Type of resource.", - "default": "compute#targetSslProxyList", + "description": "[Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types.", + "default": "compute#acceleratorTypeList", "type": "string" }, "id": { @@ -39952,10 +37440,10 @@ "type": "string" }, "items": { - "description": "A list of TargetSslProxy resources.", + "description": "A list of AcceleratorType resources.", "type": "array", "items": { - "$ref": "TargetSslProxy" + "$ref": "AcceleratorType" } }, "nextPageToken": { @@ -40089,14 +37577,14 @@ } } }, - "TargetSslProxy": { - "id": "TargetSslProxy", - "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target SSL proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", + "AcceleratorType": { + "id": "AcceleratorType", + "description": "Represents an Accelerator Type resource. Google Cloud Platform provides graphics processing units (accelerators) that you can add to VM instances to improve or accelerate performance when working with intensive workloads. For more information, read GPUs on Compute Engine.", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of the resource. Always compute#targetSslProxy for target SSL proxies.", - "default": "compute#targetSslProxy", + "description": "[Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.", + "default": "compute#acceleratorType", "type": "string" }, "id": { @@ -40109,110 +37597,79 @@ "type": "string" }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "[Output Only] Name of the resource.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "[Output Only] An optional textual description of the resource.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "deprecated": { + "description": "[Output Only] The deprecation status associated with this accelerator type.", + "$ref": "DeprecationStatus" }, - "service": { - "description": "URL to the BackendService resource.", + "zone": { + "description": "[Output Only] The name of the zone where the accelerator type resides, such as us-central1-a. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" }, - "sslCertificates": { - "description": "URLs to SslCertificate resources that are used to authenticate connections to Backends. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates. sslCertificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.", - "type": "array", - "items": { - "type": "string" - } - }, - "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "selfLink": { + "description": "[Output Only] Server-defined, fully qualified URL for this resource.", "type": "string" }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NONE", - "PROXY_V1" - ] - }, - "sslPolicy": { - "description": "URL of SslPolicy resource that will be associated with the TargetSslProxy resource. If not set, the TargetSslProxy resource will not have any SSL policy configured.", - "type": "string" - } - } - }, - "TargetSslProxiesSetBackendServiceRequest": { - "id": "TargetSslProxiesSetBackendServiceRequest", - "type": "object", - "properties": { - "service": { - "description": "The URL of the new BackendService resource for the targetSslProxy.", - "type": "string" - } - } - }, - "TargetSslProxiesSetSslCertificatesRequest": { - "id": "TargetSslProxiesSetSslCertificatesRequest", - "type": "object", - "properties": { - "sslCertificates": { - "description": "New set of URLs to SslCertificate resources to associate with this TargetSslProxy. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetSslProxiesSetCertificateMapRequest": { - "id": "TargetSslProxiesSetCertificateMapRequest", - "type": "object", - "properties": { - "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", - "type": "string" + "maximumCardsPerInstance": { + "description": "[Output Only] Maximum number of accelerator cards allowed per instance.", + "type": "integer", + "format": "int32" } } }, - "TargetSslProxiesSetProxyHeaderRequest": { - "id": "TargetSslProxiesSetProxyHeaderRequest", + "DeprecationStatus": { + "id": "DeprecationStatus", + "description": "Deprecation status for a public resource.", "type": "object", "properties": { - "proxyHeader": { - "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", + "state": { + "description": "The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.", "type": "string", "enumDescriptions": [ + "", + "", "", "" ], "enum": [ - "NONE", - "PROXY_V1" + "ACTIVE", + "DELETED", + "DEPRECATED", + "OBSOLETE" ] + }, + "replacement": { + "description": "The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.", + "type": "string" + }, + "deprecated": { + "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.", + "type": "string" + }, + "obsolete": { + "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.", + "type": "string" + }, + "deleted": { + "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.", + "type": "string" } } }, - "TargetTcpProxyList": { - "id": "TargetTcpProxyList", - "description": "Contains a list of TargetTcpProxy resources.", + "AcceleratorTypeAggregatedList": { + "id": "AcceleratorTypeAggregatedList", "type": "object", "properties": { "kind": { - "description": "Type of resource.", - "default": "compute#targetTcpProxyList", + "description": "[Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.", + "default": "compute#acceleratorTypeAggregatedList", "type": "string" }, "id": { @@ -40220,10 +37677,11 @@ "type": "string" }, "items": { - "description": "A list of TargetTcpProxy resources.", - "type": "array", - "items": { - "$ref": "TargetTcpProxy" + "description": "A list of AcceleratorTypesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of accelerator types.", + "$ref": "AcceleratorTypesScopedList" } }, "nextPageToken": { @@ -40354,98 +37812,29 @@ } } } - } - } - }, - "TargetTcpProxy": { - "id": "TargetTcpProxy", - "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target TCP proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.", - "default": "compute#targetTcpProxy", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "service": { - "description": "URL to the BackendService resource.", - "type": "string" - }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "NONE", - "PROXY_V1" - ] - }, - "proxyBind": { - "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", - "type": "boolean" }, - "region": { - "description": "[Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy.", - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "TargetTcpProxyAggregatedList": { - "id": "TargetTcpProxyAggregatedList", + "AcceleratorTypesScopedList": { + "id": "AcceleratorTypesScopedList", "type": "object", "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.", - "default": "compute#targetTcpProxyAggregatedList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of TargetTcpProxiesScopedList resources.", - "type": "object", - "additionalProperties": { - "description": "Name of the scope containing this set of TargetTcpProxies.", - "$ref": "TargetTcpProxiesScopedList" + "acceleratorTypes": { + "description": "[Output Only] A list of accelerator types contained in this scope.", + "type": "array", + "items": { + "$ref": "AcceleratorType" } }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] An informational warning that appears when the accelerator types list is empty.", "type": "object", "properties": { "code": { @@ -40564,29 +37953,40 @@ } } } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } } } }, - "TargetTcpProxiesScopedList": { - "id": "TargetTcpProxiesScopedList", + "OperationList": { + "id": "OperationList", + "description": "Contains a list of Operation resources.", "type": "object", "properties": { - "targetTcpProxies": { - "description": "A list of TargetTcpProxies contained in this scope.", + "kind": { + "description": "[Output Only] Type of resource. Always `compute#operations` for Operations resource.", + "default": "compute#operationList", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "items": { + "description": "[Output Only] A list of Operation resources.", "type": "array", "items": { - "$ref": "TargetTcpProxy" + "$ref": "Operation" } }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than `maxResults`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "description": "[Output Only] Informational warning message.", "type": "object", "properties": { "code": { @@ -40708,452 +38108,565 @@ } } }, - "TargetTcpProxiesSetBackendServiceRequest": { - "id": "TargetTcpProxiesSetBackendServiceRequest", + "Operation": { + "id": "Operation", + "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/v1/globalOperations) * [Regional](/compute/docs/reference/rest/v1/regionOperations) * [Zonal](/compute/docs/reference/rest/v1/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. Note that completed Operation resources have a limited retention period.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", + "default": "compute#operation", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the operation. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Deprecated] This field is deprecated.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the operation.", + "type": "string" + }, + "zone": { + "description": "[Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.", + "type": "string" + }, + "clientOperationId": { + "description": "[Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.", + "type": "string" + }, + "operationType": { + "description": "[Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.", + "type": "string" + }, + "targetLink": { + "description": "[Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.", + "type": "string" + }, + "targetId": { + "description": "[Output Only] The unique target ID, which identifies a specific incarnation of the target resource.", + "type": "string", + "format": "uint64" + }, + "status": { + "description": "[Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" + ], + "enum": [ + "DONE", + "PENDING", + "RUNNING" + ] + }, + "statusMessage": { + "description": "[Output Only] An optional textual description of the current status of the operation.", + "type": "string" + }, + "user": { + "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", + "type": "string" + }, + "progress": { + "description": "[Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.", + "type": "integer", + "format": "int32" + }, + "insertTime": { + "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", + "type": "string" + }, + "startTime": { + "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", + "type": "string" + }, + "endTime": { + "description": "[Output Only] The time that this operation was completed. This value is in RFC3339 text format.", + "type": "string" + }, + "error": { + "description": "[Output Only] If errors are generated during processing of the operation, this field will be populated.", + "type": "object", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "type": "array", + "items": { + "type": "object", + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + } + } + } + } + } + } + } + } + }, + "warnings": { + "description": "[Output Only] If warning messages are generated during processing of the operation, this field will be populated.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } + } + } + }, + "httpErrorStatusCode": { + "description": "[Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found.", + "type": "integer", + "format": "int32" + }, + "httpErrorMessage": { + "description": "[Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.", + "type": "string" + }, + "description": { + "description": "[Output Only] A textual description of the operation, which is set when the operation is created.", + "type": "string" + }, + "operationGroupId": { + "description": "[Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.", + "type": "string" + }, + "setCommonInstanceMetadataOperationMetadata": { + "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state.", + "$ref": "SetCommonInstanceMetadataOperationMetadata" + }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + } + } + }, + "ErrorInfo": { + "id": "ErrorInfo", + "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }", + "type": "object", + "properties": { + "reason": { + "description": "The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.", + "type": "string" + }, + "domain": { + "description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".", + "type": "string" + }, + "metadatas": { + "description": "Additional structured details about this error. Keys must match /a-z+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {\"instanceLimit\": \"100/request\"}, should be returned as, {\"instanceLimitPerRequest\": \"100\"}, if the client exceeds the number of instances that can be created in a single (batch) request.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "QuotaExceededInfo": { + "id": "QuotaExceededInfo", + "description": "Additional details for quota exceeded error for resource quota.", + "type": "object", + "properties": { + "metricName": { + "description": "The Compute Engine quota metric name.", + "type": "string" + }, + "limitName": { + "description": "The name of the quota limit.", + "type": "string" + }, + "dimensions": { + "description": "The map holding related quota dimensions.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "limit": { + "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", + "type": "number", + "format": "double" + }, + "futureLimit": { + "description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", + "type": "number", + "format": "double" + }, + "rolloutStatus": { + "description": "Rollout status of the future quota limit.", + "type": "string", + "enumDescriptions": [ + "IN_PROGRESS - A rollout is in process which will change the limit value to future limit.", + "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value." + ], + "enum": [ + "IN_PROGRESS", + "ROLLOUT_STATUS_UNSPECIFIED" + ] + } + } + }, + "Help": { + "id": "Help", + "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", + "type": "object", + "properties": { + "links": { + "description": "URL(s) pointing to additional information on handling the current error.", + "type": "array", + "items": { + "$ref": "HelpLink" + } + } + } + }, + "HelpLink": { + "id": "HelpLink", + "description": "Describes a URL link.", "type": "object", "properties": { - "service": { - "description": "The URL of the new BackendService resource for the targetTcpProxy.", + "description": { + "description": "Describes what the link offers.", + "type": "string" + }, + "url": { + "description": "The URL of the link.", "type": "string" } } }, - "TargetTcpProxiesSetProxyHeaderRequest": { - "id": "TargetTcpProxiesSetProxyHeaderRequest", + "LocalizedMessage": { + "id": "LocalizedMessage", + "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.", "type": "object", "properties": { - "proxyHeader": { - "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", + "locale": { + "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", + "type": "string" + }, + "message": { + "description": "The localized error message in the above locale.", + "type": "string" + } + } + }, + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", + "type": "object", + "properties": { + "clientOperationId": { + "description": "[Output Only] The client operation id.", + "type": "string" + }, + "perLocationOperations": { + "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object", + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + } + } + } + }, + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", + "type": "object", + "properties": { + "state": { + "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", "type": "string", "enumDescriptions": [ - "", + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation has completed successfully.", + "Operation is in an error state.", + "Operation is confirmed to be in the location.", + "Operation is not yet confirmed to have been created in the location.", "" ], "enum": [ - "NONE", - "PROXY_V1" + "ABANDONED", + "DONE", + "FAILED", + "PROPAGATED", + "PROPAGATING", + "UNSPECIFIED" ] + }, + "error": { + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated.", + "$ref": "Status" } } }, - "TargetVpnGatewayList": { - "id": "TargetVpnGatewayList", - "description": "Contains a list of TargetVpnGateway resources.", + "Status": { + "id": "Status", + "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "type": "object", "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", - "default": "compute#targetVpnGatewayList", - "type": "string" + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "type": "integer", + "format": "int32" }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", "type": "string" }, - "items": { - "description": "A list of TargetVpnGateway resources.", + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", "type": "array", "items": { - "$ref": "TargetVpnGateway" - } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } + "type": "object", + "additionalProperties": { + "type": "any", + "description": "Properties of the object. Contains field @type with type URL." } } } } }, - "TargetVpnGateway": { - "id": "TargetVpnGateway", - "description": "Represents a Target VPN Gateway resource. The target VPN gateway resource represents a Classic Cloud VPN gateway. For more information, read the the Cloud VPN Overview.", + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", "type": "object", "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", - "default": "compute#targetVpnGateway", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.targetVpnGateways.insert" - ] - }, - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the target VPN gateway resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "network": { - "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", - "annotations": { - "required": [ - "compute.targetVpnGateways.insert" - ] - }, - "type": "string" - }, - "tunnels": { - "description": "[Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are created using the compute.vpntunnels.insert method and associated with a VPN gateway.", - "type": "array", - "items": { - "type": "string" + "perLocationStatus": { + "description": "Status information per location (location name is key). Example key: zones/us-central1-a", + "type": "object", + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" } - }, + } + } + }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "type": "object", + "properties": { "status": { - "description": "[Output Only] The status of the VPN gateway, which can be one of the following: CREATING, READY, FAILED, or DELETING.", + "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", "type": "string", "enumDescriptions": [ - "", - "", - "", + "Rolling forward - creating VMs.", + "Done", + "Rolling back - cleaning up after an error.", "" ], "enum": [ "CREATING", - "DELETING", - "FAILED", - "READY" + "DONE", + "ROLLING_BACK", + "STATUS_UNSPECIFIED" ] }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "type": "integer", + "format": "int32" }, - "forwardingRules": { - "description": "[Output Only] A list of URLs to the ForwardingRule resources. ForwardingRules are created using compute.forwardingRules.insert and associated with a VPN gateway.", - "type": "array", - "items": { - "type": "string" - } + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "type": "integer", + "format": "int32" }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an error.", + "type": "integer", + "format": "int32" }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this TargetVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a TargetVpnGateway.", - "type": "string", - "format": "byte" + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "type": "integer", + "format": "int32" } } }, - "TargetVpnGatewayAggregatedList": { - "id": "TargetVpnGatewayAggregatedList", + "OperationAggregatedList": { + "id": "OperationAggregatedList", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", - "default": "compute#targetVpnGatewayAggregatedList", + "description": "[Output Only] Type of resource. Always `compute#operationAggregatedList` for aggregated lists of operations.", + "default": "compute#operationAggregatedList", "type": "string" }, "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetVpnGateway resources.", + "description": "[Output Only] A map of scoped operation lists.", "type": "object", "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of target VPN gateways.", - "$ref": "TargetVpnGatewaysScopedList" + "description": "[Output Only] Name of the scope containing this set of operations.", + "$ref": "OperationsScopedList" } }, "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "TargetVpnGatewaysScopedList": { - "id": "TargetVpnGatewaysScopedList", - "type": "object", - "properties": { - "targetVpnGateways": { - "description": "[Output Only] A list of target VPN gateways contained in this scope.", - "type": "array", - "items": { - "$ref": "TargetVpnGateway" - } + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than `maxResults`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "description": "[Output Only] Informational warning message.", "type": "object", "properties": { "code": { @@ -41272,40 +38785,29 @@ } } } + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "UrlMapList": { - "id": "UrlMapList", - "description": "Contains a list of UrlMap resources.", + "OperationsScopedList": { + "id": "OperationsScopedList", "type": "object", "properties": { - "kind": { - "description": "Type of resource.", - "default": "compute#urlMapList", - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of UrlMap resources.", + "operations": { + "description": "[Output Only] A list of operations contained in this scope.", "type": "array", "items": { - "$ref": "UrlMap" + "$ref": "Operation" } }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] Informational warning which replaces the list of operations when the list is empty.", "type": "object", "properties": { "code": { @@ -41414,735 +38916,383 @@ "properties": { "key": { "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } - } - } - } - }, - "UrlMap": { - "id": "UrlMap", - "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by global external Application Load Balancers, classic Application Load Balancers, and cross-region internal Application Load Balancers. * regionUrlMaps are used by internal Application Load Balancers, regional external Application Load Balancers and regional internal Application Load Balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", - "type": "object", - "properties": { - "kind": { - "description": "[Output Only] Type of the resource. Always compute#urlMaps for url maps.", - "default": "compute#urlMap", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "hostRules": { - "description": "The list of host rules to use against the URL.", - "type": "array", - "items": { - "$ref": "HostRule" - } - }, - "pathMatchers": { - "description": "The list of named PathMatchers to use against the URL.", - "type": "array", - "items": { - "$ref": "PathMatcher" - } - }, - "tests": { - "description": "The list of expected URL mapping tests. Request to update the UrlMap succeeds only if all test cases pass. You can specify a maximum of 100 tests per UrlMap. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "type": "array", - "items": { - "$ref": "UrlMapTest" - } - }, - "defaultService": { - "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "type": "string" - }, - "defaultRouteAction": { - "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "$ref": "HttpRouteAction" - }, - "defaultUrlRedirect": { - "description": "When none of the specified hostRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", - "$ref": "HttpRedirectAction" - }, - "headerAction": { - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction specified here take effect after headerAction specified under pathMatcher. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpHeaderAction" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field is ignored when inserting a UrlMap. An up-to-date fingerprint must be provided in order to update the UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a UrlMap.", - "type": "string", - "format": "byte" - }, - "region": { - "description": "[Output Only] URL of the region where the regional URL map resides. This field is not applicable to global URL maps. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - } - } - }, - "HostRule": { - "id": "HostRule", - "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", - "type": "object", - "properties": { - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "hosts": { - "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "type": "array", - "items": { - "type": "string" - } - }, - "pathMatcher": { - "description": "The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion.", - "type": "string" - } - } - }, - "PathMatcher": { - "id": "PathMatcher", - "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used.", - "type": "object", - "properties": { - "name": { - "description": "The name to which this PathMatcher is referred by the HostRule.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "defaultService": { - "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", - "type": "string" - }, - "defaultRouteAction": { - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction.", - "$ref": "HttpRouteAction" - }, - "defaultUrlRedirect": { - "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", - "$ref": "HttpRedirectAction" - }, - "pathRules": { - "description": "The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set.", - "type": "array", - "items": { - "$ref": "PathRule" - } - }, - "routeRules": { - "description": "The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules.", - "type": "array", - "items": { - "$ref": "HttpRouteRule" - } - }, - "headerAction": { - "description": "Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpHeaderAction" - } - } - }, - "HttpRouteAction": { - "id": "HttpRouteAction", - "type": "object", - "properties": { - "weightedBackendServices": { - "description": "A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.", - "type": "array", - "items": { - "$ref": "WeightedBackendService" - } - }, - "urlRewrite": { - "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "$ref": "UrlRewrite" - }, - "timeout": { - "description": "Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "Duration" - }, - "retryPolicy": { - "description": "Specifies the retry policy associated with this route.", - "$ref": "HttpRetryPolicy" - }, - "requestMirrorPolicy": { - "description": "Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "$ref": "RequestMirrorPolicy" - }, - "corsPolicy": { - "description": "The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.", - "$ref": "CorsPolicy" - }, - "faultInjectionPolicy": { - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.", - "$ref": "HttpFaultInjection" - }, - "maxStreamDuration": { - "description": "Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.", - "$ref": "Duration" - } - } - }, - "WeightedBackendService": { - "id": "WeightedBackendService", - "description": "In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService", - "type": "object", - "properties": { - "backendService": { - "description": "The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.", - "type": "string" - }, - "weight": { - "description": "Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000.", - "type": "integer", - "format": "uint32" - }, - "headerAction": { - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpHeaderAction" - } - } - }, - "HttpHeaderAction": { - "id": "HttpHeaderAction", - "description": "The request and response header transformations that take effect before the request is passed along to the selected backendService.", - "type": "object", - "properties": { - "requestHeadersToRemove": { - "description": "A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.", - "type": "array", - "items": { - "type": "string" - } - }, - "requestHeadersToAdd": { - "description": "Headers to add to a matching request before forwarding the request to the backendService.", - "type": "array", - "items": { - "$ref": "HttpHeaderOption" - } - }, - "responseHeadersToRemove": { - "description": "A list of header names for headers that need to be removed from the response before sending the response back to the client.", - "type": "array", - "items": { - "type": "string" - } - }, - "responseHeadersToAdd": { - "description": "Headers to add the response before sending the response back to the client.", - "type": "array", - "items": { - "$ref": "HttpHeaderOption" - } - } - } - }, - "HttpHeaderOption": { - "id": "HttpHeaderOption", - "description": "Specification determining how headers are added to requests or responses.", - "type": "object", - "properties": { - "headerName": { - "description": "The name of the header.", - "type": "string" - }, - "headerValue": { - "description": "The value of the header to add.", - "type": "string" - }, - "replace": { - "description": "If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. ", - "type": "boolean" - } - } - }, - "UrlRewrite": { - "id": "UrlRewrite", - "description": "The spec for modifying the path before sending the request to the matched backend service.", - "type": "object", - "properties": { - "pathPrefixRewrite": { - "description": "Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters.", - "type": "string" - }, - "hostRewrite": { - "description": "Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters.", - "type": "string" - }, - "pathTemplateRewrite": { - "description": " If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified.", - "type": "string" - } - } - }, - "HttpRetryPolicy": { - "id": "HttpRetryPolicy", - "description": "The retry policy associates with HttpRouteRule", - "type": "object", - "properties": { - "retryConditions": { - "description": "Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable ", - "type": "array", - "items": { - "type": "string" - } - }, - "numRetries": { - "description": "Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.", - "type": "integer", - "format": "uint32" - }, - "perTryTimeout": { - "description": "Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "$ref": "Duration" - } - } - }, - "RequestMirrorPolicy": { - "id": "RequestMirrorPolicy", - "description": "A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow.", - "type": "object", - "properties": { - "backendService": { - "description": "The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. ", - "type": "string" - } - } - }, - "CorsPolicy": { - "id": "CorsPolicy", - "description": "The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard.", - "type": "object", - "properties": { - "allowOrigins": { - "description": "Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.", - "type": "array", - "items": { - "type": "string" - } - }, - "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", - "type": "array", - "items": { - "type": "string" - } - }, - "allowMethods": { - "description": "Specifies the content for the Access-Control-Allow-Methods header.", - "type": "array", - "items": { - "type": "string" - } - }, - "allowHeaders": { - "description": "Specifies the content for the Access-Control-Allow-Headers header.", - "type": "array", - "items": { - "type": "string" - } - }, - "exposeHeaders": { - "description": "Specifies the content for the Access-Control-Expose-Headers header.", - "type": "array", - "items": { - "type": "string" - } - }, - "maxAge": { - "description": "Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header.", - "type": "integer", - "format": "int32" - }, - "allowCredentials": { - "description": "In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false.", - "type": "boolean" - }, - "disabled": { - "description": "If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.", - "type": "boolean" - } - } - }, - "HttpFaultInjection": { - "id": "HttpFaultInjection", - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests.", - "type": "object", - "properties": { - "delay": { - "description": "The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.", - "$ref": "HttpFaultDelay" - }, - "abort": { - "description": "The specification for how client requests are aborted as part of fault injection.", - "$ref": "HttpFaultAbort" - } - } - }, - "HttpFaultDelay": { - "id": "HttpFaultDelay", - "description": "Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection.", - "type": "object", - "properties": { - "fixedDelay": { - "description": "Specifies the value of the fixed delay interval.", - "$ref": "Duration" - }, - "percentage": { - "description": "The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive.", - "type": "number", - "format": "double" - } - } - }, - "HttpFaultAbort": { - "id": "HttpFaultAbort", - "description": "Specification for how requests are aborted as part of fault injection.", - "type": "object", - "properties": { - "httpStatus": { - "description": "The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director.", - "type": "integer", - "format": "uint32" - }, - "percentage": { - "description": "The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive.", - "type": "number", - "format": "double" - } - } - }, - "HttpRedirectAction": { - "id": "HttpRedirectAction", - "description": "Specifies settings for an HTTP redirect.", - "type": "object", - "properties": { - "hostRedirect": { - "description": "The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters.", - "type": "string" - }, - "pathRedirect": { - "description": "The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters.", - "type": "string" - }, - "prefixRedirect": { - "description": "The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters.", - "type": "string" - }, - "redirectResponseCode": { - "description": "The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. ", - "type": "string", - "enumDescriptions": [ - "Http Status Code 302 - Found.", - "Http Status Code 301 - Moved Permanently.", - "Http Status Code 308 - Permanent Redirect maintaining HTTP method.", - "Http Status Code 303 - See Other.", - "Http Status Code 307 - Temporary Redirect maintaining HTTP method." - ], - "enum": [ - "FOUND", - "MOVED_PERMANENTLY_DEFAULT", - "PERMANENT_REDIRECT", - "SEE_OTHER", - "TEMPORARY_REDIRECT" - ] - }, - "httpsRedirect": { - "description": "If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false.", - "type": "boolean" - }, - "stripQuery": { - "description": "If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. ", - "type": "boolean" + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } + } } } }, - "PathRule": { - "id": "PathRule", - "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL.", + "AddressList": { + "id": "AddressList", + "description": "Contains a list of addresses.", "type": "object", "properties": { - "service": { - "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", + "kind": { + "description": "[Output Only] Type of resource. Always compute#addressList for lists of addresses.", + "default": "compute#addressList", "type": "string" }, - "routeAction": { - "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction.", - "$ref": "HttpRouteAction" - }, - "urlRedirect": { - "description": "When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", - "$ref": "HttpRedirectAction" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "paths": { - "description": "The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.", + "items": { + "description": "A list of Address resources.", "type": "array", "items": { - "type": "string" + "$ref": "Address" } - } - } - }, - "HttpRouteRule": { - "id": "HttpRouteRule", - "description": "The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.", - "type": "object", - "properties": { - "priority": { - "description": "For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.", - "type": "integer", - "format": "int32" }, - "description": { - "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", "type": "string" }, - "matchRules": { - "description": "The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.", - "type": "array", - "items": { - "$ref": "HttpRouteRuleMatch" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } } }, - "service": { - "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", "type": "string" - }, - "routeAction": { - "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction.", - "$ref": "HttpRouteAction" - }, - "urlRedirect": { - "description": "When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", - "$ref": "HttpRedirectAction" - }, - "headerAction": { - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "$ref": "HttpHeaderAction" } } }, - "HttpRouteRuleMatch": { - "id": "HttpRouteRuleMatch", - "description": "HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur.", + "Address": { + "id": "Address", + "description": "Represents an IP Address resource. Google Compute Engine has two IP Address resources: * [Global (external and internal)](https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses) * [Regional (external and internal)](https://cloud.google.com/compute/docs/reference/rest/v1/addresses) For more information, see Reserving a static external IP address.", "type": "object", "properties": { - "prefixMatch": { - "description": "For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", + "kind": { + "description": "[Output Only] Type of the resource. Always compute#address for addresses.", + "default": "compute#address", "type": "string" }, - "fullPathMatch": { - "description": "For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", - "type": "string" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "regexMatch": { - "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, - "ignoreCase": { - "description": "Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy.", - "type": "boolean" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.addresses.insert" + ] + }, + "type": "string" }, - "headerMatches": { - "description": "Specifies a list of header match criteria, all of which must match corresponding headers in the request.", - "type": "array", - "items": { - "$ref": "HttpHeaderMatch" - } + "description": { + "description": "An optional description of this resource. Provide this field when you create the resource.", + "type": "string" }, - "queryParameterMatches": { - "description": "Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy.", - "type": "array", - "items": { - "$ref": "HttpQueryParameterMatch" - } + "address": { + "description": "The static IP address represented by this resource.", + "type": "string" }, - "metadataFilters": { - "description": "Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "type": "array", - "items": { - "$ref": "MetadataFilter" - } + "prefixLength": { + "description": "The prefix length if the resource represents an IP range.", + "type": "integer", + "format": "int32" }, - "pathTemplateMatch": { - "description": "If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash (\"/\") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set.", - "type": "string" - } - } - }, - "HttpHeaderMatch": { - "id": "HttpHeaderMatch", - "description": "matchRule criteria for request header matches.", - "type": "object", - "properties": { - "headerName": { - "description": "The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name \":authority\". For matching a request's method, use the headerName \":method\". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`.", - "type": "string" + "status": { + "description": "[Output Only] The status of the address, which can be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in the process of being reserved. A RESERVED address is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.", + "type": "string", + "enumDescriptions": [ + "Address is being used by another resource and is not available.", + "Address is reserved and available to use.", + "Address is being reserved." + ], + "enum": [ + "IN_USE", + "RESERVED", + "RESERVING" + ] }, - "exactMatch": { - "description": "The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "region": { + "description": "[Output Only] The URL of the region where a regional address resides. For regional addresses, you must specify the region as a path parameter in the HTTP request URL. *This field is not applicable to global addresses.*", "type": "string" }, - "regexMatch": { - "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "rangeMatch": { - "description": "The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL.", - "$ref": "Int64RangeMatch" + "users": { + "description": "[Output Only] The URLs of the resources that are using this address.", + "type": "array", + "items": { + "type": "string" + } }, - "presentMatch": { - "description": "A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", - "type": "boolean" + "networkTier": { + "description": "This signifies the networking tier used for configuring this address and can only take the following values: PREMIUM or STANDARD. Internal IP addresses are always Premium Tier; global external IP addresses are always Premium Tier; regional external IP addresses can be either Standard or Premium Tier. If this field is not specified, it is assumed to be PREMIUM.", + "type": "string", + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." + ], + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ] }, - "prefixMatch": { - "description": "The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", - "type": "string" + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "suffixMatch": { - "description": "The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", - "type": "string" + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Address.", + "type": "string", + "format": "byte" }, - "invertMatch": { - "description": "If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. ", - "type": "boolean" - } - } - }, - "Int64RangeMatch": { - "id": "Int64RangeMatch", - "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range.", - "type": "object", - "properties": { - "rangeStart": { - "description": "The start of the range (inclusive) in signed long integer format.", + "ipVersion": { + "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6.", "type": "string", - "format": "int64" + "enumDescriptions": [ + "", + "", + "" + ], + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_VERSION" + ] }, - "rangeEnd": { - "description": "The end of the range (exclusive) in signed long integer format.", + "addressType": { + "description": "The type of address to reserve, either INTERNAL or EXTERNAL. If unspecified, defaults to EXTERNAL.", "type": "string", - "format": "int64" - } - } - }, - "HttpQueryParameterMatch": { - "id": "HttpQueryParameterMatch", - "description": "HttpRouteRuleMatch criteria for a request's query parameter.", - "type": "object", - "properties": { - "name": { - "description": "The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails.", - "type": "string" + "enumDescriptions": [ + "A publicly visible external IP address.", + "A private network IP address, for use with an Instance or Internal Load Balancer forwarding rule.", + "" + ], + "enum": [ + "EXTERNAL", + "INTERNAL", + "UNSPECIFIED_TYPE" + ] }, - "presentMatch": { - "description": "Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. ", - "type": "boolean" + "purpose": { + "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *HA VPN over Cloud Interconnect* configuration. These addresses are regional resources. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", + "type": "string", + "enumDescriptions": [ + "DNS resolver address in the subnetwork.", + "VM internal/alias IP, Internal LB service IP, etc.", + "A regional internal IP address range reserved for the VLAN attachment that is used in HA VPN over Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment’s IP address range.", + "External IP automatically reserved for Cloud NAT.", + "A private network IP address that can be used to configure Private Service Connect. This purpose can be specified only for GLOBAL addresses of Type INTERNAL", + "A regional internal IP address range reserved for Serverless.", + "A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", + "IP range for peer networks." + ], + "enum": [ + "DNS_RESOLVER", + "GCE_ENDPOINT", + "IPSEC_INTERCONNECT", + "NAT_AUTO", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", + "SHARED_LOADBALANCER_VIP", + "VPC_PEERING" + ] }, - "exactMatch": { - "description": "The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. ", + "subnetwork": { + "description": "The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range. This field can only be used with INTERNAL type with a GCE_ENDPOINT or DNS_RESOLVER purpose.", "type": "string" }, - "regexMatch": { - "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", + "network": { + "description": "The URL of the network in which to reserve the address. This field can only be used with INTERNAL type with the VPC_PEERING purpose.", "type": "string" + }, + "ipv6EndpointType": { + "description": "The endpoint type of this address, which should be VM or NETLB. This is used for deciding which type of endpoint this address can be used after the external IPv6 address reservation.", + "type": "string", + "enumDescriptions": [ + "Reserved IPv6 address can be used on network load balancer.", + "Reserved IPv6 address can be used on VM." + ], + "enum": [ + "NETLB", + "VM" + ] } } }, - "UrlMapTest": { - "id": "UrlMapTest", - "description": "Message for the expected URL mappings.", + "GlobalAddressesMoveRequest": { + "id": "GlobalAddressesMoveRequest", "type": "object", "properties": { - "description": { - "description": "Description of this test case.", - "type": "string" - }, - "host": { - "description": "Host portion of the URL. If headers contains a host header, then host must also match the header value.", - "type": "string" - }, - "path": { - "description": "Path portion of the URL.", - "type": "string" - }, - "headers": { - "description": "HTTP headers for this request. If headers contains a host header, then host must also match the header value.", - "type": "array", - "items": { - "$ref": "UrlMapTestHeader" - } - }, - "service": { - "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set.", + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project /global/addresses/address - projects/project/global/addresses/address Note that destination project must be different from the source project. So /global/addresses/address is not valid partial url.", "type": "string" }, - "expectedOutputUrl": { - "description": "The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified.", + "description": { + "description": "An optional destination address description if intended to be different from the source.", "type": "string" - }, - "expectedRedirectResponseCode": { - "description": "For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set.", - "type": "integer", - "format": "int32" } } }, - "UrlMapTestHeader": { - "id": "UrlMapTestHeader", - "description": "HTTP headers used in UrlMapTests.", + "GlobalSetLabelsRequest": { + "id": "GlobalSetLabelsRequest", "type": "object", "properties": { - "name": { - "description": "Header name.", - "type": "string" + "labels": { + "description": "A list of labels to apply for this resource. Each label must comply with the requirements for labels. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "value": { - "description": "Header value.", - "type": "string" + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels, otherwise the request will fail with error 412 conditionNotMet. Make a get() request to the resource to get the latest fingerprint.", + "type": "string", + "format": "byte" } } }, - "UrlMapsAggregatedList": { - "id": "UrlMapsAggregatedList", + "AddressAggregatedList": { + "id": "AddressAggregatedList", "type": "object", "properties": { "kind": { - "description": "Type of resource.", - "default": "compute#urlMapsAggregatedList", + "description": "[Output Only] Type of resource. Always compute#addressAggregatedList for aggregated lists of addresses.", + "default": "compute#addressAggregatedList", "type": "string" }, "id": { @@ -42150,11 +39300,11 @@ "type": "string" }, "items": { - "description": "A list of UrlMapsScopedList resources.", + "description": "A list of AddressesScopedList resources.", "type": "object", "additionalProperties": { - "description": "Name of the scope containing this set of UrlMaps.", - "$ref": "UrlMapsScopedList" + "description": "[Output Only] Name of the scope containing this set of addresses.", + "$ref": "AddressesScopedList" } }, "nextPageToken": { @@ -42295,19 +39445,19 @@ } } }, - "UrlMapsScopedList": { - "id": "UrlMapsScopedList", + "AddressesScopedList": { + "id": "AddressesScopedList", "type": "object", "properties": { - "urlMaps": { - "description": "A list of UrlMaps contained in this scope.", + "addresses": { + "description": "[Output Only] A list of addresses contained in this scope.", "type": "array", "items": { - "$ref": "UrlMap" + "$ref": "Address" } }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", "type": "object", "properties": { "code": { @@ -42429,147 +39579,46 @@ } } }, - "UrlMapsValidateRequest": { - "id": "UrlMapsValidateRequest", - "type": "object", - "properties": { - "resource": { - "description": "Content of the UrlMap to be validated.", - "$ref": "UrlMap" - }, - "loadBalancingSchemes": { - "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", - "type": "array", - "items": { - "type": "string", - "enumDescriptions": [ - "Signifies that this will be used for classic Application Load Balancers.", - "Signifies that this will be used for Envoy-based global external Application Load Balancers.", - "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inference is not possible, EXTERNAL will be used as the default type." - ], - "enum": [ - "EXTERNAL", - "EXTERNAL_MANAGED", - "LOAD_BALANCING_SCHEME_UNSPECIFIED" - ] - } - } - } - }, - "UrlMapsValidateResponse": { - "id": "UrlMapsValidateResponse", - "type": "object", - "properties": { - "result": { - "$ref": "UrlMapValidationResult" - } - } - }, - "UrlMapValidationResult": { - "id": "UrlMapValidationResult", - "description": "Message representing the validation result for a UrlMap.", - "type": "object", - "properties": { - "loadSucceeded": { - "description": "Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' indicates the reasons.", - "type": "boolean" - }, - "loadErrors": { - "type": "array", - "items": { - "type": "string" - } - }, - "testPassed": { - "description": "If successfully loaded, this field indicates whether the test passed. If false, 'testFailures's indicate the reason of failure.", - "type": "boolean" - }, - "testFailures": { - "type": "array", - "items": { - "$ref": "TestFailure" - } - } - } - }, - "TestFailure": { - "id": "TestFailure", + "RegionAddressesMoveRequest": { + "id": "RegionAddressesMoveRequest", "type": "object", "properties": { - "host": { - "description": "Host portion of the URL.", - "type": "string" - }, - "path": { - "description": "Path portion including query parameters in the URL.", - "type": "string" - }, - "headers": { - "description": "HTTP headers of the request.", - "type": "array", - "items": { - "$ref": "UrlMapTestHeader" - } - }, - "expectedService": { - "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to.", - "type": "string" - }, - "actualService": { - "description": "BackendService or BackendBucket returned by load balancer.", - "type": "string" - }, - "expectedOutputUrl": { - "description": "The expected output URL evaluated by a load balancer containing the scheme, host, path and query parameters.", + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project/regions/region /addresses/address - projects/project/regions/region/addresses/address Note that destination project must be different from the source project. So /regions/region/addresses/address is not valid partial url.", "type": "string" }, - "actualOutputUrl": { - "description": "The actual output URL evaluated by a load balancer containing the scheme, host, path and query parameters.", + "description": { + "description": "An optional destination address description if intended to be different from the source.", "type": "string" - }, - "expectedRedirectResponseCode": { - "description": "Expected HTTP status code for rule with `urlRedirect` calculated by load balancer", - "type": "integer", - "format": "int32" - }, - "actualRedirectResponseCode": { - "description": "Actual HTTP status code for rule with `urlRedirect` calculated by load balancer", - "type": "integer", - "format": "int32" } } }, - "CacheInvalidationRule": { - "id": "CacheInvalidationRule", + "RegionSetLabelsRequest": { + "id": "RegionSetLabelsRequest", "type": "object", "properties": { - "path": { - "type": "string" + "labels": { + "description": "The labels to set for this resource.", + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "host": { - "description": "If set, this invalidation rule will only apply to requests with a Host header matching host.", - "type": "string" - } - } - }, - "RegionUrlMapsValidateRequest": { - "id": "RegionUrlMapsValidateRequest", - "type": "object", - "properties": { - "resource": { - "description": "Content of the UrlMap to be validated.", - "$ref": "UrlMap" + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", + "type": "string", + "format": "byte" } } }, - "VpnGatewayList": { - "id": "VpnGatewayList", - "description": "Contains a list of VpnGateway resources.", + "ImageList": { + "id": "ImageList", + "description": "Contains a list of images.", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "default": "compute#vpnGatewayList", + "description": "Type of resource.", + "default": "compute#imageList", "type": "string" }, "id": { @@ -42577,10 +39626,10 @@ "type": "string" }, "items": { - "description": "A list of VpnGateway resources.", + "description": "A list of Image resources.", "type": "array", "items": { - "$ref": "VpnGateway" + "$ref": "Image" } }, "nextPageToken": { @@ -42714,261 +39763,770 @@ } } }, - "VpnGateway": { - "id": "VpnGateway", - "description": "Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN solution that lets you securely connect your on-premises network to your Google Cloud Virtual Private Cloud network through an IPsec VPN connection in a single region. For more information about Cloud HA VPN solutions, see Cloud VPN topologies .", + "Image": { + "id": "Image", + "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#image for images.", + "default": "compute#image", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.images.insert" + ] + }, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "sourceType": { + "description": "The type of the image used to create this disk. The default and only valid value is RAW.", + "default": "RAW", + "type": "string", + "enumDescriptions": [ + "" + ], + "enum": [ + "RAW" + ] + }, + "rawDisk": { + "description": "The parameters of the raw disk image.", + "type": "object", + "properties": { + "source": { + "description": "The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "type": "string" + }, + "sha1Checksum": { + "description": "[Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.", + "pattern": "[a-f0-9]{40}", + "deprecated": true, + "type": "string" + }, + "containerType": { + "description": "The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.", + "type": "string", + "enumDescriptions": [ + "" + ], + "enum": [ + "TAR" + ] + } + } + }, + "deprecated": { + "description": "The deprecation status associated with this image.", + "$ref": "DeprecationStatus" + }, + "status": { + "description": "[Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.", + "type": "string", + "enumDescriptions": [ + "Image is deleting.", + "Image creation failed due to an error.", + "Image hasn't been created as yet.", + "Image has been successfully created." + ], + "enum": [ + "DELETING", + "FAILED", + "PENDING", + "READY" + ] + }, + "archiveSizeBytes": { + "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", + "type": "string", + "format": "int64" + }, + "diskSizeGb": { + "description": "Size of the image when restored onto a persistent disk (in GB).", + "type": "string", + "format": "int64" + }, + "sourceDisk": { + "description": "URL of the source disk used to create this image. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "type": "string" + }, + "sourceDiskId": { + "description": "[Output Only] The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.", + "type": "string" + }, + "licenses": { + "description": "Any applicable license URI.", + "type": "array", + "items": { + "type": "string" + } + }, + "family": { + "description": "The name of the image family to which this image belongs. The image family name can be from a publicly managed image family provided by Compute Engine, or from a custom image family you create. For example, centos-stream-9 is a publicly available image family. For more information, see Image family best practices. When creating disks, you can specify an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", + "type": "string" + }, + "imageEncryptionKey": { + "description": "Encrypts the image using a customer-supplied encryption key. After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image). Customer-supplied encryption keys do not protect access to metadata of the disk. If you do not provide an encryption key when creating the image, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the image later.", + "$ref": "CustomerEncryptionKey" + }, + "sourceDiskEncryptionKey": { + "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "labels": { + "description": "Labels to apply to this image. These can be later modified by the setLabels method.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an image.", + "type": "string", + "format": "byte" + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. To see a list of available options, see the guestOSfeatures[].type parameter.", + "type": "array", + "items": { + "$ref": "GuestOsFeature" + } + }, + "licenseCodes": { + "description": "Integer license codes indicating which licenses are attached to this image.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "sourceImage": { + "description": "URL of the source image used to create this image. The following are valid formats for the URL: - https://www.googleapis.com/compute/v1/projects/project_id/global/ images/image_name - projects/project_id/global/images/image_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "type": "string" + }, + "sourceImageId": { + "description": "[Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.", + "type": "string" + }, + "sourceImageEncryptionKey": { + "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "sourceSnapshot": { + "description": "URL of the source snapshot used to create this image. The following are valid formats for the URL: - https://www.googleapis.com/compute/v1/projects/project_id/global/ snapshots/snapshot_name - projects/project_id/global/snapshots/snapshot_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "type": "string" + }, + "sourceSnapshotId": { + "description": "[Output Only] The ID value of the snapshot used to create this image. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given snapshot name.", + "type": "string" + }, + "sourceSnapshotEncryptionKey": { + "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "storageLocations": { + "description": "Cloud Storage bucket storage location of the image (regional or multi-regional).", + "type": "array", + "items": { + "type": "string" + } + }, + "shieldedInstanceInitialState": { + "description": "Set the secure boot keys of shielded instance.", + "$ref": "InitialStateConfig" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "architecture": { + "description": "The architecture of the image. Valid values are ARM64 or X86_64.", + "type": "string", + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ] + }, + "enableConfidentialCompute": { + "description": "Whether this image is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", + "type": "boolean" + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + } + } + }, + "CustomerEncryptionKey": { + "id": "CustomerEncryptionKey", + "type": "object", + "properties": { + "rawKey": { + "description": "Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: \"rawKey\": \"SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=\" ", + "type": "string" + }, + "rsaEncryptedKey": { + "description": "Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: \"rsaEncryptedKey\": \"ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==\" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem ", + "type": "string" + }, + "kmsKeyName": { + "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", + "type": "string" + }, + "sha256": { + "description": "[Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.", + "type": "string" + }, + "kmsKeyServiceAccount": { + "description": "The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: \"kmsKeyServiceAccount\": \"name@project_id.iam.gserviceaccount.com/ ", + "type": "string" + } + } + }, + "GuestOsFeature": { + "id": "GuestOsFeature", + "description": "Guest OS features.", + "type": "object", + "properties": { + "type": { + "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "enum": [ + "FEATURE_TYPE_UNSPECIFIED", + "GVNIC", + "IDPF", + "MULTI_IP_SUBNET", + "SECURE_BOOT", + "SEV_CAPABLE", + "SEV_LIVE_MIGRATABLE", + "SEV_LIVE_MIGRATABLE_V2", + "SEV_SNP_CAPABLE", + "UEFI_COMPATIBLE", + "VIRTIO_SCSI_MULTIQUEUE", + "WINDOWS" + ] + } + } + }, + "InitialStateConfig": { + "id": "InitialStateConfig", + "description": "Initial State for shielded instance, these are public keys which are safe to store in public", + "type": "object", + "properties": { + "pk": { + "description": "The Platform Key (PK).", + "$ref": "FileContentBuffer" + }, + "keks": { + "description": "The Key Exchange Key (KEK).", + "type": "array", + "items": { + "$ref": "FileContentBuffer" + } + }, + "dbs": { + "description": "The Key Database (db).", + "type": "array", + "items": { + "$ref": "FileContentBuffer" + } + }, + "dbxs": { + "description": "The forbidden key database (dbx).", + "type": "array", + "items": { + "$ref": "FileContentBuffer" + } + } + } + }, + "FileContentBuffer": { + "id": "FileContentBuffer", + "type": "object", + "properties": { + "content": { + "description": "The raw content in the secure keys file.", + "type": "string", + "format": "byte" + }, + "fileType": { + "description": "The file type of source file.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" + ], + "enum": [ + "BIN", + "UNDEFINED", + "X509" + ] + } + } + }, + "Policy": { + "id": "Policy", + "description": "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 \u003c 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 \u003c 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/).", + "type": "object", + "properties": { + "version": { + "description": "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).", + "type": "integer", + "format": "int32" + }, + "bindings": { + "description": "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`.", + "type": "array", + "items": { + "$ref": "Binding" + } + }, + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "type": "array", + "items": { + "$ref": "AuditConfig" + } + }, + "rules": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "$ref": "Rule" + } + }, + "etag": { + "description": "`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.", + "type": "string", + "format": "byte" + } + } + }, + "Binding": { + "id": "Binding", + "description": "Associates `members`, or principals, with a `role`.", "type": "object", "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "default": "compute#vpnGateway", + "role": { + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string", - "format": "uint64" + "members": { + "description": "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. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `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. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", + "type": "array", + "items": { + "type": "string" + } }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "condition": { + "description": "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).", + "$ref": "Expr" + }, + "bindingId": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" + } + } + }, + "Expr": { + "id": "Expr", + "description": "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() \u003c 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.", + "type": "object", + "properties": { + "expression": { + "description": "Textual representation of an expression in Common Expression Language syntax.", "type": "string" }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.vpnGateways.insert" - ] - }, + "title": { + "description": "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.", "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the VPN gateway resides.", + "location": { + "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", "type": "string" + } + } + }, + "AuditLogConfig": { + "id": "AuditLogConfig", + "description": "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.", + "type": "object", + "properties": { + "logType": { + "description": "The log type that this config enables.", + "type": "string", + "enumDescriptions": [ + "Admin reads. Example: CloudIAM getIamPolicy", + "Data reads. Example: CloudSQL Users list", + "Data writes. Example: CloudSQL Users create", + "Default case. Should never be this." + ], + "enum": [ + "ADMIN_READ", + "DATA_READ", + "DATA_WRITE", + "LOG_TYPE_UNSPECIFIED" + ] }, - "network": { - "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", - "annotations": { - "required": [ - "compute.vpnGateways.insert" - ] - }, - "type": "string" + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "type": "array", + "items": { + "type": "string" + } }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "ignoreChildExemptions": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "boolean" + } + } + }, + "Rule": { + "id": "Rule", + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "properties": { + "description": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string" }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object", - "additionalProperties": { + "permissions": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { "type": "string" } }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway.", + "action": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string", - "format": "byte" + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." + ], + "enum": [ + "ALLOW", + "ALLOW_WITH_LOG", + "DENY", + "DENY_WITH_LOG", + "LOG", + "NO_ACTION" + ] }, - "vpnInterfaces": { - "description": "The list of VPN interfaces associated with this VPN gateway.", + "ins": { + "description": "This is deprecated and has no effect. Do not use.", "type": "array", "items": { - "$ref": "VpnGatewayVpnGatewayInterface" + "type": "string" } }, - "stackType": { - "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used.", + "notIns": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "type": "string" + } + }, + "conditions": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "$ref": "Condition" + } + }, + "logConfigs": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "$ref": "LogConfig" + } + } + } + }, + "Condition": { + "id": "Condition", + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "properties": { + "iam": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string", "enumDescriptions": [ - "Enable VPN gateway with both IPv4 and IPv6 protocols.", - "Enable VPN gateway with only IPv4 protocol." + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." ], "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" + "APPROVER", + "ATTRIBUTION", + "AUTHORITY", + "CREDENTIALS_TYPE", + "CREDS_ASSERTION", + "JUSTIFICATION_TYPE", + "NO_ATTR", + "SECURITY_REALM" + ] + }, + "sys": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string", + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." + ], + "enum": [ + "IP", + "NAME", + "NO_ATTR", + "REGION", + "SERVICE" + ] + }, + "svc": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string" + }, + "op": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string", + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." + ], + "enum": [ + "DISCHARGED", + "EQUALS", + "IN", + "NOT_EQUALS", + "NOT_IN", + "NO_OP" ] + }, + "values": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "type": "string" + } } } }, - "VpnGatewayVpnGatewayInterface": { - "id": "VpnGatewayVpnGatewayInterface", - "description": "A VPN gateway interface.", + "LogConfig": { + "id": "LogConfig", + "description": "This is deprecated and has no effect. Do not use.", "type": "object", "properties": { - "id": { - "description": "[Output Only] Numeric identifier for this VPN interface associated with the VPN gateway.", - "type": "integer", - "format": "uint32" + "counter": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "LogConfigCounterOptions" }, - "ipAddress": { - "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", - "type": "string" + "dataAccess": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "LogConfigDataAccessOptions" }, - "interconnectAttachment": { - "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource.", - "type": "string" + "cloudAudit": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "LogConfigCloudAuditOptions" } } }, - "VpnGatewayAggregatedList": { - "id": "VpnGatewayAggregatedList", + "LogConfigCounterOptions": { + "id": "LogConfigCounterOptions", + "description": "This is deprecated and has no effect. Do not use.", "type": "object", "properties": { - "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "default": "compute#vpnGatewayAggregatedList", + "metric": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string" }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "field": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string" }, - "items": { - "description": "A list of VpnGateway resources.", - "type": "object", - "additionalProperties": { - "description": "[Output Only] Name of the scope containing this set of VPN gateways.", - "$ref": "VpnGatewaysScopedList" + "customFields": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "$ref": "LogConfigCounterOptionsCustomField" } - }, - "nextPageToken": { - "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + } + } + }, + "LogConfigCounterOptionsCustomField": { + "id": "LogConfigCounterOptionsCustomField", + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "properties": { + "name": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "value": { + "description": "This is deprecated and has no effect. Do not use.", "type": "string" + } + } + }, + "LogConfigDataAccessOptions": { + "id": "LogConfigDataAccessOptions", + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "properties": { + "logMode": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string", + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." + ], + "enum": [ + "LOG_FAIL_CLOSED", + "LOG_MODE_UNSPECIFIED" + ] + } + } + }, + "LogConfigCloudAuditOptions": { + "id": "LogConfigCloudAuditOptions", + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "properties": { + "logName": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string", + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." + ], + "enum": [ + "ADMIN_ACTIVITY", + "DATA_ACCESS", + "UNSPECIFIED_LOG_NAME" + ] }, - "warning": { - "description": "[Output Only] Informational warning message.", - "type": "object", - "properties": { - "code": { - "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", - "type": "string", - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enum": [ - "CLEANUP_FAILED", - "DEPRECATED_RESOURCE_USED", - "DEPRECATED_TYPE_USED", - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", - "EXPERIMENTAL_TYPE_USED", - "EXTERNAL_API_WARNING", - "FIELD_VALUE_OVERRIDEN", - "INJECTED_KERNELS_DEPRECATED", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ] - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", - "type": "string" - }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } - } - } - } + "authorizationLoggingOptions": { + "description": "This is deprecated and has no effect. Do not use.", + "$ref": "AuthorizationLoggingOptions" + } + } + }, + "AuthorizationLoggingOptions": { + "id": "AuthorizationLoggingOptions", + "description": "This is deprecated and has no effect. Do not use.", + "type": "object", + "properties": { + "permissionType": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "string", + "enumDescriptions": [ + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use.", + "This is deprecated and has no effect. Do not use." + ], + "enum": [ + "ADMIN_READ", + "ADMIN_WRITE", + "DATA_READ", + "DATA_WRITE", + "PERMISSION_TYPE_UNSPECIFIED" + ] + } + } + }, + "GlobalSetPolicyRequest": { + "id": "GlobalSetPolicyRequest", + "type": "object", + "properties": { + "policy": { + "description": "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 in general a valid policy but certain services (like Projects) might reject them.", + "$ref": "Policy" + }, + "bindings": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "type": "array", + "items": { + "$ref": "Binding" } }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "type": "string", + "format": "byte" + } + } + }, + "TestPermissionsRequest": { + "id": "TestPermissionsRequest", + "type": "object", + "properties": { + "permissions": { + "description": "The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.", "type": "array", "items": { "type": "string" @@ -42976,19 +40534,60 @@ } } }, - "VpnGatewaysScopedList": { - "id": "VpnGatewaysScopedList", + "TestPermissionsResponse": { + "id": "TestPermissionsResponse", "type": "object", "properties": { - "vpnGateways": { - "description": "[Output Only] A list of VPN gateways contained in this scope.", + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", "type": "array", "items": { - "$ref": "VpnGateway" + "type": "string" + } + } + } + }, + "ImageFamilyView": { + "id": "ImageFamilyView", + "type": "object", + "properties": { + "image": { + "description": "The latest image that is part of the specified image family in the requested location, and that is not deprecated.", + "$ref": "Image" + } + } + }, + "SnapshotList": { + "id": "SnapshotList", + "description": "Contains a list of Snapshot resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#snapshotList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Snapshot resources.", + "type": "array", + "items": { + "$ref": "Snapshot" } }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "description": "[Output Only] Informational warning message.", "type": "object", "properties": { "code": { @@ -43110,112 +40709,236 @@ } } }, - "VpnGatewaysGetStatusResponse": { - "id": "VpnGatewaysGetStatusResponse", - "type": "object", - "properties": { - "result": { - "$ref": "VpnGatewayStatus" - } - } - }, - "VpnGatewayStatus": { - "id": "VpnGatewayStatus", + "Snapshot": { + "id": "Snapshot", + "description": "Represents a Persistent Disk Snapshot resource. You can use snapshots to back up data on a regular interval. For more information, read Creating persistent disk snapshots.", "type": "object", "properties": { - "vpnConnections": { - "description": "List of VPN connection for this VpnGateway.", + "kind": { + "description": "[Output Only] Type of the resource. Always compute#snapshot for Snapshot resources.", + "default": "compute#snapshot", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.disks.createSnapshot", + "compute.snapshots.insert" + ] + }, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", + "type": "string", + "enumDescriptions": [ + "Snapshot creation is in progress.", + "Snapshot is currently being deleted.", + "Snapshot creation failed.", + "Snapshot has been created successfully.", + "Snapshot is being uploaded." + ], + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "UPLOADING" + ] + }, + "sourceDisk": { + "description": "The source disk used to create this snapshot.", + "type": "string" + }, + "sourceDiskId": { + "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", + "type": "string" + }, + "diskSizeGb": { + "description": "[Output Only] Size of the source disk, specified in GB.", + "type": "string", + "format": "int64" + }, + "storageBytes": { + "description": "[Output Only] A size of the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.", + "type": "string", + "format": "int64" + }, + "storageBytesStatus": { + "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", + "type": "string", + "enumDescriptions": [ + "", + "" + ], + "enum": [ + "UPDATING", + "UP_TO_DATE" + ] + }, + "licenses": { + "description": "[Output Only] A list of public visible licenses that apply to this snapshot. This can be because the original image had licenses attached (such as a Windows image).", "type": "array", "items": { - "$ref": "VpnGatewayStatusVpnConnection" + "type": "string" } - } - } - }, - "VpnGatewayStatusVpnConnection": { - "id": "VpnGatewayStatusVpnConnection", - "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", - "type": "object", - "properties": { - "peerExternalGateway": { - "description": "URL reference to the peer external VPN gateways to which the VPN tunnels in this VPN connection are connected. This field is mutually exclusive with peer_gcp_gateway.", - "type": "string" }, - "peerGcpGateway": { - "description": "URL reference to the peer side VPN gateways to which the VPN tunnels in this VPN connection are connected. This field is mutually exclusive with peer_gcp_gateway.", + "snapshotEncryptionKey": { + "description": "Encrypts the snapshot using a customer-supplied encryption key. After you encrypt a snapshot using a customer-supplied key, you must provide the same key if you use the snapshot later. For example, you must provide the encryption key when you create a disk from the encrypted snapshot in a future request. Customer-supplied encryption keys do not protect access to metadata of the snapshot. If you do not provide an encryption key when creating the snapshot, then the snapshot will be encrypted using an automatically generated key and you do not need to provide a key to use the snapshot later.", + "$ref": "CustomerEncryptionKey" + }, + "sourceDiskEncryptionKey": { + "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "tunnels": { - "description": "List of VPN tunnels that are in this VPN connection.", + "labels": { + "description": "Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a snapshot.", + "type": "string", + "format": "byte" + }, + "licenseCodes": { + "description": "[Output Only] Integer license codes indicating which licenses are attached to this snapshot.", "type": "array", "items": { - "$ref": "VpnGatewayStatusTunnel" + "type": "string", + "format": "int64" } }, - "state": { - "description": "HighAvailabilityRequirementState for the VPN connection.", - "$ref": "VpnGatewayStatusHighAvailabilityRequirementState" - } - } - }, - "VpnGatewayStatusTunnel": { - "id": "VpnGatewayStatusTunnel", - "description": "Contains some information about a VPN tunnel.", - "type": "object", - "properties": { - "localGatewayInterface": { - "description": "The VPN gateway interface this VPN tunnel is associated with.", - "type": "integer", - "format": "uint32" + "storageLocations": { + "description": "Cloud Storage bucket storage location of the snapshot (regional or multi-regional).", + "type": "array", + "items": { + "type": "string" + } }, - "peerGatewayInterface": { - "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", - "type": "integer", - "format": "uint32" + "autoCreated": { + "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk.", + "type": "boolean" }, - "tunnelUrl": { - "description": "URL reference to the VPN tunnel.", + "guestOsFeatures": { + "description": "[Output Only] A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", + "type": "array", + "items": { + "$ref": "GuestOsFeature" + } + }, + "downloadBytes": { + "description": "[Output Only] Number of bytes downloaded to restore a snapshot to a disk.", + "type": "string", + "format": "int64" + }, + "chainName": { + "description": "Creates the new snapshot in the snapshot chain labeled with the specified name. The chain name must be 1-63 characters long and comply with RFC1035. This is an uncommon option only for advanced service owners who needs to create separate snapshot chains, for example, for chargeback tracking. When you describe your snapshot resource, this field is visible only if it has a non-empty value.", "type": "string" - } - } - }, - "VpnGatewayStatusHighAvailabilityRequirementState": { - "id": "VpnGatewayStatusHighAvailabilityRequirementState", - "description": "Describes the high availability requirement state for the VPN connection between this Cloud VPN gateway and a peer gateway.", - "type": "object", - "properties": { - "state": { - "description": "Indicates the high availability requirement state for the VPN connection. Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET.", + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "locationHint": { + "description": "An opaque location hint used to place the snapshot close to other resources. This field is for use by internal tools that use the public API.", + "type": "string" + }, + "sourceSnapshotSchedulePolicy": { + "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", + "type": "string" + }, + "sourceSnapshotSchedulePolicyId": { + "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", + "type": "string" + }, + "sourceInstantSnapshot": { + "description": "The source instant snapshot used to create this snapshot. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot ", + "type": "string" + }, + "sourceInstantSnapshotId": { + "description": "[Output Only] The unique ID of the instant snapshot used to create this snapshot. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact instant snapshot that was used.", + "type": "string" + }, + "architecture": { + "description": "[Output Only] The architecture of the snapshot. Valid values are ARM64 or X86_64.", "type": "string", "enumDescriptions": [ - "VPN tunnels are configured with adequate redundancy from Cloud VPN gateway to the peer VPN gateway. For both GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a pre-requirement for users to get 99.99% availability on GCP side; please note that for any connection, end-to-end 99.99% availability is subject to proper configuration on the peer VPN gateway.", - "VPN tunnels are not configured with adequate redundancy from the Cloud VPN gateway to the peer gateway" + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], "enum": [ - "CONNECTION_REDUNDANCY_MET", - "CONNECTION_REDUNDANCY_NOT_MET" + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ] }, - "unsatisfiedReason": { - "description": "Indicates the reason why the VPN connection does not meet the high availability redundancy criteria/requirement. Valid values is INCOMPLETE_TUNNELS_COVERAGE.", + "snapshotType": { + "description": "Indicates the type of the snapshot.", "type": "string", "enumDescriptions": [ + "", "" ], "enum": [ - "INCOMPLETE_TUNNELS_COVERAGE" + "ARCHIVE", + "STANDARD" ] + }, + "creationSizeBytes": { + "description": "[Output Only] Size in bytes of the snapshot at creation time.", + "type": "string", + "format": "int64" + }, + "enableConfidentialCompute": { + "description": "Whether this snapshot is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", + "type": "boolean" + }, + "sourceDiskForRecoveryCheckpoint": { + "description": "The source disk whose recovery checkpoint will be used to create this snapshot.", + "type": "string" + }, + "sourceInstantSnapshotEncryptionKey": { + "description": "Customer provided encryption key when creating Snapshot from Instant Snapshot.", + "$ref": "CustomerEncryptionKey" + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" } } }, - "VpnTunnelList": { - "id": "VpnTunnelList", - "description": "Contains a list of VpnTunnel resources.", + "DiskList": { + "id": "DiskList", + "description": "A list of Disk resources.", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", - "default": "compute#vpnTunnelList", + "description": "[Output Only] Type of resource. Always compute#diskList for lists of disks.", + "default": "compute#diskList", "type": "string" }, "id": { @@ -43223,10 +40946,10 @@ "type": "string" }, "items": { - "description": "A list of VpnTunnel resources.", + "description": "A list of Disk resources.", "type": "array", "items": { - "$ref": "VpnTunnel" + "$ref": "Disk" } }, "nextPageToken": { @@ -43360,167 +41083,367 @@ } } }, - "VpnTunnel": { - "id": "VpnTunnel", - "description": "Represents a Cloud VPN Tunnel resource. For more information about VPN, read the the Cloud VPN Overview.", + "Disk": { + "id": "Disk", + "description": "Represents a Persistent Disk resource. Google Compute Engine has two Disk resources: * [Zonal](/compute/docs/reference/rest/v1/disks) * [Regional](/compute/docs/reference/rest/v1/regionDisks) Persistent disks are required for running your VM instances. Create both boot and non-boot (data) persistent disks. For more information, read Persistent Disks. For more storage options, read Storage options. The disks resource represents a zonal persistent disk. For more information, read Zonal persistent disks. The regionDisks resource represents a regional persistent disk. For more information, read Regional resources.", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", - "default": "compute#vpnTunnel", + "description": "[Output Only] Type of the resource. Always compute#disk for disks.", + "default": "compute#disk", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.disks.insert" + ] + }, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "sizeGb": { + "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are greater than 0.", + "type": "string", + "format": "int64" + }, + "zone": { + "description": "[Output Only] URL of the zone where the disk resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of disk creation. - CREATING: Disk is provisioning. - RESTORING: Source data is being copied into the disk. - FAILED: Disk creation failed. - READY: Disk is ready for use. - DELETING: Disk is deleting. ", + "type": "string", + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." + ], + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" + ] + }, + "sourceSnapshot": { + "description": "The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project /global/snapshots/snapshot - projects/project/global/snapshots/snapshot - global/snapshots/snapshot ", + "type": "string" + }, + "sourceSnapshotId": { + "description": "[Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.", + "type": "string" + }, + "sourceStorageObject": { + "description": "The full Google Cloud Storage URI where the disk image is stored. This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk. Valid URIs may start with gs:// or https://storage.googleapis.com/. This flag is not optimized for creating multiple disks from a source storage object. To create many disks from a source storage object, use gcloud compute images import instead.", + "type": "string" + }, + "options": { + "description": "Internal use only.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "sourceImage": { + "description": "The source image used to create this disk. If the source image is deleted, this field will not be set. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family ", + "type": "string" + }, + "sourceImageId": { + "description": "[Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.", + "type": "string" + }, + "type": { + "description": "URL of the disk type resource describing which disk type to use to create the disk. Provide this when creating the disk. For example: projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types.", + "type": "string" + }, + "licenses": { + "description": "A list of publicly visible licenses. Reserved for Google's use.", + "type": "array", + "items": { + "type": "string" + } + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", + "type": "array", + "items": { + "$ref": "GuestOsFeature" + } + }, + "lastAttachTimestamp": { + "description": "[Output Only] Last attach timestamp in RFC3339 text format.", + "type": "string" + }, + "lastDetachTimestamp": { + "description": "[Output Only] Last detach timestamp in RFC3339 text format.", + "type": "string" + }, + "users": { + "description": "[Output Only] Links to the users of the disk (attached instances) in form: projects/project/zones/zone/instances/instance", + "type": "array", + "items": { + "type": "string" + } + }, + "diskEncryptionKey": { + "description": "Encrypts the disk using a customer-supplied encryption key or a customer-managed encryption key. Encryption keys do not protect access to metadata of the disk. After you encrypt a disk with a customer-supplied key, you must provide the same key if you use the disk later. For example, to create a disk snapshot, to create a disk image, to create a machine image, or to attach the disk to a virtual machine. After you encrypt a disk with a customer-managed key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the disk is created. The disk is encrypted with this version of the key. In the response, diskEncryptionKey.kmsKeyName appears in the following format: \"diskEncryptionKey.kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not provide an encryption key when creating the disk, then the disk is encrypted using an automatically generated key and you don't need to provide a key to use the disk later.", + "$ref": "CustomerEncryptionKey" + }, + "sourceImageEncryptionKey": { + "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "sourceSnapshotEncryptionKey": { + "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + }, + "labels": { + "description": "Labels to apply to this disk. These can be later modified by the setLabels method.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a disk.", + "type": "string", + "format": "byte" + }, + "region": { + "description": "[Output Only] URL of the region where the disk resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "replicaZones": { + "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "licenseCodes": { + "description": "Integer license codes indicating which licenses are attached to this disk.", + "type": "array", + "items": { + "type": "string", + "format": "int64" + } + }, + "physicalBlockSizeBytes": { + "description": "Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. The currently supported size is 4096, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller's project.", "type": "string", - "format": "uint64" + "format": "int64" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" + "resourcePolicies": { + "description": "Resource policies applied to this disk for automatic snapshot creations.", + "type": "array", + "items": { + "type": "string" + } }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "annotations": { - "required": [ - "compute.vpnTunnels.insert" - ] - }, + "sourceDisk": { + "description": "The source disk used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "sourceDiskId": { + "description": "[Output Only] The unique ID of the disk used to create this disk. This value identifies the exact disk that was used to create this persistent disk. For example, if you created the persistent disk from a disk that was later deleted and recreated under the same name, the source disk ID would identify the exact version of the disk that was used.", "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the VPN tunnel resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "provisionedIops": { + "description": "Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.", + "type": "string", + "format": "int64" }, - "targetVpnGateway": { - "description": "URL of the Target VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.", - "type": "string" + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be greater than or equal to 1.", + "type": "string", + "format": "int64" }, - "vpnGateway": { - "description": "URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created. This must be used (instead of target_vpn_gateway) if a High Availability VPN gateway resource is created.", - "type": "string" + "enableConfidentialCompute": { + "description": "Whether this disk is using confidential compute mode.", + "type": "boolean" }, - "vpnGatewayInterface": { - "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. Possible values are: `0`, `1`.", - "type": "integer", - "format": "int32" + "sourceInstantSnapshot": { + "description": "The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot ", + "type": "string" }, - "peerExternalGateway": { - "description": "URL of the peer side external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field is exclusive with the field peerGcpGateway.", + "sourceInstantSnapshotId": { + "description": "[Output Only] The unique ID of the instant snapshot used to create this disk. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact version of the instant snapshot that was used.", "type": "string" }, - "peerExternalGatewayInterface": { - "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the external VPN gateway redundancy type.", - "type": "integer", - "format": "int32" + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" }, - "peerGcpGateway": { - "description": "URL of the peer side HA VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer Google Cloud VPN gateway.", - "type": "string" + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" }, - "router": { - "description": "URL of the router resource to be used for dynamic routing.", + "locationHint": { + "description": "An opaque location hint used to place the disk close to other resources. This field is for use by internal tools that use the public API.", "type": "string" }, - "peerIp": { - "description": "IP address of the peer VPN gateway. Only IPv4 is supported.", + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", "type": "string" }, - "sharedSecret": { - "description": "Shared secret used to set the secure session between the Cloud VPN gateway and the peer VPN gateway.", + "asyncPrimaryDisk": { + "description": "Disk asynchronously replicated into this disk.", + "$ref": "DiskAsyncReplication" + }, + "asyncSecondaryDisks": { + "description": "[Output Only] A list of disks this disk is asynchronously replicated to.", + "type": "object", + "additionalProperties": { + "$ref": "DiskAsyncReplicationList" + } + }, + "resourceStatus": { + "description": "[Output Only] Status information for the disk resource.", + "$ref": "DiskResourceStatus" + }, + "sourceConsistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", "type": "string" }, - "sharedSecretHash": { - "description": "Hash of the shared secret.", + "sourceConsistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", "type": "string" }, - "status": { - "description": "[Output Only] The status of the VPN tunnel, which can be one of the following: - PROVISIONING: Resource is being allocated for the VPN tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful first handshake with the peer VPN. - ESTABLISHED: Secure session is successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - DEPROVISIONING: Resources are being deallocated for the VPN tunnel. - FAILED: Tunnel creation has failed and the tunnel is not ready to be used. - NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel configuration was rejected, can be result of being denied access. - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources. - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state. - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed for an HA-VPN tunnel. ", + "architecture": { + "description": "The architecture of the disk. Valid values are ARM64 or X86_64.", "type": "string", "enumDescriptions": [ - "Cloud VPN is in the process of allocating all required resources (specifically, a borg task).", - "Auth error (e.g. bad shared secret).", - "Resources is being deallocated for the VPN tunnel.", - "Secure session is successfully established with peer VPN.", - "Tunnel creation has failed and the tunnel is not ready to be used.", - "Successful first handshake with peer VPN.", - "Handshake failed.", - "Deprecated, replaced by NO_INCOMING_PACKETS", - "No incoming packets from peer", - "Resource is being allocated for the VPN tunnel.", - "Tunnel configuration was rejected, can be result of being denylisted.", - "Tunnel is stopped due to its Forwarding Rules being deleted.", - "Waiting to receive all VPN-related configs from user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route resources are needed to setup VPN tunnel." + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], "enum": [ - "ALLOCATING_RESOURCES", - "AUTHORIZATION_ERROR", - "DEPROVISIONING", - "ESTABLISHED", - "FAILED", - "FIRST_HANDSHAKE", - "NEGOTIATION_FAILURE", - "NETWORK_ERROR", - "NO_INCOMING_PACKETS", - "PROVISIONING", - "REJECTED", - "STOPPED", - "WAITING_FOR_FULL_CONFIG" + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ] }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "params": { + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.", + "$ref": "DiskParams" + } + } + }, + "DiskAsyncReplication": { + "id": "DiskAsyncReplication", + "type": "object", + "properties": { + "disk": { + "description": "The other disk asynchronously replicated to or from the current disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", "type": "string" }, - "ikeVersion": { - "description": "IKE protocol version to use when establishing the VPN tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2. The default version is 2.", - "type": "integer", - "format": "int32" + "diskId": { + "description": "[Output Only] The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used.", + "type": "string" }, - "detailedStatus": { - "description": "[Output Only] Detailed status message for the VPN tunnel.", + "consistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", "type": "string" }, - "localTrafficSelector": { - "description": "Local traffic selector to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported.", - "type": "array", - "items": { - "type": "string" - } + "consistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + } + } + }, + "DiskAsyncReplicationList": { + "id": "DiskAsyncReplicationList", + "type": "object", + "properties": { + "asyncReplicationDisk": { + "$ref": "DiskAsyncReplication" + } + } + }, + "DiskResourceStatus": { + "id": "DiskResourceStatus", + "type": "object", + "properties": { + "asyncPrimaryDisk": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" }, - "remoteTrafficSelector": { - "description": "Remote traffic selectors to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.", - "type": "array", - "items": { - "type": "string" + "asyncSecondaryDisks": { + "description": "Key: disk, value: AsyncReplicationStatus message", + "type": "object", + "additionalProperties": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" } - }, - "labels": { - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + } + } + }, + "DiskResourceStatusAsyncReplicationStatus": { + "id": "DiskResourceStatusAsyncReplicationStatus", + "type": "object", + "properties": { + "state": { + "type": "string", + "enumDescriptions": [ + "Replication is active.", + "Secondary disk is created and is waiting for replication to start.", + "Replication is starting.", + "", + "Replication is stopped.", + "Replication is stopping." + ], + "enum": [ + "ACTIVE", + "CREATED", + "STARTING", + "STATE_UNSPECIFIED", + "STOPPED", + "STOPPING" + ] + } + } + }, + "DiskParams": { + "id": "DiskParams", + "description": "Additional disk params.", + "type": "object", + "properties": { + "resourceManagerTags": { + "description": "Resource manager tags to be bound to the disk. 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.", "type": "object", "additionalProperties": { "type": "string" } - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.", - "type": "string", - "format": "byte" } } }, - "VpnTunnelAggregatedList": { - "id": "VpnTunnelAggregatedList", + "DiskAggregatedList": { + "id": "DiskAggregatedList", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", - "default": "compute#vpnTunnelAggregatedList", + "description": "[Output Only] Type of resource. Always compute#diskAggregatedList for aggregated lists of persistent disks.", + "default": "compute#diskAggregatedList", "type": "string" }, "id": { @@ -43528,11 +41451,11 @@ "type": "string" }, "items": { - "description": "A list of VpnTunnelsScopedList resources.", + "description": "A list of DisksScopedList resources.", "type": "object", "additionalProperties": { - "description": "Name of the scope containing this set of VPN tunnels.", - "$ref": "VpnTunnelsScopedList" + "description": "[Output Only] Name of the scope containing this set of disks.", + "$ref": "DisksScopedList" } }, "nextPageToken": { @@ -43673,19 +41596,19 @@ } } }, - "VpnTunnelsScopedList": { - "id": "VpnTunnelsScopedList", + "DisksScopedList": { + "id": "DisksScopedList", "type": "object", "properties": { - "vpnTunnels": { - "description": "A list of VPN tunnels contained in this scope.", + "disks": { + "description": "[Output Only] A list of disks contained in this scope.", "type": "array", "items": { - "$ref": "VpnTunnel" + "$ref": "Disk" } }, "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", + "description": "[Output Only] Informational warning which replaces the list of disks when the list is empty.", "type": "object", "properties": { "code": { @@ -43807,14 +41730,192 @@ } } }, - "ZoneList": { - "id": "ZoneList", - "description": "Contains a list of zone resources.", + "ZoneSetLabelsRequest": { + "id": "ZoneSetLabelsRequest", + "type": "object", + "properties": { + "labels": { + "description": "The labels to set for this resource.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", + "type": "string", + "format": "byte" + } + } + }, + "DisksResizeRequest": { + "id": "DisksResizeRequest", + "type": "object", + "properties": { + "sizeGb": { + "description": "The new size of the persistent disk, which is specified in GB.", + "type": "string", + "format": "int64" + } + } + }, + "DisksAddResourcePoliciesRequest": { + "id": "DisksAddResourcePoliciesRequest", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "Full or relative path to the resource policy to be added to this disk. You can only specify one resource policy.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "DisksRemoveResourcePoliciesRequest": { + "id": "DisksRemoveResourcePoliciesRequest", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be removed from this disk.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ZoneSetPolicyRequest": { + "id": "ZoneSetPolicyRequest", + "type": "object", + "properties": { + "policy": { + "description": "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 in general a valid policy but certain services (like Projects) might reject them.", + "$ref": "Policy" + }, + "bindings": { + "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "type": "array", + "items": { + "$ref": "Binding" + } + }, + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "type": "string", + "format": "byte" + } + } + }, + "DisksStartAsyncReplicationRequest": { + "id": "DisksStartAsyncReplicationRequest", + "type": "object", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + } + } + }, + "DisksStopGroupAsyncReplicationResource": { + "id": "DisksStopGroupAsyncReplicationResource", + "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and compute.regionDisks.stopGroupAsyncReplication. It is only used to process requests and is not persisted.", + "type": "object", + "properties": { + "resourcePolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", + "type": "string" + } + } + }, + "BulkInsertDiskResource": { + "id": "BulkInsertDiskResource", + "description": "A transient resource used in compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used to process requests and is not persisted.", + "type": "object", + "properties": { + "sourceConsistencyGroupPolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", + "type": "string" + } + } + }, + "RegionDisksResizeRequest": { + "id": "RegionDisksResizeRequest", + "type": "object", + "properties": { + "sizeGb": { + "description": "The new size of the regional persistent disk, which is specified in GB.", + "type": "string", + "format": "int64" + } + } + }, + "RegionDisksAddResourcePoliciesRequest": { + "id": "RegionDisksAddResourcePoliciesRequest", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be added to this disk.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RegionDisksRemoveResourcePoliciesRequest": { + "id": "RegionDisksRemoveResourcePoliciesRequest", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be removed from this disk.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RegionSetPolicyRequest": { + "id": "RegionSetPolicyRequest", + "type": "object", + "properties": { + "policy": { + "description": "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 in general a valid policy but certain services (like Projects) might reject them.", + "$ref": "Policy" + }, + "bindings": { + "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "type": "array", + "items": { + "$ref": "Binding" + } + }, + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "type": "string", + "format": "byte" + } + } + }, + "RegionDisksStartAsyncReplicationRequest": { + "id": "RegionDisksStartAsyncReplicationRequest", + "type": "object", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + } + } + }, + "FirewallList": { + "id": "FirewallList", + "description": "Contains a list of firewalls.", "type": "object", "properties": { "kind": { - "description": "Type of resource.", - "default": "compute#zoneList", + "description": "[Output Only] Type of resource. Always compute#firewallList for lists of firewalls.", + "default": "compute#firewallList", "type": "string" }, "id": { @@ -43822,10 +41923,10 @@ "type": "string" }, "items": { - "description": "A list of Zone resources.", + "description": "A list of Firewall resources.", "type": "array", "items": { - "$ref": "Zone" + "$ref": "Firewall" } }, "nextPageToken": { @@ -43959,14 +42060,14 @@ } } }, - "Zone": { - "id": "Zone", - "description": "Represents a Zone resource. A zone is a deployment area. These deployment areas are subsets of a region. For example the zone us-east1-a is located in the us-east1 region. For more information, read Regions and Zones.", + "Firewall": { + "id": "Firewall", + "description": "Represents a Firewall Rule resource. Firewall rules allow or deny ingress traffic to, and egress traffic from your instances. For more information, read Firewall rules.", "type": "object", "properties": { "kind": { - "description": "[Output Only] Type of the resource. Always compute#zone for zones.", - "default": "compute#zone", + "description": "[Output Only] Type of the resource. Always compute#firewall for firewall rules.", + "default": "compute#firewall", "type": "string" }, "id": { @@ -43979,35479 +42080,42117 @@ "type": "string" }, "name": { - "description": "[Output Only] Name of the resource.", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.firewalls.insert", + "compute.firewalls.patch" + ] + }, "type": "string" }, "description": { - "description": "[Output Only] Textual description of the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] Status of the zone, either UP or DOWN.", - "type": "string", - "enumDescriptions": [ - "", - "" - ], - "enum": [ - "DOWN", - "UP" - ] - }, - "deprecated": { - "description": "[Output Only] The deprecation status associated with this zone.", - "$ref": "DeprecationStatus" - }, - "region": { - "description": "[Output Only] Full URL reference to the region which hosts the zone.", + "description": "An optional description of this resource. Provide this field when you create the resource.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "network": { + "description": "URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used: global/networks/default If you choose to specify this field, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network - projects/myproject/global/networks/my-network - global/networks/default ", "type": "string" }, - "availableCpuPlatforms": { - "description": "[Output Only] Available cpu/platform selections for the zone.", + "priority": { + "description": "Priority for this rule. This is an integer between `0` and `65535`, both inclusive. The default value is `1000`. Relative priorities determine which rule takes effect if multiple rules apply. Lower values indicate higher priority. For example, a rule with priority `0` has higher precedence than a rule with priority `1`. DENY rules take precedence over ALLOW rules if they have equal priority. Note that VPC networks have implied rules with a priority of `65535`. To avoid conflicts with the implied rules, use a priority number less than `65535`.", + "type": "integer", + "format": "int32" + }, + "sourceRanges": { + "description": "If source ranges are specified, the firewall rule applies only to traffic that has a source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both fields are set, the rule applies to traffic that has a source IP address within sourceRanges OR a source IP from a resource with a matching tag listed in the sourceTags field. The connection does not need to match both fields for the rule to apply. Both IPv4 and IPv6 are supported.", "type": "array", "items": { "type": "string" } }, - "supportsPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - } - } - }, - "AuditConfig": { - "id": "AuditConfig", - "description": "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.", - "type": "object", - "properties": { - "exemptedMembers": { - "description": "This is deprecated and has no effect. Do not use.", + "destinationRanges": { + "description": "If destination ranges are specified, the firewall rule applies only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Both IPv4 and IPv6 are supported.", "type": "array", "items": { "type": "string" } }, - "auditLogConfigs": { - "description": "The configuration for logging of each type of permission.", + "sourceTags": { + "description": "If source tags are specified, the firewall rule applies only to traffic with source IPs that match the primary network interfaces of VM instances that have the tag and are in the same VPC network. Source tags cannot be used to control traffic to an instance's external IP address, it only applies to traffic between instances in the same virtual network. Because tags are associated with instances, not IP addresses. One or both of sourceRanges and sourceTags may be set. If both fields are set, the firewall applies to traffic that has a source IP address within sourceRanges OR a source IP from a resource with a matching tag listed in the sourceTags field. The connection does not need to match both fields for the firewall to apply.", "type": "array", "items": { - "$ref": "AuditLogConfig" + "type": "string" } }, - "service": { - "description": "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.", - "type": "string" - } - } - } - }, - "batchPath": "batch/compute/v1", - "version": "v1", - "icons": { - "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", - "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" - }, - "discoveryVersion": "v1", - "revision": "20240130", - "documentationLink": "https://cloud.google.com/compute/", - "parameters": { - "access_token": { - "type": "string", - "description": "OAuth access token.", - "location": "query" - }, - "alt": { - "type": "string", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ], - "location": "query" - }, - "callback": { - "type": "string", - "description": "JSONP", - "location": "query" - }, - "fields": { - "type": "string", - "description": "Selector specifying which fields to include in a partial response.", - "location": "query" - }, - "key": { - "type": "string", - "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", - "location": "query" - }, - "oauth_token": { - "type": "string", - "description": "OAuth 2.0 token for the current user.", - "location": "query" - }, - "prettyPrint": { - "type": "boolean", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "location": "query" - }, - "quotaUser": { - "type": "string", - "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", - "location": "query" - }, - "upload_protocol": { - "type": "string", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "location": "query" - }, - "uploadType": { - "type": "string", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "location": "query" - }, - "userIp": { - "type": "string", - "description": "Legacy name for parameter that has been superseded by `quotaUser`.", - "location": "query" - }, - "$.xgafv": { - "type": "string", - "description": "V1 error format.", - "enum": [ - "1", - "2" - ], - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - } - }, - "baseUrl": "https://compute.googleapis.com/compute/v1/", - "mtlsRootUrl": "https://compute.mtls.googleapis.com/", - "rootUrl": "https://compute.googleapis.com/", - "protocol": "rest", - "ownerDomain": "google.com", - "basePath": "/compute/v1/", - "servicePath": "compute/v1/", - "resources": { - "acceleratorTypes": { - "methods": { - "list": { - "id": "compute.acceleratorTypes.list", - "path": "projects/{project}/zones/{zone}/acceleratorTypes", - "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "AcceleratorTypeList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of accelerator types that are available to the specified project." - }, - "aggregatedList": { - "id": "compute.acceleratorTypes.aggregatedList", - "path": "projects/{project}/aggregated/acceleratorTypes", - "flatPath": "projects/{project}/aggregated/acceleratorTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "AcceleratorTypeAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of accelerator types." - }, - "get": { - "id": "compute.acceleratorTypes.get", - "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", - "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}", - "httpMethod": "GET", - "parameters": { - "acceleratorType": { - "description": "Name of the accelerator type to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "acceleratorType" - ], - "response": { - "$ref": "AcceleratorType" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified accelerator type." - } - } - }, - "globalOperations": { - "methods": { - "list": { - "id": "compute.globalOperations.list", - "path": "projects/{project}/global/operations", - "flatPath": "projects/{project}/global/operations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "OperationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of Operation resources contained within the specified project." + "targetTags": { + "description": "A list of tags that controls which instances the firewall rule applies to. If targetTags are specified, then the firewall rule applies only to instances in the VPC network that have one of those tags. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", + "type": "array", + "items": { + "type": "string" + } }, - "aggregatedList": { - "id": "compute.globalOperations.aggregatedList", - "path": "projects/{project}/aggregated/operations", - "flatPath": "projects/{project}/aggregated/operations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "OperationAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of all operations." + "sourceServiceAccounts": { + "description": "If source service accounts are specified, the firewall rules apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall applies to traffic that has a source IP address within the sourceRanges OR a source IP that belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both fields for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.", + "type": "array", + "items": { + "type": "string" + } }, - "get": { - "id": "compute.globalOperations.get", - "path": "projects/{project}/global/operations/{operation}", - "flatPath": "projects/{project}/global/operations/{operation}", - "httpMethod": "GET", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the specified Operations resource." + "targetServiceAccounts": { + "description": "A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.", + "type": "array", + "items": { + "type": "string" + } }, - "wait": { - "id": "compute.globalOperations.wait", - "path": "projects/{project}/global/operations/{operation}/wait", - "flatPath": "projects/{project}/global/operations/{operation}/wait", - "httpMethod": "POST", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "allowed": { + "description": "The list of ALLOW rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.", + "type": "array", + "items": { + "type": "object", + "properties": { + "IPProtocol": { + "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.", + "type": "string" + }, + "ports": { + "description": "An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", + "type": "array", + "items": { + "type": "string" + } + } } - }, - "parameterOrder": [ - "project", - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. " + } }, - "delete": { - "id": "compute.globalOperations.delete", - "path": "projects/{project}/global/operations/{operation}", - "flatPath": "projects/{project}/global/operations/{operation}", - "httpMethod": "DELETE", - "parameters": { - "operation": { - "description": "Name of the Operations resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "denied": { + "description": "The list of DENY rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a denied connection.", + "type": "array", + "items": { + "type": "object", + "properties": { + "IPProtocol": { + "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.", + "type": "string" + }, + "ports": { + "description": "An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", + "type": "array", + "items": { + "type": "string" + } + } } - }, - "parameterOrder": [ - "project", - "operation" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + }, + "direction": { + "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot specify the sourceTags fields.", + "type": "string", + "enumDescriptions": [ + "Indicates that firewall should apply to outgoing traffic.", + "Indicates that firewall should apply to incoming traffic." ], - "description": "Deletes the specified Operations resource." + "enum": [ + "EGRESS", + "INGRESS" + ] + }, + "logConfig": { + "description": "This field denotes the logging options for a particular firewall rule. If logging is enabled, logs will be exported to Cloud Logging.", + "$ref": "FirewallLogConfig" + }, + "disabled": { + "description": "Denotes whether the firewall rule is disabled. When set to true, the firewall rule is not enforced and the network behaves as if it did not exist. If this is unspecified, the firewall rule will be enabled.", + "type": "boolean" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" } } }, - "globalOrganizationOperations": { - "methods": { - "list": { - "id": "compute.globalOrganizationOperations.list", - "path": "locations/global/operations", - "flatPath": "locations/global/operations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "parentId": { - "description": "Parent ID for this request.", - "location": "query", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "response": { - "$ref": "OperationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of Operation resources contained within the specified organization." - }, - "get": { - "id": "compute.globalOrganizationOperations.get", - "path": "locations/global/operations/{operation}", - "flatPath": "locations/global/operations/{operation}", - "httpMethod": "GET", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "parentId": { - "description": "Parent ID for this request.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request." + "FirewallLogConfig": { + "id": "FirewallLogConfig", + "description": "The available logging options for a firewall rule.", + "type": "object", + "properties": { + "enable": { + "description": "This field denotes whether to enable logging for a particular firewall rule.", + "type": "boolean" }, - "delete": { - "id": "compute.globalOrganizationOperations.delete", - "path": "locations/global/operations/{operation}", - "flatPath": "locations/global/operations/{operation}", - "httpMethod": "DELETE", - "parameters": { - "operation": { - "description": "Name of the Operations resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "parentId": { - "description": "Parent ID for this request.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "operation" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "metadata": { + "description": "This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Deletes the specified Operations resource." + "enum": [ + "EXCLUDE_ALL_METADATA", + "INCLUDE_ALL_METADATA" + ] } } }, - "zoneOperations": { - "methods": { - "list": { - "id": "compute.zoneOperations.list", - "path": "projects/{project}/zones/{zone}/operations", - "flatPath": "projects/{project}/zones/{zone}/operations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "Name of the zone for request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "OperationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of Operation resources contained within the specified zone." + "FirewallPolicyList": { + "id": "FirewallPolicyList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#firewallPolicyList for listsof FirewallPolicies", + "default": "compute#firewallPolicyList", + "type": "string" }, - "get": { - "id": "compute.zoneOperations.get", - "path": "projects/{project}/zones/{zone}/operations/{operation}", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", - "httpMethod": "GET", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of FirewallPolicy resources.", + "type": "array", + "items": { + "$ref": "FirewallPolicy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the specified zone-specific Operations resource." + } + } + } + }, + "FirewallPolicy": { + "id": "FirewallPolicy", + "description": "Represents a Firewall Policy resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output only] Type of the resource. Always compute#firewallPolicyfor firewall policies", + "default": "compute#firewallPolicy", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "rules": { + "description": "A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a firewall policy, a default rule with action \"allow\" will be added.", + "type": "array", + "items": { + "$ref": "FirewallPolicyRule" + } + }, + "fingerprint": { + "description": "Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make get() request to the firewall policy.", + "type": "string", + "format": "byte" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "associations": { + "description": "A list of associations that belong to this firewall policy.", + "type": "array", + "items": { + "$ref": "FirewallPolicyAssociation" + } + }, + "ruleTupleCount": { + "description": "[Output Only] Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.", + "type": "integer", + "format": "int32" }, - "wait": { - "id": "compute.zoneOperations.wait", - "path": "projects/{project}/zones/{zone}/operations/{operation}/wait", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait", - "httpMethod": "POST", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method waits for no more than the 2 minutes and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. " + "shortName": { + "description": "User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "delete": { - "id": "compute.zoneOperations.delete", - "path": "projects/{project}/zones/{zone}/operations/{operation}", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", - "httpMethod": "DELETE", - "parameters": { - "operation": { - "description": "Name of the Operations resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "operation" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified zone-specific Operations resource." + "displayName": { + "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "deprecated": true, + "type": "string" + }, + "parent": { + "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the regional firewall policy resides. This field is not applicable to global firewall policies. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" } } }, - "regionOperations": { - "methods": { - "list": { - "id": "compute.regionOperations.list", - "path": "projects/{project}/regions/{region}/operations", - "flatPath": "projects/{project}/regions/{region}/operations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "OperationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of Operation resources contained within the specified region." + "FirewallPolicyRule": { + "id": "FirewallPolicyRule", + "description": "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).", + "type": "object", + "properties": { + "kind": { + "description": "[Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules", + "default": "compute#firewallPolicyRule", + "type": "string" }, - "get": { - "id": "compute.regionOperations.get", - "path": "projects/{project}/regions/{region}/operations/{operation}", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}", - "httpMethod": "GET", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the specified region-specific Operations resource." + "ruleName": { + "description": "An optional name for the rule. This field is not a unique identifier and can be updated.", + "type": "string" }, - "wait": { - "id": "compute.regionOperations.wait", - "path": "projects/{project}/regions/{region}/operations/{operation}/wait", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait", - "httpMethod": "POST", - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "operation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. " + "description": { + "description": "An optional description for this resource.", + "type": "string" }, - "delete": { - "id": "compute.regionOperations.delete", - "path": "projects/{project}/regions/{region}/operations/{operation}", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}", - "httpMethod": "DELETE", - "parameters": { - "operation": { - "description": "Name of the Operations resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "operation" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "priority": { + "description": "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 prority.", + "type": "integer", + "format": "int32" + }, + "match": { + "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", + "$ref": "FirewallPolicyRuleMatcher" + }, + "action": { + "description": "The Action to perform when the client connection triggers the rule. Valid actions are \"allow\", \"deny\" and \"goto_next\".", + "type": "string" + }, + "securityProfileGroup": { + "description": "A fully-qualified URL of a SecurityProfile resource instance. Example: https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.", + "type": "string" + }, + "tlsInspect": { + "description": "Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.", + "type": "boolean" + }, + "direction": { + "description": "The direction in which this rule applies.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Deletes the specified region-specific Operations resource." + "enum": [ + "EGRESS", + "INGRESS" + ] + }, + "targetResources": { + "description": "A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule.", + "type": "array", + "items": { + "type": "string" + } + }, + "enableLogging": { + "description": "Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on \"goto_next\" rules.", + "type": "boolean" + }, + "ruleTupleCount": { + "description": "[Output Only] Calculation of the complexity of a single firewall policy rule.", + "type": "integer", + "format": "int32" + }, + "targetServiceAccounts": { + "description": "A list of service accounts indicating the sets of instances that are applied with this rule.", + "type": "array", + "items": { + "type": "string" + } + }, + "targetSecureTags": { + "description": "A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule applies to all instances on the specified network. Maximum number of target label tags allowed is 256.", + "type": "array", + "items": { + "$ref": "FirewallPolicyRuleSecureTag" + } + }, + "disabled": { + "description": "Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.", + "type": "boolean" } } }, - "globalAddresses": { - "methods": { - "list": { - "id": "compute.globalAddresses.list", - "path": "projects/{project}/global/addresses", - "flatPath": "projects/{project}/global/addresses", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "AddressList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of global addresses." + "FirewallPolicyRuleMatcher": { + "id": "FirewallPolicyRuleMatcher", + "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", + "type": "object", + "properties": { + "srcIpRanges": { + "description": "CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.", + "type": "array", + "items": { + "type": "string" + } }, - "get": { - "id": "compute.globalAddresses.get", - "path": "projects/{project}/global/addresses/{address}", - "flatPath": "projects/{project}/global/addresses/{address}", - "httpMethod": "GET", - "parameters": { - "address": { - "description": "Name of the address resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "address" - ], - "response": { - "$ref": "Address" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified address resource." + "destIpRanges": { + "description": "CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.", + "type": "array", + "items": { + "type": "string" + } + }, + "layer4Configs": { + "description": "Pairs of IP protocols and ports that the rule should match.", + "type": "array", + "items": { + "$ref": "FirewallPolicyRuleMatcherLayer4Config" + } + }, + "srcSecureTags": { + "description": "List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.", + "type": "array", + "items": { + "$ref": "FirewallPolicyRuleSecureTag" + } + }, + "destAddressGroups": { + "description": "Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.", + "type": "array", + "items": { + "type": "string" + } + }, + "srcAddressGroups": { + "description": "Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.", + "type": "array", + "items": { + "type": "string" + } + }, + "srcFqdns": { + "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.", + "type": "array", + "items": { + "type": "string" + } + }, + "destFqdns": { + "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.", + "type": "array", + "items": { + "type": "string" + } + }, + "srcRegionCodes": { + "description": "Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.", + "type": "array", + "items": { + "type": "string" + } }, - "insert": { - "id": "compute.globalAddresses.insert", - "path": "projects/{project}/global/addresses", - "flatPath": "projects/{project}/global/addresses", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Address" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an address resource in the specified project by using the data included in the request." + "destRegionCodes": { + "description": "Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.", + "type": "array", + "items": { + "type": "string" + } }, - "delete": { - "id": "compute.globalAddresses.delete", - "path": "projects/{project}/global/addresses/{address}", - "flatPath": "projects/{project}/global/addresses/{address}", - "httpMethod": "DELETE", - "parameters": { - "address": { - "description": "Name of the address resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "address" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified address resource." + "destThreatIntelligences": { + "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.", + "type": "array", + "items": { + "type": "string" + } }, - "move": { - "id": "compute.globalAddresses.move", - "path": "projects/{project}/global/addresses/{address}/move", - "flatPath": "projects/{project}/global/addresses/{address}/move", - "httpMethod": "POST", - "parameters": { - "address": { - "description": "Name of the address resource to move.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Source project ID which the Address is moved from.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "address" - ], - "request": { - "$ref": "GlobalAddressesMoveRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Moves the specified address resource from one project to another project." + "srcThreatIntelligences": { + "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "FirewallPolicyRuleMatcherLayer4Config": { + "id": "FirewallPolicyRuleMatcherLayer4Config", + "type": "object", + "properties": { + "ipProtocol": { + "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.", + "type": "string" }, - "setLabels": { - "id": "compute.globalAddresses.setLabels", - "path": "projects/{project}/global/addresses/{resource}/setLabels", - "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation." + "ports": { + "description": "An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", + "type": "array", + "items": { + "type": "string" + } } } }, - "addresses": { - "methods": { - "list": { - "id": "compute.addresses.list", - "path": "projects/{project}/regions/{region}/addresses", - "flatPath": "projects/{project}/regions/{region}/addresses", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "AddressList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of addresses contained within the specified region." + "FirewallPolicyRuleSecureTag": { + "id": "FirewallPolicyRuleSecureTag", + "type": "object", + "properties": { + "name": { + "description": "Name of the secure tag, created with TagManager's TagValue API.", + "pattern": "tagValues/[0-9]+", + "type": "string" }, - "aggregatedList": { - "id": "compute.addresses.aggregatedList", - "path": "projects/{project}/aggregated/addresses", - "flatPath": "projects/{project}/aggregated/addresses", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "AddressAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "state": { + "description": "[Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Retrieves an aggregated list of addresses." + "enum": [ + "EFFECTIVE", + "INEFFECTIVE" + ] + } + } + }, + "FirewallPolicyAssociation": { + "id": "FirewallPolicyAssociation", + "type": "object", + "properties": { + "name": { + "description": "The name for an association.", + "type": "string" }, - "get": { - "id": "compute.addresses.get", - "path": "projects/{project}/regions/{region}/addresses/{address}", - "flatPath": "projects/{project}/regions/{region}/addresses/{address}", - "httpMethod": "GET", - "parameters": { - "address": { - "description": "Name of the address resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "address" - ], - "response": { - "$ref": "Address" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified address resource." + "attachmentTarget": { + "description": "The target that the firewall policy is attached to.", + "type": "string" }, - "insert": { - "id": "compute.addresses.insert", - "path": "projects/{project}/regions/{region}/addresses", - "flatPath": "projects/{project}/regions/{region}/addresses", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Address" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an address resource in the specified project by using the data included in the request." + "firewallPolicyId": { + "description": "[Output Only] The firewall policy ID of the association.", + "type": "string" }, - "delete": { - "id": "compute.addresses.delete", - "path": "projects/{project}/regions/{region}/addresses/{address}", - "flatPath": "projects/{project}/regions/{region}/addresses/{address}", - "httpMethod": "DELETE", - "parameters": { - "address": { - "description": "Name of the address resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "address" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified address resource." + "shortName": { + "description": "[Output Only] The short name of the firewall policy of the association.", + "type": "string" + }, + "displayName": { + "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", + "deprecated": true, + "type": "string" + } + } + }, + "FirewallPoliciesListAssociationsResponse": { + "id": "FirewallPoliciesListAssociationsResponse", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of firewallPolicy associations. Always compute#FirewallPoliciesListAssociations for lists of firewallPolicy associations.", + "default": "compute#firewallPoliciesListAssociationsResponse", + "type": "string" + }, + "associations": { + "description": "A list of associations.", + "type": "array", + "items": { + "$ref": "FirewallPolicyAssociation" + } + } + } + }, + "GlobalOrganizationSetPolicyRequest": { + "id": "GlobalOrganizationSetPolicyRequest", + "type": "object", + "properties": { + "policy": { + "description": "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 in general a valid policy but certain services (like Projects) might reject them.", + "$ref": "Policy" + }, + "bindings": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "type": "array", + "items": { + "$ref": "Binding" + } }, - "move": { - "id": "compute.addresses.move", - "path": "projects/{project}/regions/{region}/addresses/{address}/move", - "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move", - "httpMethod": "POST", - "parameters": { - "address": { - "description": "Name of the address resource to move.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Source project ID which the Address is moved from.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "address" - ], - "request": { - "$ref": "RegionAddressesMoveRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Moves the specified address resource." + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "type": "string", + "format": "byte" + } + } + }, + "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { + "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", + "type": "object", + "properties": { + "firewalls": { + "description": "Effective firewalls on the network.", + "type": "array", + "items": { + "$ref": "Firewall" + } }, - "setLabels": { - "id": "compute.addresses.setLabels", - "path": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation." + "firewallPolicys": { + "description": "Effective firewalls from firewall policy.", + "type": "array", + "items": { + "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + } } } }, - "images": { - "methods": { - "list": { - "id": "compute.images.list", - "path": "projects/{project}/global/images", - "flatPath": "projects/{project}/global/images", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ImageList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of custom images available to the specified project. Custom images are images you create that belong to your project. This method does not get any images that belong to other projects, including publicly-available images, like Debian 8. If you want to get a list of publicly-available images, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud." + "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "type": "object", + "properties": { + "name": { + "description": "[Output Only] The name of the firewall policy.", + "type": "string" }, - "get": { - "id": "compute.images.get", - "path": "projects/{project}/global/images/{image}", - "flatPath": "projects/{project}/global/images/{image}", - "httpMethod": "GET", - "parameters": { - "image": { - "description": "Name of the image resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "image" - ], - "response": { - "$ref": "Image" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": { + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Returns the specified image." + "enum": [ + "HIERARCHY", + "NETWORK", + "NETWORK_REGIONAL", + "UNSPECIFIED" + ] }, - "getFromFamily": { - "id": "compute.images.getFromFamily", - "path": "projects/{project}/global/images/family/{family}", - "flatPath": "projects/{project}/global/images/family/{family}", - "httpMethod": "GET", - "parameters": { - "family": { - "description": "Name of the image family to search for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "family" - ], - "response": { - "$ref": "Image" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation." + "displayName": { + "description": "[Output Only] The display name of the firewall policy.", + "type": "string" }, - "insert": { - "id": "compute.images.insert", - "path": "projects/{project}/global/images", - "flatPath": "projects/{project}/global/images", - "httpMethod": "POST", - "parameters": { - "forceCreate": { - "description": "Force image creation if true.", - "location": "query", - "type": "boolean" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Image" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" - ], - "description": "Creates an image in the specified project using the data included in the request." + "rules": { + "description": "The rules that apply to the network.", + "type": "array", + "items": { + "$ref": "FirewallPolicyRule" + } + } + } + }, + "SecurityPolicyList": { + "id": "SecurityPolicyList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#securityPolicyList for listsof securityPolicies", + "default": "compute#securityPolicyList", + "type": "string" }, - "setLabels": { - "id": "compute.images.setLabels", - "path": "projects/{project}/global/images/{resource}/setLabels", - "flatPath": "projects/{project}/global/images/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "delete": { - "id": "compute.images.delete", - "path": "projects/{project}/global/images/{image}", - "flatPath": "projects/{project}/global/images/{image}", - "httpMethod": "DELETE", - "parameters": { - "image": { - "description": "Name of the image resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "image" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified image." + "items": { + "description": "A list of SecurityPolicy resources.", + "type": "array", + "items": { + "$ref": "SecurityPolicy" + } }, - "deprecate": { - "id": "compute.images.deprecate", - "path": "projects/{project}/global/images/{image}/deprecate", - "flatPath": "projects/{project}/global/images/{image}/deprecate", - "httpMethod": "POST", - "parameters": { - "image": { - "description": "Image name.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "image" - ], - "request": { - "$ref": "DeprecationStatus" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead." + } + } + } + }, + "SecurityPolicy": { + "id": "SecurityPolicy", + "description": "Represents a Google Cloud Armor security policy resource. Only external backend services that use load balancers can reference a security policy. For more information, see Google Cloud Armor security policy overview.", + "type": "object", + "properties": { + "userDefinedFields": { + "description": "Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes extracted from a fixed offset in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask to select certain bits. Rules may then specify matching values for these fields. Example: userDefinedFields: - name: \"ipv4_fragment_offset\" base: IPV4 offset: 6 size: 2 mask: \"0x1fff\"", + "type": "array", + "items": { + "$ref": "SecurityPolicyUserDefinedField" + } }, - "getIamPolicy": { - "id": "compute.images.getIamPolicy", - "path": "projects/{project}/global/images/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "kind": { + "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies", + "default": "compute#securityPolicy", + "type": "string" }, - "patch": { - "id": "compute.images.patch", - "path": "projects/{project}/global/images/{image}", - "flatPath": "projects/{project}/global/images/{image}", - "httpMethod": "PATCH", - "parameters": { - "image": { - "description": "Name of the image resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "image" - ], - "request": { - "$ref": "Image" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "setIamPolicy": { - "id": "compute.images.setIamPolicy", - "path": "projects/{project}/global/images/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.images.testIamPermissions", - "path": "projects/{project}/global/images/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "rules": { + "description": "A list of rules that belong to this policy. There must always be a default rule which is a rule with priority 2147483647 and match all condition (for the match condition this means match \"*\" for srcIpRanges and for the networkMatch condition every field must be either match \"*\" or not set). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRule" + } + }, + "adaptiveProtectionConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfig" + }, + "ddosProtectionConfig": { + "$ref": "SecurityPolicyDdosProtectionConfig" + }, + "advancedOptionsConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfig" + }, + "recaptchaOptionsConfig": { + "$ref": "SecurityPolicyRecaptchaOptionsConfig" + }, + "fingerprint": { + "description": "Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make get() request to the security policy.", + "type": "string", + "format": "byte" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "type": { + "description": "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.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "CLOUD_ARMOR", + "CLOUD_ARMOR_EDGE", + "CLOUD_ARMOR_NETWORK" + ] + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this security policy, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the security policy.", + "type": "string", + "format": "byte" + }, + "region": { + "description": "[Output Only] URL of the region where the regional security policy resides. This field is not applicable to global security policies.", + "type": "string" } } }, - "imageFamilyViews": { - "methods": { - "get": { - "id": "compute.imageFamilyViews.get", - "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", - "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", - "httpMethod": "GET", - "parameters": { - "family": { - "description": "Name of the image family to search for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "family" - ], - "response": { - "$ref": "ImageFamilyView" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "SecurityPolicyUserDefinedField": { + "id": "SecurityPolicyUserDefinedField", + "type": "object", + "properties": { + "name": { + "description": "The name of this field. Must be unique within the policy.", + "type": "string" + }, + "base": { + "description": "The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone." + "enum": [ + "IPV4", + "IPV6", + "TCP", + "UDP" + ] + }, + "offset": { + "description": "Offset of the first byte of the field (in network byte order) relative to 'base'.", + "type": "integer", + "format": "int32" + }, + "size": { + "description": "Size of the field in bytes. Valid values: 1-4.", + "type": "integer", + "format": "int32" + }, + "mask": { + "description": "If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with \"0x\"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.", + "type": "string" } } }, - "snapshots": { - "methods": { - "list": { - "id": "compute.snapshots.list", - "path": "projects/{project}/global/snapshots", - "flatPath": "projects/{project}/global/snapshots", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SnapshotList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of Snapshot resources contained within the specified project." + "SecurityPolicyRule": { + "id": "SecurityPolicyRule", + "description": "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).", + "type": "object", + "properties": { + "kind": { + "description": "[Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules", + "default": "compute#securityPolicyRule", + "type": "string" }, - "get": { - "id": "compute.snapshots.get", - "path": "projects/{project}/global/snapshots/{snapshot}", - "flatPath": "projects/{project}/global/snapshots/{snapshot}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "snapshot": { - "description": "Name of the Snapshot resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "snapshot" - ], - "response": { - "$ref": "Snapshot" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified Snapshot resource." + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "priority": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "match": { + "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.", + "$ref": "SecurityPolicyRuleMatcher" + }, + "networkMatch": { + "description": "A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \"ipv4_fragment_offset\" values: - \"1-0x1fff\" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \"ipv4_fragment_offset\" with a value between 1 and 0x1fff inclusive.", + "$ref": "SecurityPolicyRuleNetworkMatcher" + }, + "action": { + "description": "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. ", + "type": "string" + }, + "preview": { + "description": "If set to true, the specified action is not enforced.", + "type": "boolean" + }, + "rateLimitOptions": { + "description": "Must be specified if the action is \"rate_based_ban\" or \"throttle\". Cannot be specified for any other actions.", + "$ref": "SecurityPolicyRuleRateLimitOptions" + }, + "headerAction": { + "description": "Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "$ref": "SecurityPolicyRuleHttpHeaderAction" + }, + "redirectOptions": { + "description": "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.", + "$ref": "SecurityPolicyRuleRedirectOptions" }, - "insert": { - "id": "compute.snapshots.insert", - "path": "projects/{project}/global/snapshots", - "flatPath": "projects/{project}/global/snapshots", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Snapshot" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a snapshot in the specified project using the data included in the request. For regular snapshot creation, consider using this method instead of disks.createSnapshot, as this method supports more features, such as creating snapshots in a project different from the source disk project." + "preconfiguredWafConfig": { + "description": "Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.", + "$ref": "SecurityPolicyRulePreconfiguredWafConfig" + } + } + }, + "SecurityPolicyRuleMatcher": { + "id": "SecurityPolicyRuleMatcher", + "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", + "type": "object", + "properties": { + "expr": { + "description": "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.", + "$ref": "Expr" }, - "setLabels": { - "id": "compute.snapshots.setLabels", - "path": "projects/{project}/global/snapshots/{resource}/setLabels", - "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation." + "exprOptions": { + "description": "The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').", + "$ref": "SecurityPolicyRuleMatcherExprOptions" }, - "delete": { - "id": "compute.snapshots.delete", - "path": "projects/{project}/global/snapshots/{snapshot}", - "flatPath": "projects/{project}/global/snapshots/{snapshot}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "snapshot": { - "description": "Name of the Snapshot resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "snapshot" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "versionedExpr": { + "description": "Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config.", + "type": "string", + "enumDescriptions": [ + "Matches the source IP address of a request to the IP ranges supplied in config." ], - "description": "Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots." + "enum": [ + "SRC_IPS_V1" + ] }, - "getIamPolicy": { - "id": "compute.snapshots.getIamPolicy", - "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "config": { + "description": "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.", + "$ref": "SecurityPolicyRuleMatcherConfig" + } + } + }, + "SecurityPolicyRuleMatcherExprOptions": { + "id": "SecurityPolicyRuleMatcherExprOptions", + "type": "object", + "properties": { + "recaptchaOptions": { + "description": "reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.", + "$ref": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions" + } + } + }, + "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions": { + "id": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", + "type": "object", + "properties": { + "actionTokenSiteKeys": { + "description": "A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", + "type": "array", + "items": { + "type": "string" + } }, - "setIamPolicy": { - "id": "compute.snapshots.setIamPolicy", - "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "sessionTokenSiteKeys": { + "description": "A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecurityPolicyRuleMatcherConfig": { + "id": "SecurityPolicyRuleMatcherConfig", + "type": "object", + "properties": { + "srcIpRanges": { + "description": "CIDR IP address range. Maximum number of src_ip_ranges allowed is 10.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecurityPolicyRuleNetworkMatcher": { + "id": "SecurityPolicyRuleNetworkMatcher", + "description": "Represents a match condition that incoming network traffic is evaluated against.", + "type": "object", + "properties": { + "userDefinedFields": { + "description": "User-defined fields. Each element names a defined field and lists the matching values for that field.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch" + } }, - "testIamPermissions": { - "id": "compute.snapshots.testIamPermissions", - "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "srcIpRanges": { + "description": "Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", + "type": "array", + "items": { + "type": "string" + } + }, + "destIpRanges": { + "description": "Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", + "type": "array", + "items": { + "type": "string" + } + }, + "ipProtocols": { + "description": "IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".", + "type": "array", + "items": { + "type": "string" + } + }, + "srcPorts": { + "description": "Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "type": "array", + "items": { + "type": "string" + } + }, + "destPorts": { + "description": "Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "type": "array", + "items": { + "type": "string" + } + }, + "srcRegionCodes": { + "description": "Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.", + "type": "array", + "items": { + "type": "string" + } + }, + "srcAsns": { + "description": "BGP Autonomous System Number associated with the source IP address.", + "type": "array", + "items": { + "type": "integer", + "format": "uint32" + } } } }, - "disks": { - "methods": { - "list": { - "id": "compute.disks.list", - "path": "projects/{project}/zones/{zone}/disks", - "flatPath": "projects/{project}/zones/{zone}/disks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "DiskList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of persistent disks contained within the specified zone." + "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch": { + "id": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch", + "type": "object", + "properties": { + "name": { + "description": "Name of the user-defined field, as given in the definition.", + "type": "string" }, - "aggregatedList": { - "id": "compute.disks.aggregatedList", - "path": "projects/{project}/aggregated/disks", - "flatPath": "projects/{project}/aggregated/disks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "DiskAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of persistent disks." + "values": { + "description": "Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecurityPolicyRuleRateLimitOptions": { + "id": "SecurityPolicyRuleRateLimitOptions", + "type": "object", + "properties": { + "rateLimitThreshold": { + "description": "Threshold at which to begin ratelimiting.", + "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold" + }, + "conformAction": { + "description": "Action to take for requests that are under the configured rate limit threshold. Valid option is \"allow\" only.", + "type": "string" + }, + "exceedAction": { + "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR.", + "type": "string" + }, + "exceedRedirectOptions": { + "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "$ref": "SecurityPolicyRuleRedirectOptions" }, - "get": { - "id": "compute.disks.get", - "path": "projects/{project}/zones/{zone}/disks/{disk}", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", - "httpMethod": "GET", - "parameters": { - "disk": { - "description": "Name of the persistent disk to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "response": { - "$ref": "Disk" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enforceOnKey": { + "description": "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. ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Returns the specified persistent disk." + "enum": [ + "ALL", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", + "XFF_IP" + ] }, - "insert": { - "id": "compute.disks.insert", - "path": "projects/{project}/zones/{zone}/disks", - "flatPath": "projects/{project}/zones/{zone}/disks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceImage": { - "description": "Source image to restore onto a disk. This field is optional.", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "Disk" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a persistent disk in the specified project using the data in the request. You can create a disk from a source (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property." + "enforceOnKeyName": { + "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", + "type": "string" }, - "setLabels": { - "id": "compute.disks.setLabels", - "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "ZoneSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation." + "enforceOnKeyConfigs": { + "description": "If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig" + } }, - "delete": { - "id": "compute.disks.delete", - "path": "projects/{project}/zones/{zone}/disks/{disk}", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", - "httpMethod": "DELETE", - "parameters": { - "disk": { - "description": "Name of the persistent disk to delete.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots." + "banThreshold": { + "description": "Can only be specified if the action for the rule is \"rate_based_ban\". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'.", + "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold" }, - "createSnapshot": { - "id": "compute.disks.createSnapshot", - "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "Name of the persistent disk to snapshot.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "guestFlush": { - "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.", - "location": "query", - "type": "boolean" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "request": { - "$ref": "Snapshot" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project." + "banDurationSec": { + "description": "Can only be specified if the action for the rule is \"rate_based_ban\". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.", + "type": "integer", + "format": "int32" + } + } + }, + "SecurityPolicyRuleRateLimitOptionsThreshold": { + "id": "SecurityPolicyRuleRateLimitOptionsThreshold", + "type": "object", + "properties": { + "count": { + "description": "Number of HTTP(S) requests for calculating the threshold.", + "type": "integer", + "format": "int32" }, - "resize": { - "id": "compute.disks.resize", - "path": "projects/{project}/zones/{zone}/disks/{disk}/resize", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The name of the persistent disk.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "request": { - "$ref": "DisksResizeRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "intervalSec": { + "description": "Interval over which the threshold is computed.", + "type": "integer", + "format": "int32" + } + } + }, + "SecurityPolicyRuleRedirectOptions": { + "id": "SecurityPolicyRuleRedirectOptions", + "type": "object", + "properties": { + "type": { + "description": "Type of the redirect action.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Resizes the specified persistent disk. You can only increase the size of the disk." + "enum": [ + "EXTERNAL_302", + "GOOGLE_RECAPTCHA" + ] }, - "addResourcePolicies": { - "id": "compute.disks.addResourcePolicies", - "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "request": { - "$ref": "DisksAddResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "target": { + "description": "Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.", + "type": "string" + } + } + }, + "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig": { + "id": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig", + "type": "object", + "properties": { + "enforceOnKeyType": { + "description": "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 \"enforceOnKeyConfigs\" 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. ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Adds existing resource policies to a disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation." + "enum": [ + "ALL", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", + "XFF_IP" + ] + }, + "enforceOnKeyName": { + "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", + "type": "string" + } + } + }, + "SecurityPolicyRuleHttpHeaderAction": { + "id": "SecurityPolicyRuleHttpHeaderAction", + "type": "object", + "properties": { + "requestHeadersToAdds": { + "description": "The list of request headers to add or overwrite if they're already present.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption" + } + } + } + }, + "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption": { + "id": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption", + "type": "object", + "properties": { + "headerName": { + "description": "The name of the header to set.", + "type": "string" + }, + "headerValue": { + "description": "The value to set the named header to.", + "type": "string" + } + } + }, + "SecurityPolicyRulePreconfiguredWafConfig": { + "id": "SecurityPolicyRulePreconfiguredWafConfig", + "type": "object", + "properties": { + "exclusions": { + "description": "A list of exclusions to apply during preconfigured WAF evaluation.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusion" + } + } + } + }, + "SecurityPolicyRulePreconfiguredWafConfigExclusion": { + "id": "SecurityPolicyRulePreconfiguredWafConfigExclusion", + "type": "object", + "properties": { + "targetRuleSet": { + "description": "Target WAF rule set to apply the preconfigured WAF exclusion.", + "type": "string" + }, + "targetRuleIds": { + "description": "A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set.", + "type": "array", + "items": { + "type": "string" + } + }, + "requestHeadersToExclude": { + "description": "A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + } }, - "removeResourcePolicies": { - "id": "compute.disks.removeResourcePolicies", - "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" + "requestCookiesToExclude": { + "description": "A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + } + }, + "requestQueryParamsToExclude": { + "description": "A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + } + }, + "requestUrisToExclude": { + "description": "A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded.", + "type": "array", + "items": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + } + } + } + }, + "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams": { + "id": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams", + "type": "object", + "properties": { + "val": { + "description": "The value of the field.", + "type": "string" + }, + "op": { + "description": "The match operator for the field.", + "type": "string", + "enumDescriptions": [ + "The operator matches if the field value contains the specified value.", + "The operator matches if the field value ends with the specified value.", + "The operator matches if the field value equals the specified value.", + "The operator matches if the field value is any value.", + "The operator matches if the field value starts with the specified value." ], - "request": { - "$ref": "DisksRemoveResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "CONTAINS", + "ENDS_WITH", + "EQUALS", + "EQUALS_ANY", + "STARTS_WITH" + ] + } + } + }, + "SecurityPolicyAdaptiveProtectionConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfig", + "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP).", + "type": "object", + "properties": { + "layer7DdosDefenseConfig": { + "description": "If set to true, enables Cloud Armor Machine Learning.", + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig" + } + } + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", + "description": "Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "type": "object", + "properties": { + "enable": { + "description": "If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "type": "boolean" + }, + "ruleVisibility": { + "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Removes resource policies from a disk." + "enum": [ + "PREMIUM", + "STANDARD" + ] }, - "getIamPolicy": { - "id": "compute.disks.getIamPolicy", - "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" + "thresholdConfigs": { + "description": "Configuration options for layer7 adaptive protection for various customizable thresholds.", + "type": "array", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" + } + } + } + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", + "type": "object", + "properties": { + "name": { + "description": "The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "autoDeployLoadThreshold": { + "type": "number", + "format": "float" + }, + "autoDeployConfidenceThreshold": { + "type": "number", + "format": "float" + }, + "autoDeployImpactedBaselineThreshold": { + "type": "number", + "format": "float" + }, + "autoDeployExpirationSec": { + "type": "integer", + "format": "int32" + } + } + }, + "SecurityPolicyDdosProtectionConfig": { + "id": "SecurityPolicyDdosProtectionConfig", + "type": "object", + "properties": { + "ddosProtection": { + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "ADVANCED", + "STANDARD" + ] + } + } + }, + "SecurityPolicyAdvancedOptionsConfig": { + "id": "SecurityPolicyAdvancedOptionsConfig", + "type": "object", + "properties": { + "jsonParsing": { + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "enum": [ + "DISABLED", + "STANDARD", + "STANDARD_WITH_GRAPHQL" + ] }, - "setIamPolicy": { - "id": "compute.disks.setIamPolicy", - "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "jsonCustomConfig": { + "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD.", + "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig" + }, + "logLevel": { + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "NORMAL", + "VERBOSE" + ] }, - "testIamPermissions": { - "id": "compute.disks.testIamPermissions", - "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", - "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "userIpRequestHeaders": { + "description": "An optional list of case-insensitive request header names to use for resolving the callers client IP address.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { + "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "type": "object", + "properties": { + "contentTypes": { + "description": "A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type \"/\" subtype *[\";\" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecurityPolicyRecaptchaOptionsConfig": { + "id": "SecurityPolicyRecaptchaOptionsConfig", + "type": "object", + "properties": { + "redirectSiteKey": { + "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "type": "string" + } + } + }, + "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { + "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", + "type": "object", + "properties": { + "preconfiguredExpressionSets": { + "$ref": "SecurityPoliciesWafConfig" + } + } + }, + "SecurityPoliciesWafConfig": { + "id": "SecurityPoliciesWafConfig", + "type": "object", + "properties": { + "wafRules": { + "$ref": "PreconfiguredWafSet" + } + } + }, + "PreconfiguredWafSet": { + "id": "PreconfiguredWafSet", + "type": "object", + "properties": { + "expressionSets": { + "description": "List of entities that are currently supported for WAF rules.", + "type": "array", + "items": { + "$ref": "WafExpressionSet" + } + } + } + }, + "WafExpressionSet": { + "id": "WafExpressionSet", + "type": "object", + "properties": { + "id": { + "description": "Google specified expression set ID. The format should be: - E.g. XSS-20170329 required", + "type": "string" + }, + "aliases": { + "description": "A list of alternate IDs. The format should be: - E.g. XSS-stable Generic suffix like \"stable\" is particularly useful if a policy likes to avail newer set of expressions without having to change the policy. A given alias name can't be used for more than one entity set.", + "type": "array", + "items": { + "type": "string" + } + }, + "expressions": { + "description": "List of available expressions.", + "type": "array", + "items": { + "$ref": "WafExpressionSetExpression" + } + } + } + }, + "WafExpressionSetExpression": { + "id": "WafExpressionSetExpression", + "type": "object", + "properties": { + "id": { + "description": "Expression ID should uniquely identify the origin of the expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule id 973337. The ID could be used to determine the individual attack definition that has been detected. It could also be used to exclude it from the policy in case of false positive. required", + "type": "string" + }, + "sensitivity": { + "description": "The sensitivity value associated with the WAF rule ID. This corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for opt-in only rules.", + "type": "integer", + "format": "int32" + } + } + }, + "SecurityPoliciesAggregatedList": { + "id": "SecurityPoliciesAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security Policies.", + "default": "compute#securityPoliciesAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of SecurityPoliciesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of security policies.", + "$ref": "SecurityPoliciesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + } }, - "update": { - "id": "compute.disks.update", - "path": "projects/{project}/zones/{zone}/disks/{disk}", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", - "httpMethod": "PATCH", - "parameters": { - "disk": { - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "request": { - "$ref": "Disk" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified disk with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license." + "etag": { + "type": "string" }, - "startAsyncReplication": { - "id": "compute.disks.startAsyncReplication", - "path": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The name of the persistent disk.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "request": { - "$ref": "DisksStartAsyncReplicationRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Starts asynchronous replication. Must be invoked on the primary disk." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecurityPoliciesScopedList": { + "id": "SecurityPoliciesScopedList", + "type": "object", + "properties": { + "securityPolicies": { + "description": "A list of SecurityPolicies contained in this scope.", + "type": "array", + "items": { + "$ref": "SecurityPolicy" + } }, - "stopAsyncReplication": { - "id": "compute.disks.stopAsyncReplication", - "path": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", - "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The name of the persistent disk.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "disk" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk." + } + } + } + }, + "InstanceList": { + "id": "InstanceList", + "description": "Contains a list of instances.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.", + "default": "compute#instanceList", + "type": "string" }, - "stopGroupAsyncReplication": { - "id": "compute.disks.stopGroupAsyncReplication", - "path": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", - "flatPath": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "DisksStopGroupAsyncReplicationResource" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "bulkInsert": { - "id": "compute.disks.bulkInsert", - "path": "projects/{project}/zones/{zone}/disks/bulkInsert", - "flatPath": "projects/{project}/zones/{zone}/disks/bulkInsert", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of Instance resources.", + "type": "array", + "items": { + "$ref": "Instance" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "BulkInsertDiskResource" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Bulk create a set of disks." + } } } }, - "regionDisks": { - "methods": { - "list": { - "id": "compute.regionDisks.list", - "path": "projects/{project}/regions/{region}/disks", - "flatPath": "projects/{project}/regions/{region}/disks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "DiskList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of persistent disks contained within the specified region." + "Instance": { + "id": "Instance", + "description": "Represents an Instance resource. An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#instance for instances.", + "default": "compute#instance", + "type": "string" }, - "get": { - "id": "compute.regionDisks.get", - "path": "projects/{project}/regions/{region}/disks/{disk}", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "httpMethod": "GET", - "parameters": { - "disk": { - "description": "Name of the regional persistent disk to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "response": { - "$ref": "Disk" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns a specified regional persistent disk." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.regionDisks.insert", - "path": "projects/{project}/regions/{region}/disks", - "flatPath": "projects/{project}/regions/{region}/disks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceImage": { - "description": "Source image to restore onto a disk. This field is optional.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Disk" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a persistent regional disk in the specified project using the data included in the request." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "setLabels": { - "id": "compute.regionDisks.setLabels", - "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" + "name": { + "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instances.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on the target regional disk." + "type": "string" }, - "delete": { - "id": "compute.regionDisks.delete", - "path": "projects/{project}/regions/{region}/disks/{disk}", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "httpMethod": "DELETE", - "parameters": { - "disk": { - "description": "Name of the regional persistent disk to delete.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "tags": { + "description": "Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field.", + "$ref": "Tags" + }, + "machineType": { + "description": "Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.", + "type": "string", + "enumDescriptions": [ + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "Resources are being allocated for the instance.", + "The instance is in repair.", + "The instance is running.", + "All required resources have been allocated and the instance is being started.", + "The instance has stopped successfully.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has suspended.", + "The instance is suspending.", + "The instance has stopped (either by explicit action or underlying failure)." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "DEPROVISIONING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" + ] + }, + "statusMessage": { + "description": "[Output Only] An optional, human-readable explanation of the status.", + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "canIpForward": { + "description": "Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .", + "type": "boolean" + }, + "networkInterfaces": { + "description": "An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.", + "type": "array", + "items": { + "$ref": "NetworkInterface" + } + }, + "disks": { + "description": "Array of disks associated with this instance. Persistent disks must be created before you can assign them.", + "type": "array", + "items": { + "$ref": "AttachedDisk" + } + }, + "metadata": { + "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.", + "$ref": "Metadata" + }, + "serviceAccounts": { + "description": "A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.", + "type": "array", + "items": { + "$ref": "ServiceAccount" + } + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "scheduling": { + "description": "Sets the scheduling options for this instance.", + "$ref": "Scheduling" + }, + "cpuPlatform": { + "description": "[Output Only] The CPU platform used by this instance.", + "type": "string" + }, + "labels": { + "description": "Labels to apply to this instance. These can be later modified by the setLabels method.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "params": { + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.", + "$ref": "InstanceParams" + }, + "labelFingerprint": { + "description": "A fingerprint for this request, which is essentially a hash of the label's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the instance.", + "type": "string", + "format": "byte" + }, + "instanceEncryptionKey": { + "description": "Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation.", + "$ref": "CustomerEncryptionKey" + }, + "minCpuPlatform": { + "description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\".", + "type": "string" + }, + "guestAccelerators": { + "description": "A list of the type and count of accelerator cards attached to the instance.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "startRestricted": { + "description": "[Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.", + "type": "boolean" + }, + "deletionProtection": { + "description": "Whether the resource should be protected against deletion.", + "type": "boolean" + }, + "resourcePolicies": { + "description": "Resource policies applied to this instance.", + "type": "array", + "items": { + "type": "string" + } + }, + "sourceMachineImage": { + "description": "Source machine image", + "type": "string" + }, + "reservationAffinity": { + "description": "Specifies the reservations that this instance can consume from.", + "$ref": "ReservationAffinity" + }, + "hostname": { + "description": "Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.", + "type": "string" + }, + "displayDevice": { + "description": "Enables display device for the instance.", + "$ref": "DisplayDevice" + }, + "shieldedInstanceConfig": { + "$ref": "ShieldedInstanceConfig" + }, + "shieldedInstanceIntegrityPolicy": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "sourceMachineImageEncryptionKey": { + "description": "Source machine image encryption key when creating an instance from a machine image.", + "$ref": "CustomerEncryptionKey" + }, + "confidentialInstanceConfig": { + "$ref": "ConfidentialInstanceConfig" + }, + "fingerprint": { + "description": "Specifies a fingerprint for this resource, which is essentially a hash of the instance's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance. You must always provide an up-to-date fingerprint hash in order to update the instance. To see the latest fingerprint, make get() request to the instance.", + "type": "string", + "format": "byte" + }, + "privateIpv6GoogleAccess": { + "description": "The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.", + "type": "string", + "enumDescriptions": [ + "Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", + "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", + "Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork." ], - "description": "Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots." + "enum": [ + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", + "INHERIT_FROM_SUBNETWORK" + ] }, - "createSnapshot": { - "id": "compute.regionDisks.createSnapshot", - "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "Name of the regional persistent disk to snapshot.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "request": { - "$ref": "Snapshot" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project." + "advancedMachineFeatures": { + "description": "Controls for advanced machine-related behavior features.", + "$ref": "AdvancedMachineFeatures" }, - "resize": { - "id": "compute.regionDisks.resize", - "path": "projects/{project}/regions/{region}/disks/{disk}/resize", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "Name of the regional persistent disk.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "The project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "request": { - "$ref": "RegionDisksResizeRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Resizes the specified regional persistent disk." + "lastStartTimestamp": { + "description": "[Output Only] Last start timestamp in RFC3339 text format.", + "type": "string" }, - "addResourcePolicies": { - "id": "compute.regionDisks.addResourcePolicies", - "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "request": { - "$ref": "RegionDisksAddResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds existing resource policies to a regional disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation." + "lastStopTimestamp": { + "description": "[Output Only] Last stop timestamp in RFC3339 text format.", + "type": "string" }, - "removeResourcePolicies": { - "id": "compute.regionDisks.removeResourcePolicies", - "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" - ], - "request": { - "$ref": "RegionDisksRemoveResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "lastSuspendedTimestamp": { + "description": "[Output Only] Last suspended timestamp in RFC3339 text format.", + "type": "string" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "satisfiesPzi": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "resourceStatus": { + "description": "[Output Only] Specifies values set for instance attributes as compared to the values requested by user in the corresponding input only field.", + "$ref": "ResourceStatus" + }, + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig" + }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "type": "string", + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], - "description": "Removes resource policies from a regional disk." + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ] + } + } + }, + "Tags": { + "id": "Tags", + "description": "A set of instance tags.", + "type": "object", + "properties": { + "items": { + "description": "An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "array", + "items": { + "type": "string" + } }, - "getIamPolicy": { - "id": "compute.regionDisks.getIamPolicy", - "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" + "fingerprint": { + "description": "Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance.", + "type": "string", + "format": "byte" + } + } + }, + "NetworkInterface": { + "id": "NetworkInterface", + "description": "A network interface resource attached to an instance.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#networkInterface for network interfaces.", + "default": "compute#networkInterface", + "type": "string" + }, + "network": { + "description": "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default ", + "type": "string" + }, + "subnetwork": { + "description": "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 ", + "type": "string" + }, + "networkIP": { + "description": "An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.", + "type": "string" + }, + "ipv6Address": { + "description": "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.", + "type": "string" + }, + "internalIpv6PrefixLength": { + "description": "The prefix length of the primary internal IPv6 range.", + "type": "integer", + "format": "int32" + }, + "name": { + "description": "[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.", + "type": "string" + }, + "accessConfigs": { + "description": "An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.", + "type": "array", + "items": { + "$ref": "AccessConfig" + } + }, + "ipv6AccessConfigs": { + "description": "An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.", + "type": "array", + "items": { + "$ref": "AccessConfig" + } + }, + "aliasIpRanges": { + "description": "An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.", + "type": "array", + "items": { + "$ref": "AliasIpRange" + } + }, + "fingerprint": { + "description": "Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date.", + "type": "string", + "format": "byte" + }, + "stackType": { + "description": "The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.", + "type": "string", + "enumDescriptions": [ + "The network interface can have both IPv4 and IPv6 addresses.", + "The network interface will be assigned IPv4 address." ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ] + }, + "ipv6AccessType": { + "description": "[Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6.", + "type": "string", + "enumDescriptions": [ + "This network interface can have external IPv6.", + "This network interface can have internal IPv6." ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "enum": [ + "EXTERNAL", + "INTERNAL" + ] }, - "setIamPolicy": { - "id": "compute.regionDisks.setIamPolicy", - "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" + "queueCount": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "nicType": { + "description": "The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.", + "type": "string", + "enumDescriptions": [ + "GVNIC", + "No type specified.", + "VIRTIO" ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "GVNIC", + "UNSPECIFIED_NIC_TYPE", + "VIRTIO_NET" + ] + }, + "networkAttachment": { + "description": "The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", + "type": "string" + } + } + }, + "AccessConfig": { + "id": "AccessConfig", + "description": "An access configuration attached to an instance's network interface. Only one access config per instance is supported.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#accessConfig for access configs.", + "default": "compute#accessConfig", + "type": "string" + }, + "type": { + "description": "The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "DIRECT_IPV6", + "ONE_TO_ONE_NAT" + ] }, - "testIamPermissions": { - "id": "compute.regionDisks.testIamPermissions", - "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" + "name": { + "description": "The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.", + "type": "string" + }, + "natIP": { + "description": "Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", + "type": "string" + }, + "externalIpv6": { + "description": "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.", + "type": "string" + }, + "externalIpv6PrefixLength": { + "description": "Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.", + "type": "integer", + "format": "int32" + }, + "setPublicPtr": { + "description": "Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated.", + "type": "boolean" + }, + "publicPtrDomainName": { + "description": "The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be created for first IP in associated external IPv6 range.", + "type": "string" + }, + "networkTier": { + "description": "This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP.", + "type": "string", + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ] + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this access config.", + "type": "string" + } + } + }, + "AliasIpRange": { + "id": "AliasIpRange", + "description": "An alias IP range attached to an instance's network interface.", + "type": "object", + "properties": { + "ipCidrRange": { + "description": "The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24).", + "type": "string" + }, + "subnetworkRangeName": { + "description": "The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.", + "type": "string" + } + } + }, + "AttachedDisk": { + "id": "AttachedDisk", + "description": "An instance-attached disk resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", + "default": "compute#attachedDisk", + "type": "string" + }, + "type": { + "description": "Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "PERSISTENT", + "SCRATCH" + ] }, - "update": { - "id": "compute.regionDisks.update", - "path": "projects/{project}/regions/{region}/disks/{disk}", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "httpMethod": "PATCH", - "parameters": { - "disk": { - "description": "The disk name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" + "mode": { + "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.", + "type": "string", + "enumDescriptions": [ + "Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.", + "*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode." ], - "request": { - "$ref": "Disk" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "READ_ONLY", + "READ_WRITE" + ] + }, + "savedState": { + "description": "For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.", + "type": "string", + "enumDescriptions": [ + "*[Default]* Disk state has not been preserved.", + "Disk state has been preserved." ], - "description": "Update the specified disk with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license." + "enum": [ + "DISK_SAVED_STATE_UNSPECIFIED", + "PRESERVED" + ] }, - "startAsyncReplication": { - "id": "compute.regionDisks.startAsyncReplication", - "path": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The name of the persistent disk.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" + "source": { + "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk.", + "type": "string" + }, + "deviceName": { + "description": "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. This name can be used to reference the device for mounting, resizing, and so on, from 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.", + "type": "string" + }, + "index": { + "description": "[Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.", + "type": "integer", + "format": "int32" + }, + "boot": { + "description": "Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", + "type": "boolean" + }, + "initializeParams": { + "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", + "$ref": "AttachedDiskInitializeParams" + }, + "autoDelete": { + "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", + "type": "boolean" + }, + "licenses": { + "description": "[Output Only] Any valid publicly visible licenses.", + "type": "array", + "items": { + "type": "string" + } + }, + "interface": { + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "RegionDisksStartAsyncReplicationRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NVME", + "SCSI" + ] + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", + "type": "array", + "items": { + "$ref": "GuestOsFeature" + } + }, + "diskEncryptionKey": { + "description": "Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group.", + "$ref": "CustomerEncryptionKey" + }, + "diskSizeGb": { + "description": "The size of the disk in GB.", + "type": "string", + "format": "int64" + }, + "shieldedInstanceInitialState": { + "description": "[Output Only] shielded vm initial state stored on disk", + "$ref": "InitialStateConfig" + }, + "forceAttach": { + "description": "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", + "type": "boolean" + }, + "architecture": { + "description": "[Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64.", + "type": "string", + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "description": "Starts asynchronous replication. Must be invoked on the primary disk." + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ] + } + } + }, + "AttachedDiskInitializeParams": { + "id": "AttachedDiskInitializeParams", + "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", + "type": "object", + "properties": { + "diskName": { + "description": "Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created.", + "type": "string" }, - "stopAsyncReplication": { - "id": "compute.regionDisks.stopAsyncReplication", - "path": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", - "httpMethod": "POST", - "parameters": { - "disk": { - "description": "The name of the persistent disk.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "disk" + "sourceImage": { + "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set.", + "type": "string" + }, + "diskSizeGb": { + "description": "Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB.", + "type": "string", + "format": "int64" + }, + "diskType": { + "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard.", + "type": "string" + }, + "sourceImageEncryptionKey": { + "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys.", + "$ref": "CustomerEncryptionKey" + }, + "labels": { + "description": "Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceSnapshot": { + "description": "The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set.", + "type": "string" + }, + "sourceSnapshotEncryptionKey": { + "description": "The customer-supplied encryption key of the source snapshot.", + "$ref": "CustomerEncryptionKey" + }, + "description": { + "description": "An optional description. Provide this property when creating the disk.", + "type": "string" + }, + "replicaZones": { + "description": "Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourcePolicies": { + "description": "Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.", + "type": "array", + "items": { + "type": "string" + } + }, + "onUpdateAction": { + "description": "Specifies which action to take on instance update with this disk. Default is to use the existing disk.", + "type": "string", + "enumDescriptions": [ + "Always recreate the disk.", + "Recreate the disk if source (image, snapshot) of this disk is different from source of existing disk.", + "Use the existing disk, this is the default behaviour." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "RECREATE_DISK", + "RECREATE_DISK_IF_SOURCE_CHANGED", + "USE_EXISTING_DISK" + ] + }, + "provisionedIops": { + "description": "Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.", + "type": "string", + "format": "int64" + }, + "licenses": { + "description": "A list of publicly visible licenses. Reserved for Google's use.", + "type": "array", + "items": { + "type": "string" + } + }, + "architecture": { + "description": "The architecture of the attached disk. Valid values are arm64 or x86_64.", + "type": "string", + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk." + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ] }, - "stopGroupAsyncReplication": { - "id": "compute.regionDisks.stopGroupAsyncReplication", - "path": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", - "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "resourceManagerTags": { + "description": "Resource manager tags to be bound to the disk. 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.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.", + "type": "string", + "format": "int64" + }, + "enableConfidentialCompute": { + "description": "Whether this disk is using confidential compute mode.", + "type": "boolean" + }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" + } + } + }, + "Metadata": { + "id": "Metadata", + "description": "A metadata key/value entry.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", + "default": "compute#metadata", + "type": "string" + }, + "fingerprint": { + "description": "Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", + "type": "string", + "format": "byte" + }, + "items": { + "description": "Array of key/value pairs. The total size of all keys and values must be less than 512 KB.", + "type": "array", + "items": { + "description": "Metadata", + "type": "object", + "properties": { + "key": { + "description": "Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.", + "pattern": "[a-zA-Z0-9-_]{1,128}", + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + }, + "type": "string" + }, + "value": { + "description": "Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).", + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + }, + "type": "string" + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "DisksStopGroupAsyncReplicationResource" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope." + } + } + } + }, + "ServiceAccount": { + "id": "ServiceAccount", + "description": "A service account.", + "type": "object", + "properties": { + "email": { + "description": "Email address of the service account.", + "type": "string" }, - "bulkInsert": { - "id": "compute.regionDisks.bulkInsert", - "path": "projects/{project}/regions/{region}/disks/bulkInsert", - "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "BulkInsertDiskResource" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Bulk create a set of disks." + "scopes": { + "description": "The list of scopes to be made available for this service account.", + "type": "array", + "items": { + "type": "string" + } } } }, - "firewalls": { - "methods": { - "list": { - "id": "compute.firewalls.list", - "path": "projects/{project}/global/firewalls", - "flatPath": "projects/{project}/global/firewalls", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "FirewallList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "Scheduling": { + "id": "Scheduling", + "description": "Sets the scheduling options for an Instance.", + "type": "object", + "properties": { + "onHostMaintenance": { + "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy.", + "type": "string", + "enumDescriptions": [ + "*[Default]* Allows Compute Engine to automatically migrate instances out of the way of maintenance events.", + "Tells Compute Engine to terminate and (optionally) restart the instance away from the maintenance activity. If you would like your instance to be restarted, set the automaticRestart flag to true. Your instance may be restarted more than once, and it may be restarted outside the window of maintenance events." ], - "description": "Retrieves the list of firewall rules available to the specified project." + "enum": [ + "MIGRATE", + "TERMINATE" + ] }, - "get": { - "id": "compute.firewalls.get", - "path": "projects/{project}/global/firewalls/{firewall}", - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "httpMethod": "GET", - "parameters": { - "firewall": { - "description": "Name of the firewall rule to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewall" - ], - "response": { - "$ref": "Firewall" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified firewall." + "automaticRestart": { + "description": "Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.", + "type": "boolean" }, - "insert": { - "id": "compute.firewalls.insert", - "path": "projects/{project}/global/firewalls", - "flatPath": "projects/{project}/global/firewalls", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Firewall" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a firewall rule in the specified project using the data included in the request." + "preemptible": { + "description": "Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.", + "type": "boolean" }, - "delete": { - "id": "compute.firewalls.delete", - "path": "projects/{project}/global/firewalls/{firewall}", - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "httpMethod": "DELETE", - "parameters": { - "firewall": { - "description": "Name of the firewall rule to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewall" + "nodeAffinities": { + "description": "A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.", + "type": "array", + "items": { + "$ref": "SchedulingNodeAffinity" + } + }, + "minNodeCpus": { + "description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.", + "type": "integer", + "format": "int32" + }, + "locationHint": { + "description": "An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.", + "type": "string" + }, + "provisioningModel": { + "description": "Specifies the provisioning model of the instance.", + "type": "string", + "enumDescriptions": [ + "Heavily discounted, no guaranteed runtime.", + "Standard provisioning with user controlled runtime, no discounts." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "SPOT", + "STANDARD" + ] + }, + "instanceTerminationAction": { + "description": "Specifies the termination action for the instance.", + "type": "string", + "enumDescriptions": [ + "Delete the VM.", + "Default value. This value is unused.", + "Stop the VM without storing in-memory content. default action." ], - "description": "Deletes the specified firewall." + "enum": [ + "DELETE", + "INSTANCE_TERMINATION_ACTION_UNSPECIFIED", + "STOP" + ] }, - "update": { - "id": "compute.firewalls.update", - "path": "projects/{project}/global/firewalls/{firewall}", - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "httpMethod": "PUT", - "parameters": { - "firewall": { - "description": "Name of the firewall rule to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewall" + "localSsdRecoveryTimeout": { + "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.", + "$ref": "Duration" + } + } + }, + "SchedulingNodeAffinity": { + "id": "SchedulingNodeAffinity", + "description": "Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.", + "type": "object", + "properties": { + "key": { + "description": "Corresponds to the label key of Node resource.", + "type": "string" + }, + "operator": { + "description": "Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.", + "type": "string", + "enumDescriptions": [ + "Requires Compute Engine to seek for matched nodes.", + "Requires Compute Engine to avoid certain nodes.", + "" ], - "request": { - "$ref": "Firewall" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "IN", + "NOT_IN", + "OPERATOR_UNSPECIFIED" + ] + }, + "values": { + "description": "Corresponds to the label values of Node resource.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Duration": { + "id": "Duration", + "description": "A Duration represents a 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\". Range is approximately 10,000 years.", + "type": "object", + "properties": { + "seconds": { + "description": "Span of time at a resolution of a second. Must be from 0 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", + "type": "string", + "format": "int64" + }, + "nanos": { + "description": "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive.", + "type": "integer", + "format": "int32" + } + } + }, + "InstanceParams": { + "id": "InstanceParams", + "description": "Additional instance params.", + "type": "object", + "properties": { + "resourceManagerTags": { + "description": "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.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "AcceleratorConfig": { + "id": "AcceleratorConfig", + "description": "A specification of the type and number of accelerator cards attached to the instance.", + "type": "object", + "properties": { + "acceleratorType": { + "description": "Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types.", + "type": "string" + }, + "acceleratorCount": { + "description": "The number of the guest accelerator cards exposed to this instance.", + "type": "integer", + "format": "int32" + } + } + }, + "ReservationAffinity": { + "id": "ReservationAffinity", + "description": "Specifies the reservations that this instance can consume from.", + "type": "object", + "properties": { + "consumeReservationType": { + "description": "Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples.", + "type": "string", + "enumDescriptions": [ + "Consume any allocation available.", + "Do not consume from any allocated capacity.", + "Must consume from a specific reservation. Must specify key value fields for specifying the reservations.", + "" ], - "description": "Updates the specified firewall rule with the data included in the request. Note that all fields will be updated if using PUT, even fields that are not specified. To update individual fields, please use PATCH instead." + "enum": [ + "ANY_RESERVATION", + "NO_RESERVATION", + "SPECIFIC_RESERVATION", + "UNSPECIFIED" + ] + }, + "key": { + "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.", + "type": "string" + }, + "values": { + "description": "Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or \"projects/different-project/reservations/some-reservation-name\" to target a shared reservation in the same zone but in a different project.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "DisplayDevice": { + "id": "DisplayDevice", + "description": "A set of Display Device options", + "type": "object", + "properties": { + "enableDisplay": { + "description": "Defines whether the instance has Display enabled.", + "type": "boolean" + } + } + }, + "ShieldedInstanceConfig": { + "id": "ShieldedInstanceConfig", + "description": "A set of Shielded Instance options.", + "type": "object", + "properties": { + "enableSecureBoot": { + "description": "Defines whether the instance has Secure Boot enabled. Disabled by default.", + "type": "boolean" + }, + "enableVtpm": { + "description": "Defines whether the instance has the vTPM enabled. Enabled by default.", + "type": "boolean" + }, + "enableIntegrityMonitoring": { + "description": "Defines whether the instance has integrity monitoring enabled. Enabled by default.", + "type": "boolean" + } + } + }, + "ShieldedInstanceIntegrityPolicy": { + "id": "ShieldedInstanceIntegrityPolicy", + "description": "The policy describes the baseline against which Instance boot integrity is measured.", + "type": "object", + "properties": { + "updateAutoLearnPolicy": { + "description": "Updates the integrity policy baseline using the measurements from the VM instance's most recent boot.", + "type": "boolean" + } + } + }, + "ConfidentialInstanceConfig": { + "id": "ConfidentialInstanceConfig", + "description": "A set of Confidential Instance options.", + "type": "object", + "properties": { + "enableConfidentialCompute": { + "description": "Defines whether the instance should have confidential compute enabled.", + "type": "boolean" + } + } + }, + "AdvancedMachineFeatures": { + "id": "AdvancedMachineFeatures", + "description": "Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled).", + "type": "object", + "properties": { + "enableNestedVirtualization": { + "description": "Whether to enable nested virtualization or not (default is false).", + "type": "boolean" }, - "patch": { - "id": "compute.firewalls.patch", - "path": "projects/{project}/global/firewalls/{firewall}", - "flatPath": "projects/{project}/global/firewalls/{firewall}", - "httpMethod": "PATCH", - "parameters": { - "firewall": { - "description": "Name of the firewall rule to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewall" - ], - "request": { - "$ref": "Firewall" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified firewall rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "threadsPerCore": { + "description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", + "type": "integer", + "format": "int32" + }, + "visibleCoreCount": { + "description": "The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width.", + "type": "integer", + "format": "int32" + }, + "enableUefiNetworking": { + "description": "Whether to enable UEFI networking for instance creation.", + "type": "boolean" } } }, - "firewallPolicies": { - "methods": { - "list": { - "id": "compute.firewallPolicies.list", - "path": "locations/global/firewallPolicies", - "flatPath": "locations/global/firewallPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "parentId": { - "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", - "location": "query", - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "response": { - "$ref": "FirewallPolicyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all the policies that have been configured for the specified folder or organization." + "ResourceStatus": { + "id": "ResourceStatus", + "description": "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.", + "type": "object", + "properties": { + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance" }, - "get": { - "id": "compute.firewallPolicies.get", - "path": "locations/global/firewallPolicies/{firewallPolicy}", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to get.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "physicalHost": { + "description": "[Output Only] An opaque ID of the host on which the VM is running.", + "type": "string" + } + } + }, + "UpcomingMaintenance": { + "id": "UpcomingMaintenance", + "description": "Upcoming Maintenance notification information.", + "type": "object", + "properties": { + "type": { + "description": "Defines the type of maintenance.", + "type": "string", + "enumDescriptions": [ + "Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).", + "No type specified. Do not use this value.", + "Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee)." ], - "description": "Returns the specified firewall policy." + "enum": [ + "SCHEDULED", + "UNKNOWN_TYPE", + "UNSCHEDULED" + ] }, - "insert": { - "id": "compute.firewallPolicies.insert", - "path": "locations/global/firewallPolicies", - "flatPath": "locations/global/firewallPolicies", - "httpMethod": "POST", - "parameters": { - "parentId": { - "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", - "location": "query", - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new policy in the specified project using the data included in the request." + "canReschedule": { + "description": "Indicates if the maintenance can be customer triggered.", + "type": "boolean" }, - "delete": { - "id": "compute.firewallPolicies.delete", - "path": "locations/global/firewallPolicies/{firewallPolicy}", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "DELETE", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to delete.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified policy." + "windowStartTime": { + "description": "The current start time of the maintenance window. This timestamp value is in RFC3339 text format.", + "type": "string" }, - "patch": { - "id": "compute.firewallPolicies.patch", - "path": "locations/global/firewallPolicies/{firewallPolicy}", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "PATCH", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified policy with the data included in the request." + "windowEndTime": { + "description": "The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.", + "type": "string" }, - "getRule": { - "id": "compute.firewallPolicies.getRule", - "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to get from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicyRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets a rule of the specified priority." + "latestWindowStartTime": { + "description": "The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.", + "type": "string" }, - "addRule": { - "id": "compute.firewallPolicies.addRule", - "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" + "maintenanceStatus": { + "type": "string", + "enumDescriptions": [ + "There is ongoing maintenance on this VM.", + "There is pending maintenance.", + "Unknown maintenance status. Do not use this value." ], - "request": { - "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ONGOING", + "PENDING", + "UNKNOWN" + ] + } + } + }, + "NetworkPerformanceConfig": { + "id": "NetworkPerformanceConfig", + "type": "object", + "properties": { + "totalEgressBandwidthTier": { + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Inserts a rule into a firewall policy." + "enum": [ + "DEFAULT", + "TIER_1" + ] + } + } + }, + "InstanceAggregatedList": { + "id": "InstanceAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#instanceAggregatedList for aggregated lists of Instance resources.", + "default": "compute#instanceAggregatedList", + "type": "string" }, - "removeRule": { - "id": "compute.firewallPolicies.removeRule", - "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to remove from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes a rule of the specified priority." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "patchRule": { - "id": "compute.firewallPolicies.patchRule", - "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to patch.", - "location": "query", - "type": "integer", - "format": "int32" + "items": { + "description": "An object that contains a list of instances scoped by zone.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of instances.", + "$ref": "InstancesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches a rule of the specified priority." - }, - "addAssociation": { - "id": "compute.firewallPolicies.addAssociation", - "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "replaceExistingAssociation": { - "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.", - "location": "query", - "type": "boolean" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicyAssociation" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts an association for the specified firewall policy." + } }, - "removeAssociation": { - "id": "compute.firewallPolicies.removeAssociation", - "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstancesScopedList": { + "id": "InstancesScopedList", + "type": "object", + "properties": { + "instances": { + "description": "[Output Only] A list of instances contained in this scope.", + "type": "array", + "items": { + "$ref": "Instance" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of instances when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "name": { - "description": "Name for the attachment that will be removed.", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes an association for the specified firewall policy." + } + } + } + }, + "InstanceListReferrers": { + "id": "InstanceListReferrers", + "description": "Contains a list of instance referrers.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.", + "default": "compute#instanceListReferrers", + "type": "string" }, - "listAssociations": { - "id": "compute.firewallPolicies.listAssociations", - "path": "locations/global/firewallPolicies/listAssociations", - "flatPath": "locations/global/firewallPolicies/listAssociations", - "httpMethod": "GET", - "parameters": { - "targetResource": { - "description": "The target resource to list associations. It is an organization, or a folder.", - "location": "query", - "type": "string" - } - }, - "response": { - "$ref": "FirewallPoliciesListAssociationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists associations of a specified target, i.e., organization or folder." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "getAssociation": { - "id": "compute.firewallPolicies.getAssociation", - "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "name": { - "description": "The name of the association to get from the firewall policy.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicyAssociation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets an association with the specified name." + "items": { + "description": "A list of Reference resources.", + "type": "array", + "items": { + "$ref": "Reference" + } }, - "cloneRules": { - "id": "compute.firewallPolicies.cloneRules", - "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceFirewallPolicy": { - "description": "The firewall policy from which to copy rules.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Copies rules to the specified firewall policy." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "move": { - "id": "compute.firewallPolicies.move", - "path": "locations/global/firewallPolicies/{firewallPolicy}/move", - "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - }, - "parentId": { - "description": "The new parent of the firewall policy. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", - "location": "query", - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Moves the specified firewall policy." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "getIamPolicy": { - "id": "compute.firewallPolicies.getIamPolicy", - "path": "locations/global/firewallPolicies/{resource}/getIamPolicy", - "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + } + } + } + }, + "Reference": { + "id": "Reference", + "description": "Represents a reference to a resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#reference for references.", + "default": "compute#reference", + "type": "string" }, - "setIamPolicy": { - "id": "compute.firewallPolicies.setIamPolicy", - "path": "locations/global/firewallPolicies/{resource}/setIamPolicy", - "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "resource" - ], - "request": { - "$ref": "GlobalOrganizationSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "target": { + "description": "URL of the resource to which this reference points.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.firewallPolicies.testIamPermissions", - "path": "locations/global/firewallPolicies/{resource}/testIamPermissions", - "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "(firewallPolicies/)?[0-9]{0,20}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "referenceType": { + "description": "A description of the reference type with no implied semantics. Possible values include: 1. MEMBER_OF ", + "type": "string" + }, + "referrer": { + "description": "URL of the resource which refers to the target.", + "type": "string" } } }, - "networkFirewallPolicies": { - "methods": { - "list": { - "id": "compute.networkFirewallPolicies.list", - "path": "projects/{project}/global/firewallPolicies", - "flatPath": "projects/{project}/global/firewallPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "FirewallPolicyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all the policies that have been configured for the specified project." + "SerialPortOutput": { + "id": "SerialPortOutput", + "description": "An instance serial console output.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.", + "default": "compute#serialPortOutput", + "type": "string" }, - "get": { - "id": "compute.networkFirewallPolicies.get", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to get.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified network firewall policy." + "contents": { + "description": "[Output Only] The contents of the console output.", + "type": "string" }, - "insert": { - "id": "compute.networkFirewallPolicies.insert", - "path": "projects/{project}/global/firewallPolicies", - "flatPath": "projects/{project}/global/firewallPolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new policy in the specified project using the data included in the request." + "start": { + "description": "The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer (1 MB), older output is overwritten by newer content. The output start value will indicate the byte position of the output that was returned, which might be different than the `start` value that was specified in the request.", + "type": "string", + "format": "int64" }, - "delete": { - "id": "compute.networkFirewallPolicies.delete", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "DELETE", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified policy." + "next": { + "description": "[Output Only] The position of the next byte of content, regardless of whether the content exists, following the output returned in the `contents` property. Use this value in the next request as the start parameter.", + "type": "string", + "format": "int64" }, - "patch": { - "id": "compute.networkFirewallPolicies.patch", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "httpMethod": "PATCH", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified policy with the data included in the request." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + } + }, + "Screenshot": { + "id": "Screenshot", + "description": "An instance's screenshot.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#screenshot for the screenshots.", + "default": "compute#screenshot", + "type": "string" + }, + "contents": { + "description": "[Output Only] The Base64-encoded screenshot data.", + "type": "string" + } + } + }, + "GuestAttributes": { + "id": "GuestAttributes", + "description": "A guest attributes entry.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#guestAttributes for guest attributes entry.", + "default": "compute#guestAttributes", + "type": "string" + }, + "variableKey": { + "description": "The key to search for.", + "type": "string" + }, + "variableValue": { + "description": "[Output Only] The value found for the requested key.", + "type": "string" + }, + "queryPath": { + "description": "The path to be queried. This can be the default namespace ('') or a nested namespace ('\\/') or a specified key ('\\/\\').", + "type": "string" + }, + "queryValue": { + "description": "[Output Only] The value of the requested queried path.", + "$ref": "GuestAttributesValue" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + } + }, + "GuestAttributesValue": { + "id": "GuestAttributesValue", + "description": "Array of guest attribute namespace/key/value tuples.", + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "GuestAttributesEntry" + } + } + } + }, + "GuestAttributesEntry": { + "id": "GuestAttributesEntry", + "description": "A guest attributes namespace/key/value entry.", + "type": "object", + "properties": { + "namespace": { + "description": "Namespace for the guest attribute entry.", + "type": "string" + }, + "key": { + "description": "Key for the guest attribute entry.", + "type": "string" + }, + "value": { + "description": "Value for the guest attribute entry.", + "type": "string" + } + } + }, + "InstancesSetMachineResourcesRequest": { + "id": "InstancesSetMachineResourcesRequest", + "type": "object", + "properties": { + "guestAccelerators": { + "description": "A list of the type and count of accelerator cards attached to the instance.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + } + } + }, + "InstancesSetMachineTypeRequest": { + "id": "InstancesSetMachineTypeRequest", + "type": "object", + "properties": { + "machineType": { + "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of machine types. For example: zones/us-central1-f/machineTypes/n1-standard-1", + "type": "string" + } + } + }, + "InstancesSetMinCpuPlatformRequest": { + "id": "InstancesSetMinCpuPlatformRequest", + "type": "object", + "properties": { + "minCpuPlatform": { + "description": "Minimum cpu/platform this instance should be started at.", + "type": "string" + } + } + }, + "InstancesSetLabelsRequest": { + "id": "InstancesSetLabelsRequest", + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.", + "type": "string", + "format": "byte" + } + } + }, + "InstancesSetNameRequest": { + "id": "InstancesSetNameRequest", + "type": "object", + "properties": { + "name": { + "description": "The name to be applied to the instance. Needs to be RFC 1035 compliant.", + "type": "string" + }, + "currentName": { + "description": "The current name of this resource, used to prevent conflicts. Provide the latest name when making a request to change name.", + "type": "string" + } + } + }, + "InstancesStartWithEncryptionKeyRequest": { + "id": "InstancesStartWithEncryptionKeyRequest", + "type": "object", + "properties": { + "disks": { + "description": "Array of disks associated with this instance that are protected with a customer-supplied encryption key. In order to start the instance, the disk url and its corresponding key must be provided. If the disk is not protected with a customer-supplied encryption key it should not be specified.", + "type": "array", + "items": { + "$ref": "CustomerEncryptionKeyProtectedDisk" + } + } + } + }, + "CustomerEncryptionKeyProtectedDisk": { + "id": "CustomerEncryptionKeyProtectedDisk", + "type": "object", + "properties": { + "source": { + "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks. For example: \"source\": \"/compute/v1/projects/project_id/zones/zone/disks/ disk_name ", + "type": "string" }, - "getRule": { - "id": "compute.networkFirewallPolicies.getRule", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to get from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicyRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets a rule of the specified priority." + "diskEncryptionKey": { + "description": "Decrypts data associated with the disk with a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + } + } + }, + "InstancesSetServiceAccountRequest": { + "id": "InstancesSetServiceAccountRequest", + "type": "object", + "properties": { + "email": { + "description": "Email address of the service account.", + "type": "string" }, - "addRule": { - "id": "compute.networkFirewallPolicies.addRule", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "maxPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "minPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts a rule into a firewall policy." + "scopes": { + "description": "The list of scopes to be made available for this service account.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstancesAddResourcePoliciesRequest": { + "id": "InstancesAddResourcePoliciesRequest", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be added to this instance.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstancesRemoveResourcePoliciesRequest": { + "id": "InstancesRemoveResourcePoliciesRequest", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be removed from this instance.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstancesSetSecurityPolicyRequest": { + "id": "InstancesSetSecurityPolicyRequest", + "type": "object", + "properties": { + "securityPolicy": { + "description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.", + "type": "string" }, - "removeRule": { - "id": "compute.networkFirewallPolicies.removeRule", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to remove from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes a rule of the specified priority." + "networkInterfaces": { + "description": "The network interfaces that the security policy will be applied to. Network interfaces use the nicN naming format. You can only set a security policy for network interfaces with an access config.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ShieldedInstanceIdentity": { + "id": "ShieldedInstanceIdentity", + "description": "A Shielded Instance Identity.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#shieldedInstanceIdentity for shielded Instance identity entry.", + "default": "compute#shieldedInstanceIdentity", + "type": "string" }, - "patchRule": { - "id": "compute.networkFirewallPolicies.patchRule", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to patch.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches a rule of the specified priority." + "signingKey": { + "description": "An Attestation Key (AK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", + "$ref": "ShieldedInstanceIdentityEntry" }, - "getIamPolicy": { - "id": "compute.networkFirewallPolicies.getIamPolicy", - "path": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "encryptionKey": { + "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM.", + "$ref": "ShieldedInstanceIdentityEntry" + } + } + }, + "ShieldedInstanceIdentityEntry": { + "id": "ShieldedInstanceIdentityEntry", + "description": "A Shielded Instance Identity Entry.", + "type": "object", + "properties": { + "ekCert": { + "description": "A PEM-encoded X.509 certificate. This field can be empty.", + "type": "string" }, - "setIamPolicy": { - "id": "compute.networkFirewallPolicies.setIamPolicy", - "path": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "ekPub": { + "description": "A PEM-encoded public key.", + "type": "string" + } + } + }, + "BulkInsertInstanceResource": { + "id": "BulkInsertInstanceResource", + "description": "A transient resource used in compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This resource is not persisted anywhere, it is used only for processing the requests.", + "type": "object", + "properties": { + "count": { + "description": "The maximum number of instances to create.", + "type": "string", + "format": "int64" }, - "testIamPermissions": { - "id": "compute.networkFirewallPolicies.testIamPermissions", - "path": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "minCount": { + "description": "The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.", + "type": "string", + "format": "int64" }, - "addAssociation": { - "id": "compute.networkFirewallPolicies.addAssociation", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "replaceExistingAssociation": { - "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.", - "location": "query", - "type": "boolean" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicyAssociation" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts an association for the specified firewall policy." + "namePattern": { + "description": "The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern must contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: a name_pattern of inst-#### generates instance names such as inst-0001 and inst-0002. If existing instances in the same project and zone have names that match the name pattern then the generated instance numbers start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### begin with inst-0051. The name pattern placeholder #...# can contain up to 18 characters.", + "type": "string" }, - "removeAssociation": { - "id": "compute.networkFirewallPolicies.removeAssociation", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "name": { - "description": "Name for the attachment that will be removed.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes an association for the specified firewall policy." + "perInstanceProperties": { + "description": "Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.", + "type": "object", + "additionalProperties": { + "$ref": "BulkInsertInstanceResourcePerInstanceProperties" + } }, - "getAssociation": { - "id": "compute.networkFirewallPolicies.getAssociation", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried association belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "name": { - "description": "The name of the association to get from the firewall policy.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicyAssociation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets an association with the specified name." + "sourceInstanceTemplate": { + "description": "Specifies the instance template from which to create instances. You may combine sourceInstanceTemplate with instanceProperties to override specific values from an existing instance template. Bulk API follows the semantics of JSON Merge Patch described by RFC 7396. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate This field is optional.", + "type": "string" }, - "cloneRules": { - "id": "compute.networkFirewallPolicies.cloneRules", - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceFirewallPolicy": { - "description": "The firewall policy from which to copy rules.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Copies rules to the specified firewall policy." + "instanceProperties": { + "description": "The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.", + "$ref": "InstanceProperties" + }, + "locationPolicy": { + "description": "Policy for chosing target zone. For more information, see Create VMs in bulk .", + "$ref": "LocationPolicy" } } }, - "regionNetworkFirewallPolicies": { - "methods": { - "list": { - "id": "compute.regionNetworkFirewallPolicies.list", - "path": "projects/{project}/regions/{region}/firewallPolicies", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "FirewallPolicyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all the network firewall policies that have been configured for the specified project in the given region." + "BulkInsertInstanceResourcePerInstanceProperties": { + "id": "BulkInsertInstanceResourcePerInstanceProperties", + "description": "Per-instance properties to be set on individual instances. To be extended in the future.", + "type": "object", + "properties": { + "name": { + "description": "This field is only temporary. It will be removed. Do not use it.", + "type": "string" }, - "get": { - "id": "compute.regionNetworkFirewallPolicies.get", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to get.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified network firewall policy." + "hostname": { + "description": "Specifies the hostname of the instance. More details in: https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", + "type": "string" + } + } + }, + "InstanceProperties": { + "id": "InstanceProperties", + "type": "object", + "properties": { + "description": { + "description": "An optional text description for the instances that are created from these properties.", + "type": "string" }, - "insert": { - "id": "compute.regionNetworkFirewallPolicies.insert", - "path": "projects/{project}/regions/{region}/firewallPolicies", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new network firewall policy in the specified project and region." + "tags": { + "description": "A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.", + "$ref": "Tags" }, - "delete": { - "id": "compute.regionNetworkFirewallPolicies.delete", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "httpMethod": "DELETE", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified network firewall policy." + "resourceManagerTags": { + "description": "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.", + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "patch": { - "id": "compute.regionNetworkFirewallPolicies.patch", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "httpMethod": "PATCH", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" + "machineType": { + "description": "The machine type to use for instances that are created from these properties.", + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified network firewall policy." + "type": "string" }, - "getRule": { - "id": "compute.regionNetworkFirewallPolicies.getRule", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to get from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicyRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets a rule of the specified priority." + "canIpForward": { + "description": "Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.", + "type": "boolean" }, - "addRule": { - "id": "compute.regionNetworkFirewallPolicies.addRule", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "maxPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "minPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" + "networkInterfaces": { + "description": "An array of network access configurations for this interface.", + "type": "array", + "items": { + "$ref": "NetworkInterface" + } + }, + "disks": { + "description": "An array of disks that are associated with the instances that are created from these properties.", + "type": "array", + "items": { + "$ref": "AttachedDisk" + } + }, + "metadata": { + "description": "The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.", + "$ref": "Metadata" + }, + "serviceAccounts": { + "description": "A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.", + "type": "array", + "items": { + "$ref": "ServiceAccount" + } + }, + "scheduling": { + "description": "Specifies the scheduling options for the instances that are created from these properties.", + "$ref": "Scheduling" + }, + "labels": { + "description": "Labels to apply to instances that are created from these properties.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "guestAccelerators": { + "description": "A list of guest accelerator cards' type and count to use for instances created from these properties.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "minCpuPlatform": { + "description": "Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more information, read Specifying a Minimum CPU Platform.", + "type": "string" + }, + "reservationAffinity": { + "description": "Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet.", + "$ref": "ReservationAffinity" + }, + "shieldedInstanceConfig": { + "description": "Note that for MachineImage, this is not supported yet.", + "$ref": "ShieldedInstanceConfig" + }, + "resourcePolicies": { + "description": "Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet.", + "type": "array", + "items": { + "type": "string" + } + }, + "confidentialInstanceConfig": { + "description": "Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet.", + "$ref": "ConfidentialInstanceConfig" + }, + "privateIpv6GoogleAccess": { + "description": "The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet.", + "type": "string", + "enumDescriptions": [ + "Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", + "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", + "Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork." ], - "request": { - "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", + "INHERIT_FROM_SUBNETWORK" + ] + }, + "advancedMachineFeatures": { + "description": "Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet.", + "$ref": "AdvancedMachineFeatures" + }, + "networkPerformanceConfig": { + "description": "Note that for MachineImage, this is not supported yet.", + "$ref": "NetworkPerformanceConfig" + }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "type": "string", + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], - "description": "Inserts a rule into a network firewall policy." + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ] + } + } + }, + "LocationPolicy": { + "id": "LocationPolicy", + "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", + "type": "object", + "properties": { + "locations": { + "description": "Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.", + "type": "object", + "additionalProperties": { + "$ref": "LocationPolicyLocation" + } }, - "removeRule": { - "id": "compute.regionNetworkFirewallPolicies.removeRule", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to remove from the firewall policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" + "targetShape": { + "description": "Strategy for distributing VMs across zones in a region.", + "type": "string", + "enumDescriptions": [ + "GCE picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", + "GCE always selects a single zone for all the VMs, optimizing for resource quotas, available reservations and general capacity. Recommended for batch workloads that cannot tollerate distribution over multiple zones. This the default shape in Bulk Insert and Capacity Advisor APIs.", + "GCE prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across allowed zones to minimize the impact of zonal failure. Recommended for highly available serving workloads." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ANY", + "ANY_SINGLE_ZONE", + "BALANCED" + ] + } + } + }, + "LocationPolicyLocation": { + "id": "LocationPolicyLocation", + "type": "object", + "properties": { + "preference": { + "description": "Preference for a given location. Set to either ALLOW or DENY.", + "type": "string", + "enumDescriptions": [ + "Location is allowed for use.", + "Location is prohibited.", + "Default value, unused." ], - "description": "Deletes a rule of the specified priority." + "enum": [ + "ALLOW", + "DENY", + "PREFERENCE_UNSPECIFIED" + ] }, - "patchRule": { - "id": "compute.regionNetworkFirewallPolicies.patchRule", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to patch.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" + "constraints": { + "description": "Constraints that the caller requires on the result distribution in this zone.", + "$ref": "LocationPolicyLocationConstraints" + } + } + }, + "LocationPolicyLocationConstraints": { + "id": "LocationPolicyLocationConstraints", + "description": "Per-zone constraints on location policy for this zone.", + "type": "object", + "properties": { + "maxCount": { + "description": "Maximum number of items that are allowed to be placed in this zone. The value must be non-negative.", + "type": "integer", + "format": "int32" + } + } + }, + "InstancesGetEffectiveFirewallsResponse": { + "id": "InstancesGetEffectiveFirewallsResponse", + "type": "object", + "properties": { + "firewalls": { + "description": "Effective firewalls on the instance.", + "type": "array", + "items": { + "$ref": "Firewall" + } + }, + "firewallPolicys": { + "description": "Effective firewalls from firewall policies.", + "type": "array", + "items": { + "$ref": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + } + } + } + }, + "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "type": "object", + "properties": { + "name": { + "description": "[Output Only] The name of the firewall policy.", + "type": "string" + }, + "type": { + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "request": { + "enum": [ + "HIERARCHY", + "NETWORK", + "NETWORK_REGIONAL", + "UNSPECIFIED" + ] + }, + "shortName": { + "description": "[Output Only] The short name of the firewall policy.", + "type": "string" + }, + "displayName": { + "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", + "deprecated": true, + "type": "string" + }, + "rules": { + "description": "The rules that apply to the network.", + "type": "array", + "items": { "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches a rule of the specified priority." + } + } + } + }, + "ReservationList": { + "id": "ReservationList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#reservationsList for listsof reservations", + "default": "compute#reservationList", + "type": "string" }, - "cloneRules": { - "id": "compute.regionNetworkFirewallPolicies.cloneRules", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceFirewallPolicy": { - "description": "The firewall policy from which to copy rules.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Copies rules to the specified network firewall policy." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" }, - "getAssociation": { - "id": "compute.regionNetworkFirewallPolicies.getAssociation", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", - "httpMethod": "GET", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried association belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "name": { - "description": "The name of the association to get from the firewall policy.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "response": { - "$ref": "FirewallPolicyAssociation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets an association with the specified name." + "items": { + "description": "[Output Only] A list of Allocation resources.", + "type": "array", + "items": { + "$ref": "Reservation" + } }, - "addAssociation": { - "id": "compute.regionNetworkFirewallPolicies.addAssociation", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "replaceExistingAssociation": { - "description": "Indicates whether or not to replace it if an association already exists. This is false by default, in which case an error will be returned if an association already exists.", - "location": "query", - "type": "boolean" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "request": { - "$ref": "FirewallPolicyAssociation" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts an association for the specified network firewall policy." + } }, - "removeAssociation": { - "id": "compute.regionNetworkFirewallPolicies.removeAssociation", - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", - "httpMethod": "POST", - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "name": { - "description": "Name for the association that will be removed.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "firewallPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes an association for the specified network firewall policy." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + } + } + }, + "Reservation": { + "id": "Reservation", + "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#reservations for reservations.", + "default": "compute#reservation", + "type": "string" }, - "getEffectiveFirewalls": { - "id": "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", - "path": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", - "httpMethod": "GET", - "parameters": { - "network": { - "description": "Network reference", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "network" - ], - "response": { - "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the effective firewalls on a given network." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "getIamPolicy": { - "id": "compute.regionNetworkFirewallPolicies.getIamPolicy", - "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "zone": { + "description": "Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "name": { + "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instances.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string" + }, + "specificReservation": { + "description": "Reservation for instances with specific machine shapes.", + "$ref": "AllocationSpecificSKUReservation" + }, + "aggregateReservation": { + "description": "Reservation for aggregated resources, providing shape flexibility.", + "$ref": "AllocationAggregateReservation" + }, + "commitment": { + "description": "[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.", + "type": "string" + }, + "specificReservationRequired": { + "description": "Indicates whether the reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.", + "type": "boolean" + }, + "status": { + "description": "[Output Only] The status of the reservation.", + "type": "string", + "enumDescriptions": [ + "Resources are being allocated for the reservation.", + "Reservation is currently being deleted.", + "", + "Reservation has allocated all its resources.", + "Reservation is currently being resized." ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "UPDATING" + ] }, - "setIamPolicy": { - "id": "compute.regionNetworkFirewallPolicies.setIamPolicy", - "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" + "shareSettings": { + "description": "Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation.", + "$ref": "ShareSettings" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "resourcePolicies": { + "description": "Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "resourceStatus": { + "description": "[Output Only] Status information for Reservation resource.", + "$ref": "AllocationResourceStatus" + } + } + }, + "AllocationSpecificSKUReservation": { + "id": "AllocationSpecificSKUReservation", + "description": "This reservation type allows to pre allocate specific instance configuration.", + "type": "object", + "properties": { + "instanceProperties": { + "description": "The instance properties for the reservation.", + "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties" + }, + "count": { + "description": "Specifies the number of resources that are allocated.", + "type": "string", + "format": "int64" + }, + "inUseCount": { + "description": "[Output Only] Indicates how many instances are in use.", + "type": "string", + "format": "int64" + }, + "assuredCount": { + "description": "[Output Only] Indicates how many instances are actually usable currently.", + "type": "string", + "format": "int64" + }, + "sourceInstanceTemplate": { + "description": "Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", + "type": "string" + } + } + }, + "AllocationSpecificSKUAllocationReservedInstanceProperties": { + "id": "AllocationSpecificSKUAllocationReservedInstanceProperties", + "description": "Properties of the SKU instances being reserved. Next ID: 9", + "type": "object", + "properties": { + "machineType": { + "description": "Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.", + "type": "string" + }, + "guestAccelerators": { + "description": "Specifies accelerator type and count.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "minCpuPlatform": { + "description": "Minimum cpu platform the reservation.", + "type": "string" + }, + "localSsds": { + "description": "Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.", + "type": "array", + "items": { + "$ref": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk" + } + }, + "locationHint": { + "description": "An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.", + "type": "string" + } + } + }, + "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { + "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", + "type": "object", + "properties": { + "diskSizeGb": { + "description": "Specifies the size of the disk in base-2 GB.", + "type": "string", + "format": "int64" + }, + "interface": { + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NVME", + "SCSI" + ] + } + } + }, + "AllocationAggregateReservation": { + "id": "AllocationAggregateReservation", + "description": "This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation.", + "type": "object", + "properties": { + "vmFamily": { + "description": "The VM family that all instances scheduled against this reservation must belong to.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" + ] }, - "testIamPermissions": { - "id": "compute.regionNetworkFirewallPolicies.testIamPermissions", - "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "reservedResources": { + "description": "List of reserved resources (CPUs, memory, accelerators).", + "type": "array", + "items": { + "$ref": "AllocationAggregateReservationReservedResourceInfo" + } + }, + "inUseResources": { + "description": "[Output only] List of resources currently in use.", + "type": "array", + "items": { + "$ref": "AllocationAggregateReservationReservedResourceInfo" + } + }, + "workloadType": { + "description": "The workload type of the instances that will target this reservation.", + "type": "string", + "enumDescriptions": [ + "Reserved resources will be optimized for BATCH workloads, such as ML training.", + "Reserved resources will be optimized for SERVING workloads, such as ML inference.", + "" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "BATCH", + "SERVING", + "UNSPECIFIED" + ] } } }, - "securityPolicies": { - "methods": { - "list": { - "id": "compute.securityPolicies.list", - "path": "projects/{project}/global/securityPolicies", - "flatPath": "projects/{project}/global/securityPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SecurityPolicyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "List all the policies that have been configured for the specified project." + "AllocationAggregateReservationReservedResourceInfo": { + "id": "AllocationAggregateReservationReservedResourceInfo", + "type": "object", + "properties": { + "accelerator": { + "description": "Properties of accelerator resources in this reservation.", + "$ref": "AllocationAggregateReservationReservedResourceInfoAccelerator" + } + } + }, + "AllocationAggregateReservationReservedResourceInfoAccelerator": { + "id": "AllocationAggregateReservationReservedResourceInfoAccelerator", + "type": "object", + "properties": { + "acceleratorCount": { + "description": "Number of accelerators of specified type.", + "type": "integer", + "format": "int32" }, - "get": { - "id": "compute.securityPolicies.get", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to get.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "response": { - "$ref": "SecurityPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "acceleratorType": { + "description": "Full or partial URL to accelerator type. e.g. \"projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l\"", + "type": "string" + } + } + }, + "ShareSettings": { + "id": "ShareSettings", + "description": "The share setting for reservations and sole tenancy node groups.", + "type": "object", + "properties": { + "shareType": { + "description": "Type of sharing for this shared-reservation", + "type": "string", + "enumDescriptions": [ + "Default value.", + "Shared-reservation is open to entire Organization", + "Default value. This value is unused.", + "Shared-reservation is open to specific projects" ], - "description": "List all of the ordered rules present in a single specified policy." + "enum": [ + "LOCAL", + "ORGANIZATION", + "SHARE_TYPE_UNSPECIFIED", + "SPECIFIC_PROJECTS" + ] }, - "insert": { - "id": "compute.securityPolicies.insert", - "path": "projects/{project}/global/securityPolicies", - "flatPath": "projects/{project}/global/securityPolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "SecurityPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new policy in the specified project using the data included in the request." + "projectMap": { + "description": "A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS.", + "type": "object", + "additionalProperties": { + "$ref": "ShareSettingsProjectConfig" + } + } + } + }, + "ShareSettingsProjectConfig": { + "id": "ShareSettingsProjectConfig", + "description": "Config for each project in the share settings.", + "type": "object", + "properties": { + "projectId": { + "description": "The project ID, should be same as the key of this project config in the parent map.", + "type": "string" + } + } + }, + "AllocationResourceStatus": { + "id": "AllocationResourceStatus", + "description": "[Output Only] Contains output only fields.", + "type": "object", + "properties": { + "specificSkuAllocation": { + "description": "Allocation Properties of this reservation.", + "$ref": "AllocationResourceStatusSpecificSKUAllocation" + } + } + }, + "AllocationResourceStatusSpecificSKUAllocation": { + "id": "AllocationResourceStatusSpecificSKUAllocation", + "description": "Contains Properties set for the reservation.", + "type": "object", + "properties": { + "sourceInstanceTemplateId": { + "description": "ID of the instance template used to populate reservation properties.", + "type": "string" + } + } + }, + "ReservationAggregatedList": { + "id": "ReservationAggregatedList", + "description": "Contains a list of reservations.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#reservationAggregatedList", + "type": "string" }, - "delete": { - "id": "compute.securityPolicies.delete", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Allocation resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of reservations.", + "$ref": "ReservationsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified policy." + } }, - "patch": { - "id": "compute.securityPolicies.patch", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ReservationsScopedList": { + "id": "ReservationsScopedList", + "type": "object", + "properties": { + "reservations": { + "description": "A list of reservations contained in this scope.", + "type": "array", + "items": { + "$ref": "Reservation" + } + }, + "warning": { + "description": "Informational warning which replaces the list of reservations when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "request": { - "$ref": "SecurityPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead." + } + } + } + }, + "ReservationsResizeRequest": { + "id": "ReservationsResizeRequest", + "type": "object", + "properties": { + "specificSkuCount": { + "description": "Number of allocated resources can be resized with minimum = 1 and maximum = 1000.", + "type": "string", + "format": "int64" + } + } + }, + "InstanceGroupList": { + "id": "InstanceGroupList", + "description": "A list of InstanceGroup resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupList for instance group lists.", + "default": "compute#instanceGroupList", + "type": "string" }, - "getRule": { - "id": "compute.securityPolicies.getRule", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", - "httpMethod": "GET", - "parameters": { - "priority": { - "description": "The priority of the rule to get from the security policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to which the queried rule belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "response": { - "$ref": "SecurityPolicyRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets a rule at the specified priority." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "addRule": { - "id": "compute.securityPolicies.addRule", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of InstanceGroup resources.", + "type": "array", + "items": { + "$ref": "InstanceGroup" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "InstanceGroup": { + "id": "InstanceGroup", + "description": "Represents an Instance Group resource. Instance Groups can be used to configure a target for load balancing. Instance groups can either be managed or unmanaged. To create managed instance groups, use the instanceGroupManager or regionInstanceGroupManager resource instead. Use zonal unmanaged instance groups if you need to apply load balancing to groups of heterogeneous instances or if you need to manage the instances yourself. You cannot create regional unmanaged instance groups. For more information, read Instance groups.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroup for instance groups.", + "default": "compute#instanceGroup", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this instance group, generated by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this instance group in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "The name of the instance group. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instanceGroups.insert" + ] }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "request": { - "$ref": "SecurityPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts a rule into a security policy." + "type": "string" }, - "removeRule": { - "id": "compute.securityPolicies.removeRule", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", - "httpMethod": "POST", - "parameters": { - "priority": { - "description": "The priority of the rule to remove from the security policy.", - "location": "query", - "type": "integer", - "format": "int32" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "namedPorts": { + "description": " Assigns a name to a port number. For example: {name: \"http\", port: 80} This allows the system to reference ports by the assigned name instead of a port number. Named ports can also contain multiple ports. For example: [{name: \"app1\", port: 8080}, {name: \"app1\", port: 8081}, {name: \"app2\", port: 8082}] Named ports apply to all instances in this instance group. ", + "type": "array", + "items": { + "$ref": "NamedPort" + } + }, + "network": { + "description": "[Output Only] The URL of the network to which all instances in the instance group belong. If your instance has multiple network interfaces, then the network and subnetwork fields only refer to the network and subnet used by your primary interface (nic0).", + "type": "string" + }, + "fingerprint": { + "description": "[Output Only] The fingerprint of the named ports. The system uses this fingerprint to detect conflicts when multiple users change the named ports concurrently.", + "type": "string", + "format": "byte" + }, + "zone": { + "description": "[Output Only] The URL of the zone where the instance group is located (for zonal resources).", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] The URL for this instance group. The server generates this URL.", + "type": "string" + }, + "size": { + "description": "[Output Only] The total number of instances in the instance group.", + "type": "integer", + "format": "int32" + }, + "region": { + "description": "[Output Only] The URL of the region where the instance group is located (for regional resources).", + "type": "string" + }, + "subnetwork": { + "description": "[Output Only] The URL of the subnetwork to which all instances in the instance group belong. If your instance has multiple network interfaces, then the network and subnetwork fields only refer to the network and subnet used by your primary interface (nic0).", + "type": "string" + } + } + }, + "NamedPort": { + "id": "NamedPort", + "description": "The named port. For example: \u003c\"http\", 80\u003e.", + "type": "object", + "properties": { + "name": { + "description": "The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.", + "type": "string" + }, + "port": { + "description": "The port number, which can be a value between 1 and 65535.", + "type": "integer", + "format": "int32" + } + } + }, + "InstanceGroupAggregatedList": { + "id": "InstanceGroupAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupAggregatedList for aggregated lists of instance groups.", + "default": "compute#instanceGroupAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstanceGroupsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "The name of the scope that contains this set of instance groups.", + "$ref": "InstanceGroupsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes a rule at the specified priority." + } }, - "patchRule": { - "id": "compute.securityPolicies.patchRule", - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", - "httpMethod": "POST", - "parameters": { - "priority": { - "description": "The priority of the rule to patch.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "securityPolicy" - ], - "request": { - "$ref": "SecurityPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupsScopedList": { + "id": "InstanceGroupsScopedList", + "type": "object", + "properties": { + "instanceGroups": { + "description": "[Output Only] The list of instance groups that are contained in this scope.", + "type": "array", + "items": { + "$ref": "InstanceGroup" + } }, - "listPreconfiguredExpressionSets": { - "id": "compute.securityPolicies.listPreconfiguredExpressionSets", - "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", - "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "warning": { + "description": "[Output Only] An informational warning that replaces the list of instance groups when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + } + } + } + }, + "InstanceGroupsAddInstancesRequest": { + "id": "InstanceGroupsAddInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The list of instances to add to the instance group.", + "type": "array", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "InstanceReference": { + "id": "InstanceReference", + "type": "object", + "properties": { + "instance": { + "description": "The URL for a specific instance. @required compute.instancegroups.addInstances/removeInstances", + "type": "string" + } + } + }, + "InstanceGroupsRemoveInstancesRequest": { + "id": "InstanceGroupsRemoveInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The list of instances to remove from the instance group.", + "type": "array", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "InstanceGroupsListInstancesRequest": { + "id": "InstanceGroupsListInstancesRequest", + "type": "object", + "properties": { + "instanceState": { + "description": "A filter for the state of the instances in the instance group. Valid options are ALL or RUNNING. If you do not specify this parameter the list includes all instances regardless of their state.", + "type": "string", + "enumDescriptions": [ + "Includes all instances in the generated list regardless of their state.", + "Includes instances in the generated list only if they have a RUNNING state." ], - "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions." + "enum": [ + "ALL", + "RUNNING" + ] + } + } + }, + "InstanceGroupsListInstances": { + "id": "InstanceGroupsListInstances", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupsListInstances for the list of instances in the specified instance group.", + "default": "compute#instanceGroupsListInstances", + "type": "string" }, - "setLabels": { - "id": "compute.securityPolicies.setLabels", - "path": "projects/{project}/global/securityPolicies/{resource}/setLabels", - "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "aggregatedList": { - "id": "compute.securityPolicies.aggregatedList", - "path": "projects/{project}/aggregated/securityPolicies", - "flatPath": "projects/{project}/aggregated/securityPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "items": { + "description": "A list of InstanceWithNamedPorts resources.", + "type": "array", + "items": { + "$ref": "InstanceWithNamedPorts" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SecurityPoliciesAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project." + } } } }, - "regionSecurityPolicies": { - "methods": { - "list": { - "id": "compute.regionSecurityPolicies.list", - "path": "projects/{project}/regions/{region}/securityPolicies", - "flatPath": "projects/{project}/regions/{region}/securityPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "SecurityPolicyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "List all the policies that have been configured for the specified project and region." + "InstanceWithNamedPorts": { + "id": "InstanceWithNamedPorts", + "type": "object", + "properties": { + "instance": { + "description": "[Output Only] The URL of the instance.", + "type": "string" }, - "get": { - "id": "compute.regionSecurityPolicies.get", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to get.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "response": { - "$ref": "SecurityPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "status": { + "description": "[Output Only] The status of the instance.", + "type": "string", + "enumDescriptions": [ + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "Resources are being allocated for the instance.", + "The instance is in repair.", + "The instance is running.", + "All required resources have been allocated and the instance is being started.", + "The instance has stopped successfully.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has suspended.", + "The instance is suspending.", + "The instance has stopped (either by explicit action or underlying failure)." ], - "description": "List all of the ordered rules present in a single specified policy." + "enum": [ + "DEPROVISIONING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" + ] }, - "insert": { - "id": "compute.regionSecurityPolicies.insert", - "path": "projects/{project}/regions/{region}/securityPolicies", - "flatPath": "projects/{project}/regions/{region}/securityPolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "SecurityPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new policy in the specified project using the data included in the request." + "namedPorts": { + "description": "[Output Only] The named ports that belong to this instance group.", + "type": "array", + "items": { + "$ref": "NamedPort" + } + } + } + }, + "InstanceGroupsSetNamedPortsRequest": { + "id": "InstanceGroupsSetNamedPortsRequest", + "type": "object", + "properties": { + "namedPorts": { + "description": "The list of named ports to set for this instance group.", + "type": "array", + "items": { + "$ref": "NamedPort" + } }, - "delete": { - "id": "compute.regionSecurityPolicies.delete", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified policy." + "fingerprint": { + "description": "The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request. A request with an incorrect fingerprint will fail with error 412 conditionNotMet.", + "type": "string", + "format": "byte" + } + } + }, + "RegionInstanceGroupList": { + "id": "RegionInstanceGroupList", + "description": "Contains a list of InstanceGroup resources.", + "type": "object", + "properties": { + "kind": { + "description": "The resource type.", + "default": "compute#regionInstanceGroupList", + "type": "string" }, - "patch": { - "id": "compute.regionSecurityPolicies.patch", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "request": { - "$ref": "SecurityPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "getRule": { - "id": "compute.regionSecurityPolicies.getRule", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", - "httpMethod": "GET", - "parameters": { - "priority": { - "description": "The priority of the rule to get from the security policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of InstanceGroup resources.", + "type": "array", + "items": { + "$ref": "InstanceGroup" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to which the queried rule belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "response": { - "$ref": "SecurityPolicyRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + } + } + } + }, + "RegionInstanceGroupsListInstancesRequest": { + "id": "RegionInstanceGroupsListInstancesRequest", + "type": "object", + "properties": { + "instanceState": { + "description": "Instances in which state should be returned. Valid options are: 'ALL', 'RUNNING'. By default, it lists all instances.", + "type": "string", + "enumDescriptions": [ + "Matches any status of the instances, running, non-running and others.", + "Instance is in RUNNING state if it is running." ], - "description": "Gets a rule at the specified priority." + "enum": [ + "ALL", + "RUNNING" + ] }, - "addRule": { - "id": "compute.regionSecurityPolicies.addRule", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "request": { - "$ref": "SecurityPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts a rule into a security policy." + "portName": { + "description": "Name of port user is interested in. It is optional. If it is set, only information about this ports will be returned. If it is not set, all the named ports will be returned. Always lists all instances.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + } + }, + "RegionInstanceGroupsListInstances": { + "id": "RegionInstanceGroupsListInstances", + "type": "object", + "properties": { + "kind": { + "description": "The resource type.", + "default": "compute#regionInstanceGroupsListInstances", + "type": "string" }, - "removeRule": { - "id": "compute.regionSecurityPolicies.removeRule", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", - "httpMethod": "POST", - "parameters": { - "priority": { - "description": "The priority of the rule to remove from the security policy.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes a rule at the specified priority." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "patchRule": { - "id": "compute.regionSecurityPolicies.patchRule", - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", - "httpMethod": "POST", - "parameters": { - "priority": { - "description": "The priority of the rule to patch.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of InstanceWithNamedPorts resources.", + "type": "array", + "items": { + "$ref": "InstanceWithNamedPorts" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "request": { - "$ref": "SecurityPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask." + } } } }, - "instances": { - "methods": { - "list": { - "id": "compute.instances.list", - "path": "projects/{project}/zones/{zone}/instances", - "flatPath": "projects/{project}/zones/{zone}/instances", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "RegionInstanceGroupsSetNamedPortsRequest": { + "id": "RegionInstanceGroupsSetNamedPortsRequest", + "type": "object", + "properties": { + "namedPorts": { + "description": "The list of named ports to set for this instance group.", + "type": "array", + "items": { + "$ref": "NamedPort" + } + }, + "fingerprint": { + "description": "The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.", + "type": "string", + "format": "byte" + } + } + }, + "InstanceGroupManagerList": { + "id": "InstanceGroupManagerList", + "description": "[Output Only] A list of managed instance groups.", + "type": "object", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstanceGroupManager resources.", + "type": "array", + "items": { + "$ref": "InstanceGroupManager" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + }, + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.", + "default": "compute#instanceGroupManagerList", + "type": "string" + } + } + }, + "InstanceGroupManager": { + "id": "InstanceGroupManager", + "description": "Represents a Managed Instance Group resource. An instance group is a collection of VM instances that you can manage as a single entity. For more information, read Instance groups. For zonal Managed Instance Group, use the instanceGroupManagers resource. For regional Managed Instance Group, use the regionInstanceGroupManagers resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", + "default": "compute#instanceGroupManager", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this managed instance group in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "The name of the managed instance group. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instanceGroupManagers.insert", + "compute.regionInstanceGroupManagers.insert" + ] }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "InstanceList" + "type": "string" + }, + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "zone": { + "description": "[Output Only] The URL of a zone where the managed instance group is located (for zonal resources).", + "type": "string" + }, + "region": { + "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources).", + "type": "string" + }, + "distributionPolicy": { + "description": "Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.", + "$ref": "DistributionPolicy" + }, + "instanceTemplate": { + "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", + "type": "string" + }, + "versions": { + "description": "Specifies the instance templates used by this managed instance group to create instances. Each version is defined by an instanceTemplate and a name. Every version can appear at most once per instance group. This field overrides the top-level instanceTemplate field. Read more about the relationships between these fields. Exactly one version must leave the targetSize field unset. That version will be applied to all remaining instances. For more information, read about canary updates.", + "type": "array", + "items": { + "$ref": "InstanceGroupManagerVersion" + } + }, + "allInstancesConfig": { + "description": "Specifies configuration that overrides the instance template configuration for the group.", + "$ref": "InstanceGroupManagerAllInstancesConfig" + }, + "instanceGroup": { + "description": "[Output Only] The URL of the Instance Group resource.", + "type": "string" + }, + "targetPools": { + "description": "The URLs for all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.", + "type": "array", + "items": { + "type": "string" + } + }, + "baseInstanceName": { + "description": "The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.", + "pattern": "[a-z][-a-z0-9]{0,57}", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. This field may be used in optimistic locking. It will be ignored when inserting an InstanceGroupManager. An up-to-date fingerprint must be provided in order to update the InstanceGroupManager, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InstanceGroupManager.", + "type": "string", + "format": "byte" + }, + "currentActions": { + "description": "[Output Only] The list of instance actions and the number of instances in this managed instance group that are scheduled for each of those actions.", + "$ref": "InstanceGroupManagerActionsSummary" + }, + "status": { + "description": "[Output Only] The status of this managed instance group.", + "$ref": "InstanceGroupManagerStatus" + }, + "targetSize": { + "description": "The target number of running instances for this managed instance group. You can reduce this number by using the instanceGroupManager deleteInstances or abandonInstances methods. Resizing the group also changes this number.", + "annotations": { + "required": [ + "compute.instanceGroupManagers.insert", + "compute.regionInstanceGroupManagers.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "integer", + "format": "int32" + }, + "listManagedInstancesResults": { + "description": "Pagination behavior of the listManagedInstances API method for this managed instance group.", + "type": "string", + "enumDescriptions": [ + "(Default) Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", + "Pagination is enabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are respected." ], - "description": "Retrieves the list of instances contained within the specified zone." + "enum": [ + "PAGELESS", + "PAGINATED" + ] }, - "aggregatedList": { - "id": "compute.instances.aggregatedList", - "path": "projects/{project}/aggregated/instances", - "flatPath": "projects/{project}/aggregated/instances", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" + "selfLink": { + "description": "[Output Only] The URL for this managed instance group. The server defines this URL.", + "type": "string" + }, + "autoHealingPolicies": { + "description": "The autohealing policy for this managed instance group. You can specify only one value.", + "type": "array", + "items": { + "$ref": "InstanceGroupManagerAutoHealingPolicy" + } + }, + "updatePolicy": { + "description": "The update policy for this managed instance group.", + "$ref": "InstanceGroupManagerUpdatePolicy" + }, + "namedPorts": { + "description": "Named ports configured for the Instance Groups complementary to this Instance Group Manager.", + "type": "array", + "items": { + "$ref": "NamedPort" + } + }, + "statefulPolicy": { + "description": "Stateful configuration for this Instanced Group Manager", + "$ref": "StatefulPolicy" + }, + "instanceLifecyclePolicy": { + "description": "The repair policy for this managed instance group.", + "$ref": "InstanceGroupManagerInstanceLifecyclePolicy" + } + } + }, + "DistributionPolicy": { + "id": "DistributionPolicy", + "type": "object", + "properties": { + "zones": { + "description": "Zones where the regional managed instance group will create and manage its instances.", + "type": "array", + "items": { + "$ref": "DistributionPolicyZoneConfiguration" + } + }, + "targetShape": { + "description": "The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).", + "type": "string", + "enumDescriptions": [ + "The group picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", + "The group creates all VM instances within a single zone. The zone is selected based on the present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads with heavy interprocess communication.", + "The group prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across selected zones to minimize the impact of zonal failure. Recommended for highly available serving workloads.", + "The group schedules VM instance creation and deletion to achieve and maintain an even number of managed instances across the selected zones. The distribution is even when the number of managed instances does not differ by more than 1 between any two zones. Recommended for highly available serving workloads." ], - "response": { - "$ref": "InstanceAggregatedList" + "enum": [ + "ANY", + "ANY_SINGLE_ZONE", + "BALANCED", + "EVEN" + ] + } + } + }, + "DistributionPolicyZoneConfiguration": { + "id": "DistributionPolicyZoneConfiguration", + "type": "object", + "properties": { + "zone": { + "description": "The URL of the zone. The zone must exist in the region where the managed instance group is located.", + "annotations": { + "required": [ + "compute.regionInstanceGroupManagers.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string" + } + } + }, + "InstanceGroupManagerVersion": { + "id": "InstanceGroupManagerVersion", + "type": "object", + "properties": { + "name": { + "description": "Name of the version. Unique among all versions in the scope of this managed instance group.", + "type": "string" + }, + "instanceTemplate": { + "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached.", + "type": "string" + }, + "targetSize": { + "description": "Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information.", + "$ref": "FixedOrPercent" + } + } + }, + "FixedOrPercent": { + "id": "FixedOrPercent", + "description": "Encapsulates numeric value that can be either absolute or relative.", + "type": "object", + "properties": { + "fixed": { + "description": "Specifies a fixed number of VM instances. This must be a positive integer.", + "type": "integer", + "format": "int32" + }, + "percent": { + "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.", + "type": "integer", + "format": "int32" + }, + "calculated": { + "description": "[Output Only] Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. ", + "type": "integer", + "format": "int32" + } + } + }, + "InstanceGroupManagerAllInstancesConfig": { + "id": "InstanceGroupManagerAllInstancesConfig", + "type": "object", + "properties": { + "properties": { + "description": "Properties to set on all instances in the group. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration. To apply the configuration, set the group's updatePolicy.type field to use proactive updates or use the applyUpdatesToInstances method.", + "$ref": "InstancePropertiesPatch" + } + } + }, + "InstancePropertiesPatch": { + "id": "InstancePropertiesPatch", + "description": "Represents the change that you want to make to the instance properties.", + "type": "object", + "properties": { + "metadata": { + "description": "The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labels": { + "description": "The label key-value pairs that you want to patch onto the instance.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "InstanceGroupManagerActionsSummary": { + "id": "InstanceGroupManagerActionsSummary", + "type": "object", + "properties": { + "none": { + "description": "[Output Only] The number of instances in the managed instance group that are running and have no scheduled actions.", + "type": "integer", + "format": "int32" + }, + "creating": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.", + "type": "integer", + "format": "int32" + }, + "creatingWithoutRetries": { + "description": "[Output Only] The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly.", + "type": "integer", + "format": "int32" + }, + "verifying": { + "description": "[Output Only] The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation.", + "type": "integer", + "format": "int32" + }, + "recreating": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template.", + "type": "integer", + "format": "int32" + }, + "deleting": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.", + "type": "integer", + "format": "int32" + }, + "abandoning": { + "description": "[Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.", + "type": "integer", + "format": "int32" + }, + "restarting": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.", + "type": "integer", + "format": "int32" + }, + "refreshing": { + "description": "[Output Only] The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance.", + "type": "integer", + "format": "int32" + }, + "suspending": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended.", + "type": "integer", + "format": "int32" + }, + "resuming": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed.", + "type": "integer", + "format": "int32" + }, + "stopping": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped.", + "type": "integer", + "format": "int32" + }, + "starting": { + "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be started or are currently being started.", + "type": "integer", + "format": "int32" + } + } + }, + "InstanceGroupManagerStatus": { + "id": "InstanceGroupManagerStatus", + "type": "object", + "properties": { + "isStable": { + "description": "[Output Only] A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.", + "type": "boolean" + }, + "allInstancesConfig": { + "description": "[Output only] Status of all-instances configuration on the group.", + "$ref": "InstanceGroupManagerStatusAllInstancesConfig" + }, + "versionTarget": { + "description": "[Output Only] A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager.", + "$ref": "InstanceGroupManagerStatusVersionTarget" + }, + "stateful": { + "description": "[Output Only] Stateful status of the given Instance Group Manager.", + "$ref": "InstanceGroupManagerStatusStateful" + }, + "autoscaler": { + "description": "[Output Only] The URL of the Autoscaler that targets this instance group manager.", + "type": "string" + } + } + }, + "InstanceGroupManagerStatusAllInstancesConfig": { + "id": "InstanceGroupManagerStatusAllInstancesConfig", + "type": "object", + "properties": { + "effective": { + "description": "[Output Only] A bit indicating whether this configuration has been applied to all managed instances in the group.", + "type": "boolean" + }, + "currentRevision": { + "description": "[Output Only] Current all-instances configuration revision. This value is in RFC3339 text format.", + "type": "string" + } + } + }, + "InstanceGroupManagerStatusVersionTarget": { + "id": "InstanceGroupManagerStatusVersionTarget", + "type": "object", + "properties": { + "isReached": { + "description": "[Output Only] A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.", + "type": "boolean" + } + } + }, + "InstanceGroupManagerStatusStateful": { + "id": "InstanceGroupManagerStatusStateful", + "type": "object", + "properties": { + "hasStatefulConfig": { + "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.", + "type": "boolean" + }, + "perInstanceConfigs": { + "description": "[Output Only] Status of per-instance configurations on the instances.", + "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs" + } + } + }, + "InstanceGroupManagerStatusStatefulPerInstanceConfigs": { + "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", + "type": "object", + "properties": { + "allEffective": { + "description": "A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", + "type": "boolean" + } + } + }, + "InstanceGroupManagerAutoHealingPolicy": { + "id": "InstanceGroupManagerAutoHealingPolicy", + "type": "object", + "properties": { + "healthCheck": { + "description": "The URL for the health check that signals autohealing.", + "type": "string" + }, + "initialDelaySec": { + "description": "The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", + "type": "integer", + "format": "int32" + } + } + }, + "InstanceGroupManagerUpdatePolicy": { + "id": "InstanceGroupManagerUpdatePolicy", + "type": "object", + "properties": { + "type": { + "description": "The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update.", + "type": "string", + "enumDescriptions": [ + "MIG will apply new configurations to existing VMs only when you selectively target specific or all VMs to be updated.", + "MIG will automatically apply new configurations to all or a subset of existing VMs and also to new VMs that are added to the group." ], - "description": "Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances." + "enum": [ + "OPPORTUNISTIC", + "PROACTIVE" + ] }, - "listReferrers": { - "id": "compute.instances.listReferrers", - "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instance": { - "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.", - "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "instanceRedistributionType": { + "description": "The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. ", + "type": "string", + "enumDescriptions": [ + "No action is being proactively performed in order to bring this IGM to its target instance distribution.", + "This IGM will actively converge to its target instance distribution." ], - "response": { - "$ref": "InstanceListReferrers" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "NONE", + "PROACTIVE" + ] + }, + "minimalAction": { + "description": "Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. ", + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], - "description": "Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed or unmanaged instance group, the referrers list includes the instance group. For more information, read Viewing referrers to VM instances." + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] }, - "get": { - "id": "compute.instances.get", - "path": "projects/{project}/zones/{zone}/instances/{instance}", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", - "httpMethod": "GET", - "parameters": { - "instance": { - "description": "Name of the instance resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "mostDisruptiveAllowedAction": { + "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], - "response": { - "$ref": "Instance" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] + }, + "maxSurge": { + "description": "The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge.", + "$ref": "FixedOrPercent" + }, + "maxUnavailable": { + "description": "The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable.", + "$ref": "FixedOrPercent" + }, + "replacementMethod": { + "description": "What action should be used to replace instances. See minimal_action.REPLACE", + "type": "string", + "enumDescriptions": [ + "Instances will be recreated (with the same name)", + "Default option: instances will be deleted and created (with a new name)" ], - "description": "Returns the specified Instance resource." + "enum": [ + "RECREATE", + "SUBSTITUTE" + ] + } + } + }, + "StatefulPolicy": { + "id": "StatefulPolicy", + "type": "object", + "properties": { + "preservedState": { + "$ref": "StatefulPolicyPreservedState" + } + } + }, + "StatefulPolicyPreservedState": { + "id": "StatefulPolicyPreservedState", + "description": "Configuration of preserved resources.", + "type": "object", + "properties": { + "disks": { + "description": "Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks.", + "type": "object", + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateDiskDevice" + } }, - "insert": { - "id": "compute.instances.insert", - "path": "projects/{project}/zones/{zone}/instances", - "flatPath": "projects/{project}/zones/{zone}/instances", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceInstanceTemplate": { - "description": "Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", - "location": "query", - "type": "string" - }, - "sourceMachineImage": { - "description": "Specifies the machine image to use to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to a machine image: - https://www.googleapis.com/compute/v1/projects/project/global/global /machineImages/machineImage - projects/project/global/global/machineImages/machineImage - global/machineImages/machineImage ", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" + "internalIPs": { + "description": "Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", + "type": "object", + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateNetworkIp" + } + }, + "externalIPs": { + "description": "External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", + "type": "object", + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateNetworkIp" + } + } + } + }, + "StatefulPolicyPreservedStateDiskDevice": { + "id": "StatefulPolicyPreservedStateDiskDevice", + "type": "object", + "properties": { + "autoDelete": { + "description": "These stateful disks will never be deleted during autohealing, update or VM instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "Instance" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ] + } + } + }, + "StatefulPolicyPreservedStateNetworkIp": { + "id": "StatefulPolicyPreservedStateNetworkIp", + "type": "object", + "properties": { + "autoDelete": { + "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Creates an instance resource in the specified project using the data included in the request." - }, - "delete": { - "id": "compute.instances.delete", - "path": "projects/{project}/zones/{zone}/instances/{instance}", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", - "httpMethod": "DELETE", - "parameters": { - "instance": { - "description": "Name of the instance resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ] + } + } + }, + "InstanceGroupManagerInstanceLifecyclePolicy": { + "id": "InstanceGroupManagerInstanceLifecyclePolicy", + "type": "object", + "properties": { + "forceUpdateOnRepair": { + "description": "A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. ", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NO", + "YES" + ] + }, + "defaultActionOnFailure": { + "description": "The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. ", + "type": "string", + "enumDescriptions": [ + "MIG does not repair a failed or an unhealthy VM.", + "(Default) MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG." ], - "description": "Deletes the specified Instance resource. For more information, see Deleting an instance." + "enum": [ + "DO_NOTHING", + "REPAIR" + ] + } + } + }, + "InstanceGroupManagerAggregatedList": { + "id": "InstanceGroupManagerAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerAggregatedList for an aggregated list of managed instance groups.", + "default": "compute#instanceGroupManagerAggregatedList", + "type": "string" }, - "reset": { - "id": "compute.instances.reset", - "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstanceGroupManagersScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] The name of the scope that contains this set of managed instance groups.", + "$ref": "InstanceGroupManagersScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance." + } }, - "simulateMaintenanceEvent": { - "id": "compute.instances.simulateMaintenanceEvent", - "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersScopedList": { + "id": "InstanceGroupManagersScopedList", + "type": "object", + "properties": { + "instanceGroupManagers": { + "description": "[Output Only] The list of managed instance groups that are contained in the specified project and zone.", + "type": "array", + "items": { + "$ref": "InstanceGroupManager" + } + }, + "warning": { + "description": "[Output Only] The warning that replaces the list of managed instance groups when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "withExtendedNotifications": { - "description": "Determines whether the customers receive notifications before migration. Only applicable to SF vms.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + } + } + } + }, + "InstanceGroupManagersDeleteInstancesRequest": { + "id": "InstanceGroupManagersDeleteInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued instances do not have URL and can be deleted only by name. One cannot specify both URLs and names in a single request.", + "type": "array", + "items": { + "type": "string" + } + }, + "skipInstancesOnValidationError": { + "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", + "type": "boolean" + } + } + }, + "InstanceGroupManagersAbandonInstancesRequest": { + "id": "InstanceGroupManagersAbandonInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersRecreateInstancesRequest": { + "id": "InstanceGroupManagersRecreateInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersSetInstanceTemplateRequest": { + "id": "InstanceGroupManagersSetInstanceTemplateRequest", + "type": "object", + "properties": { + "instanceTemplate": { + "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", + "type": "string" + } + } + }, + "InstanceGroupManagersSetTargetPoolsRequest": { + "id": "InstanceGroupManagersSetTargetPoolsRequest", + "type": "object", + "properties": { + "targetPools": { + "description": "The list of target pool URLs that instances in this managed instance group belong to. The managed instance group applies these target pools to all of the instances in the group. Existing instances and new instances in the group all receive these target pool settings.", + "type": "array", + "items": { + "type": "string" + } + }, + "fingerprint": { + "description": "The fingerprint of the target pools information. Use this optional property to prevent conflicts when multiple users change the target pools settings concurrently. Obtain the fingerprint with the instanceGroupManagers.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.", + "type": "string", + "format": "byte" + } + } + }, + "InstanceGroupManagersListManagedInstancesResponse": { + "id": "InstanceGroupManagersListManagedInstancesResponse", + "type": "object", + "properties": { + "managedInstances": { + "description": "[Output Only] The list of instances in the managed instance group.", + "type": "array", + "items": { + "$ref": "ManagedInstance" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + } + } + }, + "ManagedInstance": { + "id": "ManagedInstance", + "description": "A Managed Instance resource.", + "type": "object", + "properties": { + "name": { + "description": "[Output Only] The name of the instance. The name always exists even if the instance has not yet been created.", + "type": "string" + }, + "instance": { + "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.", + "type": "string" + }, + "id": { + "description": "[Output only] The unique identifier for this resource. This field is empty when instance does not exist.", + "type": "string", + "format": "uint64" + }, + "instanceStatus": { + "description": "[Output Only] The status of the instance. This field is empty when the instance does not exist.", + "type": "string", + "enumDescriptions": [ + "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", + "Resources are being allocated for the instance.", + "The instance is in repair.", + "The instance is running.", + "All required resources have been allocated and the instance is being started.", + "The instance has stopped successfully.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has suspended.", + "The instance is suspending.", + "The instance has stopped (either by explicit action or underlying failure)." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "DEPROVISIONING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" + ] + }, + "version": { + "description": "[Output Only] Intended version of this instance.", + "$ref": "ManagedInstanceVersion" + }, + "preservedStateFromPolicy": { + "description": "[Output Only] Preserved state generated based on stateful policy for this instance.", + "$ref": "PreservedState" + }, + "preservedStateFromConfig": { + "description": "[Output Only] Preserved state applied from per-instance config for this instance.", + "$ref": "PreservedState" + }, + "currentAction": { + "description": "[Output Only] The current action that the managed instance group has scheduled for the instance. Possible values: - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance. - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful. - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased instead. - RECREATING The managed instance group is recreating this instance. - DELETING The managed instance group is permanently deleting this instance. - ABANDONING The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group. - RESTARTING The managed instance group is restarting the instance. - REFRESHING The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance. - VERIFYING The managed instance group has created the instance and it is in the process of being verified. ", + "type": "string", + "enumDescriptions": [ + "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", + "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", + "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", + "The managed instance group is permanently deleting this instance.", + "The managed instance group has not scheduled any actions for this instance.", + "The managed instance group is recreating this instance.", + "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", + "The managed instance group is restarting this instance.", + "The managed instance group is resuming this instance.", + "The managed instance group is starting this instance.", + "The managed instance group is stopping this instance.", + "The managed instance group is suspending this instance.", + "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)." ], - "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event." + "enum": [ + "ABANDONING", + "CREATING", + "CREATING_WITHOUT_RETRIES", + "DELETING", + "NONE", + "RECREATING", + "REFRESHING", + "RESTARTING", + "RESUMING", + "STARTING", + "STOPPING", + "SUSPENDING", + "VERIFYING" + ] + }, + "instanceHealth": { + "description": "[Output Only] Health state of the instance per health-check.", + "type": "array", + "items": { + "$ref": "ManagedInstanceInstanceHealth" + } + }, + "lastAttempt": { + "description": "[Output Only] Information about the last attempt to create or delete the instance.", + "$ref": "ManagedInstanceLastAttempt" + } + } + }, + "ManagedInstanceVersion": { + "id": "ManagedInstanceVersion", + "type": "object", + "properties": { + "name": { + "description": "[Output Only] Name of the version.", + "type": "string" + }, + "instanceTemplate": { + "description": "[Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.", + "type": "string" + } + } + }, + "PreservedState": { + "id": "PreservedState", + "description": "Preserved state for a given instance.", + "type": "object", + "properties": { + "disks": { + "description": "Preserved disks defined for this instance. This map is keyed with the device names of the disks.", + "type": "object", + "additionalProperties": { + "$ref": "PreservedStatePreservedDisk" + } + }, + "metadata": { + "description": "Preserved metadata defined for this instance.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "internalIPs": { + "description": "Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.", + "type": "object", + "additionalProperties": { + "$ref": "PreservedStatePreservedNetworkIp" + } + }, + "externalIPs": { + "description": "Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.", + "type": "object", + "additionalProperties": { + "$ref": "PreservedStatePreservedNetworkIp" + } + } + } + }, + "PreservedStatePreservedDisk": { + "id": "PreservedStatePreservedDisk", + "type": "object", + "properties": { + "source": { + "description": "The URL of the disk resource that is stateful and should be attached to the VM instance.", + "type": "string" }, - "performMaintenance": { - "id": "compute.instances.performMaintenance", - "path": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "mode": { + "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.", + "type": "string", + "enumDescriptions": [ + "Attaches this disk in read-only mode. Multiple VM instances can use a disk in READ_ONLY mode at a time.", + "*[Default]* Attaches this disk in READ_WRITE mode. Only one VM instance at a time can be attached to a disk in READ_WRITE mode." ], - "description": "Perform a manual maintenance on the instance." + "enum": [ + "READ_ONLY", + "READ_WRITE" + ] }, - "addAccessConfig": { - "id": "compute.instances.addAccessConfig", - "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "networkInterface": { - "description": "The name of the network interface to add to this instance.", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" + "autoDelete": { + "description": "These stateful disks will never be deleted during autohealing, update, instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole MIG is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "AccessConfig" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ] + } + } + }, + "PreservedStatePreservedNetworkIp": { + "id": "PreservedStatePreservedNetworkIp", + "type": "object", + "properties": { + "autoDelete": { + "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Adds an access config to an instance's network interface." + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ] }, - "deleteAccessConfig": { - "id": "compute.instances.deleteAccessConfig", - "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", - "httpMethod": "POST", - "parameters": { - "accessConfig": { - "description": "The name of the access config to delete.", - "location": "query", - "required": true, - "type": "string" - }, - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "networkInterface": { - "description": "The name of the network interface.", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "accessConfig", - "networkInterface" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes an access config from an instance's network interface." + "ipAddress": { + "description": "Ip address representation", + "$ref": "PreservedStatePreservedNetworkIpIpAddress" + } + } + }, + "PreservedStatePreservedNetworkIpIpAddress": { + "id": "PreservedStatePreservedNetworkIpIpAddress", + "type": "object", + "properties": { + "literal": { + "description": "An IPv4 internal network address to assign to the instance for this network interface.", + "type": "string" }, - "updateAccessConfig": { - "id": "compute.instances.updateAccessConfig", - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "networkInterface": { - "description": "The name of the network interface where the access config is attached.", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" - ], - "request": { - "$ref": "AccessConfig" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified access config from an instance's network interface with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "address": { + "description": "The URL of the reservation for this IP address.", + "type": "string" + } + } + }, + "ManagedInstanceInstanceHealth": { + "id": "ManagedInstanceInstanceHealth", + "type": "object", + "properties": { + "healthCheck": { + "description": "[Output Only] The URL for the health check that verifies whether the instance is healthy.", + "type": "string" }, - "updateNetworkInterface": { - "id": "compute.instances.updateNetworkInterface", - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", - "httpMethod": "PATCH", - "parameters": { - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "networkInterface": { - "description": "The name of the network interface to update.", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" - ], - "request": { - "$ref": "NetworkInterface" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "detailedHealthState": { + "description": "[Output Only] The current detailed instance health state.", + "type": "string", + "enumDescriptions": [ + "The instance is being drained. The existing connections to the instance have time to complete, but the new ones are being refused.", + "The instance is reachable i.e. a connection to the application health checking endpoint can be established, and conforms to the requirements defined by the health check.", + "The instance is unreachable i.e. a connection to the application health checking endpoint cannot be established, or the server does not respond within the specified timeout.", + "The instance is reachable, but does not conform to the requirements defined by the health check.", + "The health checking system is aware of the instance but its health is not known at the moment." ], - "description": "Updates an instance's network interface. This method can only update an interface's alias IP range and attached network. See Modifying alias IP ranges for an existing instance for instructions on changing alias IP ranges. See Migrating a VM between networks for instructions on migrating an interface. This method follows PATCH semantics." - }, - "setScheduling": { - "id": "compute.instances.setScheduling", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "enum": [ + "DRAINING", + "HEALTHY", + "TIMEOUT", + "UNHEALTHY", + "UNKNOWN" + ] + } + } + }, + "ManagedInstanceLastAttempt": { + "id": "ManagedInstanceLastAttempt", + "type": "object", + "properties": { + "errors": { + "description": "[Output Only] Encountered errors during the last attempt to create or delete the instance.", + "type": "object", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "type": "array", + "items": { + "type": "object", + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + } + } + } + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "Scheduling" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "InstanceGroupManagersListErrorsResponse": { + "id": "InstanceGroupManagersListErrorsResponse", + "type": "object", + "properties": { + "items": { + "description": "[Output Only] The list of errors of the managed instance group.", + "type": "array", + "items": { + "$ref": "InstanceManagedByIgmError" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + } + } + }, + "InstanceManagedByIgmError": { + "id": "InstanceManagedByIgmError", + "type": "object", + "properties": { + "error": { + "description": "[Output Only] Contents of the error.", + "$ref": "InstanceManagedByIgmErrorManagedInstanceError" + }, + "timestamp": { + "description": "[Output Only] The time that this error occurred. This value is in RFC3339 text format.", + "type": "string" + }, + "instanceActionDetails": { + "description": "[Output Only] Details of the instance action that triggered this error. May be null, if the error was not caused by an action on an instance. This field is optional.", + "$ref": "InstanceManagedByIgmErrorInstanceActionDetails" + } + } + }, + "InstanceManagedByIgmErrorManagedInstanceError": { + "id": "InstanceManagedByIgmErrorManagedInstanceError", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] Error code.", + "type": "string" + }, + "message": { + "description": "[Output Only] Error message.", + "type": "string" + } + } + }, + "InstanceManagedByIgmErrorInstanceActionDetails": { + "id": "InstanceManagedByIgmErrorInstanceActionDetails", + "type": "object", + "properties": { + "action": { + "description": "[Output Only] Action that managed instance group was executing on the instance when the error occurred. Possible values:", + "type": "string", + "enumDescriptions": [ + "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", + "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", + "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", + "The managed instance group is permanently deleting this instance.", + "The managed instance group has not scheduled any actions for this instance.", + "The managed instance group is recreating this instance.", + "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", + "The managed instance group is restarting this instance.", + "The managed instance group is resuming this instance.", + "The managed instance group is starting this instance.", + "The managed instance group is stopping this instance.", + "The managed instance group is suspending this instance.", + "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)." ], - "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy." + "enum": [ + "ABANDONING", + "CREATING", + "CREATING_WITHOUT_RETRIES", + "DELETING", + "NONE", + "RECREATING", + "REFRESHING", + "RESTARTING", + "RESUMING", + "STARTING", + "STOPPING", + "SUSPENDING", + "VERIFYING" + ] }, - "getSerialPortOutput": { - "id": "compute.instances.getSerialPortOutput", - "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort", - "httpMethod": "GET", - "parameters": { - "instance": { - "description": "Name of the instance for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "port": { - "description": "Specifies which COM or serial port to retrieve data from.", - "default": "1", - "minimum": "1", - "maximum": "4", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "start": { - "description": "Specifies the starting byte position of the output to return. To start with the first byte of output to the specified port, omit this field or set it to `0`. If the output for that byte position is available, this field matches the `start` parameter sent with the request. If the amount of serial console output exceeds the size of the buffer (1 MB), the oldest output is discarded and is no longer available. If the requested start position refers to discarded output, the start position is adjusted to the oldest output still available, and the adjusted start position is returned as the `start` property value. You can also provide a negative start position, which translates to the most recent number of bytes written to the serial port. For example, -3 is interpreted as the most recent 3 bytes written to the serial console.", - "location": "query", - "type": "string", - "format": "int64" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "SerialPortOutput" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the last 1 MB of serial port output from the specified instance." + "instance": { + "description": "[Output Only] The URL of the instance. The URL can be set even if the instance has not yet been created.", + "type": "string" }, - "getScreenshot": { - "id": "compute.instances.getScreenshot", - "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", - "httpMethod": "GET", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "Screenshot" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the screenshot from the specified instance." + "version": { + "description": "[Output Only] Version this instance was created from, or was being created from, but the creation failed. Corresponds to one of the versions that were set on the Instance Group Manager resource at the time this instance was being created.", + "$ref": "ManagedInstanceVersion" + } + } + }, + "InstanceGroupManagersListPerInstanceConfigsResp": { + "id": "InstanceGroupManagersListPerInstanceConfigsResp", + "type": "object", + "properties": { + "items": { + "description": "[Output Only] The list of PerInstanceConfig.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } }, - "sendDiagnosticInterrupt": { - "id": "compute.instances.sendDiagnosticInterrupt", - "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sends diagnostic interrupt to the instance." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "getGuestAttributes": { - "id": "compute.instances.getGuestAttributes", - "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes", - "httpMethod": "GET", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "queryPath": { - "description": "Specifies the guest attributes path to be queried.", - "location": "query", - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "variableKey": { - "description": "Specifies the key for the guest attributes entry.", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "GuestAttributes" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified guest attributes entry." + } + } + } + }, + "PerInstanceConfig": { + "id": "PerInstanceConfig", + "type": "object", + "properties": { + "name": { + "description": "The name of a per-instance configuration and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configconfiguration for a VM instance that either doesn't exist or is not part of the group will result in an error.", + "type": "string" }, - "attachDisk": { - "id": "compute.instances.attachDisk", - "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", - "httpMethod": "POST", - "parameters": { - "forceAttach": { - "description": "Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", - "location": "query", - "type": "boolean" - }, - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "AttachedDisk" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance." + "preservedState": { + "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy.", + "$ref": "PreservedState" }, - "detachDisk": { - "id": "compute.instances.detachDisk", - "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", - "httpMethod": "POST", - "parameters": { - "deviceName": { - "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.", - "location": "query", - "required": true, - "type": "string" - }, - "instance": { - "description": "Instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "deviceName" + "status": { + "description": "The status of applying this per-instance configuration on the corresponding managed instance.", + "type": "string", + "enumDescriptions": [ + "The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration is effective on the instance, meaning that all disks, ips and metadata specified in this configuration are attached or set on the instance.", + "*[Default]* The default status, when no per-instance configuration exists.", + "The per-instance configuration is set on an instance but not been applied yet.", + "The per-instance configuration has been deleted, but the deletion is not yet applied." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "APPLYING", + "DELETING", + "EFFECTIVE", + "NONE", + "UNAPPLIED", + "UNAPPLIED_DELETION" + ] + }, + "fingerprint": { + "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.", + "type": "string", + "format": "byte" + } + } + }, + "InstanceGroupManagersUpdatePerInstanceConfigsReq": { + "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", + "description": "InstanceGroupManagers.updatePerInstanceConfigs", + "type": "object", + "properties": { + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + } + }, + "InstanceGroupManagersPatchPerInstanceConfigsReq": { + "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", + "description": "InstanceGroupManagers.patchPerInstanceConfigs", + "type": "object", + "properties": { + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + } + }, + "InstanceGroupManagersDeletePerInstanceConfigsReq": { + "id": "InstanceGroupManagersDeletePerInstanceConfigsReq", + "description": "InstanceGroupManagers.deletePerInstanceConfigs", + "type": "object", + "properties": { + "names": { + "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersApplyUpdatesRequest": { + "id": "InstanceGroupManagersApplyUpdatesRequest", + "description": "InstanceGroupManagers.applyUpdatesToInstances", + "type": "object", + "properties": { + "instances": { + "description": "The list of URLs of one or more instances for which you want to apply updates. Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } + }, + "minimalAction": { + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], - "description": "Detaches a disk from an instance." + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] }, - "setMachineResources": { - "id": "compute.instances.setMachineResources", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "mostDisruptiveAllowedAction": { + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], - "request": { - "$ref": "InstancesSetMachineResourcesRequest" - }, - "response": { - "$ref": "Operation" + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] + }, + "allInstances": { + "description": "Flag to update all instances instead of specified list of “instances”. If the flag is set to true then the instances may not be specified in the request.", + "type": "boolean" + } + } + }, + "InstanceGroupManagersCreateInstancesRequest": { + "id": "InstanceGroupManagersCreateInstancesRequest", + "description": "InstanceGroupManagers.createInstances", + "type": "object", + "properties": { + "instances": { + "description": "[Required] List of specifications of per-instance configs.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + } + }, + "InstanceGroupManagerResizeRequest": { + "id": "InstanceGroupManagerResizeRequest", + "description": "InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerResizeRequest for resize requests.", + "default": "compute#instanceGroupManagerResizeRequest", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this resize request in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instanceGroupManagerResizeRequests.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "zone": { + "description": "[Output Only] The URL of a zone where the resize request is located. Populated only for zonal resize requests.", + "type": "string" + }, + "resizeBy": { + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.", + "type": "integer", + "format": "int32" + }, + "requestedRunDuration": { + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted.", + "$ref": "Duration" + }, + "state": { + "description": "[Output only] Current state of the request.", + "type": "string", + "enumDescriptions": [ + "The request was created successfully and was accepted for provisioning when the capacity becomes available.", + "The request is cancelled.", + "Resize request is being created and may still fail creation.", + "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", + "Default value. This value should never be returned.", + "The request succeeded." ], - "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request." + "enum": [ + "ACCEPTED", + "CANCELLED", + "CREATING", + "FAILED", + "STATE_UNSPECIFIED", + "SUCCEEDED" + ] }, - "setMachineType": { - "id": "compute.instances.setMachineType", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "status": { + "description": "[Output only] Status of the request.", + "$ref": "InstanceGroupManagerResizeRequestStatus" + }, + "selfLink": { + "description": "[Output Only] The URL for this resize request. The server defines this URL.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + } + } + }, + "InstanceGroupManagerResizeRequestStatus": { + "id": "InstanceGroupManagerResizeRequestStatus", + "type": "object", + "properties": { + "error": { + "description": "[Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the last_attempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.", + "type": "object", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "type": "array", + "items": { + "type": "object", + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + } + } + } + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetMachineTypeRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the machine type for a stopped instance to the machine type specified in the request." + } }, - "setMetadata": { - "id": "compute.instances.setMetadata", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "lastAttempt": { + "description": "[Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only.", + "$ref": "InstanceGroupManagerResizeRequestStatusLastAttempt" + } + } + }, + "InstanceGroupManagerResizeRequestStatusLastAttempt": { + "id": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "type": "object", + "properties": { + "error": { + "description": "Errors that prevented the ResizeRequest to be fulfilled.", + "type": "object", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", + "type": "array", + "items": { + "type": "object", + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + } + } + } + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "Metadata" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets metadata for the specified instance to the data included in the request." + } + } + } + }, + "InstanceGroupManagerResizeRequestsListResponse": { + "id": "InstanceGroupManagerResizeRequestsListResponse", + "description": "[Output Only] A list of resize requests.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#instanceGroupManagerResizeRequestList for a list of resize requests.", + "default": "compute#instanceGroupManagerResizeRequestList", + "type": "string" }, - "setMinCpuPlatform": { - "id": "compute.instances.setMinCpuPlatform", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of resize request resources.", + "type": "array", + "items": { + "$ref": "InstanceGroupManagerResizeRequest" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetMinCpuPlatformRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform." + } + } + } + }, + "RegionInstanceGroupManagerList": { + "id": "RegionInstanceGroupManagerList", + "description": "Contains a list of managed instance groups.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope.", + "default": "compute#regionInstanceGroupManagerList", + "type": "string" }, - "setTags": { - "id": "compute.instances.setTags", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "Tags" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets network tags for the specified instance to the data included in the request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "setLabels": { - "id": "compute.instances.setLabels", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of InstanceGroupManager resources.", + "type": "array", + "items": { + "$ref": "InstanceGroupManager" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation." + } + } + } + }, + "RegionInstanceGroupManagersDeleteInstancesRequest": { + "id": "RegionInstanceGroupManagersDeleteInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } }, - "setName": { - "id": "compute.instances.setName", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setName", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "skipInstancesOnValidationError": { + "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", + "type": "boolean" + } + } + }, + "RegionInstanceGroupManagersAbandonInstancesRequest": { + "id": "RegionInstanceGroupManagersAbandonInstancesRequest", + "type": "object", + "properties": { + "instances": { + "description": "The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RegionInstanceGroupManagersRecreateRequest": { + "id": "RegionInstanceGroupManagersRecreateRequest", + "type": "object", + "properties": { + "instances": { + "description": "The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RegionInstanceGroupManagersSetTemplateRequest": { + "id": "RegionInstanceGroupManagersSetTemplateRequest", + "type": "object", + "properties": { + "instanceTemplate": { + "description": "URL of the InstanceTemplate resource from which all new instances will be created.", + "type": "string" + } + } + }, + "RegionInstanceGroupManagersSetTargetPoolsRequest": { + "id": "RegionInstanceGroupManagersSetTargetPoolsRequest", + "type": "object", + "properties": { + "targetPools": { + "description": "The URL of all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.", + "type": "array", + "items": { + "type": "string" + } + }, + "fingerprint": { + "description": "Fingerprint of the target pools information, which is a hash of the contents. This field is used for optimistic locking when you update the target pool entries. This field is optional.", + "type": "string", + "format": "byte" + } + } + }, + "RegionInstanceGroupManagersListInstancesResponse": { + "id": "RegionInstanceGroupManagersListInstancesResponse", + "type": "object", + "properties": { + "managedInstances": { + "description": "A list of managed instances.", + "type": "array", + "items": { + "$ref": "ManagedInstance" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + } + } + }, + "RegionInstanceGroupManagersListErrorsResponse": { + "id": "RegionInstanceGroupManagersListErrorsResponse", + "type": "object", + "properties": { + "items": { + "description": "[Output Only] The list of errors of the managed instance group.", + "type": "array", + "items": { + "$ref": "InstanceManagedByIgmError" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + } + } + }, + "RegionInstanceGroupManagersListInstanceConfigsResp": { + "id": "RegionInstanceGroupManagersListInstanceConfigsResp", + "type": "object", + "properties": { + "items": { + "description": "[Output Only] The list of PerInstanceConfig.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetNameRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets name of an instance." + } + } + } + }, + "RegionInstanceGroupManagerUpdateInstanceConfigReq": { + "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", + "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs", + "type": "object", + "properties": { + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + } + }, + "RegionInstanceGroupManagerPatchInstanceConfigReq": { + "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", + "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs", + "type": "object", + "properties": { + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + } + }, + "RegionInstanceGroupManagerDeleteInstanceConfigReq": { + "id": "RegionInstanceGroupManagerDeleteInstanceConfigReq", + "description": "RegionInstanceGroupManagers.deletePerInstanceConfigs", + "type": "object", + "properties": { + "names": { + "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RegionInstanceGroupManagersApplyUpdatesRequest": { + "id": "RegionInstanceGroupManagersApplyUpdatesRequest", + "description": "RegionInstanceGroupManagers.applyUpdatesToInstances", + "type": "object", + "properties": { + "instances": { + "description": "The list of URLs of one or more instances for which you want to apply updates. Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "type": "array", + "items": { + "type": "string" + } }, - "setDiskAutoDelete": { - "id": "compute.instances.setDiskAutoDelete", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "httpMethod": "POST", - "parameters": { - "autoDelete": { - "description": "Whether to auto-delete the disk when the instance is deleted.", - "location": "query", - "required": true, - "type": "boolean" - }, - "deviceName": { - "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.", - "pattern": "\\w[\\w.-]{0,254}", - "location": "query", - "required": true, - "type": "string" - }, - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "autoDelete", - "deviceName" + "minimalAction": { + "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] + }, + "mostDisruptiveAllowedAction": { + "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "type": "string", + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method option.", + "Stop the instance and start it again." ], - "description": "Sets the auto-delete flag for a disk attached to an instance." + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ] }, - "start": { - "id": "compute.instances.start", - "path": "projects/{project}/zones/{zone}/instances/{instance}/start", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance resource to start.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "allInstances": { + "description": "Flag to update all instances instead of specified list of “instances”. If the flag is set to true then the instances may not be specified in the request.", + "type": "boolean" + } + } + }, + "RegionInstanceGroupManagersCreateInstancesRequest": { + "id": "RegionInstanceGroupManagersCreateInstancesRequest", + "description": "RegionInstanceGroupManagers.createInstances", + "type": "object", + "properties": { + "instances": { + "description": "[Required] List of specifications of per-instance configs.", + "type": "array", + "items": { + "$ref": "PerInstanceConfig" + } + } + } + }, + "AutoscalerList": { + "id": "AutoscalerList", + "description": "Contains a list of Autoscaler resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#autoscalerList for lists of autoscalers.", + "default": "compute#autoscalerList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Autoscaler resources.", + "type": "array", + "items": { + "$ref": "Autoscaler" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "Autoscaler": { + "id": "Autoscaler", + "description": "Represents an Autoscaler resource. Google Compute Engine has two Autoscaler resources: * [Zonal](/compute/docs/reference/rest/v1/autoscalers) * [Regional](/compute/docs/reference/rest/v1/regionAutoscalers) Use autoscalers to automatically add or delete instances from a managed instance group according to your defined autoscaling policy. For more information, read Autoscaling Groups of Instances. For zonal managed instance groups resource, use the autoscaler resource. For regional managed instance groups, use the regionAutoscalers resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#autoscaler for autoscalers.", + "default": "compute#autoscaler", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.autoscalers.insert" + ] }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "target": { + "description": "URL of the managed instance group that this autoscaler will scale. This field is required when creating an autoscaler.", + "type": "string" + }, + "autoscalingPolicy": { + "description": "The configuration parameters for the autoscaling algorithm. You can define one or more signals for an autoscaler: cpuUtilization, customMetricUtilizations, and loadBalancingUtilization. If none of these are specified, the default will be to autoscale based on cpuUtilization to 0.6 or 60%.", + "$ref": "AutoscalingPolicy" + }, + "zone": { + "description": "[Output Only] URL of the zone where the instance group resides (for autoscalers living in zonal scope).", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the instance group resides (for autoscalers living in regional scope).", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the autoscaler configuration. Current set of possible values: - PENDING: Autoscaler backend hasn't read new/updated configuration. - DELETING: Configuration is being deleted. - ACTIVE: Configuration is acknowledged to be effective. Some warnings might be present in the statusDetails field. - ERROR: Configuration has errors. Actionable for users. Details are present in the statusDetails field. New values might be added in the future.", + "type": "string", + "enumDescriptions": [ + "Configuration is acknowledged to be effective", + "Configuration is being deleted", + "Configuration has errors. Actionable for users.", + "Autoscaler backend hasn't read new/updated configuration" ], - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance." + "enum": [ + "ACTIVE", + "DELETING", + "ERROR", + "PENDING" + ] + }, + "statusDetails": { + "description": "[Output Only] Human-readable details about the current state of the autoscaler. Read the documentation for Commonly returned status messages for examples of status messages you might encounter.", + "type": "array", + "items": { + "$ref": "AutoscalerStatusDetails" + } + }, + "recommendedSize": { + "description": "[Output Only] Target recommended MIG size (number of instances) computed by autoscaler. Autoscaler calculates the recommended MIG size even when the autoscaling policy mode is different from ON. This field is empty when autoscaler is not connected to an existing managed instance group or autoscaler did not generate its prediction.", + "type": "integer", + "format": "int32" + }, + "scalingScheduleStatus": { + "description": "[Output Only] Status information of existing scaling schedules.", + "type": "object", + "additionalProperties": { + "$ref": "ScalingScheduleStatus" + } + } + } + }, + "AutoscalingPolicy": { + "id": "AutoscalingPolicy", + "description": "Cloud Autoscaler policy.", + "type": "object", + "properties": { + "minNumReplicas": { + "description": "The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed.", + "type": "integer", + "format": "int32" + }, + "maxNumReplicas": { + "description": "The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas.", + "type": "integer", + "format": "int32" }, - "startWithEncryptionKey": { - "id": "compute.instances.startWithEncryptionKey", - "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance resource to start.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesStartWithEncryptionKeyRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "scaleInControl": { + "$ref": "AutoscalingPolicyScaleInControl" + }, + "coolDownPeriodSec": { + "description": "The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process.", + "type": "integer", + "format": "int32" + }, + "cpuUtilization": { + "description": "Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.", + "$ref": "AutoscalingPolicyCpuUtilization" + }, + "customMetricUtilizations": { + "description": "Configuration parameters of autoscaling based on a custom metric.", + "type": "array", + "items": { + "$ref": "AutoscalingPolicyCustomMetricUtilization" + } + }, + "loadBalancingUtilization": { + "description": "Configuration parameters of autoscaling based on load balancer.", + "$ref": "AutoscalingPolicyLoadBalancingUtilization" + }, + "mode": { + "description": "Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see \"Turning off or restricting an autoscaler\"", + "type": "string", + "enumDescriptions": [ + "Do not automatically scale the MIG in or out. The recommended_size field contains the size of MIG that would be set if the actuation mode was enabled.", + "Automatically scale the MIG in and out according to the policy.", + "Automatically create VMs according to the policy, but do not scale the MIG in.", + "Automatically create VMs according to the policy, but do not scale the MIG in." ], - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance." + "enum": [ + "OFF", + "ON", + "ONLY_SCALE_OUT", + "ONLY_UP" + ] }, - "stop": { - "id": "compute.instances.stop", - "path": "projects/{project}/zones/{zone}/instances/{instance}/stop", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop", - "httpMethod": "POST", - "parameters": { - "discardLocalSsd": { - "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", - "location": "query", - "type": "boolean" - }, - "instance": { - "description": "Name of the instance resource to stop.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "scalingSchedules": { + "description": "Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed.", + "type": "object", + "additionalProperties": { + "$ref": "AutoscalingPolicyScalingSchedule" + } + } + } + }, + "AutoscalingPolicyScaleInControl": { + "id": "AutoscalingPolicyScaleInControl", + "description": "Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below.", + "type": "object", + "properties": { + "maxScaledInReplicas": { + "description": "Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step.", + "$ref": "FixedOrPercent" + }, + "timeWindowSec": { + "description": "How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above.", + "type": "integer", + "format": "int32" + } + } + }, + "AutoscalingPolicyCpuUtilization": { + "id": "AutoscalingPolicyCpuUtilization", + "description": "CPU utilization policy.", + "type": "object", + "properties": { + "utilizationTarget": { + "description": "The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization.", + "type": "number", + "format": "double" + }, + "predictiveMethod": { + "description": "Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.", + "type": "string", + "enumDescriptions": [ + "No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics", + "Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NONE", + "OPTIMIZE_AVAILABILITY" + ] + } + } + }, + "AutoscalingPolicyCustomMetricUtilization": { + "id": "AutoscalingPolicyCustomMetricUtilization", + "description": "Custom utilization metric policy.", + "type": "object", + "properties": { + "metric": { + "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE.", + "type": "string" + }, + "filter": { + "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value.", + "type": "string" + }, + "utilizationTarget": { + "description": "The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances.", + "type": "number", + "format": "double" + }, + "singleInstanceAssignment": { + "description": "If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", + "type": "number", + "format": "double" + }, + "utilizationTargetType": { + "description": "Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.", + "type": "string", + "enumDescriptions": [ + "Sets the utilization target value for a cumulative or delta metric, expressed as the rate of growth per minute.", + "Sets the utilization target value for a cumulative or delta metric, expressed as the rate of growth per second.", + "Sets the utilization target value for a gauge metric. The autoscaler will collect the average utilization of the virtual machines from the last couple of minutes, and compare the value to the utilization target value to perform autoscaling." ], - "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance." + "enum": [ + "DELTA_PER_MINUTE", + "DELTA_PER_SECOND", + "GAUGE" + ] + } + } + }, + "AutoscalingPolicyLoadBalancingUtilization": { + "id": "AutoscalingPolicyLoadBalancingUtilization", + "description": "Configuration parameters of autoscaling based on load balancing.", + "type": "object", + "properties": { + "utilizationTarget": { + "description": "Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8.", + "type": "number", + "format": "double" + } + } + }, + "AutoscalingPolicyScalingSchedule": { + "id": "AutoscalingPolicyScalingSchedule", + "description": "Scaling based on user-defined schedule. The message describes a single scaling schedule. A scaling schedule changes the minimum number of VM instances an autoscaler can recommend, which can trigger scaling out.", + "type": "object", + "properties": { + "minRequiredReplicas": { + "description": "The minimum number of VM instances that the autoscaler will recommend in time intervals starting according to schedule. This field is required.", + "type": "integer", + "format": "int32" }, - "getIamPolicy": { - "id": "compute.instances.getIamPolicy", - "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" + "schedule": { + "description": "The start timestamps of time intervals when this scaling schedule is to provide a scaling signal. This field uses the extended cron format (with an optional year field). The expression can describe a single timestamp if the optional year is set, in which case the scaling schedule runs once. The schedule is interpreted with respect to time_zone. This field is required. Note: These timestamps only describe when autoscaler starts providing the scaling signal. The VMs need additional time to become serving.", + "type": "string" + }, + "timeZone": { + "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \"UTC\" if left empty.", + "type": "string" + }, + "durationSec": { + "description": "The duration of time intervals, in seconds, for which this scaling schedule is to run. The minimum allowed value is 300. This field is required.", + "type": "integer", + "format": "int32" + }, + "disabled": { + "description": "A boolean value that specifies whether a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect. This field is optional, and its value is false by default.", + "type": "boolean" + }, + "description": { + "description": "A description of a scaling schedule.", + "type": "string" + } + } + }, + "AutoscalerStatusDetails": { + "id": "AutoscalerStatusDetails", + "type": "object", + "properties": { + "message": { + "description": "The status message.", + "type": "string" + }, + "type": { + "description": "The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the \"Autoscale only out\" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions.", + "type": "string", + "enumDescriptions": [ + "All instances in the instance group are unhealthy (not in RUNNING state).", + "There is no backend service attached to the instance group.", + "Autoscaler recommends a size greater than maxNumReplicas.", + "The custom metric samples are not exported often enough to be a credible base for autoscaling.", + "The custom metric that was specified does not exist or does not have the necessary labels.", + "The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group.", + "The autoscaler did not receive any data from the custom metric configured for autoscaling.", + "The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer.", + "Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved.", + "Autoscaling is in the \"Autoscale only scale out\" mode. Instances in the group will be only added.", + "Autoscaling is in the \"Autoscale only out\" mode. Instances in the group will be only added.", + "The instance group cannot be autoscaled because it has more than one backend service attached to it.", + "There is insufficient quota for the necessary resources, such as CPU or number of instances.", + "Showed only for regional autoscalers: there is a resource stockout in the chosen region.", + "The target to be scaled does not exist.", + "For some scaling schedules minRequiredReplicas is greater than maxNumReplicas. Autoscaler always recommends at most maxNumReplicas instances.", + "For some scaling schedules minRequiredReplicas is less than minNumReplicas. Autoscaler always recommends at least minNumReplicas instances.", + "", + "Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate.", + "For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout." ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "ALL_INSTANCES_UNHEALTHY", + "BACKEND_SERVICE_DOES_NOT_EXIST", + "CAPPED_AT_MAX_NUM_REPLICAS", + "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE", + "CUSTOM_METRIC_INVALID", + "MIN_EQUALS_MAX", + "MISSING_CUSTOM_METRIC_DATA_POINTS", + "MISSING_LOAD_BALANCING_DATA_POINTS", + "MODE_OFF", + "MODE_ONLY_SCALE_OUT", + "MODE_ONLY_UP", + "MORE_THAN_ONE_BACKEND_SERVICE", + "NOT_ENOUGH_QUOTA_AVAILABLE", + "REGION_RESOURCE_STOCKOUT", + "SCALING_TARGET_DOES_NOT_EXIST", + "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX", + "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN", + "UNKNOWN", + "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION", + "ZONE_RESOURCE_STOCKOUT" + ] + } + } + }, + "ScalingScheduleStatus": { + "id": "ScalingScheduleStatus", + "type": "object", + "properties": { + "nextStartTime": { + "description": "[Output Only] The next time the scaling schedule is to become active. Note: this is a timestamp when a schedule is planned to run, but the actual time might be slightly different. The timestamp is in RFC3339 text format.", + "type": "string" + }, + "lastStartTime": { + "description": "[Output Only] The last time the scaling schedule became active. Note: this is a timestamp when a schedule actually became active, not when it was planned to do so. The timestamp is in RFC3339 text format.", + "type": "string" + }, + "state": { + "description": "[Output Only] The current state of a scaling schedule.", + "type": "string", + "enumDescriptions": [ + "The current autoscaling recommendation is influenced by this scaling schedule.", + "This scaling schedule has been disabled by the user.", + "This scaling schedule will never become active again.", + "The current autoscaling recommendation is not influenced by this scaling schedule." ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "enum": [ + "ACTIVE", + "DISABLED", + "OBSOLETE", + "READY" + ] + } + } + }, + "AutoscalerAggregatedList": { + "id": "AutoscalerAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#autoscalerAggregatedList for aggregated lists of autoscalers.", + "default": "compute#autoscalerAggregatedList", + "type": "string" }, - "setIamPolicy": { - "id": "compute.instances.setIamPolicy", - "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of AutoscalersScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of autoscalers.", + "$ref": "AutoscalersScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + } }, - "testIamPermissions": { - "id": "compute.instances.testIamPermissions", - "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AutoscalersScopedList": { + "id": "AutoscalersScopedList", + "type": "object", + "properties": { + "autoscalers": { + "description": "[Output Only] A list of autoscalers contained in this scope.", + "type": "array", + "items": { + "$ref": "Autoscaler" + } }, - "setServiceAccount": { - "id": "compute.instances.setServiceAccount", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance resource to start.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning which replaces the list of autoscalers when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetServiceAccountRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance." + } + } + } + }, + "RegionAutoscalerList": { + "id": "RegionAutoscalerList", + "description": "Contains a list of autoscalers.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#regionAutoscalerList", + "type": "string" }, - "setDeletionProtection": { - "id": "compute.instances.setDeletionProtection", - "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "httpMethod": "POST", - "parameters": { - "deletionProtection": { - "description": "Whether the resource should be protected against deletion.", - "default": "true", - "location": "query", - "type": "boolean" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets deletion protection on the instance." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "suspend": { - "id": "compute.instances.suspend", - "path": "projects/{project}/zones/{zone}/instances/{instance}/suspend", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/suspend", - "httpMethod": "POST", - "parameters": { - "discardLocalSsd": { - "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", - "location": "query", - "type": "boolean" - }, - "instance": { - "description": "Name of the instance resource to suspend.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances have no compute costs (cores or RAM), and incur only storage charges for the saved VM memory and localSSD data. Any charged resources the virtual machine was using, such as persistent disks and static IP addresses, will continue to be charged while the instance is suspended. For more information, see Suspending and resuming an instance." + "items": { + "description": "A list of Autoscaler resources.", + "type": "array", + "items": { + "$ref": "Autoscaler" + } }, - "resume": { - "id": "compute.instances.resume", - "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the instance resource to resume.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Resumes an instance that was suspended using the instances().suspend method." + } + } + } + }, + "BackendBucketList": { + "id": "BackendBucketList", + "description": "Contains a list of BackendBucket resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#backendBucketList", + "type": "string" }, - "addResourcePolicies": { - "id": "compute.instances.addResourcePolicies", - "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendBucket resources.", + "type": "array", + "items": { + "$ref": "BackendBucket" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + } + } + } + }, + "BackendBucket": { + "id": "BackendBucket", + "description": "Represents a Cloud Storage Bucket resource. This Cloud Storage bucket resource is referenced by a URL map of a load balancer. For more information, read Backend Buckets.", + "type": "object", + "properties": { + "kind": { + "description": "Type of the resource.", + "default": "compute#backendBucket", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional textual description of the resource; provided by the client when the resource is created.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "bucketName": { + "description": "Cloud Storage bucket name.", + "type": "string" + }, + "enableCdn": { + "description": "If true, enable Cloud CDN for this BackendBucket.", + "type": "boolean" + }, + "cdnPolicy": { + "description": "Cloud CDN configuration for this BackendBucket.", + "$ref": "BackendBucketCdnPolicy" + }, + "customResponseHeaders": { + "description": "Headers that the Application Load Balancer should add to proxied responses.", + "type": "array", + "items": { + "type": "string" + } + }, + "edgeSecurityPolicy": { + "description": "[Output Only] The resource URL for the edge security policy associated with this backend bucket.", + "type": "string" + }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "type": "string", + "enumDescriptions": [ + "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", + "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." ], - "request": { - "$ref": "InstancesAddResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "AUTOMATIC", + "DISABLED" + ] + } + } + }, + "BackendBucketCdnPolicy": { + "id": "BackendBucketCdnPolicy", + "description": "Message containing Cloud CDN configuration for a backend bucket.", + "type": "object", + "properties": { + "signedUrlKeyNames": { + "description": "[Output Only] Names of the keys for signing request URLs.", + "type": "array", + "items": { + "type": "string" + } + }, + "signedUrlCacheMaxAgeSec": { + "description": "Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a \"Cache-Control: public, max-age=[TTL]\" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.", + "type": "string", + "format": "int64" + }, + "requestCoalescing": { + "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.", + "type": "boolean" + }, + "cacheMode": { + "description": "Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", + "type": "string", + "enumDescriptions": [ + "Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", + "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.", + "", + "Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server." ], - "description": "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." + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "INVALID_CACHE_MODE", + "USE_ORIGIN_HEADERS" + ] + }, + "defaultTtl": { + "description": "Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of \"0\" means \"always revalidate\". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. 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.", + "type": "integer", + "format": "int32" + }, + "maxTtl": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "clientTtl": { + "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a \"public\" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a \"public\" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year).", + "type": "integer", + "format": "int32" + }, + "negativeCaching": { + "description": "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.", + "type": "boolean" + }, + "negativeCachingPolicy": { + "description": "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.", + "type": "array", + "items": { + "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy" + } + }, + "bypassCacheOnRequestHeaders": { + "description": "Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.", + "type": "array", + "items": { + "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader" + } + }, + "serveWhileStale": { + "description": "Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default \"max-stale\" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.", + "type": "integer", + "format": "int32" + }, + "cacheKeyPolicy": { + "description": "The CacheKeyPolicy for this CdnPolicy.", + "$ref": "BackendBucketCdnPolicyCacheKeyPolicy" + } + } + }, + "BackendBucketCdnPolicyNegativeCachingPolicy": { + "id": "BackendBucketCdnPolicyNegativeCachingPolicy", + "description": "Specify CDN TTLs for response error codes.", + "type": "object", + "properties": { + "code": { + "description": "The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once.", + "type": "integer", + "format": "int32" + }, + "ttl": { + "description": "The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", + "type": "integer", + "format": "int32" + } + } + }, + "BackendBucketCdnPolicyBypassCacheOnRequestHeader": { + "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader", + "description": "Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting.", + "type": "object", + "properties": { + "headerName": { + "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", + "type": "string" + } + } + }, + "BackendBucketCdnPolicyCacheKeyPolicy": { + "id": "BackendBucketCdnPolicyCacheKeyPolicy", + "description": "Message containing what to include in the cache key for a request for Cloud CDN.", + "type": "object", + "properties": { + "queryStringWhitelist": { + "description": "Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters.", + "type": "array", + "items": { + "type": "string" + } + }, + "includeHttpHeaders": { + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SignedUrlKey": { + "id": "SignedUrlKey", + "description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs", + "type": "object", + "properties": { + "keyName": { + "description": "Name of the key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "keyValue": { + "description": "128-bit key value used for signing the URL. The key value must be a valid RFC 4648 Section 5 base64url encoded string.", + "type": "string" + } + } + }, + "SecurityPolicyReference": { + "id": "SecurityPolicyReference", + "type": "object", + "properties": { + "securityPolicy": { + "type": "string" + } + } + }, + "BackendServiceList": { + "id": "BackendServiceList", + "description": "Contains a list of BackendService resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#backendServiceList for lists of backend services.", + "default": "compute#backendServiceList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "type": "array", + "items": { + "$ref": "BackendService" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "removeResourcePolicies": { - "id": "compute.instances.removeResourcePolicies", - "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "The instance name for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesRemoveResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes resource policies from an instance." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "update": { - "id": "compute.instances.update", - "path": "projects/{project}/zones/{zone}/instances/{instance}", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", - "httpMethod": "PUT", - "parameters": { - "instance": { - "description": "Name of the instance resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "minimalAction": { - "description": "Specifies the action to take when updating an instance even if the updated properties do not require it. If not specified, then Compute Engine acts based on the minimum action that the updated properties require.", - "location": "query", + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", "enumDescriptions": [ - "", - "No changes can be made to the instance.", - "The instance will not restart.", - "The instance will restart." + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." ], - "enum": [ - "INVALID", - "NO_EFFECT", - "REFRESH", - "RESTART" - ] - }, - "mostDisruptiveAllowedAction": { - "description": "Specifies the most disruptive action that can be taken on the instance as part of the update. Compute Engine returns an error if the instance properties require a more disruptive action as part of the instance update. Valid options from lowest to highest are NO_EFFECT, REFRESH, and RESTART.", - "location": "query", - "type": "string", - "enumDescriptions": [ - "", - "No changes can be made to the instance.", - "The instance will not restart.", - "The instance will restart." + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enum": [ - "INVALID", - "NO_EFFECT", - "REFRESH", - "RESTART" + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "Instance" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates an instance only if the necessary resources are available. This method can update only a specific set of instance properties. See Updating a running instance for a list of updatable instance properties." + } + } + } + }, + "BackendService": { + "id": "BackendService", + "description": "Represents a Backend Service resource. A backend service defines how Google Cloud load balancers distribute traffic. The backend service configuration contains a set of values, such as the protocol used to connect to backends, various distribution and session settings, health checks, and timeouts. These settings provide fine-grained control over how your load balancer behaves. Most of the settings have default values that allow for easy configuration if you need to get started quickly. Backend services in Google Compute Engine can be either regionally or globally scoped. * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices) For more information, see Backend Services.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#backendService for backend services.", + "default": "compute#backendService", + "type": "string" }, - "updateShieldedInstanceConfig": { - "id": "compute.instances.updateShieldedInstanceConfig", - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", - "httpMethod": "PATCH", - "parameters": { - "instance": { - "description": "Name or id of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "ShieldedInstanceConfig" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the Shielded Instance config for an instance. You can only use this method on a stopped instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "updateDisplayDevice": { - "id": "compute.instances.updateDisplayDevice", - "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", - "httpMethod": "PATCH", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "DisplayDevice" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "backends": { + "description": "The list of backends that serve this BackendService.", + "type": "array", + "items": { + "$ref": "Backend" + } + }, + "healthChecks": { + "description": "The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.", + "type": "array", + "items": { + "type": "string" + } + }, + "timeoutSec": { + "description": "The backend service timeout has a different meaning depending on the type of load balancer. For more information see, Backend service settings. The default is 30 seconds. The full range of timeout values allowed goes from 1 through 2,147,483,647 seconds. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. Instead, use maxStreamDuration.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port.", + "deprecated": true, + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.", + "type": "string", + "enumDescriptions": [ + "gRPC (available for Traffic Director).", + "", + "HTTP/2 with SSL.", + "", + "TCP proxying with SSL.", + "TCP proxying or TCP pass-through.", + "UDP.", + "If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules." ], - "description": "Updates the Display config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "enum": [ + "GRPC", + "HTTP", + "HTTP2", + "HTTPS", + "SSL", + "TCP", + "UDP", + "UNSPECIFIED" + ] }, - "setShieldedInstanceIntegrityPolicy": { - "id": "compute.instances.setShieldedInstanceIntegrityPolicy", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", - "httpMethod": "PATCH", - "parameters": { - "instance": { - "description": "Name or id of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a BackendService.", + "type": "string", + "format": "byte" + }, + "portName": { + "description": "A named port on a backend instance group representing the port for communication to the backend VMs in that group. The named port must be [defined on each backend instance group](https://cloud.google.com/load-balancing/docs/backend-service#named_ports). This parameter has no meaning if the backends are NEGs. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port_name.", + "type": "string" + }, + "enableCDN": { + "description": "If true, enables Cloud CDN for the backend service of a global external Application Load Balancer.", + "type": "boolean" + }, + "sessionAffinity": { + "description": "Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).", + "type": "string", + "enumDescriptions": [ + "2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.", + "1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.", + "5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", + "3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", + "Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.", + "The hash is based on a user specified header field.", + "The hash is based on a user provided cookie.", + "No session affinity. Connections from the same client IP may go to any instance in the pool." ], - "request": { - "$ref": "ShieldedInstanceIntegrityPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "CLIENT_IP", + "CLIENT_IP_NO_DESTINATION", + "CLIENT_IP_PORT_PROTO", + "CLIENT_IP_PROTO", + "GENERATED_COOKIE", + "HEADER_FIELD", + "HTTP_COOKIE", + "NONE" + ] + }, + "affinityCookieTtlSec": { + "description": "Lifetime of cookies in seconds. This setting is applicable to Application Load Balancers and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value is two weeks (1,209,600). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "type": "integer", + "format": "int32" + }, + "region": { + "description": "[Output Only] URL of the region where the regional backend service resides. This field is not applicable to global backend services. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "failoverPolicy": { + "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).", + "$ref": "BackendServiceFailoverPolicy" + }, + "loadBalancingScheme": { + "description": "Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.", + "type": "string", + "enumDescriptions": [ + "Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.", + "Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.", + "Signifies that this will be used for internal passthrough Network Load Balancers.", + "Signifies that this will be used for internal Application Load Balancers.", + "Signifies that this will be used by Traffic Director.", + "" ], - "description": "Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL", + "INTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED", + "INVALID_LOAD_BALANCING_SCHEME" + ] }, - "setSecurityPolicy": { - "id": "compute.instances.setSecurityPolicy", - "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "instance": { - "description": "Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "request": { - "$ref": "InstancesSetSecurityPolicyRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "connectionDraining": { + "$ref": "ConnectionDraining" + }, + "iap": { + "description": "The configurations for Identity-Aware Proxy on this resource. Not available for internal passthrough Network Load Balancers and external passthrough Network Load Balancers.", + "$ref": "BackendServiceIAP" + }, + "cdnPolicy": { + "description": "Cloud CDN configuration for this BackendService. Only available for specified load balancer types.", + "$ref": "BackendServiceCdnPolicy" + }, + "customRequestHeaders": { + "description": "Headers that the load balancer adds to proxied requests. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", + "type": "array", + "items": { + "type": "string" + } + }, + "customResponseHeaders": { + "description": "Headers that the load balancer adds to proxied responses. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", + "type": "array", + "items": { + "type": "string" + } + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this backend service.", + "type": "string" + }, + "edgeSecurityPolicy": { + "description": "[Output Only] The resource URL for the edge security policy associated with this backend service.", + "type": "string" + }, + "logConfig": { + "description": "This field denotes the logging options for the load balancer traffic served by this backend service. If logging is enabled, logs will be exported to Stackdriver.", + "$ref": "BackendServiceLogConfig" + }, + "securitySettings": { + "description": "This field specifies the security settings that apply to this backend service. This field is applicable to a global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED.", + "$ref": "SecuritySettings" + }, + "localityLbPolicy": { + "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "type": "string", + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", + "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", + "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." ], - "description": "Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview" + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN", + "WEIGHTED_MAGLEV" + ] }, - "getShieldedInstanceIdentity": { - "id": "compute.instances.getShieldedInstanceIdentity", - "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity", - "httpMethod": "GET", - "parameters": { - "instance": { - "description": "Name or id of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance" + "consistentHash": { + "description": "Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. ", + "$ref": "ConsistentHashLoadBalancerSettings" + }, + "circuitBreakers": { + "$ref": "CircuitBreakers" + }, + "outlierDetection": { + "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "OutlierDetection" + }, + "network": { + "description": "The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.", + "type": "string" + }, + "subsetting": { + "$ref": "Subsetting" + }, + "connectionTrackingPolicy": { + "description": "Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for external passthrough Network Load Balancers and internal passthrough Network Load Balancers.", + "$ref": "BackendServiceConnectionTrackingPolicy" + }, + "maxStreamDuration": { + "description": "Specifies the default maximum duration (timeout) for streams to this service. Duration is computed from the beginning of the stream until the response has been completely processed, including all retries. A stream that does not complete in this duration is closed. If not specified, there will be no timeout limit, i.e. the maximum duration is infinite. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. This field is only allowed when the loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED.", + "$ref": "Duration" + }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "type": "string", + "enumDescriptions": [ + "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", + "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." ], - "response": { - "$ref": "ShieldedInstanceIdentity" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "AUTOMATIC", + "DISABLED" + ] + }, + "serviceLbPolicy": { + "description": "URL to networkservices.ServiceLbPolicy resource. Can only be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global.", + "type": "string" + }, + "serviceBindings": { + "description": "URLs of networkservices.ServiceBinding resources. Can only be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and health checks must be both empty.", + "type": "array", + "items": { + "type": "string" + } + }, + "localityLbPolicies": { + "description": "A list of locality load-balancing policies to be used in order of preference. When you use localityLbPolicies, you must set at least one value for either the localityLbPolicies[].policy or the localityLbPolicies[].customPolicy field. localityLbPolicies overrides any value set in the localityLbPolicy field. For an example of how to use this field, see Define a list of preferred policies. Caution: This field and its children are intended for use in a service mesh that includes gRPC clients only. Envoy proxies can't use backend services that have this configuration.", + "type": "array", + "items": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" + } + }, + "metadatas": { + "description": "Deployment metadata associated with the resource to be set by a GKE hub controller and read by the backend RCTH", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "usedBy": { + "type": "array", + "items": { + "$ref": "BackendServiceUsedBy" + } + } + } + }, + "Backend": { + "id": "Backend", + "description": "Message containing information of one individual backend.", + "type": "object", + "properties": { + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "group": { + "description": "The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.", + "type": "string" + }, + "balancingMode": { + "description": "Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected.", + "type": "string", + "enumDescriptions": [ + "Balance based on the number of simultaneous connections.", + "Balance based on requests per second (RPS).", + "Balance based on the backend utilization." ], - "description": "Returns the Shielded Instance Identity of an instance" + "enum": [ + "CONNECTION", + "RATE", + "UTILIZATION" + ] }, - "bulkInsert": { - "id": "compute.instances.bulkInsert", - "path": "projects/{project}/zones/{zone}/instances/bulkInsert", - "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" + "maxUtilization": { + "description": "Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", + "type": "number", + "format": "float" + }, + "maxRate": { + "description": "Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", + "type": "integer", + "format": "int32" + }, + "maxRatePerInstance": { + "description": "Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", + "type": "number", + "format": "float" + }, + "maxRatePerEndpoint": { + "description": "Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", + "type": "number", + "format": "float" + }, + "maxConnections": { + "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", + "type": "integer", + "format": "int32" + }, + "maxConnectionsPerInstance": { + "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", + "type": "integer", + "format": "int32" + }, + "maxConnectionsPerEndpoint": { + "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", + "type": "integer", + "format": "int32" + }, + "capacityScaler": { + "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs.", + "type": "number", + "format": "float" + }, + "failover": { + "description": "This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.", + "type": "boolean" + }, + "preference": { + "description": "This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default ", + "type": "string", + "enumDescriptions": [ + "No preference.", + "If preference is unspecified, we set it to the DEFAULT value", + "Traffic will be sent to this backend first." ], - "request": { - "$ref": "BulkInsertInstanceResource" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "DEFAULT", + "PREFERENCE_UNSPECIFIED", + "PREFERRED" + ] + } + } + }, + "BackendServiceFailoverPolicy": { + "id": "BackendServiceFailoverPolicy", + "description": "For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes).", + "type": "object", + "properties": { + "disableConnectionDrainOnFailover": { + "description": "This can be set to true only if the protocol is TCP. The default is false.", + "type": "boolean" + }, + "dropTrafficIfUnhealthy": { + "description": "If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false.", + "type": "boolean" + }, + "failoverRatio": { + "description": "The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).", + "type": "number", + "format": "float" + } + } + }, + "ConnectionDraining": { + "id": "ConnectionDraining", + "description": "Message containing connection draining configuration.", + "type": "object", + "properties": { + "drainingTimeoutSec": { + "description": "Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.", + "type": "integer", + "format": "int32" + } + } + }, + "BackendServiceIAP": { + "id": "BackendServiceIAP", + "description": "Identity-Aware Proxy", + "type": "object", + "properties": { + "enabled": { + "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.", + "type": "boolean" + }, + "oauth2ClientId": { + "description": "OAuth2 client ID to use for the authentication flow.", + "type": "string" + }, + "oauth2ClientSecret": { + "description": "OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly", + "type": "string" + }, + "oauth2ClientSecretSha256": { + "description": "[Output Only] SHA256 hash value for the field oauth2_client_secret above.", + "type": "string" + } + } + }, + "BackendServiceCdnPolicy": { + "id": "BackendServiceCdnPolicy", + "description": "Message containing Cloud CDN configuration for a backend service.", + "type": "object", + "properties": { + "cacheKeyPolicy": { + "description": "The CacheKeyPolicy for this CdnPolicy.", + "$ref": "CacheKeyPolicy" + }, + "signedUrlKeyNames": { + "description": "[Output Only] Names of the keys for signing request URLs.", + "type": "array", + "items": { + "type": "string" + } + }, + "signedUrlCacheMaxAgeSec": { + "description": "Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a \"Cache-Control: public, max-age=[TTL]\" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.", + "type": "string", + "format": "int64" + }, + "requestCoalescing": { + "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.", + "type": "boolean" + }, + "cacheMode": { + "description": "Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", + "type": "string", + "enumDescriptions": [ + "Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", + "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.", + "", + "Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server." ], - "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs." + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "INVALID_CACHE_MODE", + "USE_ORIGIN_HEADERS" + ] + }, + "defaultTtl": { + "description": "Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of \"0\" means \"always revalidate\". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. 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.", + "type": "integer", + "format": "int32" + }, + "maxTtl": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "clientTtl": { + "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a \"public\" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a \"public\" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year).", + "type": "integer", + "format": "int32" + }, + "negativeCaching": { + "description": "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.", + "type": "boolean" + }, + "negativeCachingPolicy": { + "description": "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.", + "type": "array", + "items": { + "$ref": "BackendServiceCdnPolicyNegativeCachingPolicy" + } + }, + "bypassCacheOnRequestHeaders": { + "description": "Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.", + "type": "array", + "items": { + "$ref": "BackendServiceCdnPolicyBypassCacheOnRequestHeader" + } + }, + "serveWhileStale": { + "description": "Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default \"max-stale\" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.", + "type": "integer", + "format": "int32" + } + } + }, + "CacheKeyPolicy": { + "id": "CacheKeyPolicy", + "description": "Message containing what to include in the cache key for a request for Cloud CDN.", + "type": "object", + "properties": { + "includeProtocol": { + "description": "If true, http and https requests will be cached separately.", + "type": "boolean" + }, + "includeHost": { + "description": "If true, requests to different hosts will be cached separately.", + "type": "boolean" + }, + "includeQueryString": { + "description": "If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.", + "type": "boolean" + }, + "queryStringWhitelist": { + "description": "Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.", + "type": "array", + "items": { + "type": "string" + } + }, + "queryStringBlacklist": { + "description": "Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.", + "type": "array", + "items": { + "type": "string" + } }, - "getEffectiveFirewalls": { - "id": "compute.instances.getEffectiveFirewalls", - "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls", - "httpMethod": "GET", - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "networkInterface": { - "description": "The name of the network interface to get the effective firewalls.", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instance", - "networkInterface" - ], - "response": { - "$ref": "InstancesGetEffectiveFirewallsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns effective firewalls applied to an interface of the instance." + "includeHttpHeaders": { + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "type": "array", + "items": { + "type": "string" + } + }, + "includeNamedCookies": { + "description": "Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates.", + "type": "array", + "items": { + "type": "string" + } } } }, - "regionInstances": { - "methods": { - "bulkInsert": { - "id": "compute.regionInstances.bulkInsert", - "path": "projects/{project}/regions/{region}/instances/bulkInsert", - "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "BulkInsertInstanceResource" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates multiple instances in a given region. Count specifies the number of instances to create." + "BackendServiceCdnPolicyNegativeCachingPolicy": { + "id": "BackendServiceCdnPolicyNegativeCachingPolicy", + "description": "Specify CDN TTLs for response error codes.", + "type": "object", + "properties": { + "code": { + "description": "The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once.", + "type": "integer", + "format": "int32" + }, + "ttl": { + "description": "The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", + "type": "integer", + "format": "int32" } } }, - "reservations": { - "methods": { - "list": { - "id": "compute.reservations.list", - "path": "projects/{project}/zones/{zone}/reservations", - "flatPath": "projects/{project}/zones/{zone}/reservations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "ReservationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "A list of all the reservations that have been configured for the specified project in specified zone." + "BackendServiceCdnPolicyBypassCacheOnRequestHeader": { + "id": "BackendServiceCdnPolicyBypassCacheOnRequestHeader", + "description": "Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting.", + "type": "object", + "properties": { + "headerName": { + "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", + "type": "string" + } + } + }, + "BackendServiceLogConfig": { + "id": "BackendServiceLogConfig", + "description": "The available logging options for the load balancer traffic served by this backend service.", + "type": "object", + "properties": { + "enable": { + "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", + "type": "boolean" }, - "aggregatedList": { - "id": "compute.reservations.aggregatedList", - "path": "projects/{project}/aggregated/reservations", - "flatPath": "projects/{project}/aggregated/reservations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ReservationAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of reservations." + "sampleRate": { + "description": "This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.", + "type": "number", + "format": "float" }, - "get": { - "id": "compute.reservations.get", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "reservation": { - "description": "Name of the reservation to retrieve.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "reservation" - ], - "response": { - "$ref": "Reservation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "optionalMode": { + "description": "This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", + "type": "string", + "enumDescriptions": [ + "A subset of optional fields.", + "None optional fields.", + "All optional fields." ], - "description": "Retrieves information about the specified reservation." + "enum": [ + "CUSTOM", + "EXCLUDE_ALL_OPTIONAL", + "INCLUDE_ALL_OPTIONAL" + ] }, - "insert": { - "id": "compute.reservations.insert", - "path": "projects/{project}/zones/{zone}/reservations", - "flatPath": "projects/{project}/zones/{zone}/reservations", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "Reservation" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new reservation. For more information, read Reserving zonal resources." + "optionalFields": { + "description": "This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SecuritySettings": { + "id": "SecuritySettings", + "description": "The authentication and authorization settings for a BackendService.", + "type": "object", + "properties": { + "clientTlsPolicy": { + "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.", + "type": "string" }, - "delete": { - "id": "compute.reservations.delete", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "reservation": { - "description": "Name of the reservation to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "reservation" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified reservation." + "subjectAltNames": { + "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode).", + "type": "array", + "items": { + "type": "string" + } }, - "resize": { - "id": "compute.reservations.resize", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "reservation": { - "description": "Name of the reservation to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "reservation" - ], - "request": { - "$ref": "ReservationsResizeRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations." + "awsV4Authentication": { + "description": "The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.", + "$ref": "AWSV4Signature" + } + } + }, + "AWSV4Signature": { + "id": "AWSV4Signature", + "description": "Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'.", + "type": "object", + "properties": { + "accessKeyId": { + "description": "The identifier of an access key used for s3 bucket authentication.", + "type": "string" + }, + "accessKey": { + "description": "The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly", + "type": "string" + }, + "accessKeyVersion": { + "description": "The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.", + "type": "string" + }, + "originRegion": { + "description": "The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, \"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.", + "type": "string" + } + } + }, + "ConsistentHashLoadBalancerSettings": { + "id": "ConsistentHashLoadBalancerSettings", + "description": "This message defines settings for a consistent hash style load balancer.", + "type": "object", + "properties": { + "httpCookie": { + "description": "Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "ConsistentHashLoadBalancerSettingsHttpCookie" }, - "update": { - "id": "compute.reservations.update", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "httpMethod": "PATCH", - "parameters": { - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "reservation": { - "description": "Name of the reservation to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Update_mask indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "reservation" - ], - "request": { - "$ref": "Reservation" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Update share settings of the reservation." + "httpHeaderName": { + "description": "The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD.", + "type": "string" }, - "getIamPolicy": { - "id": "compute.reservations.getIamPolicy", - "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "minimumRingSize": { + "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node.", + "type": "string", + "format": "int64" + } + } + }, + "ConsistentHashLoadBalancerSettingsHttpCookie": { + "id": "ConsistentHashLoadBalancerSettingsHttpCookie", + "description": "The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash.", + "type": "object", + "properties": { + "name": { + "description": "Name of the cookie.", + "type": "string" }, - "setIamPolicy": { - "id": "compute.reservations.setIamPolicy", - "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "path": { + "description": "Path to set for the cookie.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.reservations.testIamPermissions", - "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "ttl": { + "description": "Lifetime of the cookie.", + "$ref": "Duration" } } }, - "instanceGroups": { - "methods": { - "list": { - "id": "compute.instanceGroups.list", - "path": "projects/{project}/zones/{zone}/instanceGroups", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "InstanceGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of zonal instance group resources contained within the specified zone. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead." + "CircuitBreakers": { + "id": "CircuitBreakers", + "description": "Settings controlling the volume of requests, connections and retries to this backend service.", + "type": "object", + "properties": { + "maxRequestsPerConnection": { + "description": "Maximum requests for a single connection to the backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "type": "integer", + "format": "int32" }, - "aggregatedList": { - "id": "compute.instanceGroups.aggregatedList", - "path": "projects/{project}/aggregated/instanceGroups", - "flatPath": "projects/{project}/aggregated/instanceGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InstanceGroupAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of instance groups and sorts them by zone." + "maxConnections": { + "description": "The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "type": "integer", + "format": "int32" }, - "get": { - "id": "compute.instanceGroups.get", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "httpMethod": "GET", - "parameters": { - "instanceGroup": { - "description": "The name of the instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "response": { - "$ref": "InstanceGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead." + "maxPendingRequests": { + "description": "The maximum number of pending requests allowed to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "type": "integer", + "format": "int32" }, - "insert": { - "id": "compute.instanceGroups.insert", - "path": "projects/{project}/zones/{zone}/instanceGroups", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where you want to create the instance group.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "InstanceGroup" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an instance group in the specified project using the parameters that are included in the request." + "maxRequests": { + "description": "The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit.", + "type": "integer", + "format": "int32" + }, + "maxRetries": { + "description": "The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "type": "integer", + "format": "int32" + } + } + }, + "OutlierDetection": { + "id": "OutlierDetection", + "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.", + "type": "object", + "properties": { + "consecutiveErrors": { + "description": "Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", + "type": "integer", + "format": "int32" + }, + "interval": { + "description": "Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second.", + "$ref": "Duration" + }, + "baseEjectionTime": { + "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s.", + "$ref": "Duration" + }, + "maxEjectionPercent": { + "description": "Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%.", + "type": "integer", + "format": "int32" + }, + "enforcingConsecutiveErrors": { + "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.", + "type": "integer", + "format": "int32" + }, + "enforcingSuccessRate": { + "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG.", + "type": "integer", + "format": "int32" + }, + "successRateMinimumHosts": { + "description": "The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.", + "type": "integer", + "format": "int32" + }, + "successRateRequestVolume": { + "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG.", + "type": "integer", + "format": "int32" + }, + "successRateStdevFactor": { + "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG.", + "type": "integer", + "format": "int32" + }, + "consecutiveGatewayFailure": { + "description": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3.", + "type": "integer", + "format": "int32" }, - "delete": { - "id": "compute.instanceGroups.delete", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "httpMethod": "DELETE", - "parameters": { - "instanceGroup": { - "description": "The name of the instance group to delete.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" + "enforcingConsecutiveGatewayFailure": { + "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", + "type": "integer", + "format": "int32" + } + } + }, + "Subsetting": { + "id": "Subsetting", + "description": "Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director.", + "type": "object", + "properties": { + "policy": { + "type": "string", + "enumDescriptions": [ + "Subsetting based on consistent hashing. For Traffic Director, the number of backends per backend group (the subset size) is based on the `subset_size` parameter. For Internal HTTP(S) load balancing, the number of backends per backend group (the subset size) is dynamically adjusted in two cases: - As the number of proxy instances participating in Internal HTTP(S) load balancing increases, the subset size decreases. - When the total number of backends in a network exceeds the capacity of a single proxy instance, subset sizes are reduced automatically for each service that has backend subsetting enabled.", + "No Subsetting. Clients may open connections and send traffic to all backends of this backend service. This can lead to performance issues if there is substantial imbalance in the count of clients and backends." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "CONSISTENT_HASH_SUBSETTING", + "NONE" + ] + } + } + }, + "BackendServiceConnectionTrackingPolicy": { + "id": "BackendServiceConnectionTrackingPolicy", + "description": "Connection Tracking configuration for this BackendService.", + "type": "object", + "properties": { + "trackingMode": { + "description": "Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode).", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read Deleting an instance group for more information." + "enum": [ + "INVALID_TRACKING_MODE", + "PER_CONNECTION", + "PER_SESSION" + ] }, - "addInstances": { - "id": "compute.instanceGroups.addInstances", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroup": { - "description": "The name of the instance group where you are adding instances.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "request": { - "$ref": "InstanceGroupsAddInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "connectionPersistenceOnUnhealthyBackends": { + "description": "Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence).", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. Read Adding instances for more information." + "enum": [ + "ALWAYS_PERSIST", + "DEFAULT_FOR_PROTOCOL", + "NEVER_PERSIST" + ] }, - "removeInstances": { - "id": "compute.instanceGroups.removeInstances", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroup": { - "description": "The name of the instance group where the specified instances will be removed.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "request": { - "$ref": "InstanceGroupsRemoveInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes one or more instances from the specified instance group, but does not delete those instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted." + "idleTimeoutSec": { + "description": "Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For internal passthrough Network Load Balancers: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For external passthrough Network Load Balancers the default is 60 seconds. This option is not available publicly.", + "type": "integer", + "format": "int32" }, - "listInstances": { - "id": "compute.instanceGroups.listInstances", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroup": { - "description": "The name of the instance group from which you want to generate a list of included instances.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "request": { - "$ref": "InstanceGroupsListInstancesRequest" - }, - "response": { - "$ref": "InstanceGroupsListInstances" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use `eq` (equal) or `ne` (not equal) operators." + "enableStrongAffinity": { + "description": "Enable Strong Session Affinity for external passthrough Network Load Balancers. This option is not available publicly.", + "type": "boolean" + } + } + }, + "BackendServiceLocalityLoadBalancingPolicyConfig": { + "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", + "type": "object", + "properties": { + "policy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" }, - "setNamedPorts": { - "id": "compute.instanceGroups.setNamedPorts", - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts", - "httpMethod": "POST", - "parameters": { - "instanceGroup": { - "description": "The name of the instance group where the named ports are updated.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroup" - ], - "request": { - "$ref": "InstanceGroupsSetNamedPortsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the named ports for the specified instance group." + "customPolicy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" } } }, - "regionInstanceGroups": { - "methods": { - "list": { - "id": "compute.regionInstanceGroups.list", - "path": "projects/{project}/regions/{region}/instanceGroups", - "flatPath": "projects/{project}/regions/{region}/instanceGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "RegionInstanceGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { + "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", + "description": "The configuration for a built-in load balancing policy.", + "type": "object", + "properties": { + "name": { + "description": "The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected.", + "type": "string", + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", + "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", + "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." ], - "description": "Retrieves the list of instance group resources contained within the specified region." + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN", + "WEIGHTED_MAGLEV" + ] + } + } + }, + "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { + "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "description": "The configuration for a custom policy implemented by the user and deployed with the client.", + "type": "object", + "properties": { + "name": { + "description": "Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.", + "type": "string" }, - "get": { - "id": "compute.regionInstanceGroups.get", - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", - "httpMethod": "GET", - "parameters": { - "instanceGroup": { - "description": "Name of the instance group resource to return.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.", + "type": "string" + } + } + }, + "BackendServiceUsedBy": { + "id": "BackendServiceUsedBy", + "type": "object", + "properties": { + "reference": { + "type": "string" + } + } + }, + "BackendServiceAggregatedList": { + "id": "BackendServiceAggregatedList", + "description": "Contains a list of BackendServicesScopedList.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#backendServiceAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendServicesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of BackendServices.", + "$ref": "BackendServicesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroup" - ], - "response": { - "$ref": "InstanceGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified instance group resource." + } }, - "listInstances": { - "id": "compute.regionInstanceGroups.listInstances", - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroup": { - "description": "Name of the regional instance group for which we want to list the instances.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroup" - ], - "request": { - "$ref": "RegionInstanceGroupsListInstancesRequest" - }, - "response": { - "$ref": "RegionInstanceGroupsListInstances" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "BackendServicesScopedList": { + "id": "BackendServicesScopedList", + "type": "object", + "properties": { + "backendServices": { + "description": "A list of BackendServices contained in this scope.", + "type": "array", + "items": { + "$ref": "BackendService" + } }, - "setNamedPorts": { - "id": "compute.regionInstanceGroups.setNamedPorts", - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", - "httpMethod": "POST", - "parameters": { - "instanceGroup": { - "description": "The name of the regional instance group where the named ports are updated.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroup" - ], - "request": { - "$ref": "RegionInstanceGroupsSetNamedPortsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the named ports for the specified regional instance group." + } } } }, - "instanceGroupManagers": { - "methods": { - "list": { - "id": "compute.instanceGroupManagers.list", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "BackendServiceListUsable": { + "id": "BackendServiceListUsable", + "description": "Contains a list of usable BackendService resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#usableBackendServiceList for lists of usable backend services.", + "default": "compute#usableBackendServiceList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "type": "array", + "items": { + "$ref": "BackendService" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "InstanceGroupManagerList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone." + } + } + } + }, + "ResourceGroupReference": { + "id": "ResourceGroupReference", + "type": "object", + "properties": { + "group": { + "description": "A URI referencing one of the instance groups or network endpoint groups listed in the backend service.", + "type": "string" + } + } + }, + "BackendServiceGroupHealth": { + "id": "BackendServiceGroupHealth", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#backendServiceGroupHealth for the health of backend services.", + "default": "compute#backendServiceGroupHealth", + "type": "string" }, - "aggregatedList": { - "id": "compute.instanceGroupManagers.aggregatedList", - "path": "projects/{project}/aggregated/instanceGroupManagers", - "flatPath": "projects/{project}/aggregated/instanceGroupManagers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InstanceGroupManagerAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of managed instance groups and groups them by zone." + "healthStatus": { + "description": "Health state of the backend instances or endpoints in requested instance or network endpoint group, determined based on configured health checks.", + "type": "array", + "items": { + "$ref": "HealthStatus" + } }, - "get": { - "id": "compute.instanceGroupManagers.get", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "GET", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "response": { - "$ref": "InstanceGroupManager" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns all of the details about the specified managed instance group." + "annotations": { + "description": "Metadata defined as annotations on the network endpoint group.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "HealthStatus": { + "id": "HealthStatus", + "type": "object", + "properties": { + "ipAddress": { + "description": "For target pool based Network Load Balancing, it indicates the forwarding rule's IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.", + "type": "string" }, - "insert": { - "id": "compute.instanceGroupManagers.insert", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where you want to create the managed instance group.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" + "port": { + "description": "The named port of the instance group, not necessarily the port that is health-checked.", + "type": "integer", + "format": "int32" + }, + "instance": { + "description": "URL of the instance resource.", + "type": "string" + }, + "healthState": { + "description": "Health state of the IPv4 address of the instance.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "InstanceGroupManager" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "HEALTHY", + "UNHEALTHY" + ] + }, + "annotations": { + "description": "Metadata defined as annotations for network endpoint.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "weight": { + "type": "string" + }, + "weightError": { + "type": "string", + "enumDescriptions": [ + "The response to a Health Check probe had the HTTP response header field X-Load-Balancing-Endpoint-Weight, but its content was invalid (i.e., not a non-negative single-precision floating-point number in decimal string representation).", + "The response to a Health Check probe did not have the HTTP response header field X-Load-Balancing-Endpoint-Weight.", + "This is the value when the accompanied health status is either TIMEOUT (i.e.,the Health Check probe was not able to get a response in time) or UNKNOWN. For the latter, it should be typically because there has not been sufficient time to parse and report the weight for a new backend (which is with 0.0.0.0 ip address). However, it can be also due to an outage case for which the health status is explicitly reset to UNKNOWN.", + "This is the default value when WeightReportMode is DISABLE, and is also the initial value when WeightReportMode has just updated to ENABLE or DRY_RUN and there has not been sufficient time to parse and report the backend weight." ], - "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit." + "enum": [ + "INVALID_WEIGHT", + "MISSING_WEIGHT", + "UNAVAILABLE_WEIGHT", + "WEIGHT_NONE" + ] }, - "patch": { - "id": "compute.instanceGroupManagers.patch", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "PATCH", - "parameters": { - "instanceGroupManager": { - "description": "The name of the instance group manager.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "forwardingRuleIp": { + "description": "A forwarding rule IP address assigned to this instance.", + "type": "string" + }, + "forwardingRule": { + "description": "URL of the forwarding rule associated with the health status of the instance.", + "type": "string" + } + } + }, + "CommitmentList": { + "id": "CommitmentList", + "description": "Contains a list of Commitment resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#commitmentList for lists of commitments.", + "default": "compute#commitmentList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Commitment resources.", + "type": "array", + "items": { + "$ref": "Commitment" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone where you want to create the managed instance group.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + } + } + } + }, + "Commitment": { + "id": "Commitment", + "description": "Represents a regional Commitment resource. Creating a commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#commitment for commitments.", + "default": "compute#commitment", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where this commitment may be used.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.", + "type": "string", + "enumDescriptions": [ + "", + "Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.", + "", + "", + "" + ], + "enum": [ + "ACTIVE", + "CANCELLED", + "CREATING", + "EXPIRED", + "NOT_YET_ACTIVE" + ] + }, + "statusMessage": { + "description": "[Output Only] An optional, human-readable explanation of the status.", + "type": "string" + }, + "plan": { + "description": "The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "request": { - "$ref": "InstanceGroupManager" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "INVALID", + "THIRTY_SIX_MONTH", + "TWELVE_MONTH" + ] + }, + "startTimestamp": { + "description": "[Output Only] Commitment start time in RFC3339 text format.", + "type": "string" + }, + "endTimestamp": { + "description": "[Output Only] Commitment end time in RFC3339 text format.", + "type": "string" + }, + "resources": { + "description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.", + "type": "array", + "items": { + "$ref": "ResourceCommitment" + } + }, + "type": { + "description": "The type of commitment, which affects the discount rate and the eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to accelerator optimized machines.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG." + "enum": [ + "ACCELERATOR_OPTIMIZED", + "ACCELERATOR_OPTIMIZED_A3", + "ACCELERATOR_OPTIMIZED_A3_MEGA", + "COMPUTE_OPTIMIZED", + "COMPUTE_OPTIMIZED_C2D", + "COMPUTE_OPTIMIZED_C3", + "COMPUTE_OPTIMIZED_C3D", + "COMPUTE_OPTIMIZED_H3", + "GENERAL_PURPOSE", + "GENERAL_PURPOSE_E2", + "GENERAL_PURPOSE_N2", + "GENERAL_PURPOSE_N2D", + "GENERAL_PURPOSE_N4", + "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", + "MEMORY_OPTIMIZED", + "MEMORY_OPTIMIZED_M3", + "STORAGE_OPTIMIZED_Z3", + "TYPE_UNSPECIFIED" + ] }, - "delete": { - "id": "compute.instanceGroupManagers.delete", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "DELETE", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group to delete.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + "reservations": { + "description": "List of create-on-create reservations for this commitment.", + "type": "array", + "items": { + "$ref": "Reservation" + } + }, + "category": { + "description": "The category of the commitment. Category MACHINE specifies commitments composed of machine resources such as VCPU or MEMORY, listed in resources. Category LICENSE specifies commitments composed of software licenses, listed in licenseResources. Note that only MACHINE commitments should have a Type specified.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "CATEGORY_UNSPECIFIED", + "LICENSE", + "MACHINE" + ] + }, + "licenseResource": { + "description": "The license specification required as part of a license commitment.", + "$ref": "LicenseResourceCommitment" + }, + "autoRenew": { + "description": "Specifies whether to enable automatic renewal for the commitment. The default value is false if not specified. The field can be updated until the day of the commitment expiration at 12:00am PST. If the field is set to true, the commitment will be automatically renewed for either one or three years according to the terms of the existing commitment.", + "type": "boolean" + }, + "mergeSourceCommitments": { + "description": "List of source commitments to be merged into a new commitment.", + "type": "array", + "items": { + "type": "string" + } + }, + "splitSourceCommitment": { + "description": "Source commitment to be split into a new commitment.", + "type": "string" + }, + "existingReservations": { + "description": "Specifies the already existing reservations to attach to the Commitment. This field is optional, and it can be a full or partial URL. For example, the following are valid URLs to an reservation: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /reservations/reservation - projects/project/zones/zone/reservations/reservation ", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ResourceCommitment": { + "id": "ResourceCommitment", + "description": "Commitment for a particular resource (a Commitment is composed of one or more of these).", + "type": "object", + "properties": { + "type": { + "description": "Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "description": "Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read Deleting an instance group for more information." + "enum": [ + "ACCELERATOR", + "LOCAL_SSD", + "MEMORY", + "UNSPECIFIED", + "VCPU" + ] }, - "deleteInstances": { - "id": "compute.instanceGroupManagers.deleteInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "amount": { + "description": "The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.", + "type": "string", + "format": "int64" + }, + "acceleratorType": { + "description": "Name of the accelerator type resource. Applicable only when the type is ACCELERATOR.", + "type": "string" + } + } + }, + "LicenseResourceCommitment": { + "id": "LicenseResourceCommitment", + "description": "Commitment for a particular license resource.", + "type": "object", + "properties": { + "license": { + "description": "Any applicable license URI.", + "type": "string" + }, + "amount": { + "description": "The number of licenses purchased.", + "type": "string", + "format": "int64" + }, + "coresPerLicense": { + "description": "Specifies the core range of the instance for which this license applies.", + "type": "string" + } + } + }, + "CommitmentAggregatedList": { + "id": "CommitmentAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.", + "default": "compute#commitmentAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of CommitmentsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of commitments.", + "$ref": "CommitmentsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersDeleteInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." + } }, - "abandonInstances": { - "id": "compute.instanceGroupManagers.abandonInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "CommitmentsScopedList": { + "id": "CommitmentsScopedList", + "type": "object", + "properties": { + "commitments": { + "description": "[Output Only] A list of commitments contained in this scope.", + "type": "array", + "items": { + "$ref": "Commitment" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of commitments when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersAbandonInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." + } + } + } + }, + "DiskTypeList": { + "id": "DiskTypeList", + "description": "Contains a list of disk types.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#diskTypeList for disk types.", + "default": "compute#diskTypeList", + "type": "string" }, - "recreateInstances": { - "id": "compute.instanceGroupManagers.recreateInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersRecreateInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "resize": { - "id": "compute.instanceGroupManagers.resize", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of DiskType resources.", + "type": "array", + "items": { + "$ref": "DiskType" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "size": { - "description": "The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter.", - "location": "query", - "required": true, - "type": "integer", - "format": "int32" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager", - "size" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. When resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including: + The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance. This list is subject to change. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted." + } + } + } + }, + "DiskType": { + "id": "DiskType", + "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#diskType for disk types.", + "default": "compute#diskType", + "type": "string" }, - "setInstanceTemplate": { - "id": "compute.instanceGroupManagers.setInstanceTemplate", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "validDiskSize": { + "description": "[Output Only] An optional textual description of the valid disk size, such as \"10GB-10TB\".", + "type": "string" + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this disk type.", + "$ref": "DeprecationStatus" + }, + "zone": { + "description": "[Output Only] URL of the zone where the disk type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "defaultDiskSizeGb": { + "description": "[Output Only] Server-defined default disk size in GB.", + "type": "string", + "format": "int64" + }, + "region": { + "description": "[Output Only] URL of the region where the disk type resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + } + }, + "DiskTypeAggregatedList": { + "id": "DiskTypeAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#diskTypeAggregatedList.", + "default": "compute#diskTypeAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of DiskTypesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of disk types.", + "$ref": "DiskTypesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE." + } }, - "setTargetPools": { - "id": "compute.instanceGroupManagers.setTargetPools", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersSetTargetPoolsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "DiskTypesScopedList": { + "id": "DiskTypesScopedList", + "type": "object", + "properties": { + "diskTypes": { + "description": "[Output Only] A list of disk types contained in this scope.", + "type": "array", + "items": { + "$ref": "DiskType" + } }, - "listManagedInstances": { - "id": "compute.instanceGroupManagers.listManagedInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "warning": { + "description": "[Output Only] Informational warning which replaces the list of disk types when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "response": { - "$ref": "InstanceGroupManagersListManagedInstancesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`." + } + } + } + }, + "RegionDiskTypeList": { + "id": "RegionDiskTypeList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#regionDiskTypeList for region disk types.", + "default": "compute#regionDiskTypeList", + "type": "string" }, - "listErrors": { - "id": "compute.instanceGroupManagers.listErrors", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "response": { - "$ref": "InstanceGroupManagersListErrorsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "listPerInstanceConfigs": { - "id": "compute.instanceGroupManagers.listPerInstanceConfigs", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "items": { + "description": "A list of DiskType resources.", + "type": "array", + "items": { + "$ref": "DiskType" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "response": { - "$ref": "InstanceGroupManagersListPerInstanceConfigsResp" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported." + } + } + } + }, + "ExternalVpnGateway": { + "id": "ExternalVpnGateway", + "description": "Represents an external VPN gateway. External VPN gateway is the on-premises VPN gateway(s) or another cloud provider's VPN gateway that connects to your Google Cloud VPN gateway. To create a highly available VPN from Google Cloud Platform to your VPN gateway or another cloud provider's VPN gateway, you must create a external VPN gateway resource with information about the other gateway. For more information about using external VPN gateways, see Creating an HA VPN gateway and tunnel pair to a peer VPN.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#externalVpnGateway for externalVpnGateways.", + "default": "compute#externalVpnGateway", + "type": "string" }, - "updatePerInstanceConfigs": { - "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq" - }, - "response": { - "$ref": "Operation" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.externalVpnGateways.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "redundancyType": { + "description": "Indicates the user-supplied redundancy type of this external VPN gateway.", + "type": "string", + "enumDescriptions": [ + "The external VPN gateway has four public IP addresses; at the time of writing this API, the AWS virtual private gateway is an example which has four public IP addresses for high availability connections; there should be two VPN connections in the AWS virtual private gateway , each AWS VPN connection has two public IP addresses; please make sure to put two public IP addresses from one AWS VPN connection into interfaces 0 and 1 of this external VPN gateway, and put the other two public IP addresses from another AWS VPN connection into interfaces 2 and 3 of this external VPN gateway. When displaying highly available configuration status for the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN gateway, Google will always detect whether interfaces 0 and 1 are connected on one interface of HA Cloud VPN gateway, and detect whether interfaces 2 and 3 are connected to another interface of the HA Cloud VPN gateway.", + "The external VPN gateway has only one public IP address which internally provide redundancy or failover.", + "The external VPN gateway has two public IP addresses which are redundant with each other, the following two types of setup on your on-premises side would have this type of redundancy: (1) Two separate on-premises gateways, each with one public IP address, the two on-premises gateways are redundant with each other. (2) A single on-premise gateway with two public IP addresses that are redundant with eatch other." ], - "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." + "enum": [ + "FOUR_IPS_REDUNDANCY", + "SINGLE_IP_INTERNALLY_REDUNDANT", + "TWO_IPS_REDUNDANCY" + ] }, - "patchPerInstanceConfigs": { - "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "interfaces": { + "description": "A list of interfaces for this external VPN gateway. If your peer-side gateway is an on-premises gateway and non-AWS cloud providers' gateway, at most two interfaces can be provided for an external VPN gateway. If your peer side is an AWS virtual private gateway, four interfaces should be provided for an external VPN gateway.", + "type": "array", + "items": { + "$ref": "ExternalVpnGatewayInterface" + } + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this ExternalVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an ExternalVpnGateway.", + "type": "string", + "format": "byte" + } + } + }, + "ExternalVpnGatewayInterface": { + "id": "ExternalVpnGatewayInterface", + "description": "The interface for the external VPN gateway.", + "type": "object", + "properties": { + "id": { + "description": "The numeric ID of this interface. The allowed input values for this id for different redundancy types of external VPN gateway: - SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 ", + "type": "integer", + "format": "uint32" + }, + "ipAddress": { + "description": "IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine.", + "type": "string" + }, + "ipv6Address": { + "description": "IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" + } + } + }, + "ExternalVpnGatewayList": { + "id": "ExternalVpnGatewayList", + "description": "Response to the list request, and contains a list of externalVpnGateways.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#externalVpnGatewayList for lists of externalVpnGateways.", + "default": "compute#externalVpnGatewayList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ExternalVpnGateway resources.", + "type": "array", + "items": { + "$ref": "ExternalVpnGateway" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." + } }, - "deletePerInstanceConfigs": { - "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "etag": { + "type": "string" + } + } + }, + "ForwardingRuleList": { + "id": "ForwardingRuleList", + "description": "Contains a list of ForwardingRule resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#forwardingRuleList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ForwardingRule resources.", + "type": "array", + "items": { + "$ref": "ForwardingRule" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "ForwardingRule": { + "id": "ForwardingRule", + "description": "Represents a Forwarding Rule resource. Forwarding rule resources in Google Cloud can be either regional or global in scope: * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules can also reference target instances and Cloud VPN Classic gateways (targetVpnGateway). For more information, read Forwarding rule concepts and Using protocol forwarding.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#forwardingRule for forwarding rule resources.", + "default": "compute#forwardingRule", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For Private Service Connect forwarding rules that forward traffic to Google APIs, the forwarding rule name must be a 1-20 characters string with lowercase letters and numbers and must start with a letter.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "IPAddress": { + "description": "IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.", + "type": "string" + }, + "IPProtocol": { + "description": "The IP protocol to which this rule applies. For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. The valid IP protocols are different for different load balancing products as described in [Load balancing features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" ], - "description": "Deletes selected per-instance configurations for the managed instance group." + "enum": [ + "AH", + "ESP", + "ICMP", + "L3_DEFAULT", + "SCTP", + "TCP", + "UDP" + ] }, - "applyUpdatesToInstances": { - "id": "compute.instanceGroupManagers.applyUpdatesToInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + "portRange": { + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The portRange field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: external passthrough Network Load Balancers, internal and external proxy Network Load Balancers, internal and external Application Load Balancers, external protocol forwarding, and Classic VPN. - Some products have restrictions on what ports can be used. See port specifications for details. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", + "type": "string" + }, + "ports": { + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal protocol forwarding. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. @pattern: \\\\d+(?:-\\\\d+)?", + "type": "array", + "items": { + "type": "string" + } + }, + "target": { + "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. ", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "loadBalancingScheme": { + "description": "Specifies the forwarding rule type. For more information about forwarding rules, refer to Forwarding rule concepts.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" ], - "request": { - "$ref": "InstanceGroupManagersApplyUpdatesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL", + "INTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED", + "INVALID" + ] + }, + "subnetwork": { + "description": "This field identifies the subnetwork that the load balanced IP should belong to for this forwarding rule, used with internal load balancers and external passthrough Network Load Balancers with IPv6. If the network specified is in auto subnet mode, this field is optional. However, a subnetwork must be specified if the network is in custom subnet mode or when creating external forwarding rule with IPv6.", + "type": "string" + }, + "network": { + "description": "This field is not used for global external load balancing. For internal passthrough Network Load Balancers, this field identifies the network that the load balanced IP should belong to for this forwarding rule. If the subnetwork is specified, the network of the subnetwork will be used. If neither subnetwork nor this field is specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", + "type": "string" + }, + "backendService": { + "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for internal and external passthrough Network Load Balancers; must be omitted for all other load balancer types.", + "type": "string" + }, + "serviceDirectoryRegistrations": { + "description": "Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource.", + "type": "array", + "items": { + "$ref": "ForwardingRuleServiceDirectoryRegistration" + } + }, + "serviceLabel": { + "description": "An optional prefix to the service name for this forwarding rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "serviceName": { + "description": "[Output Only] The internal fully qualified service name for this forwarding rule. This field is only used for internal load balancing.", + "type": "string" + }, + "networkTier": { + "description": "This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM, STANDARD. For regional ForwardingRule, the valid values are PREMIUM and STANDARD. For GlobalForwardingRule, the valid value is PREMIUM. If this field is not specified, it is assumed to be PREMIUM. If IPAddress is specified, this value must be equal to the networkTier of the Address.", + "type": "string", + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." ], - "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions." + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ] }, - "createInstances": { - "id": "compute.instanceGroupManagers.createInstances", - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "instanceGroupManager" + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", + "type": "string", + "format": "byte" + }, + "ipVersion": { + "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "request": { - "$ref": "InstanceGroupManagersCreateInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_VERSION" + ] + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ForwardingRule. Include the fingerprint in patch request to ensure that you do not overwrite changes that were applied from another concurrent request. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", + "type": "string", + "format": "byte" + }, + "allPorts": { + "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The allPorts field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal and external protocol forwarding. - Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true. ", + "type": "boolean" + }, + "allowGlobalAccess": { + "description": "If set to true, clients can access the internal passthrough Network Load Balancers, the regional internal Application Load Balancer, and the regional internal proxy Network Load Balancer from all regions. If false, only allows access from the local region the load balancer is located at. Note that for INTERNAL_MANAGED forwarding rules, this field cannot be changed after the forwarding rule is created.", + "type": "boolean" + }, + "metadataFilters": { + "description": "Opaque filter criteria used by load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to load balancer, xDS clients present node metadata. When there is a match, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. TargetHttpProxy, UrlMap) referenced by the ForwardingRule are not visible to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadataFilters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here will be applifed before those specified in the UrlMap that this ForwardingRule references. metadataFilters only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "type": "array", + "items": { + "$ref": "MetadataFilter" + } + }, + "isMirroringCollector": { + "description": "Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a PacketMirroring rule applies to them. This can only be set to true for load balancers that have their loadBalancingScheme set to INTERNAL.", + "type": "boolean" + }, + "sourceIpRanges": { + "description": "If not empty, this forwarding rule will only forward the traffic when the source IP address matches one of the IP addresses or CIDR ranges set here. Note that a forwarding rule can only have up to 64 source IP ranges, and this field can only be used with a regional forwarding rule whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).", + "type": "array", + "items": { + "type": "string" + } + }, + "pscConnectionId": { + "description": "[Output Only] The PSC connection id of the PSC forwarding rule.", + "type": "string", + "format": "uint64" + }, + "pscConnectionStatus": { + "type": "string", + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" ], - "description": "Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method." + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ] + }, + "baseForwardingRule": { + "description": "[Output Only] The URL for the corresponding base forwarding rule. By base forwarding rule, we mean the forwarding rule that has the same IP address, protocol, and port settings with the current forwarding rule, but without sourceIPRanges specified. Always empty if the current forwarding rule does not have sourceIPRanges specified.", + "type": "string" + }, + "allowPscGlobalAccess": { + "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", + "type": "boolean" + }, + "noAutomateDnsZone": { + "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field. Once set, this field is not mutable.", + "type": "boolean" + }, + "ipCollection": { + "description": "Resource reference of a PublicDelegatedPrefix. The PDP must be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. Use one of the following formats to specify a sub-PDP when creating an IPv6 NetLB forwarding rule using BYOIP: Full resource URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name - regions/region/publicDelegatedPrefixes/sub-pdp-name ", + "type": "string" } } }, - "regionInstanceGroupManagers": { - "methods": { - "list": { - "id": "compute.regionInstanceGroupManagers.list", - "path": "projects/{project}/regions/{region}/instanceGroupManagers", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "RegionInstanceGroupManagerList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of managed instance groups that are contained within the specified region." + "ForwardingRuleServiceDirectoryRegistration": { + "id": "ForwardingRuleServiceDirectoryRegistration", + "description": "Describes the auto-registration of the forwarding rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this forwarding rule.", + "type": "object", + "properties": { + "namespace": { + "description": "Service Directory namespace to register the forwarding rule under.", + "type": "string" }, - "get": { - "id": "compute.regionInstanceGroupManagers.get", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "GET", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group to return.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "response": { - "$ref": "InstanceGroupManager" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "service": { + "description": "Service Directory service to register the forwarding rule under.", + "type": "string" + }, + "serviceDirectoryRegion": { + "description": "[Optional] Service Directory region to register this global forwarding rule under. Default to \"us-central1\". Only used for PSC for Google APIs. All PSC for Google APIs forwarding rules on the same network should use the same Service Directory region.", + "type": "string" + } + } + }, + "MetadataFilter": { + "id": "MetadataFilter", + "description": "Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers.", + "type": "object", + "properties": { + "filterMatchCriteria": { + "description": "Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. ", + "type": "string", + "enumDescriptions": [ + "Specifies that all filterLabels must match for the metadataFilter to be considered a match.", + "Specifies that any filterLabel must match for the metadataFilter to be considered a match.", + "Indicates that the match criteria was not set. A metadataFilter must never be created with this value." ], - "description": "Returns all of the details about the specified managed instance group." + "enum": [ + "MATCH_ALL", + "MATCH_ANY", + "NOT_SET" + ] }, - "insert": { - "id": "compute.regionInstanceGroupManagers.insert", - "path": "projects/{project}/regions/{region}/instanceGroupManagers", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "InstanceGroupManager" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A regional managed instance group can contain up to 2000 instances." + "filterLabels": { + "description": "The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries.", + "type": "array", + "items": { + "$ref": "MetadataFilterLabelMatch" + } + } + } + }, + "MetadataFilterLabelMatch": { + "id": "MetadataFilterLabelMatch", + "description": "MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer.", + "type": "object", + "properties": { + "name": { + "description": "Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.", + "type": "string" }, - "patch": { - "id": "compute.regionInstanceGroupManagers.patch", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "PATCH", - "parameters": { - "instanceGroupManager": { - "description": "The name of the instance group manager.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "InstanceGroupManager" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG." + "value": { + "description": "The value of the label must match the specified value. value can have a maximum length of 1024 characters.", + "type": "string" + } + } + }, + "TargetReference": { + "id": "TargetReference", + "type": "object", + "properties": { + "target": { + "type": "string" + } + } + }, + "ForwardingRuleAggregatedList": { + "id": "ForwardingRuleAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#forwardingRuleAggregatedList for lists of forwarding rules.", + "default": "compute#forwardingRuleAggregatedList", + "type": "string" }, - "delete": { - "id": "compute.regionInstanceGroupManagers.delete", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "DELETE", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group to delete.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified managed instance group and all of the instances in that group." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "deleteInstances": { - "id": "compute.regionInstanceGroupManagers.deleteInstances", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." + "items": { + "description": "A list of ForwardingRulesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of addresses.", + "$ref": "ForwardingRulesScopedList" + } }, - "abandonInstances": { - "id": "compute.regionInstanceGroupManagers.abandonInstances", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." + } }, - "recreateInstances": { - "id": "compute.regionInstanceGroupManagers.recreateInstances", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ForwardingRulesScopedList": { + "id": "ForwardingRulesScopedList", + "type": "object", + "properties": { + "forwardingRules": { + "description": "A list of forwarding rules contained in this scope.", + "type": "array", + "items": { + "$ref": "ForwardingRule" + } + }, + "warning": { + "description": "Informational warning which replaces the list of forwarding rules when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagersRecreateRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request." + } + } + } + }, + "HealthCheckServicesList": { + "id": "HealthCheckServicesList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#healthCheckServicesList for lists of HealthCheckServices.", + "default": "compute#healthCheckServicesList", + "type": "string" }, - "resize": { - "id": "compute.regionInstanceGroupManagers.resize", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "size": { - "description": "Number of instances that should exist in this instance group manager.", - "minimum": "0", - "location": "query", - "required": true, - "type": "integer", - "format": "int32" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager", - "size" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances. The resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "setInstanceTemplate": { - "id": "compute.regionInstanceGroupManagers.setInstanceTemplate", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of HealthCheckService resources.", + "type": "array", + "items": { + "$ref": "HealthCheckService" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagersSetTemplateRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "HealthCheckService": { + "id": "HealthCheckService", + "description": "Represents a Health-Check as a Service resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output only] Type of the resource. Always compute#healthCheckServicefor health check services.", + "default": "compute#healthCheckService", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "name": { + "description": "Name of the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the health check service resides. This field is not applicable to global health check services. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "healthStatusAggregationPolicy": { + "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is only allowed with regional HealthCheckService.", + "type": "string", + "enumDescriptions": [ + "If any backend's health check reports UNHEALTHY, then UNHEALTHY is the HealthState of the entire health check service. If all backend's are healthy, the HealthState of the health check service is HEALTHY.", + "An EndpointHealth message is returned for each backend in the health check service." ], - "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected." + "enum": [ + "AND", + "NO_AGGREGATION" + ] }, - "setTargetPools": { - "id": "compute.regionInstanceGroupManagers.setTargetPools", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "healthChecks": { + "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10 for regional HealthCheckService, and not more than 1 for global HealthCheckService. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NetworkEndpointGroups. For global HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify sourceRegions, and HealthChecks that specify sourceRegions can only be used with global INTERNET_IP_PORT NetworkEndpointGroups.", + "type": "array", + "items": { + "type": "string" + } + }, + "networkEndpointGroups": { + "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService. For global HealthCheckServices, the NetworkEndpointGroups must be global INTERNET_IP_PORT.", + "type": "array", + "items": { + "type": "string" + } + }, + "notificationEndpoints": { + "description": "A list of URLs to the NotificationEndpoint resources. Must not have more than 10. A list of endpoints for receiving notifications of change in health status. For regional HealthCheckService, NotificationEndpoint must be regional and in the same region. For global HealthCheckService, NotificationEndpoint must be global.", + "type": "array", + "items": { + "type": "string" + } + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a HealthCheckService. An up-to-date fingerprint must be provided in order to patch/update the HealthCheckService; Otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the HealthCheckService.", + "type": "string", + "format": "byte" + } + } + }, + "HealthCheckList": { + "id": "HealthCheckList", + "description": "Contains a list of HealthCheck resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#healthCheckList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HealthCheck resources.", + "type": "array", + "items": { + "$ref": "HealthCheck" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + } + } + } + }, + "HealthCheck": { + "id": "HealthCheck", + "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) * [Global](/compute/docs/reference/rest/v1/healthChecks) These health check resources can be used for load balancing and for autohealing VMs in a managed instance group (MIG). **Load balancing** Health check requirements vary depending on the type of load balancer. For details about the type of health check supported for each load balancer and corresponding backend type, see Health checks overview: Load balancer guide. **Autohealing in MIGs** The health checks that you use for autohealing VMs in a MIG can be either regional or global. For more information, see Set up an application health check and autohealing. For more information, see Health checks overview.", + "type": "object", + "properties": { + "kind": { + "description": "Type of the resource.", + "default": "compute#healthCheck", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in 3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. For example, a name that is 1-63 characters long, matches the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This regular expression describes a name where the first character is a lowercase letter, and all following characters are a dash, lowercase letter, or digit, except the last character, which isn't a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "checkIntervalSec": { + "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", + "type": "integer", + "format": "int32" + }, + "timeoutSec": { + "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", + "type": "integer", + "format": "int32" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "type": "integer", + "format": "int32" + }, + "healthyThreshold": { + "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", + "type": "integer", + "format": "int32" + }, + "type": { + "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" ], - "request": { - "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "GRPC", + "HTTP", + "HTTP2", + "HTTPS", + "INVALID", + "SSL", + "TCP" + ] + }, + "tcpHealthCheck": { + "$ref": "TCPHealthCheck" + }, + "sslHealthCheck": { + "$ref": "SSLHealthCheck" + }, + "httpHealthCheck": { + "$ref": "HTTPHealthCheck" + }, + "httpsHealthCheck": { + "$ref": "HTTPSHealthCheck" + }, + "http2HealthCheck": { + "$ref": "HTTP2HealthCheck" + }, + "grpcHealthCheck": { + "$ref": "GRPCHealthCheck" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] Region where the health check resides. Not applicable to global health checks.", + "type": "string" + }, + "logConfig": { + "description": "Configure logging on this health check.", + "$ref": "HealthCheckLogConfig" + } + } + }, + "TCPHealthCheck": { + "id": "TCPHealthCheck", + "type": "object", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", + "type": "integer", + "format": "int32" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "type": "string", + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], - "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected." + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ] }, - "listManagedInstances": { - "id": "compute.regionInstanceGroupManagers.listManagedInstances", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "request": { + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection.", + "type": "string" + }, + "response": { + "description": "Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "RegionInstanceGroupManagersListInstancesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "NONE", + "PROXY_V1" + ] + } + } + }, + "SSLHealthCheck": { + "id": "SSLHealthCheck", + "type": "object", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", + "type": "integer", + "format": "int32" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "type": "string", + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], - "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`." + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ] }, - "listErrors": { - "id": "compute.regionInstanceGroupManagers.listErrors", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request. This should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "request": { + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake.", + "type": "string" + }, + "response": { + "description": "Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "RegionInstanceGroupManagersListErrorsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "NONE", + "PROXY_V1" + ] + } + } + }, + "HTTPHealthCheck": { + "id": "HTTPHealthCheck", + "type": "object", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", + "type": "integer", + "format": "int32" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "type": "string", + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], - "description": "Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported." + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ] }, - "listPerInstanceConfigs": { - "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "host": { + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTP health check request. The default value is /. Must comply with RFC3986.", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "NONE", + "PROXY_V1" + ] + }, + "response": { + "description": "Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "type": "string" + } + } + }, + "HTTPSHealthCheck": { + "id": "HTTPSHealthCheck", + "type": "object", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", + "type": "integer", + "format": "int32" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "type": "string", + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], - "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported." + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ] }, - "updatePerInstanceConfigs": { - "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "host": { + "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTPS health check request. The default value is /. Must comply with RFC3986.", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NONE", + "PROXY_V1" + ] + }, + "response": { + "description": "Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "type": "string" + } + } + }, + "HTTP2HealthCheck": { + "id": "HTTP2HealthCheck", + "type": "object", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", + "type": "integer", + "format": "int32" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "type": "string", + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], - "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ] }, - "patchPerInstanceConfigs": { - "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" + "host": { + "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTP/2 health check request. The default value is /. Must comply with RFC3986.", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NONE", + "PROXY_V1" + ] + }, + "response": { + "description": "Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "type": "string" + } + } + }, + "GRPCHealthCheck": { + "id": "GRPCHealthCheck", + "type": "object", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", + "type": "integer", + "format": "int32" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "type": "string", + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], - "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch." + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ] }, - "deletePerInstanceConfigs": { - "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "grpcServiceName": { + "description": "The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII.", + "type": "string" + } + } + }, + "HealthCheckLogConfig": { + "id": "HealthCheckLogConfig", + "description": "Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver.", + "type": "object", + "properties": { + "enable": { + "description": "Indicates whether or not to export logs. This is false by default, which means no health check logging will be done.", + "type": "boolean" + } + } + }, + "HealthChecksAggregatedList": { + "id": "HealthChecksAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#healthChecksAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HealthChecksScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of HealthChecks.", + "$ref": "HealthChecksScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes selected per-instance configurations for the managed instance group." + } }, - "applyUpdatesToInstances": { - "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "HealthChecksScopedList": { + "id": "HealthChecksScopedList", + "type": "object", + "properties": { + "healthChecks": { + "description": "A list of HealthChecks contained in this scope.", + "type": "array", + "items": { + "$ref": "HealthCheck" + } + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Apply updates to selected instances the managed instance group." + } + } + } + }, + "HttpHealthCheckList": { + "id": "HttpHealthCheckList", + "description": "Contains a list of HttpHealthCheck resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#httpHealthCheckList", + "type": "string" }, - "createInstances": { - "id": "compute.regionInstanceGroupManagers.createInstances", - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", - "httpMethod": "POST", - "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HttpHealthCheck resources.", + "type": "array", + "items": { + "$ref": "HttpHealthCheck" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceGroupManager" - ], - "request": { - "$ref": "RegionInstanceGroupManagersCreateInstancesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method." + } } } }, - "autoscalers": { - "methods": { - "list": { - "id": "compute.autoscalers.list", - "path": "projects/{project}/zones/{zone}/autoscalers", - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "AutoscalerList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of autoscalers contained within the specified zone." + "HttpHealthCheck": { + "id": "HttpHealthCheck", + "description": "Represents a legacy HTTP Health Check resource. Legacy HTTP health checks are now only required by target pool-based network load balancers. For all other load balancers, including backend service-based network load balancers, and for managed instance group auto-healing, you must use modern (non-legacy) health checks. For more information, see Health checks overview .", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP health checks.", + "default": "compute#httpHealthCheck", + "type": "string" }, - "aggregatedList": { - "id": "compute.autoscalers.aggregatedList", - "path": "projects/{project}/aggregated/autoscalers", - "flatPath": "projects/{project}/aggregated/autoscalers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "host": { + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.", + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters. Must comply with RFC3986.", + "type": "string" + }, + "port": { + "description": "The TCP port number for the HTTP health check request. The default value is 80.", + "type": "integer", + "format": "int32" + }, + "checkIntervalSec": { + "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", + "type": "integer", + "format": "int32" + }, + "timeoutSec": { + "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", + "type": "integer", + "format": "int32" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "type": "integer", + "format": "int32" + }, + "healthyThreshold": { + "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", + "type": "integer", + "format": "int32" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + } + } + }, + "HttpsHealthCheckList": { + "id": "HttpsHealthCheckList", + "description": "Contains a list of HttpsHealthCheck resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#httpsHealthCheckList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HttpsHealthCheck resources.", + "type": "array", + "items": { + "$ref": "HttpsHealthCheck" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "AutoscalerAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of autoscalers." + } + } + } + }, + "HttpsHealthCheck": { + "id": "HttpsHealthCheck", + "description": "Represents a legacy HTTPS Health Check resource. Legacy HTTPS health checks have been deprecated. If you are using a target pool-based network load balancer, you must use a legacy HTTP (not HTTPS) health check. For all other load balancers, including backend service-based network load balancers, and for managed instance group auto-healing, you must use modern (non-legacy) health checks. For more information, see Health checks overview .", + "type": "object", + "properties": { + "kind": { + "description": "Type of the resource.", + "default": "compute#httpsHealthCheck", + "type": "string" }, - "get": { - "id": "compute.autoscalers.get", - "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "httpMethod": "GET", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "autoscaler" - ], - "response": { - "$ref": "Autoscaler" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified autoscaler resource." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.autoscalers.insert", - "path": "projects/{project}/zones/{zone}/autoscalers", - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an autoscaler in the specified project using the data included in the request." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "update": { - "id": "compute.autoscalers.update", - "path": "projects/{project}/zones/{zone}/autoscalers", - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "PUT", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates an autoscaler in the specified project using the data included in the request." + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "patch": { - "id": "compute.autoscalers.patch", - "path": "projects/{project}/zones/{zone}/autoscalers", - "flatPath": "projects/{project}/zones/{zone}/autoscalers", - "httpMethod": "PATCH", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" }, - "delete": { - "id": "compute.autoscalers.delete", - "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", - "httpMethod": "DELETE", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "autoscaler" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified autoscaler." + "host": { + "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.", + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTPS health check request. The default value is \"/\". Must comply with RFC3986.", + "type": "string" + }, + "port": { + "description": "The TCP port number for the HTTPS health check request. The default value is 443.", + "type": "integer", + "format": "int32" + }, + "checkIntervalSec": { + "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", + "type": "integer", + "format": "int32" + }, + "timeoutSec": { + "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have a greater value than checkIntervalSec.", + "type": "integer", + "format": "int32" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "type": "integer", + "format": "int32" + }, + "healthyThreshold": { + "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", + "type": "integer", + "format": "int32" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" } } }, - "regionAutoscalers": { - "methods": { - "list": { - "id": "compute.regionAutoscalers.list", - "path": "projects/{project}/regions/{region}/autoscalers", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "InstanceTemplateList": { + "id": "InstanceTemplateList", + "description": "A list of instance templates.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceTemplatesListResponse for instance template lists.", + "default": "compute#instanceTemplateList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstanceTemplate resources.", + "type": "array", + "items": { + "$ref": "InstanceTemplate" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "RegionAutoscalerList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of autoscalers contained within the specified region." + } + } + } + }, + "InstanceTemplate": { + "id": "InstanceTemplate", + "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/v1/instanceTemplates) * [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.", + "default": "compute#instanceTemplate", + "type": "string" }, - "get": { - "id": "compute.regionAutoscalers.get", - "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "httpMethod": "GET", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "autoscaler" - ], - "response": { - "$ref": "Autoscaler" + "id": { + "description": "[Output Only] A unique identifier for this instance template. The server defines this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this instance template in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "properties": { + "description": "The instance properties for this instance template.", + "$ref": "InstanceProperties" + }, + "selfLink": { + "description": "[Output Only] The URL for this instance template. The server defines this URL.", + "type": "string" + }, + "sourceInstance": { + "description": "The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance ", + "type": "string" + }, + "sourceInstanceParams": { + "description": "The source instance params to use to create this instance template.", + "$ref": "SourceInstanceParams" + }, + "region": { + "description": "[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.", + "type": "string" + } + } + }, + "SourceInstanceParams": { + "id": "SourceInstanceParams", + "description": "A specification of the parameters to use when creating the instance template from a source instance.", + "type": "object", + "properties": { + "diskConfigs": { + "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", + "type": "array", + "items": { + "$ref": "DiskInstantiationConfig" + } + } + } + }, + "DiskInstantiationConfig": { + "id": "DiskInstantiationConfig", + "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", + "type": "object", + "properties": { + "deviceName": { + "description": "Specifies the device name of the disk to which the configurations apply to.", + "type": "string" + }, + "instantiateFrom": { + "description": "Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. ", + "type": "string", + "enumDescriptions": [ + "Attach the existing disk in read-only mode. The request will fail if the disk was attached in read-write mode on the source instance. Applicable to: read-only disks.", + "Create a blank disk. The disk will be created unformatted. Applicable to: additional read-write disks, local SSDs.", + "Use the custom image specified in the custom_image field. Applicable to: boot disk, additional read-write disks.", + "Use the default instantiation option for the corresponding type of disk. For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", + "Do not include the disk in the instance template. Applicable to: additional read-write disks, local SSDs, read-only disks.", + "Use the same source image used for creation of the source instance's corresponding disk. The request will fail if the source VM's disk was created from a snapshot. Applicable to: boot disk, additional read-write disks.", + "Use the same source image family used for creation of the source instance's corresponding disk. The request will fail if the source image of the source disk does not belong to any image family. Applicable to: boot disk, additional read-write disks." ], - "description": "Returns the specified autoscaler." + "enum": [ + "ATTACH_READ_ONLY", + "BLANK", + "CUSTOM_IMAGE", + "DEFAULT", + "DO_NOT_INCLUDE", + "SOURCE_IMAGE", + "SOURCE_IMAGE_FAMILY" + ] }, - "insert": { - "id": "compute.regionAutoscalers.insert", - "path": "projects/{project}/regions/{region}/autoscalers", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "autoDelete": { + "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", + "type": "boolean" + }, + "customImage": { + "description": "The custom source image to be used to restore this disk when instantiating this instance template.", + "type": "string" + } + } + }, + "InstanceTemplateAggregatedList": { + "id": "InstanceTemplateAggregatedList", + "description": "Contains a list of InstanceTemplatesScopedList.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#instanceTemplateAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstanceTemplatesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "The name of the scope that contains this set of instance templates.", + "$ref": "InstanceTemplatesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an autoscaler in the specified project using the data included in the request." + } + } + } + }, + "InstanceTemplatesScopedList": { + "id": "InstanceTemplatesScopedList", + "type": "object", + "properties": { + "instanceTemplates": { + "description": "[Output Only] A list of instance templates that are contained within the specified project and zone.", + "type": "array", + "items": { + "$ref": "InstanceTemplate" + } }, - "update": { - "id": "compute.regionAutoscalers.update", - "path": "projects/{project}/regions/{region}/autoscalers", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "PUT", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] An informational warning that replaces the list of instance templates when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates an autoscaler in the specified project using the data included in the request." + } + } + } + }, + "InstanceSettings": { + "id": "InstanceSettings", + "description": "Represents a Instance Settings resource. You can use instance settings to configure default settings for Compute Engine VM instances. For example, you can use it to configure default machine type of Compute Engine VM instances.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#instance_settings for instance settings.", + "default": "compute#instanceSettings", + "type": "string" }, - "patch": { - "id": "compute.regionAutoscalers.patch", - "path": "projects/{project}/regions/{region}/autoscalers", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "PATCH", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "fingerprint": { + "description": "Specifies a fingerprint for instance settings, which is essentially a hash of the instance settings resource's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance settings resource. You must always provide an up-to-date fingerprint hash in order to update or change the resource, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", + "type": "string", + "format": "byte" }, - "delete": { - "id": "compute.regionAutoscalers.delete", - "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "httpMethod": "DELETE", - "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "autoscaler" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified autoscaler." + "metadata": { + "description": "The metadata key/value pairs assigned to all the instances in the corresponding scope.", + "$ref": "InstanceSettingsMetadata" + }, + "zone": { + "description": "[Output Only] URL of the zone where the resource resides You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" } } }, - "backendBuckets": { - "methods": { - "list": { - "id": "compute.backendBuckets.list", - "path": "projects/{project}/global/backendBuckets", - "flatPath": "projects/{project}/global/backendBuckets", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "BackendBucketList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of BackendBucket resources available to the specified project." + "InstanceSettingsMetadata": { + "id": "InstanceSettingsMetadata", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", + "default": "compute#metadata", + "type": "string" }, - "get": { - "id": "compute.backendBuckets.get", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "httpMethod": "GET", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "response": { - "$ref": "BackendBucket" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified BackendBucket resource." + "items": { + "description": "A metadata key/value items map. The total size of all keys and values must be less than 512KB.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "InstantSnapshotList": { + "id": "InstantSnapshotList", + "description": "Contains a list of InstantSnapshot resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#instantSnapshotList", + "type": "string" }, - "insert": { - "id": "compute.backendBuckets.insert", - "path": "projects/{project}/global/backendBuckets", - "flatPath": "projects/{project}/global/backendBuckets", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "BackendBucket" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a BackendBucket resource in the specified project using the data included in the request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "delete": { - "id": "compute.backendBuckets.delete", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "httpMethod": "DELETE", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified BackendBucket resource." + "items": { + "description": "A list of InstantSnapshot resources.", + "type": "array", + "items": { + "$ref": "InstantSnapshot" + } }, - "update": { - "id": "compute.backendBuckets.update", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "httpMethod": "PUT", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "request": { - "$ref": "BackendBucket" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified BackendBucket resource with the data included in the request." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "patch": { - "id": "compute.backendBuckets.patch", - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "httpMethod": "PATCH", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "request": { - "$ref": "BackendBucket" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified BackendBucket resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "addSignedUrlKey": { - "id": "compute.backendBuckets.addSignedUrlKey", - "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", - "httpMethod": "POST", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "request": { - "$ref": "SignedUrlKey" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds a key for validating requests with signed URLs for this backend bucket." + } + } + } + }, + "InstantSnapshot": { + "id": "InstantSnapshot", + "description": "Represents a InstantSnapshot resource. You can use instant snapshots to create disk rollback points quickly..", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#instantSnapshot for InstantSnapshot resources.", + "default": "compute#instantSnapshot", + "type": "string" }, - "deleteSignedUrlKey": { - "id": "compute.backendBuckets.deleteSignedUrlKey", - "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", - "httpMethod": "POST", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "keyName": { - "description": "The name of the Signed URL Key to delete.", - "location": "query", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendBucket", - "keyName" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes a key for validating requests with signed URLs for this backend bucket." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "setEdgeSecurityPolicy": { - "id": "compute.backendBuckets.setEdgeSecurityPolicy", - "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendBucket" - ], - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the edge security policy for the specified backend bucket." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "getIamPolicy": { - "id": "compute.backendBuckets.getIamPolicy", - "path": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "setIamPolicy": { - "id": "compute.backendBuckets.setIamPolicy", - "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.backendBuckets.testIamPermissions", - "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" + "status": { + "description": "[Output Only] The status of the instantSnapshot. This can be CREATING, DELETING, FAILED, or READY.", + "type": "string", + "enumDescriptions": [ + "InstantSnapshot creation is in progress.", + "InstantSnapshot is currently being deleted.", + "InstantSnapshot creation failed.", + "InstantSnapshot has been created successfully.", + "InstantSnapshot is currently unavailable and cannot be used for Disk restoration" ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "UNAVAILABLE" + ] + }, + "sourceDisk": { + "description": "URL of the source disk used to create this instant snapshot. Note that the source disk must be in the same zone/region as the instant snapshot to be created. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + }, + "sourceDiskId": { + "description": "[Output Only] The ID value of the disk used to create this InstantSnapshot. This value may be used to determine whether the InstantSnapshot was taken from the current or a previous instance of a given disk name.", + "type": "string" + }, + "diskSizeGb": { + "description": "[Output Only] Size of the source disk, specified in GB.", + "type": "string", + "format": "int64" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "labels": { + "description": "Labels to apply to this InstantSnapshot. These can be later modified by the setLabels method. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this InstantSnapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a InstantSnapshot.", + "type": "string", + "format": "byte" + }, + "zone": { + "description": "[Output Only] URL of the zone where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "architecture": { + "description": "[Output Only] The architecture of the instant snapshot. Valid values are ARM64 or X86_64.", + "type": "string", + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ] + }, + "resourceStatus": { + "description": "[Output Only] Status information for the instant snapshot resource.", + "$ref": "InstantSnapshotResourceStatus" + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" } } }, - "backendServices": { - "methods": { - "list": { - "id": "compute.backendServices.list", - "path": "projects/{project}/global/backendServices", - "flatPath": "projects/{project}/global/backendServices", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "InstantSnapshotResourceStatus": { + "id": "InstantSnapshotResourceStatus", + "type": "object", + "properties": { + "storageSizeBytes": { + "description": "[Output Only] The storage size of this instant snapshot.", + "type": "string", + "format": "int64" + } + } + }, + "InstantSnapshotAggregatedList": { + "id": "InstantSnapshotAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#instantSnapshotAggregatedList for aggregated lists of instantSnapshots.", + "default": "compute#instantSnapshotAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstantSnapshotsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of instantSnapshots.", + "$ref": "InstantSnapshotsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "BackendServiceList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of BackendService resources available to the specified project." + } }, - "aggregatedList": { - "id": "compute.backendServices.aggregatedList", - "path": "projects/{project}/aggregated/backendServices", - "flatPath": "projects/{project}/aggregated/backendServices", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InstantSnapshotsScopedList": { + "id": "InstantSnapshotsScopedList", + "type": "object", + "properties": { + "instantSnapshots": { + "description": "[Output Only] A list of instantSnapshots contained in this scope.", + "type": "array", + "items": { + "$ref": "InstantSnapshot" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of instantSnapshots when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "BackendServiceAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project." + } + } + } + }, + "InterconnectAttachmentList": { + "id": "InterconnectAttachmentList", + "description": "Response to the list request, and contains a list of interconnect attachments.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.", + "default": "compute#interconnectAttachmentList", + "type": "string" }, - "listUsable": { - "id": "compute.backendServices.listUsable", - "path": "projects/{project}/global/backendServices/listUsable", - "flatPath": "projects/{project}/global/backendServices/listUsable", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InterconnectAttachment resources.", + "type": "array", + "items": { + "$ref": "InterconnectAttachment" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "BackendServiceListUsable" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of all usable backend services in the specified project." + } + } + } + }, + "InterconnectAttachment": { + "id": "InterconnectAttachment", + "description": "Represents an Interconnect Attachment (VLAN) resource. You can use Interconnect attachments (VLANS) to connect your Virtual Private Cloud networks to your on-premises networks through an Interconnect. For more information, read Creating VLAN Attachments.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", + "default": "compute#interconnectAttachment", + "type": "string" }, - "get": { - "id": "compute.backendServices.get", - "path": "projects/{project}/global/backendServices/{backendService}", - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "httpMethod": "GET", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" - ], - "response": { - "$ref": "BackendService" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "interconnect": { + "description": "URL of the underlying Interconnect object that this attachment's traffic will traverse through.", + "type": "string" + }, + "router": { + "description": "URL of the Cloud Router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the regional interconnect attachment resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "googleReferenceId": { + "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.", + "deprecated": true, + "type": "string" + }, + "mtu": { + "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the value will default to 1440.", + "type": "integer", + "format": "int32" + }, + "privateInterconnectInfo": { + "description": "[Output Only] Information specific to an InterconnectAttachment. This property is populated if the interconnect that this is attached to is of type DEDICATED.", + "$ref": "InterconnectAttachmentPrivateInfo" + }, + "operationalStatus": { + "description": "[Output Only] The current status of whether or not this interconnect attachment is functional, which can take one of the following values: - OS_ACTIVE: The attachment has been turned up and is ready to use. - OS_UNPROVISIONED: The attachment is not ready to use yet, because turnup is not complete. ", + "type": "string", + "enumDescriptions": [ + "Indicates that attachment has been turned up and is ready to use.", + "Indicates that attachment is not ready to use yet, because turnup is not complete." ], - "description": "Returns the specified BackendService resource." + "enum": [ + "OS_ACTIVE", + "OS_UNPROVISIONED" + ] }, - "insert": { - "id": "compute.backendServices.insert", - "path": "projects/{project}/global/backendServices", - "flatPath": "projects/{project}/global/backendServices", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" + "cloudRouterIpAddress": { + "description": "[Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", + "type": "string" + }, + "customerRouterIpAddress": { + "description": "[Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", + "type": "string" + }, + "type": { + "description": "The type of interconnect attachment this is, which can take one of the following values: - DEDICATED: an attachment to a Dedicated Interconnect. - PARTNER: an attachment to a Partner Interconnect, created by the customer. - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the partner. ", + "type": "string", + "enumDescriptions": [ + "Attachment to a dedicated interconnect.", + "Attachment to a partner interconnect, created by the customer.", + "Attachment to a partner interconnect, created by the partner." ], - "request": { - "$ref": "BackendService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "DEDICATED", + "PARTNER", + "PARTNER_PROVIDER" + ] + }, + "pairingKey": { + "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of a PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", + "type": "string" + }, + "adminEnabled": { + "description": "Determines whether this Attachment will carry packets. Not present for PARTNER_PROVIDER.", + "type": "boolean" + }, + "vlanTag8021q": { + "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093. Only specified at creation time.", + "type": "integer", + "format": "int32" + }, + "edgeAvailabilityDomain": { + "description": "Desired availability domain for the attachment. Only available for type PARTNER, at creation time, and can take one of the following values: - AVAILABILITY_DOMAIN_ANY - AVAILABILITY_DOMAIN_1 - AVAILABILITY_DOMAIN_2 For improved reliability, customers should configure a pair of attachments, one per availability domain. The selected availability domain will be provided to the Partner via the pairing key, so that the provisioned circuit will lie in the specified domain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview ." + "enum": [ + "AVAILABILITY_DOMAIN_1", + "AVAILABILITY_DOMAIN_2", + "AVAILABILITY_DOMAIN_ANY" + ] }, - "delete": { - "id": "compute.backendServices.delete", - "path": "projects/{project}/global/backendServices/{backendService}", - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "httpMethod": "DELETE", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" + "candidateSubnets": { + "description": "Up to 16 candidate prefixes that can be used to restrict the allocation of cloudRouterIpAddress and customerRouterIpAddress for this attachment. All prefixes must be within link-local address space (169.254.0.0/16) and must be /29 or shorter (/28, /27, etc). Google will attempt to select an unused /29 from the supplied candidate prefix(es). The request will fail if all possible /29s are in use on Google's edge. If not supplied, Google will randomly select an unused /29 from all of link-local space.", + "type": "array", + "items": { + "type": "string" + } + }, + "bandwidth": { + "description": "Provisioned bandwidth capacity for the interconnect attachment. For attachments of type DEDICATED, the user can set the bandwidth. For attachments of type PARTNER, the Google Partner that is operating the interconnect must set the bandwidth. Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can take one of the following values: - BPS_50M: 50 Mbit/s - BPS_100M: 100 Mbit/s - BPS_200M: 200 Mbit/s - BPS_300M: 300 Mbit/s - BPS_400M: 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: 1 Gbit/s - BPS_2G: 2 Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - BPS_20G: 20 Gbit/s - BPS_50G: 50 Gbit/s ", + "type": "string", + "enumDescriptions": [ + "100 Mbit/s", + "10 Gbit/s", + "1 Gbit/s", + "200 Mbit/s", + "20 Gbit/s", + "2 Gbit/s", + "300 Mbit/s", + "400 Mbit/s", + "500 Mbit/s", + "50 Gbit/s", + "50 Mbit/s", + "5 Gbit/s" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "BPS_100M", + "BPS_10G", + "BPS_1G", + "BPS_200M", + "BPS_20G", + "BPS_2G", + "BPS_300M", + "BPS_400M", + "BPS_500M", + "BPS_50G", + "BPS_50M", + "BPS_5G" + ] + }, + "partnerMetadata": { + "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED.", + "$ref": "InterconnectAttachmentPartnerMetadata" + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this InterconnectAttachment, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InterconnectAttachment.", + "type": "string", + "format": "byte" + }, + "state": { + "description": "[Output Only] The current state of this attachment's functionality. Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only PARTNER and PARTNER_PROVIDER interconnect attachments. This state can take one of the following values: - ACTIVE: The attachment has been turned up and is ready to use. - UNPROVISIONED: The attachment is not ready to use yet, because turnup is not complete. - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet been configured on the Partner side. - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER attachment was created that references it. - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is waiting for a customer to activate it. - DEFUNCT: The attachment was deleted externally and is no longer functional. This could be because the associated Interconnect was removed, or because the other side of a Partner attachment was deleted. ", + "type": "string", + "enumDescriptions": [ + "Indicates that attachment has been turned up and is ready to use.", + "The attachment was deleted externally and is no longer functional. This could be because the associated Interconnect was wiped out, or because the other side of a Partner attachment was deleted.", + "A PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER attachment was created that references it.", + "PARTNER or PARTNER_PROVIDER attachment that is waiting for the customer to activate.", + "A newly created PARTNER attachment that has not yet been configured on the Partner side.", + "", + "Indicates that attachment is not ready to use yet, because turnup is not complete." ], - "description": "Deletes the specified BackendService resource." + "enum": [ + "ACTIVE", + "DEFUNCT", + "PARTNER_REQUEST_RECEIVED", + "PENDING_CUSTOMER", + "PENDING_PARTNER", + "STATE_UNSPECIFIED", + "UNPROVISIONED" + ] }, - "update": { - "id": "compute.backendServices.update", - "path": "projects/{project}/global/backendServices/{backendService}", - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "httpMethod": "PUT", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" + "partnerAsn": { + "description": "Optional BGP ASN for the router supplied by a Layer 3 Partner if they configured BGP on behalf of the customer. Output only for PARTNER type, input only for PARTNER_PROVIDER, not available for DEDICATED.", + "type": "string", + "format": "int64" + }, + "encryption": { + "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud Interconnect*, the VLAN attachment must be created with this option. ", + "type": "string", + "enumDescriptions": [ + "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use HA VPN over Cloud Interconnect, the interconnect attachment must be created with this option.", + "This is the default value, which means the Interconnect Attachment will carry unencrypted traffic. VMs will be able to send traffic to or receive traffic from such interconnect attachment." ], - "request": { - "$ref": "BackendService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "IPSEC", + "NONE" + ] + }, + "ipsecInternalAddresses": { + "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool.", + "type": "array", + "items": { + "type": "string" + } + }, + "dataplaneVersion": { + "description": "[Output Only] Dataplane version for this InterconnectAttachment. This field is only present for Dataplane version 2 and higher. Absence of this field in the API output indicates that the Dataplane is version 1.", + "type": "integer", + "format": "int32" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "stackType": { + "description": "The stack type for this interconnect attachment to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at interconnect attachments creation and update interconnect attachment operations.", + "type": "string", + "enumDescriptions": [ + "The interconnect attachment can have both IPv4 and IPv6 addresses.", + "The interconnect attachment will only be assigned IPv4 addresses." ], - "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview." + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ] }, - "patch": { - "id": "compute.backendServices.patch", - "path": "projects/{project}/global/backendServices/{backendService}", - "flatPath": "projects/{project}/global/backendServices/{backendService}", - "httpMethod": "PATCH", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "cloudRouterIpv6Address": { + "description": "[Output Only] IPv6 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", + "type": "string" + }, + "customerRouterIpv6Address": { + "description": "[Output Only] IPv6 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", + "type": "string" + }, + "candidateIpv6Subnets": { + "description": "This field is not available.", + "type": "array", + "items": { + "type": "string" + } + }, + "cloudRouterIpv6InterfaceId": { + "description": "This field is not available.", + "type": "string" + }, + "customerRouterIpv6InterfaceId": { + "description": "This field is not available.", + "type": "string" + }, + "subnetLength": { + "description": "Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The default value is 29, except for Cross-Cloud Interconnect connections that use an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal to 30. For example, connections that use an Azure remote location fall into this category. In these cases, the default value is 30, and requesting 29 returns an error. Where both 29 and 30 are allowed, 29 is preferred, because it gives Google Cloud Support more debugging visibility. ", + "type": "integer", + "format": "int32" + }, + "remoteService": { + "description": "[Output Only] If the attachment is on a Cross-Cloud Interconnect connection, this field contains the interconnect's remote location service provider. Example values: \"Amazon Web Services\" \"Microsoft Azure\". The field is set only for attachments on Cross-Cloud Interconnect connections. Its value is copied from the InterconnectRemoteLocation remoteService field.", + "type": "string" + }, + "configurationConstraints": { + "description": "[Output Only] Constraints for this attachment, if any. The attachment does not work if these constraints are not met.", + "$ref": "InterconnectAttachmentConfigurationConstraints" + } + } + }, + "InterconnectAttachmentPrivateInfo": { + "id": "InterconnectAttachmentPrivateInfo", + "description": "Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED.", + "type": "object", + "properties": { + "tag8021q": { + "description": "[Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.", + "type": "integer", + "format": "uint32" + } + } + }, + "InterconnectAttachmentPartnerMetadata": { + "id": "InterconnectAttachmentPartnerMetadata", + "description": "Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments.", + "type": "object", + "properties": { + "partnerName": { + "description": "Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values.", + "type": "string" + }, + "interconnectName": { + "description": "Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance \"Chicago 1\". This value may be validated to match approved Partner values.", + "type": "string" + }, + "portalUrl": { + "description": "URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values.", + "type": "string" + } + } + }, + "InterconnectAttachmentConfigurationConstraints": { + "id": "InterconnectAttachmentConfigurationConstraints", + "type": "object", + "properties": { + "bgpMd5": { + "description": "[Output Only] Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested.", + "type": "string", + "enumDescriptions": [ + "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be configured.", + "MD5_REQUIRED: BGP MD5 authentication must be configured.", + "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured" + ], + "enum": [ + "MD5_OPTIONAL", + "MD5_REQUIRED", + "MD5_UNSUPPORTED" + ] + }, + "bgpPeerAsnRanges": { + "description": "[Output Only] List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend.", + "type": "array", + "items": { + "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange" + } + } + } + }, + "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange": { + "id": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange", + "type": "object", + "properties": { + "min": { + "type": "integer", + "format": "uint32" + }, + "max": { + "type": "integer", + "format": "uint32" + } + } + }, + "InterconnectAttachmentAggregatedList": { + "id": "InterconnectAttachmentAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.", + "default": "compute#interconnectAttachmentAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InterconnectAttachmentsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of interconnect attachments.", + "$ref": "InterconnectAttachmentsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "backendService" - ], - "request": { - "$ref": "BackendService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + } }, - "addSignedUrlKey": { - "id": "compute.backendServices.addSignedUrlKey", - "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", - "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" - ], - "request": { - "$ref": "SignedUrlKey" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds a key for validating requests with signed URLs for this backend service." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "InterconnectAttachmentsScopedList": { + "id": "InterconnectAttachmentsScopedList", + "type": "object", + "properties": { + "interconnectAttachments": { + "description": "A list of interconnect attachments contained in this scope.", + "type": "array", + "items": { + "$ref": "InterconnectAttachment" + } }, - "deleteSignedUrlKey": { - "id": "compute.backendServices.deleteSignedUrlKey", - "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", - "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "keyName": { - "description": "The name of the Signed URL Key to delete.", - "location": "query", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "Interconnect": { + "id": "Interconnect", + "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the Google Cloud network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", + "default": "compute#interconnect", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.interconnects.insert" + ] }, - "parameterOrder": [ - "project", - "backendService", - "keyName" + "type": "string" + }, + "location": { + "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned.", + "type": "string" + }, + "linkType": { + "description": "Type of link requested, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this field indicates the speed of each of the links in the bundle, not the speed of the entire bundle.", + "type": "string", + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR" + ] + }, + "requestedLinkCount": { + "description": "Target number of physical links in the link bundle, as requested by the customer.", + "type": "integer", + "format": "int32" + }, + "interconnectType": { + "description": "Type of interconnect, which can take one of the following values: - PARTNER: A partner-managed interconnection shared between customers though a partner. - DEDICATED: A dedicated physical interconnection with the customer. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.", + "type": "string", + "enumDescriptions": [ + "A dedicated physical interconnection with the customer.", + "[Deprecated] A private, physical interconnection with the customer.", + "A partner-managed interconnection shared between customers via partner." ], - "description": "Deletes a key for validating requests with signed URLs for this backend service." + "enum": [ + "DEDICATED", + "IT_PRIVATE", + "PARTNER" + ] }, - "setSecurityPolicy": { - "id": "compute.backendServices.setSecurityPolicy", - "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", - "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" + "adminEnabled": { + "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", + "type": "boolean" + }, + "nocContactEmail": { + "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications. This field is required for users who sign up for Cloud Interconnect using workforce identity federation.", + "type": "string" + }, + "customerName": { + "description": "Customer name, to put in the Letter of Authorization as the party authorized to request a crossconnect.", + "type": "string" + }, + "operationalStatus": { + "description": "[Output Only] The current status of this Interconnect's functionality, which can take one of the following values: - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may be provisioned on this Interconnect. - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be provisioned on this Interconnect. - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No attachments may be provisioned or updated on this Interconnect. ", + "type": "string", + "enumDescriptions": [ + "The interconnect is valid, turned up, and ready to use. Attachments may be provisioned on this interconnect.", + "The interconnect has not completed turnup. No attachments may be provisioned on this interconnect." ], - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "OS_ACTIVE", + "OS_UNPROVISIONED" + ] + }, + "provisionedLinkCount": { + "description": "[Output Only] Number of links actually provisioned in this interconnect.", + "type": "integer", + "format": "int32" + }, + "interconnectAttachments": { + "description": "[Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.", + "type": "array", + "items": { + "type": "string" + } + }, + "peerIpAddress": { + "description": "[Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.", + "type": "string" + }, + "googleIpAddress": { + "description": "[Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.", + "type": "string" + }, + "googleReferenceId": { + "description": "[Output Only] Google reference ID to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.", + "type": "string" + }, + "expectedOutages": { + "description": "[Output Only] A list of outages expected for this Interconnect.", + "type": "array", + "items": { + "$ref": "InterconnectOutageNotification" + } + }, + "circuitInfos": { + "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", + "type": "array", + "items": { + "$ref": "InterconnectCircuitInfo" + } + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Interconnect, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Interconnect.", + "type": "string", + "format": "byte" + }, + "state": { + "description": "[Output Only] The current state of Interconnect functionality, which can take one of the following values: - ACTIVE: The Interconnect is valid, turned up and ready to use. Attachments may be provisioned on this Interconnect. - UNPROVISIONED: The Interconnect has not completed turnup. No attachments may be provisioned on this Interconnect. - UNDER_MAINTENANCE: The Interconnect is undergoing internal maintenance. No attachments may be provisioned or updated on this Interconnect. ", + "type": "string", + "enumDescriptions": [ + "The interconnect is valid, turned up, and ready to use. Attachments may be provisioned on this interconnect.", + "The interconnect has not completed turnup. No attachments may be provisioned on this interconnect." ], - "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview" + "enum": [ + "ACTIVE", + "UNPROVISIONED" + ] + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "macsec": { + "description": "Configuration that enables Media Access Control security (MACsec) on the Cloud Interconnect connection between Google and your on-premises router.", + "$ref": "InterconnectMacsec" + }, + "macsecEnabled": { + "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement fails if the MACsec object is not specified.", + "type": "boolean" + }, + "remoteLocation": { + "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside of Google's network that the interconnect is connected to.", + "type": "string" + }, + "requestedFeatures": { + "description": "Optional. List of features requested for this Interconnect connection, which can take one of the following values: - MACSEC If specified then the connection is created on MACsec capable hardware ports. If not specified, the default value is false, which allocates non-MACsec capable ports first if available. This parameter can be provided only with Interconnect INSERT. It isn't valid for Interconnect PATCH.", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "enum": [ + "IF_MACSEC" + ] + } + }, + "availableFeatures": { + "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "enum": [ + "IF_MACSEC" + ] + } + } + } + }, + "InterconnectOutageNotification": { + "id": "InterconnectOutageNotification", + "description": "Description of a planned outage on this Interconnect.", + "type": "object", + "properties": { + "name": { + "description": "Unique identifier for this outage notification.", + "type": "string" }, - "setEdgeSecurityPolicy": { - "id": "compute.backendServices.setEdgeSecurityPolicy", - "path": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy", - "flatPath": "projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" - ], - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the edge security policy for the specified backend service." + "description": { + "description": "A description about the purpose of the outage.", + "type": "string" }, - "getHealth": { - "id": "compute.backendServices.getHealth", - "path": "projects/{project}/global/backendServices/{backendService}/getHealth", - "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the queried instance belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "backendService" - ], - "request": { - "$ref": "ResourceGroupReference" - }, - "response": { - "$ref": "BackendServiceGroupHealth" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "source": { + "description": "The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.", + "type": "string", + "enumDescriptions": [ + "This notification was generated by Google.", + "[Deprecated] This notification was generated by Google." ], - "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }" + "enum": [ + "GOOGLE", + "NSRC_GOOGLE" + ] }, - "getIamPolicy": { - "id": "compute.backendServices.getIamPolicy", - "path": "projects/{project}/global/backendServices/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/backendServices/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "state": { + "description": "State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with \"NS_\" have been deprecated in favor of the unprefixed values.", + "type": "string", + "enumDescriptions": [ + "This outage notification is active. The event could be in the future, present, or past. See start_time and end_time for scheduling.", + "The outage associated with this notification was cancelled before the outage was due to start.", + "The outage associated with this notification is complete.", + "[Deprecated] This outage notification is active. The event could be in the future, present, or past. See start_time and end_time for scheduling.", + "[Deprecated] The outage associated with this notification was canceled before the outage was due to start." ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "enum": [ + "ACTIVE", + "CANCELLED", + "COMPLETED", + "NS_ACTIVE", + "NS_CANCELED" + ] }, - "setIamPolicy": { - "id": "compute.backendServices.setIamPolicy", - "path": "projects/{project}/global/backendServices/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/backendServices/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "issueType": { + "description": "Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with \"IT_\" have been deprecated in favor of the unprefixed values.", + "type": "string", + "enumDescriptions": [ + "[Deprecated] The Interconnect may be completely out of service for some or all of the specified window.", + "[Deprecated] Some circuits comprising the Interconnect will be out of service during the expected window. The interconnect as a whole should remain up, albeit with reduced bandwidth.", + "The Interconnect may be completely out of service for some or all of the specified window.", + "Some circuits comprising the Interconnect will be out of service during the expected window. The interconnect as a whole should remain up, albeit with reduced bandwidth." ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "IT_OUTAGE", + "IT_PARTIAL_OUTAGE", + "OUTAGE", + "PARTIAL_OUTAGE" + ] }, - "testIamPermissions": { - "id": "compute.backendServices.testIamPermissions", - "path": "projects/{project}/global/backendServices/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/backendServices/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "affectedCircuits": { + "description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.", + "type": "array", + "items": { + "type": "string" + } + }, + "startTime": { + "description": "Scheduled start time for the outage (milliseconds since Unix epoch).", + "type": "string", + "format": "int64" + }, + "endTime": { + "description": "Scheduled end time for the outage (milliseconds since Unix epoch).", + "type": "string", + "format": "int64" } } }, - "regionBackendServices": { - "methods": { - "list": { - "id": "compute.regionBackendServices.list", - "path": "projects/{project}/regions/{region}/backendServices", - "flatPath": "projects/{project}/regions/{region}/backendServices", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "BackendServiceList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region." + "InterconnectCircuitInfo": { + "id": "InterconnectCircuitInfo", + "description": "Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only.", + "type": "object", + "properties": { + "googleCircuitId": { + "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up.", + "type": "string" }, - "listUsable": { - "id": "compute.regionBackendServices.listUsable", - "path": "projects/{project}/regions/{region}/backendServices/listUsable", - "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "googleDemarcId": { + "description": "Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA.", + "type": "string" + }, + "customerDemarcId": { + "description": "Customer-side demarc ID for this circuit.", + "type": "string" + } + } + }, + "InterconnectMacsec": { + "id": "InterconnectMacsec", + "description": "Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router.", + "type": "object", + "properties": { + "preSharedKeys": { + "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "type": "array", + "items": { + "$ref": "InterconnectMacsecPreSharedKey" + } + }, + "failOpen": { + "description": "If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", + "type": "boolean" + } + } + }, + "InterconnectMacsecPreSharedKey": { + "id": "InterconnectMacsecPreSharedKey", + "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", + "type": "object", + "properties": { + "name": { + "description": "Required. A name for this pre-shared key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" + }, + "startTime": { + "description": "A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart.", + "type": "string" + } + } + }, + "InterconnectList": { + "id": "InterconnectList", + "description": "Response to the list request, and contains a list of interconnects.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.", + "default": "compute#interconnectList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Interconnect resources.", + "type": "array", + "items": { + "$ref": "Interconnect" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request. It must be a string that meets the requirements in RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "BackendServiceListUsable" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of all usable backend services in the specified project in the given region." + } + } + } + }, + "InterconnectsGetDiagnosticsResponse": { + "id": "InterconnectsGetDiagnosticsResponse", + "description": "Response for the InterconnectsGetDiagnosticsRequest.", + "type": "object", + "properties": { + "result": { + "$ref": "InterconnectDiagnostics" + } + } + }, + "InterconnectDiagnostics": { + "id": "InterconnectDiagnostics", + "description": "Diagnostics information about the Interconnect connection, which contains detailed and current technical information about Google's side of the connection.", + "type": "object", + "properties": { + "macAddress": { + "description": "The MAC address of the Interconnect's bundle interface.", + "type": "string" }, - "get": { - "id": "compute.regionBackendServices.get", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "GET", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "backendService" - ], - "response": { - "$ref": "BackendService" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "arpCaches": { + "description": "A list of InterconnectDiagnostics.ARPEntry objects, describing individual neighbors currently seen by the Google router in the ARP cache for the Interconnect. This will be empty when the Interconnect is not bundled.", + "type": "array", + "items": { + "$ref": "InterconnectDiagnosticsARPEntry" + } + }, + "links": { + "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", + "type": "array", + "items": { + "$ref": "InterconnectDiagnosticsLinkStatus" + } + }, + "bundleOperationalStatus": { + "description": "The operational status of the bundle interface.", + "type": "string", + "enumDescriptions": [ + "If bundleAggregationType is LACP: LACP is not established and/or all links in the bundle have DOWN operational status. If bundleAggregationType is STATIC: one or more links in the bundle has DOWN operational status.", + "If bundleAggregationType is LACP: LACP is established and at least one link in the bundle has UP operational status. If bundleAggregationType is STATIC: all links in the bundle (typically just one) have UP operational status." ], - "description": "Returns the specified regional BackendService resource." + "enum": [ + "BUNDLE_OPERATIONAL_STATUS_DOWN", + "BUNDLE_OPERATIONAL_STATUS_UP" + ] }, - "insert": { - "id": "compute.regionBackendServices.insert", - "path": "projects/{project}/regions/{region}/backendServices", - "flatPath": "projects/{project}/regions/{region}/backendServices", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" + "bundleAggregationType": { + "description": "The aggregation type of the bundle interface.", + "type": "string", + "enumDescriptions": [ + "LACP is enabled.", + "LACP is disabled." ], - "request": { - "$ref": "BackendService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "BUNDLE_AGGREGATION_TYPE_LACP", + "BUNDLE_AGGREGATION_TYPE_STATIC" + ] + } + } + }, + "InterconnectDiagnosticsARPEntry": { + "id": "InterconnectDiagnosticsARPEntry", + "description": "Describing the ARP neighbor entries seen on this link", + "type": "object", + "properties": { + "macAddress": { + "description": "The MAC address of this ARP neighbor.", + "type": "string" + }, + "ipAddress": { + "description": "The IP address of this ARP neighbor.", + "type": "string" + } + } + }, + "InterconnectDiagnosticsLinkStatus": { + "id": "InterconnectDiagnosticsLinkStatus", + "type": "object", + "properties": { + "circuitId": { + "description": "The unique ID for this link assigned during turn up by Google.", + "type": "string" + }, + "googleDemarc": { + "description": "The Demarc address assigned by Google and provided in the LoA.", + "type": "string" + }, + "receivingOpticalPower": { + "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level.", + "$ref": "InterconnectDiagnosticsLinkOpticalPower" + }, + "transmittingOpticalPower": { + "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the transmitted light level.", + "$ref": "InterconnectDiagnosticsLinkOpticalPower" + }, + "lacpStatus": { + "$ref": "InterconnectDiagnosticsLinkLACPStatus" + }, + "operationalStatus": { + "description": "The operational status of the link.", + "type": "string", + "enumDescriptions": [ + "The interface is unable to communicate with the remote end.", + "The interface has low level communication with the remote end." ], - "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview." + "enum": [ + "LINK_OPERATIONAL_STATUS_DOWN", + "LINK_OPERATIONAL_STATUS_UP" + ] }, - "delete": { - "id": "compute.regionBackendServices.delete", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "DELETE", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "backendService" + "arpCaches": { + "description": "A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP neighbor entries seen on this link. This will be empty if the link is bundled", + "type": "array", + "items": { + "$ref": "InterconnectDiagnosticsARPEntry" + } + }, + "macsec": { + "description": "Describes the status of MACsec encryption on this link.", + "$ref": "InterconnectDiagnosticsMacsecStatus" + } + } + }, + "InterconnectDiagnosticsLinkOpticalPower": { + "id": "InterconnectDiagnosticsLinkOpticalPower", + "type": "object", + "properties": { + "value": { + "description": "Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links.", + "type": "number", + "format": "float" + }, + "state": { + "description": "The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include: - OK: The value has not crossed a warning threshold. - LOW_WARNING: The value has crossed below the low warning threshold. - HIGH_WARNING: The value has crossed above the high warning threshold. - LOW_ALARM: The value has crossed below the low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm threshold. ", + "type": "string", + "enumDescriptions": [ + "The value has crossed above the high alarm threshold.", + "The value of the current optical power has crossed above the high warning threshold.", + "The value of the current optical power has crossed below the low alarm threshold.", + "The value of the current optical power has crossed below the low warning threshold.", + "The value of the current optical power has not crossed a warning threshold." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "HIGH_ALARM", + "HIGH_WARNING", + "LOW_ALARM", + "LOW_WARNING", + "OK" + ] + } + } + }, + "InterconnectDiagnosticsLinkLACPStatus": { + "id": "InterconnectDiagnosticsLinkLACPStatus", + "type": "object", + "properties": { + "state": { + "description": "The state of a LACP link, which can take one of the following values: - ACTIVE: The link is configured and active within the bundle. - DETACHED: The link is not configured within the bundle. This means that the rest of the object should be empty. ", + "type": "string", + "enumDescriptions": [ + "The link is configured and active within the bundle.", + "The link is not configured within the bundle, this means the rest of the object should be empty." ], - "description": "Deletes the specified regional BackendService resource." + "enum": [ + "ACTIVE", + "DETACHED" + ] }, - "update": { - "id": "compute.regionBackendServices.update", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "PUT", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "googleSystemId": { + "description": "System ID of the port on Google's side of the LACP exchange.", + "type": "string" + }, + "neighborSystemId": { + "description": "System ID of the port on the neighbor's side of the LACP exchange.", + "type": "string" + } + } + }, + "InterconnectDiagnosticsMacsecStatus": { + "id": "InterconnectDiagnosticsMacsecStatus", + "description": "Describes the status of MACsec encryption on the link.", + "type": "object", + "properties": { + "operational": { + "description": "Indicates whether or not MACsec is operational on this link.", + "type": "boolean" + }, + "ckn": { + "description": "Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational.", + "type": "string" + } + } + }, + "InterconnectsGetMacsecConfigResponse": { + "id": "InterconnectsGetMacsecConfigResponse", + "description": "Response for the InterconnectsGetMacsecConfigRequest.", + "type": "object", + "properties": { + "result": { + "$ref": "InterconnectMacsecConfig" + }, + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" + } + } + }, + "InterconnectMacsecConfig": { + "id": "InterconnectMacsecConfig", + "description": "MACsec configuration information for the Interconnect connection. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect connection.", + "type": "object", + "properties": { + "preSharedKeys": { + "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "type": "array", + "items": { + "$ref": "InterconnectMacsecConfigPreSharedKey" + } + } + } + }, + "InterconnectMacsecConfigPreSharedKey": { + "id": "InterconnectMacsecConfigPreSharedKey", + "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", + "type": "object", + "properties": { + "name": { + "description": "User provided name for this pre-shared key.", + "type": "string" + }, + "ckn": { + "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.", + "type": "string" + }, + "cak": { + "description": "An auto-generated Connectivity Association Key (CAK) for this key.", + "type": "string" + }, + "startTime": { + "description": "User provided timestamp on or after which this key is valid.", + "type": "string" + } + } + }, + "InterconnectLocationList": { + "id": "InterconnectLocationList", + "description": "Response to the list request, and contains a list of interconnect locations.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations.", + "default": "compute#interconnectLocationList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InterconnectLocation resources.", + "type": "array", + "items": { + "$ref": "InterconnectLocation" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "backendService" - ], - "request": { - "$ref": "BackendService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview ." + } + } + } + }, + "InterconnectLocation": { + "id": "InterconnectLocation", + "description": "Represents an Interconnect Attachment (VLAN) Location resource. You can use this resource to find location details about an Interconnect attachment (VLAN). For more information about interconnect attachments, read Creating VLAN Attachments.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.", + "default": "compute#interconnectLocation", + "type": "string" }, - "patch": { - "id": "compute.regionBackendServices.patch", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "PATCH", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "backendService" - ], - "request": { - "$ref": "BackendService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "description": { + "description": "[Output Only] An optional description of the resource.", + "type": "string" }, - "setSecurityPolicy": { - "id": "compute.regionBackendServices.setSecurityPolicy", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "backendService" - ], - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview" + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" }, - "getHealth": { - "id": "compute.regionBackendServices.getHealth", - "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", - "httpMethod": "POST", - "parameters": { - "backendService": { - "description": "Name of the BackendService resource for which to get health.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "backendService" - ], - "request": { - "$ref": "ResourceGroupReference" - }, - "response": { - "$ref": "BackendServiceGroupHealth" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the most recent health check results for this regional BackendService." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "getIamPolicy": { - "id": "compute.regionBackendServices.getIamPolicy", - "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "setIamPolicy": { - "id": "compute.regionBackendServices.setIamPolicy", - "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "peeringdbFacilityId": { + "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", + "type": "string" + }, + "address": { + "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", + "type": "string" + }, + "facilityProvider": { + "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "type": "string" + }, + "facilityProviderFacilityId": { + "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", + "type": "string" + }, + "regionInfos": { + "description": "[Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions.", + "type": "array", + "items": { + "$ref": "InterconnectLocationRegionInfo" + } + }, + "continent": { + "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "AFRICA", + "ASIA_PAC", + "C_AFRICA", + "C_ASIA_PAC", + "C_EUROPE", + "C_NORTH_AMERICA", + "C_SOUTH_AMERICA", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ] }, - "testIamPermissions": { - "id": "compute.regionBackendServices.testIamPermissions", - "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" + "city": { + "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", + "type": "string" + }, + "availabilityZone": { + "description": "[Output Only] Availability zone for this InterconnectLocation. Within a metropolitan area (metro), maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\".", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of this InterconnectLocation, which can take one of the following values: - CLOSED: The InterconnectLocation is closed and is unavailable for provisioning new Interconnects. - AVAILABLE: The InterconnectLocation is available for provisioning new Interconnects. ", + "type": "string", + "enumDescriptions": [ + "The InterconnectLocation is available for provisioning new Interconnects.", + "The InterconnectLocation is closed for provisioning new Interconnects." ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "AVAILABLE", + "CLOSED" + ] + }, + "supportsPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "availableFeatures": { + "description": "[Output only] List of features available at this InterconnectLocation, which can take one of the following values: - MACSEC ", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "Media Access Control security (MACsec)" + ], + "enum": [ + "IF_MACSEC" + ] + } + }, + "availableLinkTypes": { + "description": "[Output only] List of link types available at this InterconnectLocation, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR ", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + ], + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR" + ] + } + } + } + }, + "InterconnectLocationRegionInfo": { + "id": "InterconnectLocationRegionInfo", + "description": "Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.", + "type": "object", + "properties": { + "region": { + "description": "URL for the region of this location.", + "type": "string" + }, + "expectedRttMs": { + "description": "Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.", + "type": "string", + "format": "int64" + }, + "locationPresence": { + "description": "Identifies the network presence of this location.", + "type": "string", + "enumDescriptions": [ + "This region is not in any common network presence with this InterconnectLocation.", + "This region shares the same regional network presence as this InterconnectLocation.", + "[Deprecated] This region is not in any common network presence with this InterconnectLocation.", + "[Deprecated] This region shares the same regional network presence as this InterconnectLocation." ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "GLOBAL", + "LOCAL_REGION", + "LP_GLOBAL", + "LP_LOCAL_REGION" + ] } } }, - "regionCommitments": { - "methods": { - "list": { - "id": "compute.regionCommitments.list", - "path": "projects/{project}/regions/{region}/commitments", - "flatPath": "projects/{project}/regions/{region}/commitments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "CommitmentList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of commitments contained within the specified region." + "InterconnectRemoteLocationList": { + "id": "InterconnectRemoteLocationList", + "description": "Response to the list request, and contains a list of interconnect remote locations.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#interconnectRemoteLocationList for lists of interconnect remote locations.", + "default": "compute#interconnectRemoteLocationList", + "type": "string" }, - "aggregatedList": { - "id": "compute.regionCommitments.aggregatedList", - "path": "projects/{project}/aggregated/commitments", - "flatPath": "projects/{project}/aggregated/commitments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "CommitmentAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of commitments by region." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "get": { - "id": "compute.regionCommitments.get", - "path": "projects/{project}/regions/{region}/commitments/{commitment}", - "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", - "httpMethod": "GET", - "parameters": { - "commitment": { - "description": "Name of the commitment to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "commitment" - ], - "response": { - "$ref": "Commitment" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified commitment resource." + "items": { + "description": "A list of InterconnectRemoteLocation resources.", + "type": "array", + "items": { + "$ref": "InterconnectRemoteLocation" + } }, - "insert": { - "id": "compute.regionCommitments.insert", - "path": "projects/{project}/regions/{region}/commitments", - "flatPath": "projects/{project}/regions/{region}/commitments", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token lets you get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Commitment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "InterconnectRemoteLocation": { + "id": "InterconnectRemoteLocation", + "description": "Represents a Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#interconnectRemoteLocation for interconnect remote locations.", + "default": "compute#interconnectRemoteLocation", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional description of the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "peeringdbFacilityId": { + "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", + "type": "string" + }, + "address": { + "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", + "type": "string" + }, + "facilityProvider": { + "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "type": "string" + }, + "facilityProviderFacilityId": { + "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", + "type": "string" + }, + "continent": { + "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "description": "Creates a commitment in the specified project using the data included in the request." + "enum": [ + "AFRICA", + "ASIA_PAC", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ] }, - "update": { - "id": "compute.regionCommitments.update", - "path": "projects/{project}/regions/{region}/commitments/{commitment}", - "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", - "httpMethod": "PATCH", - "parameters": { - "commitment": { - "description": "Name of the commitment for which auto renew is being updated.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - } - }, - "parameterOrder": [ - "project", - "region", - "commitment" + "city": { + "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of this InterconnectRemoteLocation, which can take one of the following values: - CLOSED: The InterconnectRemoteLocation is closed and is unavailable for provisioning new Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects. ", + "type": "string", + "enumDescriptions": [ + "The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects.", + "The InterconnectRemoteLocation is closed for provisioning new Cross-Cloud Interconnects." ], - "request": { - "$ref": "Commitment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "AVAILABLE", + "CLOSED" + ] + }, + "remoteService": { + "description": "[Output Only] Indicates the service provider present at the remote location. Example values: \"Amazon Web Services\", \"Microsoft Azure\".", + "type": "string" + }, + "permittedConnections": { + "description": "[Output Only] Permitted connections.", + "type": "array", + "items": { + "$ref": "InterconnectRemoteLocationPermittedConnections" + } + }, + "constraints": { + "description": "[Output Only] Constraints on the parameters for creating Cross-Cloud Interconnect and associated InterconnectAttachments.", + "$ref": "InterconnectRemoteLocationConstraints" + }, + "attachmentConfigurationConstraints": { + "description": "[Output Only] Subset of fields from InterconnectAttachment's |configurationConstraints| field that apply to all attachments for this remote location.", + "$ref": "InterconnectAttachmentConfigurationConstraints" + }, + "lacp": { + "description": "[Output Only] Link Aggregation Control Protocol (LACP) constraints, which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED", + "type": "string", + "enumDescriptions": [ + "LACP_SUPPORTED: LACP is supported, and enabled by default on the Cross-Cloud Interconnect.", + "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this port. GetDiagnostics shows bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." ], - "description": "Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: auto_renew." + "enum": [ + "LACP_SUPPORTED", + "LACP_UNSUPPORTED" + ] + }, + "maxLagSize100Gbps": { + "description": "[Output Only] The maximum number of 100 Gbps ports supported in a link aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed max_lag_size_100_gbps.", + "type": "integer", + "format": "int32" + }, + "maxLagSize10Gbps": { + "description": "[Output Only] The maximum number of 10 Gbps ports supported in a link aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed max_lag_size_10_gbps.", + "type": "integer", + "format": "int32" } } }, - "diskTypes": { - "methods": { - "list": { - "id": "compute.diskTypes.list", - "path": "projects/{project}/zones/{zone}/diskTypes", - "flatPath": "projects/{project}/zones/{zone}/diskTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "DiskTypeList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of disk types available to the specified project." + "InterconnectRemoteLocationPermittedConnections": { + "id": "InterconnectRemoteLocationPermittedConnections", + "type": "object", + "properties": { + "interconnectLocation": { + "description": "[Output Only] URL of an Interconnect location that is permitted to connect to this Interconnect remote location.", + "type": "string" + } + } + }, + "InterconnectRemoteLocationConstraints": { + "id": "InterconnectRemoteLocationConstraints", + "type": "object", + "properties": { + "subnetLengthRange": { + "description": "[Output Only] [min-length, max-length] The minimum and maximum value (inclusive) for the IPv4 subnet length. For example, an interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure requires /30 subnets. This range specifies the values supported by both cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If a remote cloud has no constraint on IPv4 subnet length, the range would thus be {min: 29, max: 30}. ", + "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange" }, - "aggregatedList": { - "id": "compute.diskTypes.aggregatedList", - "path": "projects/{project}/aggregated/diskTypes", - "flatPath": "projects/{project}/aggregated/diskTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" + "portPairVlan": { + "description": "[Output Only] Port pair VLAN constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN", + "type": "string", + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is part of a pair of ports that should have matching VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote locations. While GCP's API does not explicitly group pairs of ports, the UI uses this field to ensure matching VLAN ids when configuring a redundant VLAN pair.", + "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint." ], - "response": { - "$ref": "DiskTypeAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "PORT_PAIR_MATCHING_VLAN", + "PORT_PAIR_UNCONSTRAINED_VLAN" + ] + }, + "portPairRemoteLocation": { + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", + "type": "string", + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates ports in pairs, and the user should choose the same remote location for both ports.", + "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a redundant pair of Cross-Cloud Interconnects using two different remote locations in the same city." ], - "description": "Retrieves an aggregated list of disk types." + "enum": [ + "PORT_PAIR_MATCHING_REMOTE_LOCATION", + "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" + ] + } + } + }, + "InterconnectRemoteLocationConstraintsSubnetLengthRange": { + "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "type": "object", + "properties": { + "min": { + "type": "integer", + "format": "int32" }, - "get": { - "id": "compute.diskTypes.get", - "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}", - "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}", - "httpMethod": "GET", - "parameters": { - "diskType": { - "description": "Name of the disk type to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } + "max": { + "type": "integer", + "format": "int32" + } + } + }, + "LicenseCode": { + "id": "LicenseCode", + "description": "Represents a License Code resource. A License Code is a unique identifier used to represent a license resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#licenseCode for licenses.", + "default": "compute#licenseCode", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "name": { + "description": "[Output Only] Name of the resource. The name is 1-20 characters long and must be a valid 64 bit integer.", + "pattern": "[0-9]{0,20}?", + "annotations": { + "required": [ + "compute.licenses.insert" + ] }, - "parameterOrder": [ - "project", - "zone", - "diskType" + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "[Output Only] Description of this License Code.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "transferable": { + "description": "[Output Only] If true, the license will remain attached when creating images or snapshots from disks. Otherwise, the license is not transferred.", + "type": "boolean" + }, + "state": { + "description": "[Output Only] Current state of this License Code.", + "type": "string", + "enumDescriptions": [ + "Machines are not allowed to attach boot disks with this License Code. Requests to create new resources with this license will be rejected.", + "Use is allowed for anyone with USE_READ_ONLY access to this License Code.", + "Use of this license is limited to a project whitelist.", + "", + "Reserved state." ], - "response": { - "$ref": "DiskType" + "enum": [ + "DISABLED", + "ENABLED", + "RESTRICTED", + "STATE_UNSPECIFIED", + "TERMINATED" + ] + }, + "licenseAlias": { + "description": "[Output Only] URL and description aliases of Licenses with the same License Code.", + "type": "array", + "items": { + "$ref": "LicenseCodeLicenseAlias" + } + } + } + }, + "LicenseCodeLicenseAlias": { + "id": "LicenseCodeLicenseAlias", + "type": "object", + "properties": { + "selfLink": { + "description": "[Output Only] URL of license corresponding to this License Code.", + "type": "string" + }, + "description": { + "description": "[Output Only] Description of this License Code.", + "type": "string" + } + } + }, + "License": { + "id": "License", + "description": "Represents a License resource. A License represents billing and aggregate usage data for public and marketplace images. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#license for licenses.", + "default": "compute#license", + "type": "string" + }, + "name": { + "description": "Name of the resource. The name must be 1-63 characters long and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.images.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified disk type." + "type": "string" + }, + "chargesUseFee": { + "description": "[Output Only] Deprecated. This field no longer reflects whether a license charges a usage fee.", + "type": "boolean" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "licenseCode": { + "description": "[Output Only] The unique code used to attach this license to images, snapshots, and disks.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional textual description of the resource; provided by the client when the resource is created.", + "type": "string" + }, + "transferable": { + "description": "If false, licenses will not be copied from the source resource when creating an image from a disk, disk from snapshot, or snapshot from disk.", + "type": "boolean" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "resourceRequirements": { + "$ref": "LicenseResourceRequirements" } } }, - "regionDiskTypes": { - "methods": { - "list": { - "id": "compute.regionDiskTypes.list", - "path": "projects/{project}/regions/{region}/diskTypes", - "flatPath": "projects/{project}/regions/{region}/diskTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "LicenseResourceRequirements": { + "id": "LicenseResourceRequirements", + "type": "object", + "properties": { + "minGuestCpuCount": { + "description": "Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.", + "type": "integer", + "format": "int32" + }, + "minMemoryMb": { + "description": "Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.", + "type": "integer", + "format": "int32" + } + } + }, + "LicensesListResponse": { + "id": "LicensesListResponse", + "type": "object", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of License resources.", + "type": "array", + "items": { + "$ref": "License" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "RegionDiskTypeList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of regional disk types available to the specified project." + } + } + } + }, + "MachineImageList": { + "id": "MachineImageList", + "description": "A list of machine images.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#machineImagesListResponse for machine image lists.", + "default": "compute#machineImageList", + "type": "string" }, - "get": { - "id": "compute.regionDiskTypes.get", - "path": "projects/{project}/regions/{region}/diskTypes/{diskType}", - "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", - "httpMethod": "GET", - "parameters": { - "diskType": { - "description": "Name of the disk type to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of MachineImage resources.", + "type": "array", + "items": { + "$ref": "MachineImage" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "diskType" - ], - "response": { - "$ref": "DiskType" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified regional disk type." + } } } }, - "externalVpnGateways": { - "methods": { - "insert": { - "id": "compute.externalVpnGateways.insert", - "path": "projects/{project}/global/externalVpnGateways", - "flatPath": "projects/{project}/global/externalVpnGateways", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "ExternalVpnGateway" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request." + "MachineImage": { + "id": "MachineImage", + "description": "Represents a machine image resource. A machine image is a Compute Engine resource that stores all the configuration, metadata, permissions, and data from one or more disks required to create a Virtual machine (VM) instance. For more information, see Machine images.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#machineImage for machine image.", + "default": "compute#machineImage", + "type": "string" }, - "list": { - "id": "compute.externalVpnGateways.list", - "path": "projects/{project}/global/externalVpnGateways", - "flatPath": "projects/{project}/global/externalVpnGateways", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ExternalVpnGatewayList" + "id": { + "description": "[Output Only] A unique identifier for this machine image. The server defines this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this machine image in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.machineImages.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] The URL for this machine image. The server defines this URL.", + "type": "string" + }, + "sourceInstance": { + "description": "The source instance used to create the machine image. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance ", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the machine image. One of the following values: INVALID, CREATING, READY, DELETING, and UPLOADING.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "description": "Retrieves the list of ExternalVpnGateway available to the specified project." + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "UPLOADING" + ] + }, + "sourceInstanceProperties": { + "description": "[Output Only] DEPRECATED: Please use instance_properties instead for source instance related properties. New properties will not be added to this field.", + "$ref": "SourceInstanceProperties" + }, + "instanceProperties": { + "description": "[Output Only] Properties of source instance", + "$ref": "InstanceProperties" + }, + "savedDisks": { + "description": "An array of Machine Image specific properties for disks attached to the source instance", + "type": "array", + "items": { + "$ref": "SavedDisk" + } + }, + "storageLocations": { + "description": "The regional or multi-regional Cloud Storage bucket location where the machine image is stored.", + "type": "array", + "items": { + "type": "string" + } + }, + "machineImageEncryptionKey": { + "description": "Encrypts the machine image using a customer-supplied encryption key. After you encrypt a machine image using a customer-supplied key, you must provide the same key if you use the machine image later. For example, you must provide the encryption key when you create an instance from the encrypted machine image in a future request. Customer-supplied encryption keys do not protect access to metadata of the machine image. If you do not provide an encryption key when creating the machine image, then the machine image will be encrypted using an automatically generated key and you do not need to provide a key to use the machine image later.", + "$ref": "CustomerEncryptionKey" + }, + "guestFlush": { + "description": "[Input Only] Whether to attempt an application consistent machine image by informing the OS to prepare for the snapshot process.", + "type": "boolean" + }, + "sourceDiskEncryptionKeys": { + "description": "[Input Only] The customer-supplied encryption key of the disks attached to the source instance. Required if the source disk is protected by a customer-supplied encryption key.", + "type": "array", + "items": { + "$ref": "SourceDiskEncryptionKey" + } + }, + "totalStorageBytes": { + "description": "[Output Only] Total size of the storage used by the machine image.", + "type": "string", + "format": "int64" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + } + } + }, + "SourceInstanceProperties": { + "id": "SourceInstanceProperties", + "description": "DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field.", + "type": "object", + "properties": { + "description": { + "description": "An optional text description for the instances that are created from this machine image.", + "type": "string" + }, + "tags": { + "description": "A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.", + "$ref": "Tags" + }, + "machineType": { + "description": "The machine type to use for instances that are created from this machine image.", + "type": "string" + }, + "canIpForward": { + "description": "Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.", + "type": "boolean" + }, + "networkInterfaces": { + "description": "An array of network access configurations for this interface.", + "type": "array", + "items": { + "$ref": "NetworkInterface" + } + }, + "disks": { + "description": "An array of disks that are associated with the instances that are created from this machine image.", + "type": "array", + "items": { + "$ref": "SavedAttachedDisk" + } + }, + "metadata": { + "description": "The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.", + "$ref": "Metadata" + }, + "serviceAccounts": { + "description": "A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances.", + "type": "array", + "items": { + "$ref": "ServiceAccount" + } + }, + "scheduling": { + "description": "Specifies the scheduling options for the instances that are created from this machine image.", + "$ref": "Scheduling" + }, + "labels": { + "description": "Labels to apply to instances that are created from this machine image.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "guestAccelerators": { + "description": "A list of guest accelerator cards' type and count to use for instances created from this machine image.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } }, - "get": { - "id": "compute.externalVpnGateways.get", - "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "httpMethod": "GET", - "parameters": { - "externalVpnGateway": { - "description": "Name of the externalVpnGateway to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "externalVpnGateway" - ], - "response": { - "$ref": "ExternalVpnGateway" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request." + "minCpuPlatform": { + "description": "Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more information, read Specifying a Minimum CPU Platform.", + "type": "string" }, - "delete": { - "id": "compute.externalVpnGateways.delete", - "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", - "httpMethod": "DELETE", - "parameters": { - "externalVpnGateway": { - "description": "Name of the externalVpnGateways to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "externalVpnGateway" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "deletionProtection": { + "description": "Whether the instance created from this machine image should be protected against deletion.", + "type": "boolean" + }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "type": "string", + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], - "description": "Deletes the specified externalVpnGateway." + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ] + } + } + }, + "SavedAttachedDisk": { + "id": "SavedAttachedDisk", + "description": "DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", + "default": "compute#savedAttachedDisk", + "type": "string" }, - "testIamPermissions": { - "id": "compute.externalVpnGateways.testIamPermissions", - "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" + "type": { + "description": "Specifies the type of the attached disk, either SCRATCH or PERSISTENT.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "PERSISTENT", + "SCRATCH" + ] + }, + "mode": { + "description": "The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY.", + "type": "string", + "enumDescriptions": [ + "Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.", + "*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode." ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "READ_ONLY", + "READ_WRITE" + ] }, - "setLabels": { - "id": "compute.externalVpnGateways.setLabels", - "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", - "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" + "source": { + "description": "Specifies a URL of the disk attached to the source instance.", + "type": "string" + }, + "deviceName": { + "description": "Specifies the name of the disk attached to the source instance.", + "type": "string" + }, + "index": { + "description": "Specifies zero-based index of the disk that is attached to the source instance.", + "type": "integer", + "format": "int32" + }, + "boot": { + "description": "Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", + "type": "boolean" + }, + "autoDelete": { + "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", + "type": "boolean" + }, + "licenses": { + "description": "[Output Only] Any valid publicly visible licenses.", + "type": "array", + "items": { + "type": "string" + } + }, + "interface": { + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NVME", + "SCSI" + ] + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", + "type": "array", + "items": { + "$ref": "GuestOsFeature" + } + }, + "diskEncryptionKey": { + "description": "The encryption key for the disk.", + "$ref": "CustomerEncryptionKey" + }, + "diskSizeGb": { + "description": "The size of the disk in base-2 GB.", + "type": "string", + "format": "int64" + }, + "storageBytes": { + "description": "[Output Only] A size of the storage used by the disk's snapshot by this machine image.", + "type": "string", + "format": "int64" + }, + "storageBytesStatus": { + "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation." + "enum": [ + "UPDATING", + "UP_TO_DATE" + ] + }, + "diskType": { + "description": "[Output Only] URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd", + "type": "string" } } }, - "globalForwardingRules": { - "methods": { - "list": { - "id": "compute.globalForwardingRules.list", - "path": "projects/{project}/global/forwardingRules", - "flatPath": "projects/{project}/global/forwardingRules", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" + "SavedDisk": { + "id": "SavedDisk", + "description": "An instance-attached disk resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks.", + "default": "compute#savedDisk", + "type": "string" + }, + "sourceDisk": { + "description": "Specifies a URL of the disk attached to the source instance.", + "type": "string" + }, + "storageBytes": { + "description": "[Output Only] Size of the individual disk snapshot used by this machine image.", + "type": "string", + "format": "int64" + }, + "storageBytesStatus": { + "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "ForwardingRuleList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "UPDATING", + "UP_TO_DATE" + ] + }, + "architecture": { + "description": "[Output Only] The architecture of the attached disk.", + "type": "string", + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project." + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ] + } + } + }, + "SourceDiskEncryptionKey": { + "id": "SourceDiskEncryptionKey", + "type": "object", + "properties": { + "sourceDisk": { + "description": "URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + "type": "string" }, - "get": { - "id": "compute.globalForwardingRules.get", - "path": "projects/{project}/global/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", - "httpMethod": "GET", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "diskEncryptionKey": { + "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.", + "$ref": "CustomerEncryptionKey" + } + } + }, + "MachineTypeList": { + "id": "MachineTypeList", + "description": "Contains a list of machine types.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#machineTypeList for lists of machine types.", + "default": "compute#machineTypeList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of MachineType resources.", + "type": "array", + "items": { + "$ref": "MachineType" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "forwardingRule" - ], - "response": { - "$ref": "ForwardingRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request." - }, - "insert": { - "id": "compute.globalForwardingRules.insert", - "path": "projects/{project}/global/forwardingRules", - "flatPath": "projects/{project}/global/forwardingRules", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "ForwardingRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request." + } + } + } + }, + "MachineType": { + "id": "MachineType", + "description": "Represents a Machine Type resource. You can use specific machine types for your VM instances based on performance and pricing requirements. For more information, read Machine Types.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The type of the resource. Always compute#machineType for machine types.", + "default": "compute#machineType", + "type": "string" }, - "delete": { - "id": "compute.globalForwardingRules.delete", - "path": "projects/{project}/global/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", - "httpMethod": "DELETE", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "forwardingRule" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified GlobalForwardingRule resource." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "setTarget": { - "id": "compute.globalForwardingRules.setTarget", - "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", - "httpMethod": "POST", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource in which target is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "forwardingRule" - ], - "request": { - "$ref": "TargetReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "patch": { - "id": "compute.globalForwardingRules.patch", - "path": "projects/{project}/global/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", - "httpMethod": "PATCH", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional textual description of the resource.", + "type": "string" + }, + "guestCpus": { + "description": "[Output Only] The number of virtual CPUs that are available to the instance.", + "type": "integer", + "format": "int32" + }, + "memoryMb": { + "description": "[Output Only] The amount of physical memory available to the instance, defined in MB.", + "type": "integer", + "format": "int32" + }, + "imageSpaceGb": { + "description": "[Deprecated] This property is deprecated and will never be populated with any relevant values.", + "type": "integer", + "format": "int32" + }, + "scratchDisks": { + "description": "[Output Only] A list of extended scratch disks assigned to the instance.", + "type": "array", + "items": { + "type": "object", + "properties": { + "diskGb": { + "description": "Size of the scratch disk, defined in GB.", + "type": "integer", + "format": "int32" + } } - }, - "parameterOrder": [ - "project", - "forwardingRule" - ], - "request": { - "$ref": "ForwardingRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field." + } }, - "setLabels": { - "id": "compute.globalForwardingRules.setLabels", - "path": "projects/{project}/global/forwardingRules/{resource}/setLabels", - "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "maximumPersistentDisks": { + "description": "[Output Only] Maximum persistent disks allowed.", + "type": "integer", + "format": "int32" + }, + "maximumPersistentDisksSizeGb": { + "description": "[Output Only] Maximum total persistent disks size (GB) allowed.", + "type": "string", + "format": "int64" + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this machine type. Only applicable if the machine type is unavailable.", + "$ref": "DeprecationStatus" + }, + "zone": { + "description": "[Output Only] The name of the zone where the machine type resides, such as us-central1-a.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "isSharedCpu": { + "description": "[Output Only] Whether this machine type has a shared CPU. See Shared-core machine types for more information.", + "type": "boolean" + }, + "accelerators": { + "description": "[Output Only] A list of accelerator configurations assigned to this machine type.", + "type": "array", + "items": { + "type": "object", + "properties": { + "guestAcceleratorType": { + "description": "The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.", + "type": "string" + }, + "guestAcceleratorCount": { + "description": "Number of accelerator cards exposed to the guest.", + "type": "integer", + "format": "int32" + } } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation." + } } } }, - "forwardingRules": { - "methods": { - "list": { - "id": "compute.forwardingRules.list", - "path": "projects/{project}/regions/{region}/forwardingRules", - "flatPath": "projects/{project}/regions/{region}/forwardingRules", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "ForwardingRuleList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of ForwardingRule resources available to the specified project and region." + "MachineTypeAggregatedList": { + "id": "MachineTypeAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#machineTypeAggregatedList for aggregated lists of machine types.", + "default": "compute#machineTypeAggregatedList", + "type": "string" }, - "aggregatedList": { - "id": "compute.forwardingRules.aggregatedList", - "path": "projects/{project}/aggregated/forwardingRules", - "flatPath": "projects/{project}/aggregated/forwardingRules", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of MachineTypesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of machine types.", + "$ref": "MachineTypesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ForwardingRuleAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of forwarding rules." + } }, - "get": { - "id": "compute.forwardingRules.get", - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "httpMethod": "GET", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "response": { - "$ref": "ForwardingRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified ForwardingRule resource." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "MachineTypesScopedList": { + "id": "MachineTypesScopedList", + "type": "object", + "properties": { + "machineTypes": { + "description": "[Output Only] A list of machine types contained in this scope.", + "type": "array", + "items": { + "$ref": "MachineType" + } }, - "insert": { - "id": "compute.forwardingRules.insert", - "path": "projects/{project}/regions/{region}/forwardingRules", - "flatPath": "projects/{project}/regions/{region}/forwardingRules", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] An informational warning that appears when the machine types list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "ForwardingRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request." + } + } + } + }, + "NetworkAttachmentAggregatedList": { + "id": "NetworkAttachmentAggregatedList", + "description": "Contains a list of NetworkAttachmentsScopedList.", + "type": "object", + "properties": { + "kind": { + "default": "compute#networkAttachmentAggregatedList", + "type": "string" }, - "delete": { - "id": "compute.forwardingRules.delete", - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "httpMethod": "DELETE", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified ForwardingRule resource." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "setTarget": { - "id": "compute.forwardingRules.setTarget", - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", - "httpMethod": "POST", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource in which target is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "request": { - "$ref": "TargetReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target." + "items": { + "description": "A list of NetworkAttachmentsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of NetworkAttachments.", + "$ref": "NetworkAttachmentsScopedList" + } }, - "patch": { - "id": "compute.forwardingRules.patch", - "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", - "httpMethod": "PATCH", - "parameters": { - "forwardingRule": { - "description": "Name of the ForwardingRule resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "forwardingRule" - ], - "request": { - "$ref": "ForwardingRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field." + } + } + } + }, + "NetworkAttachmentsScopedList": { + "id": "NetworkAttachmentsScopedList", + "type": "object", + "properties": { + "networkAttachments": { + "description": "A list of NetworkAttachments contained in this scope.", + "type": "array", + "items": { + "$ref": "NetworkAttachment" + } }, - "setLabels": { - "id": "compute.forwardingRules.setLabels", - "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of network attachments when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "NetworkAttachment": { + "id": "NetworkAttachment", + "description": "NetworkAttachments A network attachment resource ...", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource.", + "default": "compute#networkAttachment", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.networkAttachments.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "resource" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the network attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "connectionPreference": { + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "INVALID" + ] + }, + "connectionEndpoints": { + "description": "[Output Only] An array of connections for all the producers connected to this network attachment.", + "type": "array", + "items": { + "$ref": "NetworkAttachmentConnectedEndpoint" + } + }, + "subnetworks": { + "description": "An array of URLs where each entry is the URL of a subnet provided by the service consumer to use for endpoints in the producers that connect to this network attachment.", + "type": "array", + "items": { + "type": "string" + } + }, + "producerRejectLists": { + "description": "Projects that are not allowed to connect to this network attachment. The project can be specified using its id or number.", + "type": "array", + "items": { + "type": "string" + } + }, + "producerAcceptLists": { + "description": "Projects that are allowed to connect to this network attachment. The project can be specified using its id or number.", + "type": "array", + "items": { + "type": "string" + } + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", + "type": "string", + "format": "byte" + }, + "network": { + "description": "[Output Only] The URL of the network which the Network Attachment belongs to. Practically it is inferred by fetching the network of the first subnetwork associated. Because it is required that all the subnetworks must be from the same network, it is assured that the Network Attachment belongs to the same network as all the subnetworks.", + "type": "string" + } + } + }, + "NetworkAttachmentConnectedEndpoint": { + "id": "NetworkAttachmentConnectedEndpoint", + "description": "[Output Only] A connection connected to this network attachment.", + "type": "object", + "properties": { + "status": { + "description": "The status of a connected endpoint to this network attachment.", + "type": "string", + "enumDescriptions": [ + "The consumer allows traffic from the producer to reach its VPC.", + "The consumer network attachment no longer exists.", + "The consumer needs to take further action before traffic can be served.", + "The consumer neither allows nor prohibits traffic from the producer to reach its VPC.", + "The consumer prohibits traffic from the producer to reach its VPC.", + "" ], - "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation." + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ] + }, + "projectIdOrNum": { + "description": "The project id or number of the interface to which the IP was assigned.", + "type": "string" + }, + "subnetwork": { + "description": "The subnetwork used to assign the IP to the producer instance network interface.", + "type": "string" + }, + "ipAddress": { + "description": "The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.", + "type": "string" + }, + "ipv6Address": { + "description": "The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6.", + "type": "string" + }, + "secondaryIpCidrRanges": { + "description": "Alias IP ranges from the same subnetwork.", + "type": "array", + "items": { + "type": "string" + } + }, + "subnetworkCidrRange": { + "description": "[Output Only] The CIDR range of the subnet from which the IPv4 internal IP was allocated from.", + "type": "string" } } }, - "regionHealthCheckServices": { - "methods": { - "list": { - "id": "compute.regionHealthCheckServices.list", - "path": "projects/{project}/regions/{region}/healthCheckServices", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "NetworkAttachmentList": { + "id": "NetworkAttachmentList", + "type": "object", + "properties": { + "kind": { + "default": "compute#networkAttachmentList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkAttachment resources.", + "type": "array", + "items": { + "$ref": "NetworkAttachment" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "HealthCheckServicesList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region." + } + } + } + }, + "NetworkEdgeSecurityService": { + "id": "NetworkEdgeSecurityService", + "description": "Represents a Google Cloud Armor network edge security service resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", + "default": "compute#networkEdgeSecurityService", + "type": "string" }, - "get": { - "id": "compute.regionHealthCheckServices.get", - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "GET", - "parameters": { - "healthCheckService": { - "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "healthCheckService" - ], - "response": { - "$ref": "HealthCheckService" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified regional HealthCheckService resource." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.regionHealthCheckServices.insert", - "path": "projects/{project}/regions/{region}/healthCheckServices", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "HealthCheckService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "delete": { - "id": "compute.regionHealthCheckServices.delete", - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "DELETE", - "parameters": { - "healthCheckService": { - "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the resource resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be provided in order to update the NetworkEdgeSecurityService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.", + "type": "string", + "format": "byte" + }, + "securityPolicy": { + "description": "The resource URL for the network edge security service associated with this network edge security service.", + "type": "string" + } + } + }, + "NetworkEdgeSecurityServiceAggregatedList": { + "id": "NetworkEdgeSecurityServiceAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security Services.", + "default": "compute#networkEdgeSecurityServiceAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of security policies.", + "$ref": "NetworkEdgeSecurityServicesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "healthCheckService" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified regional HealthCheckService." + } }, - "patch": { - "id": "compute.regionHealthCheckServices.patch", - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "PATCH", - "parameters": { - "healthCheckService": { - "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "etag": { + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NetworkEdgeSecurityServicesScopedList": { + "id": "NetworkEdgeSecurityServicesScopedList", + "type": "object", + "properties": { + "networkEdgeSecurityServices": { + "description": "A list of NetworkEdgeSecurityServices contained in this scope.", + "type": "array", + "items": { + "$ref": "NetworkEdgeSecurityService" + } + }, + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "healthCheckService" - ], - "request": { - "$ref": "HealthCheckService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified regional HealthCheckService resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + } } } }, - "healthChecks": { - "methods": { - "list": { - "id": "compute.healthChecks.list", - "path": "projects/{project}/global/healthChecks", - "flatPath": "projects/{project}/global/healthChecks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "HealthCheckList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of HealthCheck resources available to the specified project." + "NetworkEndpointGroupList": { + "id": "NetworkEndpointGroupList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupList for network endpoint group lists.", + "default": "compute#networkEndpointGroupList", + "type": "string" }, - "aggregatedList": { - "id": "compute.healthChecks.aggregatedList", - "path": "projects/{project}/aggregated/healthChecks", - "flatPath": "projects/{project}/aggregated/healthChecks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkEndpointGroup resources.", + "type": "array", + "items": { + "$ref": "NetworkEndpointGroup" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "HealthChecksAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project." + } + } + } + }, + "NetworkEndpointGroup": { + "id": "NetworkEndpointGroup", + "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#networkEndpointGroup for network endpoint group.", + "default": "compute#networkEndpointGroup", + "type": "string" }, - "get": { - "id": "compute.healthChecks.get", - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "httpMethod": "GET", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "healthCheck" - ], - "response": { - "$ref": "HealthCheck" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified HealthCheck resource." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.healthChecks.insert", - "path": "projects/{project}/global/healthChecks", - "flatPath": "projects/{project}/global/healthChecks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "HealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "networkEndpointType": { + "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.", + "type": "string", + "enumDescriptions": [ + "The network endpoint is represented by an IP address.", + "The network endpoint is represented by IP address and port pair.", + "The network endpoint is represented by fully qualified domain name and port.", + "The network endpoint is represented by an internet IP address and port.", + "The network endpoint is represented by an IP address and port. The endpoint belongs to a VM or pod running in a customer's on-premises.", + "The network endpoint is either public Google APIs or services exposed by other GCP Project with a Service Attachment. The connection is set up by private service connect", + "The network endpoint is handled by specified serverless infrastructure." ], - "description": "Creates a HealthCheck resource in the specified project using the data included in the request." + "enum": [ + "GCE_VM_IP", + "GCE_VM_IP_PORT", + "INTERNET_FQDN_PORT", + "INTERNET_IP_PORT", + "NON_GCP_PRIVATE_IP_PORT", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS" + ] + }, + "size": { + "description": "[Output only] Number of network endpoints in the network endpoint group.", + "type": "integer", + "format": "int32" + }, + "region": { + "description": "[Output Only] The URL of the region where the network endpoint group is located.", + "type": "string" + }, + "zone": { + "description": "[Output Only] The URL of the zone where the network endpoint group is located.", + "type": "string" + }, + "network": { + "description": "The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified.", + "type": "string" + }, + "subnetwork": { + "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong.", + "type": "string" + }, + "defaultPort": { + "description": "The default port used if the port number is not specified in the network endpoint. If the network endpoint type is either GCE_VM_IP, SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.", + "type": "integer", + "format": "int32" + }, + "annotations": { + "description": "Metadata defined as annotations on the network endpoint group.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "cloudRun": { + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set.", + "$ref": "NetworkEndpointGroupCloudRun" + }, + "appEngine": { + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set.", + "$ref": "NetworkEndpointGroupAppEngine" + }, + "cloudFunction": { + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set.", + "$ref": "NetworkEndpointGroupCloudFunction" + }, + "pscTargetService": { + "description": "The target service url used to set up private service connection to a Google API or a PSC Producer Service Attachment. An example value is: asia-northeast3-cloudkms.googleapis.com", + "type": "string" + }, + "pscData": { + "$ref": "NetworkEndpointGroupPscData" + } + } + }, + "NetworkEndpointGroupCloudRun": { + "id": "NetworkEndpointGroupCloudRun", + "description": "Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG.", + "type": "object", + "properties": { + "service": { + "description": "Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: \"run-service\".", + "type": "string" + }, + "tag": { + "description": "Optional Cloud Run tag represents the \"named-revision\" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: \"revision-0010\".", + "type": "string" + }, + "urlMask": { + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse \u003cservice\u003e and \u003ctag\u003e fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask \u003ctag\u003e.domain.com/\u003cservice\u003e. The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" } and { service=\"bar2\", tag=\"foo2\" } respectively.", + "type": "string" + } + } + }, + "NetworkEndpointGroupAppEngine": { + "id": "NetworkEndpointGroupAppEngine", + "description": "Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG.", + "type": "object", + "properties": { + "service": { + "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: default, my-service.", + "type": "string" }, - "delete": { - "id": "compute.healthChecks.delete", - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "httpMethod": "DELETE", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "healthCheck" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified HealthCheck resource." + "version": { + "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: v1, v2.", + "type": "string" }, - "update": { - "id": "compute.healthChecks.update", - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "httpMethod": "PUT", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "healthCheck" - ], - "request": { - "$ref": "HealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HealthCheck resource in the specified project using the data included in the request." + "urlMask": { + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs foo1-dot-appname.appspot.com/v1 and foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG with URL mask \u003cservice\u003e-dot-appname.appspot.com/\u003cversion\u003e. The URL mask will parse them to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.", + "type": "string" + } + } + }, + "NetworkEndpointGroupCloudFunction": { + "id": "NetworkEndpointGroupCloudFunction", + "description": "Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG.", + "type": "object", + "properties": { + "function": { + "description": "A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: func1.", + "type": "string" }, - "patch": { - "id": "compute.healthChecks.patch", - "path": "projects/{project}/global/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", - "httpMethod": "PATCH", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "healthCheck" - ], - "request": { - "$ref": "HealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "urlMask": { + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs mydomain.com/function1 and mydomain.com/function2 can be backed by the same Serverless NEG with URL mask /\u003cfunction\u003e. The URL mask will parse them to { function = \"function1\" } and { function = \"function2\" } respectively.", + "type": "string" } } }, - "regionHealthChecks": { - "methods": { - "list": { - "id": "compute.regionHealthChecks.list", - "path": "projects/{project}/regions/{region}/healthChecks", - "flatPath": "projects/{project}/regions/{region}/healthChecks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "HealthCheckList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of HealthCheck resources available to the specified project." + "NetworkEndpointGroupPscData": { + "id": "NetworkEndpointGroupPscData", + "description": "All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT.", + "type": "object", + "properties": { + "consumerPscAddress": { + "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", + "type": "string" }, - "get": { - "id": "compute.regionHealthChecks.get", - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "GET", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "healthCheck" - ], - "response": { - "$ref": "HealthCheck" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified HealthCheck resource." + "pscConnectionId": { + "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.regionHealthChecks.insert", - "path": "projects/{project}/regions/{region}/healthChecks", - "flatPath": "projects/{project}/regions/{region}/healthChecks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "HealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "pscConnectionStatus": { + "description": "[Output Only] The connection status of the PSC Forwarding Rule.", + "type": "string", + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" ], - "description": "Creates a HealthCheck resource in the specified project using the data included in the request." + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ] + } + } + }, + "NetworkEndpointGroupAggregatedList": { + "id": "NetworkEndpointGroupAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupAggregatedList for aggregated lists of network endpoint groups.", + "default": "compute#networkEndpointGroupAggregatedList", + "type": "string" }, - "delete": { - "id": "compute.regionHealthChecks.delete", - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "DELETE", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "healthCheck" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified HealthCheck resource." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "update": { - "id": "compute.regionHealthChecks.update", - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "PUT", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of NetworkEndpointGroupsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "The name of the scope that contains this set of network endpoint groups.", + "$ref": "NetworkEndpointGroupsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "healthCheck" - ], - "request": { - "$ref": "HealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HealthCheck resource in the specified project using the data included in the request." + } }, - "patch": { - "id": "compute.regionHealthChecks.patch", - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "PATCH", - "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "healthCheck" - ], - "request": { - "$ref": "HealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "httpHealthChecks": { - "methods": { - "list": { - "id": "compute.httpHealthChecks.list", - "path": "projects/{project}/global/httpHealthChecks", - "flatPath": "projects/{project}/global/httpHealthChecks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "HttpHealthCheckList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of HttpHealthCheck resources available to the specified project." + "NetworkEndpointGroupsScopedList": { + "id": "NetworkEndpointGroupsScopedList", + "type": "object", + "properties": { + "networkEndpointGroups": { + "description": "[Output Only] The list of network endpoint groups that are contained in this scope.", + "type": "array", + "items": { + "$ref": "NetworkEndpointGroup" + } }, - "get": { - "id": "compute.httpHealthChecks.get", - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "httpMethod": "GET", - "parameters": { - "httpHealthCheck": { - "description": "Name of the HttpHealthCheck resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] An informational warning that replaces the list of network endpoint groups when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "httpHealthCheck" - ], - "response": { - "$ref": "HttpHealthCheck" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified HttpHealthCheck resource." - }, - "insert": { - "id": "compute.httpHealthChecks.insert", - "path": "projects/{project}/global/httpHealthChecks", - "flatPath": "projects/{project}/global/httpHealthChecks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "HttpHealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request." + } + } + } + }, + "NetworkEndpointGroupsAttachEndpointsRequest": { + "id": "NetworkEndpointGroupsAttachEndpointsRequest", + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "type": "array", + "items": { + "$ref": "NetworkEndpoint" + } + } + } + }, + "NetworkEndpoint": { + "id": "NetworkEndpoint", + "description": "The network endpoint.", + "type": "object", + "properties": { + "ipAddress": { + "description": "Optional IPv4 address of network endpoint. The IP address must belong to a VM in Compute Engine (either the primary IP or as part of an aliased IP range). If the IP address is not specified, then the primary IP address for the VM instance in the network that the network endpoint group belongs to will be used. This field is redundant and need not be set for network endpoints of type GCE_VM_IP. If set, it must be set to the primary internal IP address of the attached VM instance that matches the subnetwork of the NEG. The primary internal IP address from any NIC of a multi-NIC VM instance can be added to a NEG as long as it matches the NEG subnetwork.", + "type": "string" }, - "delete": { - "id": "compute.httpHealthChecks.delete", - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "httpMethod": "DELETE", - "parameters": { - "httpHealthCheck": { - "description": "Name of the HttpHealthCheck resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "httpHealthCheck" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified HttpHealthCheck resource." + "fqdn": { + "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.", + "type": "string" }, - "update": { - "id": "compute.httpHealthChecks.update", - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "httpMethod": "PUT", - "parameters": { - "httpHealthCheck": { - "description": "Name of the HttpHealthCheck resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "httpHealthCheck" - ], - "request": { - "$ref": "HttpHealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request." + "port": { + "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used. This field can not be set for network endpoints of type GCE_VM_IP.", + "type": "integer", + "format": "int32" }, - "patch": { - "id": "compute.httpHealthChecks.patch", - "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", - "httpMethod": "PATCH", - "parameters": { - "httpHealthCheck": { - "description": "Name of the HttpHealthCheck resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "httpHealthCheck" - ], - "request": { - "$ref": "HttpHealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "instance": { + "description": "The name or a URL of VM instance of this network endpoint. This field is required for network endpoints of type GCE_VM_IP and GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group (for zonal NEGs) or in the zone within the region of the NEG (for regional NEGs). If the ipAddress is specified, it must belongs to the VM instance. The name must be 1-63 characters long, and comply with RFC1035 or be a valid URL pointing to an existing instance.", + "type": "string" + }, + "annotations": { + "description": "Metadata defined as annotations on the network endpoint.", + "type": "object", + "additionalProperties": { + "type": "string" + } } } }, - "httpsHealthChecks": { - "methods": { - "list": { - "id": "compute.httpsHealthChecks.list", - "path": "projects/{project}/global/httpsHealthChecks", - "flatPath": "projects/{project}/global/httpsHealthChecks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "HttpsHealthCheckList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "NetworkEndpointGroupsDetachEndpointsRequest": { + "id": "NetworkEndpointGroupsDetachEndpointsRequest", + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "type": "array", + "items": { + "$ref": "NetworkEndpoint" + } + } + } + }, + "NetworkEndpointGroupsListEndpointsRequest": { + "id": "NetworkEndpointGroupsListEndpointsRequest", + "type": "object", + "properties": { + "healthStatus": { + "description": "Optional query parameter for showing the health status of each network endpoint. Valid options are SKIP or SHOW. If you don't specify this parameter, the health status of network endpoints will not be provided.", + "type": "string", + "enumDescriptions": [ + "Show the health status for each network endpoint. Impacts latency of the call.", + "Health status for network endpoints will not be provided." ], - "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project." + "enum": [ + "SHOW", + "SKIP" + ] + } + } + }, + "NetworkEndpointGroupsListNetworkEndpoints": { + "id": "NetworkEndpointGroupsListNetworkEndpoints", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in the specified network endpoint group.", + "default": "compute#networkEndpointGroupsListNetworkEndpoints", + "type": "string" }, - "get": { - "id": "compute.httpsHealthChecks.get", - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "httpMethod": "GET", - "parameters": { - "httpsHealthCheck": { - "description": "Name of the HttpsHealthCheck resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "response": { - "$ref": "HttpsHealthCheck" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified HttpsHealthCheck resource." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "insert": { - "id": "compute.httpsHealthChecks.insert", - "path": "projects/{project}/global/httpsHealthChecks", - "flatPath": "projects/{project}/global/httpsHealthChecks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "HttpsHealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request." + "items": { + "description": "A list of NetworkEndpointWithHealthStatus resources.", + "type": "array", + "items": { + "$ref": "NetworkEndpointWithHealthStatus" + } }, - "delete": { - "id": "compute.httpsHealthChecks.delete", - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "httpMethod": "DELETE", - "parameters": { - "httpsHealthCheck": { - "description": "Name of the HttpsHealthCheck resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified HttpsHealthCheck resource." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "update": { - "id": "compute.httpsHealthChecks.update", - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "httpMethod": "PUT", - "parameters": { - "httpsHealthCheck": { - "description": "Name of the HttpsHealthCheck resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "request": { - "$ref": "HttpsHealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "NetworkEndpointWithHealthStatus": { + "id": "NetworkEndpointWithHealthStatus", + "type": "object", + "properties": { + "networkEndpoint": { + "description": "[Output only] The network endpoint;", + "$ref": "NetworkEndpoint" + }, + "healths": { + "description": "[Output only] The health status of network endpoint;", + "type": "array", + "items": { + "$ref": "HealthStatusForNetworkEndpoint" + } + } + } + }, + "HealthStatusForNetworkEndpoint": { + "id": "HealthStatusForNetworkEndpoint", + "type": "object", + "properties": { + "forwardingRule": { + "description": "URL of the forwarding rule associated with the health state of the network endpoint.", + "$ref": "ForwardingRuleReference" + }, + "backendService": { + "description": "URL of the backend service associated with the health state of the network endpoint.", + "$ref": "BackendServiceReference" + }, + "healthCheck": { + "description": "URL of the health check associated with the health state of the network endpoint.", + "$ref": "HealthCheckReference" + }, + "healthCheckService": { + "description": "URL of the health check service associated with the health state of the network endpoint.", + "$ref": "HealthCheckServiceReference" + }, + "healthState": { + "description": "Health state of the network endpoint determined based on the health checks configured.", + "type": "string", + "enumDescriptions": [ + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." ], - "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request." + "enum": [ + "DRAINING", + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ] + } + } + }, + "ForwardingRuleReference": { + "id": "ForwardingRuleReference", + "type": "object", + "properties": { + "forwardingRule": { + "type": "string" + } + } + }, + "BackendServiceReference": { + "id": "BackendServiceReference", + "type": "object", + "properties": { + "backendService": { + "type": "string" + } + } + }, + "HealthCheckReference": { + "id": "HealthCheckReference", + "description": "A full or valid partial URL to a health check. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check - projects/project-id/global/httpHealthChecks/health-check - global/httpHealthChecks/health-check ", + "type": "object", + "properties": { + "healthCheck": { + "type": "string" + } + } + }, + "HealthCheckServiceReference": { + "id": "HealthCheckServiceReference", + "description": "A full or valid partial URL to a health check service. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service - projects/project-id/regions/us-west1/healthCheckServices/health-check-service - regions/us-west1/healthCheckServices/health-check-service ", + "type": "object", + "properties": { + "healthCheckService": { + "type": "string" + } + } + }, + "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "type": "array", + "items": { + "$ref": "NetworkEndpoint" + } + } + } + }, + "GlobalNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "GlobalNetworkEndpointGroupsDetachEndpointsRequest", + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "type": "array", + "items": { + "$ref": "NetworkEndpoint" + } + } + } + }, + "RegionNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "type": "array", + "items": { + "$ref": "NetworkEndpoint" + } + } + } + }, + "RegionNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", + "type": "object", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "type": "array", + "items": { + "$ref": "NetworkEndpoint" + } + } + } + }, + "NetworkList": { + "id": "NetworkList", + "description": "Contains a list of networks.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#networkList for lists of networks.", + "default": "compute#networkList", + "type": "string" }, - "patch": { - "id": "compute.httpsHealthChecks.patch", - "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", - "httpMethod": "PATCH", - "parameters": { - "httpsHealthCheck": { - "description": "Name of the HttpsHealthCheck resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Network resources.", + "type": "array", + "items": { + "$ref": "Network" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "httpsHealthCheck" - ], - "request": { - "$ref": "HttpsHealthCheck" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + } } } }, - "instanceTemplates": { - "methods": { - "list": { - "id": "compute.instanceTemplates.list", - "path": "projects/{project}/global/instanceTemplates", - "flatPath": "projects/{project}/global/instanceTemplates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InstanceTemplateList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of instance templates that are contained within the specified project." + "Network": { + "id": "Network", + "description": "Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#network for networks.", + "default": "compute#network", + "type": "string" }, - "get": { - "id": "compute.instanceTemplates.get", - "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "httpMethod": "GET", - "parameters": { - "instanceTemplate": { - "description": "The name of the instance template.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "instanceTemplate" - ], - "response": { - "$ref": "InstanceTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified instance template." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.instanceTemplates.insert", - "path": "projects/{project}/global/instanceTemplates", - "flatPath": "projects/{project}/global/instanceTemplates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "InstanceTemplate" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "delete": { - "id": "compute.instanceTemplates.delete", - "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", - "httpMethod": "DELETE", - "parameters": { - "instanceTemplate": { - "description": "The name of the instance template to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "instanceTemplate" - ], - "response": { - "$ref": "Operation" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.networks.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group." + "type": "string" }, - "aggregatedList": { - "id": "compute.instanceTemplates.aggregatedList", - "path": "projects/{project}/aggregated/instanceTemplates", - "flatPath": "projects/{project}/aggregated/instanceTemplates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InstanceTemplateAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project." + "description": { + "description": "An optional description of this resource. Provide this field when you create the resource.", + "type": "string" }, - "getIamPolicy": { - "id": "compute.instanceTemplates.getIamPolicy", - "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "IPv4Range": { + "description": "Deprecated in favor of subnet mode networks. The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", + "deprecated": true, + "type": "string" + }, + "gatewayIPv4": { + "description": "[Output Only] The gateway address for default routing out of the network, selected by Google Cloud.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "autoCreateSubnetworks": { + "description": "Must be set to create a VPC network. If not set, a legacy network is created. When set to true, the VPC network is created in auto mode. When set to false, the VPC network is created in custom mode. An auto mode VPC network starts with one subnet per region. Each subnet has a predetermined range as described in Auto mode VPC network IP ranges. For custom mode VPC networks, you can add subnets using the subnetworks insert method.", + "type": "boolean" + }, + "subnetworks": { + "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks in this VPC network.", + "type": "array", + "items": { + "type": "string" + } + }, + "peerings": { + "description": "[Output Only] A list of network peerings for the resource.", + "type": "array", + "items": { + "$ref": "NetworkPeering" + } + }, + "routingConfig": { + "description": "The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce.", + "$ref": "NetworkRoutingConfig" + }, + "mtu": { + "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1300 and the maximum value is 8896. The suggested value is 1500, which is the default MTU used on the Internet, or 8896 if you want to use Jumbo frames. If unspecified, the value defaults to 1460.", + "type": "integer", + "format": "int32" }, - "setIamPolicy": { - "id": "compute.instanceTemplates.setIamPolicy", - "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "firewallPolicy": { + "description": "[Output Only] URL of the firewall policy the network is associated with.", + "type": "string" + }, + "networkFirewallPolicyEnforcementOrder": { + "description": "The network firewall policy enforcement order. Can be either AFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to AFTER_CLASSIC_FIREWALL if the field is not specified.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "AFTER_CLASSIC_FIREWALL", + "BEFORE_CLASSIC_FIREWALL" + ] }, - "testIamPermissions": { - "id": "compute.instanceTemplates.testIamPermissions", - "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" + "enableUlaInternalIpv6": { + "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign a /48 from google defined ULA prefix fd20::/20. .", + "type": "boolean" + }, + "internalIpv6Range": { + "description": "When enabling ula internal ipv6, caller optionally can specify the /48 range they want from the google defined ULA prefix fd20::/20. The input must be a valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. .", + "type": "string" + } + } + }, + "NetworkPeering": { + "id": "NetworkPeering", + "description": "A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.", + "type": "object", + "properties": { + "name": { + "description": "Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" + }, + "network": { + "description": "The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.", + "type": "string" + }, + "state": { + "description": "[Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network.", + "type": "string", + "enumDescriptions": [ + "Matching configuration exists on the peer.", + "There is no matching configuration on the peer, including the case when peer does not exist." ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "ACTIVE", + "INACTIVE" + ] + }, + "stateDetails": { + "description": "[Output Only] Details about the current state of the peering.", + "type": "string" + }, + "autoCreateRoutes": { + "description": "This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", + "type": "boolean" + }, + "exportCustomRoutes": { + "description": "Whether to export the custom routes to peer network. The default value is false.", + "type": "boolean" + }, + "importCustomRoutes": { + "description": "Whether to import the custom routes from peer network. The default value is false.", + "type": "boolean" + }, + "exchangeSubnetRoutes": { + "description": "Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", + "type": "boolean" + }, + "exportSubnetRoutesWithPublicIp": { + "description": "Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field.", + "type": "boolean" + }, + "importSubnetRoutesWithPublicIp": { + "description": "Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field.", + "type": "boolean" + }, + "peerMtu": { + "description": "Maximum Transmission Unit in bytes.", + "type": "integer", + "format": "int32" + }, + "stackType": { + "description": "Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY.", + "type": "string", + "enumDescriptions": [ + "This Peering will allow IPv4 traffic and routes to be exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic and routes will be exchanged as well.", + "This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6." ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ] } } }, - "regionInstanceTemplates": { - "methods": { - "list": { - "id": "compute.regionInstanceTemplates.list", - "path": "projects/{project}/regions/{region}/instanceTemplates", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the regions for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" + "NetworkRoutingConfig": { + "id": "NetworkRoutingConfig", + "description": "A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide.", + "type": "object", + "properties": { + "routingMode": { + "description": "The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "InstanceTemplateList" + "enum": [ + "GLOBAL", + "REGIONAL" + ] + } + } + }, + "NetworksUpdatePeeringRequest": { + "id": "NetworksUpdatePeeringRequest", + "type": "object", + "properties": { + "networkPeering": { + "$ref": "NetworkPeering" + } + } + }, + "NetworksAddPeeringRequest": { + "id": "NetworksAddPeeringRequest", + "type": "object", + "properties": { + "name": { + "description": "Name of the peering, which should conform to RFC1035.", + "annotations": { + "required": [ + "compute.networks.addPeering" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of instance templates that are contained within the specified project and region." + "type": "string" }, - "get": { - "id": "compute.regionInstanceTemplates.get", - "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "httpMethod": "GET", - "parameters": { - "instanceTemplate": { - "description": "The name of the instance template.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "instanceTemplate" - ], - "response": { - "$ref": "InstanceTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified instance template." + "peerNetwork": { + "description": "URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.", + "type": "string" }, - "insert": { - "id": "compute.regionInstanceTemplates.insert", - "path": "projects/{project}/regions/{region}/instanceTemplates", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "InstanceTemplate" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "autoCreateRoutes": { + "description": "This field will be deprecated soon. Use exchange_subnet_routes in network_peering instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", + "type": "boolean" + }, + "networkPeering": { + "description": "Network peering parameters. In order to specify route policies for peering using import and export custom routes, you must specify all peering related parameters (name, peer network, exchange_subnet_routes) in the network_peering field. The corresponding fields in NetworksAddPeeringRequest will be deprecated soon.", + "$ref": "NetworkPeering" + } + } + }, + "NetworksRemovePeeringRequest": { + "id": "NetworksRemovePeeringRequest", + "type": "object", + "properties": { + "name": { + "description": "Name of the peering, which should conform to RFC1035.", + "type": "string" + } + } + }, + "NetworksGetEffectiveFirewallsResponse": { + "id": "NetworksGetEffectiveFirewallsResponse", + "type": "object", + "properties": { + "firewalls": { + "description": "Effective firewalls on the network.", + "type": "array", + "items": { + "$ref": "Firewall" + } + }, + "firewallPolicys": { + "description": "Effective firewalls from firewall policy.", + "type": "array", + "items": { + "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + } + } + } + }, + "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "type": "object", + "properties": { + "name": { + "description": "[Output Only] The name of the firewall policy.", + "type": "string" + }, + "type": { + "description": "[Output Only] The type of the firewall policy.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request." + "enum": [ + "HIERARCHY", + "NETWORK", + "UNSPECIFIED" + ] }, - "delete": { - "id": "compute.regionInstanceTemplates.delete", - "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "httpMethod": "DELETE", - "parameters": { - "instanceTemplate": { - "description": "The name of the instance template to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "shortName": { + "description": "[Output Only] The short name of the firewall policy.", + "type": "string" + }, + "displayName": { + "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", + "deprecated": true, + "type": "string" + }, + "rules": { + "description": "The rules that apply to the network.", + "type": "array", + "items": { + "$ref": "FirewallPolicyRule" + } + } + } + }, + "ExchangedPeeringRoutesList": { + "id": "ExchangedPeeringRoutesList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#exchangedPeeringRoutesList for exchanged peering routes lists.", + "default": "compute#exchangedPeeringRoutesList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ExchangedPeeringRoute resources.", + "type": "array", + "items": { + "$ref": "ExchangedPeeringRoute" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "instanceTemplate" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone." + } } } }, - "interconnectAttachments": { - "methods": { - "list": { - "id": "compute.interconnectAttachments.list", - "path": "projects/{project}/regions/{region}/interconnectAttachments", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "InterconnectAttachmentList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of interconnect attachments contained within the specified region." + "ExchangedPeeringRoute": { + "id": "ExchangedPeeringRoute", + "type": "object", + "properties": { + "destRange": { + "description": "The destination range of the route.", + "type": "string" }, - "aggregatedList": { - "id": "compute.interconnectAttachments.aggregatedList", - "path": "projects/{project}/aggregated/interconnectAttachments", - "flatPath": "projects/{project}/aggregated/interconnectAttachments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InterconnectAttachmentAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": { + "description": "The type of the peering route.", + "type": "string", + "enumDescriptions": [ + "For routes exported from local network.", + "The peering route.", + "The peering route corresponding to subnetwork range." ], - "description": "Retrieves an aggregated list of interconnect attachments." + "enum": [ + "DYNAMIC_PEERING_ROUTE", + "STATIC_PEERING_ROUTE", + "SUBNET_PEERING_ROUTE" + ] }, - "get": { - "id": "compute.interconnectAttachments.get", - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "httpMethod": "GET", - "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "interconnectAttachment" - ], - "response": { - "$ref": "InterconnectAttachment" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified interconnect attachment." + "nextHopRegion": { + "description": "The region of peering route next hop, only applies to dynamic routes.", + "type": "string" }, - "insert": { - "id": "compute.interconnectAttachments.insert", - "path": "projects/{project}/regions/{region}/interconnectAttachments", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "InterconnectAttachment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an InterconnectAttachment in the specified project using the data included in the request." + "priority": { + "description": "The priority of the peering route.", + "type": "integer", + "format": "uint32" }, - "patch": { - "id": "compute.interconnectAttachments.patch", - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "httpMethod": "PATCH", - "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "interconnectAttachment" - ], - "request": { - "$ref": "InterconnectAttachment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "imported": { + "description": "True if the peering route has been imported from a peer. The actual import happens if the field networkPeering.importCustomRoutes is true for this network, and networkPeering.exportCustomRoutes is true for the peer network, and the import does not result in a route conflict.", + "type": "boolean" + } + } + }, + "NodeGroupList": { + "id": "NodeGroupList", + "description": "Contains a list of nodeGroups.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeGroupList for lists of node groups.", + "default": "compute#nodeGroupList", + "type": "string" }, - "delete": { - "id": "compute.interconnectAttachments.delete", - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "httpMethod": "DELETE", - "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "interconnectAttachment" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified interconnect attachment." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "setLabels": { - "id": "compute.interconnectAttachments.setLabels", - "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of NodeGroup resources.", + "type": "array", + "items": { + "$ref": "NodeGroup" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation." + } } } }, - "interconnects": { - "methods": { - "insert": { - "id": "compute.interconnects.insert", - "path": "projects/{project}/global/interconnects", - "flatPath": "projects/{project}/global/interconnects", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Interconnect" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates an Interconnect in the specified project using the data included in the request." + "NodeGroup": { + "id": "NodeGroup", + "description": "Represents a sole-tenant Node Group resource. A sole-tenant node is a physical server that is dedicated to hosting VM instances only for your specific project. Use sole-tenant nodes to keep your instances physically separated from instances in other projects, or to group your instances together on the same host hardware. For more information, read Sole-tenant nodes.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The type of the resource. Always compute#nodeGroup for node group.", + "default": "compute#nodeGroup", + "type": "string" }, - "list": { - "id": "compute.interconnects.list", - "path": "projects/{project}/global/interconnects", - "flatPath": "projects/{project}/global/interconnects", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InterconnectList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of Interconnects available to the specified project." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "getDiagnostics": { - "id": "compute.interconnects.getDiagnostics", - "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", - "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", - "httpMethod": "GET", - "parameters": { - "interconnect": { - "description": "Name of the interconnect resource to query.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnect" - ], - "response": { - "$ref": "InterconnectsGetDiagnosticsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "getMacsecConfig": { - "id": "compute.interconnects.getMacsecConfig", - "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", - "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", - "httpMethod": "GET", - "parameters": { - "interconnect": { - "description": "Name of the interconnect resource to query.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnect" - ], - "response": { - "$ref": "InterconnectsGetMacsecConfigResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the interconnectMacsecConfig for the specified Interconnect." + "name": { + "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" }, - "get": { - "id": "compute.interconnects.get", - "path": "projects/{project}/global/interconnects/{interconnect}", - "flatPath": "projects/{project}/global/interconnects/{interconnect}", - "httpMethod": "GET", - "parameters": { - "interconnect": { - "description": "Name of the interconnect to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnect" - ], - "response": { - "$ref": "Interconnect" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified Interconnect. Get a list of available Interconnects by making a list() request." + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" }, - "delete": { - "id": "compute.interconnects.delete", - "path": "projects/{project}/global/interconnects/{interconnect}", - "flatPath": "projects/{project}/global/interconnects/{interconnect}", - "httpMethod": "DELETE", - "parameters": { - "interconnect": { - "description": "Name of the interconnect to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnect" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified Interconnect." + "nodeTemplate": { + "description": "URL of the node template to create the node group from.", + "type": "string" }, - "patch": { - "id": "compute.interconnects.patch", - "path": "projects/{project}/global/interconnects/{interconnect}", - "flatPath": "projects/{project}/global/interconnects/{interconnect}", - "httpMethod": "PATCH", - "parameters": { - "interconnect": { - "description": "Name of the interconnect to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnect" + "zone": { + "description": "[Output Only] The name of the zone where the node group resides, such as us-central1-a.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "request": { - "$ref": "Interconnect" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY" + ] + }, + "size": { + "description": "[Output Only] The total number of nodes in the node group.", + "type": "integer", + "format": "int32" + }, + "autoscalingPolicy": { + "description": "Specifies how autoscaling should behave.", + "$ref": "NodeGroupAutoscalingPolicy" + }, + "maintenancePolicy": { + "description": "Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies.", + "type": "string", + "enumDescriptions": [ + "Allow the node and corresponding instances to retain default maintenance behavior.", + "", + "When maintenance must be done on a node, the instances on that node will be moved to other nodes in the group. Instances with onHostMaintenance = MIGRATE will live migrate to their destinations while instances with onHostMaintenance = TERMINATE will terminate and then restart on their destination nodes if automaticRestart = true.", + "Instances in this group will restart on the same node when maintenance has completed. Instances must have onHostMaintenance = TERMINATE, and they will only restart if automaticRestart = true." ], - "description": "Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "enum": [ + "DEFAULT", + "MAINTENANCE_POLICY_UNSPECIFIED", + "MIGRATE_WITHIN_NODE_GROUP", + "RESTART_IN_PLACE" + ] }, - "setLabels": { - "id": "compute.interconnects.setLabels", - "path": "projects/{project}/global/interconnects/{resource}/setLabels", - "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" + "locationHint": { + "description": "An opaque location hint used to place the Node close to other resources. This field is for use by internal tools that use the public API. The location hint here on the NodeGroup overrides any location_hint present in the NodeTemplate.", + "type": "string" + }, + "fingerprint": { + "type": "string", + "format": "byte" + }, + "maintenanceWindow": { + "$ref": "NodeGroupMaintenanceWindow" + }, + "shareSettings": { + "description": "Share-settings for the node group", + "$ref": "ShareSettings" + }, + "maintenanceInterval": { + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `AS_NEEDED` and `RECURRENT`.", + "type": "string", + "enumDescriptions": [ + "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." ], - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "AS_NEEDED", + "RECURRENT" + ] + } + } + }, + "NodeGroupAutoscalingPolicy": { + "id": "NodeGroupAutoscalingPolicy", + "type": "object", + "properties": { + "mode": { + "description": "The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes.", + "type": "string", + "enumDescriptions": [ + "", + "Autoscaling is disabled.", + "Autocaling is fully enabled.", + "Autoscaling will only scale out and will not remove nodes." ], - "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation." + "enum": [ + "MODE_UNSPECIFIED", + "OFF", + "ON", + "ONLY_SCALE_OUT" + ] + }, + "minNodes": { + "description": "The minimum number of nodes that the group should have.", + "type": "integer", + "format": "int32" + }, + "maxNodes": { + "description": "The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100.", + "type": "integer", + "format": "int32" } } }, - "interconnectLocations": { - "methods": { - "list": { - "id": "compute.interconnectLocations.list", - "path": "projects/{project}/global/interconnectLocations", - "flatPath": "projects/{project}/global/interconnectLocations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InterconnectLocationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of interconnect locations available to the specified project." + "NodeGroupMaintenanceWindow": { + "id": "NodeGroupMaintenanceWindow", + "description": "Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window.", + "type": "object", + "properties": { + "startTime": { + "description": "Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.", + "type": "string" }, - "get": { - "id": "compute.interconnectLocations.get", - "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}", - "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}", - "httpMethod": "GET", - "parameters": { - "interconnectLocation": { - "description": "Name of the interconnect location to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnectLocation" - ], - "response": { - "$ref": "InterconnectLocation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request." + "maintenanceDuration": { + "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", + "$ref": "Duration" } } }, - "interconnectRemoteLocations": { - "methods": { - "list": { - "id": "compute.interconnectRemoteLocations.list", - "path": "projects/{project}/global/interconnectRemoteLocations", - "flatPath": "projects/{project}/global/interconnectRemoteLocations", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "NodeGroupAggregatedList": { + "id": "NodeGroupAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeGroupAggregatedList for aggregated lists of node groups.", + "default": "compute#nodeGroupAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NodeGroupsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of node groups.", + "$ref": "NodeGroupsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "InterconnectRemoteLocationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of interconnect remote locations available to the specified project." + } }, - "get": { - "id": "compute.interconnectRemoteLocations.get", - "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", - "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", - "httpMethod": "GET", - "parameters": { - "interconnectRemoteLocation": { - "description": "Name of the interconnect remote location to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "interconnectRemoteLocation" - ], - "response": { - "$ref": "InterconnectRemoteLocation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "licenseCodes": { - "methods": { - "get": { - "id": "compute.licenseCodes.get", - "path": "projects/{project}/global/licenseCodes/{licenseCode}", - "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}", - "httpMethod": "GET", - "parameters": { - "licenseCode": { - "description": "Number corresponding to the License code resource to return.", - "pattern": "[0-9]{0,61}?", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "licenseCode" - ], - "response": { - "$ref": "LicenseCode" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "NodeGroupsScopedList": { + "id": "NodeGroupsScopedList", + "type": "object", + "properties": { + "nodeGroups": { + "description": "[Output Only] A list of node groups contained in this scope.", + "type": "array", + "items": { + "$ref": "NodeGroup" + } }, - "testIamPermissions": { - "id": "compute.licenseCodes.testIamPermissions", - "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] An informational warning that appears when the nodeGroup list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + } } } }, - "licenses": { - "methods": { - "get": { - "id": "compute.licenses.get", - "path": "projects/{project}/global/licenses/{license}", - "flatPath": "projects/{project}/global/licenses/{license}", - "httpMethod": "GET", - "parameters": { - "license": { - "description": "Name of the License resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "license" - ], - "response": { - "$ref": "License" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "NodeGroupsAddNodesRequest": { + "id": "NodeGroupsAddNodesRequest", + "type": "object", + "properties": { + "additionalNodeCount": { + "description": "Count of additional nodes to be added to the node group.", + "type": "integer", + "format": "int32" + } + } + }, + "NodeGroupsDeleteNodesRequest": { + "id": "NodeGroupsDeleteNodesRequest", + "type": "object", + "properties": { + "nodes": { + "description": "Names of the nodes to delete.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NodeGroupsListNodes": { + "id": "NodeGroupsListNodes", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The resource type, which is always compute.nodeGroupsListNodes for the list of nodes in the specified node group.", + "default": "compute#nodeGroupsListNodes", + "type": "string" }, - "list": { - "id": "compute.licenses.list", - "path": "projects/{project}/global/licenses", - "flatPath": "projects/{project}/global/licenses", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "LicensesListResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "delete": { - "id": "compute.licenses.delete", - "path": "projects/{project}/global/licenses/{license}", - "flatPath": "projects/{project}/global/licenses/{license}", - "httpMethod": "DELETE", - "parameters": { - "license": { - "description": "Name of the license resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "license" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "items": { + "description": "A list of Node resources.", + "type": "array", + "items": { + "$ref": "NodeGroupNode" + } }, - "insert": { - "id": "compute.licenses.insert", - "path": "projects/{project}/global/licenses", - "flatPath": "projects/{project}/global/licenses", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "License" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" - ], - "description": "Create a License resource in the specified project. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "getIamPolicy": { - "id": "compute.licenses.getIamPolicy", - "path": "projects/{project}/global/licenses/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + } + } + } + }, + "NodeGroupNode": { + "id": "NodeGroupNode", + "type": "object", + "properties": { + "name": { + "description": "The name of the node.", + "type": "string" }, - "setIamPolicy": { - "id": "compute.licenses.setIamPolicy", - "path": "projects/{project}/global/licenses/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "status": { + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "REPAIRING" + ] + }, + "nodeType": { + "description": "The type of this node.", + "type": "string" + }, + "serverBinding": { + "description": "Binding properties for the physical server.", + "$ref": "ServerBinding" + }, + "serverId": { + "description": "Server ID associated with this node.", + "type": "string" + }, + "disks": { + "description": "Local disk configurations.", + "type": "array", + "items": { + "$ref": "LocalDisk" + } + }, + "accelerators": { + "description": "Accelerators for this node.", + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "instances": { + "description": "Instances scheduled on this node.", + "type": "array", + "items": { + "type": "string" + } + }, + "instanceConsumptionData": { + "description": "Instance data that shows consumed resources on the node.", + "type": "array", + "items": { + "$ref": "InstanceConsumptionData" + } + }, + "consumedResources": { + "description": "Node resources that are reserved by all instances.", + "$ref": "InstanceConsumptionInfo" + }, + "totalResources": { + "description": "Total amount of available resources on the node.", + "$ref": "InstanceConsumptionInfo" }, - "testIamPermissions": { - "id": "compute.licenses.testIamPermissions", - "path": "projects/{project}/global/licenses/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "cpuOvercommitType": { + "description": "CPU overcommit.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Returns permissions that a caller has on the specified resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. " + "enum": [ + "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", + "ENABLED", + "NONE" + ] + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "upcomingMaintenance": { + "description": "[Output Only] The information about an upcoming maintenance event.", + "$ref": "UpcomingMaintenance" } } }, - "machineImages": { - "methods": { - "list": { - "id": "compute.machineImages.list", - "path": "projects/{project}/global/machineImages", - "flatPath": "projects/{project}/global/machineImages", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "MachineImageList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "ServerBinding": { + "id": "ServerBinding", + "type": "object", + "properties": { + "type": { + "type": "string", + "enumDescriptions": [ + "Node may associate with any physical server over its lifetime.", + "Node may associate with minimal physical servers over its lifetime.", + "" ], - "description": "Retrieves a list of machine images that are contained within the specified project." + "enum": [ + "RESTART_NODE_ON_ANY_SERVER", + "RESTART_NODE_ON_MINIMAL_SERVERS", + "SERVER_BINDING_TYPE_UNSPECIFIED" + ] + } + } + }, + "LocalDisk": { + "id": "LocalDisk", + "type": "object", + "properties": { + "diskType": { + "description": "Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.", + "type": "string" }, - "get": { - "id": "compute.machineImages.get", - "path": "projects/{project}/global/machineImages/{machineImage}", - "flatPath": "projects/{project}/global/machineImages/{machineImage}", - "httpMethod": "GET", - "parameters": { - "machineImage": { - "description": "The name of the machine image.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "machineImage" - ], - "response": { - "$ref": "MachineImage" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified machine image." + "diskSizeGb": { + "description": "Specifies the size of the disk in base-2 GB.", + "type": "integer", + "format": "int32" }, - "insert": { - "id": "compute.machineImages.insert", - "path": "projects/{project}/global/machineImages", - "flatPath": "projects/{project}/global/machineImages", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sourceInstance": { - "description": "Required. Source instance that is used to create the machine image from.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "MachineImage" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance." + "diskCount": { + "description": "Specifies the number of such disks.", + "type": "integer", + "format": "int32" + } + } + }, + "InstanceConsumptionData": { + "id": "InstanceConsumptionData", + "type": "object", + "properties": { + "instance": { + "description": "Server-defined URL for the instance.", + "type": "string" }, - "delete": { - "id": "compute.machineImages.delete", - "path": "projects/{project}/global/machineImages/{machineImage}", - "flatPath": "projects/{project}/global/machineImages/{machineImage}", - "httpMethod": "DELETE", - "parameters": { - "machineImage": { - "description": "The name of the machine image to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "machineImage" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone." + "consumptionInfo": { + "description": "Resources consumed by the instance.", + "$ref": "InstanceConsumptionInfo" + } + } + }, + "InstanceConsumptionInfo": { + "id": "InstanceConsumptionInfo", + "type": "object", + "properties": { + "minNodeCpus": { + "description": "The minimal guaranteed number of virtual CPUs that are reserved.", + "type": "integer", + "format": "int32" }, - "getIamPolicy": { - "id": "compute.machineImages.getIamPolicy", - "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy", - "flatPath": "projects/{project}/global/machineImages/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "guestCpus": { + "description": "The number of virtual CPUs that are available to the instance.", + "type": "integer", + "format": "int32" }, - "setIamPolicy": { - "id": "compute.machineImages.setIamPolicy", - "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy", - "flatPath": "projects/{project}/global/machineImages/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "resource" - ], - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "memoryMb": { + "description": "The amount of physical memory available to the instance, defined in MiB.", + "type": "integer", + "format": "int32" }, - "testIamPermissions": { - "id": "compute.machineImages.testIamPermissions", - "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions", - "flatPath": "projects/{project}/global/machineImages/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "localSsdGb": { + "description": "The amount of local SSD storage available to the instance, defined in GiB.", + "type": "integer", + "format": "int32" + } + } + }, + "NodeGroupsSetNodeTemplateRequest": { + "id": "NodeGroupsSetNodeTemplateRequest", + "type": "object", + "properties": { + "nodeTemplate": { + "description": "Full or partial URL of the node template resource to be updated for this node group.", + "type": "string" + } + } + }, + "NodeGroupsSimulateMaintenanceEventRequest": { + "id": "NodeGroupsSimulateMaintenanceEventRequest", + "type": "object", + "properties": { + "nodes": { + "description": "Names of the nodes to go under maintenance simulation.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NodeGroupsPerformMaintenanceRequest": { + "id": "NodeGroupsPerformMaintenanceRequest", + "type": "object", + "properties": { + "nodes": { + "description": "[Required] List of nodes affected by the call.", + "type": "array", + "items": { + "type": "string" + } + }, + "startTime": { + "description": "The start time of the schedule. The timestamp is an RFC3339 string.", + "type": "string" + } + } + }, + "NodeTemplateList": { + "id": "NodeTemplateList", + "description": "Contains a list of node templates.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeTemplateList for lists of node templates.", + "default": "compute#nodeTemplateList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NodeTemplate resources.", + "type": "array", + "items": { + "$ref": "NodeTemplate" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "resource" + } + } + } + }, + "NodeTemplate": { + "id": "NodeTemplate", + "description": "Represent a sole-tenant Node Template resource. You can use a template to define properties for nodes in a node group. For more information, read Creating node groups and instances.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The type of the resource. Always compute#nodeTemplate for node templates.", + "default": "compute#nodeTemplate", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "nodeType": { + "description": "The node type to use for nodes group that are created from this template.", + "type": "string" + }, + "nodeAffinityLabels": { + "description": "Labels to use for node affinity, which will be used in instance scheduling.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "status": { + "description": "[Output Only] The status of the node template. One of the following values: CREATING, READY, and DELETING.", + "type": "string", + "enumDescriptions": [ + "Resources are being allocated.", + "The node template is currently being deleted.", + "Invalid status.", + "The node template is ready." ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY" + ] + }, + "statusMessage": { + "description": "[Output Only] An optional, human-readable explanation of the status.", + "type": "string" + }, + "region": { + "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "nodeTypeFlexibility": { + "description": "Do not use. Instead, use the node_type property.", + "$ref": "NodeTemplateNodeTypeFlexibility" + }, + "serverBinding": { + "description": "Sets the binding properties for the physical server. Valid values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available physical server - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical server whenever possible See Sole-tenant node options for more information.", + "$ref": "ServerBinding" + }, + "disks": { + "type": "array", + "items": { + "$ref": "LocalDisk" + } + }, + "accelerators": { + "type": "array", + "items": { + "$ref": "AcceleratorConfig" + } + }, + "cpuOvercommitType": { + "description": "CPU overcommit.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", + "ENABLED", + "NONE" + ] } } }, - "machineTypes": { - "methods": { - "list": { - "id": "compute.machineTypes.list", - "path": "projects/{project}/zones/{zone}/machineTypes", - "flatPath": "projects/{project}/zones/{zone}/machineTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "NodeTemplateNodeTypeFlexibility": { + "id": "NodeTemplateNodeTypeFlexibility", + "type": "object", + "properties": { + "cpus": { + "type": "string" + }, + "memory": { + "type": "string" + }, + "localSsd": { + "type": "string" + } + } + }, + "NodeTemplateAggregatedList": { + "id": "NodeTemplateAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeTemplateAggregatedList for aggregated lists of node templates.", + "default": "compute#nodeTemplateAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NodeTemplatesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of node templates.", + "$ref": "NodeTemplatesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "MachineTypeList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of machine types available to the specified project." + } }, - "aggregatedList": { - "id": "compute.machineTypes.aggregatedList", - "path": "projects/{project}/aggregated/machineTypes", - "flatPath": "projects/{project}/aggregated/machineTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NodeTemplatesScopedList": { + "id": "NodeTemplatesScopedList", + "type": "object", + "properties": { + "nodeTemplates": { + "description": "[Output Only] A list of node templates contained in this scope.", + "type": "array", + "items": { + "$ref": "NodeTemplate" + } + }, + "warning": { + "description": "[Output Only] An informational warning that appears when the node templates list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "MachineTypeAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of machine types." + } + } + } + }, + "NodeTypeList": { + "id": "NodeTypeList", + "description": "Contains a list of node types.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeTypeList for lists of node types.", + "default": "compute#nodeTypeList", + "type": "string" }, - "get": { - "id": "compute.machineTypes.get", - "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}", - "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", - "httpMethod": "GET", - "parameters": { - "machineType": { - "description": "Name of the machine type to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NodeType resources.", + "type": "array", + "items": { + "$ref": "NodeType" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "machineType" - ], - "response": { - "$ref": "MachineType" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified machine type." + } } } }, - "networkAttachments": { - "methods": { - "aggregatedList": { - "id": "compute.networkAttachments.aggregatedList", - "path": "projects/{project}/aggregated/networkAttachments", - "flatPath": "projects/{project}/aggregated/networkAttachments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "NetworkAttachmentAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project." + "NodeType": { + "id": "NodeType", + "description": "Represent a sole-tenant Node Type resource. Each node within a node group must have a node type. A node type specifies the total amount of cores and memory for that node. Currently, the only available node type is n1-node-96-624 node type that has 96 vCPUs and 624 GB of memory, available in multiple zones. For more information read Node types.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The type of the resource. Always compute#nodeType for node types.", + "default": "compute#nodeType", + "type": "string" }, - "list": { - "id": "compute.networkAttachments.list", - "path": "projects/{project}/regions/{region}/networkAttachments", - "flatPath": "projects/{project}/regions/{region}/networkAttachments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional textual description of the resource.", + "type": "string" + }, + "cpuPlatform": { + "description": "[Output Only] The CPU platform used by this node type.", + "type": "string" + }, + "guestCpus": { + "description": "[Output Only] The number of virtual CPUs that are available to the node type.", + "type": "integer", + "format": "int32" + }, + "memoryMb": { + "description": "[Output Only] The amount of physical memory available to the node type, defined in MB.", + "type": "integer", + "format": "int32" + }, + "localSsdGb": { + "description": "[Output Only] Local SSD available to the node type, defined in GB.", + "type": "integer", + "format": "int32" + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this node type.", + "$ref": "DeprecationStatus" + }, + "zone": { + "description": "[Output Only] The name of the zone where the node type resides, such as us-central1-a.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + } + } + }, + "NodeTypeAggregatedList": { + "id": "NodeTypeAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#nodeTypeAggregatedList for aggregated lists of node types.", + "default": "compute#nodeTypeAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NodeTypesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of node types.", + "$ref": "NodeTypesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "NetworkAttachmentList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the NetworkAttachments for a project in the given scope." + } }, - "get": { - "id": "compute.networkAttachments.get", - "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "httpMethod": "GET", - "parameters": { - "networkAttachment": { - "description": "Name of the NetworkAttachment resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "networkAttachment" - ], - "response": { - "$ref": "NetworkAttachment" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified NetworkAttachment resource in the given scope." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NodeTypesScopedList": { + "id": "NodeTypesScopedList", + "type": "object", + "properties": { + "nodeTypes": { + "description": "[Output Only] A list of node types contained in this scope.", + "type": "array", + "items": { + "$ref": "NodeType" + } }, - "insert": { - "id": "compute.networkAttachments.insert", - "path": "projects/{project}/regions/{region}/networkAttachments", - "flatPath": "projects/{project}/regions/{region}/networkAttachments", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] An informational warning that appears when the node types list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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). end_interface: MixerMutationRequestBuilder", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "NetworkAttachment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a NetworkAttachment in the specified project in the given scope using the parameters that are included in the request." + } + } + } + }, + "NotificationEndpointList": { + "id": "NotificationEndpointList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", + "default": "compute#notificationEndpointList", + "type": "string" }, - "delete": { - "id": "compute.networkAttachments.delete", - "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "httpMethod": "DELETE", - "parameters": { - "networkAttachment": { - "description": "Name of the NetworkAttachment resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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). end_interface: MixerMutationRequestBuilder", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "networkAttachment" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified NetworkAttachment in the given scope" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "patch": { - "id": "compute.networkAttachments.patch", - "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "httpMethod": "PATCH", - "parameters": { - "networkAttachment": { - "description": "Name of the NetworkAttachment resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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). end_interface: MixerMutationRequestBuilder", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "networkAttachment" - ], - "request": { - "$ref": "NetworkAttachment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "items": { + "description": "A list of NotificationEndpoint resources.", + "type": "array", + "items": { + "$ref": "NotificationEndpoint" + } }, - "getIamPolicy": { - "id": "compute.networkAttachments.getIamPolicy", - "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "NotificationEndpoint": { + "id": "NotificationEndpoint", + "description": "Represents a notification endpoint. A notification endpoint resource defines an endpoint to receive notifications when there are status changes detected by the associated health check service. For more information, see Health checks overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", + "default": "compute#notificationEndpoint", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the notification endpoint resides. This field applies only to the regional resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "grpcSettings": { + "description": "Settings of the gRPC notification endpoint including the endpoint URL and the retry duration.", + "$ref": "NotificationEndpointGrpcSettings" + } + } + }, + "NotificationEndpointGrpcSettings": { + "id": "NotificationEndpointGrpcSettings", + "description": "Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint.", + "type": "object", + "properties": { + "endpoint": { + "description": "Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name.", + "type": "string" + }, + "retryDurationSec": { + "description": "How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number.", + "type": "integer", + "format": "uint32" + }, + "payloadName": { + "description": "Optional. If specified, this field is used to populate the \"name\" field in gRPC requests.", + "type": "string" + }, + "authority": { + "description": "Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3", + "type": "string" + }, + "resendInterval": { + "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints.", + "$ref": "Duration" + } + } + }, + "PacketMirroring": { + "id": "PacketMirroring", + "description": "Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of specified instances in your Virtual Private Cloud (VPC) network and forwards it to a collector destination, such as an instance group of an internal TCP/UDP load balancer, for analysis or examination. For more information about setting up Packet Mirroring, see Using Packet Mirroring.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#packetMirroring for packet mirrorings.", + "default": "compute#packetMirroring", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.packetMirrorings.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "type": "string" }, - "setIamPolicy": { - "id": "compute.networkAttachments.setIamPolicy", - "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URI of the region where the packetMirroring resides.", + "type": "string" + }, + "network": { + "description": "Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network.", + "annotations": { + "required": [ + "compute.packetMirrorings.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "resource" + "$ref": "PacketMirroringNetworkInfo" + }, + "priority": { + "description": "The priority of applying this configuration. Priority is used to break ties in cases where there is more than one matching rule. In the case of two rules that apply for a given Instance, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.", + "type": "integer", + "format": "uint32" + }, + "collectorIlb": { + "description": "The Forwarding Rule resource of type loadBalancingScheme=INTERNAL that will be used as collector for mirrored traffic. The specified forwarding rule must have isMirroringCollector set to true.", + "$ref": "PacketMirroringForwardingRuleInfo" + }, + "mirroredResources": { + "description": "PacketMirroring mirroredResourceInfos. MirroredResourceInfo specifies a set of mirrored VM instances, subnetworks and/or tags for which traffic from/to all VM instances will be mirrored.", + "$ref": "PacketMirroringMirroredResourceInfo" + }, + "filter": { + "description": "Filter for mirrored traffic. If unspecified, all IPv4 traffic is mirrored.", + "$ref": "PacketMirroringFilter" + }, + "enable": { + "description": "Indicates whether or not this packet mirroring takes effect. If set to FALSE, this packet mirroring policy will not be enforced on the network. The default is TRUE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "FALSE", + "TRUE" + ] + } + } + }, + "PacketMirroringNetworkInfo": { + "id": "PacketMirroringNetworkInfo", + "type": "object", + "properties": { + "url": { + "description": "URL of the network resource.", + "type": "string" + }, + "canonicalUrl": { + "description": "[Output Only] Unique identifier for the network; defined by the server.", + "type": "string" + } + } + }, + "PacketMirroringForwardingRuleInfo": { + "id": "PacketMirroringForwardingRuleInfo", + "type": "object", + "properties": { + "url": { + "description": "Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic.", + "type": "string" + }, + "canonicalUrl": { + "description": "[Output Only] Unique identifier for the forwarding rule; defined by the server.", + "type": "string" + } + } + }, + "PacketMirroringMirroredResourceInfo": { + "id": "PacketMirroringMirroredResourceInfo", + "type": "object", + "properties": { + "subnetworks": { + "description": "A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks.", + "type": "array", + "items": { + "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo" + } + }, + "instances": { + "description": "A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances.", + "type": "array", + "items": { + "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo" + } + }, + "tags": { + "description": "A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PacketMirroringMirroredResourceInfoSubnetInfo": { + "id": "PacketMirroringMirroredResourceInfoSubnetInfo", + "type": "object", + "properties": { + "url": { + "description": "Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored.", + "type": "string" + }, + "canonicalUrl": { + "description": "[Output Only] Unique identifier for the subnetwork; defined by the server.", + "type": "string" + } + } + }, + "PacketMirroringMirroredResourceInfoInstanceInfo": { + "id": "PacketMirroringMirroredResourceInfoInstanceInfo", + "type": "object", + "properties": { + "url": { + "description": "Resource URL to the virtual machine instance which is being mirrored.", + "type": "string" + }, + "canonicalUrl": { + "description": "[Output Only] Unique identifier for the instance; defined by the server.", + "type": "string" + } + } + }, + "PacketMirroringFilter": { + "id": "PacketMirroringFilter", + "type": "object", + "properties": { + "cidrRanges": { + "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filters on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\".", + "type": "array", + "items": { + "type": "string" + } + }, + "IPProtocols": { + "description": "Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored.", + "type": "array", + "items": { + "type": "string" + } + }, + "direction": { + "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH.", + "type": "string", + "enumDescriptions": [ + "Default, both directions are mirrored.", + "Only egress traffic is mirrored.", + "Only ingress traffic is mirrored." ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "BOTH", + "EGRESS", + "INGRESS" + ] + } + } + }, + "PacketMirroringList": { + "id": "PacketMirroringList", + "description": "Contains a list of PacketMirroring resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#packetMirroring for packetMirrorings.", + "default": "compute#packetMirroringList", + "type": "string" }, - "testIamPermissions": { - "id": "compute.networkAttachments.testIamPermissions", - "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of PacketMirroring resources.", + "type": "array", + "items": { + "$ref": "PacketMirroring" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + } } } }, - "networkEdgeSecurityServices": { - "methods": { - "get": { - "id": "compute.networkEdgeSecurityServices.get", - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "httpMethod": "GET", - "parameters": { - "networkEdgeSecurityService": { - "description": "Name of the network edge security service to get.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "networkEdgeSecurityService" - ], - "response": { - "$ref": "NetworkEdgeSecurityService" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets a specified NetworkEdgeSecurityService." + "PacketMirroringAggregatedList": { + "id": "PacketMirroringAggregatedList", + "description": "Contains a list of packetMirrorings.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#packetMirroringAggregatedList", + "type": "string" }, - "insert": { - "id": "compute.networkEdgeSecurityServices.insert", - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of PacketMirroring resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of packetMirrorings.", + "$ref": "PacketMirroringsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "NetworkEdgeSecurityService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new service in the specified project using the data included in the request." + } }, - "delete": { - "id": "compute.networkEdgeSecurityServices.delete", - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "httpMethod": "DELETE", - "parameters": { - "networkEdgeSecurityService": { - "description": "Name of the network edge security service to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PacketMirroringsScopedList": { + "id": "PacketMirroringsScopedList", + "type": "object", + "properties": { + "packetMirrorings": { + "description": "A list of packetMirrorings contained in this scope.", + "type": "array", + "items": { + "$ref": "PacketMirroring" + } + }, + "warning": { + "description": "Informational warning which replaces the list of packetMirrorings when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "networkEdgeSecurityService" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "Project": { + "id": "Project", + "description": "Represents a Project resource. A project is used to organize resources in a Google Cloud Platform environment. For more information, read about the Resource Hierarchy.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#project for projects.", + "default": "compute#project", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server. This is *not* the project ID, and is just a unique ID used by Compute Engine to identify resources.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", + "type": "string" + }, + "description": { + "description": "An optional textual description of the resource.", + "type": "string" + }, + "commonInstanceMetadata": { + "description": "Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information.", + "$ref": "Metadata" + }, + "quotas": { + "description": "[Output Only] Quotas assigned to this project.", + "type": "array", + "items": { + "$ref": "Quota" + } + }, + "usageExportLocation": { + "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored.", + "$ref": "UsageExportLocation" + }, + "enabledFeatures": { + "description": "Restricted features enabled for use on this project.", + "type": "array", + "items": { + "type": "string" + } + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "defaultServiceAccount": { + "description": "[Output Only] Default service account used by VMs running in this project.", + "type": "string" + }, + "xpnProjectStatus": { + "description": "[Output Only] The role this project has in a shared VPC configuration. Currently, only projects with the host role, which is specified by the value HOST, are differentiated.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Deletes the specified service." + "enum": [ + "HOST", + "UNSPECIFIED_XPN_PROJECT_STATUS" + ] }, - "patch": { - "id": "compute.networkEdgeSecurityServices.patch", - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "httpMethod": "PATCH", - "parameters": { - "networkEdgeSecurityService": { - "description": "Name of the network edge security service to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" - } - }, - "parameterOrder": [ - "project", - "region", - "networkEdgeSecurityService" + "defaultNetworkTier": { + "description": "This signifies the default network tier used for configuring resources of the project and can only take the following values: PREMIUM, STANDARD. Initially the default network tier is PREMIUM.", + "type": "string", + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." ], - "request": { - "$ref": "NetworkEdgeSecurityService" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ] + }, + "vmDnsSetting": { + "description": "[Output Only] Default internal DNS setting used by VMs running in this project.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Patches the specified policy with the data included in the request." + "enum": [ + "GLOBAL_DEFAULT", + "UNSPECIFIED_VM_DNS_SETTING", + "ZONAL_DEFAULT", + "ZONAL_ONLY" + ] }, - "aggregatedList": { - "id": "compute.networkEdgeSecurityServices.aggregatedList", - "path": "projects/{project}/aggregated/networkEdgeSecurityServices", - "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" + "cloudArmorTier": { + "description": "[Output Only] The Cloud Armor tier for this project. It can be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD.", + "type": "string", + "enumDescriptions": [ + "Enterprise tier protection billed annually.", + "Enterprise tier protection billed monthly.", + "Standard protection." ], - "response": { - "$ref": "NetworkEdgeSecurityServiceAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "CA_ENTERPRISE_ANNUAL", + "CA_ENTERPRISE_PAYGO", + "CA_STANDARD" + ] + } + } + }, + "Quota": { + "id": "Quota", + "description": "A quotas entry.", + "type": "object", + "properties": { + "metric": { + "description": "[Output Only] Name of the quota metric.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Guest CPUs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "The total number of snapshots allowed for a single project.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project." + "enum": [ + "A2_CPUS", + "AFFINITY_GROUPS", + "AUTOSCALERS", + "BACKEND_BUCKETS", + "BACKEND_SERVICES", + "C2D_CPUS", + "C2_CPUS", + "C3_CPUS", + "COMMITMENTS", + "COMMITTED_A2_CPUS", + "COMMITTED_C2D_CPUS", + "COMMITTED_C2_CPUS", + "COMMITTED_C3_CPUS", + "COMMITTED_CPUS", + "COMMITTED_E2_CPUS", + "COMMITTED_LICENSES", + "COMMITTED_LOCAL_SSD_TOTAL_GB", + "COMMITTED_M3_CPUS", + "COMMITTED_MEMORY_OPTIMIZED_CPUS", + "COMMITTED_N2A_CPUS", + "COMMITTED_N2D_CPUS", + "COMMITTED_N2_CPUS", + "COMMITTED_NVIDIA_A100_80GB_GPUS", + "COMMITTED_NVIDIA_A100_GPUS", + "COMMITTED_NVIDIA_H100_GPUS", + "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", + "COMMITTED_NVIDIA_P100_GPUS", + "COMMITTED_NVIDIA_P4_GPUS", + "COMMITTED_NVIDIA_T4_GPUS", + "COMMITTED_NVIDIA_V100_GPUS", + "COMMITTED_T2A_CPUS", + "COMMITTED_T2D_CPUS", + "COMMITTED_Z3_CPUS", + "CPUS", + "CPUS_ALL_REGIONS", + "DISKS_TOTAL_GB", + "E2_CPUS", + "EXTERNAL_MANAGED_FORWARDING_RULES", + "EXTERNAL_NETWORK_LB_FORWARDING_RULES", + "EXTERNAL_PROTOCOL_FORWARDING_RULES", + "EXTERNAL_VPN_GATEWAYS", + "FIREWALLS", + "FORWARDING_RULES", + "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", + "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", + "GLOBAL_INTERNAL_ADDRESSES", + "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", + "GPUS_ALL_REGIONS", + "HDB_TOTAL_GB", + "HDB_TOTAL_IOPS", + "HDB_TOTAL_THROUGHPUT", + "HEALTH_CHECKS", + "IMAGES", + "INSTANCES", + "INSTANCE_GROUPS", + "INSTANCE_GROUP_MANAGERS", + "INSTANCE_TEMPLATES", + "INTERCONNECTS", + "INTERCONNECT_ATTACHMENTS_PER_REGION", + "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS", + "INTERCONNECT_TOTAL_GBPS", + "INTERNAL_ADDRESSES", + "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES", + "IN_PLACE_SNAPSHOTS", + "IN_USE_ADDRESSES", + "IN_USE_BACKUP_SCHEDULES", + "IN_USE_SNAPSHOT_SCHEDULES", + "LOCAL_SSD_TOTAL_GB", + "M1_CPUS", + "M2_CPUS", + "M3_CPUS", + "MACHINE_IMAGES", + "N2A_CPUS", + "N2D_CPUS", + "N2_CPUS", + "NETWORKS", + "NETWORK_ATTACHMENTS", + "NETWORK_ENDPOINT_GROUPS", + "NETWORK_FIREWALL_POLICIES", + "NET_LB_SECURITY_POLICIES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", + "NODE_GROUPS", + "NODE_TEMPLATES", + "NVIDIA_A100_80GB_GPUS", + "NVIDIA_A100_GPUS", + "NVIDIA_K80_GPUS", + "NVIDIA_L4_GPUS", + "NVIDIA_P100_GPUS", + "NVIDIA_P100_VWS_GPUS", + "NVIDIA_P4_GPUS", + "NVIDIA_P4_VWS_GPUS", + "NVIDIA_T4_GPUS", + "NVIDIA_T4_VWS_GPUS", + "NVIDIA_V100_GPUS", + "PACKET_MIRRORINGS", + "PD_EXTREME_TOTAL_PROVISIONED_IOPS", + "PREEMPTIBLE_CPUS", + "PREEMPTIBLE_LOCAL_SSD_GB", + "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", + "PREEMPTIBLE_NVIDIA_A100_GPUS", + "PREEMPTIBLE_NVIDIA_H100_GPUS", + "PREEMPTIBLE_NVIDIA_K80_GPUS", + "PREEMPTIBLE_NVIDIA_L4_GPUS", + "PREEMPTIBLE_NVIDIA_P100_GPUS", + "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", + "PREEMPTIBLE_NVIDIA_P4_GPUS", + "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS", + "PREEMPTIBLE_NVIDIA_T4_GPUS", + "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", + "PREEMPTIBLE_NVIDIA_V100_GPUS", + "PREEMPTIBLE_TPU_LITE_DEVICE_V5", + "PREEMPTIBLE_TPU_LITE_PODSLICE_V5", + "PREEMPTIBLE_TPU_PODSLICE_V4", + "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", + "PSC_INTERNAL_LB_FORWARDING_RULES", + "PUBLIC_ADVERTISED_PREFIXES", + "PUBLIC_DELEGATED_PREFIXES", + "REGIONAL_AUTOSCALERS", + "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", + "REGIONAL_INSTANCE_GROUP_MANAGERS", + "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", + "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", + "RESERVATIONS", + "RESOURCE_POLICIES", + "ROUTERS", + "ROUTES", + "SECURITY_POLICIES", + "SECURITY_POLICIES_PER_REGION", + "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", + "SECURITY_POLICY_CEVAL_RULES", + "SECURITY_POLICY_RULES", + "SECURITY_POLICY_RULES_PER_REGION", + "SERVICE_ATTACHMENTS", + "SNAPSHOTS", + "SSD_TOTAL_GB", + "SSL_CERTIFICATES", + "SSL_POLICIES", + "STATIC_ADDRESSES", + "STATIC_BYOIP_ADDRESSES", + "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", + "SUBNETWORKS", + "T2A_CPUS", + "T2D_CPUS", + "TARGET_HTTPS_PROXIES", + "TARGET_HTTP_PROXIES", + "TARGET_INSTANCES", + "TARGET_POOLS", + "TARGET_SSL_PROXIES", + "TARGET_TCP_PROXIES", + "TARGET_VPN_GATEWAYS", + "TPU_LITE_DEVICE_V5", + "TPU_LITE_PODSLICE_V5", + "TPU_PODSLICE_V4", + "URL_MAPS", + "VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES", + "VPN_GATEWAYS", + "VPN_TUNNELS", + "XPN_SERVICE_PROJECTS" + ] + }, + "limit": { + "description": "[Output Only] Quota limit for this metric.", + "type": "number", + "format": "double" + }, + "usage": { + "description": "[Output Only] Current usage of this metric.", + "type": "number", + "format": "double" + }, + "owner": { + "description": "[Output Only] Owning resource. This is the resource on which this quota is applied.", + "type": "string" + } + } + }, + "UsageExportLocation": { + "id": "UsageExportLocation", + "description": "The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.", + "type": "object", + "properties": { + "bucketName": { + "description": "The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.", + "type": "string" + }, + "reportNamePrefix": { + "description": "An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage_gce. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.", + "type": "string" } } }, - "networkEndpointGroups": { - "methods": { - "list": { - "id": "compute.networkEndpointGroups.list", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "NetworkEndpointGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone." + "InstanceMoveRequest": { + "id": "InstanceMoveRequest", + "type": "object", + "properties": { + "targetInstance": { + "description": "The URL of the target instance to move. This can be a full or partial URL. For example, the following are all valid URLs to an instance: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance - zones/zone/instances/instance ", + "type": "string" }, - "aggregatedList": { - "id": "compute.networkEndpointGroups.aggregatedList", - "path": "projects/{project}/aggregated/networkEndpointGroups", - "flatPath": "projects/{project}/aggregated/networkEndpointGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "NetworkEndpointGroupAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of network endpoint groups and sorts them by zone." + "destinationZone": { + "description": "The URL of the destination zone to move the instance. This can be a full or partial URL. For example, the following are all valid URLs to a zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/zones/zone - zones/zone ", + "type": "string" + } + } + }, + "DiskMoveRequest": { + "id": "DiskMoveRequest", + "type": "object", + "properties": { + "targetDisk": { + "description": "The URL of the target disk to move. This can be a full or partial URL. For example, the following are all valid URLs to a disk: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + "type": "string" }, - "get": { - "id": "compute.networkEndpointGroups.get", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "GET", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "response": { - "$ref": "NetworkEndpointGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified network endpoint group." + "destinationZone": { + "description": "The URL of the destination zone to move the disk. This can be a full or partial URL. For example, the following are all valid URLs to a zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/zones/zone - zones/zone ", + "type": "string" + } + } + }, + "ProjectsListXpnHostsRequest": { + "id": "ProjectsListXpnHostsRequest", + "type": "object", + "properties": { + "organization": { + "description": "Optional organization ID managed by Cloud Resource Manager, for which to list shared VPC host projects. If not specified, the organization will be inferred from the project.", + "type": "string" + } + } + }, + "XpnHostList": { + "id": "XpnHostList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#xpnHostList for lists of shared VPC hosts.", + "default": "compute#xpnHostList", + "type": "string" }, - "insert": { - "id": "compute.networkEndpointGroups.insert", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "NetworkEndpointGroup" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "delete": { - "id": "compute.networkEndpointGroups.delete", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "DELETE", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified network endpoint group. The network endpoints in the NEG and the VM instances they belong to are not terminated when the NEG is deleted. Note that the NEG cannot be deleted if there are backend services referencing it." + "items": { + "description": "[Output Only] A list of shared VPC host project URLs.", + "type": "array", + "items": { + "$ref": "Project" + } }, - "attachNetworkEndpoints": { - "id": "compute.networkEndpointGroups.attachNetworkEndpoints", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "request": { - "$ref": "NetworkEndpointGroupsAttachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Attach a list of network endpoints to the specified network endpoint group." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "detachNetworkEndpoints": { - "id": "compute.networkEndpointGroups.detachNetworkEndpoints", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "request": { - "$ref": "NetworkEndpointGroupsDetachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Detach a list of network endpoints from the specified network endpoint group." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "listNetworkEndpoints": { - "id": "compute.networkEndpointGroups.listNetworkEndpoints", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "networkEndpointGroup": { - "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "networkEndpointGroup" - ], - "request": { - "$ref": "NetworkEndpointGroupsListEndpointsRequest" - }, - "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + } + } + } + }, + "ProjectsEnableXpnResourceRequest": { + "id": "ProjectsEnableXpnResourceRequest", + "type": "object", + "properties": { + "xpnResource": { + "description": "Service resource (a.k.a service project) ID.", + "$ref": "XpnResourceId" + } + } + }, + "XpnResourceId": { + "id": "XpnResourceId", + "description": "Service resource (a.k.a service project) ID.", + "type": "object", + "properties": { + "type": { + "description": "The type of the service resource.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Lists the network endpoints in the specified network endpoint group." + "enum": [ + "PROJECT", + "XPN_RESOURCE_TYPE_UNSPECIFIED" + ] }, - "testIamPermissions": { - "id": "compute.networkEndpointGroups.testIamPermissions", - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "id": { + "description": "The ID of the service resource. In the case of projects, this field supports project id (e.g., my-project-123) and project number (e.g. 12345678).", + "type": "string" } } }, - "globalNetworkEndpointGroups": { - "methods": { - "list": { - "id": "compute.globalNetworkEndpointGroups.list", - "path": "projects/{project}/global/networkEndpointGroups", - "flatPath": "projects/{project}/global/networkEndpointGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "NetworkEndpointGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of network endpoint groups that are located in the specified project." + "ProjectsDisableXpnResourceRequest": { + "id": "ProjectsDisableXpnResourceRequest", + "type": "object", + "properties": { + "xpnResource": { + "description": "Service resource (a.k.a service project) ID.", + "$ref": "XpnResourceId" + } + } + }, + "ProjectsGetXpnResources": { + "id": "ProjectsGetXpnResources", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of service resources (a.k.a service projects)", + "default": "compute#projectsGetXpnResources", + "type": "string" }, - "get": { - "id": "compute.globalNetworkEndpointGroups.get", - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "GET", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "response": { - "$ref": "NetworkEndpointGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified network endpoint group." + "resources": { + "description": "Service resources (a.k.a service projects) attached to this project as their shared VPC host.", + "type": "array", + "items": { + "$ref": "XpnResourceId" + } }, - "insert": { - "id": "compute.globalNetworkEndpointGroups.insert", - "path": "projects/{project}/global/networkEndpointGroups", - "flatPath": "projects/{project}/global/networkEndpointGroups", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + } + } + }, + "ProjectsSetDefaultNetworkTierRequest": { + "id": "ProjectsSetDefaultNetworkTierRequest", + "type": "object", + "properties": { + "networkTier": { + "description": "Default network tier to be set.", + "type": "string", + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." ], - "request": { - "$ref": "NetworkEndpointGroup" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ] + } + } + }, + "ProjectsSetCloudArmorTierRequest": { + "id": "ProjectsSetCloudArmorTierRequest", + "type": "object", + "properties": { + "cloudArmorTier": { + "description": "Managed protection tier to be set.", + "type": "string", + "enumDescriptions": [ + "Enterprise tier protection billed annually.", + "Enterprise tier protection billed monthly.", + "Standard protection." ], - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request." + "enum": [ + "CA_ENTERPRISE_ANNUAL", + "CA_ENTERPRISE_PAYGO", + "CA_STANDARD" + ] + } + } + }, + "PublicAdvertisedPrefixList": { + "id": "PublicAdvertisedPrefixList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "default": "compute#publicAdvertisedPrefixList", + "type": "string" }, - "delete": { - "id": "compute.globalNetworkEndpointGroups.delete", - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "DELETE", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "attachNetworkEndpoints": { - "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints", - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "request": { - "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Attach a network endpoint to the specified network endpoint group." + "items": { + "description": "A list of PublicAdvertisedPrefix resources.", + "type": "array", + "items": { + "$ref": "PublicAdvertisedPrefix" + } }, - "detachNetworkEndpoints": { - "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints", - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "PublicAdvertisedPrefix": { + "id": "PublicAdvertisedPrefix", + "description": "A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "default": "compute#publicAdvertisedPrefix", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.publicAdvertisedPrefixes.insert" + ] }, - "parameterOrder": [ - "project", - "networkEndpointGroup" - ], - "request": { - "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "ipCidrRange": { + "description": "The address range, in CIDR format, represented by this public advertised prefix.", + "type": "string" + }, + "dnsVerificationIp": { + "description": "The address to be used for reverse DNS verification.", + "type": "string" + }, + "sharedSecret": { + "description": "[Output Only] The shared secret to be used for reverse DNS verification.", + "type": "string" + }, + "status": { + "description": "The status of the public advertised prefix. Possible values include: - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. ", + "type": "string", + "enumDescriptions": [ + "The prefix is announced to Internet.", + "RPKI validation is complete.", + "The prefix is fully configured.", + "The prefix is being configured.", + "The prefix is being removed.", + "User has configured the PTR.", + "The prefix is currently withdrawn but ready to be announced.", + "Reverse DNS lookup failed.", + "Reverse DNS lookup is successful." ], - "description": "Detach the network endpoint from the specified network endpoint group." + "enum": [ + "ANNOUNCED_TO_INTERNET", + "INITIAL", + "PREFIX_CONFIGURATION_COMPLETE", + "PREFIX_CONFIGURATION_IN_PROGRESS", + "PREFIX_REMOVAL_IN_PROGRESS", + "PTR_CONFIGURED", + "READY_TO_ANNOUNCE", + "REVERSE_DNS_LOOKUP_FAILED", + "VALIDATED" + ] }, - "listNetworkEndpoints": { - "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints", - "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "networkEndpointGroup": { - "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "networkEndpointGroup" + "pdpScope": { + "description": "Specifies how child public delegated prefix will be scoped. It could be one of following values: - `REGIONAL`: The public delegated prefix is regional only. The provisioning will take a few minutes. - `GLOBAL`: The public delegated prefix is global only. The provisioning will take ~4 weeks. - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2. ", + "type": "string", + "enumDescriptions": [ + "The public delegated prefix is global only. The provisioning will take ~4 weeks.", + "The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2.", + "The public delegated prefix is regional only. The provisioning will take a few minutes." ], - "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "GLOBAL", + "GLOBAL_AND_REGIONAL", + "REGIONAL" + ] + }, + "publicDelegatedPrefixs": { + "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", + "type": "array", + "items": { + "$ref": "PublicAdvertisedPrefixPublicDelegatedPrefix" + } + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicAdvertisedPrefix. An up-to-date fingerprint must be provided in order to update the PublicAdvertisedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicAdvertisedPrefix.", + "type": "string", + "format": "byte" + }, + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "type": "string", + "enumDescriptions": [ + "This public advertised prefix can be used to create both regional and global public delegated prefixes. It usually takes 4 weeks to create or delete a public delegated prefix. The BGP status cannot be changed.", + "This public advertised prefix can only be used to create regional public delegated prefixes. Public delegated prefix creation and deletion takes minutes and the BGP status can be modified." ], - "description": "Lists the network endpoints in the specified network endpoint group." + "enum": [ + "V1", + "V2" + ] } } }, - "regionNetworkEndpointGroups": { - "methods": { - "list": { - "id": "compute.regionNetworkEndpointGroups.list", - "path": "projects/{project}/regions/{region}/networkEndpointGroups", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "PublicAdvertisedPrefixPublicDelegatedPrefix": { + "id": "PublicAdvertisedPrefixPublicDelegatedPrefix", + "description": "Represents a CIDR range which can be used to assign addresses.", + "type": "object", + "properties": { + "name": { + "description": "The name of the public delegated prefix", + "type": "string" + }, + "region": { + "description": "The region of the public delegated prefix if it is regional. If absent, the prefix is global.", + "type": "string" + }, + "project": { + "description": "The project number of the public delegated prefix", + "type": "string" + }, + "status": { + "description": "The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active.", + "type": "string" + }, + "ipRange": { + "description": "The IP address range of the public delegated prefix", + "type": "string" + } + } + }, + "PublicDelegatedPrefixList": { + "id": "PublicDelegatedPrefixList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixList for public delegated prefixes.", + "default": "compute#publicDelegatedPrefixList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of PublicDelegatedPrefix resources.", + "type": "array", + "items": { + "$ref": "PublicDelegatedPrefix" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "PublicDelegatedPrefix": { + "id": "PublicDelegatedPrefix", + "description": "A PublicDelegatedPrefix resource represents an IP block within a PublicAdvertisedPrefix that is configured within a single cloud scope (global or region). IPs in the block can be allocated to resources within that scope. Public delegated prefixes may be further broken up into smaller IP blocks in the same scope as the parent block.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes.", + "default": "compute#publicDelegatedPrefix", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.publicDelegatedPrefixes.insert" + ] }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "NetworkEndpointGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the public delegated prefix resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "ipCidrRange": { + "description": "The IP address range, in CIDR format, represented by this public delegated prefix.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the public delegated prefix, which can be one of following values: - `INITIALIZING` The public delegated prefix is being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public delegated prefix is being deprovsioned. ", + "type": "string", + "enumDescriptions": [ + "The public delegated prefix is active.", + "The prefix is announced within Google network.", + "The prefix is announced to Internet and within Google.", + "The public delegated prefix is being deprovsioned.", + "The public delegated prefix is being initialized and addresses cannot be created yet.", + "The public delegated prefix is currently withdrawn but ready to be announced." ], - "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region." + "enum": [ + "ANNOUNCED", + "ANNOUNCED_TO_GOOGLE", + "ANNOUNCED_TO_INTERNET", + "DELETING", + "INITIALIZING", + "READY_TO_ANNOUNCE" + ] }, - "get": { - "id": "compute.regionNetworkEndpointGroups.get", - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "GET", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" + "parentPrefix": { + "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or PublicDelegatedPrefix.", + "type": "string" + }, + "publicDelegatedSubPrefixs": { + "description": "The list of sub public delegated prefixes that exist for this public delegated prefix.", + "type": "array", + "items": { + "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix" + } + }, + "isLiveMigration": { + "description": "If true, the prefix will be live migrated.", + "type": "boolean" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicDelegatedPrefix. An up-to-date fingerprint must be provided in order to update the PublicDelegatedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicDelegatedPrefix.", + "type": "string", + "format": "byte" + }, + "mode": { + "description": "The public delegated prefix mode for IPv6 only.", + "type": "string", + "enumDescriptions": [ + "The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength.", + "The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes." ], - "response": { - "$ref": "NetworkEndpointGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "DELEGATION", + "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" + ] + }, + "allocatablePrefixLength": { + "description": "The allocatable prefix length supported by this public delegated prefix. This field is optional and cannot be set for prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and it always defaults to 32.", + "type": "integer", + "format": "int32" + }, + "byoipApiVersion": { + "description": "[Output Only] The version of BYOIP API.", + "type": "string", + "enumDescriptions": [ + "This public delegated prefix usually takes 4 weeks to delete, and the BGP status cannot be changed. Announce and Withdraw APIs can not be used on this prefix.", + "This public delegated prefix takes minutes to delete. Announce and Withdraw APIs can be used on this prefix to change the BGP status." ], - "description": "Returns the specified network endpoint group." + "enum": [ + "V1", + "V2" + ] + } + } + }, + "PublicDelegatedPrefixPublicDelegatedSubPrefix": { + "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", + "description": "Represents a sub PublicDelegatedPrefix.", + "type": "object", + "properties": { + "name": { + "description": "The name of the sub public delegated prefix.", + "type": "string" }, - "insert": { - "id": "compute.regionNetworkEndpointGroups.insert", - "path": "projects/{project}/regions/{region}/networkEndpointGroups", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the sub public delegated prefix.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "NetworkEndpointGroup" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ACTIVE", + "INACTIVE" + ] + }, + "ipCidrRange": { + "description": "The IP address range, in CIDR format, represented by this sub public delegated prefix.", + "type": "string" + }, + "delegateeProject": { + "description": "Name of the project scoping this PublicDelegatedSubPrefix.", + "type": "string" + }, + "isAddress": { + "description": "Whether the sub prefix is delegated to create Address resources in the delegatee project.", + "type": "boolean" + }, + "mode": { + "description": "The PublicDelegatedSubPrefix mode for IPv6 only.", + "type": "string", + "enumDescriptions": [ + "The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength.", + "The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes." ], - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request." + "enum": [ + "DELEGATION", + "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" + ] }, - "delete": { - "id": "compute.regionNetworkEndpointGroups.delete", - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "DELETE", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "allocatablePrefixLength": { + "description": "The allocatable prefix length supported by this PublicDelegatedSubPrefix.", + "type": "integer", + "format": "int32" + } + } + }, + "PublicDelegatedPrefixAggregatedList": { + "id": "PublicDelegatedPrefixAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixAggregatedList for aggregated lists of public delegated prefixes.", + "default": "compute#publicDelegatedPrefixAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of PublicDelegatedPrefixesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of PublicDelegatedPrefixes.", + "$ref": "PublicDelegatedPrefixesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service." + } }, - "attachNetworkEndpoints": { - "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PublicDelegatedPrefixesScopedList": { + "id": "PublicDelegatedPrefixesScopedList", + "type": "object", + "properties": { + "publicDelegatedPrefixes": { + "description": "[Output Only] A list of PublicDelegatedPrefixes contained in this scope.", + "type": "array", + "items": { + "$ref": "PublicDelegatedPrefix" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of public delegated prefixes when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" - ], - "request": { - "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Attach a list of network endpoints to the specified network endpoint group." + } + } + } + }, + "RegionList": { + "id": "RegionList", + "description": "Contains a list of region resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#regionList for lists of regions.", + "default": "compute#regionList", + "type": "string" }, - "detachNetworkEndpoints": { - "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Region resources.", + "type": "array", + "items": { + "$ref": "Region" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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). end_interface: MixerMutationRequestBuilder", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" - ], - "request": { - "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "Region": { + "id": "Region", + "description": "Represents a Region resource. A region is a geographical area where a resource is located. For more information, read Regions and Zones.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#region for regions.", + "default": "compute#region", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "description": { + "description": "[Output Only] Textual description of the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] Status of the region, either UP or DOWN.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Detach the network endpoint from the specified network endpoint group." + "enum": [ + "DOWN", + "UP" + ] }, - "listNetworkEndpoints": { - "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "networkEndpointGroup": { - "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" + "zones": { + "description": "[Output Only] A list of zones available in this region, in the form of resource URLs.", + "type": "array", + "items": { + "type": "string" + } + }, + "quotas": { + "description": "[Output Only] Quotas assigned to this region.", + "type": "array", + "items": { + "$ref": "Quota" + } + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this region.", + "$ref": "DeprecationStatus" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "supportsPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "quotaStatusWarning": { + "description": "[Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } + } + } + } + }, + "ResourcePolicyList": { + "id": "ResourcePolicyList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource.Always compute#resourcePoliciesList for listsof resourcePolicies", + "default": "compute#resourcePolicyList", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "items": { + "description": "[Output Only] A list of ResourcePolicy resources.", + "type": "array", + "items": { + "$ref": "ResourcePolicy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "networkEndpointGroup" - ], - "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the network endpoints in the specified network endpoint group." + } + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "etag": { + "type": "string" } } }, - "networks": { - "methods": { - "list": { - "id": "compute.networks.list", - "path": "projects/{project}/global/networks", - "flatPath": "projects/{project}/global/networks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } + "ResourcePolicy": { + "id": "ResourcePolicy", + "description": "Represents a Resource Policy resource. You can use resource policies to schedule actions for some Compute Engine resources. For example, you can use them to schedule persistent disk snapshots.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#resource_policies for resource policies.", + "default": "compute#resourcePolicy", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "region": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "description": "The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instances.insert" + ] }, - "parameterOrder": [ - "project" + "type": "string" + }, + "snapshotSchedulePolicy": { + "description": "Resource policy for persistent disks for creating snapshots.", + "$ref": "ResourcePolicySnapshotSchedulePolicy" + }, + "groupPlacementPolicy": { + "description": "Resource policy for instances for placement configuration.", + "$ref": "ResourcePolicyGroupPlacementPolicy" + }, + "instanceSchedulePolicy": { + "description": "Resource policy for scheduling instance operations.", + "$ref": "ResourcePolicyInstanceSchedulePolicy" + }, + "diskConsistencyGroupPolicy": { + "description": "Resource policy for disk consistency groups.", + "$ref": "ResourcePolicyDiskConsistencyGroupPolicy" + }, + "status": { + "description": "[Output Only] The status of resource policy creation.", + "type": "string", + "enumDescriptions": [ + "Resource policy is being created.", + "Resource policy is being deleted.", + "Resource policy is expired and will not run again.", + "", + "Resource policy is ready to be used." ], - "response": { - "$ref": "NetworkList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "CREATING", + "DELETING", + "EXPIRED", + "INVALID", + "READY" + ] + }, + "resourceStatus": { + "description": "[Output Only] The system status of the resource policy.", + "$ref": "ResourcePolicyResourceStatus" + } + } + }, + "ResourcePolicySnapshotSchedulePolicy": { + "id": "ResourcePolicySnapshotSchedulePolicy", + "description": "A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained.", + "type": "object", + "properties": { + "schedule": { + "description": "A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy.", + "$ref": "ResourcePolicySnapshotSchedulePolicySchedule" + }, + "retentionPolicy": { + "description": "Retention policy applied to snapshots created by this resource policy.", + "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy" + }, + "snapshotProperties": { + "description": "Properties with which snapshots are created such as labels, encryption keys.", + "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties" + } + } + }, + "ResourcePolicySnapshotSchedulePolicySchedule": { + "id": "ResourcePolicySnapshotSchedulePolicySchedule", + "description": "A schedule for disks where the schedueled operations are performed.", + "type": "object", + "properties": { + "hourlySchedule": { + "$ref": "ResourcePolicyHourlyCycle" + }, + "dailySchedule": { + "$ref": "ResourcePolicyDailyCycle" + }, + "weeklySchedule": { + "$ref": "ResourcePolicyWeeklyCycle" + } + } + }, + "ResourcePolicyHourlyCycle": { + "id": "ResourcePolicyHourlyCycle", + "description": "Time window specified for hourly operations.", + "type": "object", + "properties": { + "hoursInCycle": { + "description": "Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle.", + "type": "integer", + "format": "int32" + }, + "startTime": { + "description": "Time within the window to start the operations. It must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", + "type": "string" + }, + "duration": { + "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", + "type": "string" + } + } + }, + "ResourcePolicyDailyCycle": { + "id": "ResourcePolicyDailyCycle", + "description": "Time window specified for daily operations.", + "type": "object", + "properties": { + "daysInCycle": { + "description": "Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle.", + "type": "integer", + "format": "int32" + }, + "startTime": { + "description": "Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.", + "type": "string" + }, + "duration": { + "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", + "type": "string" + } + } + }, + "ResourcePolicyWeeklyCycle": { + "id": "ResourcePolicyWeeklyCycle", + "description": "Time window specified for weekly operations.", + "type": "object", + "properties": { + "dayOfWeeks": { + "description": "Up to 7 intervals/windows, one for each day of the week.", + "type": "array", + "items": { + "$ref": "ResourcePolicyWeeklyCycleDayOfWeek" + } + } + } + }, + "ResourcePolicyWeeklyCycleDayOfWeek": { + "id": "ResourcePolicyWeeklyCycleDayOfWeek", + "type": "object", + "properties": { + "day": { + "description": "Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Retrieves the list of networks available to the specified project." + "enum": [ + "FRIDAY", + "INVALID", + "MONDAY", + "SATURDAY", + "SUNDAY", + "THURSDAY", + "TUESDAY", + "WEDNESDAY" + ] }, - "get": { - "id": "compute.networks.get", - "path": "projects/{project}/global/networks/{network}", - "flatPath": "projects/{project}/global/networks/{network}", - "httpMethod": "GET", - "parameters": { - "network": { - "description": "Name of the network to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" + "startTime": { + "description": "Time within the window to start the operations. It must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", + "type": "string" + }, + "duration": { + "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", + "type": "string" + } + } + }, + "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": { + "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", + "description": "Policy for retention of scheduled snapshots.", + "type": "object", + "properties": { + "maxRetentionDays": { + "description": "Maximum age of the snapshot that is allowed to be kept.", + "type": "integer", + "format": "int32" + }, + "onSourceDiskDelete": { + "description": "Specifies the behavior to apply to scheduled snapshots when the source disk is deleted.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "response": { - "$ref": "Network" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "APPLY_RETENTION_POLICY", + "KEEP_AUTO_SNAPSHOTS", + "UNSPECIFIED_ON_SOURCE_DISK_DELETE" + ] + } + } + }, + "ResourcePolicySnapshotSchedulePolicySnapshotProperties": { + "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", + "description": "Specified snapshot properties for scheduled snapshots created by this policy.", + "type": "object", + "properties": { + "labels": { + "description": "Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "storageLocations": { + "description": "Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional).", + "type": "array", + "items": { + "type": "string" + } + }, + "guestFlush": { + "description": "Indication to perform a 'guest aware' snapshot.", + "type": "boolean" + }, + "chainName": { + "description": "Chain name that the snapshot is created in.", + "type": "string" + } + } + }, + "ResourcePolicyGroupPlacementPolicy": { + "id": "ResourcePolicyGroupPlacementPolicy", + "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation", + "type": "object", + "properties": { + "vmCount": { + "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", + "type": "integer", + "format": "int32" + }, + "availabilityDomainCount": { + "description": "The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network.", + "type": "integer", + "format": "int32" + }, + "collocation": { + "description": "Specifies network collocation", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Returns the specified network." + "enum": [ + "COLLOCATED", + "UNSPECIFIED_COLLOCATION" + ] + } + } + }, + "ResourcePolicyInstanceSchedulePolicy": { + "id": "ResourcePolicyInstanceSchedulePolicy", + "description": "An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance.", + "type": "object", + "properties": { + "vmStartSchedule": { + "description": "Specifies the schedule for starting instances.", + "$ref": "ResourcePolicyInstanceSchedulePolicySchedule" + }, + "vmStopSchedule": { + "description": "Specifies the schedule for stopping instances.", + "$ref": "ResourcePolicyInstanceSchedulePolicySchedule" + }, + "timeZone": { + "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database.", + "type": "string" + }, + "startTime": { + "description": "The start time of the schedule. The timestamp is an RFC3339 string.", + "type": "string" + }, + "expirationTime": { + "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.", + "type": "string" + } + } + }, + "ResourcePolicyInstanceSchedulePolicySchedule": { + "id": "ResourcePolicyInstanceSchedulePolicySchedule", + "description": "Schedule for an instance operation.", + "type": "object", + "properties": { + "schedule": { + "description": "Specifies the frequency for the operation, using the unix-cron format.", + "type": "string" + } + } + }, + "ResourcePolicyDiskConsistencyGroupPolicy": { + "id": "ResourcePolicyDiskConsistencyGroupPolicy", + "description": "Resource policy for disk consistency groups.", + "type": "object", + "properties": {} + }, + "ResourcePolicyResourceStatus": { + "id": "ResourcePolicyResourceStatus", + "description": "Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this \"status\" field should mimic the structure of ResourcePolicy proto specification.", + "type": "object", + "properties": { + "instanceSchedulePolicy": { + "description": "[Output Only] Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field.", + "$ref": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus" + } + } + }, + "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus": { + "id": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", + "type": "object", + "properties": { + "nextRunStartTime": { + "description": "[Output Only] The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string.", + "type": "string" }, - "insert": { - "id": "compute.networks.insert", - "path": "projects/{project}/global/networks", - "flatPath": "projects/{project}/global/networks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Network" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a network in the specified project using the data included in the request." + "lastRunStartTime": { + "description": "[Output Only] The last time the schedule successfully ran. The timestamp is an RFC3339 string.", + "type": "string" + } + } + }, + "ResourcePolicyAggregatedList": { + "id": "ResourcePolicyAggregatedList", + "description": "Contains a list of resourcePolicies.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#resourcePolicyAggregatedList", + "type": "string" }, - "delete": { - "id": "compute.networks.delete", - "path": "projects/{project}/global/networks/{network}", - "flatPath": "projects/{project}/global/networks/{network}", - "httpMethod": "DELETE", - "parameters": { - "network": { - "description": "Name of the network to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified network." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "patch": { - "id": "compute.networks.patch", - "path": "projects/{project}/global/networks/{network}", - "flatPath": "projects/{project}/global/networks/{network}", - "httpMethod": "PATCH", - "parameters": { - "network": { - "description": "Name of the network to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "request": { - "$ref": "Network" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode." + "items": { + "description": "A list of ResourcePolicy resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of resourcePolicies.", + "$ref": "ResourcePoliciesScopedList" + } }, - "updatePeering": { - "id": "compute.networks.updatePeering", - "path": "projects/{project}/global/networks/{network}/updatePeering", - "flatPath": "projects/{project}/global/networks/{network}/updatePeering", - "httpMethod": "PATCH", - "parameters": { - "network": { - "description": "Name of the network resource which the updated peering is belonging to.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "request": { - "$ref": "NetworksUpdatePeeringRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified network peering with the data included in the request. You can only modify the NetworkPeering.export_custom_routes field and the NetworkPeering.import_custom_routes field." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "addPeering": { - "id": "compute.networks.addPeering", - "path": "projects/{project}/global/networks/{network}/addPeering", - "flatPath": "projects/{project}/global/networks/{network}/addPeering", - "httpMethod": "POST", - "parameters": { - "network": { - "description": "Name of the network resource to add peering to.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "request": { - "$ref": "NetworksAddPeeringRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds a peering to the specified network." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "removePeering": { - "id": "compute.networks.removePeering", - "path": "projects/{project}/global/networks/{network}/removePeering", - "flatPath": "projects/{project}/global/networks/{network}/removePeering", - "httpMethod": "POST", - "parameters": { - "network": { - "description": "Name of the network resource to remove peering from.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "network" - ], - "request": { - "$ref": "NetworksRemovePeeringRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes a peering from the specified network." + } }, - "switchToCustomMode": { - "id": "compute.networks.switchToCustomMode", - "path": "projects/{project}/global/networks/{network}/switchToCustomMode", - "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode", - "httpMethod": "POST", - "parameters": { - "network": { - "description": "Name of the network to be updated.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Switches the network mode from auto subnet mode to custom subnet mode." + "etag": { + "type": "string" }, - "getEffectiveFirewalls": { - "id": "compute.networks.getEffectiveFirewalls", - "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", - "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", - "httpMethod": "GET", - "parameters": { - "network": { - "description": "Name of the network for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "network" - ], - "response": { - "$ref": "NetworksGetEffectiveFirewallsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the effective firewalls on a given network." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ResourcePoliciesScopedList": { + "id": "ResourcePoliciesScopedList", + "type": "object", + "properties": { + "resourcePolicies": { + "description": "A list of resourcePolicies contained in this scope.", + "type": "array", + "items": { + "$ref": "ResourcePolicy" + } }, - "listPeeringRoutes": { - "id": "compute.networks.listPeeringRoutes", - "path": "projects/{project}/global/networks/{network}/listPeeringRoutes", - "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes", - "httpMethod": "GET", - "parameters": { - "direction": { - "description": "The direction of the exchanged routes.", - "location": "query", + "warning": { + "description": "Informational warning which replaces the list of resourcePolicies when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", "type": "string", "enumDescriptions": [ - "For routes exported from peer network.", - "For routes exported from local network." + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false ], "enum": [ - "INCOMING", - "OUTGOING" + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" ] }, - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "network": { - "description": "Name of the network for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "peeringName": { - "description": "The response will show routes exchanged over the given peering connection.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "network" - ], - "response": { - "$ref": "ExchangedPeeringRoutesList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the peering routes exchanged over peering connection." + } } } }, - "nodeGroups": { - "methods": { - "list": { - "id": "compute.nodeGroups.list", - "path": "projects/{project}/zones/{zone}/nodeGroups", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "NodeGroupList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group." + "RouteList": { + "id": "RouteList", + "description": "Contains a list of Route resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#routeList", + "type": "string" }, - "aggregatedList": { - "id": "compute.nodeGroups.aggregatedList", - "path": "projects/{project}/aggregated/nodeGroups", - "flatPath": "projects/{project}/aggregated/nodeGroups", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "NodeGroupAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "get": { - "id": "compute.nodeGroups.get", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "httpMethod": "GET", - "parameters": { - "nodeGroup": { - "description": "Name of the node group to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "response": { - "$ref": "NodeGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified NodeGroup. Get a list of available NodeGroups by making a list() request. Note: the \"nodes\" field should not be used. Use nodeGroups.listNodes instead." + "items": { + "description": "A list of Route resources.", + "type": "array", + "items": { + "$ref": "Route" + } }, - "insert": { - "id": "compute.nodeGroups.insert", - "path": "projects/{project}/zones/{zone}/nodeGroups", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups", - "httpMethod": "POST", - "parameters": { - "initialNodeCount": { - "description": "Initial count of nodes in the node group.", - "location": "query", - "required": true, - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "initialNodeCount" - ], - "request": { - "$ref": "NodeGroup" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a NodeGroup resource in the specified project using the data included in the request." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "delete": { - "id": "compute.nodeGroups.delete", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "httpMethod": "DELETE", - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified NodeGroup resource." + } + } + } + }, + "Route": { + "id": "Route", + "description": "Represents a Route resource. A route defines a path from VM instances in the VPC network to a specific destination. This destination can be inside or outside the VPC network. For more information, read the Routes overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of this resource. Always compute#routes for Route resources.", + "default": "compute#route", + "type": "string" }, - "addNodes": { - "id": "compute.nodeGroups.addNodes", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", - "httpMethod": "POST", - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "request": { - "$ref": "NodeGroupsAddNodesRequest" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "response": { - "$ref": "Operation" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this field when you create the resource.", + "type": "string" + }, + "network": { + "description": "Fully-qualified URL of the network that this route applies to.", + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds specified number of nodes to the node group." + "type": "string" }, - "deleteNodes": { - "id": "compute.nodeGroups.deleteNodes", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", - "httpMethod": "POST", - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource whose nodes will be deleted.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } + "tags": { + "description": "A list of instance tags to which this route applies.", + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "request": { - "$ref": "NodeGroupsDeleteNodesRequest" + "type": "array", + "items": { + "type": "string" + } + }, + "destRange": { + "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952 compressed format.", + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "response": { - "$ref": "Operation" + "type": "string" + }, + "priority": { + "description": "The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In cases where multiple routes have equal prefix length, the one with the lowest-numbered priority value wins. The default value is `1000`. The priority value must be from `0` to `65535`, inclusive.", + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes specified nodes from the node group." + "type": "integer", + "format": "uint32" }, - "listNodes": { - "id": "compute.nodeGroups.listNodes", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "nodeGroup": { - "description": "Name of the NodeGroup resource whose nodes you want to list.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "nextHopInstance": { + "description": "The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/", + "type": "string" + }, + "nextHopIp": { + "description": "The network IP address of an instance that should handle matching packets. Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952 compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", + "type": "string" + }, + "nextHopNetwork": { + "description": "The URL of the local network if it should handle matching packets.", + "type": "string" + }, + "nextHopGateway": { + "description": "The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL: projects/ project/global/gateways/default-internet-gateway", + "type": "string" + }, + "nextHopPeering": { + "description": "[Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.", + "type": "string" + }, + "nextHopIlb": { + "description": "The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets or the IP address of the forwarding Rule. For example, the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - regions/region/forwardingRules/forwardingRule ", + "type": "string" + }, + "warnings": { + "description": "[Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "response": { - "$ref": "NodeGroupsListNodes" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + } + }, + "nextHopVpnTunnel": { + "description": "The URL to a VpnTunnel that should handle matching packets.", + "type": "string" + }, + "nextHopHub": { + "description": "[Output Only] The full resource name of the Network Connectivity Center hub that will handle matching packets.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "routeType": { + "description": "[Output Only] The type of this route, which can be one of the following values: - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers - 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this router - 'STATIC' for a static route", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Lists nodes in the node group." + "enum": [ + "BGP", + "STATIC", + "SUBNET", + "TRANSIT" + ] }, - "setNodeTemplate": { - "id": "compute.nodeGroups.setNodeTemplate", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", - "httpMethod": "POST", - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" + "asPaths": { + "description": "[Output Only] AS path.", + "type": "array", + "items": { + "$ref": "RouteAsPath" + } + }, + "routeStatus": { + "description": "[Output only] The status of the route.", + "type": "string", + "enumDescriptions": [ + "This route is processed and active.", + "The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example", + "This route is processed but inactive due to failure from the backend. The backend may have rejected the route", + "This route is being processed internally. The status will change once processed." ], - "request": { - "$ref": "NodeGroupsSetNodeTemplateRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ACTIVE", + "DROPPED", + "INACTIVE", + "PENDING" + ] + } + } + }, + "RouteAsPath": { + "id": "RouteAsPath", + "type": "object", + "properties": { + "pathSegmentType": { + "description": "[Output Only] The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Updates the node template of the node group." + "enum": [ + "AS_CONFED_SEQUENCE", + "AS_CONFED_SET", + "AS_SEQUENCE", + "AS_SET" + ] }, - "patch": { - "id": "compute.nodeGroups.patch", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "httpMethod": "PATCH", - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } + "asLists": { + "description": "[Output Only] The AS numbers of the AS Path.", + "type": "array", + "items": { + "type": "integer", + "format": "uint32" + } + } + } + }, + "Router": { + "id": "Router", + "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#router for routers.", + "default": "compute#router", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" - ], - "request": { - "$ref": "NodeGroup" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[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.", + "type": "string" + }, + "network": { + "description": "URI of the network to which this router belongs.", + "annotations": { + "required": [ + "compute.routers.insert", + "compute.routers.update" + ] }, - "response": { - "$ref": "Operation" + "type": "string" + }, + "interfaces": { + "description": "Router interfaces. To create a BGP peer that uses a router interface, the interface must have one of the following fields specified: - linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a router interface without any of these fields specified. However, you cannot create a BGP peer that uses that interface.", + "type": "array", + "items": { + "$ref": "RouterInterface" + } + }, + "bgpPeers": { + "description": "BGP information that must be configured into the routing stack to establish BGP peering. This information must specify the peer ASN and either the interface name, IP address, or peer IP address. Please refer to RFC4273.", + "type": "array", + "items": { + "$ref": "RouterBgpPeer" + } + }, + "bgp": { + "description": "BGP information specific to this router.", + "$ref": "RouterBgp" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "nats": { + "description": "A list of NAT services created in this router.", + "type": "array", + "items": { + "$ref": "RouterNat" + } + }, + "encryptedInterconnectRouter": { + "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments).", + "type": "boolean" + }, + "md5AuthenticationKeys": { + "description": "Keys used for MD5 authentication.", + "type": "array", + "items": { + "$ref": "RouterMd5AuthenticationKey" + } + } + } + }, + "RouterInterface": { + "id": "RouterInterface", + "type": "object", + "properties": { + "name": { + "description": "Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "linkedVpnTunnel": { + "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", + "type": "string" + }, + "linkedInterconnectAttachment": { + "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", + "type": "string" + }, + "ipRange": { + "description": "IP address and range of the interface. - For Internet Protocol version 4 (IPv4), the IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example, 169.254.0.1/30. Note: Do not truncate the IP address, as it represents the IP address of the interface. - For Internet Protocol version 6 (IPv6), the value must be a unique local address (ULA) range from fdff:1::/64 with a mask length of 126 or less. This value should be a CIDR-formatted string, for example, fc00:0:1:1::1/112. Within the router's VPC, this IPv6 prefix will be reserved exclusively for this connection and cannot be used for any other purpose. ", + "type": "string" + }, + "managementType": { + "description": "[Output Only] The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. ", + "type": "string", + "enumDescriptions": [ + "The interface is automatically created for PARTNER type InterconnectAttachment, Google will automatically create/update/delete this interface when the PARTNER InterconnectAttachment is created/provisioned/deleted. This type of interface cannot be manually managed by user.", + "Default value, the interface is manually created and managed by user." ], - "description": "Updates the specified node group." + "enum": [ + "MANAGED_BY_ATTACHMENT", + "MANAGED_BY_USER" + ] }, - "simulateMaintenanceEvent": { - "id": "compute.nodeGroups.simulateMaintenanceEvent", - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", - "httpMethod": "POST", - "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource whose nodes will go under maintenance simulation.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "nodeGroup" + "privateIpAddress": { + "description": "The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM.", + "type": "string" + }, + "redundantInterface": { + "description": "Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "subnetwork": { + "description": "The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here.", + "type": "string" + }, + "ipVersion": { + "description": "IP version of this interface.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "NodeGroupsSimulateMaintenanceEventRequest" - }, - "response": { - "$ref": "Operation" + "enum": [ + "IPV4", + "IPV6" + ] + } + } + }, + "RouterBgpPeer": { + "id": "RouterBgpPeer", + "type": "object", + "properties": { + "name": { + "description": "Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Simulates maintenance event on specified nodes from the node group." + "type": "string" }, - "getIamPolicy": { - "id": "compute.nodeGroups.getIamPolicy", - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "response": { - "$ref": "Policy" + "interfaceName": { + "description": "Name of the interface the BGP peer is associated with.", + "type": "string" + }, + "ipAddress": { + "description": "IP address of the interface inside Google Cloud Platform.", + "type": "string" + }, + "peerIpAddress": { + "description": "IP address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, + "peerAsn": { + "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "integer", + "format": "uint32" + }, + "advertisedRoutePriority": { + "description": "The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win.", + "type": "integer", + "format": "uint32" + }, + "advertiseMode": { + "description": "User-specified flag to indicate which mode to use for advertisement.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "enum": [ + "CUSTOM", + "DEFAULT" + ] }, - "setIamPolicy": { - "id": "compute.nodeGroups.setIamPolicy", - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" + "advertisedGroups": { + "description": "User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "Advertise all available subnets (including peer VPC subnets)." + ], + "enum": [ + "ALL_SUBNETS" + ] + } + }, + "advertisedIpRanges": { + "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", + "type": "array", + "items": { + "$ref": "RouterAdvertisedIpRange" + } + }, + "managementType": { + "description": "[Output Only] The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. ", + "type": "string", + "enumDescriptions": [ + "The BGP peer is automatically created for PARTNER type InterconnectAttachment; Google will automatically create/delete this BGP peer when the PARTNER InterconnectAttachment is created/deleted, and Google will update the ipAddress and peerIpAddress when the PARTNER InterconnectAttachment is provisioned. This type of BGP peer cannot be created or deleted, but can be modified for all fields except for name, ipAddress and peerIpAddress.", + "Default value, the BGP peer is manually created and managed by user." ], - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "MANAGED_BY_ATTACHMENT", + "MANAGED_BY_USER" + ] + }, + "enable": { + "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "enum": [ + "FALSE", + "TRUE" + ] + }, + "bfd": { + "description": "BFD configuration for the BGP peering.", + "$ref": "RouterBgpPeerBfd" + }, + "routerApplianceInstance": { + "description": "URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session.", + "type": "string" + }, + "enableIpv6": { + "description": "Enable IPv6 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 6.", + "type": "boolean" + }, + "ipv6NexthopAddress": { + "description": "IPv6 address of the interface inside Google Cloud Platform.", + "type": "string" + }, + "peerIpv6NexthopAddress": { + "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, + "md5AuthenticationKeyName": { + "description": "Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035.", + "type": "string" + }, + "customLearnedRoutePriority": { + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", + "type": "integer", + "format": "int32" + }, + "customLearnedIpRanges": { + "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", + "type": "array", + "items": { + "$ref": "RouterBgpPeerCustomLearnedIpRange" + } + }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", + "type": "boolean" + }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the interface inside Google Cloud Platform.", + "type": "string" + }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, + "exportPolicies": { + "description": "List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are currently available in preview. Please use Beta API to use Route Policies.", + "type": "array", + "items": { + "type": "string" + } + }, + "importPolicies": { + "description": "List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. Note that Route Policies are currently available in preview. Please use Beta API to use Route Policies.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RouterAdvertisedIpRange": { + "id": "RouterAdvertisedIpRange", + "description": "Description-tagged IP ranges for the router to advertise.", + "type": "object", + "properties": { + "range": { + "description": "The IP range to advertise. The value must be a CIDR-formatted string.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.nodeGroups.testIamPermissions", - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "description": { + "description": "User-specified description for the IP range.", + "type": "string" + } + } + }, + "RouterBgpPeerBfd": { + "id": "RouterBgpPeerBfd", + "type": "object", + "properties": { + "sessionInitializationMode": { + "description": "The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is DISABLED.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "ACTIVE", + "DISABLED", + "PASSIVE" + ] + }, + "minTransmitInterval": { + "description": "The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000.", + "type": "integer", + "format": "uint32" + }, + "minReceiveInterval": { + "description": "The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000.", + "type": "integer", + "format": "uint32" + }, + "multiplier": { + "description": "The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5.", + "type": "integer", + "format": "uint32" } } }, - "nodeTemplates": { - "methods": { - "list": { - "id": "compute.nodeTemplates.list", - "path": "projects/{project}/regions/{region}/nodeTemplates", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" + "RouterBgpPeerCustomLearnedIpRange": { + "id": "RouterBgpPeerCustomLearnedIpRange", + "type": "object", + "properties": { + "range": { + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", + "type": "string" + } + } + }, + "RouterBgp": { + "id": "RouterBgp", + "type": "object", + "properties": { + "asn": { + "description": "Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.", + "type": "integer", + "format": "uint32" + }, + "advertiseMode": { + "description": "User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "NodeTemplateList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "CUSTOM", + "DEFAULT" + ] + }, + "advertisedGroups": { + "description": "User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "Advertise all available subnets (including peer VPC subnets)." + ], + "enum": [ + "ALL_SUBNETS" + ] + } + }, + "advertisedIpRanges": { + "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", + "type": "array", + "items": { + "$ref": "RouterAdvertisedIpRange" + } + }, + "keepaliveInterval": { + "description": "The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20.", + "type": "integer", + "format": "uint32" + }, + "identifierRange": { + "description": "Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this \"router ID\".", + "type": "string" + } + } + }, + "RouterNat": { + "id": "RouterNat", + "description": "Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided.", + "type": "object", + "properties": { + "name": { + "description": "Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "type": { + "description": "Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC.", + "type": "string", + "enumDescriptions": [ + "NAT used for private IP translation.", + "NAT used for public IP translation. This is the default." ], - "description": "Retrieves a list of node templates available to the specified project." + "enum": [ + "PRIVATE", + "PUBLIC" + ] }, - "aggregatedList": { - "id": "compute.nodeTemplates.aggregatedList", - "path": "projects/{project}/aggregated/nodeTemplates", - "flatPath": "projects/{project}/aggregated/nodeTemplates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" + "autoNetworkTier": { + "description": "The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used.", + "type": "string", + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Public internet quality, only limited support for other networking products.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." ], - "response": { - "$ref": "NodeTemplateAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ] + }, + "endpointTypes": { + "description": "List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "This is used for regional Application Load Balancers (internal and external) and regional proxy Network Load Balancers (internal and external) endpoints.", + "This is used for Secure Web Gateway endpoints.", + "This is the default." + ], + "enum": [ + "ENDPOINT_TYPE_MANAGED_PROXY_LB", + "ENDPOINT_TYPE_SWG", + "ENDPOINT_TYPE_VM" + ] + } + }, + "sourceSubnetworkIpRangesToNat": { + "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region.", + "type": "string", + "enumDescriptions": [ + "All the IP ranges in every Subnetwork are allowed to Nat.", + "All the primary IP ranges in every Subnetwork are allowed to Nat.", + "A list of Subnetworks are allowed to Nat (specified in the field subnetwork below)" ], - "description": "Retrieves an aggregated list of node templates." + "enum": [ + "ALL_SUBNETWORKS_ALL_IP_RANGES", + "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", + "LIST_OF_SUBNETWORKS" + ] }, - "get": { - "id": "compute.nodeTemplates.get", - "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "httpMethod": "GET", - "parameters": { - "nodeTemplate": { - "description": "Name of the node template to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "nodeTemplate" + "subnetworks": { + "description": "A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above.", + "type": "array", + "items": { + "$ref": "RouterNatSubnetworkToNat" + } + }, + "natIps": { + "description": "A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project.", + "type": "array", + "items": { + "type": "string" + } + }, + "drainNatIps": { + "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only.", + "type": "array", + "items": { + "type": "string" + } + }, + "natIpAllocateOption": { + "description": "Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. ", + "type": "string", + "enumDescriptions": [ + "Nat IPs are allocated by GCP; customers can not specify any Nat IPs.", + "Only use Nat IPs provided by customers. When specified Nat IPs are not enough then the Nat service fails for new VMs." ], - "response": { - "$ref": "NodeTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "AUTO_ONLY", + "MANUAL_ONLY" + ] + }, + "minPortsPerVm": { + "description": "Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM.", + "type": "integer", + "format": "int32" + }, + "maxPortsPerVm": { + "description": "Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config.", + "type": "integer", + "format": "int32" + }, + "enableDynamicPortAllocation": { + "description": "Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. ", + "type": "boolean" + }, + "udpIdleTimeoutSec": { + "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", + "type": "integer", + "format": "int32" + }, + "icmpIdleTimeoutSec": { + "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", + "type": "integer", + "format": "int32" + }, + "tcpEstablishedIdleTimeoutSec": { + "description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.", + "type": "integer", + "format": "int32" + }, + "tcpTransitoryIdleTimeoutSec": { + "description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.", + "type": "integer", + "format": "int32" + }, + "tcpTimeWaitTimeoutSec": { + "description": "Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.", + "type": "integer", + "format": "int32" + }, + "logConfig": { + "description": "Configure logging on this NAT.", + "$ref": "RouterNatLogConfig" + }, + "rules": { + "description": "A list of rules associated with this NAT.", + "type": "array", + "items": { + "$ref": "RouterNatRule" + } + }, + "enableEndpointIndependentMapping": { + "type": "boolean" + } + } + }, + "RouterNatSubnetworkToNat": { + "id": "RouterNatSubnetworkToNat", + "description": "Defines the IP ranges that want to use NAT for a subnetwork.", + "type": "object", + "properties": { + "name": { + "description": "URL for the subnetwork resource that will use NAT.", + "type": "string" + }, + "sourceIpRangesToNat": { + "description": "Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: [\"PRIMARY_IP_RANGE\", \"LIST_OF_SECONDARY_IP_RANGES\"] Default: [ALL_IP_RANGES]", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "The primary and all the secondary ranges are allowed to Nat.", + "A list of secondary ranges are allowed to Nat.", + "The primary range is allowed to Nat." + ], + "enum": [ + "ALL_IP_RANGES", + "LIST_OF_SECONDARY_IP_RANGES", + "PRIMARY_IP_RANGE" + ] + } + }, + "secondaryIpRangeNames": { + "description": "A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if \"LIST_OF_SECONDARY_IP_RANGES\" is one of the values in source_ip_ranges_to_nat.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RouterNatLogConfig": { + "id": "RouterNatLogConfig", + "description": "Configuration of logging on a NAT.", + "type": "object", + "properties": { + "enable": { + "description": "Indicates whether or not to export logs. This is false by default.", + "type": "boolean" + }, + "filter": { + "description": "Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. ", + "type": "string", + "enumDescriptions": [ + "Export logs for all (successful and unsuccessful) connections.", + "Export logs for connection failures only.", + "Export logs for successful connections only." ], - "description": "Returns the specified node template." + "enum": [ + "ALL", + "ERRORS_ONLY", + "TRANSLATIONS_ONLY" + ] + } + } + }, + "RouterNatRule": { + "id": "RouterNatRule", + "type": "object", + "properties": { + "ruleNumber": { + "description": "An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.", + "type": "integer", + "format": "uint32" }, - "insert": { - "id": "compute.nodeTemplates.insert", - "path": "projects/{project}/regions/{region}/nodeTemplates", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "NodeTemplate" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a NodeTemplate resource in the specified project using the data included in the request." + "description": { + "description": "An optional description of this rule.", + "type": "string" }, - "delete": { - "id": "compute.nodeTemplates.delete", - "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "httpMethod": "DELETE", - "parameters": { - "nodeTemplate": { - "description": "Name of the NodeTemplate resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "nodeTemplate" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified NodeTemplate resource." + "match": { + "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'\"", + "type": "string" }, - "getIamPolicy": { - "id": "compute.nodeTemplates.getIamPolicy", - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "action": { + "description": "The action to be enforced for traffic that matches this rule.", + "$ref": "RouterNatRuleAction" + } + } + }, + "RouterNatRuleAction": { + "id": "RouterNatRuleAction", + "type": "object", + "properties": { + "sourceNatActiveIps": { + "description": "A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.", + "type": "array", + "items": { + "type": "string" + } }, - "setIamPolicy": { - "id": "compute.nodeTemplates.setIamPolicy", - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "sourceNatDrainIps": { + "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.", + "type": "array", + "items": { + "type": "string" + } }, - "testIamPermissions": { - "id": "compute.nodeTemplates.testIamPermissions", - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "sourceNatActiveRanges": { + "description": "A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.", + "type": "array", + "items": { + "type": "string" + } + }, + "sourceNatDrainRanges": { + "description": "A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.", + "type": "array", + "items": { + "type": "string" + } } } }, - "nodeTypes": { - "methods": { - "list": { - "id": "compute.nodeTypes.list", - "path": "projects/{project}/zones/{zone}/nodeTypes", - "flatPath": "projects/{project}/zones/{zone}/nodeTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "NodeTypeList" + "RouterMd5AuthenticationKey": { + "id": "RouterMd5AuthenticationKey", + "type": "object", + "properties": { + "name": { + "description": "Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035.", + "annotations": { + "required": [ + "compute.routers.insert", + "compute.routers.update" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of node types available to the specified project." + "type": "string" }, - "aggregatedList": { - "id": "compute.nodeTypes.aggregatedList", - "path": "projects/{project}/aggregated/nodeTypes", - "flatPath": "projects/{project}/aggregated/nodeTypes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "NodeTypeAggregatedList" + "key": { + "description": "[Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters.", + "annotations": { + "required": [ + "compute.routers.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of node types." + "type": "string" + } + } + }, + "RouterList": { + "id": "RouterList", + "description": "Contains a list of Router resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#router for routers.", + "default": "compute#routerList", + "type": "string" }, - "get": { - "id": "compute.nodeTypes.get", - "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", - "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", - "httpMethod": "GET", - "parameters": { - "nodeType": { - "description": "Name of the node type to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Router resources.", + "type": "array", + "items": { + "$ref": "Router" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "nodeType" - ], - "response": { - "$ref": "NodeType" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified node type." + } } } }, - "regionNotificationEndpoints": { - "methods": { - "list": { - "id": "compute.regionNotificationEndpoints.list", - "path": "projects/{project}/regions/{region}/notificationEndpoints", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "NotificationEndpointList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the NotificationEndpoints for a project in the given region." + "RouterAggregatedList": { + "id": "RouterAggregatedList", + "description": "Contains a list of routers.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#routerAggregatedList", + "type": "string" }, - "get": { - "id": "compute.regionNotificationEndpoints.get", - "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "httpMethod": "GET", - "parameters": { - "notificationEndpoint": { - "description": "Name of the NotificationEndpoint resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "notificationEndpoint" - ], - "response": { - "$ref": "NotificationEndpoint" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified NotificationEndpoint resource in the given region." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "insert": { - "id": "compute.regionNotificationEndpoints.insert", - "path": "projects/{project}/regions/{region}/notificationEndpoints", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of Router resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of routers.", + "$ref": "RoutersScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "NotificationEndpoint" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request." + } }, - "delete": { - "id": "compute.regionNotificationEndpoints.delete", - "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", - "httpMethod": "DELETE", - "parameters": { - "notificationEndpoint": { - "description": "Name of the NotificationEndpoint resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RoutersScopedList": { + "id": "RoutersScopedList", + "type": "object", + "properties": { + "routers": { + "description": "A list of routers contained in this scope.", + "type": "array", + "items": { + "$ref": "Router" + } + }, + "warning": { + "description": "Informational warning which replaces the list of routers when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "notificationEndpoint" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified NotificationEndpoint in the given region" + } } } }, - "packetMirrorings": { - "methods": { - "get": { - "id": "compute.packetMirrorings.get", - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "httpMethod": "GET", - "parameters": { - "packetMirroring": { - "description": "Name of the PacketMirroring resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "packetMirroring" - ], - "response": { - "$ref": "PacketMirroring" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified PacketMirroring resource." + "RouterStatusResponse": { + "id": "RouterStatusResponse", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#routerStatusResponse", + "type": "string" }, - "insert": { - "id": "compute.packetMirrorings.insert", - "path": "projects/{project}/regions/{region}/packetMirrorings", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "PacketMirroring" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request." + "result": { + "$ref": "RouterStatus" + } + } + }, + "RouterStatus": { + "id": "RouterStatus", + "type": "object", + "properties": { + "network": { + "description": "URI of the network to which this router belongs.", + "type": "string" }, - "patch": { - "id": "compute.packetMirrorings.patch", - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "httpMethod": "PATCH", - "parameters": { - "packetMirroring": { - "description": "Name of the PacketMirroring resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "packetMirroring" - ], - "request": { - "$ref": "PacketMirroring" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified PacketMirroring resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "bestRoutes": { + "description": "Best routes for this router's network.", + "type": "array", + "items": { + "$ref": "Route" + } }, - "delete": { - "id": "compute.packetMirrorings.delete", - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "httpMethod": "DELETE", - "parameters": { - "packetMirroring": { - "description": "Name of the PacketMirroring resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "packetMirroring" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified PacketMirroring resource." + "bestRoutesForRouter": { + "description": "Best routes learned by this router.", + "type": "array", + "items": { + "$ref": "Route" + } }, - "list": { - "id": "compute.packetMirrorings.list", - "path": "projects/{project}/regions/{region}/packetMirrorings", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "PacketMirroringList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of PacketMirroring resources available to the specified project and region." + "bgpPeerStatus": { + "type": "array", + "items": { + "$ref": "RouterStatusBgpPeerStatus" + } }, - "aggregatedList": { - "id": "compute.packetMirrorings.aggregatedList", - "path": "projects/{project}/aggregated/packetMirrorings", - "flatPath": "projects/{project}/aggregated/packetMirrorings", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "PacketMirroringAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of packetMirrorings." + "natStatus": { + "type": "array", + "items": { + "$ref": "RouterStatusNatStatus" + } + } + } + }, + "RouterStatusBgpPeerStatus": { + "id": "RouterStatusBgpPeerStatus", + "type": "object", + "properties": { + "name": { + "description": "Name of this BGP peer. Unique within the Routers resource.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.packetMirrorings.testIamPermissions", - "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" + "linkedVpnTunnel": { + "description": "URL of the VPN tunnel that this BGP peer controls.", + "type": "string" + }, + "routerApplianceInstance": { + "description": "[Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.", + "type": "string" + }, + "ipAddress": { + "description": "IP address of the local BGP interface.", + "type": "string" + }, + "peerIpAddress": { + "description": "IP address of the remote BGP interface.", + "type": "string" + }, + "ipv6NexthopAddress": { + "description": "IPv6 address of the local BGP interface.", + "type": "string" + }, + "peerIpv6NexthopAddress": { + "description": "IPv6 address of the remote BGP interface.", + "type": "string" + }, + "enableIpv6": { + "description": "Enable IPv6 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 6.", + "type": "boolean" + }, + "status": { + "description": "Status of the BGP peer: {UP, DOWN}", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "DOWN", + "UNKNOWN", + "UP" + ] + }, + "state": { + "description": "The state of the BGP session. For a list of possible values for this field, see BGP session states.", + "type": "string" + }, + "uptime": { + "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds", + "type": "string" + }, + "uptimeSeconds": { + "description": "Time this session has been up, in seconds. Format: 145", + "type": "string" + }, + "numLearnedRoutes": { + "description": "Number of routes learned from the remote BGP Peer.", + "type": "integer", + "format": "uint32" + }, + "advertisedRoutes": { + "description": "Routes that were advertised to the remote BGP peer", + "type": "array", + "items": { + "$ref": "Route" + } + }, + "bfdStatus": { + "$ref": "BfdStatus" + }, + "md5AuthEnabled": { + "description": "Informs whether MD5 authentication is enabled on this BGP peer.", + "type": "boolean" + }, + "statusReason": { + "description": "Indicates why particular status was returned.", + "type": "string", + "enumDescriptions": [ + "BGP peer disabled because it requires IPv4 but the underlying connection is IPv6-only.", + "BGP peer disabled because it requires IPv6 but the underlying connection is IPv4-only.", + "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", + "" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "IPV4_PEER_ON_IPV6_ONLY_CONNECTION", + "IPV6_PEER_ON_IPV4_ONLY_CONNECTION", + "MD5_AUTH_INTERNAL_PROBLEM", + "STATUS_REASON_UNSPECIFIED" + ] + }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the local BGP interface.", + "type": "string" + }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the remote BGP interface.", + "type": "string" + }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", + "type": "boolean" } } }, - "projects": { - "methods": { - "get": { - "id": "compute.projects.get", - "path": "projects/{project}", - "flatPath": "projects/{project}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "Project" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified Project resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request." + "BfdStatus": { + "id": "BfdStatus", + "description": "Next free: 15", + "type": "object", + "properties": { + "uptimeMs": { + "description": "Session uptime in milliseconds. Value will be 0 if session is not up.", + "type": "string", + "format": "int64" }, - "setCommonInstanceMetadata": { - "id": "compute.projects.setCommonInstanceMetadata", - "path": "projects/{project}/setCommonInstanceMetadata", - "flatPath": "projects/{project}/setCommonInstanceMetadata", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Metadata" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "localState": { + "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "description": "Sets metadata common to all instances within the specified project using the data included in the request." + "enum": [ + "ADMIN_DOWN", + "DOWN", + "INIT", + "STATE_UNSPECIFIED", + "UP" + ] }, - "setUsageExportBucket": { - "id": "compute.projects.setUsageExportBucket", - "path": "projects/{project}/setUsageExportBucket", - "flatPath": "projects/{project}/setUsageExportBucket", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "UsageExportLocation" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" + "localDiagnostic": { + "description": "The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled." + "enum": [ + "ADMINISTRATIVELY_DOWN", + "CONCATENATED_PATH_DOWN", + "CONTROL_DETECTION_TIME_EXPIRED", + "DIAGNOSTIC_UNSPECIFIED", + "ECHO_FUNCTION_FAILED", + "FORWARDING_PLANE_RESET", + "NEIGHBOR_SIGNALED_SESSION_DOWN", + "NO_DIAGNOSTIC", + "PATH_DOWN", + "REVERSE_CONCATENATED_PATH_DOWN" + ] }, - "moveInstance": { - "id": "compute.projects.moveInstance", - "path": "projects/{project}/moveInstance", - "flatPath": "projects/{project}/moveInstance", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "InstanceMoveRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "deprecated": true, - "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method is deprecated. See [moving instance across zones](/compute/docs/instances/moving-instance-across-zones) instead." + "controlPacketCounts": { + "description": "Control packet counts for the current BFD session.", + "$ref": "BfdStatusPacketCounts" }, - "moveDisk": { - "id": "compute.projects.moveDisk", - "path": "projects/{project}/moveDisk", - "flatPath": "projects/{project}/moveDisk", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "DiskMoveRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Moves a persistent disk from one zone to another." + "txPacket": { + "description": "The most recent Tx control packet for this BFD session.", + "$ref": "BfdPacket" }, - "listXpnHosts": { - "id": "compute.projects.listXpnHosts", - "path": "projects/{project}/listXpnHosts", - "flatPath": "projects/{project}/listXpnHosts", - "httpMethod": "POST", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" + "rxPacket": { + "description": "The most recent Rx control packet for this BFD session.", + "$ref": "BfdPacket" + }, + "controlPacketIntervals": { + "description": "Inter-packet time interval statistics for control packets.", + "type": "array", + "items": { + "$ref": "PacketIntervals" + } + }, + "negotiatedLocalControlTxIntervalMs": { + "description": "Negotiated transmit interval for control packets.", + "type": "integer", + "format": "uint32" + }, + "bfdSessionInitializationMode": { + "description": "The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "request": { - "$ref": "ProjectsListXpnHostsRequest" - }, - "response": { - "$ref": "XpnHostList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ACTIVE", + "DISABLED", + "PASSIVE" + ] + }, + "configUpdateTimestampMicros": { + "description": "Unix timestamp of the most recent config update.", + "type": "string", + "format": "int64" + } + } + }, + "BfdStatusPacketCounts": { + "id": "BfdStatusPacketCounts", + "type": "object", + "properties": { + "numTx": { + "description": "Number of packets transmitted since the beginning of the current BFD session.", + "type": "integer", + "format": "uint32" + }, + "numRx": { + "description": "Number of packets received since the beginning of the current BFD session.", + "type": "integer", + "format": "uint32" + }, + "numRxSuccessful": { + "description": "Number of packets received that were successfully processed since the beginning of the current BFD session.", + "type": "integer", + "format": "uint32" + }, + "numRxRejected": { + "description": "Number of packets received that were rejected because of errors since the beginning of the current BFD session.", + "type": "integer", + "format": "uint32" + } + } + }, + "BfdPacket": { + "id": "BfdPacket", + "type": "object", + "properties": { + "version": { + "description": "The version number of the BFD protocol, as specified in section 4.1 of RFC5880.", + "type": "integer", + "format": "uint32" + }, + "diagnostic": { + "description": "The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" ], - "description": "Lists all shared VPC host projects visible to the user in an organization." + "enum": [ + "ADMINISTRATIVELY_DOWN", + "CONCATENATED_PATH_DOWN", + "CONTROL_DETECTION_TIME_EXPIRED", + "DIAGNOSTIC_UNSPECIFIED", + "ECHO_FUNCTION_FAILED", + "FORWARDING_PLANE_RESET", + "NEIGHBOR_SIGNALED_SESSION_DOWN", + "NO_DIAGNOSTIC", + "PATH_DOWN", + "REVERSE_CONCATENATED_PATH_DOWN" + ] }, - "enableXpnHost": { - "id": "compute.projects.enableXpnHost", - "path": "projects/{project}/enableXpnHost", - "flatPath": "projects/{project}/enableXpnHost", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" + "state": { + "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ADMIN_DOWN", + "DOWN", + "INIT", + "STATE_UNSPECIFIED", + "UP" + ] + }, + "poll": { + "description": "The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "final": { + "description": "The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "controlPlaneIndependent": { + "description": "The Control Plane Independent bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "authenticationPresent": { + "description": "The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "demand": { + "description": "The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "multipoint": { + "description": "The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "boolean" + }, + "multiplier": { + "description": "The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + }, + "length": { + "description": "The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + }, + "myDiscriminator": { + "description": "The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + }, + "yourDiscriminator": { + "description": "The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + }, + "minTxIntervalMs": { + "description": "The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + }, + "minRxIntervalMs": { + "description": "The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + }, + "minEchoRxIntervalMs": { + "description": "The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", + "type": "integer", + "format": "uint32" + } + } + }, + "PacketIntervals": { + "id": "PacketIntervals", + "description": "Next free: 7", + "type": "object", + "properties": { + "type": { + "description": "The type of packets for which inter-packet intervals were computed.", + "type": "string", + "enumDescriptions": [ + "Only applies to Echo packets. This shows the intervals between sending and receiving the same packet.", + "Intervals between received packets.", + "Intervals between transmitted packets.", + "" ], - "description": "Enable this project as a shared VPC host project." + "enum": [ + "LOOPBACK", + "RECEIVE", + "TRANSMIT", + "TYPE_UNSPECIFIED" + ] }, - "disableXpnHost": { - "id": "compute.projects.disableXpnHost", - "path": "projects/{project}/disableXpnHost", - "flatPath": "projects/{project}/disableXpnHost", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "duration": { + "description": "From how long ago in the past these intervals were observed.", + "type": "string", + "enumDescriptions": [ + "", + "", + "From BfdSession object creation time.", + "" ], - "description": "Disable this project as a shared VPC host project." + "enum": [ + "DURATION_UNSPECIFIED", + "HOUR", + "MAX", + "MINUTE" + ] }, - "enableXpnResource": { - "id": "compute.projects.enableXpnResource", - "path": "projects/{project}/enableXpnResource", - "flatPath": "projects/{project}/enableXpnResource", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "ProjectsEnableXpnResourceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Enable service resource (a.k.a service project) for a host project, so that subnets in the host project can be used by instances in the service project." + "numIntervals": { + "description": "Number of inter-packet intervals from which these statistics were derived.", + "type": "string", + "format": "int64" }, - "disableXpnResource": { - "id": "compute.projects.disableXpnResource", - "path": "projects/{project}/disableXpnResource", - "flatPath": "projects/{project}/disableXpnResource", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "ProjectsDisableXpnResourceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Disable a service resource (also known as service project) associated with this host project." + "minMs": { + "description": "Minimum observed inter-packet interval in milliseconds.", + "type": "string", + "format": "int64" }, - "getXpnHost": { - "id": "compute.projects.getXpnHost", - "path": "projects/{project}/getXpnHost", - "flatPath": "projects/{project}/getXpnHost", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "Project" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists." + "maxMs": { + "description": "Maximum observed inter-packet interval in milliseconds.", + "type": "string", + "format": "int64" }, - "getXpnResources": { - "id": "compute.projects.getXpnResources", - "path": "projects/{project}/getXpnResources", - "flatPath": "projects/{project}/getXpnResources", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ProjectsGetXpnResources" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Gets service resources (a.k.a service project) associated with this host project." + "avgMs": { + "description": "Average observed inter-packet interval in milliseconds.", + "type": "string", + "format": "int64" + } + } + }, + "RouterStatusNatStatus": { + "id": "RouterStatusNatStatus", + "description": "Status of a NAT contained in this router.", + "type": "object", + "properties": { + "name": { + "description": "Unique name of this NAT.", + "type": "string" }, - "setDefaultNetworkTier": { - "id": "compute.projects.setDefaultNetworkTier", - "path": "projects/{project}/setDefaultNetworkTier", - "flatPath": "projects/{project}/setDefaultNetworkTier", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "ProjectsSetDefaultNetworkTierRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the default network tier of the project. The default network tier is used when an address/forwardingRule/instance is created without specifying the network tier field." + "userAllocatedNatIpResources": { + "description": "A list of fully qualified URLs of reserved IP address resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "drainUserAllocatedNatIps": { + "description": "A list of IPs user-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "userAllocatedNatIps": { + "description": "A list of IPs user-allocated for NAT. They will be raw IP strings like \"179.12.26.133\".", + "type": "array", + "items": { + "type": "string" + } + }, + "autoAllocatedNatIps": { + "description": "A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\", \"129.2.16.89\"]", + "type": "array", + "items": { + "type": "string" + } + }, + "drainAutoAllocatedNatIps": { + "description": "A list of IPs auto-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "minExtraNatIpsNeeded": { + "description": "The number of extra IPs to allocate. This will be greater than 0 only if user-specified IPs are NOT enough to allow all configured VMs to use NAT. This value is meaningful only when auto-allocation of NAT IPs is *not* used.", + "type": "integer", + "format": "int32" + }, + "numVmEndpointsWithNatMappings": { + "description": "Number of VM endpoints (i.e., Nics) that can use NAT.", + "type": "integer", + "format": "int32" + }, + "ruleStatus": { + "description": "Status of rules in this NAT.", + "type": "array", + "items": { + "$ref": "RouterStatusNatStatusNatRuleStatus" + } } } }, - "publicAdvertisedPrefixes": { - "methods": { - "list": { - "id": "compute.publicAdvertisedPrefixes.list", - "path": "projects/{project}/global/publicAdvertisedPrefixes", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "PublicAdvertisedPrefixList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the PublicAdvertisedPrefixes for a project." + "RouterStatusNatStatusNatRuleStatus": { + "id": "RouterStatusNatStatusNatRuleStatus", + "description": "Status of a NAT Rule contained in this NAT.", + "type": "object", + "properties": { + "ruleNumber": { + "description": "Rule number of the rule.", + "type": "integer", + "format": "int32" }, - "get": { - "id": "compute.publicAdvertisedPrefixes.get", - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "activeNatIps": { + "description": "A list of active IPs for NAT. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "drainNatIps": { + "description": "A list of IPs for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "minExtraIpsNeeded": { + "description": "The number of extra IPs to allocate. This will be greater than 0 only if the existing IPs in this NAT Rule are NOT enough to allow all configured VMs to use NAT.", + "type": "integer", + "format": "int32" + }, + "numVmEndpointsWithNatMappings": { + "description": "Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule.", + "type": "integer", + "format": "int32" + } + } + }, + "VmEndpointNatMappingsList": { + "id": "VmEndpointNatMappingsList", + "description": "Contains a list of VmEndpointNatMappings.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for lists of Nat mappings of VM endpoints.", + "default": "compute#vmEndpointNatMappingsList", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "result": { + "description": "[Output Only] A list of Nat mapping information of VM endpoints.", + "type": "array", + "items": { + "$ref": "VmEndpointNatMappings" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "publicAdvertisedPrefix": { - "description": "Name of the PublicAdvertisedPrefix resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "response": { - "$ref": "PublicAdvertisedPrefix" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified PublicAdvertisedPrefix resource." - }, - "insert": { - "id": "compute.publicAdvertisedPrefixes.insert", - "path": "projects/{project}/global/publicAdvertisedPrefixes", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "PublicAdvertisedPrefix" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request." + } + } + } + }, + "VmEndpointNatMappings": { + "id": "VmEndpointNatMappings", + "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).", + "type": "object", + "properties": { + "instanceName": { + "description": "Name of the VM instance which the endpoint belongs to", + "type": "string" }, - "delete": { - "id": "compute.publicAdvertisedPrefixes.delete", - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicAdvertisedPrefix": { - "description": "Name of the PublicAdvertisedPrefix resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified PublicAdvertisedPrefix" + "interfaceNatMappings": { + "type": "array", + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappings" + } + } + } + }, + "VmEndpointNatMappingsInterfaceNatMappings": { + "id": "VmEndpointNatMappingsInterfaceNatMappings", + "description": "Contain information of Nat mapping for an interface of this endpoint.", + "type": "object", + "properties": { + "sourceVirtualIp": { + "description": "Primary IP of the VM for this NIC.", + "type": "string" }, - "patch": { - "id": "compute.publicAdvertisedPrefixes.patch", - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicAdvertisedPrefix": { - "description": "Name of the PublicAdvertisedPrefix resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "request": { - "$ref": "PublicAdvertisedPrefix" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "sourceAliasIpRange": { + "description": "Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP range. Examples: \"10.33.4.55/32\", or \"192.168.5.0/24\".", + "type": "string" }, - "announce": { - "id": "compute.publicAdvertisedPrefixes.announce", - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicAdvertisedPrefix": { - "description": "The name of the public advertised prefix. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Announces the specified PublicAdvertisedPrefix" + "numTotalNatPorts": { + "description": "Total number of ports across all NAT IPs allocated to this interface. It equals to the aggregated port number in the field nat_ip_port_ranges.", + "type": "integer", + "format": "int32" }, - "withdraw": { - "id": "compute.publicAdvertisedPrefixes.withdraw", - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicAdvertisedPrefix": { - "description": "The name of the public advertised prefix. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Withdraws the specified PublicAdvertisedPrefix" + "natIpPortRanges": { + "description": "A list of all IP:port-range mappings assigned to this interface. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "drainNatIpPortRanges": { + "description": "List of all drain IP:port-range mappings assigned to this interface. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "numTotalDrainNatPorts": { + "description": "Total number of drain ports across all NAT IPs allocated to this interface. It equals to the aggregated port number in the field drain_nat_ip_port_ranges.", + "type": "integer", + "format": "int32" + }, + "ruleMappings": { + "description": "Information about mappings provided by rules in this NAT.", + "type": "array", + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" + } } } }, - "globalPublicDelegatedPrefixes": { - "methods": { - "list": { - "id": "compute.globalPublicDelegatedPrefixes.list", - "path": "projects/{project}/global/publicDelegatedPrefixes", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "PublicDelegatedPrefixList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the global PublicDelegatedPrefixes for a project." + "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { + "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", + "description": "Contains information of NAT Mappings provided by a NAT Rule.", + "type": "object", + "properties": { + "ruleNumber": { + "description": "Rule number of the NAT Rule.", + "type": "integer", + "format": "int32" }, - "get": { - "id": "compute.globalPublicDelegatedPrefixes.get", - "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicDelegatedPrefix" - ], - "response": { - "$ref": "PublicDelegatedPrefix" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified global PublicDelegatedPrefix resource." + "numTotalNatPorts": { + "description": "Total number of ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field nat_ip_port_ranges.", + "type": "integer", + "format": "int32" }, - "insert": { - "id": "compute.globalPublicDelegatedPrefixes.insert", - "path": "projects/{project}/global/publicDelegatedPrefixes", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request." + "natIpPortRanges": { + "description": "A list of all IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "type": "array", + "items": { + "type": "string" + } }, - "delete": { - "id": "compute.globalPublicDelegatedPrefixes.delete", - "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicDelegatedPrefix" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified global PublicDelegatedPrefix." + "drainNatIpPortRanges": { + "description": "List of all drain IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "type": "array", + "items": { + "type": "string" + } + }, + "numTotalDrainNatPorts": { + "description": "Total number of drain ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field drain_nat_ip_port_ranges.", + "type": "integer", + "format": "int32" + } + } + }, + "NatIpInfoResponse": { + "id": "NatIpInfoResponse", + "type": "object", + "properties": { + "result": { + "description": "[Output Only] A list of NAT IP information.", + "type": "array", + "items": { + "$ref": "NatIpInfo" + } + } + } + }, + "NatIpInfo": { + "id": "NatIpInfo", + "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", + "type": "object", + "properties": { + "natName": { + "description": "Name of the NAT config which the NAT IP belongs to.", + "type": "string" }, - "patch": { - "id": "compute.globalPublicDelegatedPrefixes.patch", - "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "publicDelegatedPrefix" - ], - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "natIpInfoMappings": { + "description": "A list of all NAT IPs assigned to this NAT config.", + "type": "array", + "items": { + "$ref": "NatIpInfoNatIpInfoMapping" + } } } }, - "publicDelegatedPrefixes": { - "methods": { - "list": { - "id": "compute.publicDelegatedPrefixes.list", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "PublicDelegatedPrefixList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the PublicDelegatedPrefixes for a project in the given region." + "NatIpInfoNatIpInfoMapping": { + "id": "NatIpInfoNatIpInfoMapping", + "description": "Contains information of a NAT IP.", + "type": "object", + "properties": { + "natIp": { + "description": "NAT IP address. For example: 203.0.113.11.", + "type": "string" }, - "get": { - "id": "compute.publicDelegatedPrefixes.get", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" + "usage": { + "description": "Specifies whether NAT IP is currently serving at least one endpoint or not.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "response": { - "$ref": "PublicDelegatedPrefix" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "IN_USE", + "UNUSED" + ] + }, + "mode": { + "description": "Specifies whether NAT IP is auto or manual.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Returns the specified PublicDelegatedPrefix resource in the given region." + "enum": [ + "AUTO", + "MANUAL" + ] + } + } + }, + "RoutersPreviewResponse": { + "id": "RoutersPreviewResponse", + "type": "object", + "properties": { + "resource": { + "description": "Preview of given router.", + "$ref": "Router" + } + } + }, + "ServiceAttachmentAggregatedList": { + "id": "ServiceAttachmentAggregatedList", + "description": "Contains a list of ServiceAttachmentsScopedList.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#serviceAttachmentAggregatedList", + "type": "string" }, - "insert": { - "id": "compute.publicDelegatedPrefixes.insert", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ServiceAttachmentsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of ServiceAttachments.", + "$ref": "ServiceAttachmentsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request." + } }, - "delete": { - "id": "compute.publicDelegatedPrefixes.delete", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ServiceAttachmentsScopedList": { + "id": "ServiceAttachmentsScopedList", + "type": "object", + "properties": { + "serviceAttachments": { + "description": "A list of ServiceAttachments contained in this scope.", + "type": "array", + "items": { + "$ref": "ServiceAttachment" + } + }, + "warning": { + "description": "Informational warning which replaces the list of service attachments when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified PublicDelegatedPrefix in the given region." + } + } + } + }, + "ServiceAttachment": { + "id": "ServiceAttachment", + "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", + "default": "compute#serviceAttachment", + "type": "string" }, - "patch": { - "id": "compute.publicDelegatedPrefixes.patch", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" - ], - "request": { - "$ref": "PublicDelegatedPrefix" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" }, - "announce": { - "id": "compute.publicDelegatedPrefixes.announce", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "The name of the public delegated prefix. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Announces the specified PublicDelegatedPrefix in the given region." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "withdraw": { - "id": "compute.publicDelegatedPrefixes.withdraw", - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "publicDelegatedPrefix": { - "description": "The name of the public delegated prefix. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.serviceAttachments.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "publicDelegatedPrefix" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "producerForwardingRule": { + "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", + "deprecated": true, + "type": "string" + }, + "targetService": { + "description": "The URL of a service serving the endpoint identified by this service attachment.", + "type": "string" + }, + "connectionPreference": { + "description": "The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "CONNECTION_PREFERENCE_UNSPECIFIED" + ] + }, + "connectedEndpoints": { + "description": "[Output Only] An array of connections for all the consumers connected to this service attachment.", + "type": "array", + "items": { + "$ref": "ServiceAttachmentConnectedEndpoint" + } + }, + "natSubnets": { + "description": "An array of URLs where each entry is the URL of a subnet provided by the service producer to use for NAT in this service attachment.", + "type": "array", + "items": { + "type": "string" + } + }, + "enableProxyProtocol": { + "description": "If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.", + "type": "boolean" + }, + "consumerRejectLists": { + "description": "Specifies a list of projects or networks that are not allowed to connect to this service attachment. The project can be specified using its project ID or project number and the network can be specified using its URL. A given service attachment can manage connections at either the project or network level. Therefore, both the reject and accept lists for a given service attachment must contain either only projects or only networks.", + "type": "array", + "items": { + "type": "string" + } + }, + "consumerAcceptLists": { + "description": "Specifies which consumer projects or networks are allowed to connect to the service attachment. Each project or network has a connection limit. A given service attachment can manage connections at either the project or network level. Therefore, both the accept and reject lists for a given service attachment must contain either only projects or only networks.", + "type": "array", + "items": { + "$ref": "ServiceAttachmentConsumerProjectLimit" + } + }, + "pscServiceAttachmentId": { + "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment.", + "$ref": "Uint128" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.", + "type": "string", + "format": "byte" + }, + "domainNames": { + "description": "If specified, the domain name will be used during the integration between the PSC connected endpoints and the Cloud DNS. For example, this is a valid domain name: \"p.mycompany.com.\". Current max number of domain names supported is 1.", + "type": "array", + "items": { + "type": "string" + } + }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false.", + "type": "boolean" + } + } + }, + "ServiceAttachmentConnectedEndpoint": { + "id": "ServiceAttachmentConnectedEndpoint", + "description": "[Output Only] A connection connected to this service attachment.", + "type": "object", + "properties": { + "status": { + "description": "The status of a connected endpoint to this service attachment.", + "type": "string", + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The consumer is still connected but not using the connection.", + "" ], - "description": "Withdraws the specified PublicDelegatedPrefix in the given region." + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ] }, - "aggregatedList": { - "id": "compute.publicDelegatedPrefixes.aggregatedList", - "path": "projects/{project}/aggregated/publicDelegatedPrefixes", - "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "pscConnectionId": { + "description": "The PSC connection id of the connected endpoint.", + "type": "string", + "format": "uint64" + }, + "endpoint": { + "description": "The url of a connected endpoint.", + "type": "string" + }, + "consumerNetwork": { + "description": "The url of the consumer network.", + "type": "string" + } + } + }, + "ServiceAttachmentConsumerProjectLimit": { + "id": "ServiceAttachmentConsumerProjectLimit", + "type": "object", + "properties": { + "projectIdOrNum": { + "description": "The project id or number for the project to set the limit for.", + "type": "string" + }, + "networkUrl": { + "description": "The network URL for the network to set the limit for.", + "type": "string" + }, + "connectionLimit": { + "description": "The value of the limit to set.", + "type": "integer", + "format": "uint32" + } + } + }, + "Uint128": { + "id": "Uint128", + "type": "object", + "properties": { + "high": { + "type": "string", + "format": "uint64" + }, + "low": { + "type": "string", + "format": "uint64" + } + } + }, + "ServiceAttachmentList": { + "id": "ServiceAttachmentList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", + "default": "compute#serviceAttachmentList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ServiceAttachment resources.", + "type": "array", + "items": { + "$ref": "ServiceAttachment" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "PublicDelegatedPrefixAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes." + } } } }, - "regions": { - "methods": { - "list": { - "id": "compute.regions.list", - "path": "projects/{project}/regions", - "flatPath": "projects/{project}/regions", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "RegionList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "SnapshotSettings": { + "id": "SnapshotSettings", + "type": "object", + "properties": { + "storageLocation": { + "description": "Policy of which storage location is going to be resolved, and additional data that particularizes how the policy is going to be carried out.", + "$ref": "SnapshotSettingsStorageLocationSettings" + } + } + }, + "SnapshotSettingsStorageLocationSettings": { + "id": "SnapshotSettingsStorageLocationSettings", + "type": "object", + "properties": { + "policy": { + "description": "The chosen location policy.", + "type": "string", + "enumDescriptions": [ + "Store snapshot in the same region as with the originating disk. No additional parameters are needed.", + "Store snapshot in the nearest multi region Cloud Storage bucket, relative to the originating disk. No additional parameters are needed.", + "Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field.", + "" ], - "description": "Retrieves the list of region resources available to the specified project. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `items.quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request." + "enum": [ + "LOCAL_REGION", + "NEAREST_MULTI_REGION", + "SPECIFIC_LOCATIONS", + "STORAGE_LOCATION_POLICY_UNSPECIFIED" + ] }, - "get": { - "id": "compute.regions.get", - "path": "projects/{project}/regions/{region}", - "flatPath": "projects/{project}/regions/{region}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "Region" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request." + "locations": { + "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are Cloud Storage bucket locations. Only one location can be specified.", + "type": "object", + "additionalProperties": { + "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" + } } } }, - "resourcePolicies": { - "methods": { - "list": { - "id": "compute.resourcePolicies.list", - "path": "projects/{project}/regions/{region}/resourcePolicies", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "ResourcePolicyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "A list all the resource policies that have been configured for the specified project in specified region." + "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { + "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", + "description": "A structure for specifying storage locations.", + "type": "object", + "properties": { + "name": { + "description": "Name of the location. It should be one of the Cloud Storage buckets. Only one location can be specified.", + "type": "string" + } + } + }, + "SslCertificateList": { + "id": "SslCertificateList", + "description": "Contains a list of SslCertificate resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#sslCertificateList", + "type": "string" }, - "aggregatedList": { - "id": "compute.resourcePolicies.aggregatedList", - "path": "projects/{project}/aggregated/resourcePolicies", - "flatPath": "projects/{project}/aggregated/resourcePolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ResourcePolicyAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of resource policies." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "get": { - "id": "compute.resourcePolicies.get", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resourcePolicy": { - "description": "Name of the resource policy to retrieve.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resourcePolicy" - ], - "response": { - "$ref": "ResourcePolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves all information of the specified resource policy." + "items": { + "description": "A list of SslCertificate resources.", + "type": "array", + "items": { + "$ref": "SslCertificate" + } }, - "insert": { - "id": "compute.resourcePolicies.insert", - "path": "projects/{project}/regions/{region}/resourcePolicies", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "ResourcePolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new resource policy." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "delete": { - "id": "compute.resourcePolicies.delete", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resourcePolicy": { - "description": "Name of the resource policy to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resourcePolicy" + } + } + } + }, + "SslCertificate": { + "id": "SslCertificate", + "description": "Represents an SSL certificate resource. Google Compute Engine has two SSL certificate resources: * [Global](/compute/docs/reference/rest/v1/sslCertificates) * [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The global SSL certificates (sslCertificates) are used by: - Global external Application Load Balancers - Classic Application Load Balancers - Proxy Network Load Balancers (with target SSL proxies) The regional SSL certificates (regionSslCertificates) are used by: - Regional external Application Load Balancers - Regional internal Application Load Balancers Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#sslCertificate for SSL certificates.", + "default": "compute#sslCertificate", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output only] Server-defined URL for the resource.", + "type": "string" + }, + "certificate": { + "description": "A value read into memory from a certificate file. The certificate file must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert.", + "type": "string" + }, + "privateKey": { + "description": "A value read into memory from a write-only private key file. The private key file must be in PEM format. For security, only insert requests include this field.", + "type": "string" + }, + "managed": { + "description": "Configuration and status of a managed SSL certificate.", + "$ref": "SslCertificateManagedSslCertificate" + }, + "selfManaged": { + "description": "Configuration and status of a self-managed SSL certificate.", + "$ref": "SslCertificateSelfManagedSslCertificate" + }, + "type": { + "description": "(Optional) Specifies the type of SSL certificate, either \"SELF_MANAGED\" or \"MANAGED\". If not specified, the certificate is self-managed and the fields certificate and private_key are used.", + "type": "string", + "enumDescriptions": [ + "Google-managed SSLCertificate.", + "Certificate uploaded by user.", + "" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "MANAGED", + "SELF_MANAGED", + "TYPE_UNSPECIFIED" + ] + }, + "subjectAlternativeNames": { + "description": "[Output Only] Domains associated with the certificate via Subject Alternative Name.", + "type": "array", + "items": { + "type": "string" + } + }, + "expireTime": { + "description": "[Output Only] Expire time of the certificate. RFC3339", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the regional SSL Certificate resides. This field is not applicable to global SSL Certificate.", + "type": "string" + } + } + }, + "SslCertificateManagedSslCertificate": { + "id": "SslCertificateManagedSslCertificate", + "description": "Configuration and status of a managed SSL certificate.", + "type": "object", + "properties": { + "domains": { + "description": "The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates).", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "description": "[Output only] Status of the managed certificate resource.", + "type": "string", + "enumDescriptions": [ + "The certificate management is working, and a certificate has been provisioned.", + "", + "The certificate management is working. GCP will attempt to provision the first certificate.", + "Certificate provisioning failed due to an issue with the DNS or load balancing configuration. For details of which domain failed, consult domain_status field.", + "Certificate provisioning failed due to an issue with the DNS or load balancing configuration. It won't be retried. To try again delete and create a new managed SslCertificate resource. For details of which domain failed, consult domain_status field.", + "Renewal of the certificate has failed due to an issue with the DNS or load balancing configuration. The existing cert is still serving; however, it will expire shortly. To provision a renewed certificate, delete and create a new managed SslCertificate resource. For details on which domain failed, consult domain_status field." ], - "description": "Deletes the specified resource policy." + "enum": [ + "ACTIVE", + "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED", + "PROVISIONING", + "PROVISIONING_FAILED", + "PROVISIONING_FAILED_PERMANENTLY", + "RENEWAL_FAILED" + ] }, - "patch": { - "id": "compute.resourcePolicies.patch", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "domainStatus": { + "description": "[Output only] Detailed statuses of the domains specified for managed certificate resource.", + "type": "object", + "additionalProperties": { + "type": "string", + "enumDescriptions": [ + "A managed certificate can be provisioned, no issues for this domain.", + "", + "Failed to check CAA records for the domain.", + "Certificate issuance forbidden by an explicit CAA record for the domain.", + "There seems to be problem with the user's DNS or load balancer configuration for this domain.", + "Reached rate-limit for certificates per top-level private domain.", + "Certificate provisioning for this domain is under way. GCP will attempt to provision the first certificate." + ], + "enum": [ + "ACTIVE", + "DOMAIN_STATUS_UNSPECIFIED", + "FAILED_CAA_CHECKING", + "FAILED_CAA_FORBIDDEN", + "FAILED_NOT_VISIBLE", + "FAILED_RATE_LIMITED", + "PROVISIONING" + ] + } + } + } + }, + "SslCertificateSelfManagedSslCertificate": { + "id": "SslCertificateSelfManagedSslCertificate", + "description": "Configuration and status of a self-managed SSL certificate.", + "type": "object", + "properties": { + "certificate": { + "description": "A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert.", + "type": "string" + }, + "privateKey": { + "description": "A write-only private key in PEM format. Only insert requests will include this field.", + "type": "string" + } + } + }, + "SslCertificateAggregatedList": { + "id": "SslCertificateAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#sslCertificateAggregatedList for lists of SSL Certificates.", + "default": "compute#sslCertificateAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of SslCertificatesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of SslCertificates.", + "$ref": "SslCertificatesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "resourcePolicy": { - "description": "Id of the resource policy to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resourcePolicy" - ], - "request": { - "$ref": "ResourcePolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Modify the specified resource policy." + } }, - "getIamPolicy": { - "id": "compute.resourcePolicies.getIamPolicy", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SslCertificatesScopedList": { + "id": "SslCertificatesScopedList", + "type": "object", + "properties": { + "sslCertificates": { + "description": "List of SslCertificates contained in this scope.", + "type": "array", + "items": { + "$ref": "SslCertificate" + } + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + } + } + } + }, + "SslPoliciesList": { + "id": "SslPoliciesList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#sslPoliciesList for lists of sslPolicies.", + "default": "compute#sslPoliciesList", + "type": "string" }, - "setIamPolicy": { - "id": "compute.resourcePolicies.setIamPolicy", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.resourcePolicies.testIamPermissions", - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of SslPolicy resources.", + "type": "array", + "items": { + "$ref": "SslPolicy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" + } + } + } + }, + "SslPolicy": { + "id": "SslPolicy", + "description": "Represents an SSL Policy resource. Use SSL policies to control SSL features, such as versions and cipher suites, that are offered by Application Load Balancers and proxy Network Load Balancers. For more information, read SSL policies overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output only] Type of the resource. Always compute#sslPolicyfor SSL policies.", + "default": "compute#sslPolicy", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "name": { + "description": "Name of the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "profile": { + "description": "Profile specifies the set of SSL features that can be used by the load balancer when negotiating SSL with clients. This can be one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to enable must be specified in the customFeatures field.", + "type": "string", + "enumDescriptions": [ + "Compatible profile. Allows the broadset set of clients, even those which support only out-of-date SSL features to negotiate with the load balancer.", + "Custom profile. Allow only the set of allowed SSL features specified in the customFeatures field.", + "Modern profile. Supports a wide set of SSL features, allowing modern clients to negotiate SSL with the load balancer.", + "Restricted profile. Supports a reduced set of SSL features, intended to meet stricter compliance requirements." ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "COMPATIBLE", + "CUSTOM", + "MODERN", + "RESTRICTED" + ] + }, + "minTlsVersion": { + "description": "The minimum version of SSL protocol that can be used by the clients to establish a connection with the load balancer. This can be one of TLS_1_0, TLS_1_1, TLS_1_2.", + "type": "string", + "enumDescriptions": [ + "TLS 1.0", + "TLS 1.1", + "TLS 1.2" ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "TLS_1_0", + "TLS_1_1", + "TLS_1_2" + ] + }, + "enabledFeatures": { + "description": "[Output Only] The list of features enabled in the SSL policy.", + "type": "array", + "items": { + "type": "string" + } + }, + "customFeatures": { + "description": "A list of features enabled when the selected profile is CUSTOM. The method returns the set of features that can be specified in this list. This field must be empty if the profile is not CUSTOM.", + "type": "array", + "items": { + "type": "string" + } + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a SslPolicy. An up-to-date fingerprint must be provided in order to update the SslPolicy, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an SslPolicy.", + "type": "string", + "format": "byte" + }, + "warnings": { + "description": "[Output Only] If potential misconfigurations are detected for this SSL policy, this field will be populated with warning messages.", + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } + } + } + }, + "region": { + "description": "[Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies.", + "type": "string" } } }, - "routes": { - "methods": { - "list": { - "id": "compute.routes.list", - "path": "projects/{project}/global/routes", - "flatPath": "projects/{project}/global/routes", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "RouteList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of Route resources available to the specified project." - }, - "get": { - "id": "compute.routes.get", - "path": "projects/{project}/global/routes/{route}", - "flatPath": "projects/{project}/global/routes/{route}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "route": { - "description": "Name of the Route resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "route" - ], - "response": { - "$ref": "Route" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified Route resource." - }, - "insert": { - "id": "compute.routes.insert", - "path": "projects/{project}/global/routes", - "flatPath": "projects/{project}/global/routes", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "Route" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a Route resource in the specified project using the data included in the request." - }, - "delete": { - "id": "compute.routes.delete", - "path": "projects/{project}/global/routes/{route}", - "flatPath": "projects/{project}/global/routes/{route}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "route": { - "description": "Name of the Route resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "route" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified Route resource." + "SslPoliciesListAvailableFeaturesResponse": { + "id": "SslPoliciesListAvailableFeaturesResponse", + "type": "object", + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } } } }, - "routers": { - "methods": { - "get": { - "id": "compute.routers.get", - "path": "projects/{project}/regions/{region}/routers/{router}", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "router": { - "description": "Name of the Router resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "response": { - "$ref": "Router" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified Router resource." + "SslPoliciesAggregatedList": { + "id": "SslPoliciesAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL Policies.", + "default": "compute#sslPoliciesAggregatedList", + "type": "string" }, - "insert": { - "id": "compute.routers.insert", - "path": "projects/{project}/regions/{region}/routers", - "flatPath": "projects/{project}/regions/{region}/routers", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Router" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a Router resource in the specified project and region using the data included in the request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "update": { - "id": "compute.routers.update", - "path": "projects/{project}/regions/{region}/routers/{router}", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "PUT", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "router": { - "description": "Name of the Router resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "request": { - "$ref": "Router" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified Router resource with the data included in the request. This method conforms to PUT semantics, which requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload." + "items": { + "description": "A list of SslPoliciesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of SSL policies.", + "$ref": "SslPoliciesScopedList" + } }, - "patch": { - "id": "compute.routers.patch", - "path": "projects/{project}/regions/{region}/routers/{router}", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "router": { - "description": "Name of the Router resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "request": { - "$ref": "Router" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "delete": { - "id": "compute.routers.delete", - "path": "projects/{project}/regions/{region}/routers/{router}", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "router": { - "description": "Name of the Router resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified Router resource." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "list": { - "id": "compute.routers.list", - "path": "projects/{project}/regions/{region}/routers", - "flatPath": "projects/{project}/regions/{region}/routers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "RouterList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of Router resources available to the specified project." + } }, - "aggregatedList": { - "id": "compute.routers.aggregatedList", - "path": "projects/{project}/aggregated/routers", - "flatPath": "projects/{project}/aggregated/routers", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "RouterAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of routers." + "etag": { + "type": "string" }, - "getRouterStatus": { - "id": "compute.routers.getRouterStatus", - "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "router": { - "description": "Name of the Router resource to query.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "response": { - "$ref": "RouterStatusResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves runtime information of the specified router." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SslPoliciesScopedList": { + "id": "SslPoliciesScopedList", + "type": "object", + "properties": { + "sslPolicies": { + "description": "A list of SslPolicies contained in this scope.", + "type": "array", + "items": { + "$ref": "SslPolicy" + } }, - "getNatMappingInfo": { - "id": "compute.routers.getNatMappingInfo", - "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "natName": { - "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of SSL policies when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "router": { - "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "response": { - "$ref": "VmEndpointNatMappingsList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves runtime Nat mapping information of VM endpoints." + } + } + } + }, + "StoragePoolTypeList": { + "id": "StoragePoolTypeList", + "description": "Contains a list of storage pool types.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeList for storage pool types.", + "default": "compute#storagePoolTypeList", + "type": "string" }, - "getNatIpInfo": { - "id": "compute.routers.getNatIpInfo", - "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", - "httpMethod": "GET", - "parameters": { - "natName": { - "description": "Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolType resources.", + "type": "array", + "items": { + "$ref": "StoragePoolType" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "router": { - "description": "Name of the Router resource to query for Nat IP information. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "response": { - "$ref": "NatIpInfoResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves runtime NAT IP information." + } + } + } + }, + "StoragePoolType": { + "id": "StoragePoolType", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#storagePoolType for storage pool types.", + "default": "compute#storagePoolType", + "type": "string" }, - "preview": { - "id": "compute.routers.preview", - "path": "projects/{project}/regions/{region}/routers/{router}/preview", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "router": { - "description": "Name of the Router resource to query.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "router" - ], - "request": { - "$ref": "Router" - }, - "response": { - "$ref": "RoutersPreviewResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this storage pool type.", + "$ref": "DeprecationStatus" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "minSizeGb": { + "description": "[Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb instead.", + "type": "string", + "format": "int64" + }, + "minPoolProvisionedCapacityGb": { + "description": "[Output Only] Minimum storage pool size in GB.", + "type": "string", + "format": "int64" + }, + "maxPoolProvisionedCapacityGb": { + "description": "[Output Only] Maximum storage pool size in GB.", + "type": "string", + "format": "int64" + }, + "minPoolProvisionedIops": { + "description": "[Output Only] Minimum provisioned IOPS.", + "type": "string", + "format": "int64" + }, + "maxPoolProvisionedIops": { + "description": "[Output Only] Maximum provisioned IOPS.", + "type": "string", + "format": "int64" + }, + "minPoolProvisionedThroughput": { + "description": "[Output Only] Minimum provisioned throughput.", + "type": "string", + "format": "int64" + }, + "maxPoolProvisionedThroughput": { + "description": "[Output Only] Maximum provisioned throughput.", + "type": "string", + "format": "int64" + }, + "supportedDiskTypes": { + "description": "[Output Only] The list of disk types supported in this storage pool type.", + "type": "array", + "items": { + "type": "string" + } } } }, - "serviceAttachments": { - "methods": { - "aggregatedList": { - "id": "compute.serviceAttachments.aggregatedList", - "path": "projects/{project}/aggregated/serviceAttachments", - "flatPath": "projects/{project}/aggregated/serviceAttachments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "StoragePoolTypeAggregatedList": { + "id": "StoragePoolTypeAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeAggregatedList .", + "default": "compute#storagePoolTypeAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolTypesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of storage pool types.", + "$ref": "StoragePoolTypesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ServiceAttachmentAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project." + } + } + } + }, + "StoragePoolTypesScopedList": { + "id": "StoragePoolTypesScopedList", + "type": "object", + "properties": { + "storagePoolTypes": { + "description": "[Output Only] A list of storage pool types contained in this scope.", + "type": "array", + "items": { + "$ref": "StoragePoolType" + } }, - "list": { - "id": "compute.serviceAttachments.list", - "path": "projects/{project}/regions/{region}/serviceAttachments", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool types when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "ServiceAttachmentList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the ServiceAttachments for a project in the given scope." + } + } + } + }, + "StoragePoolList": { + "id": "StoragePoolList", + "description": "A list of StoragePool resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#storagePoolList for lists of storagePools.", + "default": "compute#storagePoolList", + "type": "string" }, - "get": { - "id": "compute.serviceAttachments.get", - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "serviceAttachment": { - "description": "Name of the ServiceAttachment resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "serviceAttachment" - ], - "response": { - "$ref": "ServiceAttachment" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified ServiceAttachment resource in the given scope." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "insert": { - "id": "compute.serviceAttachments.insert", - "path": "projects/{project}/regions/{region}/serviceAttachments", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "ServiceAttachment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request." + "items": { + "description": "A list of StoragePool resources.", + "type": "array", + "items": { + "$ref": "StoragePool" + } }, - "delete": { - "id": "compute.serviceAttachments.delete", - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region of this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "serviceAttachment": { - "description": "Name of the ServiceAttachment resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + }, + "etag": { + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "StoragePool": { + "id": "StoragePool", + "description": "Represents a zonal storage pool resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#storagePool for storage pools.", + "default": "compute#storagePool", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.storagePools.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "serviceAttachment" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "poolProvisionedCapacityGb": { + "description": "Size, in GiB, of the storage pool.", + "type": "string", + "format": "int64" + }, + "poolProvisionedIops": { + "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced.", + "type": "string", + "format": "int64" + }, + "poolProvisionedThroughput": { + "description": "Provisioned throughput of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced or hyperdisk-throughput.", + "type": "string", + "format": "int64" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "state": { + "description": "[Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. ", + "type": "string", + "enumDescriptions": [ + "StoragePool is provisioning", + "StoragePool is deleting.", + "StoragePool creation failed.", + "StoragePool is ready for use." ], - "description": "Deletes the specified ServiceAttachment in the given scope" + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ] }, - "patch": { - "id": "compute.serviceAttachments.patch", - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region scoping this request and should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "serviceAttachment": { - "description": "The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "serviceAttachment" + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "labels": { + "description": "Labels to apply to this storage pool. These can be later modified by the setLabels method.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this storage pool, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a storage pool.", + "type": "string", + "format": "byte" + }, + "resourceStatus": { + "description": "[Output Only] Status information for the storage pool resource.", + "$ref": "StoragePoolResourceStatus" + }, + "storagePoolType": { + "description": "Type of the storage pool.", + "type": "string" + }, + "status": { + "description": "[Output Only] Status information for the storage pool resource.", + "$ref": "StoragePoolResourceStatus" + }, + "capacityProvisioningType": { + "description": "Provisioning type of the byte capacity of the pool.", + "type": "string", + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" ], - "request": { - "$ref": "ServiceAttachment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ] + }, + "performanceProvisioningType": { + "description": "Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS.", + "type": "string", + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" ], - "description": "Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ] + } + } + }, + "StoragePoolResourceStatus": { + "id": "StoragePoolResourceStatus", + "description": "[Output Only] Contains output only fields.", + "type": "object", + "properties": { + "lastResizeTimestamp": { + "description": "[Output Only] Timestamp of the last successful resize in RFC3339 text format.", + "type": "string" + }, + "diskCount": { + "description": "[Output Only] Number of disks used.", + "type": "string", + "format": "int64" + }, + "poolUsedCapacityBytes": { + "description": "[Output Only] Space used by data stored in disks within the storage pool (in bytes). This will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.", + "type": "string", + "format": "int64" + }, + "poolUserWrittenBytes": { + "description": "[Output Only] Amount of data written into the pool, before it is compacted.", + "type": "string", + "format": "int64" + }, + "totalProvisionedDiskCapacityGb": { + "description": "[Output Only] Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity.", + "type": "string", + "format": "int64" + }, + "maxTotalProvisionedDiskCapacityGb": { + "description": "[Output Only] Maximum allowed aggregate disk size in gigabytes.", + "type": "string", + "format": "int64" + }, + "poolUsedIops": { + "description": "Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity.", + "type": "string", + "format": "int64" + }, + "totalProvisionedDiskIops": { + "description": "[Output Only] Sum of all the disks' provisioned IOPS.", + "type": "string", + "format": "int64" + }, + "poolUsedThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s.", + "type": "string", + "format": "int64" + }, + "totalProvisionedDiskThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some amount that is allowed per disk that is not counted towards pool's throughput capacity.", + "type": "string", + "format": "int64" + } + } + }, + "StoragePoolAggregatedList": { + "id": "StoragePoolAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#storagePoolAggregatedList for aggregated lists of storage pools.", + "default": "compute#storagePoolAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of storage pool.", + "$ref": "StoragePoolsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "getIamPolicy": { - "id": "compute.serviceAttachments.getIamPolicy", - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "setIamPolicy": { - "id": "compute.serviceAttachments.setIamPolicy", - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + } }, - "testIamPermissions": { - "id": "compute.serviceAttachments.testIamPermissions", - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "etag": { + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "StoragePoolsScopedList": { + "id": "StoragePoolsScopedList", + "type": "object", + "properties": { + "storagePools": { + "description": "[Output Only] A list of storage pool contained in this scope.", + "type": "array", + "items": { + "$ref": "StoragePool" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + } } } }, - "snapshotSettings": { - "methods": { - "get": { - "id": "compute.snapshotSettings.get", - "path": "projects/{project}/global/snapshotSettings", - "flatPath": "projects/{project}/global/snapshotSettings", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SnapshotSettings" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Get snapshot settings." + "StoragePoolListDisks": { + "id": "StoragePoolListDisks", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#storagePoolListDisks for lists of disks in a storagePool.", + "default": "compute#storagePoolListDisks", + "type": "string" }, - "patch": { - "id": "compute.snapshotSettings.patch", - "path": "projects/{project}/global/snapshotSettings", - "flatPath": "projects/{project}/global/snapshotSettings", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolDisk resources.", + "type": "array", + "items": { + "$ref": "StoragePoolDisk" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "location": "query", - "type": "string", - "format": "google-fieldmask" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "SnapshotSettings" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patch snapshot settings." + } + }, + "etag": { + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "type": "array", + "items": { + "type": "string" + } } } }, - "sslCertificates": { - "methods": { - "list": { - "id": "compute.sslCertificates.list", - "path": "projects/{project}/global/sslCertificates", - "flatPath": "projects/{project}/global/sslCertificates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SslCertificateList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of SslCertificate resources available to the specified project." + "StoragePoolDisk": { + "id": "StoragePoolDisk", + "type": "object", + "properties": { + "disk": { + "description": "[Output Only] The URL of the disk.", + "type": "string" }, - "get": { - "id": "compute.sslCertificates.get", - "path": "projects/{project}/global/sslCertificates/{sslCertificate}", - "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "sslCertificate" - ], - "response": { - "$ref": "SslCertificate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified SslCertificate resource." + "name": { + "description": "[Output Only] The name of the disk.", + "type": "string" }, - "insert": { - "id": "compute.sslCertificates.insert", - "path": "projects/{project}/global/sslCertificates", - "flatPath": "projects/{project}/global/sslCertificates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "SslCertificate" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "status": { + "description": "[Output Only] The disk status.", + "type": "string", + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." ], - "description": "Creates a SslCertificate resource in the specified project using the data included in the request." + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" + ] }, - "delete": { - "id": "compute.sslCertificates.delete", - "path": "projects/{project}/global/sslCertificates/{sslCertificate}", - "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "sslCertificate" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified SslCertificate resource." + "type": { + "description": "[Output Only] The disk type.", + "type": "string" }, - "aggregatedList": { - "id": "compute.sslCertificates.aggregatedList", - "path": "projects/{project}/aggregated/sslCertificates", - "flatPath": "projects/{project}/aggregated/sslCertificates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SslCertificateAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project." + "sizeGb": { + "description": "[Output Only] The disk size, in GB.", + "type": "string", + "format": "int64" + }, + "provisionedIops": { + "description": "[Output Only] The number of IOPS provisioned for the disk.", + "type": "string", + "format": "int64" + }, + "provisionedThroughput": { + "description": "[Output Only] The throughput provisioned for the disk.", + "type": "string", + "format": "int64" + }, + "usedBytes": { + "description": "[Output Only] Amount of disk space used.", + "type": "string", + "format": "int64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "attachedInstances": { + "description": "[Output Only] Instances this disk is attached to.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourcePolicies": { + "description": "[Output Only] Resource policies applied to disk for automatic snapshot creations.", + "type": "array", + "items": { + "type": "string" + } } } }, - "regionSslCertificates": { - "methods": { - "list": { - "id": "compute.regionSslCertificates.list", - "path": "projects/{project}/regions/{region}/sslCertificates", - "flatPath": "projects/{project}/regions/{region}/sslCertificates", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "SslCertificateList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region." + "SubnetworkList": { + "id": "SubnetworkList", + "description": "Contains a list of Subnetwork resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#subnetworkList for lists of subnetworks.", + "default": "compute#subnetworkList", + "type": "string" }, - "get": { - "id": "compute.regionSslCertificates.get", - "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "sslCertificate" - ], - "response": { - "$ref": "SslCertificate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "insert": { - "id": "compute.regionSslCertificates.insert", - "path": "projects/{project}/regions/{region}/sslCertificates", - "flatPath": "projects/{project}/regions/{region}/sslCertificates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "SslCertificate" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request" + "items": { + "description": "A list of Subnetwork resources.", + "type": "array", + "items": { + "$ref": "Subnetwork" + } }, - "delete": { - "id": "compute.regionSslCertificates.delete", - "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "sslCertificate" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified SslCertificate resource in the region." + } } } }, - "sslPolicies": { - "methods": { - "list": { - "id": "compute.sslPolicies.list", - "path": "projects/{project}/global/sslPolicies", - "flatPath": "projects/{project}/global/sslPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SslPoliciesList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all the SSL policies that have been configured for the specified project." + "Subnetwork": { + "id": "Subnetwork", + "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.", + "default": "compute#subnetwork", + "type": "string" }, - "get": { - "id": "compute.sslPolicies.get", - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "sslPolicy" - ], - "response": { - "$ref": "SslPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all of the ordered rules present in a single specified policy." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.sslPolicies.insert", - "path": "projects/{project}/global/sslPolicies", - "flatPath": "projects/{project}/global/sslPolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "SslPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Returns the specified SSL policy resource." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "delete": { - "id": "compute.sslPolicies.delete", - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "sslPolicy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources." + "name": { + "description": "The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "patch": { - "id": "compute.sslPolicies.patch", - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "sslPolicy" - ], - "request": { - "$ref": "SslPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.", + "type": "string" + }, + "network": { + "description": "The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.", + "type": "string" + }, + "ipCidrRange": { + "description": "The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.", + "type": "string" + }, + "reservedInternalRange": { + "description": "The URL of the reserved internal range.", + "type": "string" + }, + "gatewayAddress": { + "description": "[Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.", + "type": "string" + }, + "region": { + "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "privateIpGoogleAccess": { + "description": "Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.", + "type": "boolean" + }, + "secondaryIpRanges": { + "description": "An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.", + "type": "array", + "items": { + "$ref": "SubnetworkSecondaryRange" + } + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.", + "type": "string", + "format": "byte" + }, + "enableFlowLogs": { + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", + "type": "boolean" + }, + "privateIpv6GoogleAccess": { + "description": "This field is for internal use. This field can be both set at resource creation time and updated using patch.", + "type": "string", + "enumDescriptions": [ + "Disable private IPv6 access to/from Google services.", + "Bidirectional private IPv6 access to/from Google services.", + "Outbound private IPv6 access from VMs in this subnet to Google services." ], - "description": "Patches the specified SSL policy with the data included in the request." + "enum": [ + "DISABLE_GOOGLE_ACCESS", + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" + ] }, - "listAvailableFeatures": { - "id": "compute.sslPolicies.listAvailableFeatures", - "path": "projects/{project}/global/sslPolicies/listAvailableFeatures", - "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" + "ipv6CidrRange": { + "description": "[Output Only] This field is for internal use.", + "type": "string" + }, + "externalIpv6Prefix": { + "description": "The external IPv6 address range that is owned by this subnetwork.", + "type": "string" + }, + "internalIpv6Prefix": { + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, + "purpose": { + "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", + "type": "string", + "enumDescriptions": [ + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", + "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Envoy-based Load Balancing." ], - "response": { - "$ref": "SslPoliciesListAvailableFeaturesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "GLOBAL_MANAGED_PROXY", + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_NAT", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ] + }, + "role": { + "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "type": "string", + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." ], - "description": "Lists all features that can be specified in the SSL policy when using custom profile." + "enum": [ + "ACTIVE", + "BACKUP" + ] }, - "aggregatedList": { - "id": "compute.sslPolicies.aggregatedList", - "path": "projects/{project}/aggregated/sslPolicies", - "flatPath": "projects/{project}/aggregated/sslPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" + "state": { + "description": "[Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY", + "type": "string", + "enumDescriptions": [ + "Subnetwork is being drained.", + "Subnetwork is ready for use." ], - "response": { - "$ref": "SslPoliciesAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "DRAINING", + "READY" + ] + }, + "logConfig": { + "description": "This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.", + "$ref": "SubnetworkLogConfig" + }, + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", + "type": "string", + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses." + ], + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ] + }, + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", + "type": "string", + "enumDescriptions": [ + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." ], - "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project." + "enum": [ + "EXTERNAL", + "INTERNAL" + ] } } }, - "regionSslPolicies": { - "methods": { - "list": { - "id": "compute.regionSslPolicies.list", - "path": "projects/{project}/regions/{region}/sslPolicies", - "flatPath": "projects/{project}/regions/{region}/sslPolicies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "SslPoliciesList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all the SSL policies that have been configured for the specified project and region." + "SubnetworkSecondaryRange": { + "id": "SubnetworkSecondaryRange", + "description": "Represents a secondary IP range of a subnetwork.", + "type": "object", + "properties": { + "rangeName": { + "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", + "type": "string" }, - "get": { - "id": "compute.regionSslPolicies.get", - "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "sslPolicy" - ], - "response": { - "$ref": "SslPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all of the ordered rules present in a single specified policy." + "ipCidrRange": { + "description": "The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list.", + "type": "string" }, - "insert": { - "id": "compute.regionSslPolicies.insert", - "path": "projects/{project}/regions/{region}/sslPolicies", - "flatPath": "projects/{project}/regions/{region}/sslPolicies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "SslPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a new policy in the specified project and region using the data included in the request." + "reservedInternalRange": { + "description": "The URL of the reserved internal range.", + "type": "string" + } + } + }, + "SubnetworkLogConfig": { + "id": "SubnetworkLogConfig", + "description": "The available logging options for this subnetwork.", + "type": "object", + "properties": { + "enable": { + "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", + "type": "boolean" }, - "delete": { - "id": "compute.regionSslPolicies.delete", - "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "sslPolicy" + "aggregationInterval": { + "description": "Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "INTERVAL_10_MIN", + "INTERVAL_15_MIN", + "INTERVAL_1_MIN", + "INTERVAL_30_SEC", + "INTERVAL_5_MIN", + "INTERVAL_5_SEC" + ] + }, + "flowSampling": { + "description": "Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported.", + "type": "number", + "format": "float" + }, + "metadata": { + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.", + "type": "string", + "enumDescriptions": [ + "", + "", + "" ], - "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources." + "enum": [ + "CUSTOM_METADATA", + "EXCLUDE_ALL_METADATA", + "INCLUDE_ALL_METADATA" + ] }, - "patch": { - "id": "compute.regionSslPolicies.patch", - "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "metadataFields": { + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" was set to CUSTOM_METADATA.", + "type": "array", + "items": { + "type": "string" + } + }, + "filterExpr": { + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. The filter expression is used to define which VPC flow logs should be exported to Cloud Logging.", + "type": "string" + } + } + }, + "SubnetworkAggregatedList": { + "id": "SubnetworkAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#subnetworkAggregatedList for aggregated lists of subnetworks.", + "default": "compute#subnetworkAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of SubnetworksScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of Subnetworks.", + "$ref": "SubnetworksScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "sslPolicy" - ], - "request": { - "$ref": "SslPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified SSL policy with the data included in the request." + } }, - "listAvailableFeatures": { - "id": "compute.regionSslPolicies.listAvailableFeatures", - "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "SslPoliciesListAvailableFeaturesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists all features that can be specified in the SSL policy when using custom profile." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "subnetworks": { - "methods": { - "list": { - "id": "compute.subnetworks.list", - "path": "projects/{project}/regions/{region}/subnetworks", - "flatPath": "projects/{project}/regions/{region}/subnetworks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "SubnetworkList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of subnetworks available to the specified project." + "SubnetworksScopedList": { + "id": "SubnetworksScopedList", + "type": "object", + "properties": { + "subnetworks": { + "description": "A list of subnetworks contained in this scope.", + "type": "array", + "items": { + "$ref": "Subnetwork" + } }, - "aggregatedList": { - "id": "compute.subnetworks.aggregatedList", - "path": "projects/{project}/aggregated/subnetworks", - "flatPath": "projects/{project}/aggregated/subnetworks", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "warning": { + "description": "An informational warning that appears when the list of addresses is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "SubnetworkAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of subnetworks." + } + } + } + }, + "UsableSubnetworksAggregatedList": { + "id": "UsableSubnetworksAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#usableSubnetworksAggregatedList for aggregated lists of usable subnetworks.", + "default": "compute#usableSubnetworksAggregatedList", + "type": "string" }, - "listUsable": { - "id": "compute.subnetworks.listUsable", - "path": "projects/{project}/aggregated/subnetworks/listUsable", - "flatPath": "projects/{project}/aggregated/subnetworks/listUsable", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "items": { + "description": "[Output] A list of usable subnetwork URLs.", + "type": "array", + "items": { + "$ref": "UsableSubnetwork" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. In special cases listUsable may return 0 subnetworks and nextPageToken which still should be used to get the next page of results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "UsableSubnetworksAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of all usable subnetworks in the project." + } + } + } + }, + "UsableSubnetwork": { + "id": "UsableSubnetwork", + "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", + "type": "object", + "properties": { + "subnetwork": { + "description": "Subnetwork URL.", + "type": "string" }, - "get": { - "id": "compute.subnetworks.get", - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "subnetwork": { - "description": "Name of the Subnetwork resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "subnetwork" - ], - "response": { - "$ref": "Subnetwork" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified subnetwork." + "network": { + "description": "Network URL.", + "type": "string" }, - "insert": { - "id": "compute.subnetworks.insert", - "path": "projects/{project}/regions/{region}/subnetworks", - "flatPath": "projects/{project}/regions/{region}/subnetworks", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "Subnetwork" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a subnetwork in the specified project using the data included in the request." + "ipCidrRange": { + "description": "The range of internal addresses that are owned by this subnetwork.", + "type": "string" }, - "delete": { - "id": "compute.subnetworks.delete", - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "subnetwork": { - "description": "Name of the Subnetwork resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "subnetwork" + "secondaryIpRanges": { + "description": "Secondary IP ranges.", + "type": "array", + "items": { + "$ref": "UsableSubnetworkSecondaryRange" + } + }, + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", + "type": "string", + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses." ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ] + }, + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", + "type": "string", + "enumDescriptions": [ + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." ], - "description": "Deletes the specified subnetwork." + "enum": [ + "EXTERNAL", + "INTERNAL" + ] }, - "expandIpCidrRange": { - "id": "compute.subnetworks.expandIpCidrRange", - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "subnetwork": { - "description": "Name of the Subnetwork resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "subnetwork" + "purpose": { + "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", + "type": "string", + "enumDescriptions": [ + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", + "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Envoy-based Load Balancing." ], - "request": { - "$ref": "SubnetworksExpandIpCidrRangeRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "GLOBAL_MANAGED_PROXY", + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_NAT", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ] + }, + "role": { + "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "type": "string", + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." ], - "description": "Expands the IP CIDR range of the subnetwork to a specified value." + "enum": [ + "ACTIVE", + "BACKUP" + ] }, - "patch": { - "id": "compute.subnetworks.patch", - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "PATCH", - "parameters": { - "drainTimeoutSeconds": { - "description": "The drain timeout specifies the upper bound in seconds on the amount of time allowed to drain connections from the current ACTIVE subnetwork to the current BACKUP subnetwork. The drain timeout is only applicable when the following conditions are true: - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role = BACKUP - the patch request is setting the role to ACTIVE. Note that after this patch operation the roles of the ACTIVE and BACKUP subnetworks will be swapped.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "externalIpv6Prefix": { + "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, + "internalIpv6Prefix": { + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", + "type": "string" + } + } + }, + "UsableSubnetworkSecondaryRange": { + "id": "UsableSubnetworkSecondaryRange", + "description": "Secondary IP range of a usable subnetwork.", + "type": "object", + "properties": { + "rangeName": { + "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", + "type": "string" + }, + "ipCidrRange": { + "description": "The range of IP addresses belonging to this subnetwork secondary range.", + "type": "string" + } + } + }, + "SubnetworksExpandIpCidrRangeRequest": { + "id": "SubnetworksExpandIpCidrRangeRequest", + "type": "object", + "properties": { + "ipCidrRange": { + "description": "The IP (in CIDR format or netmask) of internal addresses that are legal on this Subnetwork. This range should be disjoint from other subnetworks within this network. This range can only be larger than (i.e. a superset of) the range previously defined before the update.", + "type": "string" + } + } + }, + "SubnetworksSetPrivateIpGoogleAccessRequest": { + "id": "SubnetworksSetPrivateIpGoogleAccessRequest", + "type": "object", + "properties": { + "privateIpGoogleAccess": { + "type": "boolean" + } + } + }, + "TargetGrpcProxyList": { + "id": "TargetGrpcProxyList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", + "default": "compute#targetGrpcProxyList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetGrpcProxy resources.", + "type": "array", + "items": { + "$ref": "TargetGrpcProxy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "subnetwork": { - "description": "Name of the Subnetwork resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "TargetGrpcProxy": { + "id": "TargetGrpcProxy", + "description": "Represents a Target gRPC Proxy resource. A target gRPC proxy is a component of load balancers intended for load balancing gRPC traffic. Only global forwarding rules with load balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target gRPC Proxy references a URL map that specifies how traffic is routed to gRPC backend services.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", + "default": "compute#targetGrpcProxy", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.targetGrpcProxies.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "subnetwork" - ], - "request": { - "$ref": "Subnetwork" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified subnetwork with the data included in the request. Only certain fields can be updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched." + "type": "string" }, - "getIamPolicy": { - "id": "compute.subnetworks.getIamPolicy", - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", - "httpMethod": "GET", - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "location": "query", - "type": "integer", - "format": "int32" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL with id for the resource.", + "type": "string" + }, + "urlMap": { + "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService. The protocol field in the BackendService must be set to GRPC.", + "type": "string" + }, + "validateForProxyless": { + "description": "If true, indicates that the BackendServices referenced by the urlMap may be accessed by gRPC applications without using a sidecar proxy. This will enable configuration checks on urlMap and its referenced BackendServices to not allow unsupported features. A gRPC application must use \"xds:///\" scheme in the target URI of the service it is connecting to. If false, indicates that the BackendServices referenced by the urlMap will be accessed by gRPC applications via a sidecar proxy. In this case, a gRPC application must not use \"xds:///\" scheme in the target URI of the service it is connecting to", + "type": "boolean" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetGrpcProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetGrpcProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetGrpcProxy.", + "type": "string", + "format": "byte" + } + } + }, + "TargetHttpProxyList": { + "id": "TargetHttpProxyList", + "description": "A list of TargetHttpProxy resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource. Always compute#targetHttpProxyList for lists of target HTTP proxies.", + "default": "compute#targetHttpProxyList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetHttpProxy resources.", + "type": "array", + "items": { + "$ref": "TargetHttpProxy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists." + } + } + } + }, + "TargetHttpProxy": { + "id": "TargetHttpProxy", + "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target HTTP proxy is a component of Google Cloud HTTP load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetHttpProxy for target HTTP proxies.", + "default": "compute#targetHttpProxy", + "type": "string" }, - "setIamPolicy": { - "id": "compute.subnetworks.setIamPolicy", - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "urlMap": { + "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the regional Target HTTP Proxy resides. This field is not applicable to global Target HTTP Proxies.", + "type": "string" + }, + "proxyBind": { + "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", + "type": "boolean" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.", + "type": "string", + "format": "byte" + }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "type": "integer", + "format": "int32" + } + } + }, + "UrlMapReference": { + "id": "UrlMapReference", + "type": "object", + "properties": { + "urlMap": { + "type": "string" + } + } + }, + "TargetHttpProxyAggregatedList": { + "id": "TargetHttpProxyAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies.", + "default": "compute#targetHttpProxyAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetHttpProxiesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of TargetHttpProxies.", + "$ref": "TargetHttpProxiesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetHttpProxiesScopedList": { + "id": "TargetHttpProxiesScopedList", + "type": "object", + "properties": { + "targetHttpProxies": { + "description": "A list of TargetHttpProxies contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetHttpProxy" + } + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the access control policy on the specified resource. Replaces any existing policy." + } + } + } + }, + "TargetHttpsProxyList": { + "id": "TargetHttpsProxyList", + "description": "Contains a list of TargetHttpsProxy resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource. Always compute#targetHttpsProxyList for lists of target HTTPS proxies.", + "default": "compute#targetHttpsProxyList", + "type": "string" }, - "testIamPermissions": { - "id": "compute.subnetworks.testIamPermissions", - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns permissions that a caller has on the specified resource." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "setPrivateIpGoogleAccess": { - "id": "compute.subnetworks.setPrivateIpGoogleAccess", - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "items": { + "description": "A list of TargetHttpsProxy resources.", + "type": "array", + "items": { + "$ref": "TargetHttpsProxy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "subnetwork": { - "description": "Name of the Subnetwork resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "subnetwork" - ], - "request": { - "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access." + } } } }, - "targetGrpcProxies": { - "methods": { - "list": { - "id": "compute.targetGrpcProxies.list", - "path": "projects/{project}/global/targetGrpcProxies", - "flatPath": "projects/{project}/global/targetGrpcProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetGrpcProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Lists the TargetGrpcProxies for a project in the given scope." + "TargetHttpsProxy": { + "id": "TargetHttpsProxy", + "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetHttpsProxy for target HTTPS proxies.", + "default": "compute#targetHttpsProxy", + "type": "string" }, - "get": { - "id": "compute.targetGrpcProxies.get", - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetGrpcProxy" - ], - "response": { - "$ref": "TargetGrpcProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetGrpcProxy resource in the given scope." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.targetGrpcProxies.insert", - "path": "projects/{project}/global/targetGrpcProxies", - "flatPath": "projects/{project}/global/targetGrpcProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "TargetGrpcProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "urlMap": { + "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines the mapping from URL to the BackendService. For example, the following are all valid URLs for specifying a URL map: - https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - projects/project/global/urlMaps/url-map - global/urlMaps/url-map ", + "type": "string" + }, + "sslCertificates": { + "description": "URLs to SslCertificate resources that are used to authenticate connections between users and the load balancer. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates. sslCertificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.", + "type": "array", + "items": { + "type": "string" + } + }, + "certificateMap": { + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + }, + "quicOverride": { + "description": "Specifies the QUIC override policy for this TargetHttpsProxy resource. This setting determines whether the load balancer attempts to negotiate QUIC with clients. You can specify NONE, ENABLE, or DISABLE. - When quic-override is set to NONE, Google manages whether QUIC is used. - When quic-override is set to ENABLE, the load balancer uses QUIC when possible. - When quic-override is set to DISABLE, the load balancer doesn't use QUIC. - If the quic-override flag is not specified, NONE is implied. ", + "type": "string", + "enumDescriptions": [ + "The load balancer will not attempt to negotiate QUIC with clients.", + "The load balancer will attempt to negotiate QUIC with clients.", + "No overrides to the default QUIC policy. This option is implicit if no QUIC override has been specified in the request." ], - "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request." + "enum": [ + "DISABLE", + "ENABLE", + "NONE" + ] + }, + "sslPolicy": { + "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no SSL policy configured.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the regional TargetHttpsProxy resides. This field is not applicable to global TargetHttpsProxies.", + "type": "string" + }, + "proxyBind": { + "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", + "type": "boolean" + }, + "serverTlsPolicy": { + "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, communications are not encrypted.", + "type": "string" + }, + "authorizationPolicy": { + "description": "Optional. A URL referring to a networksecurity.AuthorizationPolicy resource that describes how the proxy should authorize inbound traffic. If left blank, access will not be restricted by an authorization policy. Refer to the AuthorizationPolicy resource for additional details. authorizationPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field currently has no impact.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in order to patch the TargetHttpsProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpsProxy.", + "type": "string", + "format": "byte" + }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", + "type": "integer", + "format": "int32" + } + } + }, + "TargetHttpsProxyAggregatedList": { + "id": "TargetHttpsProxyAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies.", + "default": "compute#targetHttpsProxyAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetHttpsProxiesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of TargetHttpsProxies.", + "$ref": "TargetHttpsProxiesScopedList" + } }, - "delete": { - "id": "compute.targetGrpcProxies.delete", - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "targetGrpcProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetGrpcProxy in the given scope" + } }, - "patch": { - "id": "compute.targetGrpcProxies.patch", - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetHttpsProxiesScopedList": { + "id": "TargetHttpsProxiesScopedList", + "type": "object", + "properties": { + "targetHttpsProxies": { + "description": "A list of TargetHttpsProxies contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetHttpsProxy" + } + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "targetGrpcProxy" - ], - "request": { - "$ref": "TargetGrpcProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "TargetHttpsProxiesSetSslCertificatesRequest": { + "id": "TargetHttpsProxiesSetSslCertificatesRequest", + "type": "object", + "properties": { + "sslCertificates": { + "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetHttpsProxiesSetCertificateMapRequest": { + "id": "TargetHttpsProxiesSetCertificateMapRequest", + "type": "object", + "properties": { + "certificateMap": { + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + } + } + }, + "SslPolicyReference": { + "id": "SslPolicyReference", + "type": "object", + "properties": { + "sslPolicy": { + "description": "URL of the SSL policy resource. Set this to empty string to clear any existing SSL policy associated with the target proxy resource.", + "type": "string" + } + } + }, + "TargetHttpsProxiesSetQuicOverrideRequest": { + "id": "TargetHttpsProxiesSetQuicOverrideRequest", + "type": "object", + "properties": { + "quicOverride": { + "description": "QUIC policy for the TargetHttpsProxy resource.", + "type": "string", + "enumDescriptions": [ + "The load balancer will not attempt to negotiate QUIC with clients.", + "The load balancer will attempt to negotiate QUIC with clients.", + "No overrides to the default QUIC policy. This option is implicit if no QUIC override has been specified in the request." ], - "description": "Patches the specified TargetGrpcProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "enum": [ + "DISABLE", + "ENABLE", + "NONE" + ] } } }, - "targetHttpProxies": { - "methods": { - "list": { - "id": "compute.targetHttpProxies.list", - "path": "projects/{project}/global/targetHttpProxies", - "flatPath": "projects/{project}/global/targetHttpProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "RegionTargetHttpsProxiesSetSslCertificatesRequest": { + "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", + "type": "object", + "properties": { + "sslCertificates": { + "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetInstanceList": { + "id": "TargetInstanceList", + "description": "Contains a list of TargetInstance resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#targetInstanceList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetInstance resources.", + "type": "array", + "items": { + "$ref": "TargetInstance" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetHttpProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of TargetHttpProxy resources available to the specified project." + } + } + } + }, + "TargetInstance": { + "id": "TargetInstance", + "description": "Represents a Target Instance resource. You can use a target instance to handle traffic for one or more forwarding rules, which is ideal for forwarding protocol traffic that is managed by a single source. For example, ESP, AH, TCP, or UDP. For more information, read Target instances.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] The type of the resource. Always compute#targetInstance for target instances.", + "default": "compute#targetInstance", + "type": "string" }, - "get": { - "id": "compute.targetHttpProxies.get", - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpProxy" - ], - "response": { - "$ref": "TargetHttpProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetHttpProxy resource." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "insert": { - "id": "compute.targetHttpProxies.insert", - "path": "projects/{project}/global/targetHttpProxies", - "flatPath": "projects/{project}/global/targetHttpProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "TargetHttpProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the target instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "natPolicy": { + "description": "Must have a value of NO_NAT. Protocol forwarding delivers packets while preserving the destination IP address of the forwarding rule referencing the target instance.", + "type": "string", + "enumDescriptions": [ + "No NAT performed." ], - "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request." + "enum": [ + "NO_NAT" + ] }, - "delete": { - "id": "compute.targetHttpProxies.delete", - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "instance": { + "description": "A URL to the virtual machine instance that handles traffic for this target instance. When creating a target instance, you can provide the fully-qualified URL or a valid partial URL to the desired virtual machine. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance - zones/zone/instances/instance ", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "network": { + "description": "The URL of the network this target instance uses to forward traffic. If not specified, the traffic will be forwarded to the network that the default network interface belongs to.", + "type": "string" + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this target instance.", + "type": "string" + } + } + }, + "TargetInstanceAggregatedList": { + "id": "TargetInstanceAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#targetInstanceAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetInstance resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of target instances.", + "$ref": "TargetInstancesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "targetHttpProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetHttpProxy resource." + } }, - "patch": { - "id": "compute.targetHttpProxies.patch", - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetInstancesScopedList": { + "id": "TargetInstancesScopedList", + "type": "object", + "properties": { + "targetInstances": { + "description": "A list of target instances contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetInstance" + } + }, + "warning": { + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "targetHttpProxy" - ], - "request": { - "$ref": "TargetHttpProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified TargetHttpProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + } + } + } + }, + "TargetPoolList": { + "id": "TargetPoolList", + "description": "Contains a list of TargetPool resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetPoolList for lists of target pools.", + "default": "compute#targetPoolList", + "type": "string" }, - "setUrlMap": { - "id": "compute.targetHttpProxies.setUrlMap", - "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy to set a URL map for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpProxy" - ], - "request": { - "$ref": "UrlMapReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the URL map for TargetHttpProxy." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "aggregatedList": { - "id": "compute.targetHttpProxies.aggregatedList", - "path": "projects/{project}/aggregated/targetHttpProxies", - "flatPath": "projects/{project}/aggregated/targetHttpProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "items": { + "description": "A list of TargetPool resources.", + "type": "array", + "items": { + "$ref": "TargetPool" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetHttpProxyAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + } + } + } + }, + "TargetPool": { + "id": "TargetPool", + "description": "Represents a Target Pool resource. Target pools are used with external passthrough Network Load Balancers. A target pool references member instances, an associated legacy HttpHealthCheck resource, and, optionally, a backup target pool. For more information, read Using target pools.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#targetPool for target pools.", + "default": "compute#targetPool", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the target pool resides.", + "type": "string" + }, + "healthChecks": { + "description": "The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. Only legacy HttpHealthChecks are supported. Only one health check may be specified.", + "type": "array", + "items": { + "type": "string" + } + }, + "instances": { + "description": "A list of resource URLs to the virtual machine instances serving this pool. They must live in zones contained in the same region as this pool.", + "type": "array", + "items": { + "type": "string" + } + }, + "sessionAffinity": { + "description": "Session affinity option, must be one of the following values: NONE: Connections from the same client IP may go to any instance in the pool. CLIENT_IP: Connections from the same client IP will go to the same instance in the pool while that instance remains healthy. CLIENT_IP_PROTO: Connections from the same client IP with the same IP protocol will go to the same instance in the pool while that instance remains healthy.", + "type": "string", + "enumDescriptions": [ + "2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.", + "1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.", + "5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", + "3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", + "Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.", + "The hash is based on a user specified header field.", + "The hash is based on a user provided cookie.", + "No session affinity. Connections from the same client IP may go to any instance in the pool." ], - "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project." + "enum": [ + "CLIENT_IP", + "CLIENT_IP_NO_DESTINATION", + "CLIENT_IP_PORT_PROTO", + "CLIENT_IP_PROTO", + "GENERATED_COOKIE", + "HEADER_FIELD", + "HTTP_COOKIE", + "NONE" + ] + }, + "failoverRatio": { + "description": "This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool (i.e., not as a backup pool to some other target pool). The value of the field must be in [0, 1]. If set, backupPool must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool. In case where failoverRatio is not set or all the instances in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy instances with the best effort, or to all instances when no instance is healthy.", + "type": "number", + "format": "float" + }, + "backupPool": { + "description": "The server-defined URL for the resource. This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its failoverRatio field is properly set to a value between [0, 1]. backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances in the primary pool is at or below failoverRatio, traffic arriving at the load-balanced IP will be directed to the backup pool. In case where failoverRatio and backupPool are not set, or all the instances in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy instances with the best effort, or to all instances when no instance is healthy.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this target pool.", + "type": "string" } } }, - "regionTargetHttpProxies": { - "methods": { - "list": { - "id": "compute.regionTargetHttpProxies.list", - "path": "projects/{project}/regions/{region}/targetHttpProxies", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "TargetPoolAggregatedList": { + "id": "TargetPoolAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetPoolAggregatedList for aggregated lists of target pools.", + "default": "compute#targetPoolAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetPool resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of target pools.", + "$ref": "TargetPoolsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "TargetHttpProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region." + } }, - "get": { - "id": "compute.regionTargetHttpProxies.get", - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpProxy" - ], - "response": { - "$ref": "TargetHttpProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetHttpProxy resource in the specified region." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetPoolsScopedList": { + "id": "TargetPoolsScopedList", + "type": "object", + "properties": { + "targetPools": { + "description": "A list of target pools contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetPool" + } }, - "insert": { - "id": "compute.regionTargetHttpProxies.insert", - "path": "projects/{project}/regions/{region}/targetHttpProxies", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "TargetHttpProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request." + } + } + } + }, + "TargetPoolInstanceHealth": { + "id": "TargetPoolInstanceHealth", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetPoolInstanceHealth when checking the health of an instance.", + "default": "compute#targetPoolInstanceHealth", + "type": "string" }, - "delete": { - "id": "compute.regionTargetHttpProxies.delete", - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetHttpProxy resource." + "healthStatus": { + "type": "array", + "items": { + "$ref": "HealthStatus" + } + } + } + }, + "TargetPoolsAddHealthCheckRequest": { + "id": "TargetPoolsAddHealthCheckRequest", + "type": "object", + "properties": { + "healthChecks": { + "description": "The HttpHealthCheck to add to the target pool.", + "type": "array", + "items": { + "$ref": "HealthCheckReference" + } + } + } + }, + "TargetPoolsRemoveHealthCheckRequest": { + "id": "TargetPoolsRemoveHealthCheckRequest", + "type": "object", + "properties": { + "healthChecks": { + "description": "Health check URL to be removed. This can be a full or valid partial URL. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project /global/httpHealthChecks/health-check - projects/project/global/httpHealthChecks/health-check - global/httpHealthChecks/health-check ", + "type": "array", + "items": { + "$ref": "HealthCheckReference" + } + } + } + }, + "TargetPoolsAddInstanceRequest": { + "id": "TargetPoolsAddInstanceRequest", + "type": "object", + "properties": { + "instances": { + "description": "A full or partial URL to an instance to add to this target pool. This can be a full or partial URL. For example, the following are valid URLs: - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone /instances/instance-name - projects/project-id/zones/zone/instances/instance-name - zones/zone/instances/instance-name ", + "type": "array", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "TargetPoolsRemoveInstanceRequest": { + "id": "TargetPoolsRemoveInstanceRequest", + "type": "object", + "properties": { + "instances": { + "description": "URLs of the instances to be removed from target pool.", + "type": "array", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "TargetSslProxyList": { + "id": "TargetSslProxyList", + "description": "Contains a list of TargetSslProxy resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#targetSslProxyList", + "type": "string" }, - "setUrlMap": { - "id": "compute.regionTargetHttpProxies.setUrlMap", - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetSslProxy resources.", + "type": "array", + "items": { + "$ref": "TargetSslProxy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy to set a URL map for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpProxy" - ], - "request": { - "$ref": "UrlMapReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the URL map for TargetHttpProxy." + } } } }, - "targetHttpsProxies": { - "methods": { - "list": { - "id": "compute.targetHttpsProxies.list", - "path": "projects/{project}/global/targetHttpsProxies", - "flatPath": "projects/{project}/global/targetHttpsProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetHttpsProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project." + "TargetSslProxy": { + "id": "TargetSslProxy", + "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target SSL proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#targetSslProxy for target SSL proxies.", + "default": "compute#targetSslProxy", + "type": "string" }, - "aggregatedList": { - "id": "compute.targetHttpsProxies.aggregatedList", - "path": "projects/{project}/aggregated/targetHttpsProxies", - "flatPath": "projects/{project}/aggregated/targetHttpsProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetHttpsProxyAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "get": { - "id": "compute.targetHttpsProxies.get", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "response": { - "$ref": "TargetHttpsProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetHttpsProxy resource." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "insert": { - "id": "compute.targetHttpsProxies.insert", - "path": "projects/{project}/global/targetHttpsProxies", - "flatPath": "projects/{project}/global/targetHttpsProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "TargetHttpsProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request." + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "patch": { - "id": "compute.targetHttpsProxies.patch", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "service": { + "description": "URL to the BackendService resource.", + "type": "string" + }, + "sslCertificates": { + "description": "URLs to SslCertificate resources that are used to authenticate connections to Backends. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates. sslCertificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.", + "type": "array", + "items": { + "type": "string" + } + }, + "certificateMap": { + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "request": { - "$ref": "TargetHttpsProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "enum": [ + "NONE", + "PROXY_V1" + ] + }, + "sslPolicy": { + "description": "URL of SslPolicy resource that will be associated with the TargetSslProxy resource. If not set, the TargetSslProxy resource will not have any SSL policy configured.", + "type": "string" + } + } + }, + "TargetSslProxiesSetBackendServiceRequest": { + "id": "TargetSslProxiesSetBackendServiceRequest", + "type": "object", + "properties": { + "service": { + "description": "The URL of the new BackendService resource for the targetSslProxy.", + "type": "string" + } + } + }, + "TargetSslProxiesSetSslCertificatesRequest": { + "id": "TargetSslProxiesSetSslCertificatesRequest", + "type": "object", + "properties": { + "sslCertificates": { + "description": "New set of URLs to SslCertificate resources to associate with this TargetSslProxy. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetSslProxiesSetCertificateMapRequest": { + "id": "TargetSslProxiesSetCertificateMapRequest", + "type": "object", + "properties": { + "certificateMap": { + "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + } + } + }, + "TargetSslProxiesSetProxyHeaderRequest": { + "id": "TargetSslProxiesSetProxyHeaderRequest", + "type": "object", + "properties": { + "proxyHeader": { + "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Patches the specified TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "enum": [ + "NONE", + "PROXY_V1" + ] + } + } + }, + "TargetTcpProxyList": { + "id": "TargetTcpProxyList", + "description": "Contains a list of TargetTcpProxy resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#targetTcpProxyList", + "type": "string" }, - "delete": { - "id": "compute.targetHttpsProxies.delete", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetTcpProxy resources.", + "type": "array", + "items": { + "$ref": "TargetTcpProxy" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetHttpsProxy resource." + } + } + } + }, + "TargetTcpProxy": { + "id": "TargetTcpProxy", + "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target TCP proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.", + "default": "compute#targetTcpProxy", + "type": "string" }, - "setUrlMap": { - "id": "compute.targetHttpsProxies.setUrlMap", - "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "UrlMapReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the URL map for TargetHttpsProxy." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "setSslCertificates": { - "id": "compute.targetHttpsProxies.setSslCertificates", - "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "TargetHttpsProxiesSetSslCertificatesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Replaces SslCertificates for TargetHttpsProxy." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "setCertificateMap": { - "id": "compute.targetHttpsProxies.setCertificateMap", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "TargetHttpsProxiesSetCertificateMapRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the Certificate Map for TargetHttpsProxy." + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "setSslPolicy": { - "id": "compute.targetHttpsProxies.setSslPolicy", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "SslPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the HTTPS proxy load balancer. They do not affect the connection between the load balancer and the backends." + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" }, - "setQuicOverride": { - "id": "compute.targetHttpsProxies.setQuicOverride", - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "request": { - "$ref": "TargetHttpsProxiesSetQuicOverrideRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "service": { + "description": "URL to the BackendService resource.", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Sets the QUIC override policy for TargetHttpsProxy." + "enum": [ + "NONE", + "PROXY_V1" + ] + }, + "proxyBind": { + "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", + "type": "boolean" + }, + "region": { + "description": "[Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy.", + "type": "string" } } }, - "regionTargetHttpsProxies": { - "methods": { - "list": { - "id": "compute.regionTargetHttpsProxies.list", - "path": "projects/{project}/regions/{region}/targetHttpsProxies", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "TargetHttpsProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region." + "TargetTcpProxyAggregatedList": { + "id": "TargetTcpProxyAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.", + "default": "compute#targetTcpProxyAggregatedList", + "type": "string" }, - "get": { - "id": "compute.regionTargetHttpsProxies.get", - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetTcpProxiesScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of TargetTcpProxies.", + "$ref": "TargetTcpProxiesScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "response": { - "$ref": "TargetHttpsProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetHttpsProxy resource in the specified region." + } }, - "insert": { - "id": "compute.regionTargetHttpsProxies.insert", - "path": "projects/{project}/regions/{region}/targetHttpsProxies", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "TargetHttpsProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request." + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetTcpProxiesScopedList": { + "id": "TargetTcpProxiesScopedList", + "type": "object", + "properties": { + "targetTcpProxies": { + "description": "A list of TargetTcpProxies contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetTcpProxy" + } }, - "delete": { - "id": "compute.regionTargetHttpsProxies.delete", - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + } + } + } + }, + "TargetTcpProxiesSetBackendServiceRequest": { + "id": "TargetTcpProxiesSetBackendServiceRequest", + "type": "object", + "properties": { + "service": { + "description": "The URL of the new BackendService resource for the targetTcpProxy.", + "type": "string" + } + } + }, + "TargetTcpProxiesSetProxyHeaderRequest": { + "id": "TargetTcpProxiesSetProxyHeaderRequest", + "type": "object", + "properties": { + "proxyHeader": { + "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Deletes the specified TargetHttpsProxy resource." + "enum": [ + "NONE", + "PROXY_V1" + ] + } + } + }, + "TargetVpnGatewayList": { + "id": "TargetVpnGatewayList", + "description": "Contains a list of TargetVpnGateway resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "default": "compute#targetVpnGatewayList", + "type": "string" }, - "patch": { - "id": "compute.regionTargetHttpsProxies.patch", - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "request": { - "$ref": "TargetHttpsProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "setUrlMap": { - "id": "compute.regionTargetHttpsProxies.setUrlMap", - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy to set a URL map for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "request": { - "$ref": "UrlMapReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the URL map for TargetHttpsProxy." + "items": { + "description": "A list of TargetVpnGateway resources.", + "type": "array", + "items": { + "$ref": "TargetVpnGateway" + } }, - "setSslCertificates": { - "id": "compute.regionTargetHttpsProxies.setSslCertificates", - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } + } + } + } + }, + "TargetVpnGateway": { + "id": "TargetVpnGateway", + "description": "Represents a Target VPN Gateway resource. The target VPN gateway resource represents a Classic Cloud VPN gateway. For more information, read the the Cloud VPN Overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "default": "compute#targetVpnGateway", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.targetVpnGateways.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "targetHttpsProxy" - ], - "request": { - "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest" - }, - "response": { - "$ref": "Operation" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the target VPN gateway resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "network": { + "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", + "annotations": { + "required": [ + "compute.targetVpnGateways.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "type": "string" + }, + "tunnels": { + "description": "[Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are created using the compute.vpntunnels.insert method and associated with a VPN gateway.", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "description": "[Output Only] The status of the VPN gateway, which can be one of the following: CREATING, READY, FAILED, or DELETING.", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "" ], - "description": "Replaces SslCertificates for TargetHttpsProxy." + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ] + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "forwardingRules": { + "description": "[Output Only] A list of URLs to the ForwardingRule resources. ForwardingRules are created using compute.forwardingRules.insert and associated with a VPN gateway.", + "type": "array", + "items": { + "type": "string" + } + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this TargetVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a TargetVpnGateway.", + "type": "string", + "format": "byte" } } }, - "targetInstances": { - "methods": { - "list": { - "id": "compute.targetInstances.list", - "path": "projects/{project}/zones/{zone}/targetInstances", - "flatPath": "projects/{project}/zones/{zone}/targetInstances", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "TargetVpnGatewayAggregatedList": { + "id": "TargetVpnGatewayAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "default": "compute#targetVpnGatewayAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetVpnGateway resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of target VPN gateways.", + "$ref": "TargetVpnGatewaysScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "TargetInstanceList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of TargetInstance resources available to the specified project and zone." + } }, - "aggregatedList": { - "id": "compute.targetInstances.aggregatedList", - "path": "projects/{project}/aggregated/targetInstances", - "flatPath": "projects/{project}/aggregated/targetInstances", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TargetVpnGatewaysScopedList": { + "id": "TargetVpnGatewaysScopedList", + "type": "object", + "properties": { + "targetVpnGateways": { + "description": "[Output Only] A list of target VPN gateways contained in this scope.", + "type": "array", + "items": { + "$ref": "TargetVpnGateway" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetInstanceAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of target instances." + } + } + } + }, + "UrlMapList": { + "id": "UrlMapList", + "description": "Contains a list of UrlMap resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#urlMapList", + "type": "string" }, - "get": { - "id": "compute.targetInstances.get", - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "targetInstance": { - "description": "Name of the TargetInstance resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "targetInstance" - ], - "response": { - "$ref": "TargetInstance" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetInstance resource." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "insert": { - "id": "compute.targetInstances.insert", - "path": "projects/{project}/zones/{zone}/targetInstances", - "flatPath": "projects/{project}/zones/{zone}/targetInstances", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "request": { - "$ref": "TargetInstance" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request." + "items": { + "description": "A list of UrlMap resources.", + "type": "array", + "items": { + "$ref": "UrlMap" + } }, - "delete": { - "id": "compute.targetInstances.delete", - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetInstance": { - "description": "Name of the TargetInstance resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "targetInstance" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetInstance resource." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "setSecurityPolicy": { - "id": "compute.targetInstances.setSecurityPolicy", - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "targetInstance": { - "description": "Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "zone": { - "description": "Name of the zone scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "zone", - "targetInstance" - ], - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview" + } + } + } + }, + "UrlMap": { + "id": "UrlMap", + "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by global external Application Load Balancers, classic Application Load Balancers, and cross-region internal Application Load Balancers. * regionUrlMaps are used by internal Application Load Balancers, regional external Application Load Balancers and regional internal Application Load Balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#urlMaps for url maps.", + "default": "compute#urlMap", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "hostRules": { + "description": "The list of host rules to use against the URL.", + "type": "array", + "items": { + "$ref": "HostRule" + } + }, + "pathMatchers": { + "description": "The list of named PathMatchers to use against the URL.", + "type": "array", + "items": { + "$ref": "PathMatcher" + } + }, + "tests": { + "description": "The list of expected URL mapping tests. Request to update the UrlMap succeeds only if all test cases pass. You can specify a maximum of 100 tests per UrlMap. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "type": "array", + "items": { + "$ref": "UrlMapTest" + } + }, + "defaultService": { + "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. If defaultService is specified, then set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService Don't set both. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "type": "string" + }, + "defaultRouteAction": { + "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "$ref": "HttpRouteAction" + }, + "defaultUrlRedirect": { + "description": "When none of the specified hostRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", + "$ref": "HttpRedirectAction" + }, + "headerAction": { + "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction specified here take effect after headerAction specified under pathMatcher. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "HttpHeaderAction" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field is ignored when inserting a UrlMap. An up-to-date fingerprint must be provided in order to update the UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a UrlMap.", + "type": "string", + "format": "byte" + }, + "region": { + "description": "[Output Only] URL of the region where the regional URL map resides. This field is not applicable to global URL maps. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + } + }, + "HostRule": { + "id": "HostRule", + "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", + "type": "object", + "properties": { + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "hosts": { + "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "type": "array", + "items": { + "type": "string" + } + }, + "pathMatcher": { + "description": "The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion.", + "type": "string" + } + } + }, + "PathMatcher": { + "id": "PathMatcher", + "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used.", + "type": "object", + "properties": { + "name": { + "description": "The name to which this PathMatcher is referred by the HostRule.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "defaultService": { + "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. If defaultService is specified, then set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. Don't set both. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", + "type": "string" + }, + "defaultRouteAction": { + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. If defaultRouteAction is specified, don't set defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is specified, don't set defaultService. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction.", + "$ref": "HttpRouteAction" + }, + "defaultUrlRedirect": { + "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, then set either defaultService or defaultRouteAction. Don't set both. Not supported when the URL map is bound to a target gRPC proxy.", + "$ref": "HttpRedirectAction" + }, + "pathRules": { + "description": "The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set.", + "type": "array", + "items": { + "$ref": "PathRule" + } + }, + "routeRules": { + "description": "The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules.", + "type": "array", + "items": { + "$ref": "HttpRouteRule" + } + }, + "headerAction": { + "description": "Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "HttpHeaderAction" } } }, - "targetPools": { - "methods": { - "list": { - "id": "compute.targetPools.list", - "path": "projects/{project}/regions/{region}/targetPools", - "flatPath": "projects/{project}/regions/{region}/targetPools", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "TargetPoolList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of target pools available to the specified project and region." + "HttpRouteAction": { + "id": "HttpRouteAction", + "type": "object", + "properties": { + "weightedBackendServices": { + "description": "A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.", + "type": "array", + "items": { + "$ref": "WeightedBackendService" + } }, - "aggregatedList": { - "id": "compute.targetPools.aggregatedList", - "path": "projects/{project}/aggregated/targetPools", - "flatPath": "projects/{project}/aggregated/targetPools", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetPoolAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of target pools." + "urlRewrite": { + "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "$ref": "UrlRewrite" }, - "get": { - "id": "compute.targetPools.get", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "response": { - "$ref": "TargetPool" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified target pool." + "timeout": { + "description": "Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "Duration" }, - "insert": { - "id": "compute.targetPools.insert", - "path": "projects/{project}/regions/{region}/targetPools", - "flatPath": "projects/{project}/regions/{region}/targetPools", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "TargetPool" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a target pool in the specified project and region using the data included in the request." + "retryPolicy": { + "description": "Specifies the retry policy associated with this route.", + "$ref": "HttpRetryPolicy" }, - "delete": { - "id": "compute.targetPools.delete", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified target pool." + "requestMirrorPolicy": { + "description": "Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "$ref": "RequestMirrorPolicy" }, - "getHealth": { - "id": "compute.targetPools.getHealth", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to which the queried instance belongs.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "InstanceReference" - }, - "response": { - "$ref": "TargetPoolInstanceHealth" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool." + "corsPolicy": { + "description": "The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.", + "$ref": "CorsPolicy" }, - "addHealthCheck": { - "id": "compute.targetPools.addHealthCheck", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the target pool to add a health check to.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "TargetPoolsAddHealthCheckRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds health check URLs to a target pool." + "faultInjectionPolicy": { + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.", + "$ref": "HttpFaultInjection" }, - "removeHealthCheck": { - "id": "compute.targetPools.removeHealthCheck", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the target pool to remove health checks from.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "TargetPoolsRemoveHealthCheckRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes health check URL from a target pool." + "maxStreamDuration": { + "description": "Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "$ref": "Duration" + } + } + }, + "WeightedBackendService": { + "id": "WeightedBackendService", + "description": "In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService", + "type": "object", + "properties": { + "backendService": { + "description": "The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.", + "type": "string" }, - "addInstance": { - "id": "compute.targetPools.addInstance", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to add instances to.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "TargetPoolsAddInstanceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Adds an instance to a target pool." + "weight": { + "description": "Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000.", + "type": "integer", + "format": "uint32" + }, + "headerAction": { + "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "HttpHeaderAction" + } + } + }, + "HttpHeaderAction": { + "id": "HttpHeaderAction", + "description": "The request and response header transformations that take effect before the request is passed along to the selected backendService.", + "type": "object", + "properties": { + "requestHeadersToRemove": { + "description": "A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.", + "type": "array", + "items": { + "type": "string" + } }, - "removeInstance": { - "id": "compute.targetPools.removeInstance", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to remove instances from.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "TargetPoolsRemoveInstanceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Removes instance URL from a target pool." + "requestHeadersToAdd": { + "description": "Headers to add to a matching request before forwarding the request to the backendService.", + "type": "array", + "items": { + "$ref": "HttpHeaderOption" + } }, - "setBackup": { - "id": "compute.targetPools.setBackup", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", - "httpMethod": "POST", - "parameters": { - "failoverRatio": { - "description": "New failoverRatio value for the target pool.", - "location": "query", - "type": "number", - "format": "float" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to set a backup pool for.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "TargetReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes a backup target pool's configurations." + "responseHeadersToRemove": { + "description": "A list of header names for headers that need to be removed from the response before sending the response back to the client.", + "type": "array", + "items": { + "type": "string" + } }, - "setSecurityPolicy": { - "id": "compute.targetPools.setSecurityPolicy", - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetPool" - ], - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview" + "responseHeadersToAdd": { + "description": "Headers to add the response before sending the response back to the client.", + "type": "array", + "items": { + "$ref": "HttpHeaderOption" + } } } }, - "targetSslProxies": { - "methods": { - "list": { - "id": "compute.targetSslProxies.list", - "path": "projects/{project}/global/targetSslProxies", - "flatPath": "projects/{project}/global/targetSslProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetSslProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of TargetSslProxy resources available to the specified project." + "HttpHeaderOption": { + "id": "HttpHeaderOption", + "description": "Specification determining how headers are added to requests or responses.", + "type": "object", + "properties": { + "headerName": { + "description": "The name of the header.", + "type": "string" }, - "get": { - "id": "compute.targetSslProxies.get", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "response": { - "$ref": "TargetSslProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetSslProxy resource." + "headerValue": { + "description": "The value of the header to add.", + "type": "string" }, - "insert": { - "id": "compute.targetSslProxies.insert", - "path": "projects/{project}/global/targetSslProxies", - "flatPath": "projects/{project}/global/targetSslProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "TargetSslProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request." + "replace": { + "description": "If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. ", + "type": "boolean" + } + } + }, + "UrlRewrite": { + "id": "UrlRewrite", + "description": "The spec for modifying the path before sending the request to the matched backend service.", + "type": "object", + "properties": { + "pathPrefixRewrite": { + "description": "Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters.", + "type": "string" }, - "delete": { - "id": "compute.targetSslProxies.delete", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetSslProxy resource." + "hostRewrite": { + "description": "Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters.", + "type": "string" }, - "setBackendService": { - "id": "compute.targetSslProxies.setBackendService", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "request": { - "$ref": "TargetSslProxiesSetBackendServiceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the BackendService for TargetSslProxy." + "pathTemplateRewrite": { + "description": " If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified.", + "type": "string" + } + } + }, + "HttpRetryPolicy": { + "id": "HttpRetryPolicy", + "description": "The retry policy associates with HttpRouteRule", + "type": "object", + "properties": { + "retryConditions": { + "description": "Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable ", + "type": "array", + "items": { + "type": "string" + } }, - "setSslCertificates": { - "id": "compute.targetSslProxies.setSslCertificates", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "request": { - "$ref": "TargetSslProxiesSetSslCertificatesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes SslCertificates for TargetSslProxy." + "numRetries": { + "description": "Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.", + "type": "integer", + "format": "uint32" + }, + "perTryTimeout": { + "description": "Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "$ref": "Duration" + } + } + }, + "RequestMirrorPolicy": { + "id": "RequestMirrorPolicy", + "description": "A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow.", + "type": "object", + "properties": { + "backendService": { + "description": "The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. ", + "type": "string" + } + } + }, + "CorsPolicy": { + "id": "CorsPolicy", + "description": "The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard.", + "type": "object", + "properties": { + "allowOrigins": { + "description": "Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.", + "type": "array", + "items": { + "type": "string" + } + }, + "allowOriginRegexes": { + "description": "Specifies a regular expression that matches allowed origins. For more information, see regular expression syntax . An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "type": "array", + "items": { + "type": "string" + } + }, + "allowMethods": { + "description": "Specifies the content for the Access-Control-Allow-Methods header.", + "type": "array", + "items": { + "type": "string" + } + }, + "allowHeaders": { + "description": "Specifies the content for the Access-Control-Allow-Headers header.", + "type": "array", + "items": { + "type": "string" + } }, - "setCertificateMap": { - "id": "compute.targetSslProxies.setCertificateMap", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "request": { - "$ref": "TargetSslProxiesSetCertificateMapRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the Certificate Map for TargetSslProxy." + "exposeHeaders": { + "description": "Specifies the content for the Access-Control-Expose-Headers header.", + "type": "array", + "items": { + "type": "string" + } }, - "setProxyHeader": { - "id": "compute.targetSslProxies.setProxyHeader", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "request": { - "$ref": "TargetSslProxiesSetProxyHeaderRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the ProxyHeaderType for TargetSslProxy." + "maxAge": { + "description": "Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header.", + "type": "integer", + "format": "int32" }, - "setSslPolicy": { - "id": "compute.targetSslProxies.setSslPolicy", - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetSslProxy" - ], - "request": { - "$ref": "SslPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the load balancer. They do not affect the connection between the load balancer and the backends." + "allowCredentials": { + "description": "In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false.", + "type": "boolean" + }, + "disabled": { + "description": "If true, disables the CORS policy. The default value is false, which indicates that the CORS policy is in effect.", + "type": "boolean" } } }, - "targetTcpProxies": { - "methods": { - "list": { - "id": "compute.targetTcpProxies.list", - "path": "projects/{project}/global/targetTcpProxies", - "flatPath": "projects/{project}/global/targetTcpProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetTcpProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of TargetTcpProxy resources available to the specified project." + "HttpFaultInjection": { + "id": "HttpFaultInjection", + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests.", + "type": "object", + "properties": { + "delay": { + "description": "The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.", + "$ref": "HttpFaultDelay" }, - "aggregatedList": { - "id": "compute.targetTcpProxies.aggregatedList", - "path": "projects/{project}/aggregated/targetTcpProxies", - "flatPath": "projects/{project}/aggregated/targetTcpProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetTcpProxyAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project." + "abort": { + "description": "The specification for how client requests are aborted as part of fault injection.", + "$ref": "HttpFaultAbort" + } + } + }, + "HttpFaultDelay": { + "id": "HttpFaultDelay", + "description": "Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection.", + "type": "object", + "properties": { + "fixedDelay": { + "description": "Specifies the value of the fixed delay interval.", + "$ref": "Duration" }, - "get": { - "id": "compute.targetTcpProxies.get", - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetTcpProxy" - ], - "response": { - "$ref": "TargetTcpProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetTcpProxy resource." + "percentage": { + "description": "The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive.", + "type": "number", + "format": "double" + } + } + }, + "HttpFaultAbort": { + "id": "HttpFaultAbort", + "description": "Specification for how requests are aborted as part of fault injection.", + "type": "object", + "properties": { + "httpStatus": { + "description": "The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director.", + "type": "integer", + "format": "uint32" }, - "insert": { - "id": "compute.targetTcpProxies.insert", - "path": "projects/{project}/global/targetTcpProxies", - "flatPath": "projects/{project}/global/targetTcpProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "TargetTcpProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request." + "percentage": { + "description": "The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive.", + "type": "number", + "format": "double" + } + } + }, + "HttpRedirectAction": { + "id": "HttpRedirectAction", + "description": "Specifies settings for an HTTP redirect.", + "type": "object", + "properties": { + "hostRedirect": { + "description": "The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters.", + "type": "string" }, - "delete": { - "id": "compute.targetTcpProxies.delete", - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetTcpProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetTcpProxy resource." + "pathRedirect": { + "description": "The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters.", + "type": "string" }, - "setBackendService": { - "id": "compute.targetTcpProxies.setBackendService", - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetTcpProxy" - ], - "request": { - "$ref": "TargetTcpProxiesSetBackendServiceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Changes the BackendService for TargetTcpProxy." + "prefixRedirect": { + "description": "The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters.", + "type": "string" }, - "setProxyHeader": { - "id": "compute.targetTcpProxies.setProxyHeader", - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "targetTcpProxy" - ], - "request": { - "$ref": "TargetTcpProxiesSetProxyHeaderRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "redirectResponseCode": { + "description": "The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. ", + "type": "string", + "enumDescriptions": [ + "Http Status Code 302 - Found.", + "Http Status Code 301 - Moved Permanently.", + "Http Status Code 308 - Permanent Redirect maintaining HTTP method.", + "Http Status Code 303 - See Other.", + "Http Status Code 307 - Temporary Redirect maintaining HTTP method." ], - "description": "Changes the ProxyHeaderType for TargetTcpProxy." + "enum": [ + "FOUND", + "MOVED_PERMANENTLY_DEFAULT", + "PERMANENT_REDIRECT", + "SEE_OTHER", + "TEMPORARY_REDIRECT" + ] + }, + "httpsRedirect": { + "description": "If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false.", + "type": "boolean" + }, + "stripQuery": { + "description": "If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. ", + "type": "boolean" } } }, - "regionTargetTcpProxies": { - "methods": { - "list": { - "id": "compute.regionTargetTcpProxies.list", - "path": "projects/{project}/regions/{region}/targetTcpProxies", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "TargetTcpProxyList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of TargetTcpProxy resources available to the specified project in a given region." + "PathRule": { + "id": "PathRule", + "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL.", + "type": "object", + "properties": { + "service": { + "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", + "type": "string" }, - "get": { - "id": "compute.regionTargetTcpProxies.get", - "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetTcpProxy" - ], - "response": { - "$ref": "TargetTcpProxy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified TargetTcpProxy resource." + "routeAction": { + "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction.", + "$ref": "HttpRouteAction" }, - "insert": { - "id": "compute.regionTargetTcpProxies.insert", - "path": "projects/{project}/regions/{region}/targetTcpProxies", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "TargetTcpProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a TargetTcpProxy resource in the specified project and region using the data included in the request." + "urlRedirect": { + "description": "When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", + "$ref": "HttpRedirectAction" }, - "delete": { - "id": "compute.regionTargetTcpProxies.delete", - "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetTcpProxy" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified TargetTcpProxy resource." + "paths": { + "description": "The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.", + "type": "array", + "items": { + "type": "string" + } } } }, - "targetVpnGateways": { - "methods": { - "list": { - "id": "compute.targetVpnGateways.list", - "path": "projects/{project}/regions/{region}/targetVpnGateways", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "TargetVpnGatewayList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of target VPN gateways available to the specified project and region." + "HttpRouteRule": { + "id": "HttpRouteRule", + "description": "The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.", + "type": "object", + "properties": { + "priority": { + "description": "For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.", + "type": "integer", + "format": "int32" }, - "aggregatedList": { - "id": "compute.targetVpnGateways.aggregatedList", - "path": "projects/{project}/aggregated/targetVpnGateways", - "flatPath": "projects/{project}/aggregated/targetVpnGateways", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "TargetVpnGatewayAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of target VPN gateways." + "description": { + "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", + "type": "string" }, - "get": { - "id": "compute.targetVpnGateways.get", - "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "targetVpnGateway": { - "description": "Name of the target VPN gateway to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetVpnGateway" - ], - "response": { - "$ref": "TargetVpnGateway" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified target VPN gateway." + "matchRules": { + "description": "The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.", + "type": "array", + "items": { + "$ref": "HttpRouteRuleMatch" + } }, - "insert": { - "id": "compute.targetVpnGateways.insert", - "path": "projects/{project}/regions/{region}/targetVpnGateways", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "TargetVpnGateway" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a target VPN gateway in the specified project and region using the data included in the request." + "service": { + "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", + "type": "string" }, - "delete": { - "id": "compute.targetVpnGateways.delete", - "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "targetVpnGateway": { - "description": "Name of the target VPN gateway to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "targetVpnGateway" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified target VPN gateway." + "routeAction": { + "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction.", + "$ref": "HttpRouteAction" + }, + "urlRedirect": { + "description": "When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.", + "$ref": "HttpRedirectAction" }, - "setLabels": { - "id": "compute.targetVpnGateways.setLabels", - "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation." + "headerAction": { + "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "$ref": "HttpHeaderAction" } } }, - "urlMaps": { - "methods": { - "list": { - "id": "compute.urlMaps.list", - "path": "projects/{project}/global/urlMaps", - "flatPath": "projects/{project}/global/urlMaps", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "UrlMapList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of UrlMap resources available to the specified project." + "HttpRouteRuleMatch": { + "id": "HttpRouteRuleMatch", + "description": "HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur.", + "type": "object", + "properties": { + "prefixMatch": { + "description": "For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", + "type": "string" }, - "aggregatedList": { - "id": "compute.urlMaps.aggregatedList", - "path": "projects/{project}/aggregated/urlMaps", - "flatPath": "projects/{project}/aggregated/urlMaps", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Name of the project scoping this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "UrlMapsAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project." + "fullPathMatch": { + "description": "For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", + "type": "string" }, - "get": { - "id": "compute.urlMaps.get", - "path": "projects/{project}/global/urlMaps/{urlMap}", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "urlMap" - ], - "response": { - "$ref": "UrlMap" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified UrlMap resource." + "regexMatch": { + "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "type": "string" }, - "insert": { - "id": "compute.urlMaps.insert", - "path": "projects/{project}/global/urlMaps", - "flatPath": "projects/{project}/global/urlMaps", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project" - ], - "request": { - "$ref": "UrlMap" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a UrlMap resource in the specified project using the data included in the request." + "ignoreCase": { + "description": "Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy.", + "type": "boolean" }, - "delete": { - "id": "compute.urlMaps.delete", - "path": "projects/{project}/global/urlMaps/{urlMap}", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "urlMap" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified UrlMap resource." + "headerMatches": { + "description": "Specifies a list of header match criteria, all of which must match corresponding headers in the request.", + "type": "array", + "items": { + "$ref": "HttpHeaderMatch" + } }, - "update": { - "id": "compute.urlMaps.update", - "path": "projects/{project}/global/urlMaps/{urlMap}", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "PUT", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "urlMap" - ], - "request": { - "$ref": "UrlMap" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified UrlMap resource with the data included in the request." + "queryParameterMatches": { + "description": "Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy.", + "type": "array", + "items": { + "$ref": "HttpQueryParameterMatch" + } }, - "patch": { - "id": "compute.urlMaps.patch", - "path": "projects/{project}/global/urlMaps/{urlMap}", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "urlMap" - ], - "request": { - "$ref": "UrlMap" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules." + "metadataFilters": { + "description": "Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", + "type": "array", + "items": { + "$ref": "MetadataFilter" + } }, - "validate": { - "id": "compute.urlMaps.validate", - "path": "projects/{project}/global/urlMaps/{urlMap}/validate", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to be validated as.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "urlMap" - ], - "request": { - "$ref": "UrlMapsValidateRequest" - }, - "response": { - "$ref": "UrlMapsValidateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap." + "pathTemplateMatch": { + "description": "If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash (\"/\") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set.", + "type": "string" + } + } + }, + "HttpHeaderMatch": { + "id": "HttpHeaderMatch", + "description": "matchRule criteria for request header matches.", + "type": "object", + "properties": { + "headerName": { + "description": "The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name \":authority\". For matching a request's method, use the headerName \":method\". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`.", + "type": "string" + }, + "exactMatch": { + "description": "The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "type": "string" + }, + "regexMatch": { + "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "type": "string" + }, + "rangeMatch": { + "description": "The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL.", + "$ref": "Int64RangeMatch" + }, + "presentMatch": { + "description": "A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "type": "boolean" + }, + "prefixMatch": { + "description": "The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "type": "string" + }, + "suffixMatch": { + "description": "The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "type": "string" + }, + "invertMatch": { + "description": "If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. ", + "type": "boolean" + } + } + }, + "Int64RangeMatch": { + "id": "Int64RangeMatch", + "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range.", + "type": "object", + "properties": { + "rangeStart": { + "description": "The start of the range (inclusive) in signed long integer format.", + "type": "string", + "format": "int64" + }, + "rangeEnd": { + "description": "The end of the range (exclusive) in signed long integer format.", + "type": "string", + "format": "int64" + } + } + }, + "HttpQueryParameterMatch": { + "id": "HttpQueryParameterMatch", + "description": "HttpRouteRuleMatch criteria for a request's query parameter.", + "type": "object", + "properties": { + "name": { + "description": "The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails.", + "type": "string" + }, + "presentMatch": { + "description": "Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. ", + "type": "boolean" + }, + "exactMatch": { + "description": "The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. ", + "type": "string" + }, + "regexMatch": { + "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", + "type": "string" + } + } + }, + "UrlMapTest": { + "id": "UrlMapTest", + "description": "Message for the expected URL mappings.", + "type": "object", + "properties": { + "description": { + "description": "Description of this test case.", + "type": "string" }, - "invalidateCache": { - "id": "compute.urlMaps.invalidateCache", - "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "urlMap" - ], - "request": { - "$ref": "CacheInvalidationRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. For more information, see [Invalidating cached content](/cdn/docs/invalidating-cached-content)." + "host": { + "description": "Host portion of the URL. If headers contains a host header, then host must also match the header value.", + "type": "string" + }, + "path": { + "description": "Path portion of the URL.", + "type": "string" + }, + "headers": { + "description": "HTTP headers for this request. If headers contains a host header, then host must also match the header value.", + "type": "array", + "items": { + "$ref": "UrlMapTestHeader" + } + }, + "service": { + "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set.", + "type": "string" + }, + "expectedOutputUrl": { + "description": "The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified.", + "type": "string" + }, + "expectedRedirectResponseCode": { + "description": "For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set.", + "type": "integer", + "format": "int32" } } }, - "regionUrlMaps": { - "methods": { - "list": { - "id": "compute.regionUrlMaps.list", - "path": "projects/{project}/regions/{region}/urlMaps", - "flatPath": "projects/{project}/regions/{region}/urlMaps", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "UrlMapList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region." + "UrlMapTestHeader": { + "id": "UrlMapTestHeader", + "description": "HTTP headers used in UrlMapTests.", + "type": "object", + "properties": { + "name": { + "description": "Header name.", + "type": "string" }, - "get": { - "id": "compute.regionUrlMaps.get", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "response": { - "$ref": "UrlMap" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified UrlMap resource." + "value": { + "description": "Header value.", + "type": "string" + } + } + }, + "UrlMapsAggregatedList": { + "id": "UrlMapsAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#urlMapsAggregatedList", + "type": "string" }, - "insert": { - "id": "compute.regionUrlMaps.insert", - "path": "projects/{project}/regions/{region}/urlMaps", - "flatPath": "projects/{project}/regions/{region}/urlMaps", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "UrlMap" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a UrlMap resource in the specified project using the data included in the request." + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "delete": { - "id": "compute.regionUrlMaps.delete", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified UrlMap resource." + "items": { + "description": "A list of UrlMapsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of UrlMaps.", + "$ref": "UrlMapsScopedList" + } }, - "update": { - "id": "compute.regionUrlMaps.update", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "PUT", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to update.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "request": { - "$ref": "UrlMap" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Updates the specified UrlMap resource with the data included in the request." + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" }, - "patch": { - "id": "compute.regionUrlMaps.patch", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "PATCH", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to patch.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "request": { - "$ref": "UrlMap" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules." + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, - "validate": { - "id": "compute.regionUrlMaps.validate", - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region scoping this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to be validated as.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "request": { - "$ref": "RegionUrlMapsValidateRequest" - }, - "response": { - "$ref": "UrlMapsValidateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap." + } + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "vpnGateways": { - "methods": { - "list": { - "id": "compute.vpnGateways.list", - "path": "projects/{project}/regions/{region}/vpnGateways", - "flatPath": "projects/{project}/regions/{region}/vpnGateways", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "UrlMapsScopedList": { + "id": "UrlMapsScopedList", + "type": "object", + "properties": { + "urlMaps": { + "description": "A list of UrlMaps contained in this scope.", + "type": "array", + "items": { + "$ref": "UrlMap" + } + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "VpnGatewayList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves a list of VPN gateways available to the specified project and region." + } + } + } + }, + "UrlMapsValidateRequest": { + "id": "UrlMapsValidateRequest", + "type": "object", + "properties": { + "resource": { + "description": "Content of the UrlMap to be validated.", + "$ref": "UrlMap" }, - "aggregatedList": { - "id": "compute.vpnGateways.aggregatedList", - "path": "projects/{project}/aggregated/vpnGateways", - "flatPath": "projects/{project}/aggregated/vpnGateways", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "loadBalancingSchemes": { + "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", + "type": "array", + "items": { + "type": "string", + "enumDescriptions": [ + "Signifies that this will be used for classic Application Load Balancers.", + "Signifies that this will be used for Envoy-based global external Application Load Balancers.", + "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inference is not possible, EXTERNAL will be used as the default type." + ], + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "LOAD_BALANCING_SCHEME_UNSPECIFIED" + ] + } + } + } + }, + "UrlMapsValidateResponse": { + "id": "UrlMapsValidateResponse", + "type": "object", + "properties": { + "result": { + "$ref": "UrlMapValidationResult" + } + } + }, + "UrlMapValidationResult": { + "id": "UrlMapValidationResult", + "description": "Message representing the validation result for a UrlMap.", + "type": "object", + "properties": { + "loadSucceeded": { + "description": "Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' indicates the reasons.", + "type": "boolean" + }, + "loadErrors": { + "type": "array", + "items": { + "type": "string" + } + }, + "testPassed": { + "description": "If successfully loaded, this field indicates whether the test passed. If false, 'testFailures's indicate the reason of failure.", + "type": "boolean" + }, + "testFailures": { + "type": "array", + "items": { + "$ref": "TestFailure" + } + } + } + }, + "TestFailure": { + "id": "TestFailure", + "type": "object", + "properties": { + "host": { + "description": "Host portion of the URL.", + "type": "string" + }, + "path": { + "description": "Path portion including query parameters in the URL.", + "type": "string" + }, + "headers": { + "description": "HTTP headers of the request.", + "type": "array", + "items": { + "$ref": "UrlMapTestHeader" + } + }, + "expectedService": { + "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to.", + "type": "string" + }, + "actualService": { + "description": "BackendService or BackendBucket returned by load balancer.", + "type": "string" + }, + "expectedOutputUrl": { + "description": "The expected output URL evaluated by a load balancer containing the scheme, host, path and query parameters.", + "type": "string" + }, + "actualOutputUrl": { + "description": "The actual output URL evaluated by a load balancer containing the scheme, host, path and query parameters.", + "type": "string" + }, + "expectedRedirectResponseCode": { + "description": "Expected HTTP status code for rule with `urlRedirect` calculated by load balancer", + "type": "integer", + "format": "int32" + }, + "actualRedirectResponseCode": { + "description": "Actual HTTP status code for rule with `urlRedirect` calculated by load balancer", + "type": "integer", + "format": "int32" + } + } + }, + "CacheInvalidationRule": { + "id": "CacheInvalidationRule", + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "host": { + "description": "If set, this invalidation rule will only apply to requests with a Host header matching host.", + "type": "string" + } + } + }, + "RegionUrlMapsValidateRequest": { + "id": "RegionUrlMapsValidateRequest", + "type": "object", + "properties": { + "resource": { + "description": "Content of the UrlMap to be validated.", + "$ref": "UrlMap" + } + } + }, + "VpnGatewayList": { + "id": "VpnGatewayList", + "description": "Contains a list of VpnGateway resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", + "default": "compute#vpnGatewayList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of VpnGateway resources.", + "type": "array", + "items": { + "$ref": "VpnGateway" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "VpnGatewayAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of VPN gateways." + } + } + } + }, + "VpnGateway": { + "id": "VpnGateway", + "description": "Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN solution that lets you securely connect your on-premises network to your Google Cloud Virtual Private Cloud network through an IPsec VPN connection in a single region. For more information about Cloud HA VPN solutions, see Cloud VPN topologies .", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", + "default": "compute#vpnGateway", + "type": "string" }, - "get": { - "id": "compute.vpnGateways.get", - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "vpnGateway": { - "description": "Name of the VPN gateway to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "vpnGateway" - ], - "response": { - "$ref": "VpnGateway" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the specified VPN gateway." + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" }, - "getStatus": { - "id": "compute.vpnGateways.getStatus", - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "vpnGateway": { - "description": "Name of the VPN gateway to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "vpnGateway" - ], - "response": { - "$ref": "VpnGatewaysGetStatusResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Returns the status for the specified VPN gateway." + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" }, - "insert": { - "id": "compute.vpnGateways.insert", - "path": "projects/{project}/regions/{region}/vpnGateways", - "flatPath": "projects/{project}/regions/{region}/vpnGateways", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { - "$ref": "VpnGateway" - }, - "response": { - "$ref": "Operation" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.vpnGateways.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a VPN gateway in the specified project and region using the data included in the request." + "type": "string" }, - "delete": { - "id": "compute.vpnGateways.delete", - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" - }, - "vpnGateway": { - "description": "Name of the VPN gateway to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "vpnGateway" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified VPN gateway." + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" }, - "testIamPermissions": { - "id": "compute.vpnGateways.testIamPermissions", - "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } + "region": { + "description": "[Output Only] URL of the region where the VPN gateway resides.", + "type": "string" + }, + "network": { + "description": "URL of the network to which this VPN gateway is attached. Provided by the client when the VPN gateway is created.", + "annotations": { + "required": [ + "compute.vpnGateways.insert" + ] }, - "parameterOrder": [ - "project", - "region", - "resource" + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway.", + "type": "string", + "format": "byte" + }, + "vpnInterfaces": { + "description": "The list of VPN interfaces associated with this VPN gateway.", + "type": "array", + "items": { + "$ref": "VpnGatewayVpnGatewayInterface" + } + }, + "stackType": { + "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used.", + "type": "string", + "enumDescriptions": [ + "Enable VPN gateway with both IPv4 and IPv6 protocols.", + "Enable VPN gateway with only IPv4 protocol." ], - "request": { - "$ref": "TestPermissionsRequest" - }, - "response": { - "$ref": "TestPermissionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ] + }, + "gatewayIpVersion": { + "description": "The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used.", + "type": "string", + "enumDescriptions": [ + "Every HA-VPN gateway interface is configured with an IPv4 address.", + "Every HA-VPN gateway interface is configured with an IPv6 address." ], - "description": "Returns permissions that a caller has on the specified resource." + "enum": [ + "IPV4", + "IPV6" + ] + } + } + }, + "VpnGatewayVpnGatewayInterface": { + "id": "VpnGatewayVpnGatewayInterface", + "description": "A VPN gateway interface.", + "type": "object", + "properties": { + "id": { + "description": "[Output Only] Numeric identifier for this VPN interface associated with the VPN gateway.", + "type": "integer", + "format": "uint32" }, - "setLabels": { - "id": "compute.vpnGateways.setLabels", - "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "ipAddress": { + "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", + "type": "string" + }, + "ipv6Address": { + "description": "[Output Only] IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" + }, + "interconnectAttachment": { + "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource.", + "type": "string" + } + } + }, + "VpnGatewayAggregatedList": { + "id": "VpnGatewayAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", + "default": "compute#vpnGatewayAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of VpnGateway resources.", + "type": "object", + "additionalProperties": { + "description": "[Output Only] Name of the scope containing this set of VPN gateways.", + "$ref": "VpnGatewaysScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation." + } + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } } } }, - "vpnTunnels": { - "methods": { - "list": { - "id": "compute.vpnTunnels.list", - "path": "projects/{project}/regions/{region}/vpnTunnels", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "VpnGatewaysScopedList": { + "id": "VpnGatewaysScopedList", + "type": "object", + "properties": { + "vpnGateways": { + "description": "[Output Only] A list of VPN gateways contained in this scope.", + "type": "array", + "items": { + "$ref": "VpnGateway" + } + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" + } + } + } + }, + "VpnGatewaysGetStatusResponse": { + "id": "VpnGatewaysGetStatusResponse", + "type": "object", + "properties": { + "result": { + "$ref": "VpnGatewayStatus" + } + } + }, + "VpnGatewayStatus": { + "id": "VpnGatewayStatus", + "type": "object", + "properties": { + "vpnConnections": { + "description": "List of VPN connection for this VpnGateway.", + "type": "array", + "items": { + "$ref": "VpnGatewayStatusVpnConnection" + } + } + } + }, + "VpnGatewayStatusVpnConnection": { + "id": "VpnGatewayStatusVpnConnection", + "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", + "type": "object", + "properties": { + "peerExternalGateway": { + "description": "URL reference to the peer external VPN gateways to which the VPN tunnels in this VPN connection are connected. This field is mutually exclusive with peer_gcp_gateway.", + "type": "string" + }, + "peerGcpGateway": { + "description": "URL reference to the peer side VPN gateways to which the VPN tunnels in this VPN connection are connected. This field is mutually exclusive with peer_gcp_gateway.", + "type": "string" + }, + "tunnels": { + "description": "List of VPN tunnels that are in this VPN connection.", + "type": "array", + "items": { + "$ref": "VpnGatewayStatusTunnel" + } + }, + "state": { + "description": "HighAvailabilityRequirementState for the VPN connection.", + "$ref": "VpnGatewayStatusHighAvailabilityRequirementState" + } + } + }, + "VpnGatewayStatusTunnel": { + "id": "VpnGatewayStatusTunnel", + "description": "Contains some information about a VPN tunnel.", + "type": "object", + "properties": { + "localGatewayInterface": { + "description": "The VPN gateway interface this VPN tunnel is associated with.", + "type": "integer", + "format": "uint32" + }, + "peerGatewayInterface": { + "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", + "type": "integer", + "format": "uint32" + }, + "tunnelUrl": { + "description": "URL reference to the VPN tunnel.", + "type": "string" + } + } + }, + "VpnGatewayStatusHighAvailabilityRequirementState": { + "id": "VpnGatewayStatusHighAvailabilityRequirementState", + "description": "Describes the high availability requirement state for the VPN connection between this Cloud VPN gateway and a peer gateway.", + "type": "object", + "properties": { + "state": { + "description": "Indicates the high availability requirement state for the VPN connection. Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET.", + "type": "string", + "enumDescriptions": [ + "VPN tunnels are configured with adequate redundancy from Cloud VPN gateway to the peer VPN gateway. For both GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a pre-requirement for users to get 99.99% availability on GCP side; please note that for any connection, end-to-end 99.99% availability is subject to proper configuration on the peer VPN gateway.", + "VPN tunnels are not configured with adequate redundancy from the Cloud VPN gateway to the peer gateway" ], - "response": { - "$ref": "VpnTunnelList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "enum": [ + "CONNECTION_REDUNDANCY_MET", + "CONNECTION_REDUNDANCY_NOT_MET" + ] + }, + "unsatisfiedReason": { + "description": "Indicates the reason why the VPN connection does not meet the high availability redundancy criteria/requirement. Valid values is INCOMPLETE_TUNNELS_COVERAGE.", + "type": "string", + "enumDescriptions": [ + "" ], - "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region." + "enum": [ + "INCOMPLETE_TUNNELS_COVERAGE" + ] + } + } + }, + "VpnTunnelList": { + "id": "VpnTunnelList", + "description": "Contains a list of VpnTunnel resources.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "default": "compute#vpnTunnelList", + "type": "string" }, - "aggregatedList": { - "id": "compute.vpnTunnels.aggregatedList", - "path": "projects/{project}/aggregated/vpnTunnels", - "flatPath": "projects/{project}/aggregated/vpnTunnels", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of VpnTunnel resources.", + "type": "array", + "items": { + "$ref": "VpnTunnel" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "location": "query", - "type": "string", - "format": "int64" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "VpnTunnelAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves an aggregated list of VPN tunnels." + } + } + } + }, + "VpnTunnel": { + "id": "VpnTunnel", + "description": "Represents a Cloud VPN Tunnel resource. For more information about VPN, read the the Cloud VPN Overview.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "default": "compute#vpnTunnel", + "type": "string" }, - "get": { - "id": "compute.vpnTunnels.get", - "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "vpnTunnel": { - "description": "Name of the VpnTunnel resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "region", - "vpnTunnel" - ], - "response": { - "$ref": "VpnTunnel" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.vpnTunnels.insert" + ] }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the VPN tunnel resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "targetVpnGateway": { + "description": "URL of the Target VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.", + "type": "string" + }, + "vpnGateway": { + "description": "URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created. This must be used (instead of target_vpn_gateway) if a High Availability VPN gateway resource is created.", + "type": "string" + }, + "vpnGatewayInterface": { + "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. Possible values are: `0`, `1`.", + "type": "integer", + "format": "int32" + }, + "peerExternalGateway": { + "description": "URL of the peer side external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field is exclusive with the field peerGcpGateway.", + "type": "string" + }, + "peerExternalGatewayInterface": { + "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the external VPN gateway redundancy type.", + "type": "integer", + "format": "int32" + }, + "peerGcpGateway": { + "description": "URL of the peer side HA VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer Google Cloud VPN gateway.", + "type": "string" + }, + "router": { + "description": "URL of the router resource to be used for dynamic routing.", + "type": "string" + }, + "peerIp": { + "description": "IP address of the peer VPN gateway. Only IPv4 is supported.", + "type": "string" + }, + "sharedSecret": { + "description": "Shared secret used to set the secure session between the Cloud VPN gateway and the peer VPN gateway.", + "type": "string" + }, + "sharedSecretHash": { + "description": "Hash of the shared secret.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the VPN tunnel, which can be one of the following: - PROVISIONING: Resource is being allocated for the VPN tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful first handshake with the peer VPN. - ESTABLISHED: Secure session is successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - DEPROVISIONING: Resources are being deallocated for the VPN tunnel. - FAILED: Tunnel creation has failed and the tunnel is not ready to be used. - NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel configuration was rejected, can be result of being denied access. - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources. - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state. - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed for an HA-VPN tunnel. ", + "type": "string", + "enumDescriptions": [ + "Cloud VPN is in the process of allocating all required resources (specifically, a borg task).", + "Auth error (e.g. bad shared secret).", + "Resources is being deallocated for the VPN tunnel.", + "Secure session is successfully established with peer VPN.", + "Tunnel creation has failed and the tunnel is not ready to be used.", + "Successful first handshake with peer VPN.", + "Handshake failed.", + "Deprecated, replaced by NO_INCOMING_PACKETS", + "No incoming packets from peer", + "Resource is being allocated for the VPN tunnel.", + "Tunnel configuration was rejected, can be result of being denylisted.", + "Tunnel is stopped due to its Forwarding Rules being deleted.", + "Waiting to receive all VPN-related configs from user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route resources are needed to setup VPN tunnel." ], - "description": "Returns the specified VpnTunnel resource." + "enum": [ + "ALLOCATING_RESOURCES", + "AUTHORIZATION_ERROR", + "DEPROVISIONING", + "ESTABLISHED", + "FAILED", + "FIRST_HANDSHAKE", + "NEGOTIATION_FAILURE", + "NETWORK_ERROR", + "NO_INCOMING_PACKETS", + "PROVISIONING", + "REJECTED", + "STOPPED", + "WAITING_FOR_FULL_CONFIG" + ] }, - "insert": { - "id": "compute.vpnTunnels.insert", - "path": "projects/{project}/regions/{region}/vpnTunnels", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "ikeVersion": { + "description": "IKE protocol version to use when establishing the VPN tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2. The default version is 2.", + "type": "integer", + "format": "int32" + }, + "detailedStatus": { + "description": "[Output Only] Detailed status message for the VPN tunnel.", + "type": "string" + }, + "localTrafficSelector": { + "description": "Local traffic selector to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported.", + "type": "array", + "items": { + "type": "string" + } + }, + "remoteTrafficSelector": { + "description": "Remote traffic selectors to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.", + "type": "array", + "items": { + "type": "string" + } + }, + "labels": { + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.", + "type": "string", + "format": "byte" + } + } + }, + "VpnTunnelAggregatedList": { + "id": "VpnTunnelAggregatedList", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "default": "compute#vpnTunnelAggregatedList", + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of VpnTunnelsScopedList resources.", + "type": "object", + "additionalProperties": { + "description": "Name of the scope containing this set of VPN tunnels.", + "$ref": "VpnTunnelsScopedList" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "requestId": { - "description": "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).", - "location": "query", - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region" - ], - "request": { + } + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "VpnTunnelsScopedList": { + "id": "VpnTunnelsScopedList", + "type": "object", + "properties": { + "vpnTunnels": { + "description": "A list of VPN tunnels contained in this scope.", + "type": "array", + "items": { "$ref": "VpnTunnel" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request." + } }, - "delete": { - "id": "compute.vpnTunnels.delete", - "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "httpMethod": "DELETE", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "warning": { + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "vpnTunnel": { - "description": "Name of the VpnTunnel resource to delete.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "vpnTunnel" - ], - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Deletes the specified VpnTunnel resource." + } + } + } + }, + "ZoneList": { + "id": "ZoneList", + "description": "Contains a list of zone resources.", + "type": "object", + "properties": { + "kind": { + "description": "Type of resource.", + "default": "compute#zoneList", + "type": "string" }, - "setLabels": { - "id": "compute.vpnTunnels.setLabels", - "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "The region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Zone resources.", + "type": "array", + "items": { + "$ref": "Zone" + } + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] }, - "requestId": { - "description": "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).", - "location": "query", + "message": { + "description": "[Output Only] A human-readable description of the warning code.", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } } - }, - "parameterOrder": [ - "project", - "region", - "resource" - ], - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation." + } } } }, - "zones": { - "methods": { - "list": { - "id": "compute.zones.list", - "path": "projects/{project}/zones", - "flatPath": "projects/{project}/zones", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project" - ], - "response": { - "$ref": "ZoneList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of Zone resources available to the specified project." + "Zone": { + "id": "Zone", + "description": "Represents a Zone resource. A zone is a deployment area. These deployment areas are subsets of a region. For example the zone us-east1-a is located in the us-east1 region. For more information, read Regions and Zones.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#zone for zones.", + "default": "compute#zone", + "type": "string" }, - "get": { - "id": "compute.zones.get", - "path": "projects/{project}/zones/{zone}", - "flatPath": "projects/{project}/zones/{zone}", - "httpMethod": "GET", - "parameters": { - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone resource to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone" - ], - "response": { - "$ref": "Zone" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "description": { + "description": "[Output Only] Textual description of the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] Status of the zone, either UP or DOWN.", + "type": "string", + "enumDescriptions": [ + "", + "" ], - "description": "Returns the specified Zone resource." + "enum": [ + "DOWN", + "UP" + ] + }, + "deprecated": { + "description": "[Output Only] The deprecation status associated with this zone.", + "$ref": "DeprecationStatus" + }, + "region": { + "description": "[Output Only] Full URL reference to the region which hosts the zone.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "availableCpuPlatforms": { + "description": "[Output Only] Available cpu/platform selections for the zone.", + "type": "array", + "items": { + "type": "string" + } + }, + "supportsPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" } } }, - "regionZones": { - "methods": { - "list": { - "id": "compute.regionZones.list", - "path": "projects/{project}/regions/{region}/zones", - "flatPath": "projects/{project}/regions/{region}/zones", - "httpMethod": "GET", - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "maxResults": { - "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", - "default": "500", - "minimum": "0", - "location": "query", - "type": "integer", - "format": "uint32" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", - "location": "query", - "type": "string" - }, - "pageToken": { - "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", - "location": "query", - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "location": "path", - "required": true, - "type": "string" - }, - "region": { - "description": "Region for this request.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "location": "path", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "parameterOrder": [ - "project", - "region" - ], - "response": { - "$ref": "ZoneList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ], - "description": "Retrieves the list of Zone resources under the specific region available to the specified project." + "AuditConfig": { + "id": "AuditConfig", + "description": "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.", + "type": "object", + "properties": { + "exemptedMembers": { + "description": "This is deprecated and has no effect. Do not use.", + "type": "array", + "items": { + "type": "string" + } + }, + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "type": "array", + "items": { + "$ref": "AuditLogConfig" + } + }, + "service": { + "description": "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.", + "type": "string" } } } }, - "ownerName": "Google", - "name": "compute" + "baseUrl": "https://compute.googleapis.com/compute/v1/", + "version": "v1" } diff --git a/third_party/googleapis/google/cloud/compute/v1/compute_gapic.yaml b/third_party/googleapis/google/cloud/compute/v1/compute_gapic.yaml index 43261bb26..369591bc4 100755 --- a/third_party/googleapis/google/cloud/compute/v1/compute_gapic.yaml +++ b/third_party/googleapis/google/cloud/compute/v1/compute_gapic.yaml @@ -14,7 +14,7 @@ # Generated by the disco-to-proto3-converter. DO NOT EDIT! # Source Discovery file: compute.v1.json -# Source file revision: 20240130 +# Source file revision: 20240430 # API name: compute # API version: v1 @@ -546,6 +546,26 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.InstanceGroupManagerResizeRequests + methods: + - name: Cancel + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: Delete + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: Insert + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: google.cloud.compute.v1.InstanceGroupManagers methods: - name: AbandonInstances @@ -664,6 +684,14 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.InstanceSettingsService + methods: + - name: Patch + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: google.cloud.compute.v1.InstanceTemplates methods: - name: Delete @@ -890,6 +918,26 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.InstantSnapshots + methods: + - name: Delete + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: Insert + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: SetLabels + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: google.cloud.compute.v1.InterconnectAttachments methods: - name: Delete @@ -1168,6 +1216,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: PerformMaintenance + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: SetNodeTemplate long_running: initial_poll_delay_millis: 500 @@ -1252,6 +1306,12 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 + - name: SetCloudArmorTier + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: SetCommonInstanceMetadata long_running: initial_poll_delay_millis: 500 @@ -1642,6 +1702,26 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.RegionInstantSnapshots + methods: + - name: Delete + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: Insert + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: SetLabels + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: google.cloud.compute.v1.RegionNetworkEndpointGroups methods: - name: AttachNetworkEndpoints @@ -2114,6 +2194,26 @@ interfaces: poll_delay_multiplier: 1.5 max_poll_delay_millis: 20000 total_poll_timeout_millis: 600000 +- name: google.cloud.compute.v1.StoragePools + methods: + - name: Delete + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: Insert + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 + - name: Update + long_running: + initial_poll_delay_millis: 500 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 20000 + total_poll_timeout_millis: 600000 - name: google.cloud.compute.v1.Subnetworks methods: - name: Delete diff --git a/third_party/googleapis/google/cloud/compute/v1/compute_grpc_service_config.json b/third_party/googleapis/google/cloud/compute/v1/compute_grpc_service_config.json index fd3c57c44..34237b814 100755 --- a/third_party/googleapis/google/cloud/compute/v1/compute_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/compute/v1/compute_grpc_service_config.json @@ -174,6 +174,12 @@ }, { "service" : "google.cloud.compute.v1.Images", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.InstanceGroupManagerResizeRequests", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.InstanceGroupManagerResizeRequests", + "method" : "List" }, { "service" : "google.cloud.compute.v1.InstanceGroupManagers", "method" : "AggregatedList" @@ -195,6 +201,9 @@ }, { "service" : "google.cloud.compute.v1.InstanceGroups", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.InstanceSettingsService", + "method" : "Get" }, { "service" : "google.cloud.compute.v1.InstanceTemplates", "method" : "AggregatedList" @@ -237,6 +246,18 @@ }, { "service" : "google.cloud.compute.v1.Instances", "method" : "ListReferrers" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "AggregatedList" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "GetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "List" }, { "service" : "google.cloud.compute.v1.InterconnectAttachments", "method" : "AggregatedList" @@ -495,6 +516,15 @@ }, { "service" : "google.cloud.compute.v1.RegionInstanceTemplates", "method" : "List" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "GetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "List" }, { "service" : "google.cloud.compute.v1.RegionNetworkEndpointGroups", "method" : "Get" @@ -696,6 +726,30 @@ }, { "service" : "google.cloud.compute.v1.SslPolicies", "method" : "ListAvailableFeatures" + }, { + "service" : "google.cloud.compute.v1.StoragePoolTypes", + "method" : "AggregatedList" + }, { + "service" : "google.cloud.compute.v1.StoragePoolTypes", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.StoragePoolTypes", + "method" : "List" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "AggregatedList" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "Get" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "GetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "List" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "ListDisks" }, { "service" : "google.cloud.compute.v1.Subnetworks", "method" : "AggregatedList" @@ -1122,6 +1176,15 @@ }, { "service" : "google.cloud.compute.v1.Images", "method" : "TestIamPermissions" + }, { + "service" : "google.cloud.compute.v1.InstanceGroupManagerResizeRequests", + "method" : "Cancel" + }, { + "service" : "google.cloud.compute.v1.InstanceGroupManagerResizeRequests", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.InstanceGroupManagerResizeRequests", + "method" : "Insert" }, { "service" : "google.cloud.compute.v1.InstanceGroupManagers", "method" : "AbandonInstances" @@ -1188,6 +1251,9 @@ }, { "service" : "google.cloud.compute.v1.InstanceGroups", "method" : "SetNamedPorts" + }, { + "service" : "google.cloud.compute.v1.InstanceSettingsService", + "method" : "Patch" }, { "service" : "google.cloud.compute.v1.InstanceTemplates", "method" : "Delete" @@ -1314,6 +1380,21 @@ }, { "service" : "google.cloud.compute.v1.Instances", "method" : "UpdateShieldedInstanceConfig" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "SetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "SetLabels" + }, { + "service" : "google.cloud.compute.v1.InstantSnapshots", + "method" : "TestIamPermissions" }, { "service" : "google.cloud.compute.v1.InterconnectAttachments", "method" : "Delete" @@ -1479,6 +1560,9 @@ }, { "service" : "google.cloud.compute.v1.NodeGroups", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.NodeGroups", + "method" : "PerformMaintenance" }, { "service" : "google.cloud.compute.v1.NodeGroups", "method" : "SetIamPolicy" @@ -1536,6 +1620,9 @@ }, { "service" : "google.cloud.compute.v1.Projects", "method" : "MoveInstance" + }, { + "service" : "google.cloud.compute.v1.Projects", + "method" : "SetCloudArmorTier" }, { "service" : "google.cloud.compute.v1.Projects", "method" : "SetCommonInstanceMetadata" @@ -1743,6 +1830,21 @@ }, { "service" : "google.cloud.compute.v1.RegionInstances", "method" : "BulkInsert" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "SetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "SetLabels" + }, { + "service" : "google.cloud.compute.v1.RegionInstantSnapshots", + "method" : "TestIamPermissions" }, { "service" : "google.cloud.compute.v1.RegionNetworkEndpointGroups", "method" : "AttachNetworkEndpoints" @@ -2004,6 +2106,21 @@ }, { "service" : "google.cloud.compute.v1.SslPolicies", "method" : "Patch" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "Delete" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "Insert" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "SetIamPolicy" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "TestIamPermissions" + }, { + "service" : "google.cloud.compute.v1.StoragePools", + "method" : "Update" }, { "service" : "google.cloud.compute.v1.Subnetworks", "method" : "Delete" diff --git a/third_party/googleapis/google/cloud/confidentialcomputing/v1/BUILD.bazel b/third_party/googleapis/google/cloud/confidentialcomputing/v1/BUILD.bazel index a87fdb489..8d741c733 100644 --- a/third_party/googleapis/google/cloud/confidentialcomputing/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/confidentialcomputing/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "confidentialcomputing_proto", @@ -45,6 +48,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -73,8 +77,8 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1.yaml", test_deps = [ - "//google/cloud/location:location_java_grpc", ":confidentialcomputing_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ @@ -109,6 +113,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -158,6 +163,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -197,6 +203,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -213,7 +220,7 @@ php_gapic_library( name = "confidentialcomputing_php_gapic", srcs = [":confidentialcomputing_proto_with_info"], grpc_service_config = "confidentialcomputing_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1.yaml", transport = "grpc+rest", @@ -234,6 +241,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -264,6 +272,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -310,6 +319,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -336,6 +346,7 @@ csharp_gapic_library( grpc_service_config = "confidentialcomputing_v1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1.yaml", + transport = "grpc+rest", deps = [ ":confidentialcomputing_csharp_grpc", ":confidentialcomputing_csharp_proto", @@ -355,6 +366,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/confidentialcomputing/v1/service.proto b/third_party/googleapis/google/cloud/confidentialcomputing/v1/service.proto index ab348807f..89e6a2394 100644 --- a/third_party/googleapis/google/cloud/confidentialcomputing/v1/service.proto +++ b/third_party/googleapis/google/cloud/confidentialcomputing/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -79,6 +79,12 @@ enum TokenType { // OpenID Connect (OIDC) token type TOKEN_TYPE_OIDC = 1; + + // Public Key Infrastructure (PKI) token type + TOKEN_TYPE_PKI = 2; + + // Limited claim token type for AWS integration + TOKEN_TYPE_LIMITED_AWS = 3; } // A Challenge from the server used to guarantee freshness of attestations @@ -127,6 +133,17 @@ message CreateChallengeRequest { // A request for an OIDC token, providing all the necessary information needed // for this service to verify the plaform state of the requestor. message VerifyAttestationRequest { + // An optional tee attestation report, used to populate hardware rooted + // claims. + oneof tee_attestation { + // Optional. A TDX with CCEL and RTMR Attestation Quote. + TdxCcelAttestation td_ccel = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An SEV-SNP Attestation Report. + SevSnpAttestation sev_snp_attestation = 7 + [(google.api.field_behavior) = OPTIONAL]; + } + // 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. @@ -154,6 +171,41 @@ message VerifyAttestationRequest { TokenOptions token_options = 5 [(google.api.field_behavior) = OPTIONAL]; } +// A TDX Attestation quote. +message TdxCcelAttestation { + // Optional. The Confidential Computing Event Log (CCEL) ACPI table. Formatted + // as described in the ACPI Specification 6.5. + bytes ccel_acpi_table = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The CCEL event log. Formatted as described in the UEFI 2.10. + bytes ccel_data = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An Event Log containing additional events measured into the RTMR + // that are not already present in the CCEL. + bytes canonical_event_log = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The TDX attestation quote from the guest. It contains the RTMR + // values. + bytes td_quote = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// An SEV-SNP Attestation Report. +// Contains the attestation report and the certificate bundle that the client +// collects. +message SevSnpAttestation { + // Optional. The SEV-SNP Attestation Report + // Format is in revision 1.55, §7.3 Attestation, Table 22. ATTESTATION_REPORT + // Structure in this document: + // https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf + bytes report = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Certificate bundle defined in the GHCB protocol definition + // Format is documented in GHCB revision 2.03, section 4.1.8.1 struct + // cert_table in this document: + // https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56421.pdf + bytes aux_blob = 2 [(google.api.field_behavior) = OPTIONAL]; +} + // A response once an attestation has been successfully verified, containing a // signed OIDC token. message VerifyAttestationResponse { diff --git a/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/BUILD.bazel b/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/BUILD.bazel index 150129e86..bcdde9dac 100644 --- a/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "confidentialcomputing_proto", @@ -44,6 +47,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -108,6 +112,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -156,6 +161,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -170,7 +176,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1alpha1.yaml", transport = "grpc+rest", - deps = [], + deps = [ + ], ) py_test( @@ -194,6 +201,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -210,10 +218,13 @@ php_gapic_library( name = "confidentialcomputing_php_gapic", srcs = [":confidentialcomputing_proto_with_info"], grpc_service_config = "confidentialcomputing_v1alpha1_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1alpha1.yaml", transport = "grpc+rest", - deps = [":confidentialcomputing_php_proto"], + deps = [ + ":confidentialcomputing_php_proto", + ], ) # Open Source Packages @@ -228,6 +239,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -258,6 +270,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -280,12 +293,11 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "confidentialcomputing_ruby_gapic", srcs = [":confidentialcomputing_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-confidentialcomputing-v1alpha1", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-confidentialcomputing-v1alpha1"], grpc_service_config = "confidentialcomputing_v1alpha1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1alpha1.yaml", + transport = "grpc+rest", deps = [ ":confidentialcomputing_ruby_grpc", ":confidentialcomputing_ruby_proto", @@ -305,6 +317,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -331,6 +344,7 @@ csharp_gapic_library( grpc_service_config = "confidentialcomputing_v1alpha1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "confidentialcomputing_v1alpha1.yaml", + transport = "grpc+rest", deps = [ ":confidentialcomputing_csharp_grpc", ":confidentialcomputing_csharp_proto", @@ -350,6 +364,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/service.proto b/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/service.proto index 89b4db4c2..c6d3dbee5 100644 --- a/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/service.proto +++ b/third_party/googleapis/google/cloud/confidentialcomputing/v1alpha1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/config/v1/BUILD.bazel b/third_party/googleapis/google/cloud/config/v1/BUILD.bazel index 316aaf162..164820f0f 100644 --- a/third_party/googleapis/google/cloud/config/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/config/v1/BUILD.bazel @@ -142,7 +142,7 @@ go_gapic_library( grpc_service_config = None, importpath = "cloud.google.com/go/config/apiv1;config", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "config_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/config/v1/config.proto b/third_party/googleapis/google/cloud/config/v1/config.proto index 4d037555c..9bafe34a2 100644 --- a/third_party/googleapis/google/cloud/config/v1/config.proto +++ b/third_party/googleapis/google/cloud/config/v1/config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,16 +16,16 @@ syntax = "proto3"; package google.cloud.config.v1; -import "google/longrunning/operations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/field_mask.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/field_info.proto"; import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.Config.V1"; @@ -268,6 +268,43 @@ service Config { body: "*" }; } + + // Lists [TerraformVersion][google.cloud.config.v1.TerraformVersion]s in a + // given project and location. + rpc ListTerraformVersions(ListTerraformVersionsRequest) + returns (ListTerraformVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/terraformVersions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details about a + // [TerraformVersion][google.cloud.config.v1.TerraformVersion]. + rpc GetTerraformVersion(GetTerraformVersionRequest) + returns (TerraformVersion) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/terraformVersions/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Enum values to control quota checks for resources in terraform +// configuration files. +enum QuotaValidation { + // The default value. + // QuotaValidation on terraform configuration files will be disabled in + // this case. + QUOTA_VALIDATION_UNSPECIFIED = 0; + + // Enable computing quotas for resources in terraform configuration files to + // get visibility on resources with insufficient quotas. + ENABLED = 1; + + // Enforce quota checks so deployment fails if there isn't sufficient quotas + // available to deploy resources in terraform configuration files. + ENFORCED = 2; } // A Deployment is a group of resources and configs managed and provisioned by @@ -459,6 +496,27 @@ message Deployment { // Output only. Current lock state of the deployment. LockState lock_state = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The user-specified Terraform version constraint. + // Example: "=1.3.10". + optional string tf_version_constraint = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current Terraform version set on the deployment. + // It is in the format of "Major.Minor.Patch", for example, "1.3.10". + string tf_version = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Input to control quota checks for resources in terraform + // configuration files. There are limited resources on which quota validation + // applies. + QuotaValidation quota_validation = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Arbitrary key-value metadata storage e.g. to help client tools + // identify deployments during automation. See + // https://google.aip.dev/148#annotations for details on format and size + // limitations. + map annotations = 24 [(google.api.field_behavior) = OPTIONAL]; } // TerraformBlueprint describes the source of a Terraform root module which @@ -523,8 +581,8 @@ message ListDeploymentsRequest { ]; // When requesting a page of resources, 'page_size' specifies number of - // resources to return. If unspecified or set to 0, all resources will be - // returned. + // resources to return. If unspecified, at most 500 will be returned. The + // maximum value is 1000. int32 page_size = 2; // Token returned by previous call to 'ListDeployments' which specifies the @@ -594,8 +652,8 @@ message ListRevisionsRequest { ]; // When requesting a page of resources, `page_size` specifies number of - // resources to return. If unspecified or set to 0, all resources will be - // returned. + // resources to return. If unspecified, at most 500 will be returned. The + // maximum value is 1000. int32 page_size = 2; // Token returned by previous call to 'ListRevisions' which specifies the @@ -863,6 +921,10 @@ message Revision { // Cloud Build job associated with creating or updating a deployment was // started but failed. APPLY_BUILD_RUN_FAILED = 5; + + // quota validation failed for one or more resources in terraform + // configuration files. + QUOTA_VALIDATION_FAILED = 7; } // Blueprint that was deployed. @@ -949,6 +1011,26 @@ message Revision { type: "cloudbuild.googleapis.com/WorkerPool" } ]; + + // Output only. The user-specified Terraform version constraint. + // Example: "=1.3.10". + string tf_version_constraint = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The version of Terraform used to create the Revision. + // It is in the format of "Major.Minor.Patch", for example, "1.3.10". + string tf_version = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cloud Storage path containing quota validation results. This + // field is set when a user sets Deployment.quota_validation field to ENABLED + // or ENFORCED. Format: `gs://{bucket}/{object}`. + string quota_validation_results = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Input to control quota checks for resources in terraform + // configuration files. There are limited resources on which quota validation + // applies. + QuotaValidation quota_validation = 20 + [(google.api.field_behavior) = OPTIONAL]; } // Errors encountered during actuation using Terraform @@ -1020,6 +1102,12 @@ message DeploymentOperationMetadata { // Operation failed FAILED = 10; + + // Validating the provided repository. + VALIDATING_REPOSITORY = 11; + + // Running quota validation + RUNNING_QUOTA_VALIDATION = 12; } // The current step the deployment operation is running. @@ -1147,8 +1235,8 @@ message ListResourcesRequest { ]; // When requesting a page of resources, 'page_size' specifies number of - // resources to return. If unspecified or set to 0, all resources will be - // returned. + // resources to return. If unspecified, at most 500 will be returned. The + // maximum value is 1000. int32 page_size = 2; // Token returned by previous call to 'ListResources' which specifies the @@ -1433,9 +1521,9 @@ message Preview { // Optional. Current mode of preview. PreviewMode preview_mode = 15 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Optional service account. If omitted, the deployment resource - // reference must be provided, and the service account attached to the - // deployment will be used. + // Optional. User-specified Service Account (SA) credentials to be used when + // previewing resources. + // Format: `projects/{projectID}/serviceAccounts/{serviceAccount}` string service_account = 7 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -1495,6 +1583,15 @@ message Preview { // Output only. Location of preview logs in `gs://{bucket}/{object}` format. string logs = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current Terraform version set on the preview. + // It is in the format of "Major.Minor.Patch", for example, "1.3.10". + string tf_version = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The user-specified Terraform version constraint. + // Example: "=1.3.10". + optional string tf_version_constraint = 19 + [(google.api.field_behavior) = OPTIONAL]; } // Ephemeral metadata content describing the state of a preview operation. @@ -1531,6 +1628,9 @@ message PreviewOperationMetadata { // Operation failed. FAILED = 9; + + // Validating the provided repository. + VALIDATING_REPOSITORY = 10; } // The current step the preview operation is running. @@ -1615,8 +1715,8 @@ message ListPreviewsRequest { ]; // Optional. When requesting a page of resources, 'page_size' specifies number - // of resources to return. If unspecified or set to 0, all resources will be - // returned. + // of resources to return. If unspecified, at most 500 will be returned. The + // maximum value is 1000. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Token returned by previous call to 'ListDeployments' which @@ -1717,3 +1817,109 @@ message PreviewResult { // Output only. Plan JSON signed URL string json_signed_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// The request message for the GetTerraformVersion method. +message GetTerraformVersionRequest { + // Required. The name of the TerraformVersion. Format: + // 'projects/{project_id}/locations/{location}/terraformVersions/{terraform_version}' + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "config.googleapis.com/TerraformVersion" + } + ]; +} + +// The request message for the ListTerraformVersions method. +message ListTerraformVersionsRequest { + // Required. The parent in whose context the TerraformVersions are listed. The + // parent value is in the format: + // 'projects/{project_id}/locations/{location}'. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. When requesting a page of resources, 'page_size' specifies number + // of resources to return. If unspecified, at most 500 will be returned. The + // maximum value is 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Token returned by previous call to 'ListTerraformVersions' which + // specifies the position in the list from where to continue listing the + // resources. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Lists the TerraformVersions that match the filter expression. A + // filter expression filters the resources listed in the response. The + // expression must be of the form '{field} {operator} {value}' where + // operators: '<', '>', + // '<=', '>=', '!=', '=', ':' are supported (colon ':' represents a HAS + // operator which is roughly synonymous with equality). {field} can refer to a + // proto or JSON field, or a synthetic field. Field names can be camelCase or + // snake_case. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Field to use to sort the list. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for the `ListTerraformVersions` method. +message ListTerraformVersionsResponse { + // List of [TerraformVersion][google.cloud.config.v1.TerraformVersion]s. + repeated TerraformVersion terraform_versions = 1; + + // Token to be supplied to the next ListTerraformVersions request via + // `page_token` to obtain the next set of results. + string next_page_token = 2; + + // Unreachable resources, if any. + repeated string unreachable = 3; +} + +// A TerraformVersion represents the support state the corresponding +// Terraform version. +message TerraformVersion { + option (google.api.resource) = { + type: "config.googleapis.com/TerraformVersion" + pattern: "projects/{project}/locations/{location}/terraformVersions/{terraform_version}" + plural: "terraformVersions" + singular: "terraformVersion" + }; + + // Possible states of a TerraformVersion. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The version is actively supported. + ACTIVE = 1; + + // The version is deprecated. + DEPRECATED = 2; + + // The version is obsolete. + OBSOLETE = 3; + } + + // Identifier. The version name is in the format: + // 'projects/{project_id}/locations/{location}/terraformVersions/{terraform_version}'. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The state of the version, ACTIVE, DEPRECATED or OBSOLETE. + State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the version is supported. + google.protobuf.Timestamp support_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the version is deprecated. + optional google.protobuf.Timestamp deprecate_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the version is obsolete. + optional google.protobuf.Timestamp obsolete_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/connectors/BUILD.bazel b/third_party/googleapis/google/cloud/connectors/BUILD.bazel new file mode 100644 index 000000000..d078e76d0 --- /dev/null +++ b/third_party/googleapis/google/cloud/connectors/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-connectors. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for connectors. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "connectors_ruby_wrapper", + srcs = ["//google/cloud/connectors/v1:connectors_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-connectors", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/connectors/v1:connectors_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-connectors-ruby", + deps = [ + ":connectors_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/connectors/v1/authconfig.proto b/third_party/googleapis/google/cloud/connectors/v1/authconfig.proto index d7ef19b4e..0802397ab 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/authconfig.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/authconfig.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/common.proto b/third_party/googleapis/google/cloud/connectors/v1/common.proto index 64efe8693..9834453b6 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/common.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/connection.proto b/third_party/googleapis/google/cloud/connectors/v1/connection.proto index 16fd258b3..6fed760df 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/connection.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/connector.proto b/third_party/googleapis/google/cloud/connectors/v1/connector.proto index 0aeb357c6..4398169d0 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/connector.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/connector.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/connector_version.proto b/third_party/googleapis/google/cloud/connectors/v1/connector_version.proto index 00c8c6036..5e43da73d 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/connector_version.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/connector_version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/connectors_service.proto b/third_party/googleapis/google/cloud/connectors/v1/connectors_service.proto index 2f1d3e033..fc93dd0fa 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/connectors_service.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/connectors_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/destination_config.proto b/third_party/googleapis/google/cloud/connectors/v1/destination_config.proto index b8a266588..5c946b5fe 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/destination_config.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/destination_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/provider.proto b/third_party/googleapis/google/cloud/connectors/v1/provider.proto index 6f908a456..e24acaa21 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/provider.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/provider.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/runtime.proto b/third_party/googleapis/google/cloud/connectors/v1/runtime.proto index 804082462..64b5a41e4 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/runtime.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/runtime.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/settings.proto b/third_party/googleapis/google/cloud/connectors/v1/settings.proto index 31879187d..74d960fe6 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/settings.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/connectors/v1/ssl_config.proto b/third_party/googleapis/google/cloud/connectors/v1/ssl_config.proto index cc4ae3707..656e9fbe2 100644 --- a/third_party/googleapis/google/cloud/connectors/v1/ssl_config.proto +++ b/third_party/googleapis/google/cloud/connectors/v1/ssl_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contactcenterinsights/v1/contact_center_insights.proto b/third_party/googleapis/google/cloud/contactcenterinsights/v1/contact_center_insights.proto index 99153b820..59a3e9486 100644 --- a/third_party/googleapis/google/cloud/contactcenterinsights/v1/contact_center_insights.proto +++ b/third_party/googleapis/google/cloud/contactcenterinsights/v1/contact_center_insights.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contactcenterinsights/v1/resources.proto b/third_party/googleapis/google/cloud/contactcenterinsights/v1/resources.proto index 92459e1bb..a8011eb3f 100644 --- a/third_party/googleapis/google/cloud/contactcenterinsights/v1/resources.proto +++ b/third_party/googleapis/google/cloud/contactcenterinsights/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/async_document_service_request.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/async_document_service_request.proto index 3903ba614..7df5d10bb 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/async_document_service_request.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/async_document_service_request.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/common.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/common.proto index 4164c7979..8588394cc 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/common.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/document.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/document.proto index 5355e9767..ae9f46ba1 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/document.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_link_service.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_link_service.proto index e2e1c7166..83f544bf3 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_link_service.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema.proto index bc9b0a9e6..15c5a0562 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema_service.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema_service.proto index a396ee416..c70c48220 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema_service.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_schema_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service.proto index d710a36b0..947b5df4f 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service_request.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service_request.proto index 94c9259e5..9b685308d 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service_request.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/document_service_request.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/filters.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/filters.proto index cd490a990..25e389f77 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/filters.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/filters.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/histogram.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/histogram.proto index 9a25872f7..91fcda281 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/histogram.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/histogram.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/pipeline_service.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/pipeline_service.proto index 78f477f7f..30ebcebc9 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/pipeline_service.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/pipeline_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/pipelines.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/pipelines.proto index db34b5c6d..1ecfa43a1 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/pipelines.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/pipelines.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/rule_engine.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/rule_engine.proto index 9cf5a3da8..88aeb87fc 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/rule_engine.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/rule_engine.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service.proto index dc9d1f801..78d070bb2 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service_request.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service_request.proto index 10a9154ef..55074bde0 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service_request.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/ruleset_service_request.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset.proto index 4ffbbe0a4..9290a0947 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service.proto index 697abf6ad..ed61b7f25 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service_request.proto b/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service_request.proto index 257e07d1a..fa746dafd 100644 --- a/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service_request.proto +++ b/third_party/googleapis/google/cloud/contentwarehouse/v1/synonymset_service_request.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/lineage/v1/BUILD.bazel b/third_party/googleapis/google/cloud/datacatalog/lineage/v1/BUILD.bazel index 7796a1835..ac6047816 100644 --- a/third_party/googleapis/google/cloud/datacatalog/lineage/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/datacatalog/lineage/v1/BUILD.bazel @@ -220,7 +220,7 @@ php_gapic_library( name = "lineage_php_gapic", srcs = [":lineage_proto_with_info"], grpc_service_config = "lineage_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = False, service_yaml = "datalineage_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/datacatalog/lineage/v1/lineage.proto b/third_party/googleapis/google/cloud/datacatalog/lineage/v1/lineage.proto index 3ec3ceed1..740894ee0 100644 --- a/third_party/googleapis/google/cloud/datacatalog/lineage/v1/lineage.proto +++ b/third_party/googleapis/google/cloud/datacatalog/lineage/v1/lineage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/bigquery.proto b/third_party/googleapis/google/cloud/datacatalog/v1/bigquery.proto index 72088e8f4..2c673aaa2 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/bigquery.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/bigquery.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/common.proto b/third_party/googleapis/google/cloud/datacatalog/v1/common.proto index bb3ec486b..b7b9f7e65 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/common.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/data_source.proto b/third_party/googleapis/google/cloud/datacatalog/v1/data_source.proto index d026379ad..05aa0a473 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/data_source.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/data_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/datacatalog.proto b/third_party/googleapis/google/cloud/datacatalog/v1/datacatalog.proto index 9c6452db2..d229b7954 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/datacatalog.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/datacatalog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/dataplex_spec.proto b/third_party/googleapis/google/cloud/datacatalog/v1/dataplex_spec.proto index 961f452af..087470ec7 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/dataplex_spec.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/dataplex_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/dump_content.proto b/third_party/googleapis/google/cloud/datacatalog/v1/dump_content.proto index 0d01faec2..8b090e28c 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/dump_content.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/dump_content.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/gcs_fileset_spec.proto b/third_party/googleapis/google/cloud/datacatalog/v1/gcs_fileset_spec.proto index 7dba877c1..7fc9e9b84 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/gcs_fileset_spec.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/gcs_fileset_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/physical_schema.proto b/third_party/googleapis/google/cloud/datacatalog/v1/physical_schema.proto index d1bfe6a3b..364e40834 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/physical_schema.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/physical_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanager.proto b/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanager.proto index 9928af467..251e0b4c3 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanager.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanager.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanagerserialization.proto b/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanagerserialization.proto index 865cf19dc..c9d5e8c05 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanagerserialization.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/policytagmanagerserialization.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/schema.proto b/third_party/googleapis/google/cloud/datacatalog/v1/schema.proto index 559f38921..b72c0939f 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/schema.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -83,6 +83,13 @@ message ColumnSchema { LookerColumnType type = 1; } + // Represents the type of a field element. + message FieldElementType { + // Required. The type of a field element. See + // [ColumnSchema.type][google.cloud.datacatalog.v1.ColumnSchema.type]. + string type = 1 [(google.api.field_behavior) = REQUIRED]; + } + // Required. Name of the column. // // Must be a UTF-8 string without dots (.). @@ -127,6 +134,15 @@ message ColumnSchema { LookerColumnSpec looker_column_spec = 18; } + // Optional. The subtype of the RANGE, if the type of this field is RANGE. If + // the type is RANGE, this field is required. Possible values for the field + // element type of a RANGE include: + // * DATE + // * DATETIME + // * TIMESTAMP + FieldElementType range_element_type = 19 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Garbage collection policy for the column or column family. // Applies to systems like Cloud Bigtable. string gc_rule = 11 [(google.api.field_behavior) = OPTIONAL]; diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/search.proto b/third_party/googleapis/google/cloud/datacatalog/v1/search.proto index 13c719364..d6a7ea099 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/search.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/search.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/table_spec.proto b/third_party/googleapis/google/cloud/datacatalog/v1/table_spec.proto index d570beecc..9fc326efe 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/table_spec.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/table_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/tags.proto b/third_party/googleapis/google/cloud/datacatalog/v1/tags.proto index 2022df7ad..1c398d09b 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/tags.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/tags.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/timestamps.proto b/third_party/googleapis/google/cloud/datacatalog/v1/timestamps.proto index e9efe6797..658afa6cb 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/timestamps.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/timestamps.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1/usage.proto b/third_party/googleapis/google/cloud/datacatalog/v1/usage.proto index 5b5f2d08f..bb6470b56 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1/usage.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1/usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/common.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/common.proto index 586c03bca..d1b1ace72 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/common.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/datacatalog.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/datacatalog.proto index a07682575..88c213198 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/datacatalog.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/datacatalog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto index 3373d8858..b3a3e2eb7 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanager.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanager.proto index 02d64c375..2653f44e7 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanager.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanager.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanagerserialization.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanagerserialization.proto index ff652ff69..883afb698 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanagerserialization.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/policytagmanagerserialization.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_get_entry.test.yaml b/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_get_entry.test.yaml deleted file mode 100644 index 051b7f576..000000000 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_get_entry.test.yaml +++ /dev/null @@ -1,39 +0,0 @@ -test: - suites: - - name: Data Catalog v1beta1 Get Entry sample tests - setup: - - call: - sample: datacatalog_lookup_entry - params: - resource_name: - literal: //bigquery.googleapis.com/projects/bigquery-public-data/datasets/new_york_taxi_trips/tables/taxi_zone_geom - - extract_match: - pattern: projects/([\w-]+) - variable: project_id - - extract_match: - pattern: locations/([\w-]+) - variable: location_id - - extract_match: - pattern: entryGroups/(@[\w-]+|[\w-]+) - variable: entry_group_id - - extract_match: - pattern: entries/([\w-]+) - variable: entry_id - cases: - - name: Get Entry for a public BigQuery Table - spec: - - call: - sample: datacatalog_get_entry - params: - project_id: - variable: project_id - location_id: - variable: location_id - entry_group_id: - variable: entry_group_id - entry_id: - variable: entry_id - - assert_contains: - - literal: "Entry name: projects/bigquery-public-data" - - literal: "Entry type: TABLE" - - literal: "Linked resource: //bigquery.googleapis.com/projects/bigquery-public-data/datasets/new_york_taxi_trips/tables/taxi_zone_geom" diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_lookup_entry.test.yaml b/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_lookup_entry.test.yaml deleted file mode 100644 index e244cd70a..000000000 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_lookup_entry.test.yaml +++ /dev/null @@ -1,26 +0,0 @@ -test: - suites: - - name: Data Catalog v1beta1 Lookup Entry sample tests - cases: - - name: Lookup Entry for a public BigQuery Table - spec: - - call: - sample: datacatalog_lookup_entry - params: - resource_name: - literal: //bigquery.googleapis.com/projects/bigquery-public-data/datasets/new_york_taxi_trips/tables/taxi_zone_geom - - assert_contains: - - literal: "Entry name: projects/bigquery-public-data" - - literal: "Entry type: TABLE" - - literal: "Linked resource: //bigquery.googleapis.com/projects/bigquery-public-data/datasets/new_york_taxi_trips/tables/taxi_zone_geom" - - name: Lookup Entry for a public PubSub Topic - spec: - - call: - sample: datacatalog_lookup_entry - params: - resource_name: - literal: //pubsub.googleapis.com/projects/pubsub-public-data/topics/taxirides-realtime - - assert_contains: - - literal: "Entry name: projects/pubsub-public-data" - - literal: "Entry type: DATA_STREAM" - - literal: "Linked resource: //pubsub.googleapis.com/projects/pubsub-public-data/topics/taxirides-realtime" diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_lookup_entry_sql_resource.test.yaml b/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_lookup_entry_sql_resource.test.yaml deleted file mode 100644 index 36e50eead..000000000 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_lookup_entry_sql_resource.test.yaml +++ /dev/null @@ -1,26 +0,0 @@ -test: - suites: - - name: Data Catalog v1beta1 Lookup Entry by SQL Resource sample tests - cases: - - name: Lookup Entry for a public BigQuery Table - spec: - - call: - sample: datacatalog_lookup_entry_sql_resource - params: - sql_name: - literal: bigquery.table.\`bigquery-public-data\`.new_york_taxi_trips.taxi_zone_geom - - assert_contains: - - literal: "Entry name: projects/bigquery-public-data" - - literal: "Entry type: TABLE" - - literal: "Linked resource: //bigquery.googleapis.com/projects/bigquery-public-data/datasets/new_york_taxi_trips/tables/taxi_zone_geom" - - name: Lookup Entry for a public PubSub Topic - spec: - - call: - sample: datacatalog_lookup_entry_sql_resource - params: - sql_name: - literal: pubsub.topic.\`pubsub-public-data\`.\`taxirides-realtime\` - - assert_contains: - - literal: "Entry name: projects/pubsub-public-data" - - literal: "Entry type: DATA_STREAM" - - literal: "Linked resource: //pubsub.googleapis.com/projects/pubsub-public-data/topics/taxirides-realtime" diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_search.test.yaml b/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_search.test.yaml deleted file mode 100644 index 7877a0363..000000000 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/samples/datacatalog_search.test.yaml +++ /dev/null @@ -1,25 +0,0 @@ -test: - suites: - - name: Data Catalog v1beta1 Search sample tests - setup: - # Get project ID from environment variable. - - env: - name: GOOGLE_PROJECT_ID - variable: project_id - cases: - - name: Search Catalog - spec: - - call: - sample: datacatalog_search - params: - include_project_id: - variable: project_id - include_gcp_public_datasets: - literal: "true" - query: - literal: "system=bigquery type=dataset name:trips" - - assert_contains: - - literal: "Result type: ENTRY" - - literal: "Result subtype: entry.dataset" - - literal: "Relative resource name: projects/bigquery-public-data" - - literal: "Linked resource: //bigquery.googleapis.com/projects/bigquery-public-data/datasets" diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/schema.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/schema.proto index 1620a6444..a67d2fef8 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/schema.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/search.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/search.proto index 64a2465eb..004a49aa4 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/search.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/search.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/table_spec.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/table_spec.proto index 9f76d8998..9c4f31b34 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/table_spec.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/table_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/tags.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/tags.proto index fa6b40789..95a234ffe 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/tags.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/tags.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/timestamps.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/timestamps.proto index 4f10cc7e2..2bdc66c68 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/timestamps.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/timestamps.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datacatalog/v1beta1/usage.proto b/third_party/googleapis/google/cloud/datacatalog/v1beta1/usage.proto index 9e4413ae9..3a683756c 100644 --- a/third_party/googleapis/google/cloud/datacatalog/v1beta1/usage.proto +++ b/third_party/googleapis/google/cloud/datacatalog/v1beta1/usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataform/logging/v1/logging.proto b/third_party/googleapis/google/cloud/dataform/logging/v1/logging.proto index 7d4c8e66c..9ab9b2a78 100644 --- a/third_party/googleapis/google/cloud/dataform/logging/v1/logging.proto +++ b/third_party/googleapis/google/cloud/dataform/logging/v1/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataform/v1alpha2/dataform.proto b/third_party/googleapis/google/cloud/dataform/v1alpha2/dataform.proto index 6547cba48..f3c8a84a9 100644 --- a/third_party/googleapis/google/cloud/dataform/v1alpha2/dataform.proto +++ b/third_party/googleapis/google/cloud/dataform/v1alpha2/dataform.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataform/v1beta1/dataform.proto b/third_party/googleapis/google/cloud/dataform/v1beta1/dataform.proto index afdf70787..479f3682f 100644 --- a/third_party/googleapis/google/cloud/dataform/v1beta1/dataform.proto +++ b/third_party/googleapis/google/cloud/dataform/v1beta1/dataform.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datafusion/v1/BUILD.bazel b/third_party/googleapis/google/cloud/datafusion/v1/BUILD.bazel index f3b095539..718712239 100644 --- a/third_party/googleapis/google/cloud/datafusion/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/datafusion/v1/BUILD.bazel @@ -216,7 +216,7 @@ php_gapic_library( name = "datafusion_php_gapic", srcs = [":datafusion_proto_with_info"], grpc_service_config = "datafusion_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "datafusion_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/datafusion/v1/datafusion.proto b/third_party/googleapis/google/cloud/datafusion/v1/datafusion.proto index 9cbaaf97e..d3eeb3c4c 100644 --- a/third_party/googleapis/google/cloud/datafusion/v1/datafusion.proto +++ b/third_party/googleapis/google/cloud/datafusion/v1/datafusion.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datafusion/v1beta1/v1beta1.proto b/third_party/googleapis/google/cloud/datafusion/v1beta1/v1beta1.proto index ef2c68579..9c120932a 100644 --- a/third_party/googleapis/google/cloud/datafusion/v1beta1/v1beta1.proto +++ b/third_party/googleapis/google/cloud/datafusion/v1beta1/v1beta1.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation.proto index fa8580551..409cc0e2a 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto index b4d67e476..f267a0caf 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/annotation_spec_set.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_labeling_service.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_labeling_service.proto index fc3b50c7e..edda06381 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_labeling_service.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_labeling_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_payloads.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_payloads.proto index 6d663486d..5db88116e 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_payloads.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/data_payloads.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/dataset.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/dataset.proto index 038bee18f..e4852772e 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/dataset.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation.proto index 557d7f727..48da0e583 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation_job.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation_job.proto index fc98544d5..5e47eade2 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation_job.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/evaluation_job.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/human_annotation_config.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/human_annotation_config.proto index 0b2b016c0..ab64d84c3 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/human_annotation_config.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/human_annotation_config.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/instruction.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/instruction.proto index 6227c7cfd..e407cd2b3 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/instruction.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/instruction.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datalabeling/v1beta1/operations.proto b/third_party/googleapis/google/cloud/datalabeling/v1beta1/operations.proto index a467dc3a6..afd49602a 100644 --- a/third_party/googleapis/google/cloud/datalabeling/v1beta1/operations.proto +++ b/third_party/googleapis/google/cloud/datalabeling/v1beta1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datapipelines/logging/v1/logging.proto b/third_party/googleapis/google/cloud/datapipelines/logging/v1/logging.proto index ea176786d..824bfed31 100644 --- a/third_party/googleapis/google/cloud/datapipelines/logging/v1/logging.proto +++ b/third_party/googleapis/google/cloud/datapipelines/logging/v1/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/BUILD.bazel b/third_party/googleapis/google/cloud/dataplex/v1/BUILD.bazel index 92b9604b8..8e3d4c28d 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/dataplex/v1/BUILD.bazel @@ -9,19 +9,23 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "dataplex_proto", srcs = [ "analyze.proto", + "catalog.proto", "content.proto", "data_profile.proto", "data_quality.proto", @@ -46,6 +50,7 @@ proto_library( "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -63,6 +68,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -91,9 +97,9 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "dataplex_v1.yaml", test_deps = [ + ":dataplex_java_grpc", "//google/cloud/location:location_java_grpc", "//google/iam/v1:iam_java_grpc", - ":dataplex_java_grpc", ], transport = "grpc+rest", deps = [ @@ -107,6 +113,8 @@ java_gapic_library( java_gapic_test( name = "dataplex_java_gapic_test_suite", test_classes = [ + "com.google.cloud.dataplex.v1.CatalogServiceClientHttpJsonTest", + "com.google.cloud.dataplex.v1.CatalogServiceClientTest", "com.google.cloud.dataplex.v1.ContentServiceClientHttpJsonTest", "com.google.cloud.dataplex.v1.ContentServiceClientTest", "com.google.cloud.dataplex.v1.DataScanServiceClientHttpJsonTest", @@ -137,6 +145,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -174,6 +183,7 @@ go_gapic_library( "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", "@io_bazel_rules_go//proto/wkt:duration_go_proto", + "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], ) @@ -192,6 +202,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -232,6 +243,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -248,7 +260,7 @@ php_gapic_library( name = "dataplex_php_gapic", srcs = [":dataplex_proto_with_info"], grpc_service_config = "dataplex_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "dataplex_v1.yaml", transport = "grpc+rest", @@ -269,6 +281,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -300,6 +313,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -353,6 +367,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -400,6 +415,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/dataplex/v1/analyze.proto b/third_party/googleapis/google/cloud/dataplex/v1/analyze.proto index deaed52f2..912e3c9e6 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/analyze.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/analyze.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/catalog.proto b/third_party/googleapis/google/cloud/dataplex/v1/catalog.proto new file mode 100644 index 000000000..423f67d44 --- /dev/null +++ b/third_party/googleapis/google/cloud/dataplex/v1/catalog.proto @@ -0,0 +1,1324 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.dataplex.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/dataplex/v1/service.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Dataplex.V1"; +option go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb"; +option java_multiple_files = true; +option java_outer_classname = "CatalogProto"; +option java_package = "com.google.cloud.dataplex.v1"; +option php_namespace = "Google\\Cloud\\Dataplex\\V1"; +option ruby_package = "Google::Cloud::Dataplex::V1"; + +// The primary resources offered by this service are EntryGroups, EntryTypes, +// AspectTypes, Entry and Aspect which collectively allow a data administrator +// to organize, manage, secure and catalog data across their organization +// located across cloud projects in a variety of storage systems including Cloud +// Storage and BigQuery. +service CatalogService { + option (google.api.default_host) = "dataplex.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates an EntryType + rpc CreateEntryType(CreateEntryTypeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/entryTypes" + body: "entry_type" + }; + option (google.api.method_signature) = "parent,entry_type,entry_type_id"; + option (google.longrunning.operation_info) = { + response_type: "EntryType" + metadata_type: "OperationMetadata" + }; + } + + // Updates a EntryType resource. + rpc UpdateEntryType(UpdateEntryTypeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}" + body: "entry_type" + }; + option (google.api.method_signature) = "entry_type,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "EntryType" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a EntryType resource. + rpc DeleteEntryType(DeleteEntryTypeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/entryTypes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists EntryType resources in a project and location. + rpc ListEntryTypes(ListEntryTypesRequest) returns (ListEntryTypesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/entryTypes" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieves a EntryType resource. + rpc GetEntryType(GetEntryTypeRequest) returns (EntryType) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/entryTypes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates an AspectType + rpc CreateAspectType(CreateAspectTypeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/aspectTypes" + body: "aspect_type" + }; + option (google.api.method_signature) = "parent,aspect_type,aspect_type_id"; + option (google.longrunning.operation_info) = { + response_type: "AspectType" + metadata_type: "OperationMetadata" + }; + } + + // Updates a AspectType resource. + rpc UpdateAspectType(UpdateAspectTypeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}" + body: "aspect_type" + }; + option (google.api.method_signature) = "aspect_type,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "AspectType" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a AspectType resource. + rpc DeleteAspectType(DeleteAspectTypeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/aspectTypes/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists AspectType resources in a project and location. + rpc ListAspectTypes(ListAspectTypesRequest) + returns (ListAspectTypesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/aspectTypes" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieves a AspectType resource. + rpc GetAspectType(GetAspectTypeRequest) returns (AspectType) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/aspectTypes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates an EntryGroup + rpc CreateEntryGroup(CreateEntryGroupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/entryGroups" + body: "entry_group" + }; + option (google.api.method_signature) = "parent,entry_group,entry_group_id"; + option (google.longrunning.operation_info) = { + response_type: "EntryGroup" + metadata_type: "OperationMetadata" + }; + } + + // Updates a EntryGroup resource. + rpc UpdateEntryGroup(UpdateEntryGroupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}" + body: "entry_group" + }; + option (google.api.method_signature) = "entry_group,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "EntryGroup" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a EntryGroup resource. + rpc DeleteEntryGroup(DeleteEntryGroupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/entryGroups/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists EntryGroup resources in a project and location. + rpc ListEntryGroups(ListEntryGroupsRequest) + returns (ListEntryGroupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/entryGroups" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieves a EntryGroup resource. + rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/entryGroups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates an Entry. + rpc CreateEntry(CreateEntryRequest) returns (Entry) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" + body: "entry" + }; + option (google.api.method_signature) = "parent,entry,entry_id"; + } + + // Updates an Entry. + rpc UpdateEntry(UpdateEntryRequest) returns (Entry) { + option (google.api.http) = { + patch: "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}" + body: "entry" + }; + option (google.api.method_signature) = "entry,update_mask"; + } + + // Deletes an Entry. + rpc DeleteEntry(DeleteEntryRequest) returns (Entry) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists entries within an entry group. + rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a single entry. + rpc GetEntry(GetEntryRequest) returns (Entry) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}" + }; + option (google.api.method_signature) = "name"; + } + + // Looks up a single entry. + rpc LookupEntry(LookupEntryRequest) returns (Entry) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*}:lookupEntry" + }; + } + + // Searches for entries matching given query and scope. + rpc SearchEntries(SearchEntriesRequest) returns (SearchEntriesResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*}:searchEntries" + }; + option (google.api.method_signature) = "name,query"; + } +} + +// Aspect Type is a template for creating Aspects, and represents the +// JSON-schema for a given Entry, e.g., BigQuery Table Schema. +message AspectType { + option (google.api.resource) = { + type: "dataplex.googleapis.com/AspectType" + pattern: "projects/{project}/locations/{location}/aspectTypes/{aspect_type}" + plural: "aspectTypes" + singular: "aspectType" + }; + + // Autorization for an Aspect Type. + message Authorization { + // Immutable. The IAM permission grantable on the Entry Group to allow + // access to instantiate Aspects of Dataplex owned Aspect Types, only + // settable for Dataplex owned Types. + string alternate_use_permission = 1 + [(google.api.field_behavior) = IMMUTABLE]; + } + + // MetadataTemplate definition for AspectType + message MetadataTemplate { + // Definition of Enumvalue (to be used by enum fields) + message EnumValue { + // Required. Index for the enum. Cannot be modified. + int32 index = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the enumvalue. This is the actual value that the + // aspect will contain. + string name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Optional deprecation message to be set if an enum value needs + // to be deprecated. + string deprecated = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Definition of the constraints of a field + message Constraints { + // Optional. Marks this as an optional/required field. + bool required = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Definition of the annotations of a field + message Annotations { + // Optional. Marks a field as deprecated, a deprecation message can be + // included. + string deprecated = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specify a displayname for a field. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specify a description for a field + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specify a display order for a field. Display order can be + // used to reorder where a field is rendered + int32 display_order = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. String Type annotations can be used to specify special + // meaning to string fields. The following values are supported: richText: + // The field must be interpreted as a rich text field. url: A fully + // qualified url link. resource: A service qualified resource reference. + string string_type = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Suggested hints for string fields. These can be used to + // suggest values to users, through an UI for example. + repeated string string_values = 7 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Index is used to encode Template messages. The value of index + // can range between 1 and 2,147,483,647. Index must be unique within all + // fields in a Template. (Nested Templates can reuse indexes). Once a + // Template is defined, the index cannot be changed, because it identifies + // the field in the actual storage format. Index is a mandatory field, but + // it is optional for top level fields, and map/array "values" definitions. + int32 index = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The name of the field. + string name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The datatype of this field. The following values are supported: + // Primitive types (string, integer, boolean, double, datetime); datetime + // must be of the format RFC3339 UTC "Zulu" (Examples: + // "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"). Complex + // types (enum, array, map, record). + string type = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Field definition, needs to be specified if the type is record. + // Defines the nested fields. + repeated MetadataTemplate record_fields = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of values for an enum type. Needs to be defined if the + // type is enum. + repeated EnumValue enum_values = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. map_items needs to be set if the type is map. map_items can + // refer to a primitive field or a complex (record only) field. To specify a + // primitive field, just name and type needs to be set in the nested + // MetadataTemplate. The recommended value for the name field is item, as + // this is not used in the actual payload. + MetadataTemplate map_items = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. array_items needs to be set if the type is array. array_items + // can refer to a primitive field or a complex (record only) field. To + // specify a primitive field, just name and type needs to be set in the + // nested MetadataTemplate. The recommended value for the name field is + // item, as this is not used in the actual payload. + MetadataTemplate array_items = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Id can be used if this definition of the field needs to be + // reused later. Id needs to be unique across the entire template. Id can + // only be specified if the field type is record. + string type_id = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A reference to another field definition (instead of an inline + // definition). The value must be equal to the value of an id field defined + // elsewhere in the MetadataTemplate. Only fields with type as record can + // refer to other fields. + string type_ref = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the constraints on this field. + Constraints constraints = 50 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies annotations on this field. + Annotations annotations = 51 [(google.api.field_behavior) = OPTIONAL]; + } + + // Output only. The relative resource name of the AspectType, of the form: + // projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/AspectType" + } + ]; + + // Output only. System generated globally unique ID for the AspectType. This + // ID will be different if the AspectType is deleted and re-created with the + // same name. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the AspectType was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the AspectType was last updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Description of the AspectType. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User friendly display name. + string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined labels for the AspectType. + map labels = 7 [(google.api.field_behavior) = OPTIONAL]; + + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 8; + + // Immutable. Authorization defined for this type. + Authorization authorization = 52 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. MetadataTemplate of the aspect. + MetadataTemplate metadata_template = 53 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Denotes the transfer status of the Aspect Type. It is + // unspecified for Aspect Types created from Dataplex API. + TransferStatus transfer_status = 202 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// An Entry Group represents a logical grouping of one or more Entries. +message EntryGroup { + option (google.api.resource) = { + type: "dataplex.googleapis.com/EntryGroup" + pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}" + plural: "entryGroups" + singular: "entryGroup" + }; + + // Output only. The relative resource name of the EntryGroup, of the form: + // projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryGroup" + } + ]; + + // Output only. System generated globally unique ID for the EntryGroup. This + // ID will be different if the EntryGroup is deleted and re-created with the + // same name. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the EntryGroup was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the EntryGroup was last updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Description of the EntryGroup. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User friendly display name. + string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined labels for the EntryGroup. + map labels = 7 [(google.api.field_behavior) = OPTIONAL]; + + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 8; + + // Output only. Denotes the transfer status of the Entry Group. It is + // unspecified for Entry Group created from Dataplex API. + TransferStatus transfer_status = 202 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Entry Type is a template for creating Entries. +message EntryType { + option (google.api.resource) = { + type: "dataplex.googleapis.com/EntryType" + pattern: "projects/{project}/locations/{location}/entryTypes/{entry_type}" + plural: "entryTypes" + singular: "entryType" + }; + + message AspectInfo { + // Required aspect type for the entry type. + string type = 1 [(google.api.resource_reference) = { + type: "dataplex.googleapis.com/AspectType" + }]; + } + + // Authorization for an Entry Type. + message Authorization { + // 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. + string alternate_use_permission = 1 + [(google.api.field_behavior) = IMMUTABLE]; + } + + // Output only. The relative resource name of the EntryType, of the form: + // projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryType" + } + ]; + + // Output only. System generated globally unique ID for the EntryType. This ID + // will be different if the EntryType is deleted and re-created with the same + // name. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the EntryType was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the EntryType was last updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Description of the EntryType. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User friendly display name. + string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-defined labels for the EntryType. + map labels = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates the class this Entry Type belongs to, for example, + // TABLE, DATABASE, MODEL. + repeated string type_aliases = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The platform that Entries of this type belongs to. + string platform = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The system that Entries of this type belongs to. Examples include + // CloudSQL, MariaDB etc + string system = 11 [(google.api.field_behavior) = OPTIONAL]; + + // AspectInfo for the entry type. + repeated AspectInfo required_aspects = 50; + + // Immutable. Authorization defined for this type. + Authorization authorization = 51 [(google.api.field_behavior) = IMMUTABLE]; +} + +// An aspect is a single piece of metadata describing an entry. +message Aspect { + // Output only. The resource name of the type used to create this Aspect. + string aspect_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The path in the entry under which the aspect is attached. + string path = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the Aspect was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the Aspect was last updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The content of the aspect, according to its aspect type schema. + // This will replace `content`. + // The maximum size of the field is 120KB (encoded as UTF-8). + google.protobuf.Struct data = 8 [(google.api.field_behavior) = REQUIRED]; + + AspectSource aspect_source = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// AspectSource contains source system related information for the +// aspect. +message AspectSource { + // The create time of the aspect in the source system. + google.protobuf.Timestamp create_time = 10; + + // The update time of the aspect in the source system. + google.protobuf.Timestamp update_time = 11; +} + +// An entry is a representation of a data asset which can be described by +// various metadata. +message Entry { + option (google.api.resource) = { + type: "dataplex.googleapis.com/Entry" + pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}" + plural: "entries" + singular: "entry" + }; + + // Identifier. The relative resource name of the Entry, of the form: + // projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Immutable. The resource name of the EntryType used to create this + // Entry. + string entry_type = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. The time when the Entry was created. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the Entry was last updated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The Aspects attached to the Entry. + // The format for the key can be one of the following: + // 1. {projectId}.{locationId}.{aspectTypeId} (if the aspect is attached + // directly to the entry) + // 2. {projectId}.{locationId}.{aspectTypeId}@{path} (if the aspect is + // attached to an entry's path) + map aspects = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Immutable. The resource name of the parent entry. + string parent_entry = 10 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. A name for the entry that can reference it in an external system. + // The maximum size of the field is 4000 characters. + string fully_qualified_name = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Source system related information for an entry. + EntrySource entry_source = 15 [(google.api.field_behavior) = OPTIONAL]; +} + +// EntrySource contains source system related information for the +// entry. +message EntrySource { + // Ancestor contains information about individual items in the hierarchy of + // an Entry. + message Ancestor { + // Optional. The name of the ancestor resource. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The type of the ancestor resource. + string type = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // The name of the resource in the source system. + // The maximum size of the field is 4000 characters. + string resource = 1; + + // The name of the source system. + // The maximum size of the field is 64 characters. + string system = 2; + + // The platform containing the source system. + // The maximum size of the field is 64 characters. + string platform = 3; + + // User friendly display name. + // The maximum size of the field is 500 characters. + string display_name = 5; + + // Description of the Entry. + // The maximum size of the field is 2000 characters. + string description = 6; + + // User-defined labels. + // The maximum size of keys and values is 128 characters each. + map labels = 7; + + // Immutable. The ancestors of the Entry in the source system. + repeated Ancestor ancestors = 9 [(google.api.field_behavior) = IMMUTABLE]; + + // The create time of the resource in the source system. + google.protobuf.Timestamp create_time = 10; + + // The update time of the resource in the source system. + google.protobuf.Timestamp update_time = 11; + + // Output only. Location of the resource in the source system. Entry will be + // searchable by this location. By default, this should match the location of + // the EntryGroup containing this entry. A different value allows capturing + // source location for data external to GCP. + string location = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Create EntryGroup Request +message CreateEntryGroupRequest { + // Required. The resource name of the entryGroup, of the form: + // projects/{project_number}/locations/{location_id} + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. EntryGroup identifier. + string entry_group_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. EntryGroup Resource + EntryGroup entry_group = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Update EntryGroup Request +message UpdateEntryGroupRequest { + // Required. EntryGroup Resource + EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Delele EntryGroup Request +message DeleteEntryGroupRequest { + // Required. The resource name of the EntryGroup: + // `projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryGroup" + } + ]; + + // Optional. If the client provided etag value does not match the current etag + // value, the DeleteEntryGroupRequest method returns an ABORTED error response + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// List entryGroups request. +message ListEntryGroupsRequest { + // Required. The resource name of the entryGroup location, of the form: + // `projects/{project_number}/locations/{location_id}` + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Maximum number of EntryGroups to return. The service may return + // fewer than this value. If unspecified, at most 10 EntryGroups will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListEntryGroups` call. + // Provide this to retrieve the subsequent page. When paginating, all other + // parameters provided to `ListEntryGroups` must match the call that provided + // the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter request. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Order by fields for the result. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// List ListEntryGroups response. +message ListEntryGroupsResponse { + // ListEntryGroups under the given parent location. + repeated EntryGroup entry_groups = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable_locations = 3; +} + +// Get EntryGroup request. +message GetEntryGroupRequest { + // Required. The resource name of the EntryGroup: + // `projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryGroup" + } + ]; +} + +// Create EntryType Request +message CreateEntryTypeRequest { + // Required. The resource name of the EntryType, of the form: + // projects/{project_number}/locations/{location_id} + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. EntryType identifier. + string entry_type_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. EntryType Resource + EntryType entry_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Update EntryType Request +message UpdateEntryTypeRequest { + // Required. EntryType Resource + EntryType entry_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Delele EntryType Request +message DeleteEntryTypeRequest { + // Required. The resource name of the EntryType: + // `projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryType" + } + ]; + + // Optional. If the client provided etag value does not match the current etag + // value, the DeleteEntryTypeRequest method returns an ABORTED error response + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// List EntryTypes request +message ListEntryTypesRequest { + // Required. The resource name of the EntryType location, of the form: + // `projects/{project_number}/locations/{location_id}` + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Maximum number of EntryTypes to return. The service may return + // fewer than this value. If unspecified, at most 10 EntryTypes will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListEntryTypes` call. + // Provide this to retrieve the subsequent page. When paginating, all other + // parameters provided to `ListEntryTypes` must match the call that provided + // the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter request. Filters are case-sensitive. + // The following formats are supported: + // + // labels.key1 = "value1" + // labels:key1 + // name = "value" + // These restrictions can be coinjoined with AND, OR and NOT conjunctions. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Order by fields (`name` or `create_time`) for the result. + // If not specified, the ordering is undefined. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// List EntryTypes response +message ListEntryTypesResponse { + // ListEntryTypes under the given parent location. + repeated EntryType entry_types = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable_locations = 3; +} + +// Get EntryType request +message GetEntryTypeRequest { + // Required. The resource name of the EntryType: + // `projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryType" + } + ]; +} + +// Create AspectType Request +message CreateAspectTypeRequest { + // Required. The resource name of the AspectType, of the form: + // projects/{project_number}/locations/{location_id} + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. AspectType identifier. + string aspect_type_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. AspectType Resource + AspectType aspect_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Update AspectType Request +message UpdateAspectTypeRequest { + // Required. AspectType Resource + AspectType aspect_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Mask of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Delele AspectType Request +message DeleteAspectTypeRequest { + // Required. The resource name of the AspectType: + // `projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/AspectType" + } + ]; + + // Optional. If the client provided etag value does not match the current etag + // value, the DeleteAspectTypeRequest method returns an ABORTED error response + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// List AspectTypes request +message ListAspectTypesRequest { + // Required. The resource name of the AspectType location, of the form: + // `projects/{project_number}/locations/{location_id}` + // where `location_id` refers to a GCP region. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Maximum number of AspectTypes to return. The service may return + // fewer than this value. If unspecified, at most 10 AspectTypes will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token received from a previous `ListAspectTypes` call. + // Provide this to retrieve the subsequent page. When paginating, all other + // parameters provided to `ListAspectTypes` must match the call that provided + // the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter request. Filters are case-sensitive. + // The following formats are supported: + // + // labels.key1 = "value1" + // labels:key1 + // name = "value" + // These restrictions can be coinjoined with AND, OR and NOT conjunctions. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Order by fields (`name` or `create_time`) for the result. + // If not specified, the ordering is undefined. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// List AspectTypes response +message ListAspectTypesResponse { + // ListAspectTypes under the given parent location. + repeated AspectType aspect_types = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable_locations = 3; +} + +// Get AspectType request +message GetAspectTypeRequest { + // Required. The resource name of the AspectType: + // `projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/AspectType" + } + ]; +} + +message CreateEntryRequest { + // Required. The resource name of the parent Entry Group: + // `projects/{project}/locations/{location}/entryGroups/{entry_group}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryGroup" + } + ]; + + // Required. Entry identifier. It has to be unique within an Entry Group. + // + // Entries corresponding to Google Cloud resources use Entry ID format based + // on Full Resource Names + // (https://cloud.google.com/apis/design/resource_names#full_resource_name). + // The format is a Full Resource Name of the resource without the + // prefix double slashes in the API Service Name part of Full Resource Name. + // This allows retrieval of entries using their associated resource name. + // + // For example if the Full Resource Name of a resource is + // `//library.googleapis.com/shelves/shelf1/books/book2`, + // then the suggested entry_id is + // `library.googleapis.com/shelves/shelf1/books/book2`. + // + // It is also suggested to follow the same convention for entries + // corresponding to resources from other providers or systems than Google + // Cloud. + // + // The maximum size of the field is 4000 characters. + string entry_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Entry resource. + Entry entry = 3 [(google.api.field_behavior) = REQUIRED]; +} + +message UpdateEntryRequest { + // Required. Entry resource. + Entry entry = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Mask of fields to update. To update Aspects, the update_mask must + // contain the value "aspects". + // + // If the update_mask is empty, all modifiable fields present in the request + // will be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true and the entry does not exist, it will be created. + bool allow_missing = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true and the aspect_keys specify aspect ranges, any + // existing aspects from that range not provided in the request will be + // deleted. + bool delete_missing_aspects = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The map keys of the Aspects which should be modified. Supports + // the following syntaxes: + // * - matches aspect on given type and empty path + // * @path - matches aspect on given type and specified + // path + // * * - matches aspects on given type for all paths + // * *@path - matches aspects of all types on the given path + // + // Existing aspects matching the syntax will not be removed unless + // `delete_missing_aspects` is set to true. + // + // If this field is left empty, it will be treated as specifying exactly those + // Aspects present in the request. + repeated string aspect_keys = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +message DeleteEntryRequest { + // Required. The resource name of the Entry: + // `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entry" } + ]; +} + +message ListEntriesRequest { + // Required. The resource name of the parent Entry Group: + // `projects/{project}/locations/{location}/entryGroups/{entry_group}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dataplex.googleapis.com/EntryGroup" + } + ]; + + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The pagination token returned by a previous request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter on the entries to return. + // Filters are case-sensitive. + // The request can be filtered by the following fields: + // entry_type, entry_source.display_name. + // The comparison operators are =, !=, <, >, <=, >= (strings are compared + // according to lexical order) + // The logical operators AND, OR, NOT can be used + // in the filter. Wildcard "*" can be used, but for entry_type the full + // project id or number needs to be provided. Example filter expressions: + // "entry_source.display_name=AnExampleDisplayName" + // "entry_type=projects/example-project/locations/global/entryTypes/example-entry_type" + // "entry_type=projects/example-project/locations/us/entryTypes/a* OR + // entry_type=projects/another-project/locations/*" + // "NOT entry_source.display_name=AnotherExampleDisplayName" + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListEntriesResponse { + // The list of entries. + repeated Entry entries = 1; + + // Pagination token. + string next_page_token = 2; +} + +message GetEntryRequest { + // Required. The resource name of the Entry: + // `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entry" } + ]; + + // Optional. View for controlling which parts of an entry are to be returned. + EntryView view = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Limits the aspects returned to the provided aspect types. + // Only works if the CUSTOM view is selected. + repeated string aspect_types = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Limits the aspects returned to those associated with the provided + // paths within the Entry. Only works if the CUSTOM view is selected. + repeated string paths = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message LookupEntryRequest { + // Required. The project to which the request should be attributed in the + // following form: `projects/{project}/locations/{location}`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. View for controlling which parts of an entry are to be returned. + EntryView view = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Limits the aspects returned to the provided aspect types. + // Only works if the CUSTOM view is selected. + repeated string aspect_types = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Limits the aspects returned to those associated with the provided + // paths within the Entry. Only works if the CUSTOM view is selected. + repeated string paths = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource name of the Entry: + // `projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}`. + string entry = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entry" } + ]; +} + +message SearchEntriesRequest { + // Required. The project to which the request should be attributed in the + // following form: `projects/{project}/locations/{location}`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The query against which entries in scope should be matched. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Pagination. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Ordering of the results. Supported options to be added later. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The scope under which the search should be operating. Should + // either be organizations/ or projects/. If left + // unspecified, it will default to the organization where the project provided + // in `name` is located. + string scope = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single result of a SearchEntries request. +message SearchEntriesResult { + // Snippets for the entry, contains HTML-style highlighting for + // matched tokens, will be used in UI. + message Snippets { + option deprecated = true; + + // Entry + Entry dataplex_entry = 1 [deprecated = true]; + } + + // Linked resource name. + string linked_resource = 8 [deprecated = true]; + + Entry dataplex_entry = 9; + + // Snippets. + Snippets snippets = 12 [deprecated = true]; +} + +message SearchEntriesResponse { + // The results matching the search query. + repeated SearchEntriesResult results = 1; + + // The estimated total number of matching entries. Not guaranteed to be + // accurate. + int32 total_size = 2; + + // Pagination token. + string next_page_token = 3; + + // Unreachable locations. Search results don't include data from those + // locations. + repeated string unreachable = 4; +} + +// View for controlling which parts of an entry are to be returned. +enum EntryView { + // Unspecified EntryView. Defaults to FULL. + ENTRY_VIEW_UNSPECIFIED = 0; + + // Returns entry only, without aspects. + BASIC = 1; + + // Returns all required aspects as well as the keys of all non-required + // aspects. + FULL = 2; + + // Returns aspects matching custom fields in GetEntryRequest. If the number of + // aspects would exceed 100, the first 100 will be returned. + CUSTOM = 3; + + // Returns all aspects. If the number of aspects would exceed 100, the first + // 100 will be returned. + ALL = 4; +} + +// Denotes the transfer status of a resource. It is unspecified for resources +// created from Dataplex API. +enum TransferStatus { + // The default value. It is set for resources that were not subject for + // migration from Data Catalog service. + TRANSFER_STATUS_UNSPECIFIED = 0; + + // Indicates that a resource was migrated from Data Catalog service but it + // hasn't been transferred yet. In particular the resource cannot be updated + // from Dataplex API. + TRANSFER_STATUS_MIGRATED = 1; + + // Indicates that a resource was transferred from Data Catalog service. The + // resource can only be updated from Dataplex API. + TRANSFER_STATUS_TRANSFERRED = 2; +} diff --git a/third_party/googleapis/google/cloud/dataplex/v1/content.proto b/third_party/googleapis/google/cloud/dataplex/v1/content.proto index 1753c5b02..be39025ec 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/content.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/content.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/data_profile.proto b/third_party/googleapis/google/cloud/dataplex/v1/data_profile.proto index 5930956db..3f4fc6dc4 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/data_profile.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/data_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/data_quality.proto b/third_party/googleapis/google/cloud/dataplex/v1/data_quality.proto index 79c993d3e..7b81ef216 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/data_quality.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/data_quality.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,9 +41,55 @@ message DataQualitySpec { string results_table = 1 [(google.api.field_behavior) = OPTIONAL]; } + // The individuals or groups who are designated to receive notifications + // upon triggers. + message Recipients { + // Optional. The email recipients who will receive the DataQualityScan + // results report. + repeated string emails = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // This trigger is triggered when the DQ score in the job result is less + // than a specified input score. + message ScoreThresholdTrigger { + // Optional. The score range is in [0,100]. + float score_threshold = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // This trigger is triggered when the scan job itself fails, regardless of + // the result. + message JobFailureTrigger {} + + // This trigger is triggered whenever a scan job run ends, regardless + // of the result. + message JobEndTrigger {} + + // The configuration of notification report post scan action. + message NotificationReport { + // Required. The recipients who will receive the notification report. + Recipients recipients = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. If set, report will be sent when score threshold is met. + ScoreThresholdTrigger score_threshold_trigger = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, report will be sent when a scan job fails. + JobFailureTrigger job_failure_trigger = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, report will be sent when a scan job ends. + JobEndTrigger job_end_trigger = 5 + [(google.api.field_behavior) = OPTIONAL]; + } + // Optional. If set, results will be exported to the provided BigQuery // table. BigQueryExport bigquery_export = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, results will be sent to the provided notification + // receipts upon triggers. + NotificationReport notification_report = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Required. The list of rules to evaluate against a data source. At least one @@ -176,6 +222,12 @@ message DataQualityRuleResult { // // This field is only valid for row-level type rules. string failing_rows_query = 10; + + // Output only. The number of rows returned by the SQL statement in a SQL + // assertion rule. + // + // This field is only valid for SQL assertion rules. + int64 assertion_row_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } // DataQualityDimensionResult provides a more detailed, per-dimension view of @@ -318,6 +370,24 @@ message DataQualityRule { string sql_expression = 1 [(google.api.field_behavior) = OPTIONAL]; } + // A SQL statement that is evaluated to return rows that match an invalid + // state. If any rows are are returned, this rule fails. + // + // The SQL statement must use BigQuery standard SQL syntax, and must not + // contain any semicolons. + // + // You can use the data reference parameter `${data()}` to reference the + // source table with all of its precondition filters applied. Examples of + // precondition filters include row filters, incremental data filters, and + // sampling. For more information, see [Data reference + // parameter](https://cloud.google.com/dataplex/docs/auto-data-quality-overview#data-reference-parameter). + // + // Example: `SELECT * FROM ${data()} WHERE price < 0` + message SqlAssertion { + // Optional. The SQL statement. + string sql_statement = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // The rule-specific configuration. oneof rule_type { // Row-level rule which evaluates whether each column value lies between a @@ -349,6 +419,10 @@ message DataQualityRule { // Aggregate rule which evaluates whether the provided expression is true // for a table. TableConditionExpectation table_condition_expectation = 201; + + // Aggregate rule which evaluates the number of rows returned for the + // provided statement. If any rows are returned, this rule fails. + SqlAssertion sql_assertion = 202; } // Optional. The unnested column which this rule is evaluated against. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/data_taxonomy.proto b/third_party/googleapis/google/cloud/dataplex/v1/data_taxonomy.proto index feb150dca..fdd21e8d3 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/data_taxonomy.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/data_taxonomy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/dataplex_grpc_service_config.json b/third_party/googleapis/google/cloud/dataplex/v1/dataplex_grpc_service_config.json index ca0352755..77b810f37 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/dataplex_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/dataplex/v1/dataplex_grpc_service_config.json @@ -335,6 +335,87 @@ } ], "timeout": "60s" + }, + { + "name": [ + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "GetEntryGroup" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "ListEntryGroups" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "GetAspectType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "ListAspectTypes" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "GetEntryType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "ListEntryTypes" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "SearchEntries" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "RESOURCE_EXHAUSTED"] + } + }, + { + "name": [ + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "CreateEntryGroup" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "UpdateEntryGroup" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "DeleteEntryGroup" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "CreateAspectType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "UpdateAspectType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "DeleteAspectType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "CreateEntryType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "UpdateEntryType" + }, + { + "service": "google.cloud.dataplex.v1.CatalogService", + "method": "DeleteEntryType" + } + ], + "timeout": "60s" } ] } diff --git a/third_party/googleapis/google/cloud/dataplex/v1/dataplex_v1.yaml b/third_party/googleapis/google/cloud/dataplex/v1/dataplex_v1.yaml index cdc9b7c91..450024056 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/dataplex_v1.yaml +++ b/third_party/googleapis/google/cloud/dataplex/v1/dataplex_v1.yaml @@ -4,6 +4,7 @@ name: dataplex.googleapis.com title: Cloud Dataplex API apis: +- name: google.cloud.dataplex.v1.CatalogService - name: google.cloud.dataplex.v1.ContentService - name: google.cloud.dataplex.v1.DataScanService - name: google.cloud.dataplex.v1.DataTaxonomyService @@ -143,6 +144,10 @@ http: authentication: rules: + - selector: 'google.cloud.dataplex.v1.CatalogService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.dataplex.v1.ContentService.*' oauth: canonical_scopes: |- @@ -181,7 +186,7 @@ authentication: https://www.googleapis.com/auth/cloud-platform publishing: - new_issue_uri: https://issuetracker.google.com/issues/new?component=190865&template=1161103 + new_issue_uri: https://issuetracker.google.com/issues/new?component=1155079&template=1656695 documentation_uri: https://cloud.google.com/dataplex/docs/overview api_short_name: dataplex github_label: 'api: dataplex' diff --git a/third_party/googleapis/google/cloud/dataplex/v1/datascans.proto b/third_party/googleapis/google/cloud/dataplex/v1/datascans.proto index a1a752c8a..0768b5a12 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/datascans.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/datascans.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -125,6 +125,23 @@ service DataScanService { }; option (google.api.method_signature) = "parent"; } + + // Generates recommended data quality rules based on the results of a data + // profiling scan. + // + // Use the recommendations to build rules for a data quality scan. + rpc GenerateDataQualityRules(GenerateDataQualityRulesRequest) + returns (GenerateDataQualityRulesResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/dataScans/*}:generateDataQualityRules" + body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:generateDataQualityRules" + body: "*" + } + }; + option (google.api.method_signature) = "name"; + } } // Create dataScan request. @@ -367,6 +384,24 @@ message ListDataScanJobsResponse { string next_page_token = 2; } +// Request details for generating data quality rule recommendations. +message GenerateDataQualityRulesRequest { + // Required. The name must be one of the following: + // + // * The name of a data scan with at least one successful, completed data + // profiling job + // * The name of a successful, completed data profiling job (a data scan job + // where the job type is data profiling) + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response details for data quality rule recommendations. +message GenerateDataQualityRulesResponse { + // The data quality rules that Dataplex generates based on the results + // of a data profiling scan. + repeated DataQualityRule rule = 1; +} + // Represents a user-visible job which provides the insights for the related // data source. // @@ -412,6 +447,10 @@ message DataScan { // The time when the latest DataScanJob ended. google.protobuf.Timestamp latest_job_end_time = 5; + + // Optional. The time when the DataScanJob execution was created. + google.protobuf.Timestamp latest_job_create_time = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Output only. The relative resource name of the scan, of the form: diff --git a/third_party/googleapis/google/cloud/dataplex/v1/logs.proto b/third_party/googleapis/google/cloud/dataplex/v1/logs.proto index a152b2588..4c6dc08fb 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/logs.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/logs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -634,37 +634,41 @@ message DataQualityScanRuleResult { // An unspecified rule type. RULE_TYPE_UNSPECIFIED = 0; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#nonnullexpectation. + // See + // [DataQualityRule.NonNullExpectation][google.cloud.dataplex.v1.DataQualityRule.NonNullExpectation]. NON_NULL_EXPECTATION = 1; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#rangeexpectation. + // See + // [DataQualityRule.RangeExpectation][google.cloud.dataplex.v1.DataQualityRule.RangeExpectation]. RANGE_EXPECTATION = 2; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#regexexpectation. + // See + // [DataQualityRule.RegexExpectation][google.cloud.dataplex.v1.DataQualityRule.RegexExpectation]. REGEX_EXPECTATION = 3; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#rowconditionexpectation. + // See + // [DataQualityRule.RowConditionExpectation][google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectation]. ROW_CONDITION_EXPECTATION = 4; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#setexpectation. + // See + // [DataQualityRule.SetExpectation][google.cloud.dataplex.v1.DataQualityRule.SetExpectation]. SET_EXPECTATION = 5; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#statisticrangeexpectation. + // See + // [DataQualityRule.StatisticRangeExpectation][google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation]. STATISTIC_RANGE_EXPECTATION = 6; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#tableconditionexpectation. + // See + // [DataQualityRule.TableConditionExpectation][google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectation]. TABLE_CONDITION_EXPECTATION = 7; - // Please see - // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#uniquenessexpectation. + // See + // [DataQualityRule.UniquenessExpectation][google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectation]. UNIQUENESS_EXPECTATION = 8; + + // See + // [DataQualityRule.SqlAssertion][google.cloud.dataplex.v1.DataQualityRule.SqlAssertion]. + SQL_ASSERTION = 9; } // The evaluation type of the data quality rule. @@ -728,4 +732,8 @@ message DataQualityScanRuleResult { // The number of rows with null values in the specified column. int64 null_row_count = 12; + + // The number of rows returned by the SQL statement in a SQL assertion rule. + // This field is only valid for SQL assertion rules. + int64 assertion_row_count = 13; } diff --git a/third_party/googleapis/google/cloud/dataplex/v1/metadata.proto b/third_party/googleapis/google/cloud/dataplex/v1/metadata.proto index 34ce91f21..be51a2c85 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/metadata.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/processing.proto b/third_party/googleapis/google/cloud/dataplex/v1/processing.proto index 38381131b..0cbd7309e 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/processing.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/processing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/resources.proto b/third_party/googleapis/google/cloud/dataplex/v1/resources.proto index d8b74d4a5..036d78b98 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/resources.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/security.proto b/third_party/googleapis/google/cloud/dataplex/v1/security.proto index 97851c61b..18111f0f2 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/security.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/security.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/service.proto b/third_party/googleapis/google/cloud/dataplex/v1/service.proto index 8972d6592..a58f817b7 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/service.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataplex/v1/tasks.proto b/third_party/googleapis/google/cloud/dataplex/v1/tasks.proto index 9333e4402..a9d743a95 100644 --- a/third_party/googleapis/google/cloud/dataplex/v1/tasks.proto +++ b/third_party/googleapis/google/cloud/dataplex/v1/tasks.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/logging/BUILD.bazel b/third_party/googleapis/google/cloud/dataproc/logging/BUILD.bazel index 4aeee4b4e..251e804b4 100644 --- a/third_party/googleapis/google/cloud/dataproc/logging/BUILD.bazel +++ b/third_party/googleapis/google/cloud/dataproc/logging/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -12,6 +14,7 @@ proto_library( name = "logging_proto", srcs = [ "autoscaler_log.proto", + "reconciler_log.proto", ], deps = [ "@com_google_protobuf//:duration_proto", @@ -21,10 +24,11 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", "java_proto_library", + "java_gapic_assembly_gradle_pkg", ) java_proto_library( @@ -32,18 +36,23 @@ java_proto_library( deps = [":logging_proto"], ) -java_grpc_library( - name = "logging_java_grpc", - srcs = [":logging_proto"], - deps = [":logging_java_proto"], +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-dataproc-logging-java", + deps = [ + ":logging_proto", + ":logging_java_proto", + ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", + "go_gapic_assembly_pkg", ) go_proto_library( @@ -51,18 +60,27 @@ go_proto_library( compilers = ["@io_bazel_rules_go//proto:go_grpc"], importpath = "cloud.google.com/go/dataproc/logging/loggingpb", protos = [":logging_proto"], + deps = [], +) + +go_gapic_assembly_pkg( + name = "google-cloud-dataproc-logging-go", deps = [ + ":logging_go_proto", ], ) ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", "py_grpc_library", "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", ) moved_proto_library( @@ -84,11 +102,28 @@ py_grpc_library( deps = [":logging_py_proto"], ) +py_gapic_library( + name = "logging_py_gapic", + srcs = [":logging_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-cloud-dataproc-logging-py", + deps = [ + ":logging_py_gapic", + ], +) + ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", "php_proto_library", ) @@ -97,13 +132,17 @@ php_proto_library( deps = [":logging_proto"], ) -############################################################################## -# Node.js -############################################################################## +php_gapic_assembly_pkg( + name = "google-cloud-dataproc-logging-php", + deps = [ + ":logging_php_proto", + ], +) ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -124,10 +163,11 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "csharp_grpc_library", "csharp_proto_library", + "csharp_gapic_assembly_pkg", ) csharp_proto_library( @@ -135,15 +175,20 @@ csharp_proto_library( deps = [":logging_proto"], ) -csharp_grpc_library( - name = "logging_csharp_grpc", - srcs = [":logging_proto"], - deps = [":logging_csharp_proto"], +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-dataproc-logging-csharp", + package_name = "Google.Cloud.Dataproc.Logging", + generate_nongapic_package = True, + deps = [ + ":logging_csharp_proto", + ], ) ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/dataproc/logging/autoscaler_log.proto b/third_party/googleapis/google/cloud/dataproc/logging/autoscaler_log.proto index 5500b37c5..a53cf4507 100644 --- a/third_party/googleapis/google/cloud/dataproc/logging/autoscaler_log.proto +++ b/third_party/googleapis/google/cloud/dataproc/logging/autoscaler_log.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,11 +18,12 @@ package google.cloud.dataproc.logging; import "google/protobuf/duration.proto"; +option csharp_namespace = "Google.Cloud.Dataproc.Logging"; option go_package = "cloud.google.com/go/dataproc/logging/loggingpb;loggingpb"; option java_multiple_files = true; option java_package = "com.google.cloud.dataproc.logging"; -// The short version of cluster configuration for Cloud logging. +// The short version of cluster configuration for Cloud Logging. message ClusterSize { // The number of primary workers in the cluster. int32 primary_worker_count = 1; @@ -31,17 +32,6 @@ message ClusterSize { int32 secondary_worker_count = 2; } -// The main proto that will be converted to JSON format and then written to -// Logging. -message AutoscalerLog { - // The current Autoscaler status. - AutoscalerStatus status = 1; - - // Optional. The autoscaling recommendation including its inputs, outputs, - // scaling decision, and detailed explanation. - AutoscalerRecommendation recommendation = 2; -} - // The Autoscaler state. enum AutoscalerState { AUTOSCALER_STATE_UNSPECIFIED = 0; @@ -81,6 +71,12 @@ enum ScalingDecisionType { // Scale the primary and secondary worker groups in different directions. MIXED = 4; + + // Cancel the ongoing scale down operation. + CANCEL = 5; + + // Do not cancel the ongoing scale down operation. + DO_NOT_CANCEL = 6; } enum ConstrainingFactor { @@ -99,6 +95,36 @@ enum ConstrainingFactor { // issued if workers were able to be removed from another group that had not // reached minimum size. REACHED_MINIMUM_CLUSTER_SIZE = 3; + + // The secondary worker group cannot be scaled down by more than 1k nodes in a + // single update request. + SECONDARY_SCALEDOWN_SINGLE_REQUEST_LIMIT_REACHED = 4; +} + +// The kind of metric input to the Autoscaling algorithm. +enum MetricType { + // Default. + METRIC_TYPE_UNSPECIFIED = 0; + + // The yarn memory metric. + YARN_MEMORY = 1; + + // The yarn cores or vCPUs metric. + YARN_CORES = 2; + + // The number of executors in Spark serverless. + SPARK_EXECUTORS = 3; +} + +// The main proto that will be converted to JSON format and then written to +// Logging. +message AutoscalerLog { + // The current Autoscaler status. + AutoscalerStatus status = 1; + + // Optional. The autoscaling recommendation including its inputs, outputs, + // scaling decision, and detailed explanation. + AutoscalerRecommendation recommendation = 2; } // The Autoscaler's status, including its state and other details. @@ -119,7 +145,7 @@ message AutoscalerStatus { // The inputs, outputs, and detailed explanation of the Autoscaling // recommendation. message AutoscalerRecommendation { - // The input values for the Autoscaling recommendation alogirthm. + // The input values for the Autoscaling recommendation algorithm. message Inputs { // The metrics collected by the Dataproc agent running on the cluster. // For example, {"avg-yarn-pending-memory": "1040 MB"} @@ -157,6 +183,9 @@ message AutoscalerRecommendation { // A unique id for this recommendation that should be included when opening // a support ticket. string recommendation_id = 6; + + // The metric source deciding the autoscaling recommendation. + MetricType decision_metric = 7; } // The autoscaling algorithm inputs. diff --git a/third_party/googleapis/google/cloud/dataproc/logging/reconciler_log.proto b/third_party/googleapis/google/cloud/dataproc/logging/reconciler_log.proto new file mode 100644 index 000000000..946a99829 --- /dev/null +++ b/third_party/googleapis/google/cloud/dataproc/logging/reconciler_log.proto @@ -0,0 +1,83 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.dataproc.logging; + +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Cloud.Dataproc.Logging"; +option go_package = "cloud.google.com/go/dataproc/logging/loggingpb;loggingpb"; +option java_multiple_files = true; +option java_outer_classname = "ReconcilerLogProto"; +option java_package = "com.google.cloud.dataproc.logging"; + +// Reconciliation log for session ttl event. +message ReconciliationLog { + // The input values for the Reconciler recommendation algorithm. + // We could add more details in future if required. + message Inputs { + // Idle duration + google.protobuf.Duration idle_duration = 1; + + // Configured idle TTL + google.protobuf.Duration idle_ttl = 2; + + // Total session lifetime + google.protobuf.Duration session_lifetime = 3; + + // Configured ttl + google.protobuf.Duration ttl = 4; + } + + // Reconciler recommendations. + message Outputs { + // The high-level reconciliation decision. + ReconciliationDecisionType decision = 1; + + // Human readable context messages which explain the reconciler decision. + string decision_details = 2; + } + + // The reconciliation algorithm inputs. + Inputs inputs = 1; + + // The algorithm outputs for the recommended reconciliation operation. + Outputs outputs = 2; +} + +// Reconciliation log for cluster heal event. +message ReconciliationClusterHealLog { + // Autohealer decision. + message Outputs { + // The repair operation id triggered by Autohealer if any. + string repair_operation_id = 1; + + // Human readable context messages which explain the autohealer decision. + string decision_details = 2; + } + + // The algorithm outputs for the recommended reconciliation operation. + Outputs outputs = 1; +} + +// Decision type +enum ReconciliationDecisionType { + // Unspecified type + RECONCILIATION_DECISION_TYPE_UNSPECIFIED = 0; + + // Terminate session + RECONCILIATION_TERMINATE_SESSION = 1; +} diff --git a/third_party/googleapis/google/cloud/dataproc/v1/autoscaling_policies.proto b/third_party/googleapis/google/cloud/dataproc/v1/autoscaling_policies.proto index 123cd73e2..bab13acdb 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/autoscaling_policies.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/autoscaling_policies.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/batches.proto b/third_party/googleapis/google/cloud/dataproc/v1/batches.proto index 56d73f5c8..b7411d2ca 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/batches.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/batches.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/clusters.proto b/third_party/googleapis/google/cloud/dataproc/v1/clusters.proto index 885b58ea8..6d101219c 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/clusters.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/clusters.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/jobs.proto b/third_party/googleapis/google/cloud/dataproc/v1/jobs.proto index 061cccc6c..656a42787 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/jobs.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/node_groups.proto b/third_party/googleapis/google/cloud/dataproc/v1/node_groups.proto index 5a0509728..338de5100 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/node_groups.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/node_groups.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/operations.proto b/third_party/googleapis/google/cloud/dataproc/v1/operations.proto index 234847dba..f41889fe0 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/operations.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/session_templates.proto b/third_party/googleapis/google/cloud/dataproc/v1/session_templates.proto index 6031dffcb..2e0181354 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/session_templates.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/session_templates.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/sessions.proto b/third_party/googleapis/google/cloud/dataproc/v1/sessions.proto index 5e7b02acc..59f9c4306 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/sessions.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/sessions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/shared.proto b/third_party/googleapis/google/cloud/dataproc/v1/shared.proto index f9316dab6..01b9d6482 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/shared.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/shared.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,6 +50,14 @@ message RuntimeConfig { // Optional. Dependency repository configuration. RepositoryConfig repository_config = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Autotuning configuration of the workload. + AutotuningConfig autotuning_config = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cohort identifier. Identifies families of the workloads having + // the same shape, e.g. daily ETL jobs. + string cohort = 7 [(google.api.field_behavior) = OPTIONAL]; } // Environment configuration for a workload. @@ -464,6 +472,28 @@ message GkeNodePoolConfig { [(google.api.field_behavior) = OPTIONAL]; } +// Autotuning configuration of the workload. +message AutotuningConfig { + // Scenario represents a specific goal that autotuning will attempt to achieve + // by modifying workloads. + enum Scenario { + // Default value. + SCENARIO_UNSPECIFIED = 0; + + // Scaling recommendations such as initialExecutors. + SCALING = 2; + + // Adding hints for potential relation broadcasts. + BROADCAST_HASH_JOIN = 3; + + // Memory management for workloads. + MEMORY = 4; + } + + // Optional. Scenarios for which tunings are applied. + repeated Scenario scenarios = 2 [(google.api.field_behavior) = OPTIONAL]; +} + // Configuration for dependency repositories message RepositoryConfig { // Optional. Configuration for PyPi repository. diff --git a/third_party/googleapis/google/cloud/dataproc/v1/workflow_templates.proto b/third_party/googleapis/google/cloud/dataproc/v1/workflow_templates.proto index bb6a639a0..8a3a15a0d 100644 --- a/third_party/googleapis/google/cloud/dataproc/v1/workflow_templates.proto +++ b/third_party/googleapis/google/cloud/dataproc/v1/workflow_templates.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataqna/v1alpha/annotated_string.proto b/third_party/googleapis/google/cloud/dataqna/v1alpha/annotated_string.proto index 2b7592008..d473c6108 100644 --- a/third_party/googleapis/google/cloud/dataqna/v1alpha/annotated_string.proto +++ b/third_party/googleapis/google/cloud/dataqna/v1alpha/annotated_string.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataqna/v1alpha/auto_suggestion_service.proto b/third_party/googleapis/google/cloud/dataqna/v1alpha/auto_suggestion_service.proto index f8af41bb0..550b1b292 100644 --- a/third_party/googleapis/google/cloud/dataqna/v1alpha/auto_suggestion_service.proto +++ b/third_party/googleapis/google/cloud/dataqna/v1alpha/auto_suggestion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataqna/v1alpha/question.proto b/third_party/googleapis/google/cloud/dataqna/v1alpha/question.proto index 950d94bd9..5602e02f8 100644 --- a/third_party/googleapis/google/cloud/dataqna/v1alpha/question.proto +++ b/third_party/googleapis/google/cloud/dataqna/v1alpha/question.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataqna/v1alpha/question_service.proto b/third_party/googleapis/google/cloud/dataqna/v1alpha/question_service.proto index 9c2b24d81..22920b2b4 100644 --- a/third_party/googleapis/google/cloud/dataqna/v1alpha/question_service.proto +++ b/third_party/googleapis/google/cloud/dataqna/v1alpha/question_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dataqna/v1alpha/user_feedback.proto b/third_party/googleapis/google/cloud/dataqna/v1alpha/user_feedback.proto index 6f0430881..fc59ee40e 100644 --- a/third_party/googleapis/google/cloud/dataqna/v1alpha/user_feedback.proto +++ b/third_party/googleapis/google/cloud/dataqna/v1alpha/user_feedback.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datastream/logging/v1/BUILD.bazel b/third_party/googleapis/google/cloud/datastream/logging/v1/BUILD.bazel index da2f70c29..0c53636a8 100644 --- a/third_party/googleapis/google/cloud/datastream/logging/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/datastream/logging/v1/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -14,16 +16,19 @@ proto_library( "datastream_logs.proto", ], deps = [ + "//google/api:field_behavior_proto", + "//google/cloud/datastream/v1:datastream_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", "java_proto_library", + "java_gapic_assembly_gradle_pkg", ) java_proto_library( @@ -31,18 +36,23 @@ java_proto_library( deps = [":logging_proto"], ) -java_grpc_library( - name = "logging_java_grpc", - srcs = [":logging_proto"], - deps = [":logging_java_proto"], +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-datastream-logging-v1-java", + deps = [ + ":logging_proto", + ":logging_java_proto", + ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", + "go_gapic_assembly_pkg", ) go_proto_library( @@ -52,24 +62,36 @@ go_proto_library( protos = [":logging_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/rpc:status_go_proto", + "//google/cloud/datastream/v1:datastream_go_proto", + ], +) + +go_gapic_assembly_pkg( + name = "google-cloud-datastream-logging-v1-go", + deps = [ + ":logging_go_proto", ], ) ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", "py_grpc_library", "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", ) moved_proto_library( name = "logging_moved_proto", srcs = [":logging_proto"], deps = [ + "//google/api:field_behavior_proto", + "//google/cloud/datastream/v1:datastream_proto", ], ) @@ -84,11 +106,28 @@ py_grpc_library( deps = [":logging_py_proto"], ) +py_gapic_library( + name = "logging_py_gapic", + srcs = [":logging_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-cloud-datastream-logging-v1-py", + deps = [ + ":logging_py_gapic", + ], +) + ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", "php_proto_library", ) @@ -97,13 +136,17 @@ php_proto_library( deps = [":logging_proto"], ) -############################################################################## -# Node.js -############################################################################## +php_gapic_assembly_pkg( + name = "google-cloud-datastream-logging-v1-php", + deps = [ + ":logging_php_proto", + ], +) ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -124,10 +167,11 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "csharp_grpc_library", "csharp_proto_library", + "csharp_gapic_assembly_pkg", ) csharp_proto_library( @@ -135,15 +179,20 @@ csharp_proto_library( deps = [":logging_proto"], ) -csharp_grpc_library( - name = "logging_csharp_grpc", - srcs = [":logging_proto"], - deps = [":logging_csharp_proto"], +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-datastream-logging-v1-csharp", + package_name = "Google.Cloud.Datastream.Logging.V1", + generate_nongapic_package = True, + deps = [ + ":logging_csharp_proto", + ], ) ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/datastream/logging/v1/README.md b/third_party/googleapis/google/cloud/datastream/logging/v1/README.md new file mode 100644 index 000000000..c49174bdd --- /dev/null +++ b/third_party/googleapis/google/cloud/datastream/logging/v1/README.md @@ -0,0 +1,3 @@ +# Cloud Datastream Service API Logging + +These protos represent the Datastream API log entry schema. diff --git a/third_party/googleapis/google/cloud/datastream/logging/v1/datastream_logs.proto b/third_party/googleapis/google/cloud/datastream/logging/v1/datastream_logs.proto index 5240091f1..122537421 100644 --- a/third_party/googleapis/google/cloud/datastream/logging/v1/datastream_logs.proto +++ b/third_party/googleapis/google/cloud/datastream/logging/v1/datastream_logs.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,9 @@ syntax = "proto3"; package google.cloud.datastream.logging.v1; +import "google/api/field_behavior.proto"; +import "google/cloud/datastream/v1/datastream_resources.proto"; + option csharp_namespace = "Google.Cloud.Datastream.Logging.V1"; option go_package = "cloud.google.com/go/datastream/logging/apiv1/loggingpb;loggingpb"; option java_multiple_files = true; @@ -24,11 +27,23 @@ option java_package = "com.google.cloud.datastream.logging.v1"; option php_namespace = "Google\\Cloud\\Datastream\\Logging\\V1"; option ruby_package = "Google::Cloud::Datastream::Logging::V1"; -// Stackdriver structured-payload for events related to a stream. +// Log definition for activities related to a stream. message StreamActivityLogEntry { + // Payload for a change in the state of a stream. + message StreamStateChange { + // Output only. The new stream state. + google.cloud.datastream.v1.Stream.State new_state = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // A code representing the event. string event_code = 1; // A free-text message describing the event. string event_message = 2; + + oneof event_payload { + // A payload for a change in the state of a stream. + StreamStateChange stream_state_change = 100; + } } diff --git a/third_party/googleapis/google/cloud/datastream/v1/datastream.proto b/third_party/googleapis/google/cloud/datastream/v1/datastream.proto index bf0b13f5e..2f033a537 100644 --- a/third_party/googleapis/google/cloud/datastream/v1/datastream.proto +++ b/third_party/googleapis/google/cloud/datastream/v1/datastream.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datastream/v1/datastream_resources.proto b/third_party/googleapis/google/cloud/datastream/v1/datastream_resources.proto index 89fa1af88..0d46d644a 100644 --- a/third_party/googleapis/google/cloud/datastream/v1/datastream_resources.proto +++ b/third_party/googleapis/google/cloud/datastream/v1/datastream_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream.proto b/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream.proto index 14dac8fe5..a832fed11 100644 --- a/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream.proto +++ b/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream_resources.proto b/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream_resources.proto index 59111d92a..7e757552e 100644 --- a/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream_resources.proto +++ b/third_party/googleapis/google/cloud/datastream/v1alpha1/datastream_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/BUILD.bazel b/third_party/googleapis/google/cloud/deploy/v1/BUILD.bazel index 391944119..c762f0de8 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/deploy/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "deploy_proto", @@ -60,6 +63,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -126,6 +130,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -181,6 +186,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -221,6 +227,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -237,7 +244,7 @@ php_gapic_library( name = "deploy_php_gapic", srcs = [":deploy_proto_with_info"], grpc_service_config = "clouddeploy_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "clouddeploy_v1.yaml", transport = "grpc+rest", @@ -258,6 +265,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -288,6 +296,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -342,6 +351,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -352,7 +362,6 @@ load( csharp_proto_library( name = "deploy_csharp_proto", - extra_opts = [], deps = [":deploy_proto"], ) @@ -389,6 +398,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/deploy/v1/automation_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/automation_payload.proto index 8a3ca0741..b6ba5cb8b 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/automation_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/automation_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/automationrun_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/automationrun_payload.proto index b34192ceb..e284bfa63 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/automationrun_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/automationrun_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/cloud_deploy.proto b/third_party/googleapis/google/cloud/deploy/v1/cloud_deploy.proto index 04aa22f18..d19f036cc 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/cloud_deploy.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/cloud_deploy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,6 +35,10 @@ option (google.api.resource_definition) = { type: "cloudbuild.googleapis.com/Build" pattern: "projects/{project}/locations/{location}/builds/{build}" }; +option (google.api.resource_definition) = { + type: "cloudbuild.googleapis.com/Repository" + pattern: "projects/{project}/locations/{location}/connections/{connection}/repositories/{repository}" +}; option (google.api.resource_definition) = { type: "container.googleapis.com/Cluster" pattern: "projects/{project}/locations/{location}/clusters/{cluster}" @@ -498,7 +502,9 @@ message DeliveryPipeline { }; // Optional. Name of the `DeliveryPipeline`. Format is - // `projects/{project}/locations/{location}/deliveryPipelines/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}`. + // The `deliveryPipeline` component must match + // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?` string name = 1 [(google.api.field_behavior) = OPTIONAL]; // Output only. Unique identifier of the `DeliveryPipeline`. @@ -1100,7 +1106,8 @@ message Target { }; // Optional. Name of the `Target`. Format is - // `projects/{project}/locations/{location}/targets/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/targets/{target}`. + // The `target` component must match `[a-z]([a-z0-9-]{0,61}[a-z0-9])?` string name = 1 [(google.api.field_behavior) = OPTIONAL]; // Output only. Resource id of the `Target`. @@ -1243,6 +1250,10 @@ message ExecutionConfig { // 1h is used. google.protobuf.Duration execution_timeout = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, additional logging will be enabled when running builds + // in this execution environment. + bool verbose = 8 [(google.api.field_behavior) = OPTIONAL]; } // Execution using the default Cloud Build pool. @@ -1284,11 +1295,14 @@ message PrivatePool { // Information specifying a GKE Cluster. message GkeCluster { - // Information specifying a GKE Cluster. Format is + // Optional. Information specifying a GKE Cluster. Format is // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`. - string cluster = 1 [(google.api.resource_reference) = { - type: "container.googleapis.com/Cluster" - }]; + string cluster = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "container.googleapis.com/Cluster" + } + ]; // Optional. If true, `cluster` is accessed using the private IP address of // the control plane endpoint. Otherwise, the default IP address of the @@ -1303,12 +1317,15 @@ message GkeCluster { // Information specifying an Anthos Cluster. message AnthosCluster { - // Membership of the GKE Hub-registered cluster to which to apply the Skaffold - // configuration. Format is + // Optional. Membership of the GKE Hub-registered cluster to which to apply + // the Skaffold configuration. Format is // `projects/{project}/locations/{location}/memberships/{membership_name}`. - string membership = 1 [(google.api.resource_reference) = { - type: "gkehub.googleapis.com/Membership" - }]; + string membership = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "gkehub.googleapis.com/Membership" + } + ]; } // Information specifying where to deploy a Cloud Run Service. @@ -1526,7 +1543,9 @@ message CustomTargetType { }; // Optional. Name of the `CustomTargetType`. Format is - // `projects/{project}/locations/{location}/customTargetTypes/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/customTargetTypes/{customTargetType}`. + // The `customTargetType` component must match + // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?` string name = 1 [(google.api.field_behavior) = OPTIONAL]; // Output only. Resource id of the `CustomTargetType`. @@ -1606,7 +1625,7 @@ message SkaffoldModules { // Optional. Relative path from the repository root to the Skaffold file. string path = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Git ref the package should be cloned from. + // Optional. Git branch or tag to use when cloning the repository. string ref = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -1621,6 +1640,26 @@ message SkaffoldModules { string path = 2 [(google.api.field_behavior) = OPTIONAL]; } + // Cloud Build V2 Repository containing Skaffold Configs. + message SkaffoldGCBRepoSource { + // Required. Name of the Cloud Build V2 Repository. + // Format is + // projects/{project}/locations/{location}/connections/{connection}/repositories/{repository}. + string repository = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Repository" + } + ]; + + // Optional. Relative path from the repository root to the Skaffold Config + // file. + string path = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Branch or tag to use when cloning the repository. + string ref = 3 [(google.api.field_behavior) = OPTIONAL]; + } + // Optional. The Skaffold Config modules to use from the specified source. repeated string configs = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -1631,6 +1670,9 @@ message SkaffoldModules { // Cloud Storage bucket containing the Skaffold Config modules. SkaffoldGCSSource google_cloud_storage = 3; + + // Cloud Build V2 repository containing the Skaffold Config modules. + SkaffoldGCBRepoSource google_cloud_build_repo = 4; } } @@ -1966,7 +2008,8 @@ message Release { } // Optional. Name of the `Release`. Format is - // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}`. + // The `release` component must match `[a-z]([a-z0-9-]{0,61}[a-z0-9])?` string name = 1 [(google.api.field_behavior) = OPTIONAL]; // Output only. Unique identifier of the `Release`. @@ -2338,7 +2381,8 @@ message Rollout { } // Optional. Name of the `Rollout`. Format is - // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. + // The `rollout` component must match `[a-z]([a-z0-9-]{0,61}[a-z0-9])?` string name = 1 [(google.api.field_behavior) = OPTIONAL]; // Output only. Unique identifier of the `Rollout`. @@ -2426,7 +2470,7 @@ message Rollout { Metadata metadata = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Name of the `ControllerRollout`. Format is - // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. string controller_rollout = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Name of the `Rollout` that is rolled back by this `Rollout`. @@ -3226,7 +3270,7 @@ message PostdeployJobRun { // createChildRollout `JobRun`. message CreateChildRolloutJobRun { // Output only. Name of the `ChildRollout`. Format is - // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. string rollout = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The ID of the childRollout Phase initiated by this JobRun. @@ -3237,7 +3281,7 @@ message CreateChildRolloutJobRun { // advanceChildRollout `JobRun`. message AdvanceChildRolloutJobRun { // Output only. Name of the `ChildRollout`. Format is - // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}`. + // `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. string rollout = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. the ID of the ChildRollout's Phase. @@ -3480,7 +3524,8 @@ message AutomationRule { // target to a specified target. message PromoteReleaseRule { // Required. ID of the rule. This id must be unique in the `Automation` - // resource to which this rule belongs. The format is `[a-z][a-z0-9\-]{0,62}`. + // resource to which this rule belongs. The format is + // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. string id = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. How long the release need to be paused until being promoted to @@ -3510,7 +3555,8 @@ message PromoteReleaseRule { // Rollout to the next phase. message AdvanceRolloutRule { // Required. ID of the rule. This id must be unique in the `Automation` - // resource to which this rule belongs. The format is `[a-z][a-z0-9\-]{0,62}`. + // resource to which this rule belongs. The format is + // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. string id = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Proceeds only after phase name matched any one in the list. @@ -3532,7 +3578,8 @@ message AdvanceRolloutRule { // `Rollout`. message RepairRolloutRule { // Required. ID of the rule. This id must be unique in the `Automation` - // resource to which this rule belongs. The format is `[a-z][a-z0-9\-]{0,62}`. + // resource to which this rule belongs. The format is + // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. string id = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Phases within which jobs are subject to automatic repair actions diff --git a/third_party/googleapis/google/cloud/deploy/v1/clouddeploy_v1.yaml b/third_party/googleapis/google/cloud/deploy/v1/clouddeploy_v1.yaml index 77df4d49a..7819fc929 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/clouddeploy_v1.yaml +++ b/third_party/googleapis/google/cloud/deploy/v1/clouddeploy_v1.yaml @@ -62,12 +62,15 @@ http: get: '/v1/{resource=projects/*/locations/*/deliveryPipelines/*}:getIamPolicy' additional_bindings: - get: '/v1/{resource=projects/*/locations/*/targets/*}:getIamPolicy' + - get: '/v1/{resource=projects/*/locations/*/customTargetTypes/*}:getIamPolicy' - selector: google.iam.v1.IAMPolicy.SetIamPolicy post: '/v1/{resource=projects/*/locations/*/deliveryPipelines/*}:setIamPolicy' body: '*' additional_bindings: - post: '/v1/{resource=projects/*/locations/*/targets/*}:setIamPolicy' body: '*' + - post: '/v1/{resource=projects/*/locations/*/customTargetTypes/*}:setIamPolicy' + body: '*' - selector: google.iam.v1.IAMPolicy.TestIamPermissions post: '/v1/{resource=projects/*/locations/*/deliveryPipelines/*}:testIamPermissions' body: '*' diff --git a/third_party/googleapis/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto index 5cba63380..56ec61083 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/deliverypipeline_notification_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/jobrun_notification_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/jobrun_notification_payload.proto index 29396ccff..421e289c7 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/jobrun_notification_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/jobrun_notification_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/log_enums.proto b/third_party/googleapis/google/cloud/deploy/v1/log_enums.proto index ab9dcb209..b62c9d2e2 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/log_enums.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/log_enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/release_notification_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/release_notification_payload.proto index 4686438aa..3b023d384 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/release_notification_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/release_notification_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/release_render_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/release_render_payload.proto index 9d2a84698..44bc33f7c 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/release_render_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/release_render_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/rollout_notification_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/rollout_notification_payload.proto index 15d09f605..cd949a7ec 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/rollout_notification_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/rollout_notification_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/rollout_update_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/rollout_update_payload.proto index 337331dbc..db97e1617 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/rollout_update_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/rollout_update_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/deploy/v1/target_notification_payload.proto b/third_party/googleapis/google/cloud/deploy/v1/target_notification_payload.proto index d38df104c..f78f70e45 100644 --- a/third_party/googleapis/google/cloud/deploy/v1/target_notification_payload.proto +++ b/third_party/googleapis/google/cloud/deploy/v1/target_notification_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/developerconnect/BUILD.bazel b/third_party/googleapis/google/cloud/developerconnect/BUILD.bazel new file mode 100644 index 000000000..d319cc2f1 --- /dev/null +++ b/third_party/googleapis/google/cloud/developerconnect/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-developer_connect. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for google-cloud-developer_connect. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "developerconnect_ruby_wrapper", + srcs = ["//google/cloud/developerconnect/v1:developerconnect_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-developer_connect", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/developerconnect/v1:developerconnect_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-developerconnect-ruby", + deps = [ + ":developerconnect_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/developerconnect/v1/BUILD.bazel b/third_party/googleapis/google/cloud/developerconnect/v1/BUILD.bazel new file mode 100644 index 000000000..9b5066c30 --- /dev/null +++ b/third_party/googleapis/google/cloud/developerconnect/v1/BUILD.bazel @@ -0,0 +1,395 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "developerconnect_proto", + srcs = [ + "developer_connect.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "developerconnect_proto_with_info", + deps = [ + ":developerconnect_proto", + "//google/cloud/location:location_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "developerconnect_java_proto", + deps = [":developerconnect_proto"], +) + +java_grpc_library( + name = "developerconnect_java_grpc", + srcs = [":developerconnect_proto"], + deps = [":developerconnect_java_proto"], +) + +java_gapic_library( + name = "developerconnect_java_gapic", + srcs = [":developerconnect_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "developerconnect_v1.yaml", + test_deps = [ + "//google/cloud/location:location_java_grpc", + ":developerconnect_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":developerconnect_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "developerconnect_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.developerconnect.v1.DeveloperConnectClientHttpJsonTest", + "com.google.cloud.developerconnect.v1.DeveloperConnectClientTest", + ], + runtime_deps = [":developerconnect_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-developerconnect-v1-java", + transport = "grpc+rest", + deps = [ + ":developerconnect_java_gapic", + ":developerconnect_java_grpc", + ":developerconnect_java_proto", + ":developerconnect_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "developerconnect_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/developerconnect/apiv1/developerconnectpb", + protos = [":developerconnect_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "developerconnect_go_gapic", + srcs = [":developerconnect_proto_with_info"], + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/developerconnect/apiv1;developerconnect", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "developerconnect_v1.yaml", + transport = "grpc+rest", + deps = [ + ":developerconnect_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-developerconnect-v1-go", + deps = [ + ":developerconnect_go_gapic", + ":developerconnect_go_gapic_srcjar-test.srcjar", + ":developerconnect_go_gapic_srcjar-metadata.srcjar", + ":developerconnect_go_gapic_srcjar-snippets.srcjar", + ":developerconnect_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "developerconnect_py_gapic", + srcs = [":developerconnect_proto"], + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "developerconnect_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "developerconnect_py_gapic_test", + srcs = [ + "developerconnect_py_gapic_pytest.py", + "developerconnect_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":developerconnect_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "developerconnect-v1-py", + deps = [ + ":developerconnect_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "developerconnect_php_proto", + deps = [":developerconnect_proto"], +) + +php_gapic_library( + name = "developerconnect_php_gapic", + srcs = [":developerconnect_proto_with_info"], + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "developerconnect_v1.yaml", + transport = "grpc+rest", + deps = [ + ":developerconnect_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-developerconnect-v1-php", + deps = [ + ":developerconnect_php_gapic", + ":developerconnect_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "developerconnect_nodejs_gapic", + package_name = "@google-cloud/developerconnect", + src = ":developerconnect_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + package = "google.cloud.developerconnect.v1", + rest_numeric_enums = True, + service_yaml = "developerconnect_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "developerconnect-v1-nodejs", + deps = [ + ":developerconnect_nodejs_gapic", + ":developerconnect_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "developerconnect_ruby_proto", + deps = [":developerconnect_proto"], +) + +ruby_grpc_library( + name = "developerconnect_ruby_grpc", + srcs = [":developerconnect_proto"], + deps = [":developerconnect_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "developerconnect_ruby_gapic", + srcs = [":developerconnect_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-developer_connect-v1", + ], + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "developerconnect_v1.yaml", + transport = "grpc+rest", + deps = [ + ":developerconnect_ruby_grpc", + ":developerconnect_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-developerconnect-v1-ruby", + deps = [ + ":developerconnect_ruby_gapic", + ":developerconnect_ruby_grpc", + ":developerconnect_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "developerconnect_csharp_proto", + extra_opts = [], + deps = [":developerconnect_proto"], +) + +csharp_grpc_library( + name = "developerconnect_csharp_grpc", + srcs = [":developerconnect_proto"], + deps = [":developerconnect_csharp_proto"], +) + +csharp_gapic_library( + name = "developerconnect_csharp_gapic", + srcs = [":developerconnect_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "developerconnect_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "developerconnect_v1.yaml", + transport = "grpc+rest", + deps = [ + ":developerconnect_csharp_grpc", + ":developerconnect_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-developerconnect-v1-csharp", + deps = [ + ":developerconnect_csharp_gapic", + ":developerconnect_csharp_grpc", + ":developerconnect_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "developerconnect_cc_proto", + deps = [":developerconnect_proto"], +) + +cc_grpc_library( + name = "developerconnect_cc_grpc", + srcs = [":developerconnect_proto"], + grpc_only = True, + deps = [":developerconnect_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/developerconnect/v1/developer_connect.proto b/third_party/googleapis/google/cloud/developerconnect/v1/developer_connect.proto new file mode 100644 index 000000000..3bd3a64ef --- /dev/null +++ b/third_party/googleapis/google/cloud/developerconnect/v1/developer_connect.proto @@ -0,0 +1,888 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.developerconnect.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DeveloperConnect.V1"; +option go_package = "cloud.google.com/go/developerconnect/apiv1/developerconnectpb;developerconnectpb"; +option java_multiple_files = true; +option java_outer_classname = "DeveloperConnectProto"; +option java_package = "com.google.cloud.developerconnect.v1"; +option objc_class_prefix = "DeveloperConnect"; +option php_namespace = "Google\\Cloud\\DeveloperConnect\\V1"; +option ruby_package = "Google::Cloud::DeveloperConnect::V1"; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{secret_version}" +}; + +// Service describing handlers for resources +service DeveloperConnect { + option (google.api.default_host) = "developerconnect.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Connections in a given project and location. + rpc ListConnections(ListConnectionsRequest) + returns (ListConnectionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/connections" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Connection. + rpc GetConnection(GetConnectionRequest) returns (Connection) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/connections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Connection in a given project and location. + rpc CreateConnection(CreateConnectionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/connections" + body: "connection" + }; + option (google.api.method_signature) = "parent,connection,connection_id"; + option (google.longrunning.operation_info) = { + response_type: "Connection" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a single Connection. + rpc UpdateConnection(UpdateConnectionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{connection.name=projects/*/locations/*/connections/*}" + body: "connection" + }; + option (google.api.method_signature) = "connection,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Connection" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single Connection. + rpc DeleteConnection(DeleteConnectionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/connections/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Creates a GitRepositoryLink. Upon linking a Git Repository, Developer + // Connect will configure the Git Repository to send webhook events to + // Developer Connect. Connections that use Firebase GitHub Application will + // have events forwarded to the Firebase service. All other Connections will + // have events forwarded to Cloud Build. + rpc CreateGitRepositoryLink(CreateGitRepositoryLinkRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/connections/*}/gitRepositoryLinks" + body: "git_repository_link" + }; + option (google.api.method_signature) = + "parent,git_repository_link,git_repository_link_id"; + option (google.longrunning.operation_info) = { + response_type: "GitRepositoryLink" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single GitRepositoryLink. + rpc DeleteGitRepositoryLink(DeleteGitRepositoryLinkRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/connections/*/gitRepositoryLinks/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists GitRepositoryLinks in a given project, location, and connection. + rpc ListGitRepositoryLinks(ListGitRepositoryLinksRequest) + returns (ListGitRepositoryLinksResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/connections/*}/gitRepositoryLinks" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single GitRepositoryLink. + rpc GetGitRepositoryLink(GetGitRepositoryLinkRequest) + returns (GitRepositoryLink) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/connections/*/gitRepositoryLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Fetches read/write token of a given gitRepositoryLink. + rpc FetchReadWriteToken(FetchReadWriteTokenRequest) + returns (FetchReadWriteTokenResponse) { + option (google.api.http) = { + post: "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchReadWriteToken" + body: "*" + }; + option (google.api.method_signature) = "git_repository_link"; + } + + // Fetches read token of a given gitRepositoryLink. + rpc FetchReadToken(FetchReadTokenRequest) returns (FetchReadTokenResponse) { + option (google.api.http) = { + post: "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchReadToken" + body: "*" + }; + option (google.api.method_signature) = "git_repository_link"; + } + + // FetchLinkableGitRepositories returns a list of git repositories from an SCM + // that are available to be added to a Connection. + rpc FetchLinkableGitRepositories(FetchLinkableGitRepositoriesRequest) + returns (FetchLinkableGitRepositoriesResponse) { + option (google.api.http) = { + get: "/v1/{connection=projects/*/locations/*/connections/*}:fetchLinkableGitRepositories" + }; + option (google.api.method_signature) = "connection"; + } + + // FetchGitHubInstallations returns the list of GitHub Installations that + // are available to be added to a Connection. + // For github.com, only installations accessible to the authorizer token + // are returned. For GitHub Enterprise, all installations are returned. + rpc FetchGitHubInstallations(FetchGitHubInstallationsRequest) + returns (FetchGitHubInstallationsResponse) { + option (google.api.http) = { + get: "/v1/{connection=projects/*/locations/*/connections/*}:fetchGitHubInstallations" + }; + option (google.api.method_signature) = "connection"; + } + + // Fetch the list of branches or tags for a given repository. + rpc FetchGitRefs(FetchGitRefsRequest) returns (FetchGitRefsResponse) { + option (google.api.http) = { + get: "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchGitRefs" + }; + option (google.api.method_signature) = "git_repository_link,ref_type"; + } +} + +// Message describing Connection object +message Connection { + option (google.api.resource) = { + type: "developerconnect.googleapis.com/Connection" + pattern: "projects/{project}/locations/{location}/connections/{connection}" + plural: "connections" + singular: "connection" + style: DECLARATIVE_FRIENDLY + }; + + // Configuration for the connection depending on the type of provider. + oneof connection_config { + // Configuration for connections to github.com. + GitHubConfig github_config = 5; + } + + // Identifier. The resource name of the connection, in the format + // `projects/{project}/locations/{location}/connections/{connection_id}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. [Output only] Create timestamp + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] Update timestamp + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] Delete timestamp + google.protobuf.Timestamp delete_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels as key value pairs + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Installation state of the Connection. + InstallationState installation_state = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If disabled is set to true, functionality is disabled for this + // connection. Repository based API methods and webhooks processing for + // repositories in this connection will be disabled. + bool disabled = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Set to true when the connection is being set up or updated in + // the background. + bool reconciling = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Allows clients to store small amounts of arbitrary data. + map annotations = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A system-assigned unique identifier for a the + // GitRepositoryLink. + string uid = 12 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Describes stage and necessary actions to be taken by the +// user to complete the installation. Used for GitHub and GitHub Enterprise +// based connections. +message InstallationState { + // Stage of the installation process. + enum Stage { + // No stage specified. + STAGE_UNSPECIFIED = 0; + + // Only for GitHub Enterprise. An App creation has been requested. + // The user needs to confirm the creation in their GitHub enterprise host. + PENDING_CREATE_APP = 1; + + // User needs to authorize the GitHub (or Enterprise) App via OAuth. + PENDING_USER_OAUTH = 2; + + // User needs to follow the link to install the GitHub (or Enterprise) App. + PENDING_INSTALL_APP = 3; + + // Installation process has been completed. + COMPLETE = 10; + } + + // Output only. Current step of the installation process. + Stage stage = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Message of what the user should do next to continue the + // installation. Empty string if the installation is already complete. + string message = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to follow for next action. Empty string if the + // installation is already complete. + string action_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for connections to github.com. +message GitHubConfig { + // Represents the various GitHub Applications that can be installed to a + // GitHub user or organization and used with Developer Connect. + enum GitHubApp { + // GitHub App not specified. + GIT_HUB_APP_UNSPECIFIED = 0; + + // The Developer Connect GitHub Application. + DEVELOPER_CONNECT = 1; + + // The Firebase GitHub Application. + FIREBASE = 2; + } + + // Required. Immutable. The GitHub Application that was installed to the + // GitHub user or organization. + GitHubApp github_app = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. OAuth credential of the account that authorized the GitHub App. + // It is recommended to use a robot account instead of a human user account. + // The OAuth token must be tied to the GitHub App of this config. + OAuthCredential authorizer_credential = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. GitHub App installation id. + int64 app_installation_id = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The URI to navigate to in order to manage the installation + // associated with this GitHubConfig. + string installation_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents an OAuth token of the account that authorized the Connection, +// and associated metadata. +message OAuthCredential { + // Required. A SecretManager resource containing the OAuth token that + // authorizes the connection. Format: `projects/*/secrets/*/versions/*`. + string oauth_token_secret_version = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Output only. The username associated with this token. + string username = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for requesting list of Connections +message ListConnectionsRequest { + // Required. Parent value for ListConnectionsRequest + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "developerconnect.googleapis.com/Connection" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing Connections +message ListConnectionsResponse { + // The list of Connection + repeated Connection connections = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a Connection +message GetConnectionRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/Connection" + } + ]; +} + +// Message for creating a Connection +message CreateConnectionRequest { + // Required. Value for parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "developerconnect.googleapis.com/Connection" + } + ]; + + // Required. Id of the requesting object + // If auto-generating Id server-side, remove this field and + // connection_id from the method_signature of Create RPC + string connection_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + Connection connection = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set, validate the request, but do not actually post it. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for updating a Connection +message UpdateConnectionRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Connection resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated + Connection connection = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set to true, and the connection is not found a new connection + // will be created. In this situation `update_mask` is ignored. + // The creation will succeed only if the input connection has all the + // necessary information (e.g a github_config with both user_oauth_token and + // installation_id properties). + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validate the request, but do not actually post it. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting a Connection +message DeleteConnectionRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/Connection" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set, validate the request, but do not actually post it. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The current etag of the Connection. + // If an etag is provided and does not match the current etag of the + // Connection, deletion will be blocked and an ABORTED error will be returned. + string etag = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message describing the GitRepositoryLink object +message GitRepositoryLink { + option (google.api.resource) = { + type: "developerconnect.googleapis.com/GitRepositoryLink" + pattern: "projects/{project}/locations/{location}/connections/{connection}/gitRepositoryLinks/{git_repository_link}" + plural: "gitRepositoryLinks" + singular: "gitRepositoryLink" + style: DECLARATIVE_FRIENDLY + }; + + // Identifier. Resource name of the repository, in the format + // `projects/*/locations/*/connections/*/gitRepositoryLinks/*`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Git Clone URI. + string clone_uri = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. [Output only] Create timestamp + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] Update timestamp + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. [Output only] Delete timestamp + google.protobuf.Timestamp delete_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels as key value pairs + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Set to true when the connection is being set up or updated in + // the background. + bool reconciling = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Allows clients to store small amounts of arbitrary data. + map annotations = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A system-assigned unique identifier for a the + // GitRepositoryLink. + string uid = 10 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Message for creating a GitRepositoryLink +message CreateGitRepositoryLinkRequest { + // Required. Value for parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; + + // Required. The resource being created + GitRepositoryLink git_repository_link = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the repository, which will become the final + // component of the repository's resource name. This ID should be unique in + // the connection. Allows alphanumeric characters and any of + // -._~%!$&'()*+,;=@. + string git_repository_link_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set, validate the request, but do not actually post it. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting a GitRepositoryLink +message DeleteGitRepositoryLinkRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set, validate the request, but do not actually post it. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for requesting a list of GitRepositoryLinks +message ListGitRepositoryLinksRequest { + // Required. Parent value for ListGitRepositoryLinksRequest + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing GitRepositoryLinks +message ListGitRepositoryLinksResponse { + // The list of GitRepositoryLinks + repeated GitRepositoryLink git_repository_links = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a GitRepositoryLink +message GetGitRepositoryLinkRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; +} + +// Message for fetching SCM read/write token. +message FetchReadWriteTokenRequest { + // Required. The resource name of the gitRepositoryLink in the format + // `projects/*/locations/*/connections/*/gitRepositoryLinks/*`. + string git_repository_link = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; +} + +// Message for fetching SCM read token. +message FetchReadTokenRequest { + // Required. The resource name of the gitRepositoryLink in the format + // `projects/*/locations/*/connections/*/gitRepositoryLinks/*`. + string git_repository_link = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; +} + +// Message for responding to get read token. +message FetchReadTokenResponse { + // The token content. + string token = 1; + + // Expiration timestamp. Can be empty if unknown or non-expiring. + google.protobuf.Timestamp expiration_time = 2; + + // The git_username to specify when making a git clone with the + // token. For example, for GitHub GitRepositoryLinks, this would be + // "x-access-token" + string git_username = 3; +} + +// Message for responding to get read/write token. +message FetchReadWriteTokenResponse { + // The token content. + string token = 1; + + // Expiration timestamp. Can be empty if unknown or non-expiring. + google.protobuf.Timestamp expiration_time = 2; + + // The git_username to specify when making a git clone with the + // token. For example, for GitHub GitRepositoryLinks, this would be + // "x-access-token" + string git_username = 3; +} + +// Request message for FetchLinkableGitRepositoriesRequest. +message FetchLinkableGitRepositoriesRequest { + // Required. The name of the Connection. + // Format: `projects/*/locations/*/connections/*`. + string connection = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/Connection" + } + ]; + + // Optional. Number of results to return in the list. Defaults to 20. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page start. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for FetchLinkableGitRepositories. +message FetchLinkableGitRepositoriesResponse { + // The git repositories that can be linked to the connection. + repeated LinkableGitRepository linkable_git_repositories = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// LinkableGitRepository represents a git repository that can be linked to a +// connection. +message LinkableGitRepository { + // The clone uri of the repository. + string clone_uri = 1; +} + +// Request for fetching github installations. +message FetchGitHubInstallationsRequest { + // Required. The resource name of the connection in the format + // `projects/*/locations/*/connections/*`. + string connection = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/Connection" + } + ]; +} + +// Response of fetching github installations. +message FetchGitHubInstallationsResponse { + // Represents an installation of the GitHub App. + message Installation { + // ID of the installation in GitHub. + int64 id = 1; + + // Name of the GitHub user or organization that owns this installation. + string name = 2; + + // Either "user" or "organization". + string type = 3; + } + + // List of installations available to the OAuth user (for github.com) + // or all the installations (for GitHub enterprise). + repeated Installation installations = 1; +} + +// Request for fetching git refs. +message FetchGitRefsRequest { + // Type of refs. + enum RefType { + // No type specified. + REF_TYPE_UNSPECIFIED = 0; + + // To fetch tags. + TAG = 1; + + // To fetch branches. + BRANCH = 2; + } + + // Required. The resource name of GitRepositoryLink in the format + // `projects/*/locations/*/connections/*/gitRepositoryLinks/*`. + string git_repository_link = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "developerconnect.googleapis.com/GitRepositoryLink" + } + ]; + + // Required. Type of refs to fetch. + RefType ref_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Number of results to return in the list. Default to 20. + int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page start. + string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for fetching git refs. +message FetchGitRefsResponse { + // Name of the refs fetched. + repeated string ref_names = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/developerconnect/v1/developerconnect_v1.yaml b/third_party/googleapis/google/cloud/developerconnect/v1/developerconnect_v1.yaml new file mode 100644 index 000000000..764007ed5 --- /dev/null +++ b/third_party/googleapis/google/cloud/developerconnect/v1/developerconnect_v1.yaml @@ -0,0 +1,103 @@ +type: google.api.Service +config_version: 3 +name: developerconnect.googleapis.com +title: Developer Connect API + +apis: +- name: google.cloud.developerconnect.v1.DeveloperConnect +- name: google.cloud.location.Locations +- name: google.longrunning.Operations + +types: +- name: google.cloud.developerconnect.v1.OperationMetadata + +documentation: + summary: 'Connect third-party source code management to Google' + overview: |- + Developer Connect streamlines integration with third-party source code + management platforms by simplifying authentication, authorization, and + networking configuration. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.developerconnect.v1.DeveloperConnect.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1446966&template=1822025 + documentation_uri: https://cloud.google.com/developer-connect/docs/overview + api_short_name: developerconnect + github_label: 'api: developerconnect' + doc_tag_prefix: developerconnect + organization: CLOUD + library_settings: + - version: google.cloud.developerconnect.v1 + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/cloud/developerconnect/v1/developerconnect_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/developerconnect/v1/developerconnect_v1_grpc_service_config.json new file mode 100644 index 000000000..2555d9e44 --- /dev/null +++ b/third_party/googleapis/google/cloud/developerconnect/v1/developerconnect_v1_grpc_service_config.json @@ -0,0 +1,27 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "ListConnections" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "GetConnection" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "CreateConnection" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "UpdateConnection" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "DeleteConnection" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "CreateGitRepositoryLink" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "DeleteGitRepositoryLink" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "ListGitRepositoryLink" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "GetGitRepositoryLink" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchReadWriteToken" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchReadToken" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchLinkableGitRepositories" }, + { "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchGitHubInstallations" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} \ No newline at end of file diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/advanced_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/advanced_settings.proto index 5f8cb9194..93e643c89 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/advanced_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/advanced_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/agent.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/agent.proto index b83c9c393..33b24376d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/agent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/audio_config.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/audio_config.proto index fdeb750a3..458b22a2f 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/audio_config.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/changelog.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/changelog.proto index e78dd93eb..d3bab51b6 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/changelog.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/changelog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/data_store_connection.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/data_store_connection.proto index 9dde00671..884ae7a65 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/data_store_connection.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/data_store_connection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/deployment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/deployment.proto index c676332e3..eda0e2415 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/deployment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/deployment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/entity_type.proto index 7730dd546..e3dfd74b4 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/environment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/environment.proto index b20e0f73c..75f45ee06 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/environment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/experiment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/experiment.proto index 5931a3847..53f906116 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/experiment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/flow.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/flow.proto index 11c861b67..e5b68bb6b 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/flow.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/flow.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/fulfillment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/fulfillment.proto index 56c224748..273ca8309 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/fulfillment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/gcs.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/gcs.proto index 1a2b55bf0..efe71d9fb 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/gcs.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/gcs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/generative_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/generative_settings.proto index b2601f12a..416b2440d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/generative_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/generative_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/generator.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/generator.proto index 56b8bd0d0..78149e3b8 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/generator.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/generator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/import_strategy.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/import_strategy.proto index 91f2c2b9a..3008d8f51 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/import_strategy.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/import_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/inline.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/inline.proto index 26c398ba4..d90ce9cd9 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/inline.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/inline.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/intent.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/intent.proto index 6b2aa9565..e47a28c64 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/intent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/page.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/page.proto index 512c3cb25..bf5007e44 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/page.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/page.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/response_message.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/response_message.proto index bf0992953..9630a7a5b 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/response_message.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/response_message.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/safety_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/safety_settings.proto index 042bd16d7..014c01d2d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/safety_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/safety_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/security_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/security_settings.proto index 641f2d894..3a165baab 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/security_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/security_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/session.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/session.proto index 71132d37f..9f6f15b6f 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/session.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/session.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/session_entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/session_entity_type.proto index e263dbbe8..64eb19ef6 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/session_entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/test_case.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/test_case.proto index 982425c73..c624c8816 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/test_case.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/test_case.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/transition_route_group.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/transition_route_group.proto index 85ad8a6fd..242810629 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/transition_route_group.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/transition_route_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/validation_message.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/validation_message.proto index 58c11d1da..a8516e1e4 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/validation_message.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/validation_message.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/version.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/version.proto index 4ec02b764..71b95de43 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/version.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3/webhook.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3/webhook.proto index 749bffa4f..3c1737547 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3/webhook.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel index e084fbe75..b9adb592f 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/BUILD.bazel @@ -25,6 +25,7 @@ proto_library( "agent.proto", "audio_config.proto", "changelog.proto", + "conversation_history.proto", "data_store_connection.proto", "deployment.proto", "entity_type.proto", @@ -129,6 +130,8 @@ java_gapic_test( "com.google.cloud.dialogflow.cx.v3beta1.AgentsClientTest", "com.google.cloud.dialogflow.cx.v3beta1.ChangelogsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.ChangelogsClientTest", + "com.google.cloud.dialogflow.cx.v3beta1.ConversationHistoryClientHttpJsonTest", + "com.google.cloud.dialogflow.cx.v3beta1.ConversationHistoryClientTest", "com.google.cloud.dialogflow.cx.v3beta1.DeploymentsClientHttpJsonTest", "com.google.cloud.dialogflow.cx.v3beta1.DeploymentsClientTest", "com.google.cloud.dialogflow.cx.v3beta1.EntityTypesClientHttpJsonTest", diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto index e6086381b..18806c410 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.dialogflow.cx.v3beta1; import "google/api/field_behavior.proto"; import "google/cloud/dialogflow/cx/v3beta1/gcs.proto"; +import "google/protobuf/duration.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1"; @@ -40,6 +41,27 @@ option ruby_package = "Google::Cloud::Dialogflow::CX::V3beta1"; // // Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. message AdvancedSettings { + // Define behaviors of speech to text detection. + message SpeechSettings { + // Sensitivity of the speech model that detects the end of speech. + // Scale from 0 to 100. + int32 endpointer_sensitivity = 1; + + // Timeout before detecting no speech. + google.protobuf.Duration no_speech_timeout = 2; + + // Use timeout based endpointing, interpreting endpointer sensitivy as + // seconds of timeout value. + bool use_timeout_based_endpointing = 3; + + // Mapping from language to Speech-to-Text model. The mapped Speech-to-Text + // model will be selected for requests from its corresponding language. + // For more information, see + // [Speech + // models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models). + map models = 5; + } + // Define behaviors for DTMF (dual tone multi frequency). message DtmfSettings { // If true, incoming audio is processed for DTMF (dual tone multi frequency) @@ -55,6 +77,12 @@ message AdvancedSettings { // The digit that terminates a DTMF digit sequence. string finish_digit = 3; + + // Interdigit timeout setting for matching dtmf input to regex. + google.protobuf.Duration interdigit_timeout_duration = 6; + + // Endpoint timeout setting for matching dtmf input to regex. + google.protobuf.Duration endpointing_timeout_duration = 7; } // Define behaviors on logging. @@ -73,6 +101,14 @@ message AdvancedSettings { // - Flow level GcsDestination audio_export_gcs_destination = 2; + // Settings for speech to text detection. + // Exposed at the following levels: + // - Agent level + // - Flow level + // - Page level + // - Parameter level + SpeechSettings speech_settings = 3; + // Settings for DTMF. // Exposed at the following levels: // - Agent level diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/agent.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/agent.proto index 0dccd245f..55f8c350a 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/agent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -254,6 +254,20 @@ message Agent { bool enable_answer_feedback = 1 [(google.api.field_behavior) = OPTIONAL]; } + // Settings for end user personalization. + message PersonalizationSettings { + // Optional. Default end user metadata, used when processing DetectIntent + // requests. Recommended to be filled as a template instead of hard-coded + // value, for example { "age": "$session.params.age" }. The data will be + // merged with the + // [QueryParameters.end_user_metadata][google.cloud.dialogflow.cx.v3beta1.QueryParameters.end_user_metadata] + // in + // [DetectIntentRequest.query_params][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.query_params] + // during query processing. + google.protobuf.Struct default_end_user_metadata = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + // The unique identifier of the agent. // Required for the // [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent] @@ -300,33 +314,29 @@ message Agent { // Speech recognition related settings. SpeechToTextSettings speech_to_text_settings = 13; - // Optional. Name of the start flow in this agent. A start flow will be - // automatically created when the agent is created, and can only be deleted by - // deleting the agent. Format: `projects//locations//agents//flows/`. Currently only the default start - // flow with id "00000000-0000-0000-0000-000000000000" is allowed. - // - // Only one of `start_flow` or `start_playbook` should be set, but not both. - string start_flow = 16 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" } - ]; - - // Optional. Name of the start playbook in this agent. A start playbook will - // be automatically created when the agent is created, and can only be deleted - // by deleting the agent. - // Format: `projects//locations//agents//playbooks/`. Currently only the - // default playbook with id - // "00000000-0000-0000-0000-000000000000" is allowed. - // - // Only one of `start_flow` or `start_playbook` should be set, but not both. - string start_playbook = 39 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { + // The resource to start the conversations with for the agent. + oneof session_entry_resource { + // Name of the start flow in this agent. A start flow will be automatically + // created when the agent is created, and can only be deleted by deleting + // the agent. + // Format: `projects//locations//agents//flows/`. Currently only the default start + // flow with id "00000000-0000-0000-0000-000000000000" is allowed. + string start_flow = 16 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Flow" + }]; + + // Name of the start playbook in this agent. A start playbook will be + // automatically created when the agent is created, and can only be deleted + // by deleting the agent. + // Format: `projects//locations//agents//playbooks/`. Currently only the + // default playbook with id + // "00000000-0000-0000-0000-000000000000" is allowed. + string start_playbook = 39 [(google.api.resource_reference) = { type: "dialogflow.googleapis.com/Playbook" - } - ]; + }]; + } // Name of the // [SecuritySettings][google.cloud.dialogflow.cx.v3beta1.SecuritySettings] @@ -346,6 +356,11 @@ message Agent { // requests. bool enable_spell_correction = 20; + // Optional. Enable training multi-lingual models for this agent. These models + // will be trained on all the languages supported by the agent. + bool enable_multi_language_training = 40 + [(google.api.field_behavior) = OPTIONAL]; + // Indicates whether the agent is locked for changes. If the agent is locked, // modifications to the agent will be rejected except for [RestoreAgent][]. bool locked = 27; @@ -367,6 +382,10 @@ message Agent { // Optional. Answer feedback collection settings. AnswerFeedbackSettings answer_feedback_settings = 38 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Settings for end user personalization. + PersonalizationSettings personalization_settings = 42 + [(google.api.field_behavior) = OPTIONAL]; } // The request message for diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/audio_config.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/audio_config.proto index 3fd7b9b77..a428a2685 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/audio_config.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/changelog.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/changelog.proto index ece81d288..ca9e89c4a 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/changelog.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/changelog.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/conversation_history.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/conversation_history.proto new file mode 100644 index 000000000..6d39a7fec --- /dev/null +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/conversation_history.proto @@ -0,0 +1,372 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.dialogflow.cx.v3beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/dialogflow/cx/v3beta1/environment.proto"; +import "google/cloud/dialogflow/cx/v3beta1/flow.proto"; +import "google/cloud/dialogflow/cx/v3beta1/intent.proto"; +import "google/cloud/dialogflow/cx/v3beta1/page.proto"; +import "google/cloud/dialogflow/cx/v3beta1/session.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1"; +option go_package = "cloud.google.com/go/dialogflow/cx/apiv3beta1/cxpb;cxpb"; +option java_multiple_files = true; +option java_outer_classname = "ConversationHistoryProto"; +option java_package = "com.google.cloud.dialogflow.cx.v3beta1"; +option objc_class_prefix = "DF"; +option ruby_package = "Google::Cloud::Dialogflow::CX::V3beta1"; + +// Service for managing conversation history. +service ConversationHistory { + option (google.api.default_host) = "dialogflow.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/dialogflow"; + + // Returns the list of all conversations. + rpc ListConversations(ListConversationsRequest) + returns (ListConversationsResponse) { + option (google.api.http) = { + get: "/v3beta1/{parent=projects/*/locations/*/agents/*}/conversations" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieves the specified conversation. + rpc GetConversation(GetConversationRequest) returns (Conversation) { + option (google.api.http) = { + get: "/v3beta1/{name=projects/*/locations/*/agents/*/conversations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes the specified conversation. + rpc DeleteConversation(DeleteConversationRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v3beta1/{name=projects/*/locations/*/agents/*/conversations/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// The request message for [Conversations.GetConversation][]. +message GetConversationRequest { + // Required. The name of the conversation. + // Format: `projects//locations//agents//conversations/`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Conversation" + } + ]; +} + +// The request message for [Conversations.DeleteConversation][]. +message DeleteConversationRequest { + // Required. The name of the conversation. + // Format: `projects//locations//agents//conversations/`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Conversation" + } + ]; +} + +// The request message for [Conversations.ListConversations][]. +message ListConversationsRequest { + // Required. The agent to list all conversations for. + // Format: `projects//locations//agents/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dialogflow.googleapis.com/Conversation" + } + ]; + + // Optional. The filter string. Supports filter by create_time, + // metrics.has_end_interaction, metrics.has_live_agent_handoff, + // intents.display_name, pages.display_name and flows.display_name. Timestamps + // expect an [RFC-3339][https://datatracker.ietf.org/doc/html/rfc3339] + // formatted string (e.g. 2012-04-21T11:30:00-04:00). UTC offsets are + // supported. Some examples: + // 1. By create time: + // create_time > "2022-04-21T11:30:00-04:00" + // 2. By intent display name: + // intents.display_name : "billing" + // 3. By end interaction signal: + // metrics.has_end_interaction = true + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of items to return in a single page. By + // default 100 and at most 1000. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous list request. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for [Conversations.ListConversations][]. +message ListConversationsResponse { + // The list of conversations. There will be a maximum number of items returned + // based on the + // [page_size][google.cloud.dialogflow.cx.v3beta1.ListConversationsRequest.page_size] + // field. The returned conversations will be sorted by start_time in + // descending order (newest conversation first). + repeated Conversation conversations = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + string next_page_token = 2; +} + +// Represents a conversation. +message Conversation { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/Conversation" + pattern: "projects/{project}/locations/{location}/agents/{agent}/conversations/{conversation}" + plural: "conversations" + singular: "conversation" + }; + + // Represents the type of a conversation. + enum Type { + // Not specified. This value should never be used. + TYPE_UNSPECIFIED = 0; + + // Audio conversation. A conversation is classified as an audio conversation + // if any request has STT input audio or any response has TTS output audio. + AUDIO = 1; + + // Text conversation. A conversation is classified as a text conversation + // if any request has text input and no request has STT input audio and no + // response has TTS output audio. + TEXT = 2; + + // Default conversation type for a conversation. A conversation is + // classified as undetermined if none of the requests contain text or audio + // input (eg. event or intent input). + UNDETERMINED = 3; + } + + // Represents metrics for the conversation. + message Metrics { + // Count by types of + // [QueryInput][google.cloud.dialogflow.cx.v3beta1.QueryInput] of the + // requests in the conversation. + message QueryInputCount { + // The number of [TextInput][google.cloud.dialogflow.cx.v3beta1.TextInput] + // in the conversation. + int32 text_count = 1; + + // The number of + // [IntentInput][google.cloud.dialogflow.cx.v3beta1.IntentInput] in the + // conversation. + int32 intent_count = 2; + + // The number of + // [AudioInput][google.cloud.dialogflow.cx.v3beta1.AudioInput] in the + // conversation. + int32 audio_count = 3; + + // The number of + // [EventInput][google.cloud.dialogflow.cx.v3beta1.EventInput] in the + // conversation. + int32 event_count = 4; + + // The number of [DtmfInput][google.cloud.dialogflow.cx.v3beta1.DtmfInput] + // in the conversation. + int32 dtmf_count = 5; + } + + // Count by + // [Match.MatchType][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] of + // the matches in the conversation. + message MatchTypeCount { + // The number of matches with type + // [Match.MatchType.MATCH_TYPE_UNSPECIFIED][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.MATCH_TYPE_UNSPECIFIED]. + int32 unspecified_count = 1; + + // The number of matches with type + // [Match.MatchType.INTENT][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.INTENT]. + int32 intent_count = 2; + + // The number of matches with type + // [Match.MatchType.DIRECT_INTENT][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.DIRECT_INTENT]. + int32 direct_intent_count = 3; + + // The number of matches with type + // [Match.MatchType.PARAMETER_FILLING][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.PARAMETER_FILLING]. + int32 parameter_filling_count = 4; + + // The number of matches with type + // [Match.MatchType.NO_MATCH][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.NO_MATCH]. + int32 no_match_count = 5; + + // The number of matches with type + // [Match.MatchType.NO_INPUT][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.NO_INPUT]. + int32 no_input_count = 6; + + // The number of matches with type + // [Match.MatchType.EVENT][google.cloud.dialogflow.cx.v3beta1.Match.MatchType.EVENT]. + int32 event_count = 7; + } + + // The number of interactions in the conversation. + int32 interaction_count = 1; + + // Duration of all the input's audio in the conversation. + google.protobuf.Duration input_audio_duration = 2; + + // Duration of all the output's audio in the conversation. + google.protobuf.Duration output_audio_duration = 3; + + // Maximum latency of the + // [Webhook][google.cloud.dialogflow.cx.v3beta1.Webhook] calls in the + // conversation. + google.protobuf.Duration max_webhook_latency = 4; + + // A signal that indicates the interaction with the Dialogflow agent has + // ended. + // If any response has the + // [ResponseMessage.end_interaction][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.end_interaction] + // signal, this is set to true. + bool has_end_interaction = 5; + + // Hands off conversation to a human agent. + // If any response has the + // [ResponseMessage.live_agent_handoff][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.live_agent_handoff]signal, + // this is set to true. + bool has_live_agent_handoff = 6; + + // The average confidence all of the + // [Match][google.cloud.dialogflow.cx.v3beta1.Match] in the conversation. + // Values range from 0.0 (completely uncertain) to 1.0 (completely certain). + float average_match_confidence = 7; + + // Query input counts. + QueryInputCount query_input_count = 8; + + // Match type counts. + MatchTypeCount match_type_count = 9; + } + + // Represents an interaction between an end user and a Dialogflow CX agent + // using V3 (Streaming)DetectIntent API, or an interaction between an end user + // and a Dialogflow CX agent using V2 (Streaming)AnalyzeContent API. + message Interaction { + // Information collected for DF CX agents in case NLU predicted an intent + // that was filtered out as being inactive which may indicate a missing + // transition and/or absent functionality. + message MissingTransition { + // Name of the intent that could have triggered. + string intent_display_name = 1; + + // Score of the above intent. The higher it is the more likely a + // transition was missed on a given page. + float score = 2; + } + + // The request of the interaction. + DetectIntentRequest request = 1; + + // The final response of the interaction. + DetectIntentResponse response = 2; + + // The partial responses of the interaction. Empty if there is no partial + // response in the interaction. + // See the + // [partial response + // documentation][https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#queue]. + repeated DetectIntentResponse partial_responses = 3; + + // The input text or the transcript of the input audio in the request. + string request_utterances = 4; + + // The output text or the transcript of the output audio in the responses. + // If multiple output messages are returned, they will be concatenated into + // one. + string response_utterances = 5; + + // The time that the interaction was created. + google.protobuf.Timestamp create_time = 6; + + // Missing transition predicted for the interaction. This field is set only + // if the interaction match type was no-match. + MissingTransition missing_transition = 8; + } + + // Identifier. The identifier of the conversation. + // If conversation ID is reused, interactions happened later than 48 hours of + // the conversation's create time will be ignored. Format: + // `projects//locations//agents//conversations/` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The type of the conversation. + Type type = 2; + + // The language of the conversation, which is the language of the first + // request in the conversation. + string language_code = 3; + + // Start time of the conversation, which is the time of the first request of + // the conversation. + google.protobuf.Timestamp start_time = 4; + + // Duration of the conversation. + google.protobuf.Duration duration = 5; + + // Conversation metrics. + Metrics metrics = 6; + + // All the matched [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] in the + // conversation. Only `name` and `display_name` are filled in this message. + repeated Intent intents = 7; + + // All the [Flow][google.cloud.dialogflow.cx.v3beta1.Flow] the conversation + // has went through. Only `name` and `display_name` are filled in this + // message. + repeated Flow flows = 8; + + // All the [Page][google.cloud.dialogflow.cx.v3beta1.Page] the conversation + // has went through. Only `name` and `display_name` are filled in this + // message. + repeated Page pages = 9; + + // Interactions of the conversation. + // Only populated for `GetConversation` and empty for `ListConversations`. + repeated Interaction interactions = 10; + + // Environment of the conversation. + // Only `name` and `display_name` are filled in this message. + Environment environment = 11; + + // Flow versions used in the conversation. + map flow_versions = 12; +} diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto index d3896d8a5..1c6d663d4 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; +import "google/api/field_behavior.proto"; + option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3Beta1"; option go_package = "cloud.google.com/go/dialogflow/cx/apiv3beta1/cxpb;cxpb"; @@ -54,3 +56,175 @@ enum DataStoreType { // A data store that contains structured data (for example FAQ). STRUCTURED = 3; } + +// Data store connection feature output signals. +// Might be only partially field if processing stop before the final answer. +// Reasons for this can be, but are not limited to: empty UCS search results, +// positive RAI check outcome, grounding failure, ... +message DataStoreConnectionSignals { + // Diagnostic info related to the rewriter model call. + message RewriterModelCallSignals { + // Prompt as sent to the model. + string rendered_prompt = 1; + + // Output of the generative model. + string model_output = 2; + } + + // Search snippet details. + message SearchSnippet { + // Title of the enclosing document. + string document_title = 1; + + // Uri for the document. Present if specified for the document. + string document_uri = 2; + + // Text included in the prompt. + string text = 3; + } + + // Diagnostic info related to the answer generation model call. + message AnswerGenerationModelCallSignals { + // Prompt as sent to the model. + string rendered_prompt = 1; + + // Output of the generative model. + string model_output = 2; + } + + // Answer part with citation. + message AnswerPart { + // Substring of the answer. + string text = 1; + + // Citations for this answer part. Indices of `search_snippets`. + repeated int32 supporting_indices = 2; + } + + // Snippet cited by the answer generation model. + message CitedSnippet { + // Details of the snippet. + SearchSnippet search_snippet = 1; + + // Index of the snippet in `search_snippets` field. + int32 snippet_index = 2; + } + + // Grounding signals. + message GroundingSignals { + // Represents the decision of the grounding check. + enum GroundingDecision { + // Decision not specified. + GROUNDING_DECISION_UNSPECIFIED = 0; + + // Grounding have accepted the answer. + ACCEPTED_BY_GROUNDING = 1; + + // Grounding have rejected the answer. + REJECTED_BY_GROUNDING = 2; + } + + // Grounding score buckets. + enum GroundingScoreBucket { + // Score not specified. + GROUNDING_SCORE_BUCKET_UNSPECIFIED = 0; + + // We have very low confidence that the answer is grounded. + VERY_LOW = 1; + + // We have low confidence that the answer is grounded. + LOW = 3; + + // We have medium confidence that the answer is grounded. + MEDIUM = 4; + + // We have high confidence that the answer is grounded. + HIGH = 5; + + // We have very high confidence that the answer is grounded. + VERY_HIGH = 6; + } + + // Represents the decision of the grounding check. + GroundingDecision decision = 1; + + // Grounding score bucket setting. + GroundingScoreBucket score = 2; + } + + // Safety check results. + message SafetySignals { + // Safety decision. + // All kinds of check are incorporated into this final decision, including + // banned phrases check. + enum SafetyDecision { + // Decision not specified. + SAFETY_DECISION_UNSPECIFIED = 0; + + // No manual or automatic safety check fired. + ACCEPTED_BY_SAFETY_CHECK = 1; + + // One ore more safety checks fired. + REJECTED_BY_SAFETY_CHECK = 2; + } + + // Specifies banned phrase match subject. + enum BannedPhraseMatch { + // No banned phrase check was executed. + BANNED_PHRASE_MATCH_UNSPECIFIED = 0; + + // All banned phrase checks led to no match. + BANNED_PHRASE_MATCH_NONE = 1; + + // A banned phrase matched the query. + BANNED_PHRASE_MATCH_QUERY = 2; + + // A banned phrase matched the response. + BANNED_PHRASE_MATCH_RESPONSE = 3; + } + + // Safety decision. + SafetyDecision decision = 1; + + // Specifies banned phrase match subject. + BannedPhraseMatch banned_phrase_match = 2; + + // The matched banned phrase if there was a match. + string matched_banned_phrase = 3; + } + + // Optional. Diagnostic info related to the rewriter model call. + RewriterModelCallSignals rewriter_model_call_signals = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Rewritten string query used for search. + string rewritten_query = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Search snippets included in the answer generation prompt. + repeated SearchSnippet search_snippets = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Diagnostic info related to the answer generation model call. + AnswerGenerationModelCallSignals answer_generation_model_call_signals = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The final compiled answer. + string answer = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Answer parts with relevant citations. + // Concatenation of texts should add up the `answer` (not counting + // whitespaces). + repeated AnswerPart answer_parts = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Snippets cited by the answer generation model from the most to + // least relevant. + repeated CitedSnippet cited_snippets = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Grounding signals. + GroundingSignals grounding_signals = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Safety check result. + SafetySignals safety_signals = 9 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/deployment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/deployment.proto index 3ace56c7a..4e9508950 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/deployment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/deployment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_grpc_service_config.json b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_grpc_service_config.json index 5f1c496cd..09cee6bdc 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_grpc_service_config.json @@ -8,6 +8,9 @@ { "service": "google.cloud.dialogflow.cx.v3beta1.Changelogs" }, + { + "service": "google.cloud.dialogflow.cx.v3beta1.ConversationHistory" + }, { "service": "google.cloud.dialogflow.cx.v3beta1.Deployments" }, diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml index 305fc78a4..0bcd29607 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml @@ -6,6 +6,7 @@ title: Dialogflow API apis: - name: google.cloud.dialogflow.cx.v3beta1.Agents - name: google.cloud.dialogflow.cx.v3beta1.Changelogs +- name: google.cloud.dialogflow.cx.v3beta1.ConversationHistory - name: google.cloud.dialogflow.cx.v3beta1.Deployments - name: google.cloud.dialogflow.cx.v3beta1.EntityTypes - name: google.cloud.dialogflow.cx.v3beta1.Environments @@ -118,6 +119,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/dialogflow + - selector: 'google.cloud.dialogflow.cx.v3beta1.ConversationHistory.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow - selector: google.cloud.dialogflow.cx.v3beta1.Deployments.GetDeployment oauth: canonical_scopes: |- diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/entity_type.proto index b6432fcd1..1f6fea198 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/environment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/environment.proto index 140af1ab0..bd4fb890b 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/environment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/example.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/example.proto index 59408aae2..b36539e44 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/example.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/example.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -243,8 +243,8 @@ message PlaybookInput { string preceding_conversation_summary = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A list of input parameters for the invocation. - repeated ActionParameter parameters = 2 + // Optional. A list of input parameters for the action. + google.protobuf.Struct action_parameters = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -253,8 +253,8 @@ message PlaybookOutput { // Optional. Summary string of the execution result of the child playbook. string execution_summary = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A list of output parameters for the invocation. - repeated ActionParameter parameters = 3 + // Optional. A Struct object of output parameters for the action. + google.protobuf.Struct action_parameters = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -307,20 +307,13 @@ message ToolUse { // Optional. Name of the action to be called during the tool use. string action = 2 [(google.api.field_behavior) = OPTIONAL]; - // A list of input parameters for the action. - repeated ActionParameter input_parameters = 3; - - // A list of output parameters generated by the action. - repeated ActionParameter output_parameters = 4; -} - -// Parameter associated with action. -message ActionParameter { - // Required. Name of the parameter. - string name = 1 [(google.api.field_behavior) = REQUIRED]; + // Optional. A list of input parameters for the action. + google.protobuf.Struct input_action_parameters = 5 + [(google.api.field_behavior) = OPTIONAL]; - // Required. Value of the parameter. - google.protobuf.Value value = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. A list of output parameters generated by the action. + google.protobuf.Struct output_action_parameters = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Stores metadata of the invocation of a child playbook. @@ -357,11 +350,13 @@ message FlowInvocation { (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" } ]; - // A list of input parameters for the flow invocation. - repeated ActionParameter input_parameters = 2; + // Optional. A list of input parameters for the flow. + google.protobuf.Struct input_action_parameters = 5 + [(google.api.field_behavior) = OPTIONAL]; - // A list of output parameters generated by the flow invocation. - repeated ActionParameter output_parameters = 3; + // Optional. A list of output parameters generated by the flow invocation. + google.protobuf.Struct output_action_parameters = 6 + [(google.api.field_behavior) = OPTIONAL]; // Required. Flow invocation's output state. OutputState flow_state = 4 [(google.api.field_behavior) = REQUIRED]; diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/experiment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/experiment.proto index e9f8e51a4..1b57f892d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/experiment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/flow.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/flow.proto index dd88934fd..04ac95cfd 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/flow.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/flow.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -256,6 +256,26 @@ message Flow { pattern: "projects/{project}/locations/{location}/agents/{agent}/flows/{flow}" }; + // Settings for multi-lingual agents. + message MultiLanguageSettings { + // Optional. Enable multi-language detection for this flow. This can be set + // only if [agent level multi language + // setting][Agent.enable_multi_language_training] is enabled. + bool enable_multi_language_detection = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Agent will respond in the detected language if the detected + // language code is in the supported resolved languages for this flow. This + // will be used only if multi-language training is enabled in the + // [agent][google.cloud.dialogflow.cx.v3beta1.Agent.enable_multi_language_training] + // and multi-language detection is enabled in the + // [flow][google.cloud.dialogflow.cx.v3beta1.Flow.MultiLanguageSettings.enable_multi_language_detection]. + // The supported languages must be a subset of the languages supported by + // the agent. + repeated string supported_response_language_codes = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // The unique identifier of the flow. // Format: `projects//locations//agents//flows/`. @@ -329,6 +349,10 @@ message Flow { // Optional. Knowledge connector configuration. KnowledgeConnectorSettings knowledge_connector_settings = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Multi-lingual agent settings for this flow. + MultiLanguageSettings multi_language_settings = 28 + [(google.api.field_behavior) = OPTIONAL]; } // The request message for diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto index 4817a7ba1..277b71084 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/gcs.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/gcs.proto index c0b4d747f..e7abe25bc 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/gcs.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/gcs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generative_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generative_settings.proto index e6fc47ffd..d1cf6f78e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generative_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generative_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generator.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generator.proto index 70fdacde3..91cf820a2 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generator.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/generator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/import_strategy.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/import_strategy.proto index a00f25d58..020aba242 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/import_strategy.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/import_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/inline.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/inline.proto index cf182ee28..f812c56cb 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/inline.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/inline.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/intent.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/intent.proto index 29a050a8a..e5d52321e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/intent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/page.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/page.proto index 40a409be9..ecb95932e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/page.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/page.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/parameter_definition.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/parameter_definition.proto index 8938a3475..874315f86 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/parameter_definition.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/parameter_definition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/playbook.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/playbook.proto index ea091901c..8fa20b534 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/playbook.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/playbook.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -235,6 +235,13 @@ message Playbook { repeated Step steps = 2; } + // Message of the Instruction of the playbook. + message Instruction { + // Ordered list of step by step execution instructions to accomplish + // target goal. + repeated Step steps = 2; + } + // The unique identifier of the playbook. // Format: `projects//locations//agents//playbooks/`. @@ -255,9 +262,8 @@ message Playbook { repeated google.cloud.dialogflow.cx.v3beta1.ParameterDefinition output_parameter_definitions = 6 [(google.api.field_behavior) = OPTIONAL]; - // Ordered list of step by step execution instructions to accomplish - // target goal. - repeated Step steps = 4; + // Instruction to accomplish target goal. + Instruction instruction = 17; // Output only. Estimated number of tokes current playbook takes when sent to // the LLM. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/response_message.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/response_message.proto index 37b092872..5410b972d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/response_message.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/response_message.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3beta1; import "google/api/field_behavior.proto"; +import "google/cloud/dialogflow/cx/v3beta1/tool_call.proto"; import "google/protobuf/struct.proto"; option cc_enable_arenas = true; @@ -235,6 +236,10 @@ message ResponseMessage { // Represents info card for knowledge answers, to be better rendered in // Dialogflow Messenger. KnowledgeInfoCard knowledge_info_card = 20; + + // Returns the definition of a tool call that should be executed by the + // client. + google.cloud.dialogflow.cx.v3beta1.ToolCall tool_call = 22; } // The channel which the response is associated with. Clients can specify the diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/safety_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/safety_settings.proto index 88c287e9c..4c2647298 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/safety_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/safety_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/security_settings.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/security_settings.proto index 1bb3f0456..2a2b4f392 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/security_settings.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/security_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -223,7 +223,8 @@ message SecuritySettings { // Retains the persisted data with Dialogflow's internal default 365d TTLs. RETENTION_STRATEGY_UNSPECIFIED = 0; - // Removes data when the conversation ends. If there is no [Conversation][] + // Removes data when the conversation ends. If there is no + // [Conversation][google.cloud.dialogflow.cx.v3beta1.Conversation] // explicitly established, a default conversation ends when the // corresponding Dialogflow session ends. REMOVE_AFTER_CONVERSATION = 1; @@ -268,11 +269,17 @@ message SecuritySettings { string audio_export_pattern = 2; // Enable audio redaction if it is true. + // Note that this only redacts end-user audio data; + // Synthesised audio from the virtual agent is not redacted. bool enable_audio_redaction = 3; // File format for exported audio file. Currently only in telephony // recordings. AudioFormat audio_format = 4; + + // Whether to store TTS audio. By default, TTS audio from the virtual agent + // is not exported. + bool store_tts_audio = 6; } // Settings for exporting conversations to @@ -357,6 +364,9 @@ message SecuritySettings { // for Agent Assist traffic), higher value will be ignored and use default. // Setting a value higher than that has no effect. A missing value or // setting to 0 also means we use default TTL. + // When data retention configuration is changed, it only applies to the data + // created after the change; the TTL of existing data created before the + // change stays intact. int32 retention_window_days = 6; // Specifies the retention behavior defined by diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session.proto index bdc3f6e2d..ec2f13709 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto"; import "google/cloud/dialogflow/cx/v3beta1/audio_config.proto"; +import "google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto"; import "google/cloud/dialogflow/cx/v3beta1/example.proto"; import "google/cloud/dialogflow/cx/v3beta1/flow.proto"; import "google/cloud/dialogflow/cx/v3beta1/generative_settings.proto"; @@ -749,6 +750,13 @@ message QueryParameters { // Optional. Search configuration for UCS search queries. SearchConfig search_config = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true and data stores are involved in serving the + // request then + // DetectIntentResponse.query_result.data_store_connection_signals + // will be filled with data that can help evaluations. + bool populate_data_store_connection_signals = 25 + [(google.api.field_behavior) = OPTIONAL]; } // Search configuration for UCS search queries. @@ -1047,6 +1055,13 @@ message QueryResult { // Indicates whether the Thumbs up/Thumbs down rating controls are need to be // shown for the response in the Dialogflow Messenger widget. bool allow_answer_feedback = 32; + + // Optional. Data store connection feature output signals. + // Filled only when data stores are involved in serving the query and + // DetectIntentRequest.populate data_store_connection_quality_signals is set + // to true in the request. + DataStoreConnectionSignals data_store_connection_signals = 35 + [(google.api.field_behavior) = OPTIONAL]; } // Represents the natural language text to be processed. @@ -1126,6 +1141,10 @@ message Match { // The query directly triggered an event. EVENT = 6; + + // The query was handled by a + // [`Playbook`][google.cloud.dialogflow.cx.v3beta1.Playbook]. + PLAYBOOK = 9; } // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto index 0297d628e..ac26562c5 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/test_case.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/test_case.proto index d61676b70..6e966a919 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/test_case.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/test_case.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool.proto index ab74d54b1..0f16ab483 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -455,12 +455,6 @@ message Tool { // Required. High level description of the Tool and its usage. string description = 3 [(google.api.field_behavior) = REQUIRED]; - // The list of derived action names for the tool. - repeated string actions = 6 [deprecated = true]; - - // The list of derived type schemas for the tool. - repeated string schemas = 7 [deprecated = true]; - // Specification of the Tool. oneof specification { // OpenAPI specification of the Tool. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool_call.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool_call.proto index f636a806d..7d88c269c 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool_call.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/tool_call.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,6 +31,22 @@ option java_package = "com.google.cloud.dialogflow.cx.v3beta1"; option objc_class_prefix = "DF"; option ruby_package = "Google::Cloud::Dialogflow::CX::V3beta1"; +// Represents a call of a specific tool's action with the specified inputs. +message ToolCall { + // The [tool][Tool] associated with this call. + // Format: `projects//locations//agents//tools/`. + string tool = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Tool" } + ]; + // The name of the tool's action associated with this call. + string action = 2 [(google.api.field_behavior) = REQUIRED]; + // The action's input parameters. + google.protobuf.Struct input_parameters = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + // The result of calling a tool's action that has been executed by the client. message ToolCallResult { // The [tool][Tool] associated with this call. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto index a68a44905..27f8555cb 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/validation_message.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/validation_message.proto index 0ff2df787..214a06b64 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/validation_message.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/validation_message.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/version.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/version.proto index 452fd8b00..0c1671544 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/version.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/webhook.proto b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/webhook.proto index ce564df22..e4cc38b8c 100644 --- a/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/webhook.proto +++ b/third_party/googleapis/google/cloud/dialogflow/cx/v3beta1/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -101,6 +101,47 @@ message Webhook { // Represents configuration for a generic web service. message GenericWebService { + // Represents configuration of OAuth client credential flow for 3rd party + // API authentication. + message OAuthConfig { + // Required. The client ID provided by the 3rd party platform. + string client_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The client secret provided by the 3rd party platform. + string client_secret = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The token endpoint provided by the 3rd party platform to + // exchange an access token. + string token_endpoint = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The OAuth scopes to grant. + repeated string scopes = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Indicate the auth token type generated from the [Diglogflow service + // agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). + enum ServiceAgentAuth { + // Service agent auth type unspecified. Default to ID_TOKEN. + SERVICE_AGENT_AUTH_UNSPECIFIED = 0; + + // No token used. + NONE = 1; + + // Use [ID + // token](https://cloud.google.com/docs/authentication/token-types#id) + // generated from service agent. This can be used to access Cloud Function + // and Cloud Run after you grant Invoker role to + // `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`. + ID_TOKEN = 2; + + // Use [access + // token](https://cloud.google.com/docs/authentication/token-types#access) + // generated from service agent. This can be used to access other Google + // Cloud APIs after you grant required roles to + // `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`. + ACCESS_TOKEN = 3; + } + // Represents the type of webhook configuration. enum WebhookType { // Default value. This value is unused. @@ -169,6 +210,18 @@ message Webhook { repeated bytes allowed_ca_certs = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The OAuth configuration of the webhook. If specified, + // Dialogflow will initiate the OAuth client credential flow to exchange an + // access token from the 3rd party platform and put it in the auth header. + OAuthConfig oauth_config = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicate the auth token type generated from the [Diglogflow + // service + // agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). + // The generated token is sent in the Authorization header. + ServiceAgentAuth service_agent_auth = 12 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Type of the webhook. WebhookType webhook_type = 6 [(google.api.field_behavior) = OPTIONAL]; @@ -465,6 +518,9 @@ message WebhookRequest { // The sentiment analysis result of the current user request. The field is // filled when sentiment analysis is configured to be enabled for the request. SentimentAnalysisResult sentiment_analysis_result = 9; + + // Information about the language of the request. + LanguageInfo language_info = 18; } // The response message for a webhook call. @@ -655,3 +711,17 @@ message SessionInfo { // map is keyed by parameters' display names. map parameters = 2; } + +// Represents the language information of the request. +message LanguageInfo { + // The language code specified in the original + // [request][google.cloud.dialogflow.cx.v3beta1.QueryInput.language_code]. + string input_language_code = 1; + + // The language code detected for this request based on the user + // conversation. + string resolved_language_code = 2; + + // The confidence score of the detected language between 0 and 1. + float confidence_score = 3; +} diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/BUILD.bazel b/third_party/googleapis/google/cloud/dialogflow/v2/BUILD.bazel index e2e855f66..cc1d76d32 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/BUILD.bazel +++ b/third_party/googleapis/google/cloud/dialogflow/v2/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "dialogflow_proto", @@ -73,6 +76,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -169,6 +173,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -225,6 +230,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -264,6 +270,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -301,6 +308,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -332,6 +340,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -386,6 +395,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -396,7 +406,6 @@ load( csharp_proto_library( name = "dialogflow_csharp_proto", - extra_opts = [], deps = [":dialogflow_proto"], ) @@ -433,6 +442,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/agent.proto b/third_party/googleapis/google/cloud/dialogflow/v2/agent.proto index 5595f4c97..471ec4657 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/agent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/answer_record.proto b/third_party/googleapis/google/cloud/dialogflow/v2/answer_record.proto index 8463144dd..42a095bc2 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/answer_record.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/answer_record.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -271,6 +271,10 @@ message AgentAssistantFeedback { // Text of actual submitted summary. string summary_text = 3; + + // Optional. Actual text sections of submitted summary. + map text_sections = 4 + [(google.api.field_behavior) = OPTIONAL]; } // Feedback for knowledge search. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/audio_config.proto b/third_party/googleapis/google/cloud/dialogflow/v2/audio_config.proto index 6d08164a2..8d15943a9 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/audio_config.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -167,6 +167,12 @@ message InputAudioConfig { // Enable automatic punctuation option at the speech backend. bool enable_automatic_punctuation = 17; + + // If `true`, the request will opt out for STT conformer model migration. + // This field will be deprecated once force migration takes place in June + // 2024. Please refer to [Dialogflow ES Speech model + // migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + bool opt_out_conformer_model_migration = 26; } // Description of which voice to use for speech synthesis. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/context.proto b/third_party/googleapis/google/cloud/dialogflow/v2/context.proto index 2b6b181f3..6a6c2bcc8 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/context.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/context.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/conversation.proto b/third_party/googleapis/google/cloud/dialogflow/v2/conversation.proto index 1d6d64f72..5f681057a 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/conversation.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_dataset.proto b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_dataset.proto index 88953a867..0009330b5 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_dataset.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_event.proto b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_event.proto index 8d12ee653..d46e7c921 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_event.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_model.proto b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_model.proto index fb6dfecc0..c192d5bfc 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_model.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_profile.proto b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_profile.proto index cc7ca9915..d4e989546 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/conversation_profile.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/conversation_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json b/third_party/googleapis/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json index 0c2beeb4f..a043e0de1 100755 --- a/third_party/googleapis/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json @@ -65,6 +65,9 @@ { "service": "google.cloud.dialogflow.v2.SessionEntityTypes" }, + { + "service": "google.cloud.dialogflow.v2.Tools" + }, { "service": "google.cloud.dialogflow.v2.Versions" }, diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/document.proto b/third_party/googleapis/google/cloud/dialogflow/v2/document.proto index 1c4597aec..0e416ad49 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/document.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/v2/entity_type.proto index b7069fb04..cc383b1c8 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/environment.proto b/third_party/googleapis/google/cloud/dialogflow/v2/environment.proto index 1bff0ad60..b7b50b12e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/environment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/fulfillment.proto b/third_party/googleapis/google/cloud/dialogflow/v2/fulfillment.proto index 14951bcfa..fc8e6084c 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/fulfillment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/gcs.proto b/third_party/googleapis/google/cloud/dialogflow/v2/gcs.proto index 6c63d357d..8527c332c 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/gcs.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/gcs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/human_agent_assistant_event.proto b/third_party/googleapis/google/cloud/dialogflow/v2/human_agent_assistant_event.proto index d20408f11..007fdbddd 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/human_agent_assistant_event.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/human_agent_assistant_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/intent.proto b/third_party/googleapis/google/cloud/dialogflow/v2/intent.proto index 1a949cc27..1e4cd1c9e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/intent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/knowledge_base.proto b/third_party/googleapis/google/cloud/dialogflow/v2/knowledge_base.proto index 8a8c87cc5..7b192e92e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/knowledge_base.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/knowledge_base.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/participant.proto b/third_party/googleapis/google/cloud/dialogflow/v2/participant.proto index b601dc5f4..b897cf625 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/participant.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/participant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/session.proto b/third_party/googleapis/google/cloud/dialogflow/v2/session.proto index 14ee524d1..58bcd5521 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/session.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/session.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -655,8 +655,8 @@ message StreamingRecognitionResult { // Message contains a (possibly partial) transcript. TRANSCRIPT = 1; - // Event indicates that the server has detected the end of the user's speech - // utterance and expects no additional inputs. + // This event indicates that the server has detected the end of the user's + // speech utterance and expects no additional inputs. // Therefore, the server will not process additional audio (although it may // subsequently return additional results). The client should stop sending // additional audio data, half-close the gRPC connection, and wait for any diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/session_entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/v2/session_entity_type.proto index ff1585907..facd1712f 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/session_entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/validation_result.proto b/third_party/googleapis/google/cloud/dialogflow/v2/validation_result.proto index c586c0b27..5b87a7865 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/validation_result.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/validation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/version.proto b/third_party/googleapis/google/cloud/dialogflow/v2/version.proto index c9f0560af..6f94adb03 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/version.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2/webhook.proto b/third_party/googleapis/google/cloud/dialogflow/v2/webhook.proto index 6aa28141b..3b899233c 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2/webhook.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/BUILD.bazel b/third_party/googleapis/google/cloud/dialogflow/v2beta1/BUILD.bazel index cf9c299d7..da9011d1d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "dialogflow_proto", @@ -71,6 +74,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -163,6 +167,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -219,6 +224,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -258,6 +264,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -295,6 +302,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -326,6 +334,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -380,6 +389,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -390,7 +400,6 @@ load( csharp_proto_library( name = "dialogflow_csharp_proto", - extra_opts = [], deps = [":dialogflow_proto"], ) @@ -427,6 +436,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/agent.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/agent.proto index a860df481..bd109a673 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/agent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/agent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/answer_record.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/answer_record.proto index 3e4716568..dc20cd9d1 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/answer_record.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/answer_record.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -243,6 +243,10 @@ message AgentAssistantFeedback { // Text of actual submitted summary. string summary_text = 3; + + // Optional. Actual text sections of submitted summary. + map text_sections = 4 + [(google.api.field_behavior) = OPTIONAL]; } // Feedback for knowledge search. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/audio_config.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/audio_config.proto index b97e4c844..1974640ca 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/audio_config.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/audio_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -110,7 +110,7 @@ message SpeechWordInfo { // phase. // // The client provides this configuration in terms of the durations of those -// two phases. The durations are measured in terms of the audio length fromt the +// two phases. The durations are measured in terms of the audio length from // the start of the input audio. // // The flow goes like below: @@ -215,6 +215,12 @@ message InputAudioConfig { // Enable automatic punctuation option at the speech backend. bool enable_automatic_punctuation = 17; + + // If `true`, the request will opt out for STT conformer model migration. + // This field will be deprecated once force migration takes place in June + // 2024. Please refer to [Dialogflow ES Speech model + // migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + bool opt_out_conformer_model_migration = 26; } // Description of which voice to use for speech synthesis. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/context.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/context.proto index 95d25919c..e79d759bc 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/context.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/context.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation.proto index c35e31e36..df9b4f677 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_event.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_event.proto index 6c3038380..398958022 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_event.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_profile.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_profile.proto index 4643a47c4..2ffbff7a2 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_profile.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/conversation_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json b/third_party/googleapis/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json index 06ab19dfd..825b42f19 100755 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json @@ -92,7 +92,6 @@ { "service": "google.cloud.dialogflow.v2beta1.HumanAssistService" }, - { "service": "google.cloud.dialogflow.v2beta1.Integrations" }, @@ -126,6 +125,9 @@ { "service": "google.cloud.dialogflow.v2beta1.SessionEntityTypes" }, + { + "service": "google.cloud.dialogflow.v2beta1.Tools" + }, { "service": "google.cloud.dialogflow.v2beta1.Versions" }, diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/document.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/document.proto index 2b55a8344..8fa711f47 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/document.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/entity_type.proto index 7c90e69d7..aa987cdfd 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/environment.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/environment.proto index 1d4809f01..f2b67f776 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/environment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/fulfillment.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/fulfillment.proto index 93c24f25d..966fd3f37 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/fulfillment.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/fulfillment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/gcs.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/gcs.proto index 02c31734f..b358c82be 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/gcs.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/gcs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto index 63b77d53e..f8b1e9c8e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/human_agent_assistant_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/intent.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/intent.proto index fc3a9ed93..323041fa3 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/intent.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/intent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/knowledge_base.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/knowledge_base.proto index 0e5556245..3a7155c3e 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/knowledge_base.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/knowledge_base.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/participant.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/participant.proto index baedc2fd3..d3fa78f68 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/participant.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/participant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -677,6 +677,9 @@ message AnalyzeContentRequest { // An input representing the selection of a suggestion. SuggestionInput suggestion_input = 12; + + // The intent to be triggered on V3 agent. + IntentInput intent_input = 13; } // Speech synthesis configuration. @@ -899,6 +902,16 @@ message StreamingAnalyzeContentRequest { // This input is ignored if the previous response indicated that DTMF input // is not accepted. TelephonyDtmfEvents input_dtmf = 9; + + // The intent to be triggered on V3 agent. + // Format: `projects//locations//locations/ + // /agents//intents/`. + string input_intent = 17; + + // The input event name. + // This can only be sent once and would cancel the ongoing speech + // recognition if any. + string input_event = 20; } // Parameters for a Dialogflow virtual-agent query. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/session.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/session.proto index 1443c83f7..162030c57 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/session.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/session.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -773,9 +773,9 @@ message StreamingRecognitionResult { // Message contains DTMF digits. DTMF_DIGITS = 3; - // Event indicates that the server has detected the end of the user's speech - // utterance and expects no additional speech. Therefore, the server will - // not process additional audio (although it may subsequently return + // This event indicates that the server has detected the end of the user's + // speech utterance and expects no additional speech. Therefore, the server + // will not process additional audio (although it may subsequently return // additional results). The client should stop sending additional audio // data, half-close the gRPC connection, and wait for any additional results // until the server closes the gRPC connection. This message is only sent if diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/session_entity_type.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/session_entity_type.proto index 1f1550c69..8adb3bf7d 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/session_entity_type.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/session_entity_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/validation_result.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/validation_result.proto index d1fb7a549..c1dd24b84 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/validation_result.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/validation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/version.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/version.proto index 1e2f5e1b0..2922b3972 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/version.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/dialogflow/v2beta1/webhook.proto b/third_party/googleapis/google/cloud/dialogflow/v2beta1/webhook.proto index 0504f0f68..80ea8b4d6 100644 --- a/third_party/googleapis/google/cloud/dialogflow/v2beta1/webhook.proto +++ b/third_party/googleapis/google/cloud/dialogflow/v2beta1/webhook.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/logging/error_log.proto b/third_party/googleapis/google/cloud/discoveryengine/logging/error_log.proto index dcb6d29da..fe030e1fe 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/logging/error_log.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/logging/error_log.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/BUILD.bazel b/third_party/googleapis/google/cloud/discoveryengine/v1/BUILD.bazel index b3e01a914..b3024ee4b 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/BUILD.bazel @@ -9,34 +9,49 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "discoveryengine_proto", srcs = [ + "answer.proto", + "chunk.proto", "common.proto", "completion.proto", "completion_service.proto", + "control.proto", + "control_service.proto", "conversation.proto", "conversational_search_service.proto", "data_store.proto", "data_store_service.proto", "document.proto", + "document_processing_config.proto", "document_service.proto", "engine.proto", "engine_service.proto", + "grounded_generation_service.proto", + "grounding.proto", "import_config.proto", + "project.proto", + "project_service.proto", "purge_config.proto", + "rank_service.proto", + "recommendation_service.proto", "schema.proto", "schema_service.proto", "search_service.proto", + "session.proto", "site_search_engine.proto", "site_search_engine_service.proto", "user_event.proto", @@ -64,12 +79,14 @@ proto_library_with_info( deps = [ ":discoveryengine_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -99,11 +116,13 @@ java_gapic_library( service_yaml = "discoveryengine_v1.yaml", test_deps = [ ":discoveryengine_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ ":discoveryengine_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) @@ -112,6 +131,8 @@ java_gapic_test( test_classes = [ "com.google.cloud.discoveryengine.v1.CompletionServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1.CompletionServiceClientTest", + "com.google.cloud.discoveryengine.v1.ControlServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1.ControlServiceClientTest", "com.google.cloud.discoveryengine.v1.ConversationalSearchServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1.ConversationalSearchServiceClientTest", "com.google.cloud.discoveryengine.v1.DataStoreServiceClientHttpJsonTest", @@ -120,6 +141,14 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1.DocumentServiceClientTest", "com.google.cloud.discoveryengine.v1.EngineServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1.EngineServiceClientTest", + "com.google.cloud.discoveryengine.v1.GroundedGenerationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1.GroundedGenerationServiceClientTest", + "com.google.cloud.discoveryengine.v1.ProjectServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1.ProjectServiceClientTest", + "com.google.cloud.discoveryengine.v1.RankServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1.RankServiceClientTest", + "com.google.cloud.discoveryengine.v1.RecommendationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1.RecommendationServiceClientTest", "com.google.cloud.discoveryengine.v1.SchemaServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1.SchemaServiceClientTest", "com.google.cloud.discoveryengine.v1.SearchServiceClientHttpJsonTest", @@ -148,6 +177,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -182,6 +212,7 @@ go_gapic_library( deps = [ ":discoveryengine_go_proto", "//google/api:httpbody_go_proto", + "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -205,6 +236,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -219,7 +251,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "discoveryengine_v1.yaml", transport = "grpc+rest", - deps = [], + deps = [ + ], ) py_test( @@ -243,6 +276,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -263,7 +297,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "discoveryengine_v1.yaml", transport = "grpc+rest", - deps = [":discoveryengine_php_proto"], + deps = [ + ":discoveryengine_php_proto", + ], ) # Open Source Packages @@ -278,6 +314,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -308,6 +345,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -330,9 +368,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "discoveryengine_ruby_gapic", srcs = [":discoveryengine_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-discovery_engine-v1", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-discovery_engine-v1"], grpc_service_config = "discoveryengine_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "discoveryengine_v1.yaml", @@ -356,6 +392,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -382,6 +419,7 @@ csharp_gapic_library( grpc_service_config = "discoveryengine_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "discoveryengine_v1.yaml", + transport = "grpc+rest", deps = [ ":discoveryengine_csharp_grpc", ":discoveryengine_csharp_proto", @@ -401,6 +439,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/answer.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/answer.proto new file mode 100644 index 000000000..f24e88174 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/answer.proto @@ -0,0 +1,350 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "AnswerProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Defines an answer. +message Answer { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Answer" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}/answers/{answer}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}/answers/{answer}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}/answers/{answer}" + }; + + // Citation info for a segment. + message Citation { + // Index indicates the start of the segment, measured in bytes (UTF-8 + // unicode). + int64 start_index = 1; + + // End of the attributed segment, exclusive. + int64 end_index = 2; + + // Citation sources for the attributed segment. + repeated CitationSource sources = 3; + } + + // Citation source. + message CitationSource { + // ID of the citation source. + string reference_id = 1; + } + + // Reference. + message Reference { + // Unstructured document information. + message UnstructuredDocumentInfo { + // Chunk content. + message ChunkContent { + // Chunk textual content. + string content = 1; + + // Page identifier. + string page_identifier = 2; + } + + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // List of cited chunk contents derived from document content. + repeated ChunkContent chunk_contents = 4; + + // The structured JSON metadata for the document. + // It is populated from the struct data from the Chunk in search result. + google.protobuf.Struct struct_data = 5; + } + + // Chunk information. + message ChunkInfo { + // Document metadata. + message DocumentMetadata { + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // Page identifier. + string page_identifier = 4; + + // The structured JSON metadata for the document. + // It is populated from the struct data from the Chunk in search result. + google.protobuf.Struct struct_data = 5; + } + + // Chunk resource name. + string chunk = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + }]; + + // Chunk textual content. + string content = 2; + + // Relevance score. + optional float relevance_score = 3; + + // Document metadata. + DocumentMetadata document_metadata = 4; + } + + // Search result content. + oneof content { + // Unstructured document information. + UnstructuredDocumentInfo unstructured_document_info = 1; + + // Chunk information. + ChunkInfo chunk_info = 2; + } + } + + // Step information. + message Step { + // Action. + message Action { + // Search action. + message SearchAction { + // The query to search. + string query = 1; + } + + // Observation. + message Observation { + message SearchResult { + // Snippet information. + message SnippetInfo { + // Snippet content. + string snippet = 1; + + // Status of the snippet defined by the search team. + string snippet_status = 2; + } + + // Chunk information. + message ChunkInfo { + // Chunk resource name. + string chunk = 1; + + // Chunk textual content. + string content = 2; + + // Relevance score. + optional float relevance_score = 3; + } + + // Document resource name. + string document = 1; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // If citation_type is DOCUMENT_LEVEL_CITATION, populate document + // level snippets. + repeated SnippetInfo snippet_info = 4; + + // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, + // populate chunk info. + repeated ChunkInfo chunk_info = 5; + + // Data representation. + // The structured JSON data for the document. + // It's populated from the struct data from the Document (code + // pointer: http://shortn/_objzAfIiHq), or the Chunk in search result + // (code pointer: http://shortn/_Ipo6KFFGBL). + google.protobuf.Struct struct_data = 6; + } + + // Search results observed by the search action, it can be snippets info + // or chunk info, depending on the citation type set by the user. + repeated SearchResult search_results = 2; + } + + // The action. + oneof action { + // Search action. + SearchAction search_action = 2; + } + + // Observation. + Observation observation = 3; + } + + // Enumeration of the state of the step. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Step is currently in progress. + IN_PROGRESS = 1; + + // Step currently failed. + FAILED = 2; + + // Step has succeeded. + SUCCEEDED = 3; + } + + // The state of the step. + State state = 1; + + // The description of the step. + string description = 2; + + // The thought of the step. + string thought = 3; + + // Actions. + repeated Action actions = 4; + } + + // Query understanding information. + message QueryUnderstandingInfo { + // Query classification information. + message QueryClassificationInfo { + // Query classification types. + enum Type { + // Unspecified query classification type. + TYPE_UNSPECIFIED = 0; + + // Adversarial query classification type. + ADVERSARIAL_QUERY = 1; + + // Non-answer-seeking query classification type. + NON_ANSWER_SEEKING_QUERY = 2; + } + + // Query classification type. + Type type = 1; + + // Classification output. + bool positive = 2; + } + + // Query classification information. + repeated QueryClassificationInfo query_classification_info = 1; + } + + // Enumeration of the state of the answer generation. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Answer generation is currently in progress. + IN_PROGRESS = 1; + + // Answer generation currently failed. + FAILED = 2; + + // Answer generation has succeeded. + SUCCEEDED = 3; + } + + // An enum for answer skipped reasons. + enum AnswerSkippedReason { + // Default value. The answer skipped reason is not specified. + ANSWER_SKIPPED_REASON_UNSPECIFIED = 0; + + // The adversarial query ignored case. + ADVERSARIAL_QUERY_IGNORED = 1; + + // The non-answer seeking query ignored case. + NON_ANSWER_SEEKING_QUERY_IGNORED = 2; + + // The out-of-domain query ignored case. + // + // Google skips the answer if there are no high-relevance search results. + OUT_OF_DOMAIN_QUERY_IGNORED = 3; + + // The potential policy violation case. + // + // Google skips the answer if there is a potential policy violation + // detected. This includes content that may be violent or toxic. + POTENTIAL_POLICY_VIOLATION = 4; + + // The no relevant content case. + // + // Google skips the answer if there is no relevant content in the + // retrieved search results. + NO_RELEVANT_CONTENT = 5; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*/answers/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The state of the answer generation. + State state = 2; + + // The textual answer. + string answer_text = 3; + + // Citations. + repeated Citation citations = 4; + + // References. + repeated Reference references = 5; + + // Suggested related questions. + repeated string related_questions = 6; + + // Answer generation steps. + repeated Step steps = 7; + + // Query understanding information. + QueryUnderstandingInfo query_understanding_info = 10; + + // Additional answer-skipped reasons. This provides the reason for ignored + // cases. If nothing is skipped, this field is not set. + repeated AnswerSkippedReason answer_skipped_reasons = 11; + + // Output only. Answer creation timestamp. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Answer completed timestamp. + google.protobuf.Timestamp complete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/chunk.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/chunk.proto new file mode 100644 index 000000000..06541029e --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/chunk.proto @@ -0,0 +1,119 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ChunkProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Chunk captures all raw metadata information of items to be recommended or +// searched in the chunk mode. +message Chunk { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Chunk" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + }; + + // Document metadata contains the information of the document of the current + // chunk. + message DocumentMetadata { + // Uri of the document. + string uri = 1; + + // Title of the document. + string title = 2; + + // Data representation. + // The structured JSON data for the document. It should conform to the + // registered [Schema][google.cloud.discoveryengine.v1.Schema] or an + // `INVALID_ARGUMENT` error is thrown. + google.protobuf.Struct struct_data = 3; + } + + // Page span of the chunk. + message PageSpan { + // The start page of the chunk. + int32 page_start = 1; + + // The end page of the chunk. + int32 page_end = 2; + } + + // Metadata of the current chunk. This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] + // API. + message ChunkMetadata { + // The previous chunks of the current chunk. The number is controlled by + // [SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks]. + // This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] + // API. + repeated Chunk previous_chunks = 1; + + // The next chunks of the current chunk. The number is controlled by + // [SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks]. + // This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] + // API. + repeated Chunk next_chunks = 2; + } + + // The full resource name of the chunk. + // Format: + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document_id}/chunks/{chunk_id}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1; + + // Unique chunk ID of the current chunk. + string id = 2; + + // Content is a string from a document (parsed content). + string content = 3; + + // Output only. Represents the relevance score based on similarity. + // Higher score indicates higher chunk relevance. + // The score is in range [-1.0, 1.0]. + // Only populated on [SearchService.SearchResponse][]. + optional double relevance_score = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Metadata of the document from the current chunk. + DocumentMetadata document_metadata = 5; + + // Output only. This field is OUTPUT_ONLY. + // It contains derived data that are not in the original input document. + google.protobuf.Struct derived_struct_data = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Page span of the chunk. + PageSpan page_span = 6; + + // Output only. Metadata of the current chunk. + ChunkMetadata chunk_metadata = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/common.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/common.proto index 292fc379f..f4891639a 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/common.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,12 +35,28 @@ option (google.api.resource_definition) = { type: "discoveryengine.googleapis.com/Collection" pattern: "projects/{project}/locations/{location}/collections/{collection}" }; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; option (google.api.resource_definition) = { type: "discoveryengine.googleapis.com/ServingConfig" pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}" pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}" pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}" }; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/GroundingConfig" + pattern: "projects/{project}/locations/{location}/groundingConfigs/{grounding_config}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/RankingConfig" + pattern: "projects/{project}/locations/{location}/rankingConfigs/{ranking_config}" +}; +option (google.api.resource_definition) = { + type: "healthcare.googleapis.com/FhirStore" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}" +}; // The industry vertical associated with the // [DataStore][google.cloud.discoveryengine.v1.DataStore]. @@ -54,6 +70,9 @@ enum IndustryVertical { // The media industry vertical. MEDIA = 2; + + // The healthcare FHIR vertical. + HEALTHCARE_FHIR = 7; } // The type of solution. @@ -69,10 +88,31 @@ enum SolutionType { // Used for use cases related to the Generative AI agent. SOLUTION_TYPE_CHAT = 3; + + // Used for use cases related to the Generative Chat agent. + // It's used for Generative chat engine only, the associated data stores + // must enrolled with `SOLUTION_TYPE_CHAT` solution. + SOLUTION_TYPE_GENERATIVE_CHAT = 4; +} + +// Defines a further subdivision of `SolutionType`. +// Specifically applies to +// [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1.SolutionType.SOLUTION_TYPE_SEARCH]. +enum SearchUseCase { + // Value used when unset. Will not occur in CSS. + SEARCH_USE_CASE_UNSPECIFIED = 0; + + // Search use case. Expects the traffic has a non-empty + // [query][google.cloud.discoveryengine.v1.SearchRequest.query]. + SEARCH_USE_CASE_SEARCH = 1; + + // Browse use case. Expects the traffic has an empty + // [query][google.cloud.discoveryengine.v1.SearchRequest.query]. + SEARCH_USE_CASE_BROWSE = 2; } // Tiers of search features. Different tiers might have different -// pricing. To learn more, please check the pricing documentation. +// pricing. To learn more, check the pricing documentation. enum SearchTier { // Default value when the enum is unspecified. This is invalid to use. SEARCH_TIER_UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/completion.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/completion.proto index 7f3a07118..17fbd56bb 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/completion.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/completion.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,3 +50,34 @@ message SuggestionDenyListEntry { // exact phrase, or block any suggestions containing this phrase. MatchOperator match_operator = 2 [(google.api.field_behavior) = REQUIRED]; } + +// Autocomplete suggestions that are imported from Customer. +message CompletionSuggestion { + // Ranking metrics of this suggestion. + oneof ranking_info { + // Global score of this suggestion. Control how this suggestion would be + // scored / ranked. + double global_score = 2; + + // Frequency of this suggestion. Will be used to rank suggestions when score + // is not available. + int64 frequency = 3; + } + + // Required. The suggestion text. + string suggestion = 1 [(google.api.field_behavior) = REQUIRED]; + + // BCP-47 language code of this suggestion. + string language_code = 4; + + // If two suggestions have the same groupId, they will not be + // returned together. Instead the one ranked higher will be returned. This can + // be used to deduplicate semantically identical suggestions. + string group_id = 5; + + // The score of this suggestion within its group. + double group_score = 6; + + // Alternative matching phrases for this suggestion. + repeated string alternative_phrases = 7; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/completion_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/completion_service.proto index fc92b2756..c498a2db9 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/completion_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -86,6 +86,44 @@ service CompletionService { metadata_type: "google.cloud.discoveryengine.v1.PurgeSuggestionDenyListEntriesMetadata" }; } + + // Imports + // [CompletionSuggestion][google.cloud.discoveryengine.v1.CompletionSuggestion]s + // for a DataStore. + rpc ImportCompletionSuggestions(ImportCompletionSuggestionsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:import" + body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:import" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1.ImportCompletionSuggestionsResponse" + metadata_type: "google.cloud.discoveryengine.v1.ImportCompletionSuggestionsMetadata" + }; + } + + // Permanently deletes all + // [CompletionSuggestion][google.cloud.discoveryengine.v1.CompletionSuggestion]s + // for a DataStore. + rpc PurgeCompletionSuggestions(PurgeCompletionSuggestionsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:purge" + body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:purge" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1.PurgeCompletionSuggestionsResponse" + metadata_type: "google.cloud.discoveryengine.v1.PurgeCompletionSuggestionsMetadata" + }; + } } // Request message for diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/control.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/control.proto new file mode 100644 index 000000000..d2d9e730b --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/control.proto @@ -0,0 +1,214 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Defines circumstances to be checked before allowing a behavior +message Condition { + // Matcher for search request query + message QueryTerm { + // The specific query value to match against + // + // Must be lowercase, must be UTF-8. + // Can have at most 3 space separated terms if full_match is true. + // Cannot be an empty string. + // Maximum length of 5000 characters. + string value = 1; + + // Whether the search query needs to exactly match the query term. + bool full_match = 2; + } + + // Used for time-dependent conditions. + message TimeRange { + // Start of time range. + // + // Range is inclusive. + google.protobuf.Timestamp start_time = 1; + + // End of time range. + // + // Range is inclusive. + // Must be in the future. + google.protobuf.Timestamp end_time = 2; + } + + // Search only + // A list of terms to match the query on. + // + // Maximum of 10 query terms. + repeated QueryTerm query_terms = 2; + + // Range of time(s) specifying when condition is active. + // + // Maximum of 10 time ranges. + repeated TimeRange active_time_range = 3; +} + +// Defines a conditioned behavior to employ during serving. +// Must be attached to a [ServingConfig][] to be considered at serving time. +// Permitted actions dependent on `SolutionType`. +message Control { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Control" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/controls/{control}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/controls/{control}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/controls/{control}" + }; + + // Adjusts order of products in returned list. + message BoostAction { + // Required. Strength of the boost, which should be in [-1, 1]. Negative + // boost means demotion. Default is 0.0 (No-op). + float boost = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which products to apply the boost to. + // + // If no filter is provided all products will be boosted (No-op). + // Syntax documentation: + // https://cloud.google.com/retail/docs/filter-and-order + // Maximum length is 5000 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which data store's documents can be boosted by this + // control. Full data store name e.g. + // projects/123/locations/global/collections/default_collection/dataStores/default_data_store + string data_store = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + + // Specified which products may be included in results. + // Uses same filter as boost. + message FilterAction { + // Required. A filter to apply on the matching condition results. + // + // Required + // Syntax documentation: + // https://cloud.google.com/retail/docs/filter-and-order + // Maximum length is 5000 characters. Otherwise an INVALID + // ARGUMENT error is thrown. + string filter = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which data store's documents can be filtered by this + // control. Full data store name e.g. + // projects/123/locations/global/collections/default_collection/dataStores/default_data_store + string data_store = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + + // Redirects a shopper to the provided URI. + message RedirectAction { + // Required. The URI to which the shopper will be redirected. + // + // Required. + // URI must have length equal or less than 2000 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string redirect_uri = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Creates a set of terms that will act as synonyms of one another. + // + // Example: "happy" will also be considered as "glad", "glad" will also be + // considered as "happy". + message SynonymsAction { + // Defines a set of synonyms. + // Can specify up to 100 synonyms. + // Must specify at least 2 synonyms. Otherwise an INVALID ARGUMENT error is + // thrown. + repeated string synonyms = 1; + } + + // Actions are restricted by Vertical and Solution + // + // Required. + oneof action { + // Defines a boost-type control + BoostAction boost_action = 6; + + // Defines a filter-type control + // Currently not supported by Recommendation + FilterAction filter_action = 7; + + // Defines a redirect-type control. + RedirectAction redirect_action = 9; + + // Treats a group of terms as synonyms of one another. + SynonymsAction synonyms_action = 10; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/dataStore/*/controls/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Human readable name. The identifier used in UI views. + // + // Must be UTF-8 encoded string. Length limit is 128 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. List of all [ServingConfig][] ids this control is attached to. + // May take up to 10 minutes to update after changes. + repeated string associated_serving_config_ids = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. What solution the control belongs to. + // + // Must be compatible with vertical of resource. + // Otherwise an INVALID ARGUMENT error is thrown. + SolutionType solution_type = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Specifies the use case for the control. + // Affects what condition fields can be set. + // Only applies to + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1.SolutionType.SOLUTION_TYPE_SEARCH]. + // Currently only allow one use case per control. + // Must be set when solution_type is + // [SolutionType.SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated SearchUseCase use_cases = 8; + + // Determines when the associated action will trigger. + // + // Omit to always apply the action. + // Currently only a single condition may be specified. + // Otherwise an INVALID ARGUMENT error is thrown. + repeated Condition conditions = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/control_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/control_service.proto new file mode 100644 index 000000000..e7c044040 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/control_service.proto @@ -0,0 +1,236 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/control.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ControlServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Service for performing CRUD operations on Controls. +// Controls allow for custom logic to be implemented in the serving path. +// Controls need to be attached to a Serving Config to be considered during a +// request. +service ControlService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Control. + // + // By default 1000 controls are allowed for a data store. + // A request can be submitted to adjust this limit. + // If the [Control][google.cloud.discoveryengine.v1.Control] to create already + // exists, an ALREADY_EXISTS error is returned. + rpc CreateControl(CreateControlRequest) returns (Control) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/dataStores/*}/controls" + body: "control" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + body: "control" + } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + body: "control" + } + }; + option (google.api.method_signature) = "parent,control,control_id"; + } + + // Deletes a Control. + // + // If the [Control][google.cloud.discoveryengine.v1.Control] to delete does + // not exist, a NOT_FOUND error is returned. + rpc DeleteControl(DeleteControlRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dataStores/*/controls/*}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Control. + // + // [Control][google.cloud.discoveryengine.v1.Control] action type cannot be + // changed. If the [Control][google.cloud.discoveryengine.v1.Control] to + // update does not exist, a NOT_FOUND error is returned. + rpc UpdateControl(UpdateControlRequest) returns (Control) { + option (google.api.http) = { + patch: "/v1/{control.name=projects/*/locations/*/dataStores/*/controls/*}" + body: "control" + additional_bindings { + patch: "/v1/{control.name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + body: "control" + } + additional_bindings { + patch: "/v1/{control.name=projects/*/locations/*/collections/*/engines/*/controls/*}" + body: "control" + } + }; + option (google.api.method_signature) = "control,update_mask"; + } + + // Gets a Control. + rpc GetControl(GetControlRequest) returns (Control) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dataStores/*/controls/*}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Controls by their parent + // [DataStore][google.cloud.discoveryengine.v1.DataStore]. + rpc ListControls(ListControlsRequest) returns (ListControlsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/dataStores/*}/controls" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for CreateControl method. +message CreateControlRequest { + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // or + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/Control" + } + ]; + + // Required. The Control to create. + Control control = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the Control, which will become the final + // component of the Control's resource name. + // + // This value must be within 1-63 characters. + // Valid characters are /[a-z][0-9]-_/. + string control_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateControl method. +message UpdateControlRequest { + // Required. The Control to update. + Control control = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [Control][google.cloud.discoveryengine.v1.Control] to update. The following + // are NOT supported: + // + // * [Control.name][google.cloud.discoveryengine.v1.Control.name] + // * [Control.solution_type][google.cloud.discoveryengine.v1.Control.solution_type] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DeleteControl method. +message DeleteControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Control" + } + ]; +} + +// Request for GetControl method. +message GetControlRequest { + // Required. The resource name of the Control to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Control" + } + ]; +} + +// Request for ListControls method. +message ListControlsRequest { + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // or + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/Control" + } + ]; + + // Optional. Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListControls` call. + // Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter to apply on the list results. Supported features: + // + // * List all the products under the parent branch if + // [filter][google.cloud.discoveryengine.v1.ListControlsRequest.filter] is + // unset. Currently this field is unsupported. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListControls method. +message ListControlsResponse { + // All the Controls for a given data store. + repeated Control controls = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/conversation.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/conversation.proto index 53cb71d75..8781cb50d 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/conversation.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -52,9 +52,9 @@ message Conversation { } // Immutable. Fully qualified name - // `project/*/locations/global/collections/{collection}/dataStore/*/conversations/*` + // `projects/{project}/locations/global/collections/{collection}/dataStore/*/conversations/*` // or - // `project/*/locations/global/collections/{collection}/engines/*/conversations/*`. + // `projects/{project}/locations/global/collections/{collection}/engines/*/conversations/*`. string name = 1 [(google.api.field_behavior) = IMMUTABLE]; // The state of the Conversation. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/conversational_search_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/conversational_search_service.proto index 8a1b2d9e9..7bb0bc12c 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/conversational_search_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/conversational_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,8 +20,10 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/answer.proto"; import "google/cloud/discoveryengine/v1/conversation.proto"; import "google/cloud/discoveryengine/v1/search_service.proto"; +import "google/cloud/discoveryengine/v1/session.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -147,6 +149,123 @@ service ConversationalSearchService { }; option (google.api.method_signature) = "parent"; } + + // Answer query method. + rpc AnswerQuery(AnswerQueryRequest) returns (AnswerQueryResponse) { + option (google.api.http) = { + post: "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:answer" + body: "*" + additional_bindings { + post: "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:answer" + body: "*" + } + additional_bindings { + post: "/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:answer" + body: "*" + } + }; + } + + // Gets a Answer. + rpc GetAnswer(GetAnswerRequest) returns (Answer) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*/answers/*}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*/answers/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/answers/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Creates a Session. + // + // If the [Session][google.cloud.discoveryengine.v1.Session] to create already + // exists, an ALREADY_EXISTS error is returned. + rpc CreateSession(CreateSessionRequest) returns (Session) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/dataStores/*}/sessions" + body: "session" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + body: "session" + } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + body: "session" + } + }; + option (google.api.method_signature) = "parent,session"; + } + + // Deletes a Session. + // + // If the [Session][google.cloud.discoveryengine.v1.Session] to delete does + // not exist, a NOT_FOUND error is returned. + rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Session. + // + // [Session][google.cloud.discoveryengine.v1.Session] action type cannot be + // changed. If the [Session][google.cloud.discoveryengine.v1.Session] to + // update does not exist, a NOT_FOUND error is returned. + rpc UpdateSession(UpdateSessionRequest) returns (Session) { + option (google.api.http) = { + patch: "/v1/{session.name=projects/*/locations/*/dataStores/*/sessions/*}" + body: "session" + additional_bindings { + patch: "/v1/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + body: "session" + } + additional_bindings { + patch: "/v1/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + body: "session" + } + }; + option (google.api.method_signature) = "session,update_mask"; + } + + // Gets a Session. + rpc GetSession(GetSessionRequest) returns (Session) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Sessions by their parent + // [DataStore][google.cloud.discoveryengine.v1.DataStore]. + rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/dataStores/*}/sessions" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for @@ -223,6 +342,11 @@ message ConverseConversationRequest { // operators, see // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) string filter = 9; + + // Boost specification to boost certain documents in search results which may + // affect the converse response. For more information on boosting, see + // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + SearchRequest.BoostSpec boost_spec = 10; } // Response message for @@ -340,3 +464,488 @@ message ListConversationsResponse { // Pagination token, if not returned indicates the last page. string next_page_token = 2; } + +// Request message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1.ConversationalSearchService.AnswerQuery] +// method. +message AnswerQueryRequest { + // Safety specification. + message SafetySpec { + // Enable the safety filtering on the answer response. It is false by + // default. + bool enable = 1; + } + + // Related questions specification. + message RelatedQuestionsSpec { + // Enable related questions feature if true. + bool enable = 1; + } + + // Answer generation specification. + message AnswerGenerationSpec { + // Answer Generation Model specification. + message ModelSpec { + // Model version. If not set, it will use the default stable model. + // Allowed values are: stable, preview. + string model_version = 1; + } + + // Answer generation prompt specification. + message PromptSpec { + // Customized preamble. + string preamble = 1; + } + + // Answer generation model specification. + ModelSpec model_spec = 1; + + // Answer generation prompt specification. + PromptSpec prompt_spec = 2; + + // Specifies whether to include citation metadata in the answer. The default + // value is `false`. + bool include_citations = 3; + + // Language code for Answer. Use language tags defined by + // [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + // Note: This is an experimental feature. + string answer_language_code = 4; + + // Specifies whether to filter out adversarial queries. The default value + // is `false`. + // + // Google employs search-query classification to detect adversarial + // queries. No answer is returned if the search query is classified as an + // adversarial query. For example, a user might ask a question regarding + // negative comments about the company or submit a query designed to + // generate unsafe, policy-violating output. If this field is set to + // `true`, we skip generating answers for adversarial queries and return + // fallback messages instead. + bool ignore_adversarial_query = 5; + + // Specifies whether to filter out queries that are not answer-seeking. + // The default value is `false`. + // + // Google employs search-query classification to detect answer-seeking + // queries. No answer is returned if the search query is classified as a + // non-answer seeking query. If this field is set to `true`, we skip + // generating answers for non-answer seeking queries and return + // fallback messages instead. + bool ignore_non_answer_seeking_query = 6; + + // Specifies whether to filter out queries that have low relevance. + // + // If this field is set to `false`, all search results are used regardless + // of relevance to generate answers. If set to `true` or unset, the behavior + // will be determined automatically by the service. + optional bool ignore_low_relevant_content = 7; + } + + // Search specification. + message SearchSpec { + // Search parameters. + message SearchParams { + // Number of search results to return. + // The default value is 10. + int32 max_return_results = 1; + + // The filter syntax consists of an expression language for constructing + // a predicate from one or more fields of the documents being filtered. + // Filter expression is case-sensitive. This will be used to filter + // search results which may affect the Answer response. + // + // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. + // + // Filtering in Vertex AI Search is done by mapping the LHS filter key + // to a key property defined in the Vertex AI Search backend -- this + // mapping is defined by the customer in their schema. For example a + // media customers might have a field 'name' in their schema. In this + // case the filter would look like this: filter --> name:'ANY("king + // kong")' + // + // For more information about filtering including syntax and filter + // operators, see + // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) + string filter = 2; + + // Boost specification to boost certain documents in search results which + // may affect the answer query response. For more information on boosting, + // see [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + SearchRequest.BoostSpec boost_spec = 3; + + // The order in which documents are returned. Documents can be ordered + // by a field in an [Document][google.cloud.discoveryengine.v1.Document] + // object. Leave it unset if ordered by relevance. `order_by` expression + // is case-sensitive. For more information on ordering, see + // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) + // + // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. + string order_by = 4; + + // Specifies the search result mode. If unspecified, the + // search result mode is based on + // [DataStore.DocumentProcessingConfig.chunking_config][]: + // * If [DataStore.DocumentProcessingConfig.chunking_config][] is + // specified, + // it defaults to `CHUNKS`. + // * Otherwise, it defaults to `DOCUMENTS`. + // See [parse and chunk + // documents](https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents) + SearchRequest.ContentSearchSpec.SearchResultMode search_result_mode = 5; + + // Specs defining dataStores to filter on in a search call and + // configurations for those dataStores. This is only considered for + // engines with multiple dataStores use case. For single dataStore within + // an engine, they should use the specs at the top level. + repeated SearchRequest.DataStoreSpec data_store_specs = 7; + } + + // Search result list. + message SearchResultList { + // Search result. + message SearchResult { + // Unstructured document information. + message UnstructuredDocumentInfo { + // Document context. + message DocumentContext { + // Page identifier. + string page_identifier = 1; + + // Document content. + string content = 2; + } + + // Extractive segment. + // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#extractive-segments) + message ExtractiveSegment { + // Page identifier. + string page_identifier = 1; + + // Extractive segment content. + string content = 2; + } + + // Extractive answer. + // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#get-answers) + message ExtractiveAnswer { + // Page identifier. + string page_identifier = 1; + + // Extractive answer content. + string content = 2; + } + + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // List of document contexts. + repeated DocumentContext document_contexts = 4; + + // List of extractive segments. + repeated ExtractiveSegment extractive_segments = 5; + + // List of extractive answers. + repeated ExtractiveAnswer extractive_answers = 6; + } + + // Chunk information. + message ChunkInfo { + // Chunk resource name. + string chunk = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + }]; + + // Chunk textual content. + string content = 2; + } + + // Search result content. + oneof content { + // Unstructured document information. + UnstructuredDocumentInfo unstructured_document_info = 1; + + // Chunk information. + ChunkInfo chunk_info = 2; + } + } + + // Search results. + repeated SearchResult search_results = 1; + } + + // Search parameters to control the search behavior. + // Or provide search result list to generate answer. + oneof input { + // Search parameters. + SearchParams search_params = 1; + + // Search result list. + SearchResultList search_result_list = 2; + } + } + + // Query understanding specification. + message QueryUnderstandingSpec { + // Query classification specification. + message QueryClassificationSpec { + // Query classification types. + enum Type { + // Unspecified query classification type. + TYPE_UNSPECIFIED = 0; + + // Adversarial query classification type. + ADVERSARIAL_QUERY = 1; + + // Non-answer-seeking query classification type. + NON_ANSWER_SEEKING_QUERY = 2; + } + + // Enabled query classification types. + repeated Type types = 1; + } + + // Query rephraser specification. + message QueryRephraserSpec { + // Disable query rephraser. + bool disable = 1; + + // Max rephrase steps. + // The max number is 5 steps. + // If not set or set to < 1, it will be set to 1 by default. + int32 max_rephrase_steps = 2; + } + + // Query classification specification. + QueryClassificationSpec query_classification_spec = 1; + + // Query rephraser specification. + QueryRephraserSpec query_rephraser_spec = 2; + } + + // Required. The resource name of the Search serving config, such as + // `projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config`, + // or + // `projects/*/locations/global/collections/default_collection/dataStores/*/servingConfigs/default_serving_config`. + // This field is used to identify the serving configuration name, set + // of models used to make the search. + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/ServingConfig" + } + ]; + + // Required. Current user query. + Query query = 2 [(google.api.field_behavior) = REQUIRED]; + + // The session resource name. Not required. + // + // When session field is not set, the API is in sessionless mode. + // + // We support auto session mode: users can use the wildcard symbol `-` as + // session ID. A new ID will be automatically generated and assigned. + string session = 3 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + }]; + + // Model specification. + SafetySpec safety_spec = 4; + + // Related questions specification. + RelatedQuestionsSpec related_questions_spec = 5; + + // Answer generation specification. + AnswerGenerationSpec answer_generation_spec = 7; + + // Search specification. + SearchSpec search_spec = 8; + + // Query understanding specification. + QueryUnderstandingSpec query_understanding_spec = 9; + + // Asynchronous mode control. + // + // If enabled, the response will be returned with answer/session resource + // name without final answer. The API users need to do the polling to get + // the latest status of answer/session by calling + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1.ConversationalSearchService.GetAnswer] + // or + // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1.ConversationalSearchService.GetSession] + // method. + bool asynchronous_mode = 10; + + // 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 field should NOT have a fixed value such as `unknown_visitor`. + // + // The field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. + string user_pseudo_id = 12; + + // 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. + map user_labels = 13; +} + +// Response message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1.ConversationalSearchService.AnswerQuery] +// method. +message AnswerQueryResponse { + // Answer resource object. + // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, + // use [Answer.name][google.cloud.discoveryengine.v1.Answer.name] to fetch + // answer information using + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1.ConversationalSearchService.GetAnswer] + // API. + Answer answer = 1; + + // Session resource object. + // It will be only available when session field is set and valid in the + // [AnswerQueryRequest][google.cloud.discoveryengine.v1.AnswerQueryRequest] + // request. + Session session = 2; + + // A global unique ID used for logging. + string answer_query_token = 3; +} + +// Request for GetAnswer method. +message GetAnswerRequest { + // Required. The resource name of the Answer to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/engines/{engine_id}/sessions/{session_id}/answers/{answer_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Answer" + } + ]; +} + +// Request for CreateSession method. +message CreateSessionRequest { + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. The session to create. + Session session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateSession method. +message UpdateSessionRequest { + // Required. The Session to update. + Session session = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [Session][google.cloud.discoveryengine.v1.Session] to update. The following + // are NOT supported: + // + // * [Session.name][google.cloud.discoveryengine.v1.Session.name] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteSession method. +message DeleteSessionRequest { + // Required. The resource name of the Session to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + } + ]; +} + +// Request for GetSession method. +message GetSessionRequest { + // Required. The resource name of the Session to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + } + ]; +} + +// Request for ListSessions method. +message ListSessionsRequest { + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListSessions` call. + // Provide this to retrieve the subsequent page. + string page_token = 3; + + // A filter to apply on the list results. The supported features are: + // user_pseudo_id, state. + // + // Example: + // "user_pseudo_id = some_id" + string filter = 4; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // * `update_time` + // * `create_time` + // * `session_name` + // + // Example: + // "update_time desc" + // "create_time" + string order_by = 5; +} + +// Response for ListSessions method. +message ListSessionsResponse { + // All the Sessions for a given data store. + repeated Session sessions = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/data_store.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/data_store.proto index 2a7d6bebf..ef853a80f 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/data_store.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/data_store.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ package google.cloud.discoveryengine.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1/common.proto"; +import "google/cloud/discoveryengine/v1/document_processing_config.proto"; +import "google/cloud/discoveryengine/v1/schema.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; @@ -95,4 +97,23 @@ message DataStore { // [DataStore][google.cloud.discoveryengine.v1.DataStore] was created at. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Configuration for Document understanding and enrichment. + DocumentProcessingConfig document_processing_config = 27; + + // The start schema to use for this + // [DataStore][google.cloud.discoveryengine.v1.DataStore] when provisioning + // it. If unset, a default vertical specialized schema will be used. + // + // This field is only used by [CreateDataStore][] API, and will be ignored if + // used in other APIs. This field will be omitted from all API responses + // including [CreateDataStore][] API. To retrieve a schema of a + // [DataStore][google.cloud.discoveryengine.v1.DataStore], use + // [SchemaService.GetSchema][google.cloud.discoveryengine.v1.SchemaService.GetSchema] + // API instead. + // + // The provided schema will be validated against certain rules on schema. + // Learn more from [this + // doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema). + Schema starting_schema = 28; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/data_store_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/data_store_service.proto index db8d8a979..94c120d26 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/data_store_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/data_store_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -226,8 +226,8 @@ message ListDataStoresRequest { // INVALID_ARGUMENT error is returned. string page_token = 3; - // Filter by solution type. For example: filter = - // 'solution_type:SOLUTION_TYPE_SEARCH' + // Filter by solution type . + // For example: `filter = 'solution_type:SOLUTION_TYPE_SEARCH'` string filter = 4; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_grpc_service_config.json b/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_grpc_service_config.json index 57d8fe38f..4a7263668 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_grpc_service_config.json @@ -3,7 +3,8 @@ { "name": [ { "service": "google.cloud.discoveryengine.v1.CompletionService" }, - { "service": "google.cloud.discoveryengine.v1.SearchService" } + { "service": "google.cloud.discoveryengine.v1.GroundedGenerationService" }, + { "service": "google.cloud.discoveryengine.v1.RecommendationService" } ], "timeout": "5s", "retryPolicy": { @@ -15,9 +16,13 @@ }, { "name": [ + { "service": "google.cloud.discoveryengine.v1.ControlService" }, { "service": "google.cloud.discoveryengine.v1.ConversationalSearchService" }, { "service": "google.cloud.discoveryengine.v1.DocumentService" }, + { "service": "google.cloud.discoveryengine.v1.ProjectService" }, + { "service": "google.cloud.discoveryengine.v1.RankService" }, { "service": "google.cloud.discoveryengine.v1.SchemaService" }, + { "service": "google.cloud.discoveryengine.v1.SearchService" }, { "service": "google.cloud.discoveryengine.v1.UserEventService" }, { "service": "google.longrunning.Operations"} ], diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml b/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml index e9b0aaef9..40ab3ae27 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml @@ -5,10 +5,15 @@ title: Discovery Engine API apis: - name: google.cloud.discoveryengine.v1.CompletionService +- name: google.cloud.discoveryengine.v1.ControlService - name: google.cloud.discoveryengine.v1.ConversationalSearchService - name: google.cloud.discoveryengine.v1.DataStoreService - name: google.cloud.discoveryengine.v1.DocumentService - name: google.cloud.discoveryengine.v1.EngineService +- name: google.cloud.discoveryengine.v1.GroundedGenerationService +- name: google.cloud.discoveryengine.v1.ProjectService +- name: google.cloud.discoveryengine.v1.RankService +- name: google.cloud.discoveryengine.v1.RecommendationService - name: google.cloud.discoveryengine.v1.SchemaService - name: google.cloud.discoveryengine.v1.SearchService - name: google.cloud.discoveryengine.v1.SiteSearchEngineService @@ -20,6 +25,7 @@ types: - name: google.cloud.discoveryengine.logging.ErrorLog - name: google.cloud.discoveryengine.v1.BatchCreateTargetSiteMetadata - name: google.cloud.discoveryengine.v1.BatchCreateTargetSitesResponse +- name: google.cloud.discoveryengine.v1.Control - name: google.cloud.discoveryengine.v1.CreateDataStoreMetadata - name: google.cloud.discoveryengine.v1.CreateEngineMetadata - name: google.cloud.discoveryengine.v1.CreateSchemaMetadata @@ -34,12 +40,18 @@ types: - name: google.cloud.discoveryengine.v1.EnableAdvancedSiteSearchMetadata - name: google.cloud.discoveryengine.v1.EnableAdvancedSiteSearchResponse - name: google.cloud.discoveryengine.v1.Engine +- name: google.cloud.discoveryengine.v1.ImportCompletionSuggestionsMetadata +- name: google.cloud.discoveryengine.v1.ImportCompletionSuggestionsResponse - name: google.cloud.discoveryengine.v1.ImportDocumentsMetadata - name: google.cloud.discoveryengine.v1.ImportDocumentsResponse - name: google.cloud.discoveryengine.v1.ImportSuggestionDenyListEntriesMetadata - name: google.cloud.discoveryengine.v1.ImportSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1.ImportUserEventsMetadata - name: google.cloud.discoveryengine.v1.ImportUserEventsResponse +- name: google.cloud.discoveryengine.v1.Project +- name: google.cloud.discoveryengine.v1.ProvisionProjectMetadata +- name: google.cloud.discoveryengine.v1.PurgeCompletionSuggestionsMetadata +- name: google.cloud.discoveryengine.v1.PurgeCompletionSuggestionsResponse - name: google.cloud.discoveryengine.v1.PurgeDocumentsMetadata - name: google.cloud.discoveryengine.v1.PurgeDocumentsResponse - name: google.cloud.discoveryengine.v1.PurgeSuggestionDenyListEntriesMetadata @@ -54,6 +66,14 @@ documentation: http: rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/operations/*}:cancel' + body: '*' + additional_bindings: + - post: '/v1/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/operations/*}:cancel' + body: '*' + - post: '/v1/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}:cancel' + body: '*' - selector: google.longrunning.Operations.GetOperation get: '/v1/{name=projects/*/operations/*}' additional_bindings: @@ -95,6 +115,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1.ControlService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.discoveryengine.v1.ConversationalSearchService.*' oauth: canonical_scopes: |- @@ -111,6 +135,22 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.GroundedGenerationService.CheckGrounding + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.ProjectService.ProvisionProject + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.RankService.Rank + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.RecommendationService.Recommend + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.discoveryengine.v1.SchemaService.*' oauth: canonical_scopes: |- @@ -127,11 +167,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.ListOperations + - selector: 'google.longrunning.Operations.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/document.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/document.proto index e6bfe3d0f..5c9af32e8 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/document.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package google.cloud.discoveryengine.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; @@ -53,7 +54,7 @@ message Document { // The URI of the content. Only Cloud Storage URIs (e.g. // `gs://bucket-name/path/to/file`) are supported. The maximum file size - // is 2.5 MB for text-based formats, 100 MB for other formats. + // is 2.5 MB for text-based formats, 200 MB for other formats. string uri = 3; } @@ -118,4 +119,12 @@ message Document { // It contains derived data that are not in the original input document. google.protobuf.Struct derived_struct_data = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time the document was indexed. If this field is set, + // the document could be returned in search results. + // + // This field is OUTPUT_ONLY. If this field is not populated, it means the + // document has never been indexed. + google.protobuf.Timestamp index_time = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/document_processing_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/document_processing_config.proto new file mode 100644 index 000000000..cef0e861d --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/document_processing_config.proto @@ -0,0 +1,127 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "DocumentProcessingConfigProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// A singleton resource of +// [DataStore][google.cloud.discoveryengine.v1.DataStore]. It's empty when +// [DataStore][google.cloud.discoveryengine.v1.DataStore] is created, which +// defaults to digital parser. The first call to +// [DataStoreService.UpdateDocumentProcessingConfig][] method will initialize +// the config. +message DocumentProcessingConfig { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/DocumentProcessingConfig" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/documentProcessingConfig" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/documentProcessingConfig" + }; + + // Configuration for chunking config. + message ChunkingConfig { + // Configuration for the layout based chunking. + message LayoutBasedChunkingConfig { + // The token size limit for each chunk. + // + // Supported values: 100-500 (inclusive). + // Default value: 500. + int32 chunk_size = 1; + + // Whether to include appending different levels of headings to chunks + // from the middle of the document to prevent context loss. + // + // Default value: False. + bool include_ancestor_headings = 2; + } + + // Additional configs that defines the behavior of the chunking. + oneof chunk_mode { + // Configuration for the layout based chunking. + LayoutBasedChunkingConfig layout_based_chunking_config = 1; + } + } + + // Related configurations applied to a specific type of document parser. + message ParsingConfig { + // The digital parsing configurations for documents. + message DigitalParsingConfig {} + + // The OCR parsing configurations for documents. + message OcrParsingConfig { + // [DEPRECATED] This field is deprecated. To use the additional enhanced + // document elements processing, please switch to `layout_parsing_config`. + repeated string enhanced_document_elements = 1 [deprecated = true]; + + // If true, will use native text instead of OCR text on pages containing + // native text. + bool use_native_text = 2; + } + + // The layout parsing configurations for documents. + message LayoutParsingConfig {} + + // Configs for document processing types. + oneof type_dedicated_config { + // Configurations applied to digital parser. + DigitalParsingConfig digital_parsing_config = 1; + + // Configurations applied to OCR parser. Currently it only applies to + // PDFs. + OcrParsingConfig ocr_parsing_config = 2; + + // Configurations applied to layout parser. + LayoutParsingConfig layout_parsing_config = 3; + } + } + + // The full resource name of the Document Processing Config. + // Format: + // `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`. + string name = 1; + + // Whether chunking mode is enabled. + ChunkingConfig chunking_config = 3; + + // Configurations for default Document parser. + // If not specified, we will configure it as default DigitalParsingConfig, and + // the default parsing config will be applied to all file types for Document + // parsing. + ParsingConfig default_parsing_config = 4; + + // Map from file type to override the default parsing configuration based on + // the file type. Supported keys: + // + // * `pdf`: Override parsing config for PDF files, either digital parsing, ocr + // parsing or layout parsing is supported. + // * `html`: Override parsing config for HTML files, only digital parsing and + // layout parsing are supported. + // * `docx`: Override parsing config for DOCX files, only digital parsing and + // layout parsing are supported. + // * `pptx`: Override parsing config for PPTX files, only digital parsing and + // layout parsing are supported. + map parsing_config_overrides = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/document_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/document_service.proto index 170111686..6e88badab 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/document_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/document_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import "google/cloud/discoveryengine/v1/import_config.proto"; import "google/cloud/discoveryengine/v1/purge_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; @@ -87,6 +88,7 @@ service DocumentService { body: "document" } }; + option (google.api.method_signature) = "document,update_mask"; } // Deletes a [Document][google.cloud.discoveryengine.v1.Document]. @@ -102,7 +104,7 @@ service DocumentService { // Bulk import of multiple // [Document][google.cloud.discoveryengine.v1.Document]s. Request processing - // may be synchronous. Non-existing items will be created. + // may be synchronous. Non-existing items are created. // // Note: It is possible for a subset of the // [Document][google.cloud.discoveryengine.v1.Document]s to be successfully @@ -200,7 +202,7 @@ message ListDocumentsRequest { // Maximum number of [Document][google.cloud.discoveryengine.v1.Document]s to // return. If unspecified, defaults to 100. The maximum allowed value is 1000. - // Values above 1000 will be coerced to 1000. + // Values above 1000 are set to 1000. // // If this field is negative, an `INVALID_ARGUMENT` error is returned. int32 page_size = 2; @@ -250,7 +252,7 @@ message CreateDocumentRequest { Document document = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The ID to use for the - // [Document][google.cloud.discoveryengine.v1.Document], which will become the + // [Document][google.cloud.discoveryengine.v1.Document], which becomes the // final component of the // [Document.name][google.cloud.discoveryengine.v1.Document.name]. // @@ -285,10 +287,14 @@ message UpdateDocumentRequest { // is not set, a `NOT_FOUND` error is returned. Document document = 1 [(google.api.field_behavior) = REQUIRED]; - // If set to true, and the + // If set to `true` and the // [Document][google.cloud.discoveryengine.v1.Document] is not found, a new - // [Document][google.cloud.discoveryengine.v1.Document] will be created. + // [Document][google.cloud.discoveryengine.v1.Document] is be created. bool allow_missing = 2; + + // Indicates which fields in the provided imported 'document' to update. If + // not set, by default updates all fields. + google.protobuf.FieldMask update_mask = 3; } // Request message for diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/engine.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/engine.proto index af650dbf4..2bb990f1e 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/engine.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/engine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ message Engine { // The search feature tier of this engine. // // Different tiers might have different - // pricing. To learn more, please check the pricing documentation. + // pricing. To learn more, check the pricing documentation. // // Defaults to // [SearchTier.SEARCH_TIER_STANDARD][google.cloud.discoveryengine.v1.SearchTier.SEARCH_TIER_STANDARD] @@ -110,7 +110,7 @@ message Engine { // [EngineService.GetEngine][google.cloud.discoveryengine.v1.EngineService.GetEngine] // or // [EngineService.ListEngines][google.cloud.discoveryengine.v1.EngineService.ListEngines] - // API after engine creation. Please use + // API after engine creation. Use // [ChatEngineMetadata.dialogflow_agent][google.cloud.discoveryengine.v1.Engine.ChatEngineMetadata.dialogflow_agent] // for actual agent association after Engine is created. string dialogflow_agent_to_link = 2; @@ -118,9 +118,9 @@ message Engine { // Common configurations for an Engine. message CommonConfig { - // Immutable. The name of the company, business or entity that is associated - // with the engine. Setting this may help improve LLM related features. - string company_name = 1 [(google.api.field_behavior) = IMMUTABLE]; + // The name of the company, business or entity that is associated with the + // engine. Setting this may help improve LLM related features. + string company_name = 1; } // Additional information of a Chat Engine. @@ -207,7 +207,7 @@ message Engine { // The restriction of the Engine industry vertical is based on // [DataStore][google.cloud.discoveryengine.v1.DataStore]: If unspecified, // default to `GENERIC`. Vertical on Engine has to match vertical of the - // DataStore liniked to the engine. + // DataStore linked to the engine. IndustryVertical industry_vertical = 16; // Common config spec that specifies the metadata of the engine. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/engine_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/engine_service.proto index f6b192853..ff930e0e4 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/engine_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/engine_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/grounded_generation_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/grounded_generation_service.proto new file mode 100644 index 000000000..3fb601dd7 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/grounded_generation_service.proto @@ -0,0 +1,149 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/grounding.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "GroundedGenerationServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Service for grounded generation. +service GroundedGenerationService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Performs a grounding check. + rpc CheckGrounding(CheckGroundingRequest) returns (CheckGroundingResponse) { + option (google.api.http) = { + post: "/v1/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" + body: "*" + }; + } +} + +// Specification for the grounding check. +message CheckGroundingSpec { + // The threshold (in [0,1]) used for determining whether a fact must be + // cited for a claim in the answer candidate. Choosing a higher threshold + // will lead to fewer but very strong citations, while choosing a lower + // threshold may lead to more but somewhat weaker citations. If unset, the + // threshold will default to 0.6. + optional double citation_threshold = 1; +} + +// Request message for +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1.GroundedGenerationService.CheckGrounding] +// method. +message CheckGroundingRequest { + // Required. The resource name of the grounding config, such as + // `projects/*/locations/global/groundingConfigs/default_grounding_config`. + string grounding_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/GroundingConfig" + } + ]; + + // Answer candidate to check. Can have a maximum length of 1024 characters. + string answer_candidate = 2; + + // List of facts for the grounding check. + // We support up to 200 facts. + repeated GroundingFact facts = 3; + + // Configuration of the grounding check. + CheckGroundingSpec grounding_spec = 4; + + // 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. + map user_labels = 5; +} + +// Response message for the +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1.GroundedGenerationService.CheckGrounding] +// method. +message CheckGroundingResponse { + // Text and citation info for a claim in the answer candidate. + message Claim { + // Position indicating the start of the claim in the answer candidate, + // measured in bytes. + optional int32 start_pos = 1; + + // Position indicating the end of the claim in the answer candidate, + // exclusive. + optional int32 end_pos = 2; + + // Text for the claim in the answer candidate. Always provided regardless of + // whether citations or anti-citations are found. + string claim_text = 3; + + // A list of indices (into 'cited_chunks') specifying the citations + // associated with the claim. For instance [1,3,4] means that + // cited_chunks[1], cited_chunks[3], cited_chunks[4] are the facts cited + // supporting for the claim. A citation to a fact indicates that the claim + // is supported by the fact. + repeated int32 citation_indices = 4; + + // Indicates that this claim required grounding check. When the system + // decided this claim doesn't require attribution/grounding check, this + // field will be set to false. In that case, no grounding check was done for + // the claim and therefore + // [citation_indices][google.cloud.discoveryengine.v1.CheckGroundingResponse.Claim.citation_indices], + // and + // [anti_citation_indices][google.cloud.discoveryengine.v1.CheckGroundingResponse.Claim.anti_citation_indices] + // should not be returned. + optional bool grounding_check_required = 6; + } + + // The support score for the input answer candidate. + // Higher the score, higher is the fraction of claims that are supported by + // the provided facts. This is always set when a response is returned. + optional float support_score = 1; + + // List of facts cited across all claims in the answer candidate. + // These are derived from the facts supplied in the request. + repeated FactChunk cited_chunks = 3; + + // Claim texts and citation info across all claims in the answer candidate. + repeated Claim claims = 4; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/grounding.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/grounding.proto new file mode 100644 index 000000000..70a429b94 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/grounding.proto @@ -0,0 +1,58 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "GroundingProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Grounding Fact. +message GroundingFact { + // Text content of the fact. Can be at most 10K characters long. + string fact_text = 1; + + // Attributes associated with the fact. + // Common attributes include `source` (indicating where the fact was sourced + // from), `author` (indicating the author of the fact), and so on. + map attributes = 2; +} + +// Fact Chunk. +message FactChunk { + // Text content of the fact chunk. Can be at most 10K characters long. + string chunk_text = 1; + + // Source from which this fact chunk was retrieved. If it was retrieved + // from the GroundingFacts provided in the request then this field will + // contain the index of the specific fact from which this chunk was + // retrieved. + string source = 2; + + // The index of this chunk. Currently, only used for the streaming mode. + int32 index = 4; + + // More fine-grained information for the source reference. + map source_metadata = 3; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/import_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/import_config.proto index 2e55efec6..171a0c1dc 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/import_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/import_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1/completion.proto"; import "google/cloud/discoveryengine/v1/document.proto"; import "google/cloud/discoveryengine/v1/user_event.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/date.proto"; @@ -36,7 +37,7 @@ option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; // Cloud Storage location for input content. message GcsSource { - // Required. Cloud Storage URIs to input files. URI can be up to + // Required. Cloud Storage URIs to input files. Each URI can be up to // 2000 characters long. URIs can match the full object path (for example, // `gs://bucket/directory/object.json`) or a pattern matching one or more // files, such as `gs://bucket/directory/*.json`. @@ -59,13 +60,13 @@ message GcsSource { // bits of SHA256(URI) encoded as a hex string. // * `custom`: One custom data JSON per row in arbitrary format that conforms // to the defined [Schema][google.cloud.discoveryengine.v1.Schema] of the - // data store. This can only be used by Gen App Builder. + // data store. This can only be used by the GENERIC Data Store vertical. // * `csv`: A CSV file with header conforming to the defined // [Schema][google.cloud.discoveryengine.v1.Schema] of the // data store. Each entry after the header is imported as a Document. - // This can only be used by Gen App Builder. + // This can only be used by the GENERIC Data Store vertical. // - // Supported values for user even imports: + // Supported values for user event imports: // // * `user_event` (default): One JSON // [UserEvent][google.cloud.discoveryengine.v1.UserEvent] per line. @@ -117,10 +118,269 @@ message BigQuerySource { // [Document.struct_data][google.cloud.discoveryengine.v1.Document.struct_data]. // * `custom`: One custom data per row in arbitrary format that conforms to // the defined [Schema][google.cloud.discoveryengine.v1.Schema] of the data - // store. This can only be used by Gen App Builder. + // store. This can only be used by the GENERIC Data Store vertical. string data_schema = 6; } +// The Spanner source for importing data +message SpannerSource { + // The project ID that the Spanner source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The instance ID of the source Spanner table. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The database ID of the source Spanner table. + string database_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table name of the Spanner database that needs to be imported. + string table_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Whether to apply data boost on Spanner export. Enabling this option will + // incur additional cost. More info can be found + // [here](https://cloud.google.com/spanner/docs/databoost/databoost-overview#billing_and_quotas). + bool enable_data_boost = 5; +} + +// The Bigtable Options object that contains information to support +// the import. +message BigtableOptions { + // The column family of the Bigtable. + message BigtableColumnFamily { + // The field name to use for this column family in the document. The + // name has to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. If not set, + // it is parsed from the family name with best effort. However, due to + // different naming patterns, field name collisions could happen, where + // parsing behavior is undefined. + string field_name = 1; + + // The encoding mode of the values when the type is not STRING. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding encoding = 2; + + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type type = 3; + + // The list of objects that contains column level information for each + // column. If a column is not present in this list it will be ignored. + repeated BigtableColumn columns = 4; + } + + // The column of the Bigtable. + message BigtableColumn { + // Required. Qualifier of the column. If it cannot be decoded with utf-8, + // use a base-64 encoded string instead. + bytes qualifier = 1 [(google.api.field_behavior) = REQUIRED]; + + // The field name to use for this column in the document. The name has to + // match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + // If not set, it is parsed from the qualifier bytes with best effort. + // However, due to different naming patterns, field name collisions could + // happen, where parsing behavior is undefined. + string field_name = 2; + + // The encoding mode of the values when the type is not `STRING`. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding encoding = 3; + + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type type = 4; + } + + // The type of values in a Bigtable column or column family. + // The values are expected to be encoded using + // [HBase + // Bytes.toBytes](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/util/Bytes.html) + // function when the encoding value is set to `BINARY`. + enum Type { + // The type is unspecified. + TYPE_UNSPECIFIED = 0; + + // String type. + STRING = 1; + + // Numerical type. + NUMBER = 2; + + // Integer type. + INTEGER = 3; + + // Variable length integer type. + VAR_INTEGER = 4; + + // BigDecimal type. + BIG_NUMERIC = 5; + + // Boolean type. + BOOLEAN = 6; + + // JSON type. + JSON = 7; + } + + // The encoding mode of a Bigtable column or column family. + enum Encoding { + // The encoding is unspecified. + ENCODING_UNSPECIFIED = 0; + + // Text encoding. + TEXT = 1; + + // Binary encoding. + BINARY = 2; + } + + // The field name used for saving row key value in the document. The name has + // to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + string key_field_name = 1; + + // The mapping from family names to an object that contains column families + // level information for the given column family. If a family is not present + // in this map it will be ignored. + map families = 2; +} + +// The Cloud Bigtable source for importing data. +message BigtableSource { + // The project ID that the Bigtable source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The instance ID of the Cloud Bigtable that needs to be imported. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table ID of the Cloud Bigtable that needs to be imported. + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Bigtable options that contains information needed when parsing + // data into typed structures. For example, column type annotations. + BigtableOptions bigtable_options = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Cloud FhirStore source import data from. +message FhirStoreSource { + // Required. The full resource name of the FHIR store to import data from, in + // the format of + // `projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}`. + string fhir_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "healthcare.googleapis.com/FhirStore" + } + ]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // FhirStore export to a specific Cloud Storage directory. + string gcs_staging_dir = 2; +} + +// Cloud SQL source import data from. +message CloudSqlSource { + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The Cloud SQL instance to copy the data from with a length limit + // of 256 characters. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL database to copy the data from with a length limit + // of 256 characters. + string database_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL table to copy the data from with a length limit of + // 256 characters. + string table_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Cloud SQL export to a specific Cloud Storage directory. + // + // Ensure that the Cloud SQL service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 5; + + // Option for serverless export. Enabling this option will incur additional + // cost. More info can be found + // [here](https://cloud.google.com/sql/pricing#serverless). + bool offload = 6; +} + +// AlloyDB source import data from. +message AlloyDbSource { + // The project ID that the AlloyDB source is in + // with a length limit of 128 characters. If not specified, inherits the + // project ID from the parent request. + string project_id = 1; + + // Required. The AlloyDB location to copy the data from with a length limit of + // 256 characters. + string location_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB cluster to copy the data from with a length limit of + // 256 characters. + string cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB database to copy the data from with a length limit of + // 256 characters. + string database_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB table to copy the data from with a length limit of + // 256 characters. + string table_id = 5 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // AlloyDB export to a specific Cloud Storage directory. + // + // Ensure that the AlloyDB service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 6; +} + +// Firestore source import data from. +message FirestoreSource { + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The Firestore database to copy the data from with a length limit + // of 256 characters. + string database_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Firestore collection (or entity) to copy the data from with a + // length limit of 1,500 characters. + string collection_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Firestore export to a specific Cloud Storage directory. + // + // Ensure that the Firestore service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 4; +} + // Configuration of destination for Import related errors. message ImportErrorConfig { // Required. Errors destination. @@ -218,6 +478,9 @@ message ImportDocumentsMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; + + // Total count of entries that were processed. + int64 total_count = 5; } // Request message for Import methods. @@ -254,6 +517,24 @@ message ImportDocumentsRequest { // BigQuery input source. BigQuerySource bigquery_source = 4; + + // FhirStore input source. + FhirStoreSource fhir_store_source = 10; + + // Spanner input source. + SpannerSource spanner_source = 11; + + // Cloud SQL input source. + CloudSqlSource cloud_sql_source = 12; + + // Firestore input source. + FirestoreSource firestore_source = 13; + + // AlloyDB input source. + AlloyDbSource alloy_db_source = 14; + + // Cloud Bigtable input source. + BigtableSource bigtable_source = 15; } // Required. The parent branch resource name, such as @@ -274,6 +555,10 @@ message ImportDocumentsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 6; + // Indicates which fields in the provided imported documents to update. If + // not set, the default is to update all fields. + google.protobuf.FieldMask update_mask = 7; + // Whether to automatically generate IDs for the documents if absent. // // If set to `true`, @@ -287,42 +572,54 @@ message ImportDocumentsRequest { // [id_field][google.cloud.discoveryengine.v1.ImportDocumentsRequest.id_field], // otherwise, documents without IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource], and when + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1.GcsSource]. // [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema] - // or + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource]. // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema] - // is `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1.BigtableSource]. bool auto_generate_ids = 8; - // The field in the Cloud Storage and BigQuery sources that indicates the - // unique IDs of the documents. + // The field indicates the ID field or column to be used as unique IDs of + // the documents. // // For [GcsSource][google.cloud.discoveryengine.v1.GcsSource] it is the key of // the JSON field. For instance, `my_id` for JSON `{"my_id": "some_uuid"}`. - // For [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource] it is - // the column name of the BigQuery table where the unique ids are stored. + // For others, it may be the column name of the table where the unique ids are + // stored. // - // The values of the JSON field or the BigQuery column are used as the + // The values of the JSON field or the table column are used as the // [Document.id][google.cloud.discoveryengine.v1.Document.id]s. The JSON field - // or the BigQuery column must be of string type, and the values must be set - // as valid strings conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) + // or the table column must be of string type, and the values must be set as + // valid strings conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) // with 1-63 characters. Otherwise, documents without valid IDs fail to be // imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource], and when - // [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema] - // or - // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema] - // is `custom`. And only set this field when + // Only set this field when // [auto_generate_ids][google.cloud.discoveryengine.v1.ImportDocumentsRequest.auto_generate_ids] // is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown. // // If it is unset, a default value `_id` is used when importing from the // allowed data sources. + // + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1.GcsSource]. + // [GcsSource.data_schema][google.cloud.discoveryengine.v1.GcsSource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1.BigQuerySource]. + // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1.BigQuerySource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1.BigtableSource]. string id_field = 9; } @@ -400,3 +697,76 @@ message ImportSuggestionDenyListEntriesMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request message for +// [CompletionService.ImportCompletionSuggestions][google.cloud.discoveryengine.v1.CompletionService.ImportCompletionSuggestions] +// method. +message ImportCompletionSuggestionsRequest { + // The inline source for CompletionSuggestions. + message InlineSource { + // Required. A list of all denylist entries to import. Max of 1000 items. + repeated CompletionSuggestion suggestions = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The source of the autocomplete suggestions. + oneof source { + // The Inline source for suggestion entries. + InlineSource inline_source = 2; + + // Cloud Storage location for the input content. + GcsSource gcs_source = 3; + + // BigQuery input source. + BigQuerySource bigquery_source = 4; + } + + // Required. The parent data store resource name for which to import customer + // autocomplete suggestions. + // + // Follows pattern `projects/*/locations/*/collections/*/dataStores/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 5; +} + +// Response of the +// [CompletionService.ImportCompletionSuggestions][google.cloud.discoveryengine.v1.CompletionService.ImportCompletionSuggestions] +// method. If the long running operation is done, this message is returned by +// the google.longrunning.Operations.response field if the operation is +// successful. +message ImportCompletionSuggestionsResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 2; +} + +// Metadata related to the progress of the ImportCompletionSuggestions +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. +message ImportCompletionSuggestionsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of + // [CompletionSuggestion][google.cloud.discoveryengine.v1.CompletionSuggestion]s + // successfully imported. + int64 success_count = 3; + + // Count of + // [CompletionSuggestion][google.cloud.discoveryengine.v1.CompletionSuggestion]s + // that failed to be imported. + int64 failure_count = 4; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/project.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/project.proto new file mode 100644 index 000000000..aa311bf20 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/project.proto @@ -0,0 +1,103 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Metadata and configurations for a Google Cloud project in the service. +message Project { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Project" + pattern: "projects/{project}" + }; + + // Metadata about the terms of service. + message ServiceTerms { + // The agreement states this terms of service. + enum State { + // The default value of the enum. This value is not actually used. + STATE_UNSPECIFIED = 0; + + // The project has given consent to the terms of service. + TERMS_ACCEPTED = 1; + + // The project is pending to review and accept the terms of service. + TERMS_PENDING = 2; + + // The project has declined or revoked the agreement to terms of service. + TERMS_DECLINED = 3; + } + + // The unique identifier of this terms of service. + // Available terms: + // + // * `GA_DATA_USE_TERMS`: [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). When using this as + // `id`, the acceptable + // [version][google.cloud.discoveryengine.v1.Project.ServiceTerms.version] + // to provide is `2022-11-23`. + string id = 1; + + // The version string of the terms of service. + // For acceptable values, see the comments for + // [id][google.cloud.discoveryengine.v1.Project.ServiceTerms.id] above. + string version = 2; + + // Whether the project has accepted/rejected the service terms or it is + // still pending. + State state = 4; + + // The last time when the project agreed to the terms of service. + google.protobuf.Timestamp accept_time = 5; + + // The last time when the project declined or revoked the agreement to terms + // of service. + google.protobuf.Timestamp decline_time = 6; + } + + // Output only. Full resource name of the project, for example + // `projects/{project_number}`. + // Note that when making requests, project number and project id are both + // acceptable, but the server will always respond in project number. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this project is created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this project is successfully provisioned. + // Empty value means this project is still provisioning and is not ready for + // use. + google.protobuf.Timestamp provision_completion_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A map of terms of services. The key is the `id` of + // [ServiceTerms][google.cloud.discoveryengine.v1.Project.ServiceTerms]. + map service_terms_map = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/project_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/project_service.proto new file mode 100644 index 000000000..f0b135d67 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/project_service.proto @@ -0,0 +1,90 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/project.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Service for operations on the +// [Project][google.cloud.discoveryengine.v1.Project]. +service ProjectService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Provisions the project resource. During the + // process, related systems will get prepared and initialized. + // + // Caller must read the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms), and optionally + // specify in request to provide consent to that service terms. + rpc ProvisionProject(ProvisionProjectRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*}:provision" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1.Project" + metadata_type: "google.cloud.discoveryengine.v1.ProvisionProjectMetadata" + }; + } +} + +// Request for +// [ProjectService.ProvisionProject][google.cloud.discoveryengine.v1.ProjectService.ProvisionProject] +// method. +message ProvisionProjectRequest { + // Required. Full resource name of a + // [Project][google.cloud.discoveryengine.v1.Project], such as + // `projects/{project_id_or_number}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Project" + } + ]; + + // Required. Set to `true` to specify that caller has read and would like to + // give consent to the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). + bool accept_data_use_terms = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The version of the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms) that caller has read + // and would like to give consent to. + // + // Acceptable version is `2022-11-23`, and this may change over time. + string data_use_terms_version = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata associated with a project provision operation. +message ProvisionProjectMetadata {} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/purge_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/purge_config.proto index a8fe898d0..2101b6952 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/purge_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/purge_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -84,6 +84,9 @@ message PurgeDocumentsMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; + + // Count of entries that were ignored as entries were not found. + int64 ignored_count = 5; } // Request message for @@ -122,3 +125,41 @@ message PurgeSuggestionDenyListEntriesMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request message for +// [CompletionService.PurgeCompletionSuggestions][google.cloud.discoveryengine.v1.CompletionService.PurgeCompletionSuggestions] +// method. +message PurgeCompletionSuggestionsRequest { + // Required. The parent data store resource name for which to purge completion + // suggestions. Follows pattern + // projects/*/locations/*/collections/*/dataStores/*. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [CompletionService.PurgeCompletionSuggestions][google.cloud.discoveryengine.v1.CompletionService.PurgeCompletionSuggestions] +// method. +message PurgeCompletionSuggestionsResponse { + // Whether the completion suggestions were successfully purged. + bool purge_succeeded = 1; + + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 2; +} + +// Metadata related to the progress of the PurgeCompletionSuggestions +// operation. This is returned by the google.longrunning.Operation.metadata +// field. +message PurgeCompletionSuggestionsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/rank_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/rank_service.proto new file mode 100644 index 000000000..e3e5142db --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/rank_service.proto @@ -0,0 +1,131 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "RankServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Service for ranking text records. +service RankService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Ranks a list of text records based on the given input query. + rpc Rank(RankRequest) returns (RankResponse) { + option (google.api.http) = { + post: "/v1/{ranking_config=projects/*/locations/*/rankingConfigs/*}:rank" + body: "*" + }; + } +} + +// Record message for +// [RankService.Rank][google.cloud.discoveryengine.v1.RankService.Rank] method. +message RankingRecord { + // The unique ID to represent the record. + string id = 1; + + // The title of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1.RankingRecord.content] should be + // set otherwise an INVALID_ARGUMENT error is thrown. + string title = 2; + + // The content of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1.RankingRecord.content] should be + // set otherwise an INVALID_ARGUMENT error is thrown. + string content = 3; + + // The score of this record based on the given query and selected model. + float score = 4; +} + +// Request message for +// [RankService.Rank][google.cloud.discoveryengine.v1.RankService.Rank] method. +message RankRequest { + // Required. The resource name of the rank service config, such as + // `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`. + string ranking_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/RankingConfig" + } + ]; + + // The identifier of the model to use. It is one of: + // + // * `semantic-ranker-512@latest`: Semantic ranking model with maxiumn input + // token size 512. + // + // It is set to `semantic-ranker-512@latest` by default if unspecified. + string model = 2; + + // The number of results to return. If this is unset or no bigger than zero, + // returns all results. + int32 top_n = 3; + + // The query to use. + string query = 4; + + // Required. A list of records to rank. At most 200 records to rank. + repeated RankingRecord records = 5 [(google.api.field_behavior) = REQUIRED]; + + // If true, the response will contain only record ID and score. By default, it + // is false, the response will contain record details. + bool ignore_record_details_in_response = 6; + + // 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. + map user_labels = 7; +} + +// Response message for +// [RankService.Rank][google.cloud.discoveryengine.v1.RankService.Rank] method. +message RankResponse { + // A list of records sorted by descending score. + repeated RankingRecord records = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/recommendation_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/recommendation_service.proto new file mode 100644 index 000000000..634470290 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/recommendation_service.proto @@ -0,0 +1,229 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/document.proto"; +import "google/cloud/discoveryengine/v1/user_event.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Service for making recommendations. +service RecommendationService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Makes a recommendation, which requires a contextual user event. + rpc Recommend(RecommendRequest) returns (RecommendResponse) { + option (google.api.http) = { + post: "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:recommend" + body: "*" + additional_bindings { + post: "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:recommend" + body: "*" + } + additional_bindings { + post: "/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:recommend" + body: "*" + } + }; + } +} + +// Request message for Recommend method. +message RecommendRequest { + // Required. Full resource name of a [ServingConfig][]: + // `projects/*/locations/global/collections/*/engines/*/servingConfigs/*`, or + // `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*` + // + // One default serving config is created along with your recommendation engine + // creation. The engine ID is used as the ID of the default serving + // config. For example, for Engine + // `projects/*/locations/global/collections/*/engines/my-engine`, you can use + // `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs/my-engine` + // for your + // [RecommendationService.Recommend][google.cloud.discoveryengine.v1.RecommendationService.Recommend] + // requests. + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/ServingConfig" + } + ]; + + // Required. Context about the user, what they are looking at and what action + // they took to trigger the Recommend request. Note that this user event + // detail won't be ingested to userEvent logs. Thus, a separate userEvent + // write request is required for event logging. + // + // Don't set + // [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] + // or + // [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1.UserInfo.user_id] + // to the same fixed ID for different users. If you are trying to receive + // non-personalized recommendations (not recommended; this can negatively + // impact model performance), instead set + // [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] + // to a random unique ID and leave + // [UserEvent.user_info.user_id][google.cloud.discoveryengine.v1.UserInfo.user_id] + // unset. + UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; + + // Maximum number of results to return. Set this property + // to the number of recommendation results needed. If zero, the service + // chooses a reasonable default. The maximum allowed value is 100. Values + // above 100 are set to 100. + int32 page_size = 3; + + // Filter for restricting recommendation results with a length limit of 5,000 + // characters. Currently, only filter expressions on the `filter_tags` + // attribute is supported. + // + // + // Examples: + // + // * `(filter_tags: ANY("Red", "Blue") OR filter_tags: ANY("Hot", "Cold"))` + // * `(filter_tags: ANY("Red", "Blue")) AND NOT (filter_tags: ANY("Green"))` + // + // If `attributeFilteringSyntax` is set to true under the `params` field, then + // attribute-based expressions are expected instead of the above described + // tag-based syntax. Examples: + // + // * (launguage: ANY("en", "es")) AND NOT (categories: ANY("Movie")) + // * (available: true) AND + // (launguage: ANY("en", "es")) OR (categories: ANY("Movie")) + // + // If your filter blocks all results, the API returns generic + // (unfiltered) popular Documents. If you only want results strictly matching + // the filters, set `strictFiltering` to `true` in + // [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params] + // to receive empty results instead. + // + // Note that the API never returns + // [Document][google.cloud.discoveryengine.v1.Document]s with `storageStatus` + // as `EXPIRED` or `DELETED` regardless of filter choices. + string filter = 4; + + // Use validate only mode for this recommendation query. If set to `true`, a + // fake model is used that returns arbitrary Document IDs. + // Note that the validate only mode should only be used for testing the API, + // or if the model is not ready. + bool validate_only = 5; + + // Additional domain specific parameters for the recommendations. + // + // Allowed values: + // + // * `returnDocument`: Boolean. If set to `true`, the associated Document + // object is returned in + // [RecommendResponse.RecommendationResult.document][google.cloud.discoveryengine.v1.RecommendResponse.RecommendationResult.document]. + // * `returnScore`: Boolean. If set to true, the recommendation score + // corresponding to each returned Document is set in + // [RecommendResponse.RecommendationResult.metadata][google.cloud.discoveryengine.v1.RecommendResponse.RecommendationResult.metadata]. + // The given score indicates the probability of a Document conversion given + // the user's context and history. + // * `strictFiltering`: Boolean. True by default. If set to `false`, the + // service + // returns generic (unfiltered) popular Documents instead of empty if + // your filter blocks all recommendation results. + // * `diversityLevel`: String. Default empty. If set to be non-empty, then + // it needs to be one of: + // * `no-diversity` + // * `low-diversity` + // * `medium-diversity` + // * `high-diversity` + // * `auto-diversity` + // This gives request-level control and adjusts recommendation results + // based on Document category. + // * `attributeFilteringSyntax`: Boolean. False by default. If set to true, + // the `filter` field is interpreted according to the new, + // attribute-based syntax. + map params = 6; + + // 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 [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // for more details. + map user_labels = 8; +} + +// Response message for Recommend method. +message RecommendResponse { + // RecommendationResult represents a generic recommendation result with + // associated metadata. + message RecommendationResult { + // Resource ID of the recommended Document. + string id = 1; + + // Set if `returnDocument` is set to true in + // [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params]. + Document document = 2; + + // Additional Document metadata or annotations. + // + // Possible values: + // + // * `score`: Recommendation score in double value. Is set if + // `returnScore` is set to true in + // [RecommendRequest.params][google.cloud.discoveryengine.v1.RecommendRequest.params]. + map metadata = 3; + } + + // A list of recommended Documents. The order represents the ranking (from the + // most relevant Document to the least). + repeated RecommendationResult results = 1; + + // A unique attribution token. This should be included in the + // [UserEvent][google.cloud.discoveryengine.v1.UserEvent] logs resulting from + // this recommendation, which enables accurate attribution of recommendation + // model performance. + string attribution_token = 2; + + // IDs of documents in the request that were missing from the default Branch + // associated with the requested ServingConfig. + repeated string missing_ids = 3; + + // True if + // [RecommendRequest.validate_only][google.cloud.discoveryengine.v1.RecommendRequest.validate_only] + // was set. + bool validate_only = 4; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/schema.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/schema.proto index 11fa2833d..aeb05e36c 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/schema.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/schema_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/schema_service.proto index 74ac7f70f..91045510c 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/schema_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/schema_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -142,9 +142,9 @@ message ListSchemasRequest { // return. The service may return fewer than this value. // // If unspecified, at most 100 - // [Schema][google.cloud.discoveryengine.v1.Schema]s will be returned. + // [Schema][google.cloud.discoveryengine.v1.Schema]s are returned. // - // The maximum value is 1000; values above 1000 will be coerced to 1000. + // The maximum value is 1000; values above 1000 are set to 1000. int32 page_size = 2; // A page token, received from a previous @@ -188,8 +188,8 @@ message CreateSchemaRequest { Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The ID to use for the - // [Schema][google.cloud.discoveryengine.v1.Schema], which will become the - // final component of the + // [Schema][google.cloud.discoveryengine.v1.Schema], which becomes the final + // component of the // [Schema.name][google.cloud.discoveryengine.v1.Schema.name]. // // This field should conform to @@ -206,7 +206,7 @@ message UpdateSchemaRequest { Schema schema = 1 [(google.api.field_behavior) = REQUIRED]; // If set to true, and the [Schema][google.cloud.discoveryengine.v1.Schema] is - // not found, a new [Schema][google.cloud.discoveryengine.v1.Schema] will be + // not found, a new [Schema][google.cloud.discoveryengine.v1.Schema] is // created. In this situation, `update_mask` is ignored. bool allow_missing = 3; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/search_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/search_service.proto index cce7d9d15..290f1e455 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/search_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/chunk.proto"; import "google/cloud/discoveryengine/v1/common.proto"; import "google/cloud/discoveryengine/v1/document.proto"; import "google/protobuf/struct.proto"; @@ -69,6 +70,21 @@ message SearchRequest { } } + // A struct to define data stores to filter on in a search call and + // configurations for those data stores. Otherwise, an `INVALID_ARGUMENT` + // error is returned. + message DataStoreSpec { + // Required. Full resource name of + // [DataStore][google.cloud.discoveryengine.v1.DataStore], such as + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + // A facet specification to perform faceted search. message FacetSpec { // Specifies how a facet is computed. @@ -98,7 +114,7 @@ message SearchRequest { // Only supported on textual fields. Maximum is 10. repeated string prefixes = 4; - // Only get facet values that contains the given strings. For example, + // Only get facet values that contain the given strings. For example, // suppose "category" has three values "Action > 2022", // "Action > 2021" and "Sci-Fi > 2022". If set "contains" to "2022", the // "category" facet only contains "Action > 2022" and "Sci-Fi > 2022". @@ -132,9 +148,12 @@ message SearchRequest { // Required. The facet key specification. FacetKey facet_key = 1 [(google.api.field_behavior) = REQUIRED]; - // Maximum of facet values that should be returned for this facet. If + // Maximum facet values that are returned for this facet. If // unspecified, defaults to 20. The maximum allowed value is 300. Values // above 300 are coerced to 300. + // For aggregation in healthcare search, when the [FacetKey.key] is + // "healthcare_aggregation_key", the limit will be overridden to + // 10,000 internally, regardless of the value set here. // // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 limit = 2; @@ -212,28 +231,29 @@ message SearchRequest { // Examples: // // * To boost documents with document ID "doc_1" or "doc_2", and - // color - // "Red" or "Blue": - // * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + // color "Red" or "Blue": + // `(document_id: ANY("doc_1", "doc_2")) AND (color: ANY("Red", "Blue"))` string condition = 1; // Strength of the condition boost, which should be in [-1, 1]. Negative // boost means demotion. Default is 0.0. // - // Setting to 1.0 gives the document a big promotion. However, it does not - // necessarily mean that the boosted document will be the top result at - // all times, nor that other documents will be excluded. Results could - // still be shown even when none of them matches the condition. And - // results that are significantly more relevant to the search query can - // still trump your heavily favored but irrelevant documents. + // Setting to 1.0 gives the document a big promotion. However, it does + // not necessarily mean that the boosted document will be the top result + // at all times, nor that other documents will be excluded. Results + // could still be shown even when none of them matches the condition. + // And results that are significantly more relevant to the search query + // can still trump your heavily favored but irrelevant documents. // // Setting to -1.0 gives the document a big demotion. However, results // that are deeply relevant might still be shown. The document will have - // an upstream battle to get a fairly high ranking, but it is not blocked - // out completely. + // an upstream battle to get a fairly high ranking, but it is not + // blocked out completely. // // Setting to 0.0 means no boost applied. The boosting condition is - // ignored. + // ignored. Only one of the (condition, boost) combination or the + // boost_control_spec below are set. If both are set then the global boost + // is ignored and the more fine-grained boost_control_spec is applied. float boost = 2; } @@ -282,10 +302,10 @@ message SearchRequest { // [Mode.AUTO][google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. MODE_UNSPECIFIED = 0; - // Search API will try to find a spell suggestion if there - // is any and put in the + // Search API tries to find a spelling suggestion. If a suggestion is + // found, it is put in the // [SearchResponse.corrected_query][google.cloud.discoveryengine.v1.SearchResponse.corrected_query]. - // The spell suggestion will not be used as the search query. + // The spelling suggestion won't be used as the search query. SUGGESTION_ONLY = 1; // Automatic spell correction built by the Search API. Search will @@ -293,8 +313,8 @@ message SearchRequest { AUTO = 2; } - // The mode under which spell correction should take effect to - // replace the original search query. Default to + // The mode under which spell correction + // replaces the original search query. Defaults to // [Mode.AUTO][google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. Mode mode = 1; } @@ -335,11 +355,13 @@ message SearchRequest { // Supported values are: // // * `stable`: string. Default value when no value is specified. Uses a - // generally available, fine-tuned version of the text-bison@001 - // model. - // * `preview`: string. (Public preview) Uses a fine-tuned version of - // the text-bison@002 model. This model works only for summaries in - // English. + // generally available, fine-tuned model. For more information, see + // [Answer generation model versions and + // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). + // * `preview`: string. (Public preview) Uses a preview model. For more + // information, see + // [Answer generation model versions and + // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). string version = 1; } @@ -347,7 +369,11 @@ message SearchRequest { // of results returned is less than `summaryResultCount`, the summary is // generated from all of the results. // - // At most five results can be used to generate a summary. + // At most 10 results for documents mode, or 50 for chunks mode, can be + // used to generate a summary. The chunks mode is used when + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. int32 summary_result_count = 1; // Specifies whether to include citations in the summary. The default @@ -406,6 +432,103 @@ message SearchRequest { // If specified, the spec will be used to modify the model specification // provided to the LLM. ModelSpec model_spec = 7; + + // If true, answer will be generated from most relevant chunks from top + // search results. This feature will improve summary quality. + // Note that with this feature enabled, not all top search results + // will be referenced and included in the reference list, so the citation + // source index only points to the search results listed in the reference + // list. + bool use_semantic_chunks = 8; + } + + // A specification for configuring the extractive content in a search + // response. + message ExtractiveContentSpec { + // The maximum number of extractive answers returned in each search + // result. + // + // An extractive answer is a verbatim answer extracted from the original + // document, which provides a precise and contextually relevant answer to + // the search query. + // + // If the number of matching answers is less than the + // `max_extractive_answer_count`, return all of the answers. Otherwise, + // return the `max_extractive_answer_count`. + // + // At most five answers are returned for each + // [SearchResult][google.cloud.discoveryengine.v1.SearchResponse.SearchResult]. + int32 max_extractive_answer_count = 1; + + // The max number of extractive segments returned in each search result. + // Only applied if the + // [DataStore][google.cloud.discoveryengine.v1.DataStore] is set to + // [DataStore.ContentConfig.CONTENT_REQUIRED][google.cloud.discoveryengine.v1.DataStore.ContentConfig.CONTENT_REQUIRED] + // or + // [DataStore.solution_types][google.cloud.discoveryengine.v1.DataStore.solution_types] + // is + // [SOLUTION_TYPE_CHAT][google.cloud.discoveryengine.v1.SolutionType.SOLUTION_TYPE_CHAT]. + // + // An extractive segment is a text segment extracted from the original + // document that is relevant to the search query, and, in general, more + // verbose than an extractive answer. The segment could then be used as + // input for LLMs to generate summaries and answers. + // + // If the number of matching segments is less than + // `max_extractive_segment_count`, return all of the segments. Otherwise, + // return the `max_extractive_segment_count`. + int32 max_extractive_segment_count = 2; + + // Specifies whether to return the confidence score from the extractive + // segments in each search result. This feature is available only for new + // or allowlisted data stores. To allowlist your data store, + // contact your Customer Engineer. The default value is `false`. + bool return_extractive_segment_score = 3; + + // Specifies whether to also include the adjacent from each selected + // segments. + // Return at most `num_previous_segments` segments before each selected + // segments. + int32 num_previous_segments = 4; + + // Return at most `num_next_segments` segments after each selected + // segments. + int32 num_next_segments = 5; + } + + // Specifies the chunk spec to be returned from the search response. + // Only available if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS] + message ChunkSpec { + // The number of previous chunks to be returned of the current chunk. The + // maximum allowed value is 3. + // If not specified, no previous chunks will be returned. + int32 num_previous_chunks = 1; + + // The number of next chunks to be returned of the current chunk. The + // maximum allowed value is 3. + // If not specified, no next chunks will be returned. + int32 num_next_chunks = 2; + } + + // Specifies the search result mode. If unspecified, the + // search result mode is based on + // [DataStore.DocumentProcessingConfig.chunking_config][]: + // * If [DataStore.DocumentProcessingConfig.chunking_config][] is specified, + // it defaults to `CHUNKS`. + // * Otherwise, it defaults to `DOCUMENTS`. + enum SearchResultMode { + // Default value. + SEARCH_RESULT_MODE_UNSPECIFIED = 0; + + // Returns documents in the search result. + DOCUMENTS = 1; + + // Returns chunks in the search result. Only available if the + // [DataStore.DocumentProcessingConfig.chunking_config][] is specified. + CHUNKS = 2; } // If `snippetSpec` is not specified, snippets are not included in the @@ -415,6 +538,89 @@ message SearchRequest { // If `summarySpec` is not specified, summaries are not included in the // search response. SummarySpec summary_spec = 2; + + // If there is no extractive_content_spec provided, there will be no + // extractive answer in the search response. + ExtractiveContentSpec extractive_content_spec = 3; + + // Specifies the search result mode. If unspecified, the + // search result mode is based on + // [DataStore.DocumentProcessingConfig.chunking_config][]: + // * If [DataStore.DocumentProcessingConfig.chunking_config][] is specified, + // it defaults to `CHUNKS`. + // * Otherwise, it defaults to `DOCUMENTS`. + SearchResultMode search_result_mode = 4; + + // Specifies the chunk spec to be returned from the search response. + // Only available if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS] + ChunkSpec chunk_spec = 5; + } + + // Specification for search as you type in search requests. + message SearchAsYouTypeSpec { + // Enum describing under which condition search as you type should occur. + enum Condition { + // Server behavior defaults to + // [Condition.DISABLED][google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec.Condition.DISABLED]. + CONDITION_UNSPECIFIED = 0; + + // Disables Search As You Type. + DISABLED = 1; + + // Enables Search As You Type. + ENABLED = 2; + } + + // The condition under which search as you type should occur. + // Default to + // [Condition.DISABLED][google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec.Condition.DISABLED]. + Condition condition = 1; + } + + // Session specification. + // + // Multi-turn Search feature is currently at private GA stage. Please use + // v1alpha or v1beta version instead before we launch this feature to public + // GA. Or ask for allowlisting through Google Support team. + message SessionSpec { + // If set, the search result gets stored to the "turn" specified by this + // query ID. + // + // Example: Let's say the session looks like this: + // session { + // name: ".../sessions/xxx" + // turns { + // query { text: "What is foo?" query_id: ".../questions/yyy" } + // answer: "Foo is ..." + // } + // turns { + // query { text: "How about bar then?" query_id: ".../questions/zzz" } + // } + // } + // + // The user can call /search API with a request like this: + // + // session: ".../sessions/xxx" + // session_spec { query_id: ".../questions/zzz" } + // + // Then, the API stores the search result, associated with the last turn. + // The stored search result can be used by a subsequent /answer API call + // (with the session ID and the query ID specified). Also, it is possible + // to call /search and /answer in parallel with the same session ID & query + // ID. + string query_id = 1; + + // The number of top search results to persist. The persisted search results + // can be used for the subsequent /answer api call. + // + // This field is simliar to the `summary_result_count` field in + // [SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count]. + // + // At most 10 results for documents mode, or 50 for chunks mode. + optional int32 search_result_persistence_count = 2; } // Required. The resource name of the Search serving config, such as @@ -446,10 +652,14 @@ message SearchRequest { ImageQuery image_query = 19; // Maximum number of [Document][google.cloud.discoveryengine.v1.Document]s to - // return. If unspecified, defaults to a reasonable value. The maximum allowed - // value is 100. Values above 100 are coerced to 100. + // return. The maximum allowed value depends on the data type. Values above + // the maximum value are coerced to the maximum value. // - // If this field is negative, an `INVALID_ARGUMENT` is returned. + // * Websites with basic indexing: Default `10`, Maximum `25`. + // * Websites with advanced indexing: Default `25`, Maximum `50`. + // * Other: Default `50`, Maximum `100`. + // + // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 page_size = 4; // A page token received from a previous @@ -472,6 +682,12 @@ message SearchRequest { // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 offset = 6; + // Specs defining dataStores to filter on in a search call and configurations + // for those dataStores. This is only considered for engines with multiple + // dataStores use case. For single dataStore within an engine, they should + // use the specs at the top level. + repeated DataStoreSpec data_store_specs = 32; + // The filter syntax consists of an expression language for constructing a // predicate from one or more fields of the documents being filtered. Filter // expression is case-sensitive. @@ -506,7 +722,9 @@ message SearchRequest { // The order in which documents are returned. Documents can be ordered by // a field in an [Document][google.cloud.discoveryengine.v1.Document] object. // Leave it unset if ordered by relevance. `order_by` expression is - // case-sensitive. For more information on ordering, see + // case-sensitive. + // + // For more information on ordering for retail search, see // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) // // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. @@ -518,6 +736,13 @@ message SearchRequest { // is used to deduce `device_type` for analytics. UserInfo user_info = 21; + // The BCP-47 language code, such as "en-US" or "sr-Latn". For more + // information, see [Standard + // fields](https://cloud.google.com/apis/design/standard_fields). This field + // helps to better interpret the query. If a value isn't specified, the query + // language code is automatically detected, which may not be accurate. + string language_code = 35; + // Facet specifications for faceted search. If empty, no facets are returned. // // A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` @@ -526,7 +751,7 @@ message SearchRequest { // Boost specification to boost certain documents. // For more information on boosting, see - // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + // [Boosting](https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results) BoostSpec boost_spec = 10; // Additional search parameters. @@ -535,8 +760,7 @@ message SearchRequest { // // * `user_country_code`: string. Default empty. If set to non-empty, results // are restricted or boosted based on the location provided. - // Example: - // user_country_code: "au" + // For example, `user_country_code: "au"` // // For available codes see [Country // Codes](https://developers.google.com/custom-search/docs/json_api_reference#countryCodes) @@ -544,8 +768,7 @@ message SearchRequest { // * `search_type`: double. Default empty. Enables non-webpage searching // depending on the value. The only valid non-default value is 1, // which enables image searching. - // Example: - // search_type: 1 + // For example, `search_type: 1` map params = 11; // The query expansion specification that specifies the conditions under which @@ -597,6 +820,46 @@ message SearchRequest { // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) // for more details. map user_labels = 22; + + // Search as you type configuration. Only supported for the + // [IndustryVertical.MEDIA][google.cloud.discoveryengine.v1.IndustryVertical.MEDIA] + // vertical. + SearchAsYouTypeSpec search_as_you_type_spec = 31; + + // The session resource name. Optional. + // + // Session allows users to do multi-turn /search API calls or coordination + // between /search API calls and /answer API calls. + // + // Example #1 (multi-turn /search API calls): + // 1. Call /search API with the auto-session mode (see below). + // 2. Call /search API with the session ID generated in the first call. + // Here, the previous search query gets considered in query + // standing. I.e., if the first query is "How did Alphabet do in 2022?" + // and the current query is "How about 2023?", the current query will + // be interpreted as "How did Alphabet do in 2023?". + // + // Example #2 (coordination between /search API calls and /answer API calls): + // 1. Call /search API with the auto-session mode (see below). + // 2. Call /answer API with the session ID generated in the first call. + // Here, the answer generation happens in the context of the search + // results from the first search call. + // + // Auto-session mode: when `projects/.../sessions/-` is used, a new session + // gets automatically created. Otherwise, users can use the create-session API + // to create a session manually. + // + // Multi-turn Search feature is currently at private GA stage. Please use + // v1alpha or v1beta version instead before we launch this feature to public + // GA. Or ask for allowlisting through Google Support team. + string session = 41 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + }]; + + // Session specification. + // + // Can be used only when `session` is set. + SessionSpec session_spec = 42; } // Response message for @@ -610,8 +873,14 @@ message SearchResponse { string id = 1; // The document data snippet in the search response. Only fields that are - // marked as retrievable are populated. + // marked as `retrievable` are populated. Document document = 2; + + // The chunk data in the search response if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. + Chunk chunk = 18; } // A facet result. @@ -633,7 +902,7 @@ message SearchResponse { int64 count = 3; } - // The key for this facet. E.g., "colors" or "price". It matches + // The key for this facet. For example, `"colors"` or `"price"`. It matches // [SearchRequest.FacetSpec.FacetKey.key][google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.key]. string key = 1; @@ -644,7 +913,7 @@ message SearchResponse { bool dynamic_facet = 3; } - // Summary of the top N search result specified by the summary spec. + // Summary of the top N search results specified by the summary spec. message Summary { // Safety Attribute categories and their associated confidence scores. message SafetyAttributes { @@ -685,6 +954,15 @@ message SearchResponse { // Document reference. message Reference { + // Chunk content. + message ChunkContent { + // Chunk textual content. + string content = 1; + + // Page identifier. + string page_identifier = 2; + } + // Title of the document. string title = 1; @@ -701,6 +979,9 @@ message SearchResponse { // Cloud Storage or HTTP uri for the document. string uri = 3; + + // List of cited chunk contents derived from document content. + repeated ChunkContent chunk_contents = 4; } // Summary with metadata information. @@ -781,6 +1062,23 @@ message SearchResponse { int64 pinned_result_count = 2; } + // Information about the session. + message SessionInfo { + // Name of the session. + // If the auto-session mode is used (when + // [SearchRequest.session][google.cloud.discoveryengine.v1.SearchRequest.session] + // ends with "-"), this field holds the newly generated session name. + string name = 1; + + // Query ID that corresponds to this search API call. + // One session can have multiple turns, each with a unique query ID. + // + // By specifying the session name and this query ID in the Answer API call, + // the answer generation happens in the context of the search results from + // this search call. + string query_id = 2; + } + // A list of matched documents. The order represents the ranking. repeated SearchResult results = 1; @@ -827,4 +1125,11 @@ message SearchResponse { // Query expansion information for the returned results. QueryExpansionInfo query_expansion_info = 14; + + // Session information. + // + // Only set if + // [SearchRequest.session][google.cloud.discoveryengine.v1.SearchRequest.session] + // is provided. See its description for more details. + SessionInfo session_info = 19; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/session.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/session.proto new file mode 100644 index 000000000..000eaa982 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/session.proto @@ -0,0 +1,97 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SessionProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// External session proto definition. +message Session { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Session" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}" + }; + + // Represents a turn, including a query from the user and a + // answer from service. + message Turn { + // The user query. + Query query = 1; + + // The resource name of the answer to the user query. + // + // Only set if the answer generation (/answer API call) happened in this + // turn. + string answer = 2 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Answer" + }]; + } + + // Enumeration of the state of the session. + enum State { + // State is unspecified. + STATE_UNSPECIFIED = 0; + + // The session is currently open. + IN_PROGRESS = 1; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The state of the session. + State state = 2; + + // A unique identifier for tracking users. + string user_pseudo_id = 3; + + // Turns. + repeated Turn turns = 4; + + // Output only. The time the session started. + google.protobuf.Timestamp start_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the session finished. + google.protobuf.Timestamp end_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines a user inputed query. +message Query { + // Query content. + oneof content { + // Plain text. + string text = 2; + } + + // Unique Id for the query. + string query_id = 1; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine.proto index f43a042bc..c1fc83d73 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -129,6 +129,9 @@ message TargetSite { // Output only. This is system-generated based on the provided_uri_pattern. string generated_uri_pattern = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Root domain of the provided_uri_pattern. + string root_domain_uri = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Site ownership and validity verification status. SiteVerificationInfo site_verification_info = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine_service.proto index e1e32f3fe..fa5ea8dcb 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/site_search_engine_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/user_event.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/user_event.proto index 3c4de697d..bbc01341d 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/user_event.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,7 +32,7 @@ option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; // UserEvent captures all metadata information Discovery Engine API needs to -// know about how end users interact with customers' website. +// know about how end users interact with your website. message UserEvent { // Required. User event type. Allowed values are: // @@ -74,6 +74,31 @@ message UserEvent { // for this field. string user_pseudo_id = 2 [(google.api.field_behavior) = REQUIRED]; + // The [Engine][google.cloud.discoveryengine.v1.Engine] resource name, in the + // form of + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}`. + // + // Optional. Only required for + // [Engine][google.cloud.discoveryengine.v1.Engine] produced user events. For + // example, user events from blended search. + string engine = 19 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + }]; + + // The [DataStore][google.cloud.discoveryengine.v1.DataStore] resource full + // name, of the form + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. + // + // Optional. Only required for user events whose data store can't by + // determined by + // [UserEvent.engine][google.cloud.discoveryengine.v1.UserEvent.engine] or + // [UserEvent.documents][google.cloud.discoveryengine.v1.UserEvent.documents]. + // If data store is set in the parent of write/import/collect user event + // requests, this field can be omitted. + string data_store = 20 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + }]; + // Only required for // [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1.UserEventService.ImportUserEvents] // method. Timestamp of when the user event happened. @@ -114,22 +139,26 @@ message UserEvent { // Token to attribute an API response to user action(s) to trigger the event. // // Highly recommended for user events that are the result of - // [RecommendationService.Recommend][]. This field enables accurate - // attribution of recommendation model performance. + // [RecommendationService.Recommend][google.cloud.discoveryengine.v1.RecommendationService.Recommend]. + // This field enables accurate attribution of recommendation model + // performance. // // The value must be one of: // - // * [RecommendResponse.attribution_token][] for events that are the result of - // [RecommendationService.Recommend][]. + // * [RecommendResponse.attribution_token][google.cloud.discoveryengine.v1.RecommendResponse.attribution_token] for events that are the result of + // [RecommendationService.Recommend][google.cloud.discoveryengine.v1.RecommendationService.Recommend]. // * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1.SearchResponse.attribution_token] for events that are the result of // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search]. // // This token enables us to accurately attribute page view or conversion // completion back to the event and the particular predict response containing // this clicked/purchased product. If user clicks on product K in the - // recommendation results, pass [RecommendResponse.attribution_token][] as a - // URL parameter to product K's page. When recording events on product K's - // page, log the [RecommendResponse.attribution_token][] to this field. + // recommendation results, pass + // [RecommendResponse.attribution_token][google.cloud.discoveryengine.v1.RecommendResponse.attribution_token] + // as a URL parameter to product K's page. When recording events on product + // K's page, log the + // [RecommendResponse.attribution_token][google.cloud.discoveryengine.v1.RecommendResponse.attribution_token] + // to this field. string attribution_token = 8; // The filter syntax consists of an expression language for constructing a @@ -142,9 +171,10 @@ message UserEvent { // conforming to https://google.aip.dev/160#filtering. // // Similarly, for `view-item-list` events that are generated from a - // [RecommendRequest][], this field may be populated directly from - // [RecommendRequest.filter][] conforming to - // https://google.aip.dev/160#filtering. + // [RecommendRequest][google.cloud.discoveryengine.v1.RecommendRequest], this + // field may be populated directly from + // [RecommendRequest.filter][google.cloud.discoveryengine.v1.RecommendRequest.filter] + // conforming to https://google.aip.dev/160#filtering. // // The value must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. @@ -191,7 +221,7 @@ message UserEvent { // A list of identifiers for the independent experiment groups this user event // belongs to. This is used to distinguish between user events associated with - // different experiment setups on the customer end. + // different experiment setups. repeated string tag_ids = 15; // The promotion IDs if this is an event associated with promotions. @@ -247,7 +277,7 @@ message PageInfo { // The most specific category associated with a category page. // // To represent full path of category, use '>' sign to separate different - // hierarchies. If '>' is part of the category name, please replace it with + // 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 @@ -411,7 +441,7 @@ message DocumentInfo { // Quantity of the Document associated with the user event. Defaults to 1. // - // For example, this field will be 2 if two quantities of the same Document + // For example, this field is 2 if two quantities of the same Document // are involved in a `add-to-cart` event. // // Required for events of the following event types: diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1/user_event_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1/user_event_service.proto index faedebe66..7ec0f7ca6 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1/user_event_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -49,6 +49,10 @@ service UserEventService { post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" body: "user_event" } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/userEvents:write" + body: "user_event" + } }; } @@ -63,10 +67,13 @@ service UserEventService { additional_bindings { get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*}/userEvents:collect" + } }; } - // Bulk import of User events. Request processing might be + // Bulk import of user events. Request processing might be // synchronous. Events that already exist are skipped. // Use this method for backfilling historical user events. // @@ -92,8 +99,16 @@ service UserEventService { // Request message for WriteUserEvent method. message WriteUserEventRequest { - // Required. The parent DataStore resource name, such as + // Required. The parent resource name. + // If the write user event action is applied in + // [DataStore][google.cloud.discoveryengine.v1.DataStore] level, the format + // is: // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. + // If the write user event action is applied in [Location][] level, for + // example, the event with + // [Document][google.cloud.discoveryengine.v1.Document] across multiple + // [DataStore][google.cloud.discoveryengine.v1.DataStore], the format is: + // `projects/{project}/locations/{location}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -103,6 +118,10 @@ message WriteUserEventRequest { // Required. User event to write. optional UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; + + // If set to true, the user event is written asynchronously after + // validation, and the API responds without waiting for the write. + bool write_async = 3; } // Request message for CollectUserEvent method. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/BUILD.bazel b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/BUILD.bazel index ee09533f8..1e21a743b 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/BUILD.bazel +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/BUILD.bazel @@ -9,35 +9,57 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "discoveryengine_proto", srcs = [ + "acl_config.proto", + "acl_config_service.proto", + "answer.proto", + "chunk.proto", + "chunk_service.proto", "common.proto", + "completion.proto", "completion_service.proto", + "control.proto", + "control_service.proto", "conversation.proto", "conversational_search_service.proto", + "custom_tuning_model.proto", "data_store.proto", "data_store_service.proto", "document.proto", + "document_processing_config.proto", "document_service.proto", "engine.proto", "engine_service.proto", + "estimate_billing_service.proto", + "grounded_generation_service.proto", + "grounding.proto", "import_config.proto", + "project.proto", + "project_service.proto", "purge_config.proto", + "rank_service.proto", "recommendation_service.proto", "schema.proto", "schema_service.proto", "search_service.proto", "search_tuning_service.proto", + "serving_config.proto", + "serving_config_service.proto", + "session.proto", "site_search_engine.proto", "site_search_engine_service.proto", "user_event.proto", @@ -64,14 +86,15 @@ proto_library_with_info( name = "discoveryengine_proto_with_info", deps = [ ":discoveryengine_proto", - "//google/cloud/location:location_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -100,8 +123,8 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "discoveryengine_v1alpha.yaml", test_deps = [ - "//google/cloud/location:location_java_grpc", ":discoveryengine_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ @@ -114,8 +137,14 @@ java_gapic_library( java_gapic_test( name = "discoveryengine_java_gapic_test_suite", test_classes = [ + "com.google.cloud.discoveryengine.v1alpha.AclConfigServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.AclConfigServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.ChunkServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.ChunkServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.CompletionServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.CompletionServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.ControlServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.ControlServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.ConversationalSearchServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.ConversationalSearchServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.DataStoreServiceClientHttpJsonTest", @@ -124,6 +153,14 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1alpha.DocumentServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.EngineServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.EngineServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.EstimateBillingServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.EstimateBillingServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.GroundedGenerationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.GroundedGenerationServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.ProjectServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.ProjectServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.RankServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.RankServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.RecommendationServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.RecommendationServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.SchemaServiceClientHttpJsonTest", @@ -132,6 +169,8 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1alpha.SearchServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.SearchTuningServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.SearchTuningServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.ServingConfigServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.ServingConfigServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.SiteSearchEngineServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.SiteSearchEngineServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.UserEventServiceClientHttpJsonTest", @@ -143,6 +182,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-discoveryengine-v1alpha-java", + include_samples = True, transport = "grpc+rest", deps = [ ":discoveryengine_java_gapic", @@ -150,12 +190,12 @@ java_gapic_assembly_gradle_pkg( ":discoveryengine_java_proto", ":discoveryengine_proto", ], - include_samples = True, ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -204,9 +244,9 @@ go_gapic_assembly_pkg( name = "gapi-cloud-discoveryengine-v1alpha-go", deps = [ ":discoveryengine_go_gapic", - ":discoveryengine_go_gapic_srcjar-test.srcjar", ":discoveryengine_go_gapic_srcjar-metadata.srcjar", ":discoveryengine_go_gapic_srcjar-snippets.srcjar", + ":discoveryengine_go_gapic_srcjar-test.srcjar", ":discoveryengine_go_proto", ], ) @@ -214,6 +254,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -228,7 +269,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "discoveryengine_v1alpha.yaml", transport = "grpc+rest", - deps = [], + deps = [ + ], ) py_test( @@ -252,6 +294,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -268,8 +311,8 @@ php_gapic_library( name = "discoveryengine_php_gapic", srcs = [":discoveryengine_proto_with_info"], grpc_service_config = "discoveryengine_grpc_service_config.json", - rest_numeric_enums = True, migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, service_yaml = "discoveryengine_v1alpha.yaml", transport = "grpc+rest", deps = [ @@ -289,6 +332,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -319,10 +363,11 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -341,9 +386,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "discoveryengine_ruby_gapic", srcs = [":discoveryengine_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-discoveryengine-v1alpha", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-discoveryengine-v1alpha"], grpc_service_config = "discoveryengine_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "discoveryengine_v1alpha.yaml", @@ -367,6 +410,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -394,6 +438,7 @@ csharp_gapic_library( grpc_service_config = "discoveryengine_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "discoveryengine_v1alpha.yaml", + transport = "grpc+rest", deps = [ ":discoveryengine_csharp_grpc", ":discoveryengine_csharp_proto", @@ -413,6 +458,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/acl_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/acl_config.proto new file mode 100644 index 000000000..ec0224a8f --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/acl_config.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/common.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "AclConfigProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Access Control Configuration. +message AclConfig { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/AclConfig" + pattern: "projects/{project}/locations/{location}/aclConfig" + }; + + // Immutable. The full resource name of the acl configuration. + // Format: + // `projects/{project}/locations/{location}/aclConfig`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Identity provider config. + IdpConfig idp_config = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/acl_config_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/acl_config_service.proto new file mode 100644 index 000000000..6f09d2651 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/acl_config_service.proto @@ -0,0 +1,79 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/acl_config.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "AclConfigServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for managing Acl Configuration. +service AclConfigService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Default Acl Configuration for use in a location of a customer's project. + // Updates will only reflect to new data stores. Existing data stores will + // still use the old value. + rpc UpdateAclConfig(UpdateAclConfigRequest) returns (AclConfig) { + option (google.api.http) = { + patch: "/v1alpha/{acl_config.name=projects/*/locations/*/aclConfig}" + body: "acl_config" + }; + } + + // Gets the [AclConfig][google.cloud.discoveryengine.v1alpha.AclConfig]. + rpc GetAclConfig(GetAclConfigRequest) returns (AclConfig) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/aclConfig}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for GetAclConfigRequest method. +message GetAclConfigRequest { + // Required. Resource name of + // [AclConfig][google.cloud.discoveryengine.v1alpha.AclConfig], such as + // `projects/*/locations/*/aclConfig`. + // + // If the caller does not have permission to access the + // [AclConfig][google.cloud.discoveryengine.v1alpha.AclConfig], regardless of + // whether or not it exists, a PERMISSION_DENIED error is returned. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/AclConfig" + } + ]; +} + +// Request message for UpdateAclConfig method. +message UpdateAclConfigRequest { + AclConfig acl_config = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/answer.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/answer.proto new file mode 100644 index 000000000..b8dbd68ed --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/answer.proto @@ -0,0 +1,337 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "AnswerProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Defines an answer. +message Answer { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Answer" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}/answers/{answer}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}/answers/{answer}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}/answers/{answer}" + }; + + // Citation info for a segment. + message Citation { + // Index indicates the start of the segment, measured in bytes (UTF-8 + // unicode). + int64 start_index = 1; + + // End of the attributed segment, exclusive. + int64 end_index = 2; + + // Citation sources for the attributed segment. + repeated CitationSource sources = 3; + } + + // Citation source. + message CitationSource { + // ID of the citation source. + string reference_id = 1; + } + + // Reference. + message Reference { + // Unstructured document information. + message UnstructuredDocumentInfo { + // Chunk content. + message ChunkContent { + // Chunk textual content. + string content = 1; + + // Page identifier. + string page_identifier = 2; + } + + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // List of cited chunk contents derived from document content. + repeated ChunkContent chunk_contents = 4; + + // The structured JSON metadata for the document. + // It is populated from the struct data from the Chunk in search result. + google.protobuf.Struct struct_data = 5; + } + + // Chunk information. + message ChunkInfo { + // Document metadata. + message DocumentMetadata { + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // Page identifier. + string page_identifier = 4; + + // The structured JSON metadata for the document. + // It is populated from the struct data from the Chunk in search result. + google.protobuf.Struct struct_data = 5; + } + + // Chunk resource name. + string chunk = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + }]; + + // Chunk textual content. + string content = 2; + + // Relevance score. + optional float relevance_score = 3; + + // Document metadata. + DocumentMetadata document_metadata = 4; + } + + // Search result content. + oneof content { + // Unstructured document information. + UnstructuredDocumentInfo unstructured_document_info = 1; + + // Chunk information. + ChunkInfo chunk_info = 2; + } + } + + // Step information. + message Step { + // Action. + message Action { + // Search action. + message SearchAction { + // The query to search. + string query = 1; + } + + // Observation. + message Observation { + message SearchResult { + // Snippet information. + message SnippetInfo { + // Snippet content. + string snippet = 1; + + // Status of the snippet defined by the search team. + string snippet_status = 2; + } + + // Chunk information. + message ChunkInfo { + // Chunk resource name. + string chunk = 1; + + // Chunk textual content. + string content = 2; + + // Relevance score. + optional float relevance_score = 3; + } + + // Document resource name. + string document = 1; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // If citation_type is DOCUMENT_LEVEL_CITATION, populate document + // level snippets. + repeated SnippetInfo snippet_info = 4; + + // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, + // populate chunk info. + repeated ChunkInfo chunk_info = 5; + } + + // Search results observed by the search action, it can be snippets info + // or chunk info, depending on the citation type set by the user. + repeated SearchResult search_results = 2; + } + + // The action. + oneof action { + // Search action. + SearchAction search_action = 2; + } + + // Observation. + Observation observation = 3; + } + + // Enumeration of the state of the step. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Step is currently in progress. + IN_PROGRESS = 1; + + // Step currently failed. + FAILED = 2; + + // Step has succeeded. + SUCCEEDED = 3; + } + + // The state of the step. + State state = 1; + + // The description of the step. + string description = 2; + + // The thought of the step. + string thought = 3; + + // Actions. + repeated Action actions = 4; + } + + // Query understanding information. + message QueryUnderstandingInfo { + // Query classification information. + message QueryClassificationInfo { + // Query classification types. + enum Type { + // Unspecified query classification type. + TYPE_UNSPECIFIED = 0; + + // Adversarial query classification type. + ADVERSARIAL_QUERY = 1; + + // Non-answer-seeking query classification type. + NON_ANSWER_SEEKING_QUERY = 2; + } + + // Query classification type. + Type type = 1; + + // Classification output. + bool positive = 2; + } + + // Query classification information. + repeated QueryClassificationInfo query_classification_info = 1; + } + + // Enumeration of the state of the answer generation. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Answer generation is currently in progress. + IN_PROGRESS = 1; + + // Answer generation currently failed. + FAILED = 2; + + // Answer generation has succeeded. + SUCCEEDED = 3; + } + + // An enum for answer skipped reasons. + enum AnswerSkippedReason { + // Default value. The answer skipped reason is not specified. + ANSWER_SKIPPED_REASON_UNSPECIFIED = 0; + + // The adversarial query ignored case. + ADVERSARIAL_QUERY_IGNORED = 1; + + // The non-answer seeking query ignored case. + NON_ANSWER_SEEKING_QUERY_IGNORED = 2; + + // The out-of-domain query ignored case. + // + // Google skips the answer if there are no high-relevance search results. + OUT_OF_DOMAIN_QUERY_IGNORED = 3; + + // The potential policy violation case. + // + // Google skips the answer if there is a potential policy violation + // detected. This includes content that may be violent or toxic. + POTENTIAL_POLICY_VIOLATION = 4; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*/answers/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The state of the answer generation. + State state = 2; + + // The textual answer. + string answer_text = 3; + + // Citations. + repeated Citation citations = 4; + + // References. + repeated Reference references = 5; + + // Suggested related questions. + repeated string related_questions = 6; + + // Answer generation steps. + repeated Step steps = 7; + + // Query understanding information. + QueryUnderstandingInfo query_understanding_info = 10; + + // Additional answer-skipped reasons. This provides the reason for ignored + // cases. If nothing is skipped, this field is not set. + repeated AnswerSkippedReason answer_skipped_reasons = 11; + + // Output only. Answer creation timestamp. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Answer completed timestamp. + google.protobuf.Timestamp complete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/chunk.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/chunk.proto new file mode 100644 index 000000000..2fce93273 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/chunk.proto @@ -0,0 +1,119 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ChunkProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Chunk captures all raw metadata information of items to be recommended or +// searched in the chunk mode. +message Chunk { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Chunk" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + }; + + // Document metadata contains the information of the document of the current + // chunk. + message DocumentMetadata { + // Uri of the document. + string uri = 1; + + // Title of the document. + string title = 2; + + // Data representation. + // The structured JSON data for the document. It should conform to the + // registered [Schema][google.cloud.discoveryengine.v1alpha.Schema] or an + // `INVALID_ARGUMENT` error is thrown. + google.protobuf.Struct struct_data = 3; + } + + // Page span of the chunk. + message PageSpan { + // The start page of the chunk. + int32 page_start = 1; + + // The end page of the chunk. + int32 page_end = 2; + } + + // Metadata of the current chunk. This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search] + // API. + message ChunkMetadata { + // The previous chunks of the current chunk. The number is controlled by + // [SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks]. + // This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search] + // API. + repeated Chunk previous_chunks = 1; + + // The next chunks of the current chunk. The number is controlled by + // [SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks]. + // This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search] + // API. + repeated Chunk next_chunks = 2; + } + + // The full resource name of the chunk. + // Format: + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document_id}/chunks/{chunk_id}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1; + + // Unique chunk ID of the current chunk. + string id = 2; + + // Content is a string from a document (parsed content). + string content = 3; + + // The relevance score based on similarity. + // Higher score indicates higher chunk relevance. + // The score is in range [-1.0, 1.0]. + // Only populated on [SearchService.SearchResponse][]. + optional double relevance_score = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Metadata of the document from the current chunk. + DocumentMetadata document_metadata = 5; + + // Output only. This field is OUTPUT_ONLY. + // It contains derived data that are not in the original input document. + google.protobuf.Struct derived_struct_data = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Page span of the chunk. + PageSpan page_span = 6; + + // Output only. Metadata of the current chunk. + ChunkMetadata chunk_metadata = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/chunk_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/chunk_service.proto new file mode 100644 index 000000000..ad9a02984 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/chunk_service.proto @@ -0,0 +1,137 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/chunk.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ChunkServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for displaying processed +// [Chunk][google.cloud.discoveryengine.v1alpha.Chunk] information of the +// customer's unstructured data. +service ChunkService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a [Document][google.cloud.discoveryengine.v1alpha.Document]. + rpc GetChunk(GetChunkRequest) returns (Chunk) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*/chunks/*}" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*/chunks/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of [Chunk][google.cloud.discoveryengine.v1alpha.Chunk]s. + rpc ListChunks(ListChunksRequest) returns (ListChunksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/dataStores/*/branches/*/documents/*}/chunks" + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}/chunks" + } + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for +// [ChunkService.GetChunk][google.cloud.discoveryengine.v1alpha.ChunkService.GetChunk] +// method. +message GetChunkRequest { + // Required. Full resource name of + // [Chunk][google.cloud.discoveryengine.v1alpha.Chunk], such as + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}`. + // + // If the caller does not have permission to access the + // [Chunk][google.cloud.discoveryengine.v1alpha.Chunk], regardless of whether + // or not it exists, a `PERMISSION_DENIED` error is returned. + // + // If the requested [Chunk][google.cloud.discoveryengine.v1alpha.Chunk] does + // not exist, a `NOT_FOUND` error is returned. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + } + ]; +} + +// Request message for +// [ChunkService.ListChunks][google.cloud.discoveryengine.v1alpha.ChunkService.ListChunks] +// method. +message ListChunksRequest { + // Required. The parent document resource name, such as + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}`. + // + // If the caller does not have permission to list + // [Chunk][google.cloud.discoveryengine.v1alpha.Chunk]s under this document, + // regardless of whether or not this document exists, a `PERMISSION_DENIED` + // error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + } + ]; + + // Maximum number of [Chunk][google.cloud.discoveryengine.v1alpha.Chunk]s to + // return. If unspecified, defaults to 100. The maximum allowed value is 1000. + // Values above 1000 will be coerced to 1000. + // + // If this field is negative, an `INVALID_ARGUMENT` error is returned. + int32 page_size = 2; + + // A page token + // [ListChunksResponse.next_page_token][google.cloud.discoveryengine.v1alpha.ListChunksResponse.next_page_token], + // received from a previous + // [ChunkService.ListChunks][google.cloud.discoveryengine.v1alpha.ChunkService.ListChunks] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [ChunkService.ListChunks][google.cloud.discoveryengine.v1alpha.ChunkService.ListChunks] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [ChunkService.ListChunks][google.cloud.discoveryengine.v1alpha.ChunkService.ListChunks] +// method. +message ListChunksResponse { + // The [Chunk][google.cloud.discoveryengine.v1alpha.Chunk]s. + repeated Chunk chunks = 1; + + // A token that can be sent as + // [ListChunksRequest.page_token][google.cloud.discoveryengine.v1alpha.ListChunksRequest.page_token] + // to retrieve the next page. If this field is omitted, there are no + // subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/common.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/common.proto index 3fb016429..92fddde7b 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/common.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,10 +36,20 @@ option (google.api.resource_definition) = { pattern: "projects/{project}/locations/{location}/collections/{collection}" }; option (google.api.resource_definition) = { - type: "discoveryengine.googleapis.com/ServingConfig" - pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}" - pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}" - pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}" + type: "discoveryengine.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/GroundingConfig" + pattern: "projects/{project}/locations/{location}/groundingConfigs/{grounding_config}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/RankingConfig" + pattern: "projects/{project}/locations/{location}/rankingConfigs/{ranking_config}" +}; +option (google.api.resource_definition) = { + type: "healthcare.googleapis.com/FhirStore" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}" }; // The industry vertical associated with the @@ -54,6 +64,9 @@ enum IndustryVertical { // The media industry vertical. MEDIA = 2; + + // The healthcare FHIR vertical. + HEALTHCARE_FHIR = 7; } // The type of solution. @@ -69,10 +82,31 @@ enum SolutionType { // Used for use cases related to the Generative AI agent. SOLUTION_TYPE_CHAT = 3; + + // Used for use cases related to the Generative Chat agent. + // It's used for Generative chat engine only, the associated data stores + // must enrolled with `SOLUTION_TYPE_CHAT` solution. + SOLUTION_TYPE_GENERATIVE_CHAT = 4; +} + +// Defines a further subdivision of `SolutionType`. +// Specifically applies to +// [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. +enum SearchUseCase { + // Value used when unset. Will not occur in CSS. + SEARCH_USE_CASE_UNSPECIFIED = 0; + + // Search use case. Expects the traffic has a non-empty + // [query][google.cloud.discoveryengine.v1alpha.SearchRequest.query]. + SEARCH_USE_CASE_SEARCH = 1; + + // Browse use case. Expects the traffic has an empty + // [query][google.cloud.discoveryengine.v1alpha.SearchRequest.query]. + SEARCH_USE_CASE_BROWSE = 2; } // Tiers of search features. Different tiers might have different -// pricing. To learn more, please check the pricing documentation. +// pricing. To learn more, check the pricing documentation. enum SearchTier { // Default value when the enum is unspecified. This is invalid to use. SEARCH_TIER_UNSPECIFIED = 0; @@ -178,8 +212,83 @@ message UserInfo { string user_agent = 2; } +// Defines embedding config, used for bring your own embeddings feature. +message EmbeddingConfig { + // Full field path in the schema mapped as embedding field. + string field_path = 1; +} + // Double list. message DoubleList { // Double values. repeated double values = 1; } + +// Defines guided search spec. +message GuidedSearchSpec { + // Whether or not to enable and include refinement attributes in gudied search + // result. + bool enable_refinement_attributes = 1; + + // Whether or not to enable and include related questions in search response. + bool enable_related_questions = 2; + + // Max number of related questions to be returned. The valid range is [1, 5]. + // If enable_related_questions is true, the default value is 3. + int32 max_related_questions = 3; +} + +// Defines custom fine tuning spec. +message CustomFineTuningSpec { + // Whether or not to enable and include custom fine tuned search adaptor + // model. + bool enable_search_adaptor = 1; +} + +// Identity Provider Config. +message IdpConfig { + // Third party IDP Config. + message ExternalIdpConfig { + // Workforce pool name. + // Example: "locations/global/workforcePools/pool_id" + string workforce_pool_name = 1; + } + + // Identity Provider Type. + enum IdpType { + // Default value. ACL search not enabled. + IDP_TYPE_UNSPECIFIED = 0; + + // Google 1P provider. + GSUITE = 1; + + // Third party provider. + THIRD_PARTY = 2; + } + + // Identity provider type configured. + IdpType idp_type = 1; + + // External Identity provider config. + ExternalIdpConfig external_idp_config = 2; +} + +// Principal identifier of a user or a group. +message Principal { + // Union field principal. Principal can be a user or a group. + oneof principal { + // User identifier. + // For Google Workspace user account, user_id should be the google workspace + // user email. + // For non-google identity provider user account, user_id is the mapped user + // identifier configured during the workforcepool config. + string user_id = 1; + + // Group identifier. + // For Google Workspace user account, group_id should be the google + // workspace group email. + // For non-google identity provider user account, group_id is the mapped + // group identifier configured during the workforcepool config. + string group_id = 2; + } +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion.proto new file mode 100644 index 000000000..bf59e80e1 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "CompletionProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Suggestion deny list entry identifying the phrase to block from suggestions +// and the applied operation for the phrase. +message SuggestionDenyListEntry { + // Operator for matching with the generated suggestions. + enum MatchOperator { + // Default value. Should not be used + MATCH_OPERATOR_UNSPECIFIED = 0; + + // If the suggestion is an exact match to the block_phrase, then block it. + EXACT_MATCH = 1; + + // If the suggestion contains the block_phrase, then block it. + CONTAINS = 2; + } + + // Required. Phrase to block from suggestions served. Can be maximum 125 + // characters. + string block_phrase = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The match operator to apply for this phrase. Whether to block the + // exact phrase, or block any suggestions containing this phrase. + MatchOperator match_operator = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion_service.proto index d035688e3..042fb8bf0 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,9 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/import_config.proto"; +import "google/cloud/discoveryengine/v1alpha/purge_config.proto"; +import "google/longrunning/operations.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; @@ -45,6 +48,44 @@ service CompletionService { } }; } + + // Imports all + // [SuggestionDenyListEntry][google.cloud.discoveryengine.v1alpha.SuggestionDenyListEntry] + // for a DataStore. + rpc ImportSuggestionDenyListEntries(ImportSuggestionDenyListEntriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/suggestionDenyListEntries:import" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/suggestionDenyListEntries:import" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.ImportSuggestionDenyListEntriesResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.ImportSuggestionDenyListEntriesMetadata" + }; + } + + // Permanently deletes all + // [SuggestionDenyListEntry][google.cloud.discoveryengine.v1alpha.SuggestionDenyListEntry] + // for a DataStore. + rpc PurgeSuggestionDenyListEntries(PurgeSuggestionDenyListEntriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/suggestionDenyListEntries:purge" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/dataStores/**}/suggestionDenyListEntries:purge" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.PurgeSuggestionDenyListEntriesResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.PurgeSuggestionDenyListEntriesMetadata" + }; + } } // Request message for @@ -65,8 +106,9 @@ message CompleteQueryRequest { // 128 characters. string query = 2 [(google.api.field_behavior) = REQUIRED]; - // Selects data model of query suggestions for serving. Currently supported - // values: + // Specifies the autocomplete data model. This overrides any model specified + // in the Configuration > Autocomplete section of the Cloud console. Currently + // supported values: // // * `document` - Using suggestions generated from user-imported documents. // * `search-history` - Using suggestions generated from the past history of diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/control.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/control.proto new file mode 100644 index 000000000..f20e6d6e2 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/control.proto @@ -0,0 +1,217 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Defines circumstances to be checked before allowing a behavior +message Condition { + // Matcher for search request query + message QueryTerm { + // The specific query value to match against + // + // Must be lowercase, must be UTF-8. + // Can have at most 3 space separated terms if full_match is true. + // Cannot be an empty string. + // Maximum length of 5000 characters. + string value = 1; + + // Whether the search query needs to exactly match the query term. + bool full_match = 2; + } + + // Used for time-dependent conditions. + message TimeRange { + // Start of time range. + // + // Range is inclusive. + google.protobuf.Timestamp start_time = 1; + + // End of time range. + // + // Range is inclusive. + // Must be in the future. + google.protobuf.Timestamp end_time = 2; + } + + // Search only + // A list of terms to match the query on. + // + // Maximum of 10 query terms. + repeated QueryTerm query_terms = 2; + + // Range of time(s) specifying when condition is active. + // + // Maximum of 10 time ranges. + repeated TimeRange active_time_range = 3; +} + +// Defines a conditioned behavior to employ during serving. +// Must be attached to a +// [ServingConfig][google.cloud.discoveryengine.v1alpha.ServingConfig] to be +// considered at serving time. Permitted actions dependent on `SolutionType`. +message Control { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Control" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/controls/{control}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/controls/{control}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/controls/{control}" + }; + + // Adjusts order of products in returned list. + message BoostAction { + // Required. Strength of the boost, which should be in [-1, 1]. Negative + // boost means demotion. Default is 0.0 (No-op). + float boost = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which products to apply the boost to. + // + // If no filter is provided all products will be boosted (No-op). + // Syntax documentation: + // https://cloud.google.com/retail/docs/filter-and-order + // Maximum length is 5000 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which data store's documents can be boosted by this + // control. Full data store name e.g. + // projects/123/locations/global/collections/default_collection/dataStores/default_data_store + string data_store = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + + // Specified which products may be included in results. + // Uses same filter as boost. + message FilterAction { + // Required. A filter to apply on the matching condition results. + // + // Required + // Syntax documentation: + // https://cloud.google.com/retail/docs/filter-and-order + // Maximum length is 5000 characters. Otherwise an INVALID + // ARGUMENT error is thrown. + string filter = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which data store's documents can be filtered by this + // control. Full data store name e.g. + // projects/123/locations/global/collections/default_collection/dataStores/default_data_store + string data_store = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + + // Redirects a shopper to the provided URI. + message RedirectAction { + // Required. The URI to which the shopper will be redirected. + // + // Required. + // URI must have length equal or less than 2000 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string redirect_uri = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Creates a set of terms that will act as synonyms of one another. + // + // Example: "happy" will also be considered as "glad", "glad" will also be + // considered as "happy". + message SynonymsAction { + // Defines a set of synonyms. + // Can specify up to 100 synonyms. + // Must specify at least 2 synonyms. Otherwise an INVALID ARGUMENT error is + // thrown. + repeated string synonyms = 1; + } + + // Actions are restricted by Vertical and Solution + // + // Required. + oneof action { + // Defines a boost-type control + BoostAction boost_action = 6; + + // Defines a filter-type control + // Currently not supported by Recommendation + FilterAction filter_action = 7; + + // Defines a redirect-type control. + RedirectAction redirect_action = 9; + + // Treats a group of terms as synonyms of one another. + SynonymsAction synonyms_action = 10; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/dataStore/*/controls/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Human readable name. The identifier used in UI views. + // + // Must be UTF-8 encoded string. Length limit is 128 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. List of all + // [ServingConfig][google.cloud.discoveryengine.v1alpha.ServingConfig] ids + // this control is attached to. May take up to 10 minutes to update after + // changes. + repeated string associated_serving_config_ids = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. What solution the control belongs to. + // + // Must be compatible with vertical of resource. + // Otherwise an INVALID ARGUMENT error is thrown. + SolutionType solution_type = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Specifies the use case for the control. + // Affects what condition fields can be set. + // Only applies to + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + // Currently only allow one use case per control. + // Must be set when solution_type is + // [SolutionType.SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated SearchUseCase use_cases = 8; + + // Determines when the associated action will trigger. + // + // Omit to always apply the action. + // Currently only a single condition may be specified. + // Otherwise an INVALID ARGUMENT error is thrown. + repeated Condition conditions = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/control_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/control_service.proto new file mode 100644 index 000000000..769ec1d2a --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/control_service.proto @@ -0,0 +1,236 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/control.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ControlServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for performing CRUD operations on Controls. +// Controls allow for custom logic to be implemented in the serving path. +// Controls need to be attached to a Serving Config to be considered during a +// request. +service ControlService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Control. + // + // By default 1000 controls are allowed for a data store. + // A request can be submitted to adjust this limit. + // If the [Control][google.cloud.discoveryengine.v1alpha.Control] to create + // already exists, an ALREADY_EXISTS error is returned. + rpc CreateControl(CreateControlRequest) returns (Control) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/controls" + body: "control" + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + body: "control" + } + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + body: "control" + } + }; + option (google.api.method_signature) = "parent,control,control_id"; + } + + // Deletes a Control. + // + // If the [Control][google.cloud.discoveryengine.v1alpha.Control] to delete + // does not exist, a NOT_FOUND error is returned. + rpc DeleteControl(DeleteControlRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/dataStores/*/controls/*}" + additional_bindings { + delete: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + } + additional_bindings { + delete: "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Control. + // + // [Control][google.cloud.discoveryengine.v1alpha.Control] action type cannot + // be changed. If the [Control][google.cloud.discoveryengine.v1alpha.Control] + // to update does not exist, a NOT_FOUND error is returned. + rpc UpdateControl(UpdateControlRequest) returns (Control) { + option (google.api.http) = { + patch: "/v1alpha/{control.name=projects/*/locations/*/dataStores/*/controls/*}" + body: "control" + additional_bindings { + patch: "/v1alpha/{control.name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + body: "control" + } + additional_bindings { + patch: "/v1alpha/{control.name=projects/*/locations/*/collections/*/engines/*/controls/*}" + body: "control" + } + }; + option (google.api.method_signature) = "control,update_mask"; + } + + // Gets a Control. + rpc GetControl(GetControlRequest) returns (Control) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/controls/*}" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + } + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Controls by their parent + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore]. + rpc ListControls(ListControlsRequest) returns (ListControlsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/controls" + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + } + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for CreateControl method. +message CreateControlRequest { + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // or + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/Control" + } + ]; + + // Required. The Control to create. + Control control = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the Control, which will become the final + // component of the Control's resource name. + // + // This value must be within 1-63 characters. + // Valid characters are /[a-z][0-9]-_/. + string control_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateControl method. +message UpdateControlRequest { + // Required. The Control to update. + Control control = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [Control][google.cloud.discoveryengine.v1alpha.Control] to update. The + // following are NOT supported: + // + // * [Control.name][google.cloud.discoveryengine.v1alpha.Control.name] + // * [Control.solution_type][google.cloud.discoveryengine.v1alpha.Control.solution_type] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DeleteControl method. +message DeleteControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Control" + } + ]; +} + +// Request for GetControl method. +message GetControlRequest { + // Required. The resource name of the Control to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Control" + } + ]; +} + +// Request for ListControls method. +message ListControlsRequest { + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // or + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/Control" + } + ]; + + // Optional. Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListControls` call. + // Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter to apply on the list results. Supported features: + // + // * List all the products under the parent branch if + // [filter][google.cloud.discoveryengine.v1alpha.ListControlsRequest.filter] + // is unset. Currently this field is unsupported. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListControls method. +message ListControlsResponse { + // All the Controls for a given data store. + repeated Control controls = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversation.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversation.proto index 4495b4587..70e04cc47 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversation.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -52,9 +52,9 @@ message Conversation { } // Immutable. Fully qualified name - // `project/*/locations/global/collections/{collection}/dataStore/*/conversations/*` + // `projects/{project}/locations/global/collections/{collection}/dataStore/*/conversations/*` // or - // `project/*/locations/global/collections/{collection}/engines/*/conversations/*`. + // `projects/{project}/locations/global/collections/{collection}/engines/*/conversations/*`. string name = 1 [(google.api.field_behavior) = IMMUTABLE]; // The state of the Conversation. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto index 675682eb7..2f89b2cba 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,8 +20,11 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/answer.proto"; +import "google/cloud/discoveryengine/v1alpha/common.proto"; import "google/cloud/discoveryengine/v1alpha/conversation.proto"; import "google/cloud/discoveryengine/v1alpha/search_service.proto"; +import "google/cloud/discoveryengine/v1alpha/session.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -147,6 +150,123 @@ service ConversationalSearchService { }; option (google.api.method_signature) = "parent"; } + + // Answer query method. + rpc AnswerQuery(AnswerQueryRequest) returns (AnswerQueryResponse) { + option (google.api.http) = { + post: "/v1alpha/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:answer" + body: "*" + additional_bindings { + post: "/v1alpha/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:answer" + body: "*" + } + additional_bindings { + post: "/v1alpha/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:answer" + body: "*" + } + }; + } + + // Gets a Answer. + rpc GetAnswer(GetAnswerRequest) returns (Answer) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/sessions/*/answers/*}" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*/answers/*}" + } + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/answers/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Creates a Session. + // + // If the [Session][google.cloud.discoveryengine.v1alpha.Session] to create + // already exists, an ALREADY_EXISTS error is returned. + rpc CreateSession(CreateSessionRequest) returns (Session) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/sessions" + body: "session" + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + body: "session" + } + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + body: "session" + } + }; + option (google.api.method_signature) = "parent,session"; + } + + // Deletes a Session. + // + // If the [Session][google.cloud.discoveryengine.v1alpha.Session] to delete + // does not exist, a NOT_FOUND error is returned. + rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/dataStores/*/sessions/*}" + additional_bindings { + delete: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + } + additional_bindings { + delete: "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Session. + // + // [Session][google.cloud.discoveryengine.v1alpha.Session] action type cannot + // be changed. If the [Session][google.cloud.discoveryengine.v1alpha.Session] + // to update does not exist, a NOT_FOUND error is returned. + rpc UpdateSession(UpdateSessionRequest) returns (Session) { + option (google.api.http) = { + patch: "/v1alpha/{session.name=projects/*/locations/*/dataStores/*/sessions/*}" + body: "session" + additional_bindings { + patch: "/v1alpha/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + body: "session" + } + additional_bindings { + patch: "/v1alpha/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + body: "session" + } + }; + option (google.api.method_signature) = "session,update_mask"; + } + + // Gets a Session. + rpc GetSession(GetSessionRequest) returns (Session) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/sessions/*}" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + } + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Sessions by their parent + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore]. + rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/sessions" + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + } + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for @@ -223,6 +343,11 @@ message ConverseConversationRequest { // operators, see // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) string filter = 9; + + // Boost specification to boost certain documents in search results which may + // affect the converse response. For more information on boosting, see + // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + SearchRequest.BoostSpec boost_spec = 10; } // Response message for @@ -266,7 +391,7 @@ message UpdateConversationRequest { // [Conversation][google.cloud.discoveryengine.v1alpha.Conversation] to // update. The following are NOT supported: // - // * [conversation.name][] + // * [Conversation.name][google.cloud.discoveryengine.v1alpha.Conversation.name] // // If not set or empty, all supported fields are updated. google.protobuf.FieldMask update_mask = 2; @@ -343,3 +468,473 @@ message ListConversationsResponse { // Pagination token, if not returned indicates the last page. string next_page_token = 2; } + +// Request message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.AnswerQuery] +// method. +message AnswerQueryRequest { + // Safety specification. + message SafetySpec { + // Enable the safety filtering on the answer response. It is false by + // default. + bool enable = 1; + } + + // Related questions specification. + message RelatedQuestionsSpec { + // Enable related questions feature if true. + bool enable = 1; + } + + // Answer generation specification. + message AnswerGenerationSpec { + // Answer Generation Model specification. + message ModelSpec { + // Model version. If not set, it will use the default stable model. + // Allowed values are: stable, preview. + string model_version = 1; + } + + // Answer generation prompt specification. + message PromptSpec { + // Customized preamble. + string preamble = 1; + } + + // Answer generation model specification. + ModelSpec model_spec = 1; + + // Answer generation prompt specification. + PromptSpec prompt_spec = 2; + + // Specifies whether to include citation metadata in the answer. The default + // value is `false`. + bool include_citations = 3; + + // Language code for Answer. Use language tags defined by + // [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + // Note: This is an experimental feature. + string answer_language_code = 4; + + // Specifies whether to filter out adversarial queries. The default value + // is `false`. + // + // Google employs search-query classification to detect adversarial + // queries. No answer is returned if the search query is classified as an + // adversarial query. For example, a user might ask a question regarding + // negative comments about the company or submit a query designed to + // generate unsafe, policy-violating output. If this field is set to + // `true`, we skip generating answers for adversarial queries and return + // fallback messages instead. + bool ignore_adversarial_query = 5; + + // Specifies whether to filter out queries that are not answer-seeking. + // The default value is `false`. + // + // Google employs search-query classification to detect answer-seeking + // queries. No answer is returned if the search query is classified as a + // non-answer seeking query. If this field is set to `true`, we skip + // generating answers for non-answer seeking queries and return + // fallback messages instead. + bool ignore_non_answer_seeking_query = 6; + + // Specifies whether to filter out queries that have low relevance. + // + // If this field is set to `false`, all search results are used regardless + // of relevance to generate answers. If set to `true` or unset, the behavior + // will be determined automatically by the service. + optional bool ignore_low_relevant_content = 7; + } + + // Search specification. + message SearchSpec { + // Search parameters. + message SearchParams { + // Number of search results to return. + // The default value is 10. + int32 max_return_results = 1; + + // The filter syntax consists of an expression language for constructing + // a predicate from one or more fields of the documents being filtered. + // Filter expression is case-sensitive. This will be used to filter + // search results which may affect the Answer response. + // + // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. + // + // Filtering in Vertex AI Search is done by mapping the LHS filter key + // to a key property defined in the Vertex AI Search backend -- this + // mapping is defined by the customer in their schema. For example a + // media customers might have a field 'name' in their schema. In this + // case the filter would look like this: filter --> name:'ANY("king + // kong")' + // + // For more information about filtering including syntax and filter + // operators, see + // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) + string filter = 2; + + // Boost specification to boost certain documents in search results which + // may affect the answer query response. For more information on boosting, + // see [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + SearchRequest.BoostSpec boost_spec = 3; + + // The order in which documents are returned. Documents can be ordered + // by a field in an + // [Document][google.cloud.discoveryengine.v1alpha.Document] object. Leave + // it unset if ordered by relevance. `order_by` expression is + // case-sensitive. For more information on ordering, see + // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) + // + // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. + string order_by = 4; + + // Specifies the search result mode. If unspecified, the + // search result mode is based on + // [DataStore.DocumentProcessingConfig.chunking_config][]: + // * If [DataStore.DocumentProcessingConfig.chunking_config][] is + // specified, + // it defaults to `CHUNKS`. + // * Otherwise, it defaults to `DOCUMENTS`. + // See [parse and chunk + // documents](https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents) + SearchRequest.ContentSearchSpec.SearchResultMode search_result_mode = 5; + + // Custom fine tuning configs. + CustomFineTuningSpec custom_fine_tuning_spec = 6; + + // Specs defining dataStores to filter on in a search call and + // configurations for those dataStores. This is only considered for + // engines with multiple dataStores use case. For single dataStore within + // an engine, they should use the specs at the top level. + repeated SearchRequest.DataStoreSpec data_store_specs = 7; + } + + // Search result list. + message SearchResultList { + // Search result. + message SearchResult { + // Unstructured document information. + message UnstructuredDocumentInfo { + // Document context. + message DocumentContext { + // Page identifier. + string page_identifier = 1; + + // Document content. + string content = 2; + } + + // Extractive segment. + // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#extractive-segments) + message ExtractiveSegment { + // Page identifier. + string page_identifier = 1; + + // Extractive segment content. + string content = 2; + } + + // Extractive answer. + // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#get-answers) + message ExtractiveAnswer { + // Page identifier. + string page_identifier = 1; + + // Extractive answer content. + string content = 2; + } + + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // List of document contexts. + repeated DocumentContext document_contexts = 4; + + // List of extractive segments. + repeated ExtractiveSegment extractive_segments = 5; + + // List of extractive answers. + repeated ExtractiveAnswer extractive_answers = 6; + } + + // Chunk information. + message ChunkInfo { + // Chunk resource name. + string chunk = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + }]; + + // Chunk textual content. + string content = 2; + } + + // Search result content. + oneof content { + // Unstructured document information. + UnstructuredDocumentInfo unstructured_document_info = 1; + + // Chunk information. + ChunkInfo chunk_info = 2; + } + } + + // Search results. + repeated SearchResult search_results = 1; + } + + // Search parameters to control the search behavior. + // Or provide search result list to generate answer. + oneof input { + // Search parameters. + SearchParams search_params = 1; + + // Search result list. + SearchResultList search_result_list = 2; + } + } + + // Query understanding specification. + message QueryUnderstandingSpec { + // Query classification specification. + message QueryClassificationSpec { + // Query classification types. + enum Type { + // Unspecified query classification type. + TYPE_UNSPECIFIED = 0; + + // Adversarial query classification type. + ADVERSARIAL_QUERY = 1; + + // Non-answer-seeking query classification type. + NON_ANSWER_SEEKING_QUERY = 2; + } + + // Enabled query classification types. + repeated Type types = 1; + } + + // Query rephraser specification. + message QueryRephraserSpec { + // Disable query rephraser. + bool disable = 1; + + // Max rephrase steps. + // The max number is 5 steps. + // If not set or set to < 1, it will be set to 1 by default. + int32 max_rephrase_steps = 2; + } + + // Query classification specification. + QueryClassificationSpec query_classification_spec = 1; + + // Query rephraser specification. + QueryRephraserSpec query_rephraser_spec = 2; + } + + // Required. The resource name of the Search serving config, such as + // `projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config`, + // or + // `projects/*/locations/global/collections/default_collection/dataStores/*/servingConfigs/default_serving_config`. + // This field is used to identify the serving configuration name, set + // of models used to make the search. + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/ServingConfig" + } + ]; + + // Required. Current user query. + Query query = 2 [(google.api.field_behavior) = REQUIRED]; + + // The session resource name. Not required. + // + // When session field is not set, the API is in sessionless mode. + // + // We support auto session mode: users can use the wildcard symbol `-` as + // session ID. A new ID will be automatically generated and assigned. + string session = 3 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + }]; + + // Model specification. + SafetySpec safety_spec = 4; + + // Related questions specification. + RelatedQuestionsSpec related_questions_spec = 5; + + // Answer generation specification. + AnswerGenerationSpec answer_generation_spec = 7; + + // Search specification. + SearchSpec search_spec = 8; + + // Query understanding specification. + QueryUnderstandingSpec query_understanding_spec = 9; + + // Asynchronous mode control. + // + // If enabled, the response will be returned with answer/session resource + // name without final answer. The API users need to do the polling to get + // the latest status of answer/session by calling + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetAnswer] + // or + // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetSession] + // method. + bool asynchronous_mode = 10; + + // 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 field should NOT have a fixed value such as `unknown_visitor`. + // + // The field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. + string user_pseudo_id = 12; +} + +// Response message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.AnswerQuery] +// method. +message AnswerQueryResponse { + // Answer resource object. + // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, + // use [Answer.name][google.cloud.discoveryengine.v1alpha.Answer.name] to + // fetch answer information using + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetAnswer] + // API. + Answer answer = 1; + + // Session resource object. + // It will be only available when session field is set and valid in the + // [AnswerQueryRequest][google.cloud.discoveryengine.v1alpha.AnswerQueryRequest] + // request. + Session session = 2; + + // A global unique ID used for logging. + string answer_query_token = 3; +} + +// Request for GetAnswer method. +message GetAnswerRequest { + // Required. The resource name of the Answer to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/engines/{engine_id}/sessions/{session_id}/answers/{answer_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Answer" + } + ]; +} + +// Request for CreateSession method. +message CreateSessionRequest { + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. The session to create. + Session session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateSession method. +message UpdateSessionRequest { + // Required. The Session to update. + Session session = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [Session][google.cloud.discoveryengine.v1alpha.Session] to update. The + // following are NOT supported: + // + // * [Session.name][google.cloud.discoveryengine.v1alpha.Session.name] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteSession method. +message DeleteSessionRequest { + // Required. The resource name of the Session to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + } + ]; +} + +// Request for GetSession method. +message GetSessionRequest { + // Required. The resource name of the Session to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + } + ]; +} + +// Request for ListSessions method. +message ListSessionsRequest { + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListSessions` call. + // Provide this to retrieve the subsequent page. + string page_token = 3; + + // A filter to apply on the list results. The supported features are: + // user_pseudo_id, state. + // + // Example: + // "user_pseudo_id = some_id" + string filter = 4; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // * `update_time` + // * `create_time` + // * `session_name` + // + // Example: + // "update_time desc" + // "create_time" + string order_by = 5; +} + +// Response for ListSessions method. +message ListSessionsResponse { + // All the Sessions for a given data store. + repeated Session sessions = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto new file mode 100644 index 000000000..bfa54cccb --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto @@ -0,0 +1,87 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "CustomTuningModelProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Metadata that describes a custom tuned model. +message CustomTuningModel { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/CustomTuningModel" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}" + }; + + // The state of the model. + enum ModelState { + // Default value. + MODEL_STATE_UNSPECIFIED = 0; + + // The model is in a paused training state. + TRAINING_PAUSED = 1; + + // The model is currently training. + TRAINING = 2; + + // The model has successfully completed training. + TRAINING_COMPLETE = 3; + + // The model is ready for serving. + READY_FOR_SERVING = 4; + + // The model training failed. + TRAINING_FAILED = 5; + } + + // Required. The fully qualified resource name of the model. + // + // Format: + // `projects/{project_number}/locations/{location}/collections/{collection}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}` + // model must be an alpha-numerical string with limit of 40 characters. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/CustomTuningModel" + } + ]; + + // The display name of the model. + string display_name = 2; + + // The version of the model. + int64 model_version = 3; + + // The state that the model is in (e.g.`TRAINING` or `TRAINING_FAILED`). + ModelState model_state = 4; + + // Timestamp the Model was created at. + google.protobuf.Timestamp create_time = 5; + + // Timestamp the model training was initiated. + google.protobuf.Timestamp training_start_time = 6; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store.proto index e7809cb1f..f9997edac 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ package google.cloud.discoveryengine.v1alpha; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1alpha/common.proto"; +import "google/cloud/discoveryengine/v1alpha/document_processing_config.proto"; +import "google/cloud/discoveryengine/v1alpha/schema.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; @@ -95,4 +97,46 @@ message DataStore { // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] was created at. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Data store level identity provider config. + IdpConfig idp_config = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Whether data in the + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] has ACL + // information. If set to `true`, the source data must have ACL. ACL will be + // ingested when data is ingested by + // [DocumentService.ImportDocuments][google.cloud.discoveryengine.v1alpha.DocumentService.ImportDocuments] + // methods. + // + // When ACL is enabled for the + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore], + // [Document][google.cloud.discoveryengine.v1alpha.Document] can't be accessed + // by calling + // [DocumentService.GetDocument][google.cloud.discoveryengine.v1alpha.DocumentService.GetDocument] + // or + // [DocumentService.ListDocuments][google.cloud.discoveryengine.v1alpha.DocumentService.ListDocuments]. + // + // Currently ACL is only supported in `GENERIC` industry vertical with + // non-`PUBLIC_WEBSITE` content config. + bool acl_enabled = 24 [(google.api.field_behavior) = IMMUTABLE]; + + // Configuration for Document understanding and enrichment. + DocumentProcessingConfig document_processing_config = 27; + + // The start schema to use for this + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] when + // provisioning it. If unset, a default vertical specialized schema will be + // used. + // + // This field is only used by [CreateDataStore][] API, and will be ignored if + // used in other APIs. This field will be omitted from all API responses + // including [CreateDataStore][] API. To retrieve a schema of a + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore], use + // [SchemaService.GetSchema][google.cloud.discoveryengine.v1alpha.SchemaService.GetSchema] + // API instead. + // + // The provided schema will be validated against certain rules on schema. + // Learn more from [this + // doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema). + Schema starting_schema = 28; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store_service.proto index 2e8967ab2..52d57729b 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/data_store_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1alpha/data_store.proto"; +import "google/cloud/discoveryengine/v1alpha/document_processing_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -117,6 +118,41 @@ service DataStoreService { }; option (google.api.method_signature) = "data_store,update_mask"; } + + // Gets a + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig]. + rpc GetDocumentProcessingConfig(GetDocumentProcessingConfigRequest) + returns (DocumentProcessingConfig) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/documentProcessingConfig}" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates the + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig]. + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig] + // is a singleon resource of + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore]. It's empty + // when [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] is + // created. The first call to this method will set up + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig]. + rpc UpdateDocumentProcessingConfig(UpdateDocumentProcessingConfigRequest) + returns (DocumentProcessingConfig) { + option (google.api.http) = { + patch: "/v1alpha/{document_processing_config.name=projects/*/locations/*/dataStores/*/documentProcessingConfig}" + body: "document_processing_config" + additional_bindings { + patch: "/v1alpha/{document_processing_config.name=projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig}" + body: "document_processing_config" + } + }; + option (google.api.method_signature) = + "document_processing_config,update_mask"; + } } // Request for @@ -198,7 +234,8 @@ message ListDataStoresRequest { // Required. The parent branch resource name, such as // `projects/{project}/locations/{location}/collections/{collection_id}`. // - // If the caller does not have permission to list [DataStores][]s under this + // If the caller does not have permission to list + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore]s under this // location, regardless of whether or not this data store exists, a // PERMISSION_DENIED error is returned. string parent = 1 [ @@ -228,8 +265,8 @@ message ListDataStoresRequest { // INVALID_ARGUMENT error is returned. string page_token = 3; - // Filter by solution type. For example: filter = - // 'solution_type:SOLUTION_TYPE_SEARCH' + // Filter by solution type. + // For example: `filter = 'solution_type:SOLUTION_TYPE_SEARCH'` string filter = 4; } @@ -305,3 +342,45 @@ message DeleteDataStoreMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request for +// [DataStoreService.GetDocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DataStoreService.GetDocumentProcessingConfig] +// method. +message GetDocumentProcessingConfigRequest { + // Required. Full DocumentProcessingConfig resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/documentProcessingConfig` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DocumentProcessingConfig" + } + ]; +} + +// Request for +// [DataStoreService.UpdateDocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DataStoreService.UpdateDocumentProcessingConfig] +// method. +message UpdateDocumentProcessingConfigRequest { + // Required. The + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig] + // to update. + // + // If the caller does not have permission to update the + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig], + // then a PERMISSION_DENIED error is returned. + // + // If the + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig] + // to update does not exist, a NOT_FOUND error is returned. + DocumentProcessingConfig document_processing_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [DocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig] + // to update. The following are the only supported fields: + // + // * [DocumentProcessingConfig.ocr_config][google.cloud.discoveryengine.v1alpha.DocumentProcessingConfig.ocr_config] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json index e3ed84ee1..fb2e525db 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json @@ -3,8 +3,8 @@ { "name": [ { "service": "google.cloud.discoveryengine.v1alpha.CompletionService" }, - { "service": "google.cloud.discoveryengine.v1alpha.RecommendationService" }, - { "service": "google.cloud.discoveryengine.v1alpha.SearchService" } + { "service": "google.cloud.discoveryengine.v1alpha.GroundedGenerationService" }, + { "service": "google.cloud.discoveryengine.v1alpha.RecommendationService" } ], "timeout": "5s", "retryPolicy": { @@ -16,9 +16,13 @@ }, { "name": [ + { "service": "google.cloud.discoveryengine.v1alpha.ControlService" }, { "service": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService" }, { "service": "google.cloud.discoveryengine.v1alpha.DocumentService" }, + { "service": "google.cloud.discoveryengine.v1alpha.ProjectService" }, + { "service": "google.cloud.discoveryengine.v1alpha.RankService" }, { "service": "google.cloud.discoveryengine.v1alpha.SchemaService" }, + { "service": "google.cloud.discoveryengine.v1alpha.SearchService" }, { "service": "google.cloud.discoveryengine.v1alpha.UserEventService" }, { "service": "google.longrunning.Operations"} ], diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml index 72e8709ab..984bfa7e5 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml @@ -4,15 +4,23 @@ name: discoveryengine.googleapis.com title: Discovery Engine API apis: +- name: google.cloud.discoveryengine.v1alpha.AclConfigService +- name: google.cloud.discoveryengine.v1alpha.ChunkService - name: google.cloud.discoveryengine.v1alpha.CompletionService +- name: google.cloud.discoveryengine.v1alpha.ControlService - name: google.cloud.discoveryengine.v1alpha.ConversationalSearchService - name: google.cloud.discoveryengine.v1alpha.DataStoreService - name: google.cloud.discoveryengine.v1alpha.DocumentService - name: google.cloud.discoveryengine.v1alpha.EngineService +- name: google.cloud.discoveryengine.v1alpha.EstimateBillingService +- name: google.cloud.discoveryengine.v1alpha.GroundedGenerationService +- name: google.cloud.discoveryengine.v1alpha.ProjectService +- name: google.cloud.discoveryengine.v1alpha.RankService - name: google.cloud.discoveryengine.v1alpha.RecommendationService - name: google.cloud.discoveryengine.v1alpha.SchemaService - name: google.cloud.discoveryengine.v1alpha.SearchService - name: google.cloud.discoveryengine.v1alpha.SearchTuningService +- name: google.cloud.discoveryengine.v1alpha.ServingConfigService - name: google.cloud.discoveryengine.v1alpha.SiteSearchEngineService - name: google.cloud.discoveryengine.v1alpha.UserEventService - name: google.cloud.location.Locations @@ -20,8 +28,11 @@ apis: types: - name: google.cloud.discoveryengine.logging.ErrorLog +- name: google.cloud.discoveryengine.v1alpha.AclConfig +- name: google.cloud.discoveryengine.v1alpha.Answer - name: google.cloud.discoveryengine.v1alpha.BatchCreateTargetSiteMetadata - name: google.cloud.discoveryengine.v1alpha.BatchCreateTargetSitesResponse +- name: google.cloud.discoveryengine.v1alpha.Control - name: google.cloud.discoveryengine.v1alpha.CreateDataStoreMetadata - name: google.cloud.discoveryengine.v1alpha.CreateEngineMetadata - name: google.cloud.discoveryengine.v1alpha.CreateSchemaMetadata @@ -37,18 +48,28 @@ types: - name: google.cloud.discoveryengine.v1alpha.EnableAdvancedSiteSearchMetadata - name: google.cloud.discoveryengine.v1alpha.EnableAdvancedSiteSearchResponse - name: google.cloud.discoveryengine.v1alpha.Engine +- name: google.cloud.discoveryengine.v1alpha.EstimateDataSizeMetadata +- name: google.cloud.discoveryengine.v1alpha.EstimateDataSizeResponse - name: google.cloud.discoveryengine.v1alpha.FieldConfig - name: google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata - name: google.cloud.discoveryengine.v1alpha.ImportDocumentsResponse +- name: google.cloud.discoveryengine.v1alpha.ImportSuggestionDenyListEntriesMetadata +- name: google.cloud.discoveryengine.v1alpha.ImportSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1alpha.ImportUserEventsMetadata - name: google.cloud.discoveryengine.v1alpha.ImportUserEventsResponse +- name: google.cloud.discoveryengine.v1alpha.ListCustomModelsResponse +- name: google.cloud.discoveryengine.v1alpha.Project +- name: google.cloud.discoveryengine.v1alpha.ProvisionProjectMetadata - name: google.cloud.discoveryengine.v1alpha.PurgeDocumentsMetadata - name: google.cloud.discoveryengine.v1alpha.PurgeDocumentsResponse +- name: google.cloud.discoveryengine.v1alpha.PurgeSuggestionDenyListEntriesMetadata +- name: google.cloud.discoveryengine.v1alpha.PurgeSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1alpha.PurgeUserEventsMetadata - name: google.cloud.discoveryengine.v1alpha.PurgeUserEventsResponse - name: google.cloud.discoveryengine.v1alpha.RecrawlUrisMetadata - name: google.cloud.discoveryengine.v1alpha.RecrawlUrisResponse - name: google.cloud.discoveryengine.v1alpha.Schema +- name: google.cloud.discoveryengine.v1alpha.Session - name: google.cloud.discoveryengine.v1alpha.TargetSite - name: google.cloud.discoveryengine.v1alpha.TrainCustomModelMetadata - name: google.cloud.discoveryengine.v1alpha.TrainCustomModelResponse @@ -62,6 +83,12 @@ documentation: http: rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/operations/*}:cancel' + body: '*' + additional_bindings: + - post: '/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}:cancel' + body: '*' - selector: google.longrunning.Operations.GetOperation get: '/v1alpha/{name=projects/*/locations/*/collections/*/dataConnector/operations/*}' additional_bindings: @@ -76,7 +103,9 @@ http: - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/models/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/operations/*}' + - get: '/v1alpha/{name=projects/*/locations/*/evaluations/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/operations/*}' + - get: '/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*/operations/*}' - get: '/v1alpha/{name=projects/*/operations/*}' - selector: google.longrunning.Operations.ListOperations get: '/v1alpha/{name=projects/*/locations/*/collections/*/dataConnector}/operations' @@ -97,7 +126,27 @@ http: authentication: rules: - - selector: google.cloud.discoveryengine.v1alpha.CompletionService.CompleteQuery + - selector: google.cloud.discoveryengine.v1alpha.AclConfigService.GetAclConfig + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.AclConfigService.UpdateAclConfig + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.ChunkService.GetChunk + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.ChunkService.ListChunks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1alpha.CompletionService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1alpha.ControlService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform @@ -117,6 +166,22 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.EstimateBillingService.EstimateDataSize + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.GroundedGenerationService.CheckGrounding + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1alpha.ProjectService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.RankService.Rank + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.discoveryengine.v1alpha.RecommendationService.Recommend oauth: canonical_scopes: |- @@ -129,23 +194,27 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1alpha.SearchTuningService.ListCustomModels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.discoveryengine.v1alpha.SearchTuningService.TrainCustomModel oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.*' + - selector: 'google.cloud.discoveryengine.v1alpha.ServingConfigService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.discoveryengine.v1alpha.UserEventService.*' + - selector: 'google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation + - selector: 'google.cloud.discoveryengine.v1alpha.UserEventService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.ListOperations + - selector: 'google.longrunning.Operations.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document.proto index 463c36cee..ca07572b1 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,7 +18,9 @@ package google.cloud.discoveryengine.v1alpha; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/common.proto"; import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; @@ -69,6 +71,76 @@ message Document { string mime_type = 1; } + // ACL Information of the Document. + message AclInfo { + // AclRestriction to model complex inheritance restrictions. + // + // Example: Modeling a "Both Permit" inheritance, where to access a + // child document, user needs to have access to parent document. + // + // Document Hierarchy - Space_S --> Page_P. + // + // Readers: + // Space_S: group_1, user_1 + // Page_P: group_2, group_3, user_2 + // + // Space_S ACL Restriction - + // { + // "acl_info": { + // "readers": [ + // { + // "principals": [ + // { + // "group_id": "group_1" + // }, + // { + // "user_id": "user_1" + // } + // ] + // } + // ] + // } + // } + // + // Page_P ACL Restriction. + // { + // "acl_info": { + // "readers": [ + // { + // "principals": [ + // { + // "group_id": "group_2" + // }, + // { + // "group_id": "group_3" + // }, + // { + // "user_id": "user_2" + // } + // ], + // }, + // { + // "principals": [ + // { + // "group_id": "group_1" + // }, + // { + // "user_id": "user_1" + // } + // ], + // } + // ] + // } + // } + message AccessRestriction { + // List of principals. + repeated Principal principals = 1; + } + + // Readers of the document. + repeated AccessRestriction readers = 1; + } + // Data representation. One of // [struct_data][google.cloud.discoveryengine.v1alpha.Document.struct_data] or // [json_data][google.cloud.discoveryengine.v1alpha.Document.json_data] should @@ -118,4 +190,34 @@ message Document { // It contains derived data that are not in the original input document. google.protobuf.Struct derived_struct_data = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Access control information for the document. + AclInfo acl_info = 11; + + // Output only. The last time the document was indexed. If this field is set, + // the document could be returned in search results. + // + // This field is OUTPUT_ONLY. If this field is not populated, it means the + // document has never been indexed. + google.protobuf.Timestamp index_time = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Document captures all raw metadata information of items to be recommended or +// searched. +message ProcessedDocument { + // Output format of the processed document. + oneof processed_data_format { + // The JSON string representation of the processed document. + string json_data = 2; + } + + // Required. Full resource name of the referenced document, in the format + // `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`. + string document = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + } + ]; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_processing_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_processing_config.proto new file mode 100644 index 000000000..67e3cc601 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_processing_config.proto @@ -0,0 +1,125 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "DocumentProcessingConfigProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// A singleton resource of +// [DataStore][google.cloud.discoveryengine.v1alpha.DataStore]. It's empty when +// [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] is created, which +// defaults to digital parser. The first call to +// [DataStoreService.UpdateDocumentProcessingConfig][google.cloud.discoveryengine.v1alpha.DataStoreService.UpdateDocumentProcessingConfig] +// method will initialize the config. +message DocumentProcessingConfig { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/DocumentProcessingConfig" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/documentProcessingConfig" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/documentProcessingConfig" + }; + + // Configuration for chunking config. + message ChunkingConfig { + // Configuration for the layout based chunking. + message LayoutBasedChunkingConfig { + // The token size limit for each chunk. + // + // Supported values: 100-500 (inclusive). + // Default value: 500. + int32 chunk_size = 1; + + // Whether to include appending different levels of headings to chunks + // from the middle of the document to prevent context loss. + // + // Default value: False. + bool include_ancestor_headings = 2; + } + + // Additional configs that defines the behavior of the chunking. + oneof chunk_mode { + // Configuration for the layout based chunking. + LayoutBasedChunkingConfig layout_based_chunking_config = 1; + } + } + + // Related configurations applied to a specific type of document parser. + message ParsingConfig { + // The digital parsing configurations for documents. + message DigitalParsingConfig {} + + // The OCR parsing configurations for documents. + message OcrParsingConfig { + // [DEPRECATED] This field is deprecated. To use the additional enhanced + // document elements processing, please switch to `layout_parsing_config`. + repeated string enhanced_document_elements = 1 [deprecated = true]; + + // If true, will use native text instead of OCR text on pages containing + // native text. + bool use_native_text = 2; + } + + // The layout parsing configurations for documents. + message LayoutParsingConfig {} + + // Configs for document processing types. + oneof type_dedicated_config { + // Configurations applied to digital parser. + DigitalParsingConfig digital_parsing_config = 1; + + // Configurations applied to OCR parser. Currently it only applies to + // PDFs. + OcrParsingConfig ocr_parsing_config = 2; + + // Configurations applied to layout parser. + LayoutParsingConfig layout_parsing_config = 3; + } + } + + // The full resource name of the Document Processing Config. + // Format: + // `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`. + string name = 1; + + // Whether chunking mode is enabled. + ChunkingConfig chunking_config = 3; + + // Configurations for default Document parser. + // If not specified, we will configure it as default DigitalParsingConfig, and + // the default parsing config will be applied to all file types for Document + // parsing. + ParsingConfig default_parsing_config = 4; + + // Map from file type to override the default parsing configuration based on + // the file type. Supported keys: + // + // * `pdf`: Override parsing config for PDF files, either digital parsing, ocr + // parsing or layout parsing is supported. + // * `html`: Override parsing config for HTML files, only digital parsing and + // or layout parsing are supported. + // * `docx`: Override parsing config for DOCX files, only digital parsing and + // or layout parsing are supported. + map parsing_config_overrides = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_service.proto index 84dfae087..1a92b01ce 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/document_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import "google/cloud/discoveryengine/v1alpha/import_config.proto"; import "google/cloud/discoveryengine/v1alpha/purge_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; @@ -88,6 +89,7 @@ service DocumentService { body: "document" } }; + option (google.api.method_signature) = "document,update_mask"; } // Deletes a [Document][google.cloud.discoveryengine.v1alpha.Document]. @@ -103,7 +105,7 @@ service DocumentService { // Bulk import of multiple // [Document][google.cloud.discoveryengine.v1alpha.Document]s. Request - // processing may be synchronous. Non-existing items will be created. + // processing may be synchronous. Non-existing items are created. // // Note: It is possible for a subset of the // [Document][google.cloud.discoveryengine.v1alpha.Document]s to be @@ -156,6 +158,19 @@ service DocumentService { metadata_type: "google.cloud.discoveryengine.v1alpha.PurgeDocumentsMetadata" }; } + + // Gets the parsed layout information for a + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + rpc GetProcessedDocument(GetProcessedDocumentRequest) + returns (ProcessedDocument) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*/documents/*}:getProcessedDocument" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*}:getProcessedDocument" + } + }; + option (google.api.method_signature) = "name"; + } } // Request message for @@ -203,7 +218,7 @@ message ListDocumentsRequest { // Maximum number of // [Document][google.cloud.discoveryengine.v1alpha.Document]s to return. If // unspecified, defaults to 100. The maximum allowed value is 1000. Values - // above 1000 will be coerced to 1000. + // above 1000 are set to 1000. // // If this field is negative, an `INVALID_ARGUMENT` error is returned. int32 page_size = 2; @@ -253,8 +268,8 @@ message CreateDocumentRequest { Document document = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The ID to use for the - // [Document][google.cloud.discoveryengine.v1alpha.Document], which will - // become the final component of the + // [Document][google.cloud.discoveryengine.v1alpha.Document], which becomes + // the final component of the // [Document.name][google.cloud.discoveryengine.v1alpha.Document.name]. // // If the caller does not have permission to create the @@ -288,11 +303,15 @@ message UpdateDocumentRequest { // is not set, a `NOT_FOUND` error is returned. Document document = 1 [(google.api.field_behavior) = REQUIRED]; - // If set to true, and the + // If set to `true` and the // [Document][google.cloud.discoveryengine.v1alpha.Document] is not found, a - // new [Document][google.cloud.discoveryengine.v1alpha.Document] will be + // new [Document][google.cloud.discoveryengine.v1alpha.Document] is be // created. bool allow_missing = 2; + + // Indicates which fields in the provided imported 'document' to update. If + // not set, by default updates all fields. + google.protobuf.FieldMask update_mask = 3; } // Request message for @@ -316,3 +335,57 @@ message DeleteDocumentRequest { } ]; } + +// Request message for +// [DocumentService.GetDocument][google.cloud.discoveryengine.v1alpha.DocumentService.GetDocument] +// method. +message GetProcessedDocumentRequest { + // The type of processing to return in the response. + enum ProcessedDocumentType { + // Default value. + PROCESSED_DOCUMENT_TYPE_UNSPECIFIED = 0; + + // Available for all data store parsing configs. + PARSED_DOCUMENT = 1; + + // Only available if ChunkingConfig is enabled on the data store. + CHUNKED_DOCUMENT = 2; + + // Returns the converted PNG Image bytes if available. + PNG_CONVERTED_DOCUMENT = 3; + } + + // The format of the returned processed document. If unspecified, defaults to + // JSON. + enum ProcessedDocumentFormat { + // Default value. + PROCESSED_DOCUMENT_FORMAT_UNSPECIFIED = 0; + + // Output format is a JSON string representation of processed document. + JSON = 1; + } + + // Required. Full resource name of + // [Document][google.cloud.discoveryengine.v1alpha.Document], such as + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}`. + // + // If the caller does not have permission to access the + // [Document][google.cloud.discoveryengine.v1alpha.Document], regardless of + // whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // If the requested [Document][google.cloud.discoveryengine.v1alpha.Document] + // does not exist, a `NOT_FOUND` error is returned. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + } + ]; + + // Required. What type of processing to return. + ProcessedDocumentType processed_document_type = 2 + [(google.api.field_behavior) = REQUIRED]; + + // What format output should be. If unspecified, defaults to JSON. + ProcessedDocumentFormat processed_document_format = 3; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine.proto index 0c96b0c3f..d65107a92 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ message Engine { // The search feature tier of this engine. // // Different tiers might have different - // pricing. To learn more, please check the pricing documentation. + // pricing. To learn more, check the pricing documentation. // // Defaults to // [SearchTier.SEARCH_TIER_STANDARD][google.cloud.discoveryengine.v1alpha.SearchTier.SEARCH_TIER_STANDARD] @@ -82,7 +82,7 @@ message Engine { TRAINING = 2; } - // Required. The type of engine e.g. `recommended-for-you`. + // Required. The type of engine. e.g., `recommended-for-you`. // // This field together with // [optimization_objective][Engine.optimization_objective] describe engine @@ -92,7 +92,7 @@ message Engine { // `more-like-this`, `most-popular-items`. string type = 1 [(google.api.field_behavior) = REQUIRED]; - // The optimization objective e.g. `cvr`. + // The optimization objective. e.g., `cvr`. // // This field together with // [optimization_objective][google.cloud.discoveryengine.v1alpha.Engine.MediaRecommendationEngineConfig.type] @@ -155,6 +155,11 @@ message Engine { // database](https://www.iana.org/time-zones), e.g., America/New_York, // Europe/Paris. string time_zone = 3 [(google.api.field_behavior) = REQUIRED]; + + // Agent location for Agent creation, supported values: global/us/eu. + // If not provided, us Engine will create Agent using us-central-1 by + // default; eu Engine will create Agent using eu-west-1 by default. + string location = 4; } // The configurationt generate the Dialogflow agent that is associated to @@ -180,9 +185,9 @@ message Engine { // [EngineService.GetEngine][google.cloud.discoveryengine.v1alpha.EngineService.GetEngine] // or // [EngineService.ListEngines][google.cloud.discoveryengine.v1alpha.EngineService.ListEngines] - // API after engine creation. Please use - // [chat_engine_metadata.dialogflow_agent][] for actual agent - // association after Engine is created. + // API after engine creation. Use + // [ChatEngineMetadata.dialogflow_agent][google.cloud.discoveryengine.v1alpha.Engine.ChatEngineMetadata.dialogflow_agent] + // for actual agent association after Engine is created. string dialogflow_agent_to_link = 2; } @@ -352,7 +357,7 @@ message Engine { // Note that when used in // [CreateEngineRequest][google.cloud.discoveryengine.v1alpha.CreateEngineRequest], // one DataStore id must be provided as the system will use it for necessary - // intializations. + // initializations. repeated string data_store_ids = 5; // Required. The solutions of the engine. @@ -362,7 +367,7 @@ message Engine { // The restriction of the Engine industry vertical is based on // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore]: If // unspecified, default to `GENERIC`. Vertical on Engine has to match vertical - // of the DataStore liniked to the engine. + // of the DataStore linked to the engine. IndustryVertical industry_vertical = 16; // Common config spec that specifies the metadata of the engine. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine_service.proto index 106381deb..4453b5d81 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/engine_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -94,7 +94,7 @@ service EngineService { } // Pauses the training of an existing engine. Only applicable if - // [solution_type][] is + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. rpc PauseEngine(PauseEngineRequest) returns (Engine) { option (google.api.http) = { @@ -115,7 +115,8 @@ service EngineService { option (google.api.method_signature) = "name"; } - // Tunes an existing engine. Only applicable if [solution_type][] is + // Tunes an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. rpc TuneEngine(TuneEngineRequest) returns (google.longrunning.Operation) { option (google.api.http) = { diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/estimate_billing_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/estimate_billing_service.proto new file mode 100644 index 000000000..193ded4fe --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/estimate_billing_service.proto @@ -0,0 +1,130 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/import_config.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "EstimateBillingServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for managing billing estimations resources. +service EstimateBillingService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Estimates the data size to be used by a customer. + rpc EstimateDataSize(EstimateDataSizeRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{location=projects/*/locations/*}:estimateDataSize" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.EstimateDataSizeResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.EstimateDataSizeMetadata" + }; + } +} + +// Request message for +// [EstimateBillingService.EstimateDataSize][google.cloud.discoveryengine.v1alpha.EstimateBillingService.EstimateDataSize] +// method +message EstimateDataSizeRequest { + // Data source is a set of website patterns that we crawl to get + // the total number of websites. + message WebsiteDataSource { + // URI patterns that we use to crawl. + message EstimatorUriPattern { + // User provided URI pattern. For example, `foo.com/bar/*`. + string provided_uri_pattern = 1; + + // Whether we infer the generated URI or use the exact provided one. + bool exact_match = 2; + + // Whether the pattern is exclusive or not. If set to true, the pattern is + // considered exclusive. If unset or set to false, the pattern is + // considered inclusive by default. + bool exclusive = 3; + } + + // Required. The URI patterns to estimate the data sizes. At most 10 + // patterns are allowed, otherwise an INVALID_ARGUMENT error is thrown. + repeated EstimatorUriPattern estimator_uri_patterns = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // Data source contains files either in Cloud Storage or BigQuery. + message FileDataSource { + // Which source contains the files to be used. + oneof source { + // Cloud Storage location for the input content. + GcsSource gcs_source = 1; + + // BigQuery input source. + BigQuerySource bigquery_source = 2; + } + } + + // Data source for which we are estimating its size. + oneof data_source { + // Website data. + WebsiteDataSource website_data_source = 2; + + // Structured or unstructured data. + FileDataSource file_data_source = 3; + } + + // Required. Full resource name of the location, such as + // `projects/{project}/locations/{location}`. + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; +} + +// Response of the EstimateDataSize request. If the long running +// operation was successful, then this message is returned by the +// google.longrunning.Operations.response field if the operation was successful. +message EstimateDataSizeResponse { + // Data size in terms of bytes. + int64 data_size_bytes = 1; + + // Total number of documents. + int64 document_count = 2; +} + +// Metadata related to the progress of the EstimateDataSize operation. This is +// returned by the google.longrunning.Operation.metadata field. +message EstimateDataSizeMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto new file mode 100644 index 000000000..a1f604b65 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto @@ -0,0 +1,149 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/grounding.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "GroundedGenerationServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for grounded generation. +service GroundedGenerationService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Performs a grounding check. + rpc CheckGrounding(CheckGroundingRequest) returns (CheckGroundingResponse) { + option (google.api.http) = { + post: "/v1alpha/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" + body: "*" + }; + } +} + +// Specification for the grounding check. +message CheckGroundingSpec { + // The threshold (in [0,1]) used for determining whether a fact must be + // cited for a claim in the answer candidate. Choosing a higher threshold + // will lead to fewer but very strong citations, while choosing a lower + // threshold may lead to more but somewhat weaker citations. If unset, the + // threshold will default to 0.6. + optional double citation_threshold = 1; +} + +// Request message for +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1alpha.GroundedGenerationService.CheckGrounding] +// method. +message CheckGroundingRequest { + // Required. The resource name of the grounding config, such as + // `projects/*/locations/global/groundingConfigs/default_grounding_config`. + string grounding_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/GroundingConfig" + } + ]; + + // Answer candidate to check. Can have a maximum length of 1024 characters. + string answer_candidate = 2; + + // List of facts for the grounding check. + // We support up to 200 facts. + repeated GroundingFact facts = 3; + + // Configuration of the grounding check. + CheckGroundingSpec grounding_spec = 4; + + // 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. + map user_labels = 5; +} + +// Response message for the +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1alpha.GroundedGenerationService.CheckGrounding] +// method. +message CheckGroundingResponse { + // Text and citation info for a claim in the answer candidate. + message Claim { + // Position indicating the start of the claim in the answer candidate, + // measured in bytes. + optional int32 start_pos = 1; + + // Position indicating the end of the claim in the answer candidate, + // exclusive. + optional int32 end_pos = 2; + + // Text for the claim in the answer candidate. Always provided regardless of + // whether citations or anti-citations are found. + string claim_text = 3; + + // A list of indices (into 'cited_chunks') specifying the citations + // associated with the claim. For instance [1,3,4] means that + // cited_chunks[1], cited_chunks[3], cited_chunks[4] are the facts cited + // supporting for the claim. A citation to a fact indicates that the claim + // is supported by the fact. + repeated int32 citation_indices = 4; + + // Indicates that this claim required grounding check. When the system + // decided this claim doesn't require attribution/grounding check, this + // field will be set to false. In that case, no grounding check was done for + // the claim and therefore + // [citation_indices][google.cloud.discoveryengine.v1alpha.CheckGroundingResponse.Claim.citation_indices], + // and + // [anti_citation_indices][google.cloud.discoveryengine.v1alpha.CheckGroundingResponse.Claim.anti_citation_indices] + // should not be returned. + optional bool grounding_check_required = 6; + } + + // The support score for the input answer candidate. + // Higher the score, higher is the fraction of claims that are supported by + // the provided facts. This is always set when a response is returned. + optional float support_score = 1; + + // List of facts cited across all claims in the answer candidate. + // These are derived from the facts supplied in the request. + repeated FactChunk cited_chunks = 3; + + // Claim texts and citation info across all claims in the answer candidate. + repeated Claim claims = 4; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/grounding.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/grounding.proto new file mode 100644 index 000000000..8a8432f6a --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/grounding.proto @@ -0,0 +1,58 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "GroundingProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Grounding Fact. +message GroundingFact { + // Text content of the fact. Can be at most 10K characters long. + string fact_text = 1; + + // Attributes associated with the fact. + // Common attributes include `source` (indicating where the fact was sourced + // from), `author` (indicating the author of the fact), and so on. + map attributes = 2; +} + +// Fact Chunk. +message FactChunk { + // Text content of the fact chunk. Can be at most 10K characters long. + string chunk_text = 1; + + // Source from which this fact chunk was retrieved. If it was retrieved + // from the GroundingFacts provided in the request then this field will + // contain the index of the specific fact from which this chunk was + // retrieved. + string source = 2; + + // The index of this chunk. Currently, only used for the streaming mode. + int32 index = 4; + + // More fine-grained information for the source reference. + map source_metadata = 3; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/import_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/import_config.proto index 8902565ba..231155d15 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/import_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/import_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,8 +18,10 @@ package google.cloud.discoveryengine.v1alpha; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/completion.proto"; import "google/cloud/discoveryengine/v1alpha/document.proto"; import "google/cloud/discoveryengine/v1alpha/user_event.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/date.proto"; @@ -35,7 +37,7 @@ option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; // Cloud Storage location for input content. message GcsSource { - // Required. Cloud Storage URIs to input files. URI can be up to + // Required. Cloud Storage URIs to input files. Each URI can be up to // 2000 characters long. URIs can match the full object path (for example, // `gs://bucket/directory/object.json`) or a pattern matching one or more // files, such as `gs://bucket/directory/*.json`. @@ -59,13 +61,13 @@ message GcsSource { // bits of SHA256(URI) encoded as a hex string. // * `custom`: One custom data JSON per row in arbitrary format that conforms // to the defined [Schema][google.cloud.discoveryengine.v1alpha.Schema] of - // the data store. This can only be used by Gen App Builder. + // the data store. This can only be used by the GENERIC Data Store vertical. // * `csv`: A CSV file with header conforming to the defined // [Schema][google.cloud.discoveryengine.v1alpha.Schema] of the // data store. Each entry after the header is imported as a Document. - // This can only be used by Gen App Builder. + // This can only be used by the GENERIC Data Store vertical. // - // Supported values for user even imports: + // Supported values for user event imports: // // * `user_event` (default): One JSON // [UserEvent][google.cloud.discoveryengine.v1alpha.UserEvent] per line. @@ -118,10 +120,237 @@ message BigQuerySource { // [Document.struct_data][google.cloud.discoveryengine.v1alpha.Document.struct_data]. // * `custom`: One custom data per row in arbitrary format that conforms to // the defined [Schema][google.cloud.discoveryengine.v1alpha.Schema] of the - // data store. This can only be used by Gen App Builder. + // data store. This can only be used by the GENERIC Data Store vertical. string data_schema = 6; } +// The Spanner source for importing data +message SpannerSource { + // The project ID that the Spanner source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The instance ID of the source Spanner table. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The database ID of the source Spanner table. + string database_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table name of the Spanner database that needs to be imported. + string table_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Whether to apply data boost on Spanner export. Enabling this option will + // incur additional cost. More info can be found + // [here](https://cloud.google.com/spanner/docs/databoost/databoost-overview#billing_and_quotas). + bool enable_data_boost = 5; +} + +// The Bigtable Options object that contains information to support +// the import. +message BigtableOptions { + // The column family of the Bigtable. + message BigtableColumnFamily { + // The field name to use for this column family in the document. The + // name has to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. If not set, + // it is parsed from the family name with best effort. However, due to + // different naming patterns, field name collisions could happen, where + // parsing behavior is undefined. + string field_name = 1; + + // The encoding mode of the values when the type is not STRING. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding encoding = 2; + + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type type = 3; + + // The list of objects that contains column level information for each + // column. If a column is not present in this list it will be ignored. + repeated BigtableColumn columns = 4; + } + + // The column of the Bigtable. + message BigtableColumn { + // Required. Qualifier of the column. If it cannot be decoded with utf-8, + // use a base-64 encoded string instead. + bytes qualifier = 1 [(google.api.field_behavior) = REQUIRED]; + + // The field name to use for this column in the document. The name has to + // match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + // If not set, it is parsed from the qualifier bytes with best effort. + // However, due to different naming patterns, field name collisions could + // happen, where parsing behavior is undefined. + string field_name = 2; + + // The encoding mode of the values when the type is not `STRING`. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding encoding = 3; + + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type type = 4; + } + + // The type of values in a Bigtable column or column family. + // The values are expected to be encoded using + // [HBase + // Bytes.toBytes](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/util/Bytes.html) + // function when the encoding value is set to `BINARY`. + enum Type { + // The type is unspecified. + TYPE_UNSPECIFIED = 0; + + // String type. + STRING = 1; + + // Numerical type. + NUMBER = 2; + + // Integer type. + INTEGER = 3; + + // Variable length integer type. + VAR_INTEGER = 4; + + // BigDecimal type. + BIG_NUMERIC = 5; + + // Boolean type. + BOOLEAN = 6; + + // JSON type. + JSON = 7; + } + + // The encoding mode of a Bigtable column or column family. + enum Encoding { + // The encoding is unspecified. + ENCODING_UNSPECIFIED = 0; + + // Text encoding. + TEXT = 1; + + // Binary encoding. + BINARY = 2; + } + + // The field name used for saving row key value in the document. The name has + // to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + string key_field_name = 1; + + // The mapping from family names to an object that contains column families + // level information for the given column family. If a family is not present + // in this map it will be ignored. + map families = 2; +} + +// The Cloud Bigtable source for importing data. +message BigtableSource { + // The project ID that the Bigtable source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The instance ID of the Cloud Bigtable that needs to be imported. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table ID of the Cloud Bigtable that needs to be imported. + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Bigtable options that contains information needed when parsing + // data into typed structures. For example, column type annotations. + BigtableOptions bigtable_options = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Cloud FhirStore source import data from. +message FhirStoreSource { + // Required. The full resource name of the FHIR store to import data from, in + // the format of + // `projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}`. + string fhir_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "healthcare.googleapis.com/FhirStore" + } + ]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // FhirStore export to a specific Cloud Storage directory. + string gcs_staging_dir = 2; +} + +// Cloud SQL source import data from. +message CloudSqlSource { + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The Cloud SQL instance to copy the data from with a length limit + // of 256 characters. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL database to copy the data from with a length limit + // of 256 characters. + string database_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL table to copy the data from with a length limit of + // 256 characters. + string table_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Cloud SQL export to a specific Cloud Storage directory. + // + // Ensure that the Cloud SQL service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 5; + + // Option for serverless export. Enabling this option will incur additional + // cost. More info can be found + // [here](https://cloud.google.com/sql/pricing#serverless). + bool offload = 6; +} + +// Firestore source import data from. +message FirestoreSource { + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The Firestore database to copy the data from with a length limit + // of 256 characters. + string database_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Firestore collection (or entity) to copy the data from with a + // length limit of 1,500 characters. + string collection_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Firestore export to a specific Cloud Storage directory. + // + // Ensure that the Firestore service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 4; +} + // Configuration of destination for Import related errors. message ImportErrorConfig { // Required. Errors destination. @@ -219,6 +448,9 @@ message ImportDocumentsMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; + + // Total count of entries that were processed. + int64 total_count = 5; } // Request message for Import methods. @@ -255,6 +487,21 @@ message ImportDocumentsRequest { // BigQuery input source. BigQuerySource bigquery_source = 4; + + // FhirStore input source. + FhirStoreSource fhir_store_source = 10; + + // Spanner input source. + SpannerSource spanner_source = 11; + + // Cloud SQL input source. + CloudSqlSource cloud_sql_source = 12; + + // Firestore input source. + FirestoreSource firestore_source = 13; + + // Cloud Bigtable input source. + BigtableSource bigtable_source = 15; } // Required. The parent branch resource name, such as @@ -275,6 +522,10 @@ message ImportDocumentsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1alpha.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 6; + // Indicates which fields in the provided imported documents to update. If + // not set, the default is to update all fields. + google.protobuf.FieldMask update_mask = 7; + // Whether to automatically generate IDs for the documents if absent. // // If set to `true`, @@ -288,45 +539,54 @@ message ImportDocumentsRequest { // [id_field][google.cloud.discoveryengine.v1alpha.ImportDocumentsRequest.id_field], // otherwise, documents without IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1alpha.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1alpha.BigQuerySource], and - // when + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1alpha.GcsSource]. // [GcsSource.data_schema][google.cloud.discoveryengine.v1alpha.GcsSource.data_schema] - // or + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1alpha.BigQuerySource]. // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1alpha.BigQuerySource.data_schema] - // is `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1alpha.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1alpha.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1alpha.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1alpha.BigtableSource]. bool auto_generate_ids = 8; - // The field in the Cloud Storage and BigQuery sources that indicates the - // unique IDs of the documents. + // The field indicates the ID field or column to be used as unique IDs of + // the documents. // // For [GcsSource][google.cloud.discoveryengine.v1alpha.GcsSource] it is the // key of the JSON field. For instance, `my_id` for JSON `{"my_id": - // "some_uuid"}`. For - // [BigQuerySource][google.cloud.discoveryengine.v1alpha.BigQuerySource] it is - // the column name of the BigQuery table where the unique ids are stored. + // "some_uuid"}`. For others, it may be the column name of the table where the + // unique ids are stored. // - // The values of the JSON field or the BigQuery column are used as the + // The values of the JSON field or the table column are used as the // [Document.id][google.cloud.discoveryengine.v1alpha.Document.id]s. The JSON - // field or the BigQuery column must be of string type, and the values must be + // field or the table column must be of string type, and the values must be // set as valid strings conform to // [RFC-1034](https://tools.ietf.org/html/rfc1034) with 1-63 characters. // Otherwise, documents without valid IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1alpha.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1alpha.BigQuerySource], and - // when - // [GcsSource.data_schema][google.cloud.discoveryengine.v1alpha.GcsSource.data_schema] - // or - // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1alpha.BigQuerySource.data_schema] - // is `custom`. And only set this field when + // Only set this field when // [auto_generate_ids][google.cloud.discoveryengine.v1alpha.ImportDocumentsRequest.auto_generate_ids] // is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown. // // If it is unset, a default value `_id` is used when importing from the // allowed data sources. + // + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1alpha.GcsSource]. + // [GcsSource.data_schema][google.cloud.discoveryengine.v1alpha.GcsSource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1alpha.BigQuerySource]. + // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1alpha.BigQuerySource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1alpha.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1alpha.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1alpha.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1alpha.BigtableSource]. string id_field = 9; } @@ -341,3 +601,66 @@ message ImportDocumentsResponse { // Echoes the destination for the complete errors in the request if set. ImportErrorConfig error_config = 2; } + +// Request message for +// [CompletionService.ImportSuggestionDenyListEntries][google.cloud.discoveryengine.v1alpha.CompletionService.ImportSuggestionDenyListEntries] +// method. +message ImportSuggestionDenyListEntriesRequest { + // The inline source for SuggestionDenyListEntry. + message InlineSource { + // Required. A list of all denylist entries to import. Max of 1000 items. + repeated SuggestionDenyListEntry entries = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The source of the updated SuggestionDenyList. + oneof source { + // The Inline source for the input content for suggestion deny list entries. + InlineSource inline_source = 2; + + // Cloud Storage location for the input content. + // + // Only 1 file can be specified that contains all entries to import. + // Supported values `gcs_source.schema` for autocomplete suggestion deny + // list entry imports: + // + // * `suggestion_deny_list` (default): One JSON [SuggestionDenyListEntry] + // per line. + GcsSource gcs_source = 3; + } + + // Required. The parent data store resource name for which to import denylist + // entries. Follows pattern projects/*/locations/*/collections/*/dataStores/*. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [CompletionService.ImportSuggestionDenyListEntries][google.cloud.discoveryengine.v1alpha.CompletionService.ImportSuggestionDenyListEntries] +// method. +message ImportSuggestionDenyListEntriesResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // Count of deny list entries successfully imported. + int64 imported_entries_count = 2; + + // Count of deny list entries that failed to be imported. + int64 failed_entries_count = 3; +} + +// Metadata related to the progress of the ImportSuggestionDenyListEntries +// operation. This is returned by the google.longrunning.Operation.metadata +// field. +message ImportSuggestionDenyListEntriesMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/project.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/project.proto new file mode 100644 index 000000000..5716416bf --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/project.proto @@ -0,0 +1,103 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Metadata and configurations for a Google Cloud project in the service. +message Project { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Project" + pattern: "projects/{project}" + }; + + // Metadata about the terms of service. + message ServiceTerms { + // The agreement states this terms of service. + enum State { + // The default value of the enum. This value is not actually used. + STATE_UNSPECIFIED = 0; + + // The project has given consent to the terms of service. + TERMS_ACCEPTED = 1; + + // The project is pending to review and accept the terms of service. + TERMS_PENDING = 2; + + // The project has declined or revoked the agreement to terms of service. + TERMS_DECLINED = 3; + } + + // The unique identifier of this terms of service. + // Available terms: + // + // * `GA_DATA_USE_TERMS`: [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). When using this as + // `id`, the acceptable + // [version][google.cloud.discoveryengine.v1alpha.Project.ServiceTerms.version] + // to provide is `2022-11-23`. + string id = 1; + + // The version string of the terms of service. + // For acceptable values, see the comments for + // [id][google.cloud.discoveryengine.v1alpha.Project.ServiceTerms.id] above. + string version = 2; + + // Whether the project has accepted/rejected the service terms or it is + // still pending. + State state = 4; + + // The last time when the project agreed to the terms of service. + google.protobuf.Timestamp accept_time = 5; + + // The last time when the project declined or revoked the agreement to terms + // of service. + google.protobuf.Timestamp decline_time = 6; + } + + // Output only. Full resource name of the project, for example + // `projects/{project_number}`. + // Note that when making requests, project number and project id are both + // acceptable, but the server will always respond in project number. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this project is created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this project is successfully provisioned. + // Empty value means this project is still provisioning and is not ready for + // use. + google.protobuf.Timestamp provision_completion_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A map of terms of services. The key is the `id` of + // [ServiceTerms][google.cloud.discoveryengine.v1alpha.Project.ServiceTerms]. + map service_terms_map = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/project_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/project_service.proto new file mode 100644 index 000000000..8bfac033f --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/project_service.proto @@ -0,0 +1,173 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/project.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for operations on the +// [Project][google.cloud.discoveryengine.v1alpha.Project]. +service ProjectService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a [Project][google.cloud.discoveryengine.v1alpha.Project]. + // Returns NOT_FOUND when the project is not yet created. + rpc GetProject(GetProjectRequest) returns (Project) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Provisions the project resource. During the + // process, related systems will get prepared and initialized. + // + // Caller must read the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms), and optionally + // specify in request to provide consent to that service terms. + rpc ProvisionProject(ProvisionProjectRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{name=projects/*}:provision" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.Project" + metadata_type: "google.cloud.discoveryengine.v1alpha.ProvisionProjectMetadata" + }; + } + + // Updates service terms for this project. + // + // This method can be used to retroactively accept the latest terms. + // + // Terms available for update: + // + // * [Terms for data use](https://cloud.google.com/retail/data-use-terms) + rpc ReportConsentChange(ReportConsentChangeRequest) returns (Project) { + option (google.api.http) = { + post: "/v1alpha/{project=projects/*}:reportConsentChange" + body: "*" + }; + option (google.api.method_signature) = + "consent_change_action,project,service_term_id,service_term_version"; + } +} + +// Request message for +// [ProjectService.GetProject][google.cloud.discoveryengine.v1alpha.ProjectService.GetProject] +// method. +message GetProjectRequest { + // Required. Full resource name of a + // [Project][google.cloud.discoveryengine.v1alpha.Project], such as + // `projects/{project_id_or_number}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Project" + } + ]; +} + +// Request for +// [ProjectService.ProvisionProject][google.cloud.discoveryengine.v1alpha.ProjectService.ProvisionProject] +// method. +message ProvisionProjectRequest { + // Required. Full resource name of a + // [Project][google.cloud.discoveryengine.v1alpha.Project], such as + // `projects/{project_id_or_number}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Project" + } + ]; + + // Required. Set to `true` to specify that caller has read and would like to + // give consent to the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). + bool accept_data_use_terms = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The version of the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms) that caller has read + // and would like to give consent to. + // + // Acceptable version is `2022-11-23`, and this may change over time. + string data_use_terms_version = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata associated with a project provision operation. +message ProvisionProjectMetadata {} + +// Request for ReportConsentChange method. +message ReportConsentChangeRequest { + // Type of consent acknowledgement (accept / reject). + // + // At this moment, only `ACCEPT` action is supported. + enum ConsentChangeAction { + // Invalid action, user must specify accept/decline + CONSENT_CHANGE_ACTION_UNSPECIFIED = 0; + + // User accepts service terms. + ACCEPT = 1; + } + + // Required. Whether customer decides to accept or decline service term. + // + // At this moment, only accept action is supported. + ConsentChangeAction consent_change_action = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Full resource name of a + // [Project][google.cloud.discoveryengine.v1alpha.Project], such as + // `projects/{project_id_or_number}`. + string project = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Project" + } + ]; + + // Required. The unique identifier of the terms of service to update. + // Available term ids: + // + // * `GA_DATA_USE_TERMS`: [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). When using this + // service term id, the acceptable + // [service_term_version][google.cloud.discoveryengine.v1alpha.ReportConsentChangeRequest.service_term_version] + // to provide is `2022-11-23`. + string service_term_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The version string of the terms of service to update. + string service_term_version = 4 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/purge_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/purge_config.proto index ae6158bf2..efa22411d 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/purge_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/purge_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,7 +18,9 @@ package google.cloud.discoveryengine.v1alpha; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/import_config.proto"; import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; @@ -102,10 +104,31 @@ message PurgeUserEventsMetadata { int64 failure_count = 4; } +// Configuration of destination for Purge related errors. +message PurgeErrorConfig { + // Required. Errors destination. + oneof destination { + // Cloud Storage prefix for purge errors. This must be an empty, + // existing Cloud Storage directory. Purge errors are written to + // sharded files in this directory, one per line, as a JSON-encoded + // `google.rpc.Status` message. + string gcs_prefix = 1; + } +} + // Request message for // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1alpha.DocumentService.PurgeDocuments] // method. message PurgeDocumentsRequest { + // The desired input source for the purging documents based on document ids. + oneof source { + // Cloud Storage location for the input content. + // Supported `data_schema`: + // * `document_id`: One valid + // [Document.id][google.cloud.discoveryengine.v1alpha.Document.id] per line. + GcsSource gcs_source = 5; + } + // Required. The parent resource name, such as // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. string parent = 1 [ @@ -120,6 +143,9 @@ message PurgeDocumentsRequest { // `*` (all items). string filter = 2 [(google.api.field_behavior) = REQUIRED]; + // The desired location of errors incurred during the purge. + PurgeErrorConfig error_config = 7; + // Actually performs the purge. If `force` is set to false, return the // expected purge count without deleting any documents. bool force = 3; @@ -156,4 +182,44 @@ message PurgeDocumentsMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; + + // Count of entries that were ignored as entries were not found. + int64 ignored_count = 5; +} + +// Request message for +// [CompletionService.PurgeSuggestionDenyListEntries][google.cloud.discoveryengine.v1alpha.CompletionService.PurgeSuggestionDenyListEntries] +// method. +message PurgeSuggestionDenyListEntriesRequest { + // Required. The parent data store resource name for which to import denylist + // entries. Follows pattern projects/*/locations/*/collections/*/dataStores/*. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [CompletionService.PurgeSuggestionDenyListEntries][google.cloud.discoveryengine.v1alpha.CompletionService.PurgeSuggestionDenyListEntries] +// method. +message PurgeSuggestionDenyListEntriesResponse { + // Number of suggestion deny list entries purged. + int64 purge_count = 1; + + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 2; +} + +// Metadata related to the progress of the PurgeSuggestionDenyListEntries +// operation. This is returned by the google.longrunning.Operation.metadata +// field. +message PurgeSuggestionDenyListEntriesMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/rank_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/rank_service.proto new file mode 100644 index 000000000..922f75115 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/rank_service.proto @@ -0,0 +1,134 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "RankServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for ranking text records. +service RankService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Ranks a list of text records based on the given input query. + rpc Rank(RankRequest) returns (RankResponse) { + option (google.api.http) = { + post: "/v1alpha/{ranking_config=projects/*/locations/*/rankingConfigs/*}:rank" + body: "*" + }; + } +} + +// Record message for +// [RankService.Rank][google.cloud.discoveryengine.v1alpha.RankService.Rank] +// method. +message RankingRecord { + // The unique ID to represent the record. + string id = 1; + + // The title of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1alpha.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1alpha.RankingRecord.content] + // should be set otherwise an INVALID_ARGUMENT error is thrown. + string title = 2; + + // The content of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1alpha.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1alpha.RankingRecord.content] + // should be set otherwise an INVALID_ARGUMENT error is thrown. + string content = 3; + + // The score of this record based on the given query and selected model. + float score = 4; +} + +// Request message for +// [RankService.Rank][google.cloud.discoveryengine.v1alpha.RankService.Rank] +// method. +message RankRequest { + // Required. The resource name of the rank service config, such as + // `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`. + string ranking_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/RankingConfig" + } + ]; + + // The identifier of the model to use. It is one of: + // + // * `semantic-ranker-512@latest`: Semantic ranking model with maxiumn input + // token size 512. + // + // It is set to `semantic-ranker-512@latest` by default if unspecified. + string model = 2; + + // The number of results to return. If this is unset or no bigger than zero, + // returns all results. + int32 top_n = 3; + + // The query to use. + string query = 4; + + // Required. A list of records to rank. At most 200 records to rank. + repeated RankingRecord records = 5 [(google.api.field_behavior) = REQUIRED]; + + // If true, the response will contain only record ID and score. By default, it + // is false, the response will contain record details. + bool ignore_record_details_in_response = 6; + + // 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. + map user_labels = 7; +} + +// Response message for +// [RankService.Rank][google.cloud.discoveryengine.v1alpha.RankService.Rank] +// method. +message RankResponse { + // A list of records sorted by descending score. + repeated RankingRecord records = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/recommendation_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/recommendation_service.proto index bb53f14f8..6be75e968 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/recommendation_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/recommendation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -64,11 +64,13 @@ message RecommendRequest { // `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*` // // One default serving config is created along with your recommendation engine - // creation. The engine ID will be used as the ID of the default serving + // creation. The engine ID is used as the ID of the default serving // config. For example, for Engine // `projects/*/locations/global/collections/*/engines/my-engine`, you can use // `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs/my-engine` - // for your [Recommend][] requests. + // for your + // [RecommendationService.Recommend][google.cloud.discoveryengine.v1alpha.RecommendationService.Recommend] + // requests. string serving_config = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -95,9 +97,9 @@ message RecommendRequest { UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; // Maximum number of results to return. Set this property - // to the number of recommendation results needed. If zero, the service will - // choose a reasonable default. The maximum allowed value is 100. Values - // above 100 will be coerced to 100. + // to the number of recommendation results needed. If zero, the service + // chooses a reasonable default. The maximum allowed value is 100. Values + // above 100 are set to 100. int32 page_size = 3; // Filter for restricting recommendation results with a length limit of 5,000 @@ -118,19 +120,19 @@ message RecommendRequest { // * (available: true) AND // (launguage: ANY("en", "es")) OR (categories: ANY("Movie")) // - // If your filter blocks all results, the API will return generic + // If your filter blocks all results, the API returns generic // (unfiltered) popular Documents. If you only want results strictly matching - // the filters, set `strictFiltering` to True in + // the filters, set `strictFiltering` to `true` in // [RecommendRequest.params][google.cloud.discoveryengine.v1alpha.RecommendRequest.params] // to receive empty results instead. // - // Note that the API will never return + // Note that the API never returns // [Document][google.cloud.discoveryengine.v1alpha.Document]s with - // `storageStatus` of `EXPIRED` or `DELETED` regardless of filter choices. + // `storageStatus` as `EXPIRED` or `DELETED` regardless of filter choices. string filter = 4; - // Use validate only mode for this recommendation query. If set to true, a - // fake model will be used that returns arbitrary Document IDs. + // Use validate only mode for this recommendation query. If set to `true`, a + // fake model is used that returns arbitrary Document IDs. // Note that the validate only mode should only be used for testing the API, // or if the model is not ready. bool validate_only = 5; @@ -139,16 +141,17 @@ message RecommendRequest { // // Allowed values: // - // * `returnDocument`: Boolean. If set to true, the associated Document - // object will be returned in + // * `returnDocument`: Boolean. If set to `true`, the associated Document + // object is returned in // [RecommendResponse.RecommendationResult.document][google.cloud.discoveryengine.v1alpha.RecommendResponse.RecommendationResult.document]. - // * `returnScore`: Boolean. If set to true, the recommendation 'score' - // corresponding to each returned Document will be set in + // * `returnScore`: Boolean. If set to true, the recommendation score + // corresponding to each returned Document is set in // [RecommendResponse.RecommendationResult.metadata][google.cloud.discoveryengine.v1alpha.RecommendResponse.RecommendationResult.metadata]. - // The given 'score' indicates the probability of a Document conversion - // given the user's context and history. - // * `strictFiltering`: Boolean. True by default. If set to false, the service - // will return generic (unfiltered) popular Documents instead of empty if + // The given score indicates the probability of a Document conversion given + // the user's context and history. + // * `strictFiltering`: Boolean. True by default. If set to `false`, the + // service + // returns generic (unfiltered) popular Documents instead of empty if // your filter blocks all recommendation results. // * `diversityLevel`: String. Default empty. If set to be non-empty, then // it needs to be one of: @@ -196,7 +199,7 @@ message RecommendResponse { // [RecommendRequest.params][google.cloud.discoveryengine.v1alpha.RecommendRequest.params]. Document document = 2; - // Additional Document metadata / annotations. + // Additional Document metadata or annotations. // // Possible values: // diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema.proto index 1c073962a..2a9df13fb 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -84,8 +84,29 @@ message FieldConfig { // Field value type is Boolean. BOOLEAN = 5; - // Field value type is Geolocation. + // Field value type is Geolocation. Geolocation is expressed as an object + // with the following keys: + // + // * `id`: a string representing the location id + // * `longitude`: a number representing the longitude coordinate of the + // location + // * `latitude`: a number repesenting the latitude coordinate of the + // location + // * `address`: a string representing the full address of the location + // + // `latitude` and `longitude` must always be provided together. At least one + // of a) `address` or b) `latitude`-`longitude` pair must be provided. GEOLOCATION = 6; + + // Field value type is Datetime. Datetime can be expressed as either: + // + // * a number representing milliseconds-since-the-epoch + // * a string representing milliseconds-since-the-epoch. e.g. + // `"1420070400001"` + // * a string representing the [ISO + // 8601](https://en.wikipedia.org/wiki/ISO_8601) date or date and time. e.g. + // `"2015-01-01"` or `"2015-01-01T12:10:30Z"` + DATETIME = 7; } // The setting of Indexable options in schema. @@ -160,6 +181,21 @@ message FieldConfig { FILTERABLE_DISABLED = 2; } + // Optional source of the advanced site search field. + enum AdvancedSiteSearchDataSource { + // Value used when unset. + ADVANCED_SITE_SEARCH_DATA_SOURCE_UNSPECIFIED = 0; + + // Retrieve value from meta tag. + METATAGS = 1; + + // Retrieve value from page map. + PAGEMAP = 2; + + // Retrieve value from schema.org data. + SCHEMA_ORG = 4; + } + // Required. Field path of the schema field. // For example: `title`, `description`, `release_info.release_year`. string field_path = 1 [(google.api.field_behavior) = REQUIRED]; @@ -309,4 +345,27 @@ message FieldConfig { // `indexable_option` and `searchable_option` of this field cannot be // modified. string key_property_type = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // If this field is set, only the corresponding source will be indexed for + // this field. Otherwise, the values from different sources are merged. + // + // Assuming a page with `` in meta tag, and `` in page + // map: + // if this enum is set to METATAGS, we will only index ``; + // if this enum is not set, we will merge them and index ``. + repeated AdvancedSiteSearchDataSource advanced_site_search_data_sources = 10; + + // Field paths for indexing custom attribute from schema.org data. More + // details of schema.org and its defined types can be found at + // [schema.org](https://schema.org). + // + // It is only used on advanced site search schema. + // + // Currently only support full path from root. The full path to a field is + // constructed by concatenating field names, starting from `_root`, with + // a period `.` as the delimiter. Examples: + // + // * Publish date of the root: _root.datePublished + // * Publish date of the reviews: _root.review.datePublished + repeated string schema_org_paths = 11; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema_service.proto index 9d5e4ee99..58e3dd888 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/schema_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -143,9 +143,9 @@ message ListSchemasRequest { // service may return fewer than this value. // // If unspecified, at most 100 - // [Schema][google.cloud.discoveryengine.v1alpha.Schema]s will be returned. + // [Schema][google.cloud.discoveryengine.v1alpha.Schema]s are returned. // - // The maximum value is 1000; values above 1000 will be coerced to 1000. + // The maximum value is 1000; values above 1000 are set to 1000. int32 page_size = 2; // A page token, received from a previous @@ -190,8 +190,8 @@ message CreateSchemaRequest { Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The ID to use for the - // [Schema][google.cloud.discoveryengine.v1alpha.Schema], which will become - // the final component of the + // [Schema][google.cloud.discoveryengine.v1alpha.Schema], which becomes the + // final component of the // [Schema.name][google.cloud.discoveryengine.v1alpha.Schema.name]. // // This field should conform to @@ -210,8 +210,8 @@ message UpdateSchemaRequest { // If set to true, and the // [Schema][google.cloud.discoveryengine.v1alpha.Schema] is not found, a new - // [Schema][google.cloud.discoveryengine.v1alpha.Schema] will be created. In - // this situation, `update_mask` is ignored. + // [Schema][google.cloud.discoveryengine.v1alpha.Schema] is created. In this + // situation, `update_mask` is ignored. bool allow_missing = 3; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_service.proto index 881504d25..5a0b6a4be 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/chunk.proto"; import "google/cloud/discoveryengine/v1alpha/common.proto"; import "google/cloud/discoveryengine/v1alpha/document.proto"; import "google/protobuf/struct.proto"; @@ -69,6 +70,21 @@ message SearchRequest { } } + // A struct to define data stores to filter on in a search call and + // configurations for those data stores. A maximum of 1 DataStoreSpec per + // data_store is allowed. Otherwise, an `INVALID_ARGUMENT` error is returned. + message DataStoreSpec { + // Required. Full resource name of + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore], such as + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + // A facet specification to perform faceted search. message FacetSpec { // Specifies how a facet is computed. @@ -98,7 +114,7 @@ message SearchRequest { // Only supported on textual fields. Maximum is 10. repeated string prefixes = 4; - // Only get facet values that contains the given strings. For example, + // Only get facet values that contain the given strings. For example, // suppose "category" has three values "Action > 2022", // "Action > 2021" and "Sci-Fi > 2022". If set "contains" to "2022", the // "category" facet only contains "Action > 2022" and "Sci-Fi > 2022". @@ -132,7 +148,7 @@ message SearchRequest { // Required. The facet key specification. FacetKey facet_key = 1 [(google.api.field_behavior) = REQUIRED]; - // Maximum of facet values that should be returned for this facet. If + // Maximum facet values that are returned for this facet. If // unspecified, defaults to 20. The maximum allowed value is 300. Values // above 300 are coerced to 300. // @@ -204,6 +220,80 @@ message SearchRequest { message BoostSpec { // Boost applies to documents which match a condition. message ConditionBoostSpec { + // Specification for custom ranking based on customer specified attribute + // value. It provides more controls for customized ranking than the simple + // (condition, boost) combination above. + message BoostControlSpec { + // The control points used to define the curve. The curve defined + // through these control points can only be monotonically increasing + // or decreasing(constant values are acceptable). + message ControlPoint { + // Can be one of: + // 1. The numerical field value. + // 2. The duration spec for freshness: + // The value must be formatted as an XSD `dayTimeDuration` value (a + // restricted subset of an ISO 8601 duration value). The pattern for + // this is: `[nD][T[nH][nM][nS]]`. + string attribute_value = 1; + + // The value between -1 to 1 by which to boost the score if the + // attribute_value evaluates to the value specified above. + float boost_amount = 2; + } + + // The attribute(or function) for which the custom ranking is to be + // applied. + enum AttributeType { + // Unspecified AttributeType. + ATTRIBUTE_TYPE_UNSPECIFIED = 0; + + // The value of the numerical field will be used to dynamically update + // the boost amount. In this case, the attribute_value (the x value) + // of the control point will be the actual value of the numerical + // field for which the boost_amount is specified. + NUMERICAL = 1; + + // For the freshness use case the attribute value will be the duration + // between the current time and the date in the datetime field + // specified. The value must be formatted as an XSD `dayTimeDuration` + // value (a restricted subset of an ISO 8601 duration value). The + // pattern for this is: `[nD][T[nH][nM][nS]]`. + // For example, `5D`, `3DT12H30M`, `T24H`. + FRESHNESS = 2; + } + + // The interpolation type to be applied. Default will be linear + // (Piecewise Linear). + enum InterpolationType { + // Interpolation type is unspecified. In this case, it defaults to + // Linear. + INTERPOLATION_TYPE_UNSPECIFIED = 0; + + // Piecewise linear interpolation will be applied. + LINEAR = 1; + } + + // The name of the field whose value will be used to determine the + // boost amount. + string field_name = 1; + + // The attribute type to be used to determine the boost amount. The + // attribute value can be derived from the field value of the specified + // field_name. In the case of numerical it is straightforward i.e. + // attribute_value = numerical_field_value. In the case of freshness + // however, attribute_value = (time.now() - datetime_field_value). + AttributeType attribute_type = 2; + + // The interpolation type to be applied to connect the control points + // listed below. + InterpolationType interpolation_type = 3; + + // The control points used to define the curve. The monotonic function + // (defined through the interpolation_type above) passes through the + // control points listed here. + repeated ControlPoint control_points = 4; + } + // An expression which specifies a boost condition. The syntax and // supported fields are the same as a filter expression. See // [SearchRequest.filter][google.cloud.discoveryengine.v1alpha.SearchRequest.filter] @@ -212,29 +302,34 @@ message SearchRequest { // Examples: // // * To boost documents with document ID "doc_1" or "doc_2", and - // color - // "Red" or "Blue": - // * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + // color "Red" or "Blue": + // `(document_id: ANY("doc_1", "doc_2")) AND (color: ANY("Red", "Blue"))` string condition = 1; // Strength of the condition boost, which should be in [-1, 1]. Negative // boost means demotion. Default is 0.0. // - // Setting to 1.0 gives the document a big promotion. However, it does not - // necessarily mean that the boosted document will be the top result at - // all times, nor that other documents will be excluded. Results could - // still be shown even when none of them matches the condition. And - // results that are significantly more relevant to the search query can - // still trump your heavily favored but irrelevant documents. + // Setting to 1.0 gives the document a big promotion. However, it does + // not necessarily mean that the boosted document will be the top result + // at all times, nor that other documents will be excluded. Results + // could still be shown even when none of them matches the condition. + // And results that are significantly more relevant to the search query + // can still trump your heavily favored but irrelevant documents. // // Setting to -1.0 gives the document a big demotion. However, results // that are deeply relevant might still be shown. The document will have - // an upstream battle to get a fairly high ranking, but it is not blocked - // out completely. + // an upstream battle to get a fairly high ranking, but it is not + // blocked out completely. // // Setting to 0.0 means no boost applied. The boosting condition is - // ignored. + // ignored. Only one of the (condition, boost) combination or the + // boost_control_spec below are set. If both are set then the global boost + // is ignored and the more fine-grained boost_control_spec is applied. float boost = 2; + + // Complex specification for custom ranking based on customer defined + // attribute value. + BoostControlSpec boost_control_spec = 3; } // Condition boost specifications. If a document matches multiple conditions @@ -282,10 +377,10 @@ message SearchRequest { // [Mode.AUTO][google.cloud.discoveryengine.v1alpha.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. MODE_UNSPECIFIED = 0; - // Search API will try to find a spell suggestion if there - // is any and put in the + // Search API tries to find a spelling suggestion. If a suggestion is + // found, it is put in the // [SearchResponse.corrected_query][google.cloud.discoveryengine.v1alpha.SearchResponse.corrected_query]. - // The spell suggestion will not be used as the search query. + // The spelling suggestion won't be used as the search query. SUGGESTION_ONLY = 1; // Automatic spell correction built by the Search API. Search will @@ -293,8 +388,8 @@ message SearchRequest { AUTO = 2; } - // The mode under which spell correction should take effect to - // replace the original search query. Default to + // The mode under which spell correction + // replaces the original search query. Defaults to // [Mode.AUTO][google.cloud.discoveryengine.v1alpha.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. Mode mode = 1; } @@ -330,8 +425,18 @@ message SearchRequest { // Specification of the model. message ModelSpec { - // The string format of the model version. - // e.g. stable, preview, etc. + // The model version used to generate the summary. + // + // Supported values are: + // + // * `stable`: string. Default value when no value is specified. Uses a + // generally available, fine-tuned model. For more information, see + // [Answer generation model versions and + // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). + // * `preview`: string. (Public preview) Uses a preview model. For more + // information, see + // [Answer generation model versions and + // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). string version = 1; } @@ -339,7 +444,11 @@ message SearchRequest { // of results returned is less than `summaryResultCount`, the summary is // generated from all of the results. // - // At most five results can be used to generate a summary. + // At most 10 results for documents mode, or 50 for chunks mode, can be + // used to generate a summary. The chunks mode is used when + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. int32 summary_result_count = 1; // Specifies whether to include citations in the summary. The default @@ -398,6 +507,14 @@ message SearchRequest { // If specified, the spec will be used to modify the model specification // provided to the LLM. ModelSpec model_spec = 7; + + // If true, answer will be generated from most relevant chunks from top + // search results. This feature will improve summary quality. + // Note that with this feature enabled, not all top search results + // will be referenced and included in the reference list, so the citation + // source index only points to the search results listed in the reference + // list. + bool use_semantic_chunks = 8; } // A specification for configuring the extractive content in a search @@ -414,7 +531,7 @@ message SearchRequest { // `max_extractive_answer_count`, return all of the answers. Otherwise, // return the `max_extractive_answer_count`. // - // At most one answer is returned for each + // At most five answers are returned for each // [SearchResult][google.cloud.discoveryengine.v1alpha.SearchResponse.SearchResult]. int32 max_extractive_answer_count = 1; @@ -438,10 +555,9 @@ message SearchRequest { int32 max_extractive_segment_count = 2; // Specifies whether to return the confidence score from the extractive - // segments in each search result. The default value is `false`. - // - // Note: this is a priavte preview feature and only works for allowlisted - // users, please reach out to Cloud Support team if you want to use it. + // segments in each search result. This feature is available only for new + // or allowlisted data stores. To allowlist your data store, + // contact your Customer Engineer. The default value is `false`. bool return_extractive_segment_score = 3; // Specifies whether to also include the adjacent from each selected @@ -455,6 +571,37 @@ message SearchRequest { int32 num_next_segments = 5; } + // Specifies the chunk spec to be returned from the search response. + // Only available if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS] + message ChunkSpec { + // The number of previous chunks to be returned of the current chunk. The + // maximum allowed value is 3. + // If not specified, no previous chunks will be returned. + int32 num_previous_chunks = 1; + + // The number of next chunks to be returned of the current chunk. The + // maximum allowed value is 3. + // If not specified, no next chunks will be returned. + int32 num_next_chunks = 2; + } + + // Specifies the search result mode. If unspecified, the + // search result mode defaults to `DOCUMENTS`. + enum SearchResultMode { + // Default value. + SEARCH_RESULT_MODE_UNSPECIFIED = 0; + + // Returns documents in the search result. + DOCUMENTS = 1; + + // Returns chunks in the search result. Only available if the + // [DataStore.DocumentProcessingConfig.chunking_config][] is specified. + CHUNKS = 2; + } + // If `snippetSpec` is not specified, snippets are not included in the // search response. SnippetSpec snippet_spec = 1; @@ -466,6 +613,17 @@ message SearchRequest { // If there is no extractive_content_spec provided, there will be no // extractive answer in the search response. ExtractiveContentSpec extractive_content_spec = 3; + + // Specifies the search result mode. If unspecified, the + // search result mode defaults to `DOCUMENTS`. + SearchResultMode search_result_mode = 4; + + // Specifies the chunk spec to be returned from the search response. + // Only available if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS] + ChunkSpec chunk_spec = 5; } // The specification that uses customized query embedding vector to do @@ -513,11 +671,15 @@ message SearchRequest { ImageQuery image_query = 19; // Maximum number of - // [Document][google.cloud.discoveryengine.v1alpha.Document]s to return. If - // unspecified, defaults to a reasonable value. The maximum allowed value is - // 100. Values above 100 are coerced to 100. + // [Document][google.cloud.discoveryengine.v1alpha.Document]s to return. The + // maximum allowed value depends on the data type. Values above the maximum + // value are coerced to the maximum value. // - // If this field is negative, an `INVALID_ARGUMENT` is returned. + // * Websites with basic indexing: Default `10`, Maximum `25`. + // * Websites with advanced indexing: Default `25`, Maximum `50`. + // * Other: Default `50`, Maximum `100`. + // + // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 page_size = 4; // A page token received from a previous @@ -540,6 +702,12 @@ message SearchRequest { // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 offset = 6; + // Specs defining dataStores to filter on in a search call and configurations + // for those dataStores. This is only considered for engines with multiple + // dataStores use case. For single dataStore within an engine, they should + // use the specs at the top level. + repeated DataStoreSpec data_store_specs = 32; + // The filter syntax consists of an expression language for constructing a // predicate from one or more fields of the documents being filtered. Filter // expression is case-sensitive. @@ -574,7 +742,9 @@ message SearchRequest { // The order in which documents are returned. Documents can be ordered by // a field in an [Document][google.cloud.discoveryengine.v1alpha.Document] // object. Leave it unset if ordered by relevance. `order_by` expression is - // case-sensitive. For more information on ordering, see + // case-sensitive. + // + // For more information on ordering for retail search, see // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) // // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. @@ -594,7 +764,7 @@ message SearchRequest { // Boost specification to boost certain documents. // For more information on boosting, see - // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + // [Boosting](https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results) BoostSpec boost_spec = 10; // Additional search parameters. @@ -603,8 +773,7 @@ message SearchRequest { // // * `user_country_code`: string. Default empty. If set to non-empty, results // are restricted or boosted based on the location provided. - // Example: - // user_country_code: "au" + // For example, `user_country_code: "au"` // // For available codes see [Country // Codes](https://developers.google.com/custom-search/docs/json_api_reference#countryCodes) @@ -612,8 +781,7 @@ message SearchRequest { // * `search_type`: double. Default empty. Enables non-webpage searching // depending on the value. The only valid non-default value is 1, // which enables image searching. - // Example: - // search_type: 1 + // For example, `search_type: 1` map params = 11; // The query expansion specification that specifies the conditions under which @@ -645,12 +813,14 @@ message SearchRequest { // Uses the provided embedding to do additional semantic document retrieval. // The retrieval is based on the dot product of - // [SearchRequest.embedding_spec.embedding_vectors.vector][] and the document - // embedding that is provided in - // [SearchRequest.embedding_spec.embedding_vectors.field_path][]. + // [SearchRequest.EmbeddingSpec.EmbeddingVector.vector][google.cloud.discoveryengine.v1alpha.SearchRequest.EmbeddingSpec.EmbeddingVector.vector] + // and the document embedding that is provided in + // [SearchRequest.EmbeddingSpec.EmbeddingVector.field_path][google.cloud.discoveryengine.v1alpha.SearchRequest.EmbeddingSpec.EmbeddingVector.field_path]. // - // If [SearchRequest.embedding_spec.embedding_vectors.field_path][] is not - // provided, it will use [ServingConfig.embedding_config.field_paths][]. + // If + // [SearchRequest.EmbeddingSpec.EmbeddingVector.field_path][google.cloud.discoveryengine.v1alpha.SearchRequest.EmbeddingSpec.EmbeddingVector.field_path] + // is not provided, it will use + // [ServingConfig.EmbeddingConfig.field_path][google.cloud.discoveryengine.v1alpha.ServingConfig.embedding_config]. EmbeddingSpec embedding_spec = 23; // The ranking expression controls the customized ranking on retrieval @@ -697,6 +867,9 @@ message SearchRequest { // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) // for more details. map user_labels = 22; + + // Custom fine tuning configs. + CustomFineTuningSpec custom_fine_tuning_spec = 34; } // Response message for @@ -710,9 +883,15 @@ message SearchResponse { string id = 1; // The document data snippet in the search response. Only fields that are - // marked as retrievable are populated. + // marked as `retrievable` are populated. Document document = 2; + // The chunk data in the search response if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. + Chunk chunk = 18; + // Google provided available scores. map model_scores = 4; } @@ -736,7 +915,7 @@ message SearchResponse { int64 count = 3; } - // The key for this facet. E.g., "colors" or "price". It matches + // The key for this facet. For example, `"colors"` or `"price"`. It matches // [SearchRequest.FacetSpec.FacetKey.key][google.cloud.discoveryengine.v1alpha.SearchRequest.FacetSpec.FacetKey.key]. string key = 1; @@ -752,10 +931,10 @@ message SearchResponse { message GuidedSearchResult { // Useful attribute for search result refinements. message RefinementAttribute { - // Attribute key used to refine the results e.g. 'movie_type'. + // Attribute key used to refine the results. For example, `"movie_type"`. string attribute_key = 1; - // Attribute value used to refine the results e.g. 'drama'. + // Attribute value used to refine the results. For example, `"drama"`. string attribute_value = 2; } @@ -766,7 +945,7 @@ message SearchResponse { repeated string follow_up_questions = 2; } - // Summary of the top N search result specified by the summary spec. + // Summary of the top N search results specified by the summary spec. message Summary { // Safety Attribute categories and their associated confidence scores. message SafetyAttributes { @@ -807,6 +986,15 @@ message SearchResponse { // Document reference. message Reference { + // Chunk content. + message ChunkContent { + // Chunk textual content. + string content = 1; + + // Page identifier. + string page_identifier = 2; + } + // Title of the document. string title = 1; @@ -822,8 +1010,11 @@ message SearchResponse { } ]; - // GCS or HTTP uri for the document. + // Cloud Storage or HTTP uri for the document. string uri = 3; + + // List of cited chunk contents derived from document content. + repeated ChunkContent chunk_contents = 4; } // Summary with metadata information. @@ -887,6 +1078,7 @@ message SearchResponse { // confidence scores. SafetyAttributes safety_attributes = 3; + // Summary with metadata information. SummaryWithMetadata summary_with_metadata = 4; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_tuning_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_tuning_service.proto index 97f1d82c7..28235a037 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_tuning_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/search_tuning_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto"; import "google/cloud/discoveryengine/v1alpha/import_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; @@ -52,47 +53,83 @@ service SearchTuningService { metadata_type: "google.cloud.discoveryengine.v1alpha.TrainCustomModelMetadata" }; } + + // Gets a list of all the custom models. + rpc ListCustomModels(ListCustomModelsRequest) + returns (ListCustomModelsResponse) { + option (google.api.http) = { + get: "/v1alpha/{data_store=projects/*/locations/*/collections/*/dataStores/*}/customModels" + }; + } +} + +// Request message for +// [SearchTuningService.ListCustomModels][google.cloud.discoveryengine.v1alpha.SearchTuningService.ListCustomModels] +// method. +message ListCustomModelsRequest { + // Required. The resource name of the parent Data Store, such as + // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store`. + // This field is used to identify the data store where to fetch the models + // from. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [SearchTuningService.ListCustomModels][google.cloud.discoveryengine.v1alpha.SearchTuningService.ListCustomModels] +// method. +message ListCustomModelsResponse { + // List of custom tuning models. + repeated CustomTuningModel models = 1; } // Request message for // [SearchTuningService.TrainCustomModel][google.cloud.discoveryengine.v1alpha.SearchTuningService.TrainCustomModel] // method. message TrainCustomModelRequest { - // Gcs training data input. + // Cloud Storage training data input. message GcsTrainingInput { - // The gcs corpus data which could be associated in train data. - // The data path format is gs:///. + // The Cloud Storage corpus data which could be associated in train data. + // The data path format is `gs:///`. // A newline delimited jsonl/ndjson file. - // * For search-tuning model, each line should have the _id, title - // and text. Example: {"_id": "doc1", title: "relevant doc", "text": - // "relevant text"} + // + // For search-tuning model, each line should have the _id, title + // and text. Example: + // `{"_id": "doc1", title: "relevant doc", "text": "relevant text"}` string corpus_data_path = 1; // The gcs query data which could be associated in train data. - // The data path format is gs:///. + // The data path format is `gs:///`. // A newline delimited jsonl/ndjson file. - // * For search-tuning model, each line should have the _id - // and text. Example: {"_id": "query1", "text": "example query"} + // + // For search-tuning model, each line should have the _id + // and text. Example: {"_id": "query1", "text": "example query"} string query_data_path = 2; - // Gcs training data path whose format should be - // gs:///. The file should be in tsv format. - // Each line should have the doc_id and query_id and score (number). - // * For search-tuning model, it should have the query-id corpus-id - // score as tsv file header. The score should be a number in [0, inf+). The - // larger the number is, the more relevant the pair is. Example: - // query-id\tcorpus-id\tscore - // query1\tdoc1\t1 + // Cloud Storage training data path whose format should be + // `gs:///`. The file should be in tsv + // format. Each line should have the doc_id and query_id and score (number). + // + // For search-tuning model, it should have the query-id corpus-id + // score as tsv file header. The score should be a number in `[0, inf+)`. + // The larger the number is, the more relevant the pair is. Example: + // + // * `query-id\tcorpus-id\tscore` + // * `query1\tdoc1\t1` string train_data_path = 3; - // Gcs test data. Same format as train_data_path. If not provided, a - // random 80/20 train/test split will be performed on train_data_path. + // Cloud Storage test data. Same format as train_data_path. If not provided, + // a random 80/20 train/test split will be performed on train_data_path. string test_data_path = 4; } // Model training input. oneof training_input { - // Gcs training input. + // Cloud Storage training input. GcsTrainingInput gcs_training_input = 2; } @@ -114,6 +151,9 @@ message TrainCustomModelRequest { // The desired location of errors incurred during the data ingestion and // training. ImportErrorConfig error_config = 4; + + // If not provided, a UUID will be generated. + string model_id = 5; } // Response of the @@ -130,9 +170,18 @@ message TrainCustomModelResponse { // // * **bad-data**: The training data quality is bad. // * **no-improvement**: Tuning didn't improve performance. Won't deploy. - // * **in-progress**: Model training is in progress. + // * **in-progress**: Model training job creation is in progress. + // * **training**: Model is actively training. + // * **evaluating**: The model is evaluating trained metrics. + // * **indexing**: The model trained metrics are indexing. // * **ready**: The model is ready for serving. string model_status = 3; + + // The metrics of the trained model. + map metrics = 4; + + // Fully qualified name of the CustomTuningModel. + string model_name = 5; } // Metadata related to the progress of the TrainCustomModel operation. This is diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/serving_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/serving_config.proto new file mode 100644 index 000000000..36096e658 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/serving_config.proto @@ -0,0 +1,271 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/common.proto"; +import "google/cloud/discoveryengine/v1alpha/search_service.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Configures metadata that is used to generate serving time results (e.g. +// search results or recommendation predictions). +// The ServingConfig is passed in the search and predict request and generates +// results. +message ServingConfig { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/ServingConfig" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}" + }; + + // Specifies the configurations needed for Media Discovery. Currently we + // support: + // + // * `demote_content_watched`: Threshold for watched content demotion. + // Customers can specify if using watched content demotion or use viewed + // detail page. Using the content watched demotion, customers need to specify + // the watched minutes or percentage exceeds the threshold, the content will + // be demoted in the recommendation result. + // * `promote_fresh_content`: cutoff days for fresh content promotion. + // Customers can specify if using content freshness promotion. If the content + // was published within the cutoff days, the content will be promoted in the + // recommendation result. + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + message MediaConfig { + // Specify the threshold for demoting watched content, the threshold can be + // either percentage or minutes value. + // This must be set for `media-complete` event type. + oneof demote_content_watched { + // Specifies the content watched percentage threshold for demotion. + // Threshold value must be between [0, 1.0] inclusive. + float content_watched_percentage_threshold = 2; + + // Specifies the content watched minutes threshold for demotion. + float content_watched_seconds_threshold = 5; + } + + // Specifies the event type used for demoting recommendation result. + // Currently supported values: + // + // * `view-item`: Item viewed. + // * `media-play`: Start/resume watching a video, playing a song, etc. + // * `media-complete`: Finished or stopped midway through a video, song, + // etc. + // + // If unset, watch history demotion will not be applied. Content freshness + // demotion will still be applied. + string demotion_event_type = 1; + + // Specifies the content freshness used for recommendation result. + // Contents will be demoted if contents were published for more than content + // freshness cutoff days. + int32 content_freshness_cutoff_days = 4; + } + + // Specifies the configurations needed for Generic Discovery.Currently we + // support: + // + // * `content_search_spec`: configuration for generic content search. + message GenericConfig { + // Specifies the expected behavior of content search. + // Only valid for content-search enabled data store. + SearchRequest.ContentSearchSpec content_search_spec = 1; + } + + // Industry vertical specific config. + oneof vertical_config { + // The MediaConfig of the serving configuration. + MediaConfig media_config = 7; + + // The GenericConfig of the serving configuration. + GenericConfig generic_config = 10; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}/servingConfigs/{serving_config_id}` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The human readable serving config display name. Used in Discovery + // UI. + // + // This field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. Specifies the solution type that a serving config can + // be associated with. + SolutionType solution_type = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The id of the model to use at serving time. + // Currently only RecommendationModels are supported. + // Can be changed but only to a compatible model (e.g. + // others-you-may-like CTR to others-you-may-like CVR). + // + // Required when + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string model_id = 4; + + // How much diversity to use in recommendation model results e.g. + // `medium-diversity` or `high-diversity`. Currently supported values: + // + // * `no-diversity` + // * `low-diversity` + // * `medium-diversity` + // * `high-diversity` + // * `auto-diversity` + // + // If not specified, we choose default based on recommendation model + // type. Default value: `no-diversity`. + // + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + string diversity_level = 5; + + // Bring your own embedding config. The config is used for search semantic + // retrieval. The retrieval is based on the dot product of + // [SearchRequest.EmbeddingSpec.EmbeddingVector.vector][google.cloud.discoveryengine.v1alpha.SearchRequest.EmbeddingSpec.EmbeddingVector.vector] + // and the document embeddings that are provided by this EmbeddingConfig. If + // [SearchRequest.EmbeddingSpec.EmbeddingVector.vector][google.cloud.discoveryengine.v1alpha.SearchRequest.EmbeddingSpec.EmbeddingVector.vector] + // is provided, it overrides this + // [ServingConfig.embedding_config][google.cloud.discoveryengine.v1alpha.ServingConfig.embedding_config]. + EmbeddingConfig embedding_config = 20; + + // The ranking expression controls the customized ranking on retrieval + // documents. To leverage this, document embedding is required. The ranking + // expression setting in ServingConfig applies to all search requests served + // by the serving config. However, if + // [SearchRequest.ranking_expression][google.cloud.discoveryengine.v1alpha.SearchRequest.ranking_expression] + // is specified, it overrides the ServingConfig ranking expression. + // + // The ranking expression is 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). + string ranking_expression = 21; + + // Guided search configs. + GuidedSearchSpec guided_search_spec = 22; + + // Custom fine tuning configs. + CustomFineTuningSpec custom_fine_tuning_spec = 24; + + // Output only. ServingConfig created timestamp. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ServingConfig updated timestamp. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Filter controls to use in serving path. + // All triggered filter controls will be applied. + // Filter controls must be in the same data store as the serving config. + // Maximum of 20 filter controls. + repeated string filter_control_ids = 11; + + // Boost controls to use in serving path. + // All triggered boost controls will be applied. + // Boost controls must be in the same data store as the serving config. + // Maximum of 20 boost controls. + repeated string boost_control_ids = 12; + + // IDs of the redirect controls. Only the first triggered redirect + // action is applied, even if multiple apply. Maximum number of + // specifications is 100. + // + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string redirect_control_ids = 14; + + // Condition synonyms specifications. If multiple synonyms conditions + // match, all matching synonyms controls in the list will execute. + // Maximum number of specifications is 100. + // + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string synonyms_control_ids = 15; + + // Condition oneway synonyms specifications. If multiple oneway synonyms + // conditions match, all matching oneway synonyms controls in the list + // will execute. Maximum number of specifications is 100. + // + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string oneway_synonyms_control_ids = 16; + + // Condition do not associate specifications. If multiple do not + // associate conditions match, all matching do not associate controls in + // the list will execute. + // Order does not matter. + // Maximum number of specifications is 100. + // + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string dissociate_control_ids = 17; + + // Condition replacement specifications. + // Applied according to the order in the list. + // A previously replaced term can not be re-replaced. + // Maximum number of specifications is 100. + // + // Can only be set if + // [SolutionType][google.cloud.discoveryengine.v1alpha.SolutionType] is + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated string replacement_control_ids = 18; + + // Condition ignore specifications. If multiple ignore + // conditions match, all matching ignore controls in the list will + // execute. + // Order does not matter. + // Maximum number of specifications is 100. + repeated string ignore_control_ids = 19; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/serving_config_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/serving_config_service.proto new file mode 100644 index 000000000..33a6d0797 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/serving_config_service.proto @@ -0,0 +1,148 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/serving_config.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ServingConfigServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for operations related to +// [ServingConfig][google.cloud.discoveryengine.v1alpha.ServingConfig]. +service ServingConfigService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Updates a ServingConfig. + // + // Returns a NOT_FOUND error if the ServingConfig does not exist. + rpc UpdateServingConfig(UpdateServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + patch: "/v1alpha/{serving_config.name=projects/*/locations/*/dataStores/*/servingConfigs/*}" + body: "serving_config" + additional_bindings { + patch: "/v1alpha/{serving_config.name=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}" + body: "serving_config" + } + additional_bindings { + patch: "/v1alpha/{serving_config.name=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}" + body: "serving_config" + } + }; + option (google.api.method_signature) = "serving_config,update_mask"; + } + + // Gets a ServingConfig. + // + // Returns a NotFound error if the ServingConfig does not exist. + rpc GetServingConfig(GetServingConfigRequest) returns (ServingConfig) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/dataStores/*/servingConfigs/*}" + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}" + } + additional_bindings { + get: "/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all ServingConfigs linked to this dataStore. + rpc ListServingConfigs(ListServingConfigsRequest) + returns (ListServingConfigsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/servingConfigs" + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/servingConfigs" + } + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/engines/*}/servingConfigs" + } + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for UpdateServingConfig method. +message UpdateServingConfigRequest { + // Required. The ServingConfig to update. + ServingConfig serving_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [ServingConfig][google.cloud.discoveryengine.v1alpha.ServingConfig] to + // update. The following are NOT supported: + // + // * [ServingConfig.name][google.cloud.discoveryengine.v1alpha.ServingConfig.name] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for GetServingConfig method. +message GetServingConfigRequest { + // Required. The resource name of the ServingConfig to get. Format: + // `projects/{project_number}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/ServingConfig" + } + ]; +} + +// Request for ListServingConfigs method. +message ListServingConfigsRequest { + // Required. Full resource name of the parent resource. Format: + // `projects/{project_number}/locations/{location}/collections/{collection}/engines/{engine}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/ServingConfig" + } + ]; + + // Optional. Maximum number of results to return. If unspecified, defaults + // to 100. If a value greater than 100 is provided, at most 100 results are + // returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListServingConfigs` call. + // Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListServingConfigs method. +message ListServingConfigsResponse { + // All the ServingConfigs for a given dataStore. + repeated ServingConfig serving_configs = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/session.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/session.proto new file mode 100644 index 000000000..6e5135080 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/session.proto @@ -0,0 +1,97 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SessionProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// External session proto definition. +message Session { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Session" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}" + }; + + // Represents a turn, including a query from the user and a + // answer from service. + message Turn { + // The user query. + Query query = 1; + + // The resource name of the answer to the user query. + // + // Only set if the answer generation (/answer API call) happened in this + // turn. + string answer = 2 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Answer" + }]; + } + + // Enumeration of the state of the session. + enum State { + // State is unspecified. + STATE_UNSPECIFIED = 0; + + // The session is currently open. + IN_PROGRESS = 1; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The state of the session. + State state = 2; + + // A unique identifier for tracking users. + string user_pseudo_id = 3; + + // Turns. + repeated Turn turns = 4; + + // Output only. The time the session started. + google.protobuf.Timestamp start_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the session finished. + google.protobuf.Timestamp end_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines a user inputed query. +message Query { + // Query content. + oneof content { + // Plain text. + string text = 2; + } + + // Unique Id for the query. + string query_id = 1; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine.proto index 73e18d6ec..b82ece3c8 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -53,8 +53,14 @@ message TargetSite { // Site search indexing failure reasons. message FailureReason { - message QuotaFailure {} + // Failed due to insufficient quota. + message QuotaFailure { + // This number is an estimation on how much total quota this project needs + // to successfully complete indexing. + int64 total_required_quota = 1; + } + // Failure reason. oneof failure { // Failed due to insufficient quota. QuotaFailure quota_failure = 1; @@ -108,7 +114,7 @@ message TargetSite { (google.api.field_behavior) = INPUT_ONLY ]; - // The type of the target site, e.g. whether the site is to be included or + // The type of the target site, e.g., whether the site is to be included or // excluded. Type type = 3; @@ -123,6 +129,9 @@ message TargetSite { // Output only. This is system-generated based on the provided_uri_pattern. string generated_uri_pattern = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Root domain of the provided_uri_pattern. + string root_domain_uri = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Site ownership and validity verification status. SiteVerificationInfo site_verification_info = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -152,7 +161,7 @@ message SiteVerificationInfo { // Site ownership pending verification or verification failed. UNVERIFIED = 2; - // Site exempt from verification, e.g. a public website that opens to all. + // Site exempt from verification, e.g., a public website that opens to all. EXEMPTED = 3; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto index 73c4d7c74..08988291d 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -275,7 +275,9 @@ message CreateTargetSiteMetadata { google.protobuf.Timestamp update_time = 2; } -// Request message for [SiteSearchEngineService.s][] method. +// Request message for +// [SiteSearchEngineService.BatchCreateTargetSites][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.BatchCreateTargetSites] +// method. message BatchCreateTargetSitesRequest { // Required. The parent resource shared by all TargetSites being created. // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/siteSearchEngine`. @@ -430,8 +432,9 @@ message ListTargetSitesResponse { } // Metadata related to the progress of the -// [SiteSearchEngineService.BatchCreateTargetSite][] operation. This will be -// returned by the google.longrunning.Operation.metadata field. +// [SiteSearchEngineService.BatchCreateTargetSites][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.BatchCreateTargetSites] +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. message BatchCreateTargetSiteMetadata { // Operation create time. google.protobuf.Timestamp create_time = 1; @@ -546,7 +549,7 @@ message RecrawlUrisResponse { // Details about why a particular URI failed to be crawled. Each FailureInfo // contains one FailureReason per CorpusType. message FailureInfo { - // Details about why crawling failed for a particular CorpusType, e.g. + // Details about why crawling failed for a particular CorpusType, e.g., // DESKTOP and MOBILE crawling may fail for different reasons. message FailureReason { // CorpusType for the failed crawling operation. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event.proto index 7ba96f7e2..1e9ec3159 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,7 +32,7 @@ option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; // UserEvent captures all metadata information Discovery Engine API needs to -// know about how end users interact with customers' website. +// know about how end users interact with your website. message UserEvent { // Required. User event type. Allowed values are: // @@ -74,6 +74,32 @@ message UserEvent { // for this field. string user_pseudo_id = 2 [(google.api.field_behavior) = REQUIRED]; + // The [Engine][google.cloud.discoveryengine.v1alpha.Engine] resource name, in + // the form of + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}`. + // + // Optional. Only required for + // [Engine][google.cloud.discoveryengine.v1alpha.Engine] produced user events. + // For example, user events from blended search. + string engine = 19 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + }]; + + // The [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] resource + // full name, of the form + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. + // + // Optional. Only required for user events whose data store can't by + // determined by + // [UserEvent.engine][google.cloud.discoveryengine.v1alpha.UserEvent.engine] + // or + // [UserEvent.documents][google.cloud.discoveryengine.v1alpha.UserEvent.documents]. + // If data store is set in the parent of write/import/collect user event + // requests, this field can be omitted. + string data_store = 20 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + }]; + // Only required for // [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1alpha.UserEventService.ImportUserEvents] // method. Timestamp of when the user event happened. @@ -146,9 +172,10 @@ message UserEvent { // conforming to https://google.aip.dev/160#filtering. // // Similarly, for `view-item-list` events that are generated from a - // [RecommendationService.RecommendRequest][], this field may be populated - // directly from [RecommendationService.RecommendRequest.filter][] conforming - // to https://google.aip.dev/160#filtering. + // [RecommendRequest][google.cloud.discoveryengine.v1alpha.RecommendRequest], + // this field may be populated directly from + // [RecommendRequest.filter][google.cloud.discoveryengine.v1alpha.RecommendRequest.filter] + // conforming to https://google.aip.dev/160#filtering. // // The value must be a UTF-8 encoded string with a length limit of 1,000 // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. @@ -195,7 +222,7 @@ message UserEvent { // A list of identifiers for the independent experiment groups this user event // belongs to. This is used to distinguish between user events associated with - // different experiment setups on the customer end. + // different experiment setups. repeated string tag_ids = 15; // The promotion IDs if this is an event associated with promotions. @@ -251,7 +278,7 @@ message PageInfo { // The most specific category associated with a category page. // // To represent full path of category, use '>' sign to separate different - // hierarchies. If '>' is part of the category name, please replace it with + // 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 @@ -419,7 +446,7 @@ message DocumentInfo { // Quantity of the Document associated with the user event. Defaults to 1. // - // For example, this field will be 2 if two quantities of the same Document + // For example, this field is 2 if two quantities of the same Document // are involved in a `add-to-cart` event. // // Required for events of the following event types: diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event_service.proto index 9919d67fc..bec240363 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1alpha/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,6 +50,10 @@ service UserEventService { post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" body: "user_event" } + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*}/userEvents:write" + body: "user_event" + } }; } @@ -87,7 +91,7 @@ service UserEventService { }; } - // Bulk import of User events. Request processing might be + // Bulk import of user events. Request processing might be // synchronous. Events that already exist are skipped. // Use this method for backfilling historical user events. // @@ -113,8 +117,16 @@ service UserEventService { // Request message for WriteUserEvent method. message WriteUserEventRequest { - // Required. The parent DataStore resource name, such as + // Required. The parent resource name. + // If the write user event action is applied in + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] level, the + // format is: // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. + // If the write user event action is applied in [Location][] level, for + // example, the event with + // [Document][google.cloud.discoveryengine.v1alpha.Document] across multiple + // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore], the format is: + // `projects/{project}/locations/{location}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -124,6 +136,10 @@ message WriteUserEventRequest { // Required. User event to write. optional UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; + + // If set to true, the user event is written asynchronously after + // validation, and the API responds without waiting for the write. + bool write_async = 3; } // Request message for CollectUserEvent method. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/BUILD.bazel b/third_party/googleapis/google/cloud/discoveryengine/v1beta/BUILD.bazel index 531f0ffb7..bad6c6511 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/BUILD.bazel @@ -9,37 +9,52 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "discoveryengine_proto", srcs = [ + "answer.proto", "common.proto", "completion.proto", "completion_service.proto", + "control.proto", + "control_service.proto", "conversation.proto", "conversational_search_service.proto", + "custom_tuning_model.proto", "data_store.proto", "data_store_service.proto", "document.proto", + "document_processing_config.proto", "document_service.proto", "engine.proto", "engine_service.proto", + "grounded_generation_service.proto", + "grounding.proto", "import_config.proto", + "project.proto", + "project_service.proto", "purge_config.proto", + "rank_service.proto", "recommendation_service.proto", "schema.proto", "schema_service.proto", "search_service.proto", + "search_tuning_service.proto", "serving_config.proto", "serving_config_service.proto", + "session.proto", "site_search_engine.proto", "site_search_engine_service.proto", "user_event.proto", @@ -67,12 +82,14 @@ proto_library_with_info( deps = [ ":discoveryengine_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -102,11 +119,13 @@ java_gapic_library( service_yaml = "discoveryengine_v1beta.yaml", test_deps = [ ":discoveryengine_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ ":discoveryengine_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) @@ -115,6 +134,8 @@ java_gapic_test( test_classes = [ "com.google.cloud.discoveryengine.v1beta.CompletionServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.CompletionServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.ControlServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.ControlServiceClientTest", "com.google.cloud.discoveryengine.v1beta.ConversationalSearchServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.ConversationalSearchServiceClientTest", "com.google.cloud.discoveryengine.v1beta.DataStoreServiceClientHttpJsonTest", @@ -123,12 +144,20 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1beta.DocumentServiceClientTest", "com.google.cloud.discoveryengine.v1beta.EngineServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.EngineServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.GroundedGenerationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.GroundedGenerationServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.ProjectServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.ProjectServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.RankServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.RankServiceClientTest", "com.google.cloud.discoveryengine.v1beta.RecommendationServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.RecommendationServiceClientTest", "com.google.cloud.discoveryengine.v1beta.SchemaServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.SchemaServiceClientTest", "com.google.cloud.discoveryengine.v1beta.SearchServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.SearchServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.SearchTuningServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.SearchTuningServiceClientTest", "com.google.cloud.discoveryengine.v1beta.ServingConfigServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.ServingConfigServiceClientTest", "com.google.cloud.discoveryengine.v1beta.SiteSearchEngineServiceClientHttpJsonTest", @@ -155,6 +184,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -189,6 +219,7 @@ go_gapic_library( deps = [ ":discoveryengine_go_proto", "//google/api:httpbody_go_proto", + "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -212,6 +243,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -251,6 +283,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -288,6 +321,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -318,6 +352,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -364,6 +399,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -374,6 +410,7 @@ load( csharp_proto_library( name = "discoveryengine_csharp_proto", + extra_opts = [], deps = [":discoveryengine_proto"], ) @@ -410,6 +447,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/answer.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/answer.proto new file mode 100644 index 000000000..6f444c818 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/answer.proto @@ -0,0 +1,337 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "AnswerProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Defines an answer. +message Answer { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Answer" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}/answers/{answer}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}/answers/{answer}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}/answers/{answer}" + }; + + // Citation info for a segment. + message Citation { + // Index indicates the start of the segment, measured in bytes (UTF-8 + // unicode). + int64 start_index = 1; + + // End of the attributed segment, exclusive. + int64 end_index = 2; + + // Citation sources for the attributed segment. + repeated CitationSource sources = 3; + } + + // Citation source. + message CitationSource { + // ID of the citation source. + string reference_id = 1; + } + + // Reference. + message Reference { + // Unstructured document information. + message UnstructuredDocumentInfo { + // Chunk content. + message ChunkContent { + // Chunk textual content. + string content = 1; + + // Page identifier. + string page_identifier = 2; + } + + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // List of cited chunk contents derived from document content. + repeated ChunkContent chunk_contents = 4; + + // The structured JSON metadata for the document. + // It is populated from the struct data from the Chunk in search result. + google.protobuf.Struct struct_data = 5; + } + + // Chunk information. + message ChunkInfo { + // Document metadata. + message DocumentMetadata { + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // Page identifier. + string page_identifier = 4; + + // The structured JSON metadata for the document. + // It is populated from the struct data from the Chunk in search result. + google.protobuf.Struct struct_data = 5; + } + + // Chunk resource name. + string chunk = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + }]; + + // Chunk textual content. + string content = 2; + + // Relevance score. + optional float relevance_score = 3; + + // Document metadata. + DocumentMetadata document_metadata = 4; + } + + // Search result content. + oneof content { + // Unstructured document information. + UnstructuredDocumentInfo unstructured_document_info = 1; + + // Chunk information. + ChunkInfo chunk_info = 2; + } + } + + // Step information. + message Step { + // Action. + message Action { + // Search action. + message SearchAction { + // The query to search. + string query = 1; + } + + // Observation. + message Observation { + message SearchResult { + // Snippet information. + message SnippetInfo { + // Snippet content. + string snippet = 1; + + // Status of the snippet defined by the search team. + string snippet_status = 2; + } + + // Chunk information. + message ChunkInfo { + // Chunk resource name. + string chunk = 1; + + // Chunk textual content. + string content = 2; + + // Relevance score. + optional float relevance_score = 3; + } + + // Document resource name. + string document = 1; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // If citation_type is DOCUMENT_LEVEL_CITATION, populate document + // level snippets. + repeated SnippetInfo snippet_info = 4; + + // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, + // populate chunk info. + repeated ChunkInfo chunk_info = 5; + } + + // Search results observed by the search action, it can be snippets info + // or chunk info, depending on the citation type set by the user. + repeated SearchResult search_results = 2; + } + + // The action. + oneof action { + // Search action. + SearchAction search_action = 2; + } + + // Observation. + Observation observation = 3; + } + + // Enumeration of the state of the step. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Step is currently in progress. + IN_PROGRESS = 1; + + // Step currently failed. + FAILED = 2; + + // Step has succeeded. + SUCCEEDED = 3; + } + + // The state of the step. + State state = 1; + + // The description of the step. + string description = 2; + + // The thought of the step. + string thought = 3; + + // Actions. + repeated Action actions = 4; + } + + // Query understanding information. + message QueryUnderstandingInfo { + // Query classification information. + message QueryClassificationInfo { + // Query classification types. + enum Type { + // Unspecified query classification type. + TYPE_UNSPECIFIED = 0; + + // Adversarial query classification type. + ADVERSARIAL_QUERY = 1; + + // Non-answer-seeking query classification type. + NON_ANSWER_SEEKING_QUERY = 2; + } + + // Query classification type. + Type type = 1; + + // Classification output. + bool positive = 2; + } + + // Query classification information. + repeated QueryClassificationInfo query_classification_info = 1; + } + + // Enumeration of the state of the answer generation. + enum State { + // Unknown. + STATE_UNSPECIFIED = 0; + + // Answer generation is currently in progress. + IN_PROGRESS = 1; + + // Answer generation currently failed. + FAILED = 2; + + // Answer generation has succeeded. + SUCCEEDED = 3; + } + + // An enum for answer skipped reasons. + enum AnswerSkippedReason { + // Default value. The answer skipped reason is not specified. + ANSWER_SKIPPED_REASON_UNSPECIFIED = 0; + + // The adversarial query ignored case. + ADVERSARIAL_QUERY_IGNORED = 1; + + // The non-answer seeking query ignored case. + NON_ANSWER_SEEKING_QUERY_IGNORED = 2; + + // The out-of-domain query ignored case. + // + // Google skips the answer if there are no high-relevance search results. + OUT_OF_DOMAIN_QUERY_IGNORED = 3; + + // The potential policy violation case. + // + // Google skips the answer if there is a potential policy violation + // detected. This includes content that may be violent or toxic. + POTENTIAL_POLICY_VIOLATION = 4; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*/answers/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The state of the answer generation. + State state = 2; + + // The textual answer. + string answer_text = 3; + + // Citations. + repeated Citation citations = 4; + + // References. + repeated Reference references = 5; + + // Suggested related questions. + repeated string related_questions = 6; + + // Answer generation steps. + repeated Step steps = 7; + + // Query understanding information. + QueryUnderstandingInfo query_understanding_info = 10; + + // Additional answer-skipped reasons. This provides the reason for ignored + // cases. If nothing is skipped, this field is not set. + repeated AnswerSkippedReason answer_skipped_reasons = 11; + + // Output only. Answer creation timestamp. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Answer completed timestamp. + google.protobuf.Timestamp complete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/common.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/common.proto index b100949cd..640423d8f 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/common.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,6 +35,27 @@ option (google.api.resource_definition) = { type: "discoveryengine.googleapis.com/Collection" pattern: "projects/{project}/locations/{location}/collections/{collection}" }; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/Location" + pattern: "projects/{project}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/GroundingConfig" + pattern: "projects/{project}/locations/{location}/groundingConfigs/{grounding_config}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/RankingConfig" + pattern: "projects/{project}/locations/{location}/rankingConfigs/{ranking_config}" +}; +option (google.api.resource_definition) = { + type: "healthcare.googleapis.com/FhirStore" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}" +}; +option (google.api.resource_definition) = { + type: "discoveryengine.googleapis.com/Chunk" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" +}; // The industry vertical associated with the // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. @@ -48,6 +69,9 @@ enum IndustryVertical { // The media industry vertical. MEDIA = 2; + + // The healthcare FHIR vertical. + HEALTHCARE_FHIR = 7; } // The type of solution. @@ -63,10 +87,31 @@ enum SolutionType { // Used for use cases related to the Generative AI agent. SOLUTION_TYPE_CHAT = 3; + + // Used for use cases related to the Generative Chat agent. + // It's used for Generative chat engine only, the associated data stores + // must enrolled with `SOLUTION_TYPE_CHAT` solution. + SOLUTION_TYPE_GENERATIVE_CHAT = 4; +} + +// Defines a further subdivision of `SolutionType`. +// Specifically applies to +// [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_SEARCH]. +enum SearchUseCase { + // Value used when unset. Will not occur in CSS. + SEARCH_USE_CASE_UNSPECIFIED = 0; + + // Search use case. Expects the traffic has a non-empty + // [query][google.cloud.discoveryengine.v1beta.SearchRequest.query]. + SEARCH_USE_CASE_SEARCH = 1; + + // Browse use case. Expects the traffic has an empty + // [query][google.cloud.discoveryengine.v1beta.SearchRequest.query]. + SEARCH_USE_CASE_BROWSE = 2; } // Tiers of search features. Different tiers might have different -// pricing. To learn more, please check the pricing documentation. +// pricing. To learn more, check the pricing documentation. enum SearchTier { // Default value when the enum is unspecified. This is invalid to use. SEARCH_TIER_UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion.proto index bd724d277..8e13527cd 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion_service.proto index 62db2c877..fc65f6baf 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/control.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/control.proto new file mode 100644 index 000000000..d9045b7c0 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/control.proto @@ -0,0 +1,216 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/common.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Defines circumstances to be checked before allowing a behavior +message Condition { + // Matcher for search request query + message QueryTerm { + // The specific query value to match against + // + // Must be lowercase, must be UTF-8. + // Can have at most 3 space separated terms if full_match is true. + // Cannot be an empty string. + // Maximum length of 5000 characters. + string value = 1; + + // Whether the search query needs to exactly match the query term. + bool full_match = 2; + } + + // Used for time-dependent conditions. + message TimeRange { + // Start of time range. + // + // Range is inclusive. + google.protobuf.Timestamp start_time = 1; + + // End of time range. + // + // Range is inclusive. + // Must be in the future. + google.protobuf.Timestamp end_time = 2; + } + + // Search only + // A list of terms to match the query on. + // + // Maximum of 10 query terms. + repeated QueryTerm query_terms = 2; + + // Range of time(s) specifying when condition is active. + // + // Maximum of 10 time ranges. + repeated TimeRange active_time_range = 3; +} + +// Defines a conditioned behavior to employ during serving. +// Must be attached to a +// [ServingConfig][google.cloud.discoveryengine.v1beta.ServingConfig] to be +// considered at serving time. Permitted actions dependent on `SolutionType`. +message Control { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Control" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/controls/{control}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/controls/{control}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/controls/{control}" + }; + + // Adjusts order of products in returned list. + message BoostAction { + // Required. Strength of the boost, which should be in [-1, 1]. Negative + // boost means demotion. Default is 0.0 (No-op). + float boost = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which products to apply the boost to. + // + // If no filter is provided all products will be boosted (No-op). + // Syntax documentation: + // https://cloud.google.com/retail/docs/filter-and-order + // Maximum length is 5000 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which data store's documents can be boosted by this + // control. Full data store name e.g. + // projects/123/locations/global/collections/default_collection/dataStores/default_data_store + string data_store = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + + // Specified which products may be included in results. + // Uses same filter as boost. + message FilterAction { + // Required. A filter to apply on the matching condition results. + // + // Required + // Syntax documentation: + // https://cloud.google.com/retail/docs/filter-and-order + // Maximum length is 5000 characters. Otherwise an INVALID + // ARGUMENT error is thrown. + string filter = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies which data store's documents can be filtered by this + // control. Full data store name e.g. + // projects/123/locations/global/collections/default_collection/dataStores/default_data_store + string data_store = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + + // Redirects a shopper to the provided URI. + message RedirectAction { + // Required. The URI to which the shopper will be redirected. + // + // Required. + // URI must have length equal or less than 2000 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string redirect_uri = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Creates a set of terms that will act as synonyms of one another. + // + // Example: "happy" will also be considered as "glad", "glad" will also be + // considered as "happy". + message SynonymsAction { + // Defines a set of synonyms. + // Can specify up to 100 synonyms. + // Must specify at least 2 synonyms. Otherwise an INVALID ARGUMENT error is + // thrown. + repeated string synonyms = 1; + } + + // Actions are restricted by Vertical and Solution + // + // Required. + oneof action { + // Defines a boost-type control + BoostAction boost_action = 6; + + // Defines a filter-type control + // Currently not supported by Recommendation + FilterAction filter_action = 7; + + // Defines a redirect-type control. + RedirectAction redirect_action = 9; + + // Treats a group of terms as synonyms of one another. + SynonymsAction synonyms_action = 10; + } + + // Immutable. Fully qualified name + // `projects/*/locations/global/dataStore/*/controls/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Human readable name. The identifier used in UI views. + // + // Must be UTF-8 encoded string. Length limit is 128 characters. + // Otherwise an INVALID ARGUMENT error is thrown. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. List of all + // [ServingConfig][google.cloud.discoveryengine.v1beta.ServingConfig] ids this + // control is attached to. May take up to 10 minutes to update after changes. + repeated string associated_serving_config_ids = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. What solution the control belongs to. + // + // Must be compatible with vertical of resource. + // Otherwise an INVALID ARGUMENT error is thrown. + SolutionType solution_type = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Specifies the use case for the control. + // Affects what condition fields can be set. + // Only applies to + // [SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_SEARCH]. + // Currently only allow one use case per control. + // Must be set when solution_type is + // [SolutionType.SOLUTION_TYPE_SEARCH][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_SEARCH]. + repeated SearchUseCase use_cases = 8; + + // Determines when the associated action will trigger. + // + // Omit to always apply the action. + // Currently only a single condition may be specified. + // Otherwise an INVALID ARGUMENT error is thrown. + repeated Condition conditions = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/control_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/control_service.proto new file mode 100644 index 000000000..663f9fccc --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/control_service.proto @@ -0,0 +1,236 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/control.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ControlServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Service for performing CRUD operations on Controls. +// Controls allow for custom logic to be implemented in the serving path. +// Controls need to be attached to a Serving Config to be considered during a +// request. +service ControlService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Control. + // + // By default 1000 controls are allowed for a data store. + // A request can be submitted to adjust this limit. + // If the [Control][google.cloud.discoveryengine.v1beta.Control] to create + // already exists, an ALREADY_EXISTS error is returned. + rpc CreateControl(CreateControlRequest) returns (Control) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/controls" + body: "control" + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + body: "control" + } + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + body: "control" + } + }; + option (google.api.method_signature) = "parent,control,control_id"; + } + + // Deletes a Control. + // + // If the [Control][google.cloud.discoveryengine.v1beta.Control] to delete + // does not exist, a NOT_FOUND error is returned. + rpc DeleteControl(DeleteControlRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=projects/*/locations/*/dataStores/*/controls/*}" + additional_bindings { + delete: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + } + additional_bindings { + delete: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Control. + // + // [Control][google.cloud.discoveryengine.v1beta.Control] action type cannot + // be changed. If the [Control][google.cloud.discoveryengine.v1beta.Control] + // to update does not exist, a NOT_FOUND error is returned. + rpc UpdateControl(UpdateControlRequest) returns (Control) { + option (google.api.http) = { + patch: "/v1beta/{control.name=projects/*/locations/*/dataStores/*/controls/*}" + body: "control" + additional_bindings { + patch: "/v1beta/{control.name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + body: "control" + } + additional_bindings { + patch: "/v1beta/{control.name=projects/*/locations/*/collections/*/engines/*/controls/*}" + body: "control" + } + }; + option (google.api.method_signature) = "control,update_mask"; + } + + // Gets a Control. + rpc GetControl(GetControlRequest) returns (Control) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/dataStores/*/controls/*}" + additional_bindings { + get: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/controls/*}" + } + additional_bindings { + get: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/controls/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Controls by their parent + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. + rpc ListControls(ListControlsRequest) returns (ListControlsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/controls" + additional_bindings { + get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/controls" + } + additional_bindings { + get: "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/controls" + } + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request for CreateControl method. +message CreateControlRequest { + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // or + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/Control" + } + ]; + + // Required. The Control to create. + Control control = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the Control, which will become the final + // component of the Control's resource name. + // + // This value must be within 1-63 characters. + // Valid characters are /[a-z][0-9]-_/. + string control_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateControl method. +message UpdateControlRequest { + // Required. The Control to update. + Control control = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [Control][google.cloud.discoveryengine.v1beta.Control] to update. The + // following are NOT supported: + // + // * [Control.name][google.cloud.discoveryengine.v1beta.Control.name] + // * [Control.solution_type][google.cloud.discoveryengine.v1beta.Control.solution_type] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for DeleteControl method. +message DeleteControlRequest { + // Required. The resource name of the Control to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Control" + } + ]; +} + +// Request for GetControl method. +message GetControlRequest { + // Required. The resource name of the Control to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Control" + } + ]; +} + +// Request for ListControls method. +message ListControlsRequest { + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // or + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "discoveryengine.googleapis.com/Control" + } + ]; + + // Optional. Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListControls` call. + // Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter to apply on the list results. Supported features: + // + // * List all the products under the parent branch if + // [filter][google.cloud.discoveryengine.v1beta.ListControlsRequest.filter] is + // unset. Currently this field is unsupported. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListControls method. +message ListControlsResponse { + // All the Controls for a given data store. + repeated Control controls = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversation.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversation.proto index a738ff839..e2d999346 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversation.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -52,9 +52,9 @@ message Conversation { } // Immutable. Fully qualified name - // `project/*/locations/global/collections/{collection}/dataStore/*/conversations/*` + // `projects/{project}/locations/global/collections/{collection}/dataStore/*/conversations/*` // or - // `project/*/locations/global/collections/{collection}/engines/*/conversations/*`. + // `projects/{project}/locations/global/collections/{collection}/engines/*/conversations/*`. string name = 1 [(google.api.field_behavior) = IMMUTABLE]; // The state of the Conversation. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversational_search_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversational_search_service.proto index 261db57e1..dcdc48bb5 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversational_search_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/conversational_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,8 +20,10 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/answer.proto"; import "google/cloud/discoveryengine/v1beta/conversation.proto"; import "google/cloud/discoveryengine/v1beta/search_service.proto"; +import "google/cloud/discoveryengine/v1beta/session.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -147,6 +149,123 @@ service ConversationalSearchService { }; option (google.api.method_signature) = "parent"; } + + // Answer query method. + rpc AnswerQuery(AnswerQueryRequest) returns (AnswerQueryResponse) { + option (google.api.http) = { + post: "/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:answer" + body: "*" + additional_bindings { + post: "/v1beta/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:answer" + body: "*" + } + additional_bindings { + post: "/v1beta/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:answer" + body: "*" + } + }; + } + + // Gets a Answer. + rpc GetAnswer(GetAnswerRequest) returns (Answer) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/dataStores/*/sessions/*/answers/*}" + additional_bindings { + get: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*/answers/*}" + } + additional_bindings { + get: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/answers/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Creates a Session. + // + // If the [Session][google.cloud.discoveryengine.v1beta.Session] to create + // already exists, an ALREADY_EXISTS error is returned. + rpc CreateSession(CreateSessionRequest) returns (Session) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/sessions" + body: "session" + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + body: "session" + } + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + body: "session" + } + }; + option (google.api.method_signature) = "parent,session"; + } + + // Deletes a Session. + // + // If the [Session][google.cloud.discoveryengine.v1beta.Session] to delete + // does not exist, a NOT_FOUND error is returned. + rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=projects/*/locations/*/dataStores/*/sessions/*}" + additional_bindings { + delete: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + } + additional_bindings { + delete: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Session. + // + // [Session][google.cloud.discoveryengine.v1beta.Session] action type cannot + // be changed. If the [Session][google.cloud.discoveryengine.v1beta.Session] + // to update does not exist, a NOT_FOUND error is returned. + rpc UpdateSession(UpdateSessionRequest) returns (Session) { + option (google.api.http) = { + patch: "/v1beta/{session.name=projects/*/locations/*/dataStores/*/sessions/*}" + body: "session" + additional_bindings { + patch: "/v1beta/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + body: "session" + } + additional_bindings { + patch: "/v1beta/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + body: "session" + } + }; + option (google.api.method_signature) = "session,update_mask"; + } + + // Gets a Session. + rpc GetSession(GetSessionRequest) returns (Session) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/dataStores/*/sessions/*}" + additional_bindings { + get: "/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}" + } + additional_bindings { + get: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all Sessions by their parent + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. + rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/sessions" + additional_bindings { + get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions" + } + additional_bindings { + get: "/v1beta/{parent=projects/*/locations/*/collections/*/engines/*}/sessions" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for @@ -223,6 +342,11 @@ message ConverseConversationRequest { // operators, see // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) string filter = 9; + + // Boost specification to boost certain documents in search results which may + // affect the converse response. For more information on boosting, see + // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + SearchRequest.BoostSpec boost_spec = 10; } // Response message for @@ -343,3 +467,459 @@ message ListConversationsResponse { // Pagination token, if not returned indicates the last page. string next_page_token = 2; } + +// Request message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery] +// method. +message AnswerQueryRequest { + // Safety specification. + message SafetySpec { + // Enable the safety filtering on the answer response. It is false by + // default. + bool enable = 1; + } + + // Related questions specification. + message RelatedQuestionsSpec { + // Enable related questions feature if true. + bool enable = 1; + } + + // Answer generation specification. + message AnswerGenerationSpec { + // Answer Generation Model specification. + message ModelSpec { + // Model version. If not set, it will use the default stable model. + // Allowed values are: stable, preview. + string model_version = 1; + } + + // Answer generation prompt specification. + message PromptSpec { + // Customized preamble. + string preamble = 1; + } + + // Answer generation model specification. + ModelSpec model_spec = 1; + + // Answer generation prompt specification. + PromptSpec prompt_spec = 2; + + // Specifies whether to include citation metadata in the answer. The default + // value is `false`. + bool include_citations = 3; + + // Language code for Answer. Use language tags defined by + // [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + // Note: This is an experimental feature. + string answer_language_code = 4; + + // Specifies whether to filter out adversarial queries. The default value + // is `false`. + // + // Google employs search-query classification to detect adversarial + // queries. No answer is returned if the search query is classified as an + // adversarial query. For example, a user might ask a question regarding + // negative comments about the company or submit a query designed to + // generate unsafe, policy-violating output. If this field is set to + // `true`, we skip generating answers for adversarial queries and return + // fallback messages instead. + bool ignore_adversarial_query = 5; + + // Specifies whether to filter out queries that are not answer-seeking. + // The default value is `false`. + // + // Google employs search-query classification to detect answer-seeking + // queries. No answer is returned if the search query is classified as a + // non-answer seeking query. If this field is set to `true`, we skip + // generating answers for non-answer seeking queries and return + // fallback messages instead. + bool ignore_non_answer_seeking_query = 6; + + // Specifies whether to filter out queries that have low relevance. + // + // If this field is set to `false`, all search results are used regardless + // of relevance to generate answers. If set to `true` or unset, the behavior + // will be determined automatically by the service. + optional bool ignore_low_relevant_content = 7; + } + + // Search specification. + message SearchSpec { + // Search parameters. + message SearchParams { + // Number of search results to return. + // The default value is 10. + int32 max_return_results = 1; + + // The filter syntax consists of an expression language for constructing + // a predicate from one or more fields of the documents being filtered. + // Filter expression is case-sensitive. This will be used to filter + // search results which may affect the Answer response. + // + // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. + // + // Filtering in Vertex AI Search is done by mapping the LHS filter key + // to a key property defined in the Vertex AI Search backend -- this + // mapping is defined by the customer in their schema. For example a + // media customers might have a field 'name' in their schema. In this + // case the filter would look like this: filter --> name:'ANY("king + // kong")' + // + // For more information about filtering including syntax and filter + // operators, see + // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) + string filter = 2; + + // Boost specification to boost certain documents in search results which + // may affect the answer query response. For more information on boosting, + // see [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + SearchRequest.BoostSpec boost_spec = 3; + + // The order in which documents are returned. Documents can be ordered + // by a field in an + // [Document][google.cloud.discoveryengine.v1beta.Document] object. Leave + // it unset if ordered by relevance. `order_by` expression is + // case-sensitive. For more information on ordering, see + // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) + // + // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. + string order_by = 4; + + // Specs defining dataStores to filter on in a search call and + // configurations for those dataStores. This is only considered for + // engines with multiple dataStores use case. For single dataStore within + // an engine, they should use the specs at the top level. + repeated SearchRequest.DataStoreSpec data_store_specs = 7; + } + + // Search result list. + message SearchResultList { + // Search result. + message SearchResult { + // Unstructured document information. + message UnstructuredDocumentInfo { + // Document context. + message DocumentContext { + // Page identifier. + string page_identifier = 1; + + // Document content. + string content = 2; + } + + // Extractive segment. + // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#extractive-segments) + message ExtractiveSegment { + // Page identifier. + string page_identifier = 1; + + // Extractive segment content. + string content = 2; + } + + // Extractive answer. + // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#get-answers) + message ExtractiveAnswer { + // Page identifier. + string page_identifier = 1; + + // Extractive answer content. + string content = 2; + } + + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // URI for the document. + string uri = 2; + + // Title. + string title = 3; + + // List of document contexts. + repeated DocumentContext document_contexts = 4; + + // List of extractive segments. + repeated ExtractiveSegment extractive_segments = 5; + + // List of extractive answers. + repeated ExtractiveAnswer extractive_answers = 6; + } + + // Chunk information. + message ChunkInfo { + // Chunk resource name. + string chunk = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Chunk" + }]; + + // Chunk textual content. + string content = 2; + } + + // Search result content. + oneof content { + // Unstructured document information. + UnstructuredDocumentInfo unstructured_document_info = 1; + + // Chunk information. + ChunkInfo chunk_info = 2; + } + } + + // Search results. + repeated SearchResult search_results = 1; + } + + // Search parameters to control the search behavior. + // Or provide search result list to generate answer. + oneof input { + // Search parameters. + SearchParams search_params = 1; + + // Search result list. + SearchResultList search_result_list = 2; + } + } + + // Query understanding specification. + message QueryUnderstandingSpec { + // Query classification specification. + message QueryClassificationSpec { + // Query classification types. + enum Type { + // Unspecified query classification type. + TYPE_UNSPECIFIED = 0; + + // Adversarial query classification type. + ADVERSARIAL_QUERY = 1; + + // Non-answer-seeking query classification type. + NON_ANSWER_SEEKING_QUERY = 2; + } + + // Enabled query classification types. + repeated Type types = 1; + } + + // Query rephraser specification. + message QueryRephraserSpec { + // Disable query rephraser. + bool disable = 1; + + // Max rephrase steps. + // The max number is 5 steps. + // If not set or set to < 1, it will be set to 1 by default. + int32 max_rephrase_steps = 2; + } + + // Query classification specification. + QueryClassificationSpec query_classification_spec = 1; + + // Query rephraser specification. + QueryRephraserSpec query_rephraser_spec = 2; + } + + // Required. The resource name of the Search serving config, such as + // `projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config`, + // or + // `projects/*/locations/global/collections/default_collection/dataStores/*/servingConfigs/default_serving_config`. + // This field is used to identify the serving configuration name, set + // of models used to make the search. + string serving_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/ServingConfig" + } + ]; + + // Required. Current user query. + Query query = 2 [(google.api.field_behavior) = REQUIRED]; + + // The session resource name. Not required. + // + // When session field is not set, the API is in sessionless mode. + // + // We support auto session mode: users can use the wildcard symbol `-` as + // session ID. A new ID will be automatically generated and assigned. + string session = 3 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + }]; + + // Model specification. + SafetySpec safety_spec = 4; + + // Related questions specification. + RelatedQuestionsSpec related_questions_spec = 5; + + // Answer generation specification. + AnswerGenerationSpec answer_generation_spec = 7; + + // Search specification. + SearchSpec search_spec = 8; + + // Query understanding specification. + QueryUnderstandingSpec query_understanding_spec = 9; + + // Asynchronous mode control. + // + // If enabled, the response will be returned with answer/session resource + // name without final answer. The API users need to do the polling to get + // the latest status of answer/session by calling + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer] + // or + // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetSession] + // method. + bool asynchronous_mode = 10; + + // 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 field should NOT have a fixed value such as `unknown_visitor`. + // + // The field must be a UTF-8 encoded string with a length limit of 128 + // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. + string user_pseudo_id = 12; +} + +// Response message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery] +// method. +message AnswerQueryResponse { + // Answer resource object. + // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, + // use [Answer.name][google.cloud.discoveryengine.v1beta.Answer.name] to fetch + // answer information using + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer] + // API. + Answer answer = 1; + + // Session resource object. + // It will be only available when session field is set and valid in the + // [AnswerQueryRequest][google.cloud.discoveryengine.v1beta.AnswerQueryRequest] + // request. + Session session = 2; + + // A global unique ID used for logging. + string answer_query_token = 3; +} + +// Request for GetAnswer method. +message GetAnswerRequest { + // Required. The resource name of the Answer to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/engines/{engine_id}/sessions/{session_id}/answers/{answer_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Answer" + } + ]; +} + +// Request for CreateSession method. +message CreateSessionRequest { + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. The session to create. + Session session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateSession method. +message UpdateSessionRequest { + // Required. The Session to update. + Session session = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [Session][google.cloud.discoveryengine.v1beta.Session] to update. The + // following are NOT supported: + // + // * [Session.name][google.cloud.discoveryengine.v1beta.Session.name] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for DeleteSession method. +message DeleteSessionRequest { + // Required. The resource name of the Session to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + } + ]; +} + +// Request for GetSession method. +message GetSessionRequest { + // Required. The resource name of the Session to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + } + ]; +} + +// Request for ListSessions method. +message ListSessionsRequest { + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListSessions` call. + // Provide this to retrieve the subsequent page. + string page_token = 3; + + // A filter to apply on the list results. The supported features are: + // user_pseudo_id, state. + // + // Example: + // "user_pseudo_id = some_id" + string filter = 4; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // * `update_time` + // * `create_time` + // * `session_name` + // + // Example: + // "update_time desc" + // "create_time" + string order_by = 5; +} + +// Response for ListSessions method. +message ListSessionsResponse { + // All the Sessions for a given data store. + repeated Session sessions = 1; + + // Pagination token, if not returned indicates the last page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto new file mode 100644 index 000000000..165d28032 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto @@ -0,0 +1,87 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "CustomTuningModelProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Metadata that describes a custom tuned model. +message CustomTuningModel { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/CustomTuningModel" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}" + }; + + // The state of the model. + enum ModelState { + // Default value. + MODEL_STATE_UNSPECIFIED = 0; + + // The model is in a paused training state. + TRAINING_PAUSED = 1; + + // The model is currently training. + TRAINING = 2; + + // The model has successfully completed training. + TRAINING_COMPLETE = 3; + + // The model is ready for serving. + READY_FOR_SERVING = 4; + + // The model training failed. + TRAINING_FAILED = 5; + } + + // Required. The fully qualified resource name of the model. + // + // Format: + // `projects/{project_number}/locations/{location}/collections/{collection}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}` + // model must be an alpha-numerical string with limit of 40 characters. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/CustomTuningModel" + } + ]; + + // The display name of the model. + string display_name = 2; + + // The version of the model. + int64 model_version = 3; + + // The state that the model is in (e.g.`TRAINING` or `TRAINING_FAILED`). + ModelState model_state = 4; + + // Timestamp the Model was created at. + google.protobuf.Timestamp create_time = 5; + + // Timestamp the model training was initiated. + google.protobuf.Timestamp training_start_time = 6; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store.proto index 200927d3e..f45585131 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ package google.cloud.discoveryengine.v1beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1beta/common.proto"; +import "google/cloud/discoveryengine/v1beta/document_processing_config.proto"; +import "google/cloud/discoveryengine/v1beta/schema.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; @@ -95,4 +97,24 @@ message DataStore { // [DataStore][google.cloud.discoveryengine.v1beta.DataStore] was created at. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Configuration for Document understanding and enrichment. + DocumentProcessingConfig document_processing_config = 27; + + // The start schema to use for this + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore] when + // provisioning it. If unset, a default vertical specialized schema will be + // used. + // + // This field is only used by [CreateDataStore][] API, and will be ignored if + // used in other APIs. This field will be omitted from all API responses + // including [CreateDataStore][] API. To retrieve a schema of a + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore], use + // [SchemaService.GetSchema][google.cloud.discoveryengine.v1beta.SchemaService.GetSchema] + // API instead. + // + // The provided schema will be validated against certain rules on schema. + // Learn more from [this + // doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema). + Schema starting_schema = 28; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store_service.proto index 6c1ac9663..6709fe6f1 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/data_store_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -227,8 +227,8 @@ message ListDataStoresRequest { // INVALID_ARGUMENT error is returned. string page_token = 3; - // Filter by solution type. For example: filter = - // 'solution_type:SOLUTION_TYPE_SEARCH' + // Filter by solution type . + // For example: `filter = 'solution_type:SOLUTION_TYPE_SEARCH'` string filter = 4; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json b/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json index 2fc0d0519..cf0c64df0 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json @@ -3,8 +3,8 @@ { "name": [ { "service": "google.cloud.discoveryengine.v1beta.CompletionService" }, - { "service": "google.cloud.discoveryengine.v1beta.RecommendationService" }, - { "service": "google.cloud.discoveryengine.v1beta.SearchService" } + { "service": "google.cloud.discoveryengine.v1beta.GroundedGenerationService" }, + { "service": "google.cloud.discoveryengine.v1beta.RecommendationService" } ], "timeout": "5s", "retryPolicy": { @@ -16,9 +16,13 @@ }, { "name": [ + { "service": "google.cloud.discoveryengine.v1beta.ControlService" }, { "service": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" }, { "service": "google.cloud.discoveryengine.v1beta.DocumentService" }, + { "service": "google.cloud.discoveryengine.v1beta.ProjectService" }, + { "service": "google.cloud.discoveryengine.v1beta.RankService" }, { "service": "google.cloud.discoveryengine.v1beta.SchemaService" }, + { "service": "google.cloud.discoveryengine.v1beta.SearchService" }, { "service": "google.cloud.discoveryengine.v1beta.UserEventService" }, { "service": "google.longrunning.Operations"} ], diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml b/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml index a915de076..aeceb7974 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml @@ -5,13 +5,18 @@ title: Discovery Engine API apis: - name: google.cloud.discoveryengine.v1beta.CompletionService +- name: google.cloud.discoveryengine.v1beta.ControlService - name: google.cloud.discoveryengine.v1beta.ConversationalSearchService - name: google.cloud.discoveryengine.v1beta.DataStoreService - name: google.cloud.discoveryengine.v1beta.DocumentService - name: google.cloud.discoveryengine.v1beta.EngineService +- name: google.cloud.discoveryengine.v1beta.GroundedGenerationService +- name: google.cloud.discoveryengine.v1beta.ProjectService +- name: google.cloud.discoveryengine.v1beta.RankService - name: google.cloud.discoveryengine.v1beta.RecommendationService - name: google.cloud.discoveryengine.v1beta.SchemaService - name: google.cloud.discoveryengine.v1beta.SearchService +- name: google.cloud.discoveryengine.v1beta.SearchTuningService - name: google.cloud.discoveryengine.v1beta.ServingConfigService - name: google.cloud.discoveryengine.v1beta.SiteSearchEngineService - name: google.cloud.discoveryengine.v1beta.UserEventService @@ -22,6 +27,7 @@ types: - name: google.cloud.discoveryengine.logging.ErrorLog - name: google.cloud.discoveryengine.v1beta.BatchCreateTargetSiteMetadata - name: google.cloud.discoveryengine.v1beta.BatchCreateTargetSitesResponse +- name: google.cloud.discoveryengine.v1beta.Control - name: google.cloud.discoveryengine.v1beta.CreateDataStoreMetadata - name: google.cloud.discoveryengine.v1beta.CreateEngineMetadata - name: google.cloud.discoveryengine.v1beta.CreateSchemaMetadata @@ -42,12 +48,19 @@ types: - name: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata - name: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse +- name: google.cloud.discoveryengine.v1beta.ListCustomModelsResponse +- name: google.cloud.discoveryengine.v1beta.Project +- name: google.cloud.discoveryengine.v1beta.ProvisionProjectMetadata - name: google.cloud.discoveryengine.v1beta.PurgeDocumentsMetadata - name: google.cloud.discoveryengine.v1beta.PurgeDocumentsResponse - name: google.cloud.discoveryengine.v1beta.PurgeSuggestionDenyListEntriesMetadata - name: google.cloud.discoveryengine.v1beta.PurgeSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1beta.Schema - name: google.cloud.discoveryengine.v1beta.TargetSite +- name: google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata +- name: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse +- name: google.cloud.discoveryengine.v1beta.TuneEngineMetadata +- name: google.cloud.discoveryengine.v1beta.TuneEngineResponse - name: google.cloud.discoveryengine.v1beta.UpdateSchemaMetadata - name: google.cloud.discoveryengine.v1beta.UpdateTargetSiteMetadata @@ -56,6 +69,12 @@ documentation: http: rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v1beta/{name=projects/*/locations/*/collections/*/dataStores/*/branches/*/operations/*}:cancel' + body: '*' + additional_bindings: + - post: '/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}:cancel' + body: '*' - selector: google.longrunning.Operations.GetOperation get: '/v1beta/{name=projects/*/locations/*/collections/*/dataConnector/operations/*}' additional_bindings: @@ -95,6 +114,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1beta.ControlService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.discoveryengine.v1beta.ConversationalSearchService.*' oauth: canonical_scopes: |- @@ -111,6 +134,18 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1beta.ProjectService.ProvisionProject + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1beta.RankService.Rank + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.discoveryengine.v1beta.RecommendationService.Recommend oauth: canonical_scopes: |- @@ -123,23 +158,27 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.discoveryengine.v1beta.ServingConfigService.*' + - selector: google.cloud.discoveryengine.v1beta.SearchTuningService.ListCustomModels oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.discoveryengine.v1beta.SiteSearchEngineService.*' + - selector: google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: 'google.cloud.discoveryengine.v1beta.UserEventService.*' + - selector: 'google.cloud.discoveryengine.v1beta.ServingConfigService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation + - selector: 'google.cloud.discoveryengine.v1beta.SiteSearchEngineService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.ListOperations + - selector: 'google.cloud.discoveryengine.v1beta.UserEventService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/document.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/document.proto index 34dd3ffed..2e8f82f03 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/document.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/document.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package google.cloud.discoveryengine.v1beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; @@ -118,4 +119,12 @@ message Document { // It contains derived data that are not in the original input document. google.protobuf.Struct derived_struct_data = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last time the document was indexed. If this field is set, + // the document could be returned in search results. + // + // This field is OUTPUT_ONLY. If this field is not populated, it means the + // document has never been indexed. + google.protobuf.Timestamp index_time = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_processing_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_processing_config.proto new file mode 100644 index 000000000..eb1ef031a --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_processing_config.proto @@ -0,0 +1,92 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "DocumentProcessingConfigProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// A singleton resource of +// [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. It's empty when +// [DataStore][google.cloud.discoveryengine.v1beta.DataStore] is created, which +// defaults to digital parser. The first call to +// [DataStoreService.UpdateDocumentProcessingConfig][] method will initialize +// the config. +message DocumentProcessingConfig { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/DocumentProcessingConfig" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/documentProcessingConfig" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/documentProcessingConfig" + }; + + // Related configurations applied to a specific type of document parser. + message ParsingConfig { + // The digital parsing configurations for documents. + message DigitalParsingConfig {} + + // The OCR parsing configurations for documents. + message OcrParsingConfig { + // [DEPRECATED] This field is deprecated. To use the additional enhanced + // document elements processing, please switch to `layout_parsing_config`. + repeated string enhanced_document_elements = 1 [deprecated = true]; + + // If true, will use native text instead of OCR text on pages containing + // native text. + bool use_native_text = 2; + } + + // Configs for document processing types. + oneof type_dedicated_config { + // Configurations applied to digital parser. + DigitalParsingConfig digital_parsing_config = 1; + + // Configurations applied to OCR parser. Currently it only applies to + // PDFs. + OcrParsingConfig ocr_parsing_config = 2; + } + } + + // The full resource name of the Document Processing Config. + // Format: + // `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`. + string name = 1; + + // Configurations for default Document parser. + // If not specified, we will configure it as default DigitalParsingConfig, and + // the default parsing config will be applied to all file types for Document + // parsing. + ParsingConfig default_parsing_config = 4; + + // Map from file type to override the default parsing configuration based on + // the file type. Supported keys: + // + // * `pdf`: Override parsing config for PDF files, either digital parsing, ocr + // parsing or layout parsing is supported. + // * `html`: Override parsing config for HTML files, only digital parsing and + // or layout parsing are supported. + // * `docx`: Override parsing config for DOCX files, only digital parsing and + // or layout parsing are supported. + map parsing_config_overrides = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_service.proto index 9c0afd0d8..0258b8191 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/document_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import "google/cloud/discoveryengine/v1beta/import_config.proto"; import "google/cloud/discoveryengine/v1beta/purge_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; @@ -88,6 +89,7 @@ service DocumentService { body: "document" } }; + option (google.api.method_signature) = "document,update_mask"; } // Deletes a [Document][google.cloud.discoveryengine.v1beta.Document]. @@ -103,7 +105,7 @@ service DocumentService { // Bulk import of multiple // [Document][google.cloud.discoveryengine.v1beta.Document]s. Request - // processing may be synchronous. Non-existing items will be created. + // processing may be synchronous. Non-existing items are created. // // Note: It is possible for a subset of the // [Document][google.cloud.discoveryengine.v1beta.Document]s to be @@ -202,7 +204,7 @@ message ListDocumentsRequest { // Maximum number of [Document][google.cloud.discoveryengine.v1beta.Document]s // to return. If unspecified, defaults to 100. The maximum allowed value is - // 1000. Values above 1000 will be coerced to 1000. + // 1000. Values above 1000 are set to 1000. // // If this field is negative, an `INVALID_ARGUMENT` error is returned. int32 page_size = 2; @@ -252,8 +254,8 @@ message CreateDocumentRequest { Document document = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The ID to use for the - // [Document][google.cloud.discoveryengine.v1beta.Document], which will become - // the final component of the + // [Document][google.cloud.discoveryengine.v1beta.Document], which becomes the + // final component of the // [Document.name][google.cloud.discoveryengine.v1beta.Document.name]. // // If the caller does not have permission to create the @@ -287,11 +289,14 @@ message UpdateDocumentRequest { // is not set, a `NOT_FOUND` error is returned. Document document = 1 [(google.api.field_behavior) = REQUIRED]; - // If set to true, and the + // If set to `true` and the // [Document][google.cloud.discoveryengine.v1beta.Document] is not found, a - // new [Document][google.cloud.discoveryengine.v1beta.Document] will be - // created. + // new [Document][google.cloud.discoveryengine.v1beta.Document] is be created. bool allow_missing = 2; + + // Indicates which fields in the provided imported 'document' to update. If + // not set, by default updates all fields. + google.protobuf.FieldMask update_mask = 3; } // Request message for diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine.proto index 8bb716024..98c4f6586 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ message Engine { // The search feature tier of this engine. // // Different tiers might have different - // pricing. To learn more, please check the pricing documentation. + // pricing. To learn more, check the pricing documentation. // // Defaults to // [SearchTier.SEARCH_TIER_STANDARD][google.cloud.discoveryengine.v1beta.SearchTier.SEARCH_TIER_STANDARD] @@ -110,7 +110,7 @@ message Engine { // [EngineService.GetEngine][google.cloud.discoveryengine.v1beta.EngineService.GetEngine] // or // [EngineService.ListEngines][google.cloud.discoveryengine.v1beta.EngineService.ListEngines] - // API after engine creation. Please use + // API after engine creation. Use // [ChatEngineMetadata.dialogflow_agent][google.cloud.discoveryengine.v1beta.Engine.ChatEngineMetadata.dialogflow_agent] // for actual agent association after Engine is created. string dialogflow_agent_to_link = 2; @@ -118,9 +118,9 @@ message Engine { // Common configurations for an Engine. message CommonConfig { - // Immutable. The name of the company, business or entity that is associated - // with the engine. Setting this may help improve LLM related features. - string company_name = 1 [(google.api.field_behavior) = IMMUTABLE]; + // The name of the company, business or entity that is associated with the + // engine. Setting this may help improve LLM related features. + string company_name = 1; } // Additional information of a Chat Engine. @@ -212,7 +212,7 @@ message Engine { // The restriction of the Engine industry vertical is based on // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]: If unspecified, // default to `GENERIC`. Vertical on Engine has to match vertical of the - // DataStore liniked to the engine. + // DataStore linked to the engine. IndustryVertical industry_vertical = 16; // Common config spec that specifies the metadata of the engine. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine_service.proto index b05f86bbb..c1e17a174 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/engine_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -92,6 +92,43 @@ service EngineService { }; option (google.api.method_signature) = "parent"; } + + // Pauses the training of an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + rpc PauseEngine(PauseEngineRequest) returns (Engine) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*}:pause" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Resumes the training of an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + rpc ResumeEngine(ResumeEngineRequest) returns (Engine) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*}:resume" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Tunes an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + rpc TuneEngine(TuneEngineRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/locations/*/collections/*/engines/*}:tune" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "TuneEngineResponse" + metadata_type: "TuneEngineMetadata" + }; + } } // Request for @@ -242,3 +279,59 @@ message UpdateEngineRequest { // is returned. google.protobuf.FieldMask update_mask = 2; } + +// Request for pausing training of an engine. +message PauseEngineRequest { + // Required. The name of the engine to pause. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + } + ]; +} + +// Request for resuming training of an engine. +message ResumeEngineRequest { + // Required. The name of the engine to resume. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + } + ]; +} + +// Request to manually start a tuning process now (instead of waiting for +// the periodically scheduled tuning to happen). +message TuneEngineRequest { + // Required. The resource name of the engine to tune. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + } + ]; +} + +// Metadata associated with a tune operation. +message TuneEngineMetadata { + // Required. The resource name of the engine that this tune applies to. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + string engine = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + } + ]; +} + +// Response associated with a tune operation. +message TuneEngineResponse {} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto new file mode 100644 index 000000000..5ba783dc5 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto @@ -0,0 +1,149 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/grounding.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "GroundedGenerationServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Service for grounded generation. +service GroundedGenerationService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Performs a grounding check. + rpc CheckGrounding(CheckGroundingRequest) returns (CheckGroundingResponse) { + option (google.api.http) = { + post: "/v1beta/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" + body: "*" + }; + } +} + +// Specification for the grounding check. +message CheckGroundingSpec { + // The threshold (in [0,1]) used for determining whether a fact must be + // cited for a claim in the answer candidate. Choosing a higher threshold + // will lead to fewer but very strong citations, while choosing a lower + // threshold may lead to more but somewhat weaker citations. If unset, the + // threshold will default to 0.6. + optional double citation_threshold = 1; +} + +// Request message for +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding] +// method. +message CheckGroundingRequest { + // Required. The resource name of the grounding config, such as + // `projects/*/locations/global/groundingConfigs/default_grounding_config`. + string grounding_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/GroundingConfig" + } + ]; + + // Answer candidate to check. Can have a maximum length of 1024 characters. + string answer_candidate = 2; + + // List of facts for the grounding check. + // We support up to 200 facts. + repeated GroundingFact facts = 3; + + // Configuration of the grounding check. + CheckGroundingSpec grounding_spec = 4; + + // 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. + map user_labels = 5; +} + +// Response message for the +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding] +// method. +message CheckGroundingResponse { + // Text and citation info for a claim in the answer candidate. + message Claim { + // Position indicating the start of the claim in the answer candidate, + // measured in bytes. + optional int32 start_pos = 1; + + // Position indicating the end of the claim in the answer candidate, + // exclusive. + optional int32 end_pos = 2; + + // Text for the claim in the answer candidate. Always provided regardless of + // whether citations or anti-citations are found. + string claim_text = 3; + + // A list of indices (into 'cited_chunks') specifying the citations + // associated with the claim. For instance [1,3,4] means that + // cited_chunks[1], cited_chunks[3], cited_chunks[4] are the facts cited + // supporting for the claim. A citation to a fact indicates that the claim + // is supported by the fact. + repeated int32 citation_indices = 4; + + // Indicates that this claim required grounding check. When the system + // decided this claim doesn't require attribution/grounding check, this + // field will be set to false. In that case, no grounding check was done for + // the claim and therefore + // [citation_indices][google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim.citation_indices], + // and + // [anti_citation_indices][google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim.anti_citation_indices] + // should not be returned. + optional bool grounding_check_required = 6; + } + + // The support score for the input answer candidate. + // Higher the score, higher is the fraction of claims that are supported by + // the provided facts. This is always set when a response is returned. + optional float support_score = 1; + + // List of facts cited across all claims in the answer candidate. + // These are derived from the facts supplied in the request. + repeated FactChunk cited_chunks = 3; + + // Claim texts and citation info across all claims in the answer candidate. + repeated Claim claims = 4; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/grounding.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/grounding.proto new file mode 100644 index 000000000..1b195d2de --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/grounding.proto @@ -0,0 +1,58 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "GroundingProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Grounding Fact. +message GroundingFact { + // Text content of the fact. Can be at most 10K characters long. + string fact_text = 1; + + // Attributes associated with the fact. + // Common attributes include `source` (indicating where the fact was sourced + // from), `author` (indicating the author of the fact), and so on. + map attributes = 2; +} + +// Fact Chunk. +message FactChunk { + // Text content of the fact chunk. Can be at most 10K characters long. + string chunk_text = 1; + + // Source from which this fact chunk was retrieved. If it was retrieved + // from the GroundingFacts provided in the request then this field will + // contain the index of the specific fact from which this chunk was + // retrieved. + string source = 2; + + // The index of this chunk. Currently, only used for the streaming mode. + int32 index = 4; + + // More fine-grained information for the source reference. + map source_metadata = 3; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/import_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/import_config.proto index f38a57a7c..22c064010 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/import_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/import_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1beta/completion.proto"; import "google/cloud/discoveryengine/v1beta/document.proto"; import "google/cloud/discoveryengine/v1beta/user_event.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/type/date.proto"; @@ -36,7 +37,7 @@ option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; // Cloud Storage location for input content. message GcsSource { - // Required. Cloud Storage URIs to input files. URI can be up to + // Required. Cloud Storage URIs to input files. Each URI can be up to // 2000 characters long. URIs can match the full object path (for example, // `gs://bucket/directory/object.json`) or a pattern matching one or more // files, such as `gs://bucket/directory/*.json`. @@ -60,13 +61,13 @@ message GcsSource { // bits of SHA256(URI) encoded as a hex string. // * `custom`: One custom data JSON per row in arbitrary format that conforms // to the defined [Schema][google.cloud.discoveryengine.v1beta.Schema] of - // the data store. This can only be used by Gen App Builder. + // the data store. This can only be used by the GENERIC Data Store vertical. // * `csv`: A CSV file with header conforming to the defined // [Schema][google.cloud.discoveryengine.v1beta.Schema] of the // data store. Each entry after the header is imported as a Document. - // This can only be used by Gen App Builder. + // This can only be used by the GENERIC Data Store vertical. // - // Supported values for user even imports: + // Supported values for user event imports: // // * `user_event` (default): One JSON // [UserEvent][google.cloud.discoveryengine.v1beta.UserEvent] per line. @@ -118,10 +119,237 @@ message BigQuerySource { // [Document.struct_data][google.cloud.discoveryengine.v1beta.Document.struct_data]. // * `custom`: One custom data per row in arbitrary format that conforms to // the defined [Schema][google.cloud.discoveryengine.v1beta.Schema] of the - // data store. This can only be used by Gen App Builder. + // data store. This can only be used by the GENERIC Data Store vertical. string data_schema = 6; } +// The Spanner source for importing data +message SpannerSource { + // The project ID that the Spanner source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The instance ID of the source Spanner table. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The database ID of the source Spanner table. + string database_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table name of the Spanner database that needs to be imported. + string table_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Whether to apply data boost on Spanner export. Enabling this option will + // incur additional cost. More info can be found + // [here](https://cloud.google.com/spanner/docs/databoost/databoost-overview#billing_and_quotas). + bool enable_data_boost = 5; +} + +// The Bigtable Options object that contains information to support +// the import. +message BigtableOptions { + // The column family of the Bigtable. + message BigtableColumnFamily { + // The field name to use for this column family in the document. The + // name has to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. If not set, + // it is parsed from the family name with best effort. However, due to + // different naming patterns, field name collisions could happen, where + // parsing behavior is undefined. + string field_name = 1; + + // The encoding mode of the values when the type is not STRING. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding encoding = 2; + + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type type = 3; + + // The list of objects that contains column level information for each + // column. If a column is not present in this list it will be ignored. + repeated BigtableColumn columns = 4; + } + + // The column of the Bigtable. + message BigtableColumn { + // Required. Qualifier of the column. If it cannot be decoded with utf-8, + // use a base-64 encoded string instead. + bytes qualifier = 1 [(google.api.field_behavior) = REQUIRED]; + + // The field name to use for this column in the document. The name has to + // match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + // If not set, it is parsed from the qualifier bytes with best effort. + // However, due to different naming patterns, field name collisions could + // happen, where parsing behavior is undefined. + string field_name = 2; + + // The encoding mode of the values when the type is not `STRING`. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding encoding = 3; + + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type type = 4; + } + + // The type of values in a Bigtable column or column family. + // The values are expected to be encoded using + // [HBase + // Bytes.toBytes](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/util/Bytes.html) + // function when the encoding value is set to `BINARY`. + enum Type { + // The type is unspecified. + TYPE_UNSPECIFIED = 0; + + // String type. + STRING = 1; + + // Numerical type. + NUMBER = 2; + + // Integer type. + INTEGER = 3; + + // Variable length integer type. + VAR_INTEGER = 4; + + // BigDecimal type. + BIG_NUMERIC = 5; + + // Boolean type. + BOOLEAN = 6; + + // JSON type. + JSON = 7; + } + + // The encoding mode of a Bigtable column or column family. + enum Encoding { + // The encoding is unspecified. + ENCODING_UNSPECIFIED = 0; + + // Text encoding. + TEXT = 1; + + // Binary encoding. + BINARY = 2; + } + + // The field name used for saving row key value in the document. The name has + // to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + string key_field_name = 1; + + // The mapping from family names to an object that contains column families + // level information for the given column family. If a family is not present + // in this map it will be ignored. + map families = 2; +} + +// The Cloud Bigtable source for importing data. +message BigtableSource { + // The project ID that the Bigtable source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The instance ID of the Cloud Bigtable that needs to be imported. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The table ID of the Cloud Bigtable that needs to be imported. + string table_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Bigtable options that contains information needed when parsing + // data into typed structures. For example, column type annotations. + BigtableOptions bigtable_options = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Cloud FhirStore source import data from. +message FhirStoreSource { + // Required. The full resource name of the FHIR store to import data from, in + // the format of + // `projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}`. + string fhir_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "healthcare.googleapis.com/FhirStore" + } + ]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // FhirStore export to a specific Cloud Storage directory. + string gcs_staging_dir = 2; +} + +// Cloud SQL source import data from. +message CloudSqlSource { + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The Cloud SQL instance to copy the data from with a length limit + // of 256 characters. + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL database to copy the data from with a length limit + // of 256 characters. + string database_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Cloud SQL table to copy the data from with a length limit of + // 256 characters. + string table_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Cloud SQL export to a specific Cloud Storage directory. + // + // Ensure that the Cloud SQL service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 5; + + // Option for serverless export. Enabling this option will incur additional + // cost. More info can be found + // [here](https://cloud.google.com/sql/pricing#serverless). + bool offload = 6; +} + +// Firestore source import data from. +message FirestoreSource { + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + string project_id = 1; + + // Required. The Firestore database to copy the data from with a length limit + // of 256 characters. + string database_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Firestore collection (or entity) to copy the data from with a + // length limit of 1,500 characters. + string collection_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Firestore export to a specific Cloud Storage directory. + // + // Ensure that the Firestore service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 4; +} + // Configuration of destination for Import related errors. message ImportErrorConfig { // Required. Errors destination. @@ -219,6 +447,9 @@ message ImportDocumentsMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; + + // Total count of entries that were processed. + int64 total_count = 5; } // Request message for Import methods. @@ -255,6 +486,21 @@ message ImportDocumentsRequest { // BigQuery input source. BigQuerySource bigquery_source = 4; + + // FhirStore input source. + FhirStoreSource fhir_store_source = 10; + + // Spanner input source. + SpannerSource spanner_source = 11; + + // Cloud SQL input source. + CloudSqlSource cloud_sql_source = 12; + + // Firestore input source. + FirestoreSource firestore_source = 13; + + // Cloud Bigtable input source. + BigtableSource bigtable_source = 15; } // Required. The parent branch resource name, such as @@ -275,6 +521,10 @@ message ImportDocumentsRequest { // [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode reconciliation_mode = 6; + // Indicates which fields in the provided imported documents to update. If + // not set, the default is to update all fields. + google.protobuf.FieldMask update_mask = 7; + // Whether to automatically generate IDs for the documents if absent. // // If set to `true`, @@ -288,45 +538,54 @@ message ImportDocumentsRequest { // [id_field][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.id_field], // otherwise, documents without IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource], and - // when + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource]. // [GcsSource.data_schema][google.cloud.discoveryengine.v1beta.GcsSource.data_schema] - // or + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource]. // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1beta.BigQuerySource.data_schema] - // is `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1beta.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1beta.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1beta.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1beta.BigtableSource]. bool auto_generate_ids = 8; - // The field in the Cloud Storage and BigQuery sources that indicates the - // unique IDs of the documents. + // The field indicates the ID field or column to be used as unique IDs of + // the documents. // // For [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource] it is the // key of the JSON field. For instance, `my_id` for JSON `{"my_id": - // "some_uuid"}`. For - // [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource] it is - // the column name of the BigQuery table where the unique ids are stored. + // "some_uuid"}`. For others, it may be the column name of the table where the + // unique ids are stored. // - // The values of the JSON field or the BigQuery column are used as the + // The values of the JSON field or the table column are used as the // [Document.id][google.cloud.discoveryengine.v1beta.Document.id]s. The JSON - // field or the BigQuery column must be of string type, and the values must be + // field or the table column must be of string type, and the values must be // set as valid strings conform to // [RFC-1034](https://tools.ietf.org/html/rfc1034) with 1-63 characters. // Otherwise, documents without valid IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource], and - // when - // [GcsSource.data_schema][google.cloud.discoveryengine.v1beta.GcsSource.data_schema] - // or - // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1beta.BigQuerySource.data_schema] - // is `custom`. And only set this field when + // Only set this field when // [auto_generate_ids][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.auto_generate_ids] // is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown. // // If it is unset, a default value `_id` is used when importing from the // allowed data sources. + // + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource]. + // [GcsSource.data_schema][google.cloud.discoveryengine.v1beta.GcsSource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource]. + // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1beta.BigQuerySource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1beta.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1beta.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1beta.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1beta.BigtableSource]. string id_field = 9; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/project.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/project.proto new file mode 100644 index 000000000..4938778a8 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/project.proto @@ -0,0 +1,103 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Metadata and configurations for a Google Cloud project in the service. +message Project { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Project" + pattern: "projects/{project}" + }; + + // Metadata about the terms of service. + message ServiceTerms { + // The agreement states this terms of service. + enum State { + // The default value of the enum. This value is not actually used. + STATE_UNSPECIFIED = 0; + + // The project has given consent to the terms of service. + TERMS_ACCEPTED = 1; + + // The project is pending to review and accept the terms of service. + TERMS_PENDING = 2; + + // The project has declined or revoked the agreement to terms of service. + TERMS_DECLINED = 3; + } + + // The unique identifier of this terms of service. + // Available terms: + // + // * `GA_DATA_USE_TERMS`: [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). When using this as + // `id`, the acceptable + // [version][google.cloud.discoveryengine.v1beta.Project.ServiceTerms.version] + // to provide is `2022-11-23`. + string id = 1; + + // The version string of the terms of service. + // For acceptable values, see the comments for + // [id][google.cloud.discoveryengine.v1beta.Project.ServiceTerms.id] above. + string version = 2; + + // Whether the project has accepted/rejected the service terms or it is + // still pending. + State state = 4; + + // The last time when the project agreed to the terms of service. + google.protobuf.Timestamp accept_time = 5; + + // The last time when the project declined or revoked the agreement to terms + // of service. + google.protobuf.Timestamp decline_time = 6; + } + + // Output only. Full resource name of the project, for example + // `projects/{project_number}`. + // Note that when making requests, project number and project id are both + // acceptable, but the server will always respond in project number. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this project is created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this project is successfully provisioned. + // Empty value means this project is still provisioning and is not ready for + // use. + google.protobuf.Timestamp provision_completion_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A map of terms of services. The key is the `id` of + // [ServiceTerms][google.cloud.discoveryengine.v1beta.Project.ServiceTerms]. + map service_terms_map = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/project_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/project_service.proto new file mode 100644 index 000000000..ccf085a57 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/project_service.proto @@ -0,0 +1,90 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/project.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Service for operations on the +// [Project][google.cloud.discoveryengine.v1beta.Project]. +service ProjectService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Provisions the project resource. During the + // process, related systems will get prepared and initialized. + // + // Caller must read the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms), and optionally + // specify in request to provide consent to that service terms. + rpc ProvisionProject(ProvisionProjectRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*}:provision" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.Project" + metadata_type: "google.cloud.discoveryengine.v1beta.ProvisionProjectMetadata" + }; + } +} + +// Request for +// [ProjectService.ProvisionProject][google.cloud.discoveryengine.v1beta.ProjectService.ProvisionProject] +// method. +message ProvisionProjectRequest { + // Required. Full resource name of a + // [Project][google.cloud.discoveryengine.v1beta.Project], such as + // `projects/{project_id_or_number}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Project" + } + ]; + + // Required. Set to `true` to specify that caller has read and would like to + // give consent to the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms). + bool accept_data_use_terms = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The version of the [Terms for data + // use](https://cloud.google.com/retail/data-use-terms) that caller has read + // and would like to give consent to. + // + // Acceptable version is `2022-11-23`, and this may change over time. + string data_use_terms_version = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata associated with a project provision operation. +message ProvisionProjectMetadata {} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/purge_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/purge_config.proto index baa7759e8..7c7550bf4 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/purge_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/purge_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -84,6 +84,9 @@ message PurgeDocumentsMetadata { // Count of entries that encountered errors while processing. int64 failure_count = 4; + + // Count of entries that were ignored as entries were not found. + int64 ignored_count = 5; } // Request message for diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/rank_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/rank_service.proto new file mode 100644 index 000000000..6867c79e9 --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/rank_service.proto @@ -0,0 +1,134 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "RankServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Service for ranking text records. +service RankService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Ranks a list of text records based on the given input query. + rpc Rank(RankRequest) returns (RankResponse) { + option (google.api.http) = { + post: "/v1beta/{ranking_config=projects/*/locations/*/rankingConfigs/*}:rank" + body: "*" + }; + } +} + +// Record message for +// [RankService.Rank][google.cloud.discoveryengine.v1beta.RankService.Rank] +// method. +message RankingRecord { + // The unique ID to represent the record. + string id = 1; + + // The title of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1beta.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1beta.RankingRecord.content] should + // be set otherwise an INVALID_ARGUMENT error is thrown. + string title = 2; + + // The content of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1beta.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1beta.RankingRecord.content] should + // be set otherwise an INVALID_ARGUMENT error is thrown. + string content = 3; + + // The score of this record based on the given query and selected model. + float score = 4; +} + +// Request message for +// [RankService.Rank][google.cloud.discoveryengine.v1beta.RankService.Rank] +// method. +message RankRequest { + // Required. The resource name of the rank service config, such as + // `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`. + string ranking_config = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/RankingConfig" + } + ]; + + // The identifier of the model to use. It is one of: + // + // * `semantic-ranker-512@latest`: Semantic ranking model with maxiumn input + // token size 512. + // + // It is set to `semantic-ranker-512@latest` by default if unspecified. + string model = 2; + + // The number of results to return. If this is unset or no bigger than zero, + // returns all results. + int32 top_n = 3; + + // The query to use. + string query = 4; + + // Required. A list of records to rank. At most 200 records to rank. + repeated RankingRecord records = 5 [(google.api.field_behavior) = REQUIRED]; + + // If true, the response will contain only record ID and score. By default, it + // is false, the response will contain record details. + bool ignore_record_details_in_response = 6; + + // 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. + map user_labels = 7; +} + +// Response message for +// [RankService.Rank][google.cloud.discoveryengine.v1beta.RankService.Rank] +// method. +message RankResponse { + // A list of records sorted by descending score. + repeated RankingRecord records = 5; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/recommendation_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/recommendation_service.proto index 8ec4ea9cb..ed75a039d 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/recommendation_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/recommendation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -64,7 +64,7 @@ message RecommendRequest { // `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*` // // One default serving config is created along with your recommendation engine - // creation. The engine ID will be used as the ID of the default serving + // creation. The engine ID is used as the ID of the default serving // config. For example, for Engine // `projects/*/locations/global/collections/*/engines/my-engine`, you can use // `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs/my-engine` @@ -97,9 +97,9 @@ message RecommendRequest { UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; // Maximum number of results to return. Set this property - // to the number of recommendation results needed. If zero, the service will - // choose a reasonable default. The maximum allowed value is 100. Values - // above 100 will be coerced to 100. + // to the number of recommendation results needed. If zero, the service + // chooses a reasonable default. The maximum allowed value is 100. Values + // above 100 are set to 100. int32 page_size = 3; // Filter for restricting recommendation results with a length limit of 5,000 @@ -120,19 +120,19 @@ message RecommendRequest { // * (available: true) AND // (launguage: ANY("en", "es")) OR (categories: ANY("Movie")) // - // If your filter blocks all results, the API will return generic + // If your filter blocks all results, the API returns generic // (unfiltered) popular Documents. If you only want results strictly matching - // the filters, set `strictFiltering` to True in + // the filters, set `strictFiltering` to `true` in // [RecommendRequest.params][google.cloud.discoveryengine.v1beta.RecommendRequest.params] // to receive empty results instead. // - // Note that the API will never return + // Note that the API never returns // [Document][google.cloud.discoveryengine.v1beta.Document]s with - // `storageStatus` of `EXPIRED` or `DELETED` regardless of filter choices. + // `storageStatus` as `EXPIRED` or `DELETED` regardless of filter choices. string filter = 4; - // Use validate only mode for this recommendation query. If set to true, a - // fake model will be used that returns arbitrary Document IDs. + // Use validate only mode for this recommendation query. If set to `true`, a + // fake model is used that returns arbitrary Document IDs. // Note that the validate only mode should only be used for testing the API, // or if the model is not ready. bool validate_only = 5; @@ -141,16 +141,17 @@ message RecommendRequest { // // Allowed values: // - // * `returnDocument`: Boolean. If set to true, the associated Document - // object will be returned in + // * `returnDocument`: Boolean. If set to `true`, the associated Document + // object is returned in // [RecommendResponse.RecommendationResult.document][google.cloud.discoveryengine.v1beta.RecommendResponse.RecommendationResult.document]. - // * `returnScore`: Boolean. If set to true, the recommendation 'score' - // corresponding to each returned Document will be set in + // * `returnScore`: Boolean. If set to true, the recommendation score + // corresponding to each returned Document is set in // [RecommendResponse.RecommendationResult.metadata][google.cloud.discoveryengine.v1beta.RecommendResponse.RecommendationResult.metadata]. - // The given 'score' indicates the probability of a Document conversion - // given the user's context and history. - // * `strictFiltering`: Boolean. True by default. If set to false, the service - // will return generic (unfiltered) popular Documents instead of empty if + // The given score indicates the probability of a Document conversion given + // the user's context and history. + // * `strictFiltering`: Boolean. True by default. If set to `false`, the + // service + // returns generic (unfiltered) popular Documents instead of empty if // your filter blocks all recommendation results. // * `diversityLevel`: String. Default empty. If set to be non-empty, then // it needs to be one of: @@ -198,7 +199,7 @@ message RecommendResponse { // [RecommendRequest.params][google.cloud.discoveryengine.v1beta.RecommendRequest.params]. Document document = 2; - // Additional Document metadata / annotations. + // Additional Document metadata or annotations. // // Possible values: // diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema.proto index 6f308a2d4..82df5c745 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema_service.proto index bad4b9139..8df3e8056 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/schema_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -142,9 +142,9 @@ message ListSchemasRequest { // to return. The service may return fewer than this value. // // If unspecified, at most 100 - // [Schema][google.cloud.discoveryengine.v1beta.Schema]s will be returned. + // [Schema][google.cloud.discoveryengine.v1beta.Schema]s are returned. // - // The maximum value is 1000; values above 1000 will be coerced to 1000. + // The maximum value is 1000; values above 1000 are set to 1000. int32 page_size = 2; // A page token, received from a previous @@ -189,7 +189,7 @@ message CreateSchemaRequest { Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The ID to use for the - // [Schema][google.cloud.discoveryengine.v1beta.Schema], which will become the + // [Schema][google.cloud.discoveryengine.v1beta.Schema], which becomes the // final component of the // [Schema.name][google.cloud.discoveryengine.v1beta.Schema.name]. // @@ -209,8 +209,8 @@ message UpdateSchemaRequest { // If set to true, and the // [Schema][google.cloud.discoveryengine.v1beta.Schema] is not found, a new - // [Schema][google.cloud.discoveryengine.v1beta.Schema] will be created. In - // this situation, `update_mask` is ignored. + // [Schema][google.cloud.discoveryengine.v1beta.Schema] is created. In this + // situation, `update_mask` is ignored. bool allow_missing = 3; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_service.proto index 55aef9869..8112eb803 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -69,6 +69,21 @@ message SearchRequest { } } + // A struct to define data stores to filter on in a search call and + // configurations for those data stores. A maximum of 1 DataStoreSpec per + // data_store is allowed. Otherwise, an `INVALID_ARGUMENT` error is returned. + message DataStoreSpec { + // Required. Full resource name of + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore], such as + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + } + // A facet specification to perform faceted search. message FacetSpec { // Specifies how a facet is computed. @@ -98,7 +113,7 @@ message SearchRequest { // Only supported on textual fields. Maximum is 10. repeated string prefixes = 4; - // Only get facet values that contains the given strings. For example, + // Only get facet values that contain the given strings. For example, // suppose "category" has three values "Action > 2022", // "Action > 2021" and "Sci-Fi > 2022". If set "contains" to "2022", the // "category" facet only contains "Action > 2022" and "Sci-Fi > 2022". @@ -132,7 +147,7 @@ message SearchRequest { // Required. The facet key specification. FacetKey facet_key = 1 [(google.api.field_behavior) = REQUIRED]; - // Maximum of facet values that should be returned for this facet. If + // Maximum facet values that are returned for this facet. If // unspecified, defaults to 20. The maximum allowed value is 300. Values // above 300 are coerced to 300. // @@ -204,6 +219,80 @@ message SearchRequest { message BoostSpec { // Boost applies to documents which match a condition. message ConditionBoostSpec { + // Specification for custom ranking based on customer specified attribute + // value. It provides more controls for customized ranking than the simple + // (condition, boost) combination above. + message BoostControlSpec { + // The control points used to define the curve. The curve defined + // through these control points can only be monotonically increasing + // or decreasing(constant values are acceptable). + message ControlPoint { + // Can be one of: + // 1. The numerical field value. + // 2. The duration spec for freshness: + // The value must be formatted as an XSD `dayTimeDuration` value (a + // restricted subset of an ISO 8601 duration value). The pattern for + // this is: `[nD][T[nH][nM][nS]]`. + string attribute_value = 1; + + // The value between -1 to 1 by which to boost the score if the + // attribute_value evaluates to the value specified above. + float boost_amount = 2; + } + + // The attribute(or function) for which the custom ranking is to be + // applied. + enum AttributeType { + // Unspecified AttributeType. + ATTRIBUTE_TYPE_UNSPECIFIED = 0; + + // The value of the numerical field will be used to dynamically update + // the boost amount. In this case, the attribute_value (the x value) + // of the control point will be the actual value of the numerical + // field for which the boost_amount is specified. + NUMERICAL = 1; + + // For the freshness use case the attribute value will be the duration + // between the current time and the date in the datetime field + // specified. The value must be formatted as an XSD `dayTimeDuration` + // value (a restricted subset of an ISO 8601 duration value). The + // pattern for this is: `[nD][T[nH][nM][nS]]`. + // For example, `5D`, `3DT12H30M`, `T24H`. + FRESHNESS = 2; + } + + // The interpolation type to be applied. Default will be linear + // (Piecewise Linear). + enum InterpolationType { + // Interpolation type is unspecified. In this case, it defaults to + // Linear. + INTERPOLATION_TYPE_UNSPECIFIED = 0; + + // Piecewise linear interpolation will be applied. + LINEAR = 1; + } + + // The name of the field whose value will be used to determine the + // boost amount. + string field_name = 1; + + // The attribute type to be used to determine the boost amount. The + // attribute value can be derived from the field value of the specified + // field_name. In the case of numerical it is straightforward i.e. + // attribute_value = numerical_field_value. In the case of freshness + // however, attribute_value = (time.now() - datetime_field_value). + AttributeType attribute_type = 2; + + // The interpolation type to be applied to connect the control points + // listed below. + InterpolationType interpolation_type = 3; + + // The control points used to define the curve. The monotonic function + // (defined through the interpolation_type above) passes through the + // control points listed here. + repeated ControlPoint control_points = 4; + } + // An expression which specifies a boost condition. The syntax and // supported fields are the same as a filter expression. See // [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter] @@ -212,29 +301,34 @@ message SearchRequest { // Examples: // // * To boost documents with document ID "doc_1" or "doc_2", and - // color - // "Red" or "Blue": - // * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + // color "Red" or "Blue": + // `(document_id: ANY("doc_1", "doc_2")) AND (color: ANY("Red", "Blue"))` string condition = 1; // Strength of the condition boost, which should be in [-1, 1]. Negative // boost means demotion. Default is 0.0. // - // Setting to 1.0 gives the document a big promotion. However, it does not - // necessarily mean that the boosted document will be the top result at - // all times, nor that other documents will be excluded. Results could - // still be shown even when none of them matches the condition. And - // results that are significantly more relevant to the search query can - // still trump your heavily favored but irrelevant documents. + // Setting to 1.0 gives the document a big promotion. However, it does + // not necessarily mean that the boosted document will be the top result + // at all times, nor that other documents will be excluded. Results + // could still be shown even when none of them matches the condition. + // And results that are significantly more relevant to the search query + // can still trump your heavily favored but irrelevant documents. // // Setting to -1.0 gives the document a big demotion. However, results // that are deeply relevant might still be shown. The document will have - // an upstream battle to get a fairly high ranking, but it is not blocked - // out completely. + // an upstream battle to get a fairly high ranking, but it is not + // blocked out completely. // // Setting to 0.0 means no boost applied. The boosting condition is - // ignored. + // ignored. Only one of the (condition, boost) combination or the + // boost_control_spec below are set. If both are set then the global boost + // is ignored and the more fine-grained boost_control_spec is applied. float boost = 2; + + // Complex specification for custom ranking based on customer defined + // attribute value. + BoostControlSpec boost_control_spec = 3; } // Condition boost specifications. If a document matches multiple conditions @@ -282,10 +376,10 @@ message SearchRequest { // [Mode.AUTO][google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. MODE_UNSPECIFIED = 0; - // Search API will try to find a spell suggestion if there - // is any and put in the + // Search API tries to find a spelling suggestion. If a suggestion is + // found, it is put in the // [SearchResponse.corrected_query][google.cloud.discoveryengine.v1beta.SearchResponse.corrected_query]. - // The spell suggestion will not be used as the search query. + // The spelling suggestion won't be used as the search query. SUGGESTION_ONLY = 1; // Automatic spell correction built by the Search API. Search will @@ -293,8 +387,8 @@ message SearchRequest { AUTO = 2; } - // The mode under which spell correction should take effect to - // replace the original search query. Default to + // The mode under which spell correction + // replaces the original search query. Defaults to // [Mode.AUTO][google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. Mode mode = 1; } @@ -335,11 +429,13 @@ message SearchRequest { // Supported values are: // // * `stable`: string. Default value when no value is specified. Uses a - // generally available, fine-tuned version of the text-bison@001 - // model. - // * `preview`: string. (Public preview) Uses a fine-tuned version of - // the text-bison@002 model. This model works only for summaries in - // English. + // generally available, fine-tuned model. For more information, see + // [Answer generation model versions and + // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). + // * `preview`: string. (Public preview) Uses a preview model. For more + // information, see + // [Answer generation model versions and + // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). string version = 1; } @@ -347,7 +443,10 @@ message SearchRequest { // of results returned is less than `summaryResultCount`, the summary is // generated from all of the results. // - // At most five results can be used to generate a summary. + // At most 10 results for documents mode, or 50 for chunks mode, can be + // used to generate a summary. The chunks mode is used when + // [SearchRequest.ContentSearchSpec.search_result_mode][] is set to + // [CHUNKS][SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. int32 summary_result_count = 1; // Specifies whether to include citations in the summary. The default @@ -406,6 +505,14 @@ message SearchRequest { // If specified, the spec will be used to modify the model specification // provided to the LLM. ModelSpec model_spec = 7; + + // If true, answer will be generated from most relevant chunks from top + // search results. This feature will improve summary quality. + // Note that with this feature enabled, not all top search results + // will be referenced and included in the reference list, so the citation + // source index only points to the search results listed in the reference + // list. + bool use_semantic_chunks = 8; } // A specification for configuring the extractive content in a search @@ -446,10 +553,9 @@ message SearchRequest { int32 max_extractive_segment_count = 2; // Specifies whether to return the confidence score from the extractive - // segments in each search result. The default value is `false`. - // - // Note: this is a priavte preview feature and only works for allowlisted - // users, please reach out to Cloud Support team if you want to use it. + // segments in each search result. This feature is available only for new + // or allowlisted data stores. To allowlist your data store, + // contact your Customer Engineer. The default value is `false`. bool return_extractive_segment_score = 3; // Specifies whether to also include the adjacent from each selected @@ -521,10 +627,14 @@ message SearchRequest { ImageQuery image_query = 19; // Maximum number of [Document][google.cloud.discoveryengine.v1beta.Document]s - // to return. If unspecified, defaults to a reasonable value. The maximum - // allowed value is 100. Values above 100 are coerced to 100. + // to return. The maximum allowed value depends on the data type. Values above + // the maximum value are coerced to the maximum value. // - // If this field is negative, an `INVALID_ARGUMENT` is returned. + // * Websites with basic indexing: Default `10`, Maximum `25`. + // * Websites with advanced indexing: Default `25`, Maximum `50`. + // * Other: Default `50`, Maximum `100`. + // + // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 page_size = 4; // A page token received from a previous @@ -547,6 +657,12 @@ message SearchRequest { // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 offset = 6; + // Specs defining dataStores to filter on in a search call and configurations + // for those dataStores. This is only considered for engines with multiple + // dataStores use case. For single dataStore within an engine, they should + // use the specs at the top level. + repeated DataStoreSpec data_store_specs = 32; + // The filter syntax consists of an expression language for constructing a // predicate from one or more fields of the documents being filtered. Filter // expression is case-sensitive. @@ -581,7 +697,9 @@ message SearchRequest { // The order in which documents are returned. Documents can be ordered by // a field in an [Document][google.cloud.discoveryengine.v1beta.Document] // object. Leave it unset if ordered by relevance. `order_by` expression is - // case-sensitive. For more information on ordering, see + // case-sensitive. + // + // For more information on ordering for retail search, see // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) // // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. @@ -601,7 +719,7 @@ message SearchRequest { // Boost specification to boost certain documents. // For more information on boosting, see - // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + // [Boosting](https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results) BoostSpec boost_spec = 10; // Additional search parameters. @@ -610,8 +728,7 @@ message SearchRequest { // // * `user_country_code`: string. Default empty. If set to non-empty, results // are restricted or boosted based on the location provided. - // Example: - // user_country_code: "au" + // For example, `user_country_code: "au"` // // For available codes see [Country // Codes](https://developers.google.com/custom-search/docs/json_api_reference#countryCodes) @@ -619,8 +736,7 @@ message SearchRequest { // * `search_type`: double. Default empty. Enables non-webpage searching // depending on the value. The only valid non-default value is 1, // which enables image searching. - // Example: - // search_type: 1 + // For example, `search_type: 1` map params = 11; // The query expansion specification that specifies the conditions under which @@ -658,7 +774,8 @@ message SearchRequest { // // If // [SearchRequest.EmbeddingSpec.EmbeddingVector.field_path][google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector.field_path] - // is not provided, it will use [ServingConfig.EmbeddingConfig.field_path][]. + // is not provided, it will use + // [ServingConfig.EmbeddingConfig.field_path][google.cloud.discoveryengine.v1beta.ServingConfig.embedding_config]. EmbeddingSpec embedding_spec = 23; // The ranking expression controls the customized ranking on retrieval @@ -718,7 +835,7 @@ message SearchResponse { string id = 1; // The document data snippet in the search response. Only fields that are - // marked as retrievable are populated. + // marked as `retrievable` are populated. Document document = 2; // Google provided available scores. @@ -744,7 +861,7 @@ message SearchResponse { int64 count = 3; } - // The key for this facet. E.g., "colors" or "price". It matches + // The key for this facet. For example, `"colors"` or `"price"`. It matches // [SearchRequest.FacetSpec.FacetKey.key][google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey.key]. string key = 1; @@ -760,10 +877,10 @@ message SearchResponse { message GuidedSearchResult { // Useful attribute for search result refinements. message RefinementAttribute { - // Attribute key used to refine the results e.g. 'movie_type'. + // Attribute key used to refine the results. For example, `"movie_type"`. string attribute_key = 1; - // Attribute value used to refine the results e.g. 'drama'. + // Attribute value used to refine the results. For example, `"drama"`. string attribute_value = 2; } @@ -774,7 +891,7 @@ message SearchResponse { repeated string follow_up_questions = 2; } - // Summary of the top N search result specified by the summary spec. + // Summary of the top N search results specified by the summary spec. message Summary { // Safety Attribute categories and their associated confidence scores. message SafetyAttributes { @@ -815,6 +932,15 @@ message SearchResponse { // Document reference. message Reference { + // Chunk content. + message ChunkContent { + // Chunk textual content. + string content = 1; + + // Page identifier. + string page_identifier = 2; + } + // Title of the document. string title = 1; @@ -832,6 +958,9 @@ message SearchResponse { // Cloud Storage or HTTP uri for the document. string uri = 3; + + // List of cited chunk contents derived from document content. + repeated ChunkContent chunk_contents = 4; } // Summary with metadata information. @@ -899,6 +1028,16 @@ message SearchResponse { SummaryWithMetadata summary_with_metadata = 4; } + // Debug information specifically related to forward geocoding issues arising + // from Geolocation Search. + message GeoSearchDebugInfo { + // The address from which forward geocoding ingestion produced issues. + string original_address_query = 1; + + // The error produced. + string error_message = 2; + } + // Information describing query expansion including whether expansion has // occurred. message QueryExpansionInfo { @@ -963,6 +1102,8 @@ message SearchResponse { // Controls applied as part of the Control service. repeated string applied_controls = 10; + repeated GeoSearchDebugInfo geo_search_debug_info = 16; + // Query expansion information for the returned results. QueryExpansionInfo query_expansion_info = 14; } diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_tuning_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_tuning_service.proto new file mode 100644 index 000000000..f3e85db8f --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/search_tuning_service.proto @@ -0,0 +1,196 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/custom_tuning_model.proto"; +import "google/cloud/discoveryengine/v1beta/import_config.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SearchTuningServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// Service for search tuning. +service SearchTuningService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Trains a custom model. + rpc TrainCustomModel(TrainCustomModelRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{data_store=projects/*/locations/*/collections/*/dataStores/*}:trainCustomModel" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.TrainCustomModelResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata" + }; + } + + // Gets a list of all the custom models. + rpc ListCustomModels(ListCustomModelsRequest) + returns (ListCustomModelsResponse) { + option (google.api.http) = { + get: "/v1beta/{data_store=projects/*/locations/*/collections/*/dataStores/*}/customModels" + }; + } +} + +// Request message for +// [SearchTuningService.ListCustomModels][google.cloud.discoveryengine.v1beta.SearchTuningService.ListCustomModels] +// method. +message ListCustomModelsRequest { + // Required. The resource name of the parent Data Store, such as + // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store`. + // This field is used to identify the data store where to fetch the models + // from. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [SearchTuningService.ListCustomModels][google.cloud.discoveryengine.v1beta.SearchTuningService.ListCustomModels] +// method. +message ListCustomModelsResponse { + // List of custom tuning models. + repeated CustomTuningModel models = 1; +} + +// Request message for +// [SearchTuningService.TrainCustomModel][google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel] +// method. +message TrainCustomModelRequest { + // Cloud Storage training data input. + message GcsTrainingInput { + // The Cloud Storage corpus data which could be associated in train data. + // The data path format is `gs:///`. + // A newline delimited jsonl/ndjson file. + // + // For search-tuning model, each line should have the _id, title + // and text. Example: + // `{"_id": "doc1", title: "relevant doc", "text": "relevant text"}` + string corpus_data_path = 1; + + // The gcs query data which could be associated in train data. + // The data path format is `gs:///`. + // A newline delimited jsonl/ndjson file. + // + // For search-tuning model, each line should have the _id + // and text. Example: {"_id": "query1", "text": "example query"} + string query_data_path = 2; + + // Cloud Storage training data path whose format should be + // `gs:///`. The file should be in tsv + // format. Each line should have the doc_id and query_id and score (number). + // + // For search-tuning model, it should have the query-id corpus-id + // score as tsv file header. The score should be a number in `[0, inf+)`. + // The larger the number is, the more relevant the pair is. Example: + // + // * `query-id\tcorpus-id\tscore` + // * `query1\tdoc1\t1` + string train_data_path = 3; + + // Cloud Storage test data. Same format as train_data_path. If not provided, + // a random 80/20 train/test split will be performed on train_data_path. + string test_data_path = 4; + } + + // Model training input. + oneof training_input { + // Cloud Storage training input. + GcsTrainingInput gcs_training_input = 2; + } + + // Required. The resource name of the Data Store, such as + // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store`. + // This field is used to identify the data store where to train the models. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Model to be trained. Supported values are: + // + // * **search-tuning**: Fine tuning the search system based on data provided. + string model_type = 3; + + // The desired location of errors incurred during the data ingestion and + // training. + ImportErrorConfig error_config = 4; + + // If not provided, a UUID will be generated. + string model_id = 5; +} + +// Response of the +// [TrainCustomModelRequest][google.cloud.discoveryengine.v1beta.TrainCustomModelRequest]. +// This message is returned by the google.longrunning.Operations.response field. +message TrainCustomModelResponse { + // A sample of errors encountered while processing the data. + repeated google.rpc.Status error_samples = 1; + + // Echoes the destination for the complete errors in the request if set. + ImportErrorConfig error_config = 2; + + // The trained model status. Possible values are: + // + // * **bad-data**: The training data quality is bad. + // * **no-improvement**: Tuning didn't improve performance. Won't deploy. + // * **in-progress**: Model training job creation is in progress. + // * **training**: Model is actively training. + // * **evaluating**: The model is evaluating trained metrics. + // * **indexing**: The model trained metrics are indexing. + // * **ready**: The model is ready for serving. + string model_status = 3; + + // The metrics of the trained model. + map metrics = 4; + + // Fully qualified name of the CustomTuningModel. + string model_name = 5; +} + +// Metadata related to the progress of the TrainCustomModel operation. This is +// returned by the google.longrunning.Operation.metadata field. +message TrainCustomModelMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config.proto index 48979119f..8194bfee8 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -109,7 +109,7 @@ message ServingConfig { } // Immutable. Fully qualified name - // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/servingConfigs/{serving_config_id}` + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}/servingConfigs/{serving_config_id}` string name = 1 [(google.api.field_behavior) = IMMUTABLE]; // Required. The human readable serving config display name. Used in Discovery @@ -165,8 +165,9 @@ message ServingConfig { // The ranking expression controls the customized ranking on retrieval // documents. To leverage this, document embedding is required. The ranking // expression setting in ServingConfig applies to all search requests served - // by the serving config. However, if [SearchRequest.ranking_expression][] is - // specified, it overrides the ServingConfig ranking expression. + // by the serving config. However, if + // [SearchRequest.ranking_expression][google.cloud.discoveryengine.v1beta.SearchRequest.ranking_expression] + // is specified, it overrides the ServingConfig ranking expression. // // The ranking expression is a single function or multiple functions that are // joined by "+". diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config_service.proto index 8cd21ab83..ced317e71 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/serving_config_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,7 +32,8 @@ option objc_class_prefix = "DISCOVERYENGINE"; option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; -// Service for modifying ServingConfig. +// Service for operations related to +// [ServingConfig][google.cloud.discoveryengine.v1beta.ServingConfig]. service ServingConfigService { option (google.api.default_host) = "discoveryengine.googleapis.com"; option (google.api.oauth_scopes) = @@ -107,7 +108,7 @@ message UpdateServingConfigRequest { // Request for GetServingConfig method. message GetServingConfigRequest { // Required. The resource name of the ServingConfig to get. Format: - // `projects/{project_number}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config_id}` + // `projects/{project_number}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -118,12 +119,12 @@ message GetServingConfigRequest { // Request for ListServingConfigs method. message ListServingConfigsRequest { - // Required. The dataStore resource name. Format: - // `projects/{project_number}/locations/{location}/collections/{collection}/dataStores/{data_store}` + // Required. Full resource name of the parent resource. Format: + // `projects/{project_number}/locations/{location}/collections/{collection}/engines/{engine}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "discoveryengine.googleapis.com/DataStore" + child_type: "discoveryengine.googleapis.com/ServingConfig" } ]; diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/session.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/session.proto new file mode 100644 index 000000000..47569d19a --- /dev/null +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/session.proto @@ -0,0 +1,97 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SessionProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// External session proto definition. +message Session { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Session" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}" + }; + + // Represents a turn, including a query from the user and a + // answer from service. + message Turn { + // The user query. + Query query = 1; + + // The resource name of the answer to the user query. + // + // Only set if the answer generation (/answer API call) happened in this + // turn. + string answer = 2 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Answer" + }]; + } + + // Enumeration of the state of the session. + enum State { + // State is unspecified. + STATE_UNSPECIFIED = 0; + + // The session is currently open. + IN_PROGRESS = 1; + } + + // Immutable. Fully qualified name + // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*` + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // The state of the session. + State state = 2; + + // A unique identifier for tracking users. + string user_pseudo_id = 3; + + // Turns. + repeated Turn turns = 4; + + // Output only. The time the session started. + google.protobuf.Timestamp start_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the session finished. + google.protobuf.Timestamp end_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines a user inputed query. +message Query { + // Query content. + oneof content { + // Plain text. + string text = 2; + } + + // Unique Id for the query. + string query_id = 1; +} diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine.proto index 2bca8c625..5ae982569 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -129,6 +129,9 @@ message TargetSite { // Output only. This is system-generated based on the provided_uri_pattern. string generated_uri_pattern = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Root domain of the provided_uri_pattern. + string root_domain_uri = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Site ownership and validity verification status. SiteVerificationInfo site_verification_info = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine_service.proto index 389c3e36c..d639bbc67 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/site_search_engine_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event.proto index 59a0ed216..acd0f82ae 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,7 +32,7 @@ option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; // UserEvent captures all metadata information Discovery Engine API needs to -// know about how end users interact with customers' website. +// know about how end users interact with your website. message UserEvent { // Required. User event type. Allowed values are: // @@ -74,6 +74,31 @@ message UserEvent { // for this field. string user_pseudo_id = 2 [(google.api.field_behavior) = REQUIRED]; + // The [Engine][google.cloud.discoveryengine.v1beta.Engine] resource name, in + // the form of + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}`. + // + // Optional. Only required for + // [Engine][google.cloud.discoveryengine.v1beta.Engine] produced user events. + // For example, user events from blended search. + string engine = 19 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Engine" + }]; + + // The [DataStore][google.cloud.discoveryengine.v1beta.DataStore] resource + // full name, of the form + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. + // + // Optional. Only required for user events whose data store can't by + // determined by + // [UserEvent.engine][google.cloud.discoveryengine.v1beta.UserEvent.engine] or + // [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]. + // If data store is set in the parent of write/import/collect user event + // requests, this field can be omitted. + string data_store = 20 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + }]; + // Only required for // [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents] // method. Timestamp of when the user event happened. @@ -196,7 +221,7 @@ message UserEvent { // A list of identifiers for the independent experiment groups this user event // belongs to. This is used to distinguish between user events associated with - // different experiment setups on the customer end. + // different experiment setups. repeated string tag_ids = 15; // The promotion IDs if this is an event associated with promotions. @@ -252,7 +277,7 @@ message PageInfo { // The most specific category associated with a category page. // // To represent full path of category, use '>' sign to separate different - // hierarchies. If '>' is part of the category name, please replace it with + // 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 @@ -419,7 +444,7 @@ message DocumentInfo { // Quantity of the Document associated with the user event. Defaults to 1. // - // For example, this field will be 2 if two quantities of the same Document + // For example, this field is 2 if two quantities of the same Document // are involved in a `add-to-cart` event. // // Required for events of the following event types: diff --git a/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event_service.proto b/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event_service.proto index c109eba18..5ccf0ba19 100644 --- a/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event_service.proto +++ b/third_party/googleapis/google/cloud/discoveryengine/v1beta/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -49,6 +49,10 @@ service UserEventService { post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:write" body: "user_event" } + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*}/userEvents:write" + body: "user_event" + } }; } @@ -66,7 +70,7 @@ service UserEventService { }; } - // Bulk import of User events. Request processing might be + // Bulk import of user events. Request processing might be // synchronous. Events that already exist are skipped. // Use this method for backfilling historical user events. // @@ -92,8 +96,16 @@ service UserEventService { // Request message for WriteUserEvent method. message WriteUserEventRequest { - // Required. The parent DataStore resource name, such as + // Required. The parent resource name. + // If the write user event action is applied in + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore] level, the + // format is: // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}`. + // If the write user event action is applied in [Location][] level, for + // example, the event with + // [Document][google.cloud.discoveryengine.v1beta.Document] across multiple + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore], the format is: + // `projects/{project}/locations/{location}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -103,6 +115,10 @@ message WriteUserEventRequest { // Required. User event to write. optional UserEvent user_event = 2 [(google.api.field_behavior) = REQUIRED]; + + // If set to true, the user event is written asynchronously after + // validation, and the API responds without waiting for the write. + bool write_async = 3; } // Request message for CollectUserEvent method. diff --git a/third_party/googleapis/google/cloud/documentai/BUILD.bazel b/third_party/googleapis/google/cloud/documentai/BUILD.bazel index 7e770eeb7..642068910 100644 --- a/third_party/googleapis/google/cloud/documentai/BUILD.bazel +++ b/third_party/googleapis/google/cloud/documentai/BUILD.bazel @@ -23,8 +23,8 @@ ruby_cloud_gapic_library( "ruby-cloud-gem-name=google-cloud-document_ai", "ruby-cloud-env-prefix=DOCUMENT_AI", "ruby-cloud-wrapper-of=v1:0.17;v1beta3:0.30", - "ruby-cloud-product-url=https://cloud.google.com/document-ai/", - "ruby-cloud-api-id=us-documentai.googleapis.com", + "ruby-cloud-product-url=https://cloud.google.com/document-ai/docs", + "ruby-cloud-api-id=documentai.googleapis.com", "ruby-cloud-api-shortname=documentai", "ruby-cloud-namespace-override=DocumentAi=DocumentAI", ], diff --git a/third_party/googleapis/google/cloud/documentai/v1/BUILD.bazel b/third_party/googleapis/google/cloud/documentai/v1/BUILD.bazel index 91b47acb0..14b10d4db 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/documentai/v1/BUILD.bazel @@ -316,12 +316,9 @@ ruby_cloud_gapic_library( name = "documentai_ruby_gapic", srcs = [":documentai_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-api-id=us-documentai.googleapis.com", - "ruby-cloud-api-shortname=documentai", "ruby-cloud-env-prefix=DOCUMENT_AI", "ruby-cloud-gem-name=google-cloud-document_ai-v1", "ruby-cloud-namespace-override=DocumentAi=DocumentAI", - "ruby-cloud-product-url=https://cloud.google.com/document-ai/", ], grpc_service_config = "documentai_v1_grpc_service_config.json", rest_numeric_enums = True, diff --git a/third_party/googleapis/google/cloud/documentai/v1/barcode.proto b/third_party/googleapis/google/cloud/documentai/v1/barcode.proto index 805203ba0..44b19783d 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/barcode.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/barcode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1/document.proto b/third_party/googleapis/google/cloud/documentai/v1/document.proto index 8c66f6b93..74184552a 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/document.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -286,16 +286,16 @@ message Document { // Whether the text is underlined. bool underlined = 7; - // Whether the text is strikethrough. + // Whether the text is strikethrough. This feature is not supported yet. bool strikeout = 8; - // Whether the text is a subscript. + // Whether the text is a subscript. This feature is not supported yet. bool subscript = 9; - // Whether the text is a superscript. + // Whether the text is a superscript. This feature is not supported yet. bool superscript = 10; - // Whether the text is in small caps. + // Whether the text is in small caps. This feature is not supported yet. bool smallcaps = 11; // TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). @@ -893,6 +893,160 @@ message Document { repeated Provenance provenance = 3 [deprecated = true]; } + // Represents the parsed layout of a document as a collection of blocks that + // the document is divided into. + message DocumentLayout { + // Represents a block. A block could be one of the various types (text, + // table, list) supported. + message DocumentLayoutBlock { + // Represents where the block starts and ends in the document. + message LayoutPageSpan { + // Page where block starts in the document. + int32 page_start = 1; + + // Page where block ends in the document. + int32 page_end = 2; + } + + // Represents a text type block. + message LayoutTextBlock { + // Text content stored in the block. + string text = 1; + + // Type of the text in the block. Available options are: `paragraph`, + // `subtitle`, `heading-1`, `heading-2`, `heading-3`, `heading-4`, + // `heading-5`, `header`, `footer`. + string type = 2; + + // A text block could further have child blocks. + // Repeated blocks support further hierarchies and nested blocks. + repeated DocumentLayoutBlock blocks = 3; + } + + // Represents a table type block. + message LayoutTableBlock { + // Header rows at the top of the table. + repeated LayoutTableRow header_rows = 1; + + // Body rows containing main table content. + repeated LayoutTableRow body_rows = 2; + + // Table caption/title. + string caption = 3; + } + + // Represents a row in a table. + message LayoutTableRow { + // A table row is a list of table cells. + repeated LayoutTableCell cells = 1; + } + + // Represents a cell in a table row. + message LayoutTableCell { + // A table cell is a list of blocks. + // Repeated blocks support further hierarchies and nested blocks. + repeated DocumentLayoutBlock blocks = 1; + + // How many rows this cell spans. + int32 row_span = 2; + + // How many columns this cell spans. + int32 col_span = 3; + } + + // Represents a list type block. + message LayoutListBlock { + // List entries that constitute a list block. + repeated LayoutListEntry list_entries = 1; + + // Type of the list_entries (if exist). Available options are `ordered` + // and `unordered`. + string type = 2; + } + + // Represents an entry in the list. + message LayoutListEntry { + // A list entry is a list of blocks. + // Repeated blocks support further hierarchies and nested blocks. + repeated DocumentLayoutBlock blocks = 1; + } + + oneof block { + // Block consisting of text content. + LayoutTextBlock text_block = 2; + + // Block consisting of table content/structure. + LayoutTableBlock table_block = 3; + + // Block consisting of list content/structure. + LayoutListBlock list_block = 4; + } + + // ID of the block. + string block_id = 1; + + // Page span of the block. + LayoutPageSpan page_span = 5; + } + + // List of blocks in the document. + repeated DocumentLayoutBlock blocks = 1; + } + + // Represents the chunks that the document is divided into. + message ChunkedDocument { + // Represents a chunk. + message Chunk { + // Represents where the chunk starts and ends in the document. + message ChunkPageSpan { + // Page where chunk starts in the document. + int32 page_start = 1; + + // Page where chunk ends in the document. + int32 page_end = 2; + } + + // Represents the page header associated with the chunk. + message ChunkPageHeader { + // Header in text format. + string text = 1; + + // Page span of the header. + ChunkPageSpan page_span = 2; + } + + // Represents the page footer associated with the chunk. + message ChunkPageFooter { + // Footer in text format. + string text = 1; + + // Page span of the footer. + ChunkPageSpan page_span = 2; + } + + // ID of the chunk. + string chunk_id = 1; + + // Unused. + repeated string source_block_ids = 2; + + // Text content of the chunk. + string content = 3; + + // Page span of the chunk. + ChunkPageSpan page_span = 4; + + // Page headers associated with the chunk. + repeated ChunkPageHeader page_headers = 5; + + // Page footers associated with the chunk. + repeated ChunkPageFooter page_footers = 6; + } + + // List of chunks. + repeated Chunk chunks = 1; + } + // Original source document from the user. oneof source { // Optional. Currently supports Google Cloud Storage URI of the form @@ -944,4 +1098,10 @@ message Document { // Placeholder. Revision history of this document. repeated Revision revisions = 13; + + // Parsed layout of the document. + DocumentLayout document_layout = 17; + + // Document chunked based on chunking config. + ChunkedDocument chunked_document = 18; } diff --git a/third_party/googleapis/google/cloud/documentai/v1/document_io.proto b/third_party/googleapis/google/cloud/documentai/v1/document_io.proto index 26637a166..a84bfc4fb 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/document_io.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/document_io.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1/document_processor_service.proto b/third_party/googleapis/google/cloud/documentai/v1/document_processor_service.proto index 447b28ba1..793a56008 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/document_processor_service.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/document_processor_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -212,7 +212,11 @@ service DocumentProcessorService { // Creates a processor from the // [ProcessorType][google.cloud.documentai.v1.ProcessorType] provided. The - // processor will be at `ENABLED` state by default after its creation. + // processor will be at `ENABLED` state by default after its creation. Note + // that this method requires the `documentai.processors.create` permission on + // the project, which is highly privileged. A user or service account with + // this permission can create new processors that can interact with any gcs + // bucket in your project. rpc CreateProcessor(CreateProcessorRequest) returns (Processor) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/processors" @@ -328,6 +332,23 @@ service DocumentProcessorService { // Options for Process API message ProcessOptions { + // Serving config for layout parser processor. + message LayoutConfig { + // Serving config for chunking. + message ChunkingConfig { + // Optional. The chunk sizes to use when splitting documents, in order of + // level. + int32 chunk_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether or not to include ancestor headings when splitting. + bool include_ancestor_headings = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Config for chunking in layout parser processor. + ChunkingConfig chunking_config = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // A list of individual page numbers. message IndividualPageSelector { // Optional. Indices of the pages (starting from 1). @@ -356,6 +377,10 @@ message ProcessOptions { // Returns error if set on other processor types. OcrConfig ocr_config = 1; + // Optional. Only applicable to `LAYOUT_PARSER_PROCESSOR`. + // Returns error if set on other processor types. + LayoutConfig layout_config = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Override the schema of the // [ProcessorVersion][google.cloud.documentai.v1.ProcessorVersion]. Will // return an Invalid Argument error if this field is set when the underlying @@ -976,9 +1001,24 @@ message TrainProcessorVersionRequest { TrainingMethod training_method = 3; } + // Options to control foundation model tuning of the processor. + message FoundationModelTuningOptions { + // Optional. The number of steps to run for model tuning. Valid values are + // between 1 and 400. If not provided, recommended steps will be used. + int32 train_steps = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The multiplier to apply to the recommended learning rate. Valid + // values are between 0.1 and 10. If not provided, recommended learning rate + // will be used. + float learning_rate_multiplier = 3 [(google.api.field_behavior) = OPTIONAL]; + } + oneof processor_flags { // Options to control Custom Document Extraction (CDE) Processor. CustomDocumentExtractionOptions custom_document_extraction_options = 5; + + // Options to control foundation model tuning of a processor. + FoundationModelTuningOptions foundation_model_tuning_options = 12; } // Required. The parent (project, location and processor) to create the new diff --git a/third_party/googleapis/google/cloud/documentai/v1/document_schema.proto b/third_party/googleapis/google/cloud/documentai/v1/document_schema.proto index 71b2791b8..9b41e6f65 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/document_schema.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/document_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1/evaluation.proto b/third_party/googleapis/google/cloud/documentai/v1/evaluation.proto index 433fba583..a169adf7d 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/evaluation.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1/geometry.proto b/third_party/googleapis/google/cloud/documentai/v1/geometry.proto index 18fbeaaf0..d80e5d031 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/geometry.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1/operation_metadata.proto b/third_party/googleapis/google/cloud/documentai/v1/operation_metadata.proto index 533f758ae..1aed2f68e 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/operation_metadata.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/operation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1/processor.proto b/third_party/googleapis/google/cloud/documentai/v1/processor.proto index 29cb85547..6b86a0ab3 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/processor.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/processor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -94,10 +94,10 @@ message ProcessorVersion { MODEL_TYPE_CUSTOM = 2; } - // The resource name of the processor version. + // Identifier. The resource name of the processor version. // Format: // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}` - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The display name of the processor version. string display_name = 2; @@ -105,8 +105,8 @@ message ProcessorVersion { // The schema of the processor version. Describes the output. DocumentSchema document_schema = 12; - // The state of the processor version. - State state = 6; + // Output only. The state of the processor version. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // The time the processor version was created. google.protobuf.Timestamp create_time = 7; @@ -128,6 +128,12 @@ message ProcessorVersion { // Output only. The model type of this processor version. ModelType model_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains the alias and the aliased resource name of processor version. @@ -224,4 +230,10 @@ message Processor { // The [KMS key](https://cloud.google.com/security-key-management) used for // encryption and decryption in CMEK scenarios. string kms_key_name = 8; + + // Output only. Reserved for future use. + bool satisfies_pzs = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/documentai/v1/processor_type.proto b/third_party/googleapis/google/cloud/documentai/v1/processor_type.proto index ae88dda8d..b3894fafd 100644 --- a/third_party/googleapis/google/cloud/documentai/v1/processor_type.proto +++ b/third_party/googleapis/google/cloud/documentai/v1/processor_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta1/document.proto b/third_party/googleapis/google/cloud/documentai/v1beta1/document.proto index 1f5a4da99..788a14a8c 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta1/document.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta1/document_understanding.proto b/third_party/googleapis/google/cloud/documentai/v1beta1/document_understanding.proto index 62601d3f3..2250efc76 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta1/document_understanding.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta1/document_understanding.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta1/geometry.proto b/third_party/googleapis/google/cloud/documentai/v1beta1/geometry.proto index 797154a59..2b6159ea0 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta1/geometry.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta2/barcode.proto b/third_party/googleapis/google/cloud/documentai/v1beta2/barcode.proto index 9de123e17..9b4675008 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta2/barcode.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta2/barcode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta2/document.proto b/third_party/googleapis/google/cloud/documentai/v1beta2/document.proto index 56144ad93..3d841ee97 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta2/document.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta2/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta2/document_understanding.proto b/third_party/googleapis/google/cloud/documentai/v1beta2/document_understanding.proto index cdfff1bd0..066f2a5af 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta2/document_understanding.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta2/document_understanding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta2/geometry.proto b/third_party/googleapis/google/cloud/documentai/v1beta2/geometry.proto index 5f2458460..e6e6e7e7b 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta2/geometry.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta2/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/BUILD.bazel b/third_party/googleapis/google/cloud/documentai/v1beta3/BUILD.bazel index 491e43de2..3ca6a7431 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/BUILD.bazel +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/BUILD.bazel @@ -320,12 +320,9 @@ ruby_cloud_gapic_library( name = "documentai_ruby_gapic", srcs = [":documentai_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-api-id=us-documentai.googleapis.com", - "ruby-cloud-api-shortname=documentai", "ruby-cloud-env-prefix=DOCUMENT_AI", "ruby-cloud-gem-name=google-cloud-document_ai-v1beta3", "ruby-cloud-namespace-override=DocumentAi=DocumentAI", - "ruby-cloud-product-url=https://cloud.google.com/document-ai/", ], grpc_service_config = "documentai_v1beta3_grpc_service_config.json", rest_numeric_enums = True, diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/barcode.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/barcode.proto index f0580e69a..0390e7add 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/barcode.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/barcode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/dataset.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/dataset.proto index 66ea297ea..8557023b1 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/dataset.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/document.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/document.proto index aeb805b21..c905ee34b 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/document.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -286,16 +286,16 @@ message Document { // Whether the text is underlined. bool underlined = 7; - // Whether the text is strikethrough. + // Whether the text is strikethrough. This feature is not supported yet. bool strikeout = 8; - // Whether the text is a subscript. + // Whether the text is a subscript. This feature is not supported yet. bool subscript = 9; - // Whether the text is a superscript. + // Whether the text is a superscript. This feature is not supported yet. bool superscript = 10; - // Whether the text is in small caps. + // Whether the text is in small caps. This feature is not supported yet. bool smallcaps = 11; // TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). @@ -897,6 +897,162 @@ message Document { repeated Provenance provenance = 3 [deprecated = true]; } + // Represents the parsed layout of a document as a collection of blocks that + // the document is divided into. + message DocumentLayout { + // Represents a block. A block could be one of the various types (text, + // table, list) supported. + message DocumentLayoutBlock { + // Represents where the block starts and ends in the document. + message LayoutPageSpan { + // Page where block starts in the document. + int32 page_start = 1; + + // Page where block ends in the document. + int32 page_end = 2; + } + + // Represents a text type block. + message LayoutTextBlock { + // Text content stored in the block. + string text = 1; + + // Type of the text in the block. Available options are: `paragraph`, + // `subtitle`, `heading-1`, `heading-2`, `heading-3`, `heading-4`, + // `heading-5`, `header`, `footer`. + string type = 2; + + // A text block could further have child blocks. + // Repeated blocks support further hierarchies and nested blocks. + repeated DocumentLayoutBlock blocks = 3; + } + + // Represents a table type block. + message LayoutTableBlock { + // Header rows at the top of the table. + repeated LayoutTableRow header_rows = 1; + + // Body rows containing main table content. + repeated LayoutTableRow body_rows = 2; + + // Table caption/title. + string caption = 3; + } + + // Represents a row in a table. + message LayoutTableRow { + // A table row is a list of table cells. + repeated LayoutTableCell cells = 1; + } + + // Represents a cell in a table row. + message LayoutTableCell { + // A table cell is a list of blocks. + // Repeated blocks support further hierarchies and nested blocks. + repeated DocumentLayoutBlock blocks = 1; + + // How many rows this cell spans. + int32 row_span = 2; + + // How many columns this cell spans. + int32 col_span = 3; + } + + // Represents a list type block. + message LayoutListBlock { + // List entries that constitute a list block. + repeated LayoutListEntry list_entries = 1; + + // Type of the list_entries (if exist). Available options are `ordered` + // and `unordered`. + string type = 2; + } + + // Represents an entry in the list. + message LayoutListEntry { + // A list entry is a list of blocks. + // Repeated blocks support further hierarchies and nested blocks. + repeated DocumentLayoutBlock blocks = 1; + } + + oneof block { + // Block consisting of text content. + LayoutTextBlock text_block = 2; + + // Block consisting of table content/structure. + LayoutTableBlock table_block = 3; + + // Block consisting of list content/structure. + LayoutListBlock list_block = 4; + } + + // ID of the block. + string block_id = 1; + + // Page span of the block. + LayoutPageSpan page_span = 5; + } + + // List of blocks in the document. + repeated DocumentLayoutBlock blocks = 1; + } + + // Represents the chunks that the document is divided into. + message ChunkedDocument { + // Represents a chunk. + message Chunk { + // Represents where the chunk starts and ends in the document. + message ChunkPageSpan { + // Page where chunk starts in the document. + int32 page_start = 1; + + // Page where chunk ends in the document. + int32 page_end = 2; + } + + // Represents the page header associated with the chunk. + message ChunkPageHeader { + // Header in text format. + string text = 1; + + // Page span of the header. + ChunkPageSpan page_span = 2; + } + + // Represents the page footer associated with the chunk. + message ChunkPageFooter { + // Footer in text format. + string text = 1; + + // Page span of the footer. + ChunkPageSpan page_span = 2; + } + + // ID of the chunk. + string chunk_id = 1; + + // DO NOT USE. + // List of all parsed documents layout source blocks used to generate the + // chunk. + repeated string source_block_ids = 2; + + // Text content of the chunk. + string content = 3; + + // Page span of the chunk. + ChunkPageSpan page_span = 4; + + // Page headers associated with the chunk. + repeated ChunkPageHeader page_headers = 5; + + // Page footers associated with the chunk. + repeated ChunkPageFooter page_footers = 6; + } + + // List of chunks. + repeated Chunk chunks = 1; + } + // Original source document from the user. oneof source { // Optional. Currently supports Google Cloud Storage URI of the form @@ -950,6 +1106,12 @@ message Document { // Placeholder. Revision history of this document. repeated Revision revisions = 13; + + // Parsed layout of the document. + DocumentLayout document_layout = 17; + + // Document chunked based on chunking config. + ChunkedDocument chunked_document = 18; } // The revision reference specifies which revision on the document to read. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/document_io.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/document_io.proto index d4027030d..edb1364b2 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/document_io.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/document_io.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/document_processor_service.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/document_processor_service.proto index 39b9f4074..d91d38ec9 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/document_processor_service.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/document_processor_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -342,6 +342,34 @@ service DocumentProcessorService { // Options for Process API message ProcessOptions { + // Serving config for layout parser processor. + message LayoutConfig { + // Serving config for chunking. + message ChunkingConfig { + // Optional. The chunk sizes to use when splitting documents, in order of + // level. + int32 chunk_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether or not to include ancestor headings when splitting. + bool include_ancestor_headings = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of tokens to group together when evaluating + // semantic similarity. + bool semantic_chunking_group_size = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The percentile of cosine dissimilarity that must be exceeded + // between a group of tokens and the next. The smaller this number is, the + // more chunks will be generated. + int32 breakpoint_percentile_threshold = 4 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Config for chunking in layout parser processor. + ChunkingConfig chunking_config = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // A list of individual page numbers. message IndividualPageSelector { // Optional. Indices of the pages (starting from 1). @@ -370,6 +398,10 @@ message ProcessOptions { // Returns error if set on other processor types. OcrConfig ocr_config = 1; + // Optional. Only applicable to `LAYOUT_PARSER_PROCESSOR`. + // Returns error if set on other processor types. + LayoutConfig layout_config = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Override the schema of the // [ProcessorVersion][google.cloud.documentai.v1beta3.ProcessorVersion]. Will // return an Invalid Argument error if this field is set when the underlying @@ -1360,6 +1392,8 @@ message ImportProcessorVersionRequest { oneof source { // The source processor version to import from. The source processor version // and destination processor need to be in the same environment and region. + // Note that ProcessorVersions with `model_type` `MODEL_TYPE_LLM` are not + // supported. string processor_version_source = 2 [(google.api.resource_reference) = { type: "documentai.googleapis.com/ProcessorVersion" }]; diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/document_schema.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/document_schema.proto index 86a28d7b6..f4b86ba0a 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/document_schema.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/document_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/document_service.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/document_service.proto index dcf35b1a4..06c1980f5 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/document_service.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/document_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/evaluation.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/evaluation.proto index 4de7046b6..699915e2a 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/evaluation.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/geometry.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/geometry.proto index da949fb19..432ea1c2f 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/geometry.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/operation_metadata.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/operation_metadata.proto index 509109aba..705ef23f3 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/operation_metadata.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/operation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/processor.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/processor.proto index 6a4437ac1..3ab2d2e59 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/processor.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/processor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -94,10 +94,10 @@ message ProcessorVersion { MODEL_TYPE_CUSTOM = 2; } - // The resource name of the processor version. + // Identifier. The resource name of the processor version. // Format: // `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}` - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The display name of the processor version. string display_name = 2; @@ -105,8 +105,8 @@ message ProcessorVersion { // The schema of the processor version. Describes the output. DocumentSchema document_schema = 12; - // The state of the processor version. - State state = 6; + // Output only. The state of the processor version. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // The time the processor version was created. google.protobuf.Timestamp create_time = 7; diff --git a/third_party/googleapis/google/cloud/documentai/v1beta3/processor_type.proto b/third_party/googleapis/google/cloud/documentai/v1beta3/processor_type.proto index 2840eb085..5ecc8697e 100644 --- a/third_party/googleapis/google/cloud/documentai/v1beta3/processor_type.proto +++ b/third_party/googleapis/google/cloud/documentai/v1beta3/processor_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/domains/v1/domains.proto b/third_party/googleapis/google/cloud/domains/v1/domains.proto index 5746e561b..d055abbe7 100644 --- a/third_party/googleapis/google/cloud/domains/v1/domains.proto +++ b/third_party/googleapis/google/cloud/domains/v1/domains.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto b/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto index 2c3822d41..18b3b633b 100644 --- a/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto +++ b/third_party/googleapis/google/cloud/domains/v1alpha2/domains.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/domains/v1beta1/domains.proto b/third_party/googleapis/google/cloud/domains/v1beta1/domains.proto index b148e946a..5a488477e 100644 --- a/third_party/googleapis/google/cloud/domains/v1beta1/domains.proto +++ b/third_party/googleapis/google/cloud/domains/v1beta1/domains.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/edgecontainer/BUILD.bazel b/third_party/googleapis/google/cloud/edgecontainer/BUILD.bazel new file mode 100644 index 000000000..fd5599b35 --- /dev/null +++ b/third_party/googleapis/google/cloud/edgecontainer/BUILD.bazel @@ -0,0 +1,37 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-edge_container. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for edgecontainer. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "edgecontainer_ruby_wrapper", + srcs = ["//google/cloud/edgecontainer/v1:edgecontainer_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-edge_container", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/distributed-cloud/edge/latest/docs/overview", + ], + service_yaml = "//google/cloud/edgecontainer/v1:edgecontainer_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-edge_container-ruby", + deps = [ + ":edgecontainer_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/edgecontainer/v1/BUILD.bazel b/third_party/googleapis/google/cloud/edgecontainer/v1/BUILD.bazel index cbabcd62c..393ef147c 100644 --- a/third_party/googleapis/google/cloud/edgecontainer/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/edgecontainer/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "edgecontainer_proto", @@ -31,6 +34,7 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -42,12 +46,14 @@ proto_library_with_info( deps = [ ":edgecontainer_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -71,17 +77,19 @@ java_grpc_library( java_gapic_library( name = "edgecontainer_java_gapic", srcs = [":edgecontainer_proto_with_info"], - gapic_yaml = None, + gapic_yaml = "edgecontainer_gapic.yaml", grpc_service_config = "edgecontainer_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "edgecontainer_v1.yaml", test_deps = [ ":edgecontainer_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ ":edgecontainer_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) @@ -110,6 +118,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -145,6 +154,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -163,6 +173,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -177,7 +188,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "edgecontainer_v1.yaml", transport = "grpc+rest", - deps = ["//google/iam/v1:iam_policy_py_proto"], + deps = [ + ], ) py_test( @@ -201,6 +213,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -217,10 +230,14 @@ php_gapic_library( name = "edgecontainer_php_gapic", srcs = [":edgecontainer_proto_with_info"], grpc_service_config = "edgecontainer_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "edgecontainer_v1.yaml", transport = "grpc+rest", - deps = [":edgecontainer_php_proto"], + gapic_yaml = "edgecontainer_gapic.yaml", + deps = [ + ":edgecontainer_php_proto", + ], ) # Open Source Packages @@ -235,6 +252,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -265,6 +283,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -287,7 +306,10 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "edgecontainer_ruby_gapic", srcs = [":edgecontainer_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-edgecontainer-v1"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-edge_container-v1", + "ruby-cloud-product-url=https://cloud.google.com/distributed-cloud/edge/latest/docs/overview", + ], grpc_service_config = "edgecontainer_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "edgecontainer_v1.yaml", @@ -311,6 +333,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -321,6 +344,7 @@ load( csharp_proto_library( name = "edgecontainer_csharp_proto", + extra_opts = [], deps = [":edgecontainer_proto"], ) @@ -357,6 +381,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_gapic.yaml b/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_gapic.yaml new file mode 100644 index 000000000..69a3ab9da --- /dev/null +++ b/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_gapic.yaml @@ -0,0 +1,35 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +interfaces: +- name: google.cloud.edgecontainer.v1.EdgeContainer + methods: + - name: CreateCluster + long_running: + initial_poll_delay_millis: 1000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 10000 + total_poll_timeout_millis: 2700000 + - name: DeleteCluster + long_running: + initial_poll_delay_millis: 1000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 10000 + total_poll_timeout_millis: 1800000 + - name: CreateNodePool + long_running: + initial_poll_delay_millis: 1000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 10000 + total_poll_timeout_millis: 68400000 + - name: UpdateNodePool + long_running: + initial_poll_delay_millis: 1000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 10000 + total_poll_timeout_millis: 68400000 + - name: DeleteNodePool + long_running: + initial_poll_delay_millis: 1000 + poll_delay_multiplier: 2 + max_poll_delay_millis: 10000 + total_poll_timeout_millis: 1800000 diff --git a/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json b/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json index 63a6cde7c..ca8eb2dea 100644 --- a/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_grpc_service_config.json @@ -8,8 +8,10 @@ { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "ListVpnConnections" }, { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GetVpnConnection" }, { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "ListMachines" }, - { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GetMachine" } - + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GetMachine" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GenerateAccessToken" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GenerateOfflineCredential" }, + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GetServerConfig" } ], "timeout": "60s", "retryPolicy": { @@ -30,7 +32,7 @@ { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "DeleteNodePool" }, { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "CreateVpnConnection" }, { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "DeleteVpnConnection" }, - { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "GenerateAccessToken" } + { "service": "google.cloud.edgecontainer.v1.EdgeContainer", "method": "UpgradeCluster" } ], "timeout": "60s" }] diff --git a/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml b/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml index 1a98c93ba..235c6f716 100644 --- a/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml +++ b/third_party/googleapis/google/cloud/edgecontainer/v1/edgecontainer_v1.yaml @@ -20,17 +20,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: 'google.cloud.edgecontainer.v1.EdgeContainer.*' - deadline: 60.0 - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/edgecontainer/v1/resources.proto b/third_party/googleapis/google/cloud/edgecontainer/v1/resources.proto index 35fb43d40..08b99a646 100644 --- a/third_party/googleapis/google/cloud/edgecontainer/v1/resources.proto +++ b/third_party/googleapis/google/cloud/edgecontainer/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,13 +18,17 @@ package google.cloud.edgecontainer.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; +option csharp_namespace = "Google.Cloud.EdgeContainer.V1"; option go_package = "cloud.google.com/go/edgecontainer/apiv1/edgecontainerpb;edgecontainerpb"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.google.cloud.edgecontainer.v1"; +option php_namespace = "Google\\Cloud\\EdgeContainer\\V1"; +option ruby_package = "Google::Cloud::EdgeContainer::V1"; option (google.api.resource_definition) = { type: "cloudkms.googleapis.com/CryptoKey" pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" @@ -55,6 +59,244 @@ message Cluster { pattern: "projects/{project}/locations/{location}/clusters/{cluster}" }; + // Configuration of the cluster control plane. + message ControlPlane { + // Configuration specific to clusters with a control plane hosted remotely. + message Remote {} + + // Configuration specific to clusters with a control plane hosted locally. + // + // Warning: Local control plane clusters must be created in their own + // project. Local control plane clusters cannot coexist in the same + // project with any other type of clusters, including non-GDCE clusters. + // Mixing local control plane GDCE clusters with any other type of + // clusters in the same project can result in data loss. + message Local { + // Name of the Google Distributed Cloud Edge zones where this node pool + // will be created. For example: `us-central1-edge-customer-a`. + string node_location = 1; + + // The number of nodes to serve as replicas of the Control Plane. + int32 node_count = 2; + + // Only machines matching this filter will be allowed to host control + // plane nodes. The filtering language accepts strings like "name=", + // and is documented here: [AIP-160](https://google.aip.dev/160). + string machine_filter = 3; + + // Policy configuration about how user applications are deployed. + SharedDeploymentPolicy shared_deployment_policy = 4; + } + + // Represents the policy configuration about how user applications are + // deployed. + enum SharedDeploymentPolicy { + // Unspecified. + SHARED_DEPLOYMENT_POLICY_UNSPECIFIED = 0; + + // User applications can be deployed both on control plane and worker + // nodes. + ALLOWED = 1; + + // User applications can not be deployed on control plane nodes and can + // only be deployed on worker nodes. + DISALLOWED = 2; + } + + oneof config { + // Remote control plane configuration. + Remote remote = 1; + + // Local control plane configuration. + // + // Warning: Local control plane clusters must be created in their own + // project. Local control plane clusters cannot coexist in the same + // project with any other type of clusters, including non-GDCE clusters. + // Mixing local control plane GDCE clusters with any other type of + // clusters in the same project can result in data loss. + Local local = 2; + } + } + + // Config that customers are allowed to define for GDCE system add-ons. + message SystemAddonsConfig { + // Config for the Ingress add-on which allows customers to create an Ingress + // object to manage external access to the servers in a cluster. The add-on + // consists of istiod and istio-ingress. + message Ingress { + // Optional. Whether Ingress is disabled. + bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Ingress VIP. + string ipv4_vip = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Config for Ingress. + Ingress ingress = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Configuration for Customer-managed KMS key support for remote control plane + // cluster disk encryption. + message ControlPlaneEncryption { + // Immutable. The Cloud KMS CryptoKey e.g. + // projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} + // to use for protecting control plane disks. If not specified, a + // Google-managed key will be used instead. + string kms_key = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. The Cloud KMS CryptoKeyVersion currently in use for + // protecting control plane disks. Only applicable if kms_key is set. + string kms_key_active_version = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + } + ]; + + // Output only. Availability of the Cloud KMS CryptoKey. If not + // `KEY_AVAILABLE`, then nodes may go offline as they cannot access their + // local data. This can be caused by a lack of permissions to use the key, + // or if the key is disabled or deleted. + KmsKeyState kms_key_state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error status returned by Cloud KMS when using this key. This + // field may be populated only if `kms_key_state` is not + // `KMS_KEY_STATE_KEY_AVAILABLE`. If populated, this field contains the + // error status reported by Cloud KMS. + google.rpc.Status kms_status = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // A Maintenance Event is an operation that could cause temporary disruptions + // to the cluster workloads, including Google-driven or user-initiated cluster + // upgrades, user-initiated cluster configuration changes that require + // restarting nodes, etc. + message MaintenanceEvent { + // Indicates the maintenance event type. + enum Type { + // Unspecified. + TYPE_UNSPECIFIED = 0; + + // Upgrade initiated by users. + USER_INITIATED_UPGRADE = 1; + + // Upgrade driven by Google. + GOOGLE_DRIVEN_UPGRADE = 2; + } + + // Indicates when the maintenance event should be performed. + enum Schedule { + // Unspecified. + SCHEDULE_UNSPECIFIED = 0; + + // Immediately after receiving the request. + IMMEDIATELY = 1; + } + + // Indicates the maintenance event state. + enum State { + // Unspecified. + STATE_UNSPECIFIED = 0; + + // The maintenance event is ongoing. The cluster might be unusable. + RECONCILING = 1; + + // The maintenance event succeeded. + SUCCEEDED = 2; + + // The maintenance event failed. + FAILED = 3; + } + + // Output only. UUID of the maintenance event. + string uuid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The target version of the cluster. + string target_version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The operation for running the maintenance event. Specified + // in the format projects/*/locations/*/operations/*. If the maintenance + // event is split into multiple operations (e.g. due to maintenance + // windows), the latest one is recorded. + string operation = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the maintenance event. + Type type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The schedule of the maintenance event. + Schedule schedule = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of the maintenance event. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the maintenance event request was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the maintenance event started. + google.protobuf.Timestamp start_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the maintenance event ended, either + // successfully or not. If the maintenance event is split into multiple + // maintenance windows, end_time is only updated when the whole flow ends. + google.protobuf.Timestamp end_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the maintenance event message was updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Configuration of the cluster survivability, e.g., for the case when network + // connectivity is lost. + message SurvivabilityConfig { + // Optional. Time period that allows the cluster nodes to be rebooted and + // become functional without network connectivity to Google. The default 0 + // means not allowed. The maximum is 7 days. + google.protobuf.Duration offline_reboot_ttl = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Indicates the status of the cluster. + enum Status { + // Status unknown. + STATUS_UNSPECIFIED = 0; + + // The cluster is being created. + PROVISIONING = 1; + + // The cluster is created and fully usable. + RUNNING = 2; + + // The cluster is being deleted. + DELETING = 3; + + // The status indicates that some errors occurred while reconciling/deleting + // the cluster. + ERROR = 4; + + // The cluster is undergoing some work such as version upgrades, etc. + RECONCILING = 5; + } + + // The release channel a cluster is subscribed to. + enum ReleaseChannel { + // Unspecified release channel. This will default to the REGULAR channel. + RELEASE_CHANNEL_UNSPECIFIED = 0; + + // No release channel. + NONE = 1; + + // Regular release channel. + REGULAR = 2; + } + // Required. The resource name of the cluster. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -64,16 +306,18 @@ message Cluster { ]; // Output only. The time when the cluster was created. - google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the cluster was last updated. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Labels associated with this resource. map labels = 4; - // Optional. Fleet configuration. - Fleet fleet = 11 [(google.api.field_behavior) = OPTIONAL]; + // Required. Fleet configuration. + Fleet fleet = 11 [(google.api.field_behavior) = REQUIRED]; // Required. Cluster-wide networking configuration. ClusterNetworking networking = 7 [(google.api.field_behavior) = REQUIRED]; @@ -84,32 +328,89 @@ message Cluster { (google.api.field_behavior) = IMMUTABLE ]; - // Optional. The default maximum number of pods per node used if a maximum value is not - // specified explicitly for a node pool in this cluster. If unspecified, the - // Kubernetes default value will be used. + // Optional. The default maximum number of pods per node used if a maximum + // value is not specified explicitly for a node pool in this cluster. If + // unspecified, the Kubernetes default value will be used. int32 default_max_pods_per_node = 8 [(google.api.field_behavior) = OPTIONAL]; // Output only. The IP address of the Kubernetes API server. string endpoint = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The port number of the Kubernetes API server. + int32 port = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The PEM-encoded public certificate of the cluster's CA. - string cluster_ca_certificate = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + string cluster_ca_certificate = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Cluster-wide maintenance policy configuration. - MaintenancePolicy maintenance_policy = 12 [(google.api.field_behavior) = OPTIONAL]; + MaintenancePolicy maintenance_policy = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The control plane release version + string control_plane_version = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The lowest release version among all worker nodes. This field + // can be empty if the cluster does not have any worker nodes. + string node_version = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The configuration of the cluster control plane. + ControlPlane control_plane = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The configuration of the system add-ons. + SystemAddonsConfig system_addons_config = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. IPv4 address pools for cluster data plane external load + // balancing. + repeated string external_load_balancer_ipv4_address_pools = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Remote control plane disk encryption options. This field is only + // used when enabling CMEK support. + ControlPlaneEncryption control_plane_encryption = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current status of the cluster. + Status status = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. All the maintenance events scheduled for the cluster, + // including the ones ongoing, planned for the future and done in the past (up + // to 90 days). + repeated MaintenanceEvent maintenance_events = 21 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The target cluster version. For example: "1.5.0". + string target_version = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The release channel a cluster is subscribed to. + ReleaseChannel release_channel = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration of the cluster survivability, e.g., for the case + // when network connectivity is lost. Note: This only applies to local control + // plane clusters. + SurvivabilityConfig survivability_config = 24 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. IPv6 address pools for cluster data plane external load + // balancing. + repeated string external_load_balancer_ipv6_address_pools = 25 + [(google.api.field_behavior) = OPTIONAL]; } // Cluster-wide networking configuration. message ClusterNetworking { - // Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these - // blocks. Only a single block is supported. This field cannot be changed - // after creation. - repeated string cluster_ipv4_cidr_blocks = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. All services in the cluster are assigned an RFC1918 IPv4 address from these - // blocks. Only a single block is supported. This field cannot be changed - // after creation. - repeated string services_ipv4_cidr_blocks = 2 [(google.api.field_behavior) = REQUIRED]; + // Required. All pods in the cluster are assigned an RFC1918 IPv4 address from + // these blocks. Only a single block is supported. This field cannot be + // changed after creation. + repeated string cluster_ipv4_cidr_blocks = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. All services in the cluster are assigned an RFC1918 IPv4 address + // from these blocks. Only a single block is supported. This field cannot be + // changed after creation. + repeated string services_ipv4_cidr_blocks = 2 + [(google.api.field_behavior) = REQUIRED]; } // Fleet related configuration. @@ -118,13 +419,15 @@ message ClusterNetworking { // letting you use and manage multi-cluster capabilities and apply // consistent policies across your systems. message Fleet { - // Required. The name of the Fleet host project where this cluster will be registered. + // Required. The name of the Fleet host project where this cluster will be + // registered. // // Project names are formatted as // `projects/`. string project = 1 [(google.api.field_behavior) = REQUIRED]; - // Output only. The name of the managed Hub Membership resource associated to this cluster. + // Output only. The name of the managed Hub Membership resource associated to + // this cluster. // // Membership names are formatted as // `projects//locations/global/membership/`. @@ -139,9 +442,9 @@ message ClusterUser { // RBAC policy that will be applied and managed by GEC. message Authorization { - // Required. User that will be granted the cluster-admin role on the cluster, providing - // full access to the cluster. Currently, this is a singular field, but will - // be expanded to allow multiple admins in the future. + // Required. User that will be granted the cluster-admin role on the cluster, + // providing full access to the cluster. Currently, this is a singular field, + // but will be expanded to allow multiple admins in the future. ClusterUser admin_users = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -166,8 +469,8 @@ message NodePool { } ]; - // Output only. The Cloud KMS CryptoKeyVersion currently in use for protecting node local - // disks. Only applicable if kms_key is set. + // Output only. The Cloud KMS CryptoKeyVersion currently in use for + // protecting node local disks. Only applicable if kms_key is set. string kms_key_active_version = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -175,16 +478,24 @@ message NodePool { } ]; - // Output only. Availability of the Cloud KMS CryptoKey. If not `KEY_AVAILABLE`, then - // nodes may go offline as they cannot access their local data. This can be - // caused by a lack of permissions to use the key, or if the key is disabled - // or deleted. + // Output only. Availability of the Cloud KMS CryptoKey. If not + // `KEY_AVAILABLE`, then nodes may go offline as they cannot access their + // local data. This can be caused by a lack of permissions to use the key, + // or if the key is disabled or deleted. KmsKeyState kms_key_state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Error status returned by Cloud KMS when using this key. This field may be - // populated only if `kms_key_state` is not `KMS_KEY_STATE_KEY_AVAILABLE`. - // If populated, this field contains the error status reported by Cloud KMS. - google.rpc.Status kms_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Error status returned by Cloud KMS when using this key. This + // field may be populated only if `kms_key_state` is not + // `KMS_KEY_STATE_KEY_AVAILABLE`. If populated, this field contains the + // error status reported by Cloud KMS. + google.rpc.Status kms_status = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Configuration for each node in the NodePool + message NodeConfig { + // Optional. The Kubernetes node labels + map labels = 1 [(google.api.field_behavior) = OPTIONAL]; } // Required. The resource name of the node pool. @@ -196,10 +507,12 @@ message NodePool { ]; // Output only. The time when the node pool was created. - google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the node pool was last updated. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Labels associated with this resource. map labels = 4; @@ -216,9 +529,16 @@ message NodePool { // documented in more detail in [AIP-160](https://google.aip.dev/160). string machine_filter = 7; - // Optional. Local disk encryption options. This field is only used when enabling CMEK - // support. - LocalDiskEncryption local_disk_encryption = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Local disk encryption options. This field is only used when + // enabling CMEK support. + LocalDiskEncryption local_disk_encryption = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The lowest release version among all worker nodes. + string node_version = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Configuration for each node in the NodePool + NodeConfig node_config = 11 [(google.api.field_behavior) = OPTIONAL]; } // A Google Distributed Cloud Edge machine capable of acting as a Kubernetes @@ -238,10 +558,12 @@ message Machine { ]; // Output only. The time when the node pool was created. - google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the node pool was last updated. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Labels associated with this resource. map labels = 4; @@ -250,13 +572,20 @@ message Machine { // hosting e.g. // projects/{project}/locations/{location}/clusters/{cluster_id}/nodePools/{pool_id}/{node}, // Or empty if the machine is not assigned to assume the role of a node. + // + // For control plane nodes hosted on edge machines, this will return + // the following format: + // "projects/{project}/locations/{location}/clusters/{cluster_id}/controlPlaneNodes/{node}". string hosted_node = 5; // The Google Distributed Cloud Edge zone of this machine. string zone = 6; - // Output only. Whether the machine is disabled. If disabled, the machine is unable to - // enter service. + // Output only. The software version of the machine. + string version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the machine is disabled. If disabled, the machine is + // unable to enter service. bool disabled = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -273,20 +602,21 @@ message VpnConnection { // the cluster project. string project_id = 1; - // Optional. The service account in the VPC project configured by user. It is used to - // create/delete Cloud Router and Cloud HA VPNs for VPN connection. If this - // SA is changed during/after a VPN connection is created, you need to - // remove the Cloud Router and Cloud VPN resources in |project_id|. - // It is in the form of + // Optional. The service account in the VPC project configured by user. It + // is used to create/delete Cloud Router and Cloud HA VPNs for VPN + // connection. If this SA is changed during/after a VPN connection is + // created, you need to remove the Cloud Router and Cloud VPN resources in + // |project_id|. It is in the form of // service-{project_number}@gcp-sa-edgecontainer.iam.gserviceaccount.com. - string service_account = 2 [(google.api.field_behavior) = OPTIONAL]; + string service_account = 2 + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; } // The created connection details. message Details { // The Cloud Router info. message CloudRouter { - // The created Cloud Router name. + // The associated Cloud Router name. string name = 1; } @@ -345,10 +675,12 @@ message VpnConnection { ]; // Output only. The time when the VPN connection was created. - google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when the VPN connection was last updated. - google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Labels associated with this resource. map labels = 4; @@ -364,25 +696,29 @@ message VpnConnection { // The canonical Cluster name to connect to. It is in the form of // projects/{project}/locations/{location}/clusters/{cluster}. string cluster = 7 [(google.api.resource_reference) = { - type: "edgecontainer.googleapis.com/Cluster" - }]; + type: "edgecontainer.googleapis.com/Cluster" + }]; // The network ID of VPC to connect to. string vpc = 8; - // Optional. Project detail of the VPC network. Required if VPC is in a different - // project than the cluster project. + // Optional. Project detail of the VPC network. Required if VPC is in a + // different project than the cluster project. VpcProject vpc_project = 11 [(google.api.field_behavior) = OPTIONAL]; // Whether this VPN connection has HA enabled on cluster side. If enabled, // when creating VPN connection we will attempt to use 2 ANG floating IPs. bool enable_high_availability = 9; + // Optional. The VPN connection Cloud Router name. + string router = 12 [(google.api.field_behavior) = OPTIONAL]; + // Output only. The created connection details. Details details = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Metadata for a given [google.cloud.location.Location][google.cloud.location.Location]. +// Metadata for a given +// [google.cloud.location.Location][google.cloud.location.Location]. message LocationMetadata { // The set of available Google Distributed Cloud Edge zones in the location. // The map is keyed by the lowercase ID of each zone. @@ -391,8 +727,25 @@ message LocationMetadata { // A Google Distributed Cloud Edge zone where edge machines are located. message ZoneMetadata { + // Type of the rack. + enum RackType { + // Unspecified rack type, single rack also belongs to this type. + RACK_TYPE_UNSPECIFIED = 0; + + // Base rack type, a pair of two modified Config-1 racks containing + // Aggregation switches. + BASE = 1; + + // Expansion rack type, also known as standalone racks, + // added by customers on demand. + EXPANSION = 2; + } + // Quota for resources in this zone. repeated Quota quota = 1; + + // The map keyed by rack name and has value of RackType. + map rack_types = 2; } // Represents quota for Edge Container resources. @@ -439,3 +792,28 @@ message TimeWindow { // start time. google.protobuf.Timestamp end_time = 2; } + +// Server configuration for supported versions and release channels. +message ServerConfig { + // Output only. Mapping from release channel to channel config. + map channels = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Supported versions, e.g.: ["1.4.0", "1.5.0"]. + repeated Version versions = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Default version, e.g.: "1.4.0". + string default_version = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for a release channel. +message ChannelConfig { + // Output only. Default version for this release channel, e.g.: "1.4.0". + string default_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Version of a cluster. +message Version { + // Output only. Name of the version, e.g.: "1.4.0". + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/edgecontainer/v1/service.proto b/third_party/googleapis/google/cloud/edgecontainer/v1/service.proto index 5ff6020a1..3c9373ad1 100644 --- a/third_party/googleapis/google/cloud/edgecontainer/v1/service.proto +++ b/third_party/googleapis/google/cloud/edgecontainer/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,16 +25,20 @@ import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +option csharp_namespace = "Google.Cloud.EdgeContainer.V1"; option go_package = "cloud.google.com/go/edgecontainer/apiv1/edgecontainerpb;edgecontainerpb"; option java_multiple_files = true; option java_outer_classname = "ServiceProto"; option java_package = "com.google.cloud.edgecontainer.v1"; +option php_namespace = "Google\\Cloud\\EdgeContainer\\V1"; +option ruby_package = "Google::Cloud::EdgeContainer::V1"; // EdgeContainer API provides management of Kubernetes Clusters on Google Edge // Cloud deployments. service EdgeContainer { option (google.api.default_host) = "edgecontainer.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; // Lists Clusters in a given project and location. rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) { @@ -53,7 +57,8 @@ service EdgeContainer { } // Creates a new Cluster in a given project and location. - rpc CreateCluster(CreateClusterRequest) returns (google.longrunning.Operation) { + rpc CreateCluster(CreateClusterRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/clusters" body: "cluster" @@ -66,7 +71,8 @@ service EdgeContainer { } // Updates the parameters of a single Cluster. - rpc UpdateCluster(UpdateClusterRequest) returns (google.longrunning.Operation) { + rpc UpdateCluster(UpdateClusterRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{cluster.name=projects/*/locations/*/clusters/*}" body: "cluster" @@ -78,8 +84,23 @@ service EdgeContainer { }; } + // Upgrades a single cluster. + rpc UpgradeCluster(UpgradeClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/clusters/*}:upgrade" + body: "*" + }; + option (google.api.method_signature) = "name,target_version,schedule"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "OperationMetadata" + }; + } + // Deletes a single Cluster. - rpc DeleteCluster(DeleteClusterRequest) returns (google.longrunning.Operation) { + rpc DeleteCluster(DeleteClusterRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/clusters/*}" }; @@ -91,13 +112,23 @@ service EdgeContainer { } // Generates an access token for a Cluster. - rpc GenerateAccessToken(GenerateAccessTokenRequest) returns (GenerateAccessTokenResponse) { + rpc GenerateAccessToken(GenerateAccessTokenRequest) + returns (GenerateAccessTokenResponse) { option (google.api.http) = { get: "/v1/{cluster=projects/*/locations/*/clusters/*}:generateAccessToken" }; option (google.api.method_signature) = "cluster"; } + // Generates an offline credential for a Cluster. + rpc GenerateOfflineCredential(GenerateOfflineCredentialRequest) + returns (GenerateOfflineCredentialResponse) { + option (google.api.http) = { + get: "/v1/{cluster=projects/*/locations/*/clusters/*}:generateOfflineCredential" + }; + option (google.api.method_signature) = "cluster"; + } + // Lists NodePools in a given project and location. rpc ListNodePools(ListNodePoolsRequest) returns (ListNodePoolsResponse) { option (google.api.http) = { @@ -115,7 +146,8 @@ service EdgeContainer { } // Creates a new NodePool in a given project and location. - rpc CreateNodePool(CreateNodePoolRequest) returns (google.longrunning.Operation) { + rpc CreateNodePool(CreateNodePoolRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools" body: "node_pool" @@ -128,7 +160,8 @@ service EdgeContainer { } // Updates the parameters of a single NodePool. - rpc UpdateNodePool(UpdateNodePoolRequest) returns (google.longrunning.Operation) { + rpc UpdateNodePool(UpdateNodePoolRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{node_pool.name=projects/*/locations/*/clusters/*/nodePools/*}" body: "node_pool" @@ -141,7 +174,8 @@ service EdgeContainer { } // Deletes a single NodePool. - rpc DeleteNodePool(DeleteNodePoolRequest) returns (google.longrunning.Operation) { + rpc DeleteNodePool(DeleteNodePoolRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}" }; @@ -169,7 +203,8 @@ service EdgeContainer { } // Lists VPN connections in a given project and location. - rpc ListVpnConnections(ListVpnConnectionsRequest) returns (ListVpnConnectionsResponse) { + rpc ListVpnConnections(ListVpnConnectionsRequest) + returns (ListVpnConnectionsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*}/vpnConnections" }; @@ -185,12 +220,14 @@ service EdgeContainer { } // Creates a new VPN connection in a given project and location. - rpc CreateVpnConnection(CreateVpnConnectionRequest) returns (google.longrunning.Operation) { + rpc CreateVpnConnection(CreateVpnConnectionRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/vpnConnections" body: "vpn_connection" }; - option (google.api.method_signature) = "parent,vpn_connection,vpn_connection_id"; + option (google.api.method_signature) = + "parent,vpn_connection,vpn_connection_id"; option (google.longrunning.operation_info) = { response_type: "VpnConnection" metadata_type: "OperationMetadata" @@ -198,7 +235,8 @@ service EdgeContainer { } // Deletes a single VPN connection. - rpc DeleteVpnConnection(DeleteVpnConnectionRequest) returns (google.longrunning.Operation) { + rpc DeleteVpnConnection(DeleteVpnConnectionRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/vpnConnections/*}" }; @@ -208,6 +246,14 @@ service EdgeContainer { metadata_type: "OperationMetadata" }; } + + // Gets the server config. + rpc GetServerConfig(GetServerConfigRequest) returns (ServerConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*}/serverConfig" + }; + option (google.api.method_signature) = "name"; + } } // Long-running operation metadata for Edge Container API methods. @@ -229,12 +275,16 @@ message OperationMetadata { // Identifies whether the user has requested cancellation of the operation. // Operations that have successfully been cancelled have [Operation.error][] - // value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to - // `Code.CANCELLED`. + // value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. bool requested_cancellation = 6; // API version used to start the operation. string api_version = 7; + + // Warnings that do not block the operation, but still hold relevant + // information for the end user to receive. + repeated string warnings = 8; } // Lists clusters in a location. @@ -324,6 +374,39 @@ message UpdateClusterRequest { string request_id = 3; } +// Upgrades a cluster. +message UpgradeClusterRequest { + // Represents the schedule about when the cluster is going to be upgraded. + enum Schedule { + // Unspecified. The default is to upgrade the cluster immediately which is + // the only option today. + SCHEDULE_UNSPECIFIED = 0; + + // The cluster is going to be upgraded immediately after receiving the + // request. + IMMEDIATELY = 1; + } + + // Required. The resource name of the cluster. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Cluster" + } + ]; + + // Required. The version the cluster is going to be upgraded to. + string target_version = 2 [(google.api.field_behavior) = REQUIRED]; + + // The schedule for the upgrade. + Schedule schedule = 3; + + // A unique identifier for this request. Restricted to 36 ASCII characters. A + // random UUID is recommended. This request is only idempotent if + // `request_id` is provided. + string request_id = 4; +} + // Deletes a cluster. message DeleteClusterRequest { // Required. The resource name of the cluster. @@ -357,7 +440,35 @@ message GenerateAccessTokenResponse { string access_token = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Timestamp at which the token will expire. - google.protobuf.Timestamp expire_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp expire_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Generates an offline credential(offline) for a cluster. +message GenerateOfflineCredentialRequest { + // Required. The resource name of the cluster. + string cluster = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "edgecontainer.googleapis.com/Cluster" + } + ]; +} + +// An offline credential for a cluster. +message GenerateOfflineCredentialResponse { + // Output only. Client certificate to authenticate to k8s api-server. + string client_certificate = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Client private key to authenticate to k8s api-server. + string client_key = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Client's identity. + string user_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp at which this credential will expire. + google.protobuf.Timestamp expire_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Lists node pools in a cluster. @@ -510,7 +621,8 @@ message GetMachineRequest { // Lists VPN connections. message ListVpnConnectionsRequest { - // Required. The parent location, which owns this collection of VPN connections. + // Required. The parent location, which owns this collection of VPN + // connections. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -591,3 +703,15 @@ message DeleteVpnConnectionRequest { // `request_id` is provided. string request_id = 2; } + +// Gets the server config. +message GetServerConfigRequest { + // Required. The name (project and location) of the server config to get, + // specified in the format `projects/*/locations/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/edgenetwork/v1/BUILD.bazel b/third_party/googleapis/google/cloud/edgenetwork/v1/BUILD.bazel index f81f1d632..6da8a54c9 100644 --- a/third_party/googleapis/google/cloud/edgenetwork/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/edgenetwork/v1/BUILD.bazel @@ -136,7 +136,7 @@ go_gapic_library( grpc_service_config = "edgenetwork_grpc_service_config.json", importpath = "cloud.google.com/go/edgenetwork/apiv1;edgenetwork", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "edgenetwork_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/edgenetwork/v1/resources.proto b/third_party/googleapis/google/cloud/edgenetwork/v1/resources.proto index 063ba5a9e..254dfade6 100644 --- a/third_party/googleapis/google/cloud/edgenetwork/v1/resources.proto +++ b/third_party/googleapis/google/cloud/edgenetwork/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -71,11 +71,13 @@ message Zone { google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Labels as key value pairs - map labels = 4; + // Deprecated: not implemented. + // Labels as key value pairs. + map labels = 4 [deprecated = true]; + // Deprecated: not implemented. // The deployment layout type. - string layout_name = 5; + string layout_name = 5 [deprecated = true]; } // Message describing Network object @@ -116,6 +118,22 @@ message Subnet { pattern: "projects/{project}/locations/{location}/zones/{zone}/subnets/{subnet}" }; + // Bonding type in the subnet. + enum BondingType { + // Unspecified + // Bonding type will be unspecified by default and if the user chooses to + // not specify a bonding type at time of creating the VLAN. This will be + // treated as mixed bonding where the VLAN will have both bonded and + // non-bonded connectivity to machines. + BONDING_TYPE_UNSPECIFIED = 0; + + // Single homed. + BONDED = 1; + + // Multi homed. + NON_BONDED = 2; + } + // Required. The canonical resource name of the subnet. string name = 1 [(google.api.field_behavior) = REQUIRED]; @@ -152,6 +170,13 @@ message Subnet { // automatically. int32 vlan_id = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. A bonding type in the subnet creation specifies whether a VLAN + // being created will be present on Bonded or Non-Bonded or Both port types. + // In addition, this flag is to be used to set the specific network + // configuration which clusters can then use for their workloads based on the + // bonding choice. + BondingType bonding_type = 11 [(google.api.field_behavior) = OPTIONAL]; + // Output only. Current stage of the resource to the device by config push. ResourceState state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/edgenetwork/v1/service.proto b/third_party/googleapis/google/cloud/edgenetwork/v1/service.proto index b5126c485..bbbb06d1f 100644 --- a/third_party/googleapis/google/cloud/edgenetwork/v1/service.proto +++ b/third_party/googleapis/google/cloud/edgenetwork/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -52,16 +52,20 @@ service EdgeNetwork { option (google.api.method_signature) = "name"; } + // Deprecated: not implemented. // Lists Zones in a given project and location. rpc ListZones(ListZonesRequest) returns (ListZonesResponse) { + option deprecated = true; option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*}/zones" }; option (google.api.method_signature) = "parent"; } + // Deprecated: not implemented. // Gets details of a single Zone. rpc GetZone(GetZoneRequest) returns (Zone) { + option deprecated = true; option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/zones/*}" }; @@ -309,8 +313,11 @@ service EdgeNetwork { } } +// Deprecated: not implemented. // Message for requesting list of Zones message ListZonesRequest { + option deprecated = true; + // Required. Parent value for ListZonesRequest string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -333,8 +340,11 @@ message ListZonesRequest { string order_by = 5; } +// Deprecated: not implemented. // Message for response to listing Zones message ListZonesResponse { + option deprecated = true; + // The list of Zone repeated Zone zones = 1; @@ -345,8 +355,11 @@ message ListZonesResponse { repeated string unreachable = 3; } +// Deprecated: not implemented. // Message for getting a Zone message GetZoneRequest { + option deprecated = true; + // Required. Name of the resource string name = 1 [ (google.api.field_behavior) = REQUIRED, diff --git a/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/job_state.proto b/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/job_state.proto index d36bac078..10a90624f 100644 --- a/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/job_state.proto +++ b/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/job_state.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto b/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto index 613483b3c..5e1aa316c 100644 --- a/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto +++ b/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/operation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/service.proto b/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/service.proto index 9f724acb5..583ccdf59 100644 --- a/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/service.proto +++ b/third_party/googleapis/google/cloud/enterpriseknowledgegraph/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/essentialcontacts/v1/BUILD.bazel b/third_party/googleapis/google/cloud/essentialcontacts/v1/BUILD.bazel index 884b641a9..b4ba8d78d 100644 --- a/third_party/googleapis/google/cloud/essentialcontacts/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/essentialcontacts/v1/BUILD.bazel @@ -196,7 +196,7 @@ php_gapic_library( name = "essentialcontacts_php_gapic", srcs = [":essentialcontacts_proto_with_info"], grpc_service_config = "essentialcontacts_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "essentialcontacts_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/essentialcontacts/v1/enums.proto b/third_party/googleapis/google/cloud/essentialcontacts/v1/enums.proto index b59b36f1e..f0a21d966 100644 --- a/third_party/googleapis/google/cloud/essentialcontacts/v1/enums.proto +++ b/third_party/googleapis/google/cloud/essentialcontacts/v1/enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/essentialcontacts/v1/service.proto b/third_party/googleapis/google/cloud/essentialcontacts/v1/service.proto index 7064c0272..cba12cca7 100644 --- a/third_party/googleapis/google/cloud/essentialcontacts/v1/service.proto +++ b/third_party/googleapis/google/cloud/essentialcontacts/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/publishing/v1/publisher.proto b/third_party/googleapis/google/cloud/eventarc/publishing/v1/publisher.proto index 53ca8f438..25f7e0c05 100644 --- a/third_party/googleapis/google/cloud/eventarc/publishing/v1/publisher.proto +++ b/third_party/googleapis/google/cloud/eventarc/publishing/v1/publisher.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/v1/channel.proto b/third_party/googleapis/google/cloud/eventarc/v1/channel.proto index dde0f6070..83942c9dc 100644 --- a/third_party/googleapis/google/cloud/eventarc/v1/channel.proto +++ b/third_party/googleapis/google/cloud/eventarc/v1/channel.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/v1/channel_connection.proto b/third_party/googleapis/google/cloud/eventarc/v1/channel_connection.proto index 01fac685d..f00e5ed2e 100644 --- a/third_party/googleapis/google/cloud/eventarc/v1/channel_connection.proto +++ b/third_party/googleapis/google/cloud/eventarc/v1/channel_connection.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/v1/discovery.proto b/third_party/googleapis/google/cloud/eventarc/v1/discovery.proto index f2671580f..bedf2335b 100644 --- a/third_party/googleapis/google/cloud/eventarc/v1/discovery.proto +++ b/third_party/googleapis/google/cloud/eventarc/v1/discovery.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/v1/eventarc.proto b/third_party/googleapis/google/cloud/eventarc/v1/eventarc.proto index 95ba4f7c5..3401a5804 100644 --- a/third_party/googleapis/google/cloud/eventarc/v1/eventarc.proto +++ b/third_party/googleapis/google/cloud/eventarc/v1/eventarc.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/v1/google_channel_config.proto b/third_party/googleapis/google/cloud/eventarc/v1/google_channel_config.proto index af00ef25e..6cb3fec3b 100644 --- a/third_party/googleapis/google/cloud/eventarc/v1/google_channel_config.proto +++ b/third_party/googleapis/google/cloud/eventarc/v1/google_channel_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/eventarc/v1/trigger.proto b/third_party/googleapis/google/cloud/eventarc/v1/trigger.proto index a2e86a653..4f591a8e6 100644 --- a/third_party/googleapis/google/cloud/eventarc/v1/trigger.proto +++ b/third_party/googleapis/google/cloud/eventarc/v1/trigger.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/extended_operations.proto b/third_party/googleapis/google/cloud/extended_operations.proto index 1477d2d69..2f86c3745 100644 --- a/third_party/googleapis/google/cloud/extended_operations.proto +++ b/third_party/googleapis/google/cloud/extended_operations.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/filestore/v1/cloud_filestore_service.proto b/third_party/googleapis/google/cloud/filestore/v1/cloud_filestore_service.proto index 1981d3459..2a3fc262b 100644 --- a/third_party/googleapis/google/cloud/filestore/v1/cloud_filestore_service.proto +++ b/third_party/googleapis/google/cloud/filestore/v1/cloud_filestore_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/filestore/v1beta1/cloud_filestore_service.proto b/third_party/googleapis/google/cloud/filestore/v1beta1/cloud_filestore_service.proto index 07ce66e3b..191987ba6 100644 --- a/third_party/googleapis/google/cloud/filestore/v1beta1/cloud_filestore_service.proto +++ b/third_party/googleapis/google/cloud/filestore/v1beta1/cloud_filestore_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/functions/v1/functions.proto b/third_party/googleapis/google/cloud/functions/v1/functions.proto index a866c5114..5ddc59fa8 100644 --- a/third_party/googleapis/google/cloud/functions/v1/functions.proto +++ b/third_party/googleapis/google/cloud/functions/v1/functions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/functions/v1/operations.proto b/third_party/googleapis/google/cloud/functions/v1/operations.proto index 1a9ba1889..53a835f45 100644 --- a/third_party/googleapis/google/cloud/functions/v1/operations.proto +++ b/third_party/googleapis/google/cloud/functions/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/functions/v2/functions.proto b/third_party/googleapis/google/cloud/functions/v2/functions.proto index ae0cdc1ef..546782d7d 100644 --- a/third_party/googleapis/google/cloud/functions/v2/functions.proto +++ b/third_party/googleapis/google/cloud/functions/v2/functions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/functions/v2alpha/functions.proto b/third_party/googleapis/google/cloud/functions/v2alpha/functions.proto index 3c96518d7..8b6484b5c 100644 --- a/third_party/googleapis/google/cloud/functions/v2alpha/functions.proto +++ b/third_party/googleapis/google/cloud/functions/v2alpha/functions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/functions/v2beta/functions.proto b/third_party/googleapis/google/cloud/functions/v2beta/functions.proto index a8f89d5a4..aaadace26 100644 --- a/third_party/googleapis/google/cloud/functions/v2beta/functions.proto +++ b/third_party/googleapis/google/cloud/functions/v2beta/functions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gdchardwaremanagement/BUILD.bazel b/third_party/googleapis/google/cloud/gdchardwaremanagement/BUILD.bazel new file mode 100644 index 000000000..65ddae80b --- /dev/null +++ b/third_party/googleapis/google/cloud/gdchardwaremanagement/BUILD.bazel @@ -0,0 +1,38 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-gdc_hardware_management. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for gdchardwaremanagement. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1alpha in this case. +ruby_cloud_gapic_library( + name = "gdchardwaremanagement_ruby_wrapper", + srcs = ["//google/cloud/gdchardwaremanagement/v1alpha:gdchardwaremanagement_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-gdc_hardware_management", + "ruby-cloud-wrapper-of=v1alpha:0.0", + "ruby-cloud-gem-namespace=Google::Cloud::GDCHardwareManagement", + "ruby-cloud-service-override=GdcHardwareManagement=GDCHardwareManagement", + ], + service_yaml = "//google/cloud/gdchardwaremanagement/v1alpha:gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-gdchardwaremanagement-ruby", + deps = [ + ":gdchardwaremanagement_ruby_wrapper", + ], +) \ No newline at end of file diff --git a/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/BUILD.bazel b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/BUILD.bazel new file mode 100644 index 000000000..05bdeb3df --- /dev/null +++ b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/BUILD.bazel @@ -0,0 +1,405 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "gdchardwaremanagement_proto", + srcs = [ + "resources.proto", + "service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "//google/type:date_proto", + "//google/type:datetime_proto", + "//google/type:dayofweek_proto", + "//google/type:postal_address_proto", + "//google/type:timeofday_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "gdchardwaremanagement_proto_with_info", + deps = [ + ":gdchardwaremanagement_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "gdchardwaremanagement_java_proto", + deps = [":gdchardwaremanagement_proto"], +) + +java_grpc_library( + name = "gdchardwaremanagement_java_grpc", + srcs = [":gdchardwaremanagement_proto"], + deps = [":gdchardwaremanagement_java_proto"], +) + +java_gapic_library( + name = "gdchardwaremanagement_java_gapic", + srcs = [":gdchardwaremanagement_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + test_deps = [ + ":gdchardwaremanagement_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":gdchardwaremanagement_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "gdchardwaremanagement_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagementClientHttpJsonTest", + "com.google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagementClientTest", + ], + runtime_deps = [":gdchardwaremanagement_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gdchardwaremanagement-v1alpha-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":gdchardwaremanagement_java_gapic", + ":gdchardwaremanagement_java_grpc", + ":gdchardwaremanagement_java_proto", + ":gdchardwaremanagement_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "gdchardwaremanagement_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/gdchardwaremanagement/apiv1alpha/gdchardwaremanagementpb", + protos = [":gdchardwaremanagement_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", + "//google/type:datetime_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:postaladdress_go_proto", + "//google/type:timeofday_go_proto", + ], +) + +go_gapic_library( + name = "gdchardwaremanagement_go_gapic", + srcs = [":gdchardwaremanagement_proto_with_info"], + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + importpath = "cloud.google.com/go/gdchardwaremanagement/apiv1alpha;gdchardwaremanagement", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":gdchardwaremanagement_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-gdchardwaremanagement-v1alpha-go", + deps = [ + ":gdchardwaremanagement_go_gapic", + ":gdchardwaremanagement_go_gapic_srcjar-metadata.srcjar", + ":gdchardwaremanagement_go_gapic_srcjar-snippets.srcjar", + ":gdchardwaremanagement_go_gapic_srcjar-test.srcjar", + ":gdchardwaremanagement_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "gdchardwaremanagement_py_gapic", + srcs = [":gdchardwaremanagement_proto"], + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", +) + +py_test( + name = "gdchardwaremanagement_py_gapic_test", + srcs = [ + "gdchardwaremanagement_py_gapic_pytest.py", + "gdchardwaremanagement_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gdchardwaremanagement_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "gdchardwaremanagement-v1alpha-py", + deps = [ + ":gdchardwaremanagement_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "gdchardwaremanagement_php_proto", + deps = [":gdchardwaremanagement_proto"], +) + +php_gapic_library( + name = "gdchardwaremanagement_php_gapic", + srcs = [":gdchardwaremanagement_proto_with_info"], + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":gdchardwaremanagement_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-gdchardwaremanagement-v1alpha-php", + deps = [ + ":gdchardwaremanagement_php_gapic", + ":gdchardwaremanagement_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "gdchardwaremanagement_nodejs_gapic", + package_name = "@google-cloud/gdchardwaremanagement", + src = ":gdchardwaremanagement_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + package = "google.cloud.gdchardwaremanagement.v1alpha", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "gdchardwaremanagement-v1alpha-nodejs", + deps = [ + ":gdchardwaremanagement_nodejs_gapic", + ":gdchardwaremanagement_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "gdchardwaremanagement_ruby_proto", + deps = [":gdchardwaremanagement_proto"], +) + +ruby_grpc_library( + name = "gdchardwaremanagement_ruby_grpc", + srcs = [":gdchardwaremanagement_proto"], + deps = [":gdchardwaremanagement_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "gdchardwaremanagement_ruby_gapic", + srcs = [":gdchardwaremanagement_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-gdc_hardware_management-v1alpha", + "ruby-cloud-gem-namespace=Google::Cloud::GDCHardwareManagement::V1alpha", + "ruby-cloud-service-override=GdcHardwareManagement=GDCHardwareManagement", + ], + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":gdchardwaremanagement_ruby_grpc", + ":gdchardwaremanagement_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-gdchardwaremanagement-v1alpha-ruby", + deps = [ + ":gdchardwaremanagement_ruby_gapic", + ":gdchardwaremanagement_ruby_grpc", + ":gdchardwaremanagement_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "gdchardwaremanagement_csharp_proto", + deps = [":gdchardwaremanagement_proto"], +) + +csharp_grpc_library( + name = "gdchardwaremanagement_csharp_grpc", + srcs = [":gdchardwaremanagement_proto"], + deps = [":gdchardwaremanagement_csharp_proto"], +) + +csharp_gapic_library( + name = "gdchardwaremanagement_csharp_gapic", + srcs = [":gdchardwaremanagement_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "gdchardwaremanagement_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "gdchardwaremanagement_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":gdchardwaremanagement_csharp_grpc", + ":gdchardwaremanagement_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gdchardwaremanagement-v1alpha-csharp", + deps = [ + ":gdchardwaremanagement_csharp_gapic", + ":gdchardwaremanagement_csharp_grpc", + ":gdchardwaremanagement_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "gdchardwaremanagement_cc_proto", + deps = [":gdchardwaremanagement_proto"], +) + +cc_grpc_library( + name = "gdchardwaremanagement_cc_grpc", + srcs = [":gdchardwaremanagement_proto"], + grpc_only = True, + deps = [":gdchardwaremanagement_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha.yaml b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha.yaml new file mode 100644 index 000000000..d081e9ae4 --- /dev/null +++ b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha.yaml @@ -0,0 +1,99 @@ +type: google.api.Service +config_version: 3 +name: gdchardwaremanagement.googleapis.com +title: GDC Hardware Management API + +apis: +- name: google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement +- name: google.cloud.location.Locations +- name: google.longrunning.Operations + +types: +- name: google.cloud.gdchardwaremanagement.v1alpha.OperationMetadata + +documentation: + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1alpha/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1alpha/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1alpha/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1alpha/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1alpha/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1alpha/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1563150 + documentation_uri: https://cloud.google.com/distributed-cloud/edge/latest/docs + api_short_name: gdchardwaremanagement + github_label: 'api: gdchardwaremanagement' + doc_tag_prefix: gdchardwaremanagement + organization: CLOUD + library_settings: + - version: google.cloud.gdchardwaremanagement.v1alpha + launch_stage: ALPHA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/distributed-cloud/edge/latest/docs/reference/hardware/rpc diff --git a/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json new file mode 100644 index 000000000..ded97410c --- /dev/null +++ b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json @@ -0,0 +1,51 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteHardware" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteHardwareGroup" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteOrder" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteZone" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetChangeLogEntry" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetComment" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetHardware" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetHardwareGroup" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetOrder" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetSite" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetSku" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetZone" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListChangeLogEntries" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListComments" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListHardware" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListHardwareGroups" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListOrders" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListSites" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListSkus" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "ListZones" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "SubmitOrder" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "UpdateHardware" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "UpdateHardwareGroup" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "UpdateOrder" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "UpdateSite" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "UpdateZone" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "CreateComment" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "CreateHardware" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "CreateHardwareGroup" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "CreateOrder" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "CreateSite" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "CreateZone" } + ], + "timeout": "60s" + }] +} diff --git a/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/resources.proto b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/resources.proto new file mode 100644 index 000000000..86ff44fea --- /dev/null +++ b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/resources.proto @@ -0,0 +1,944 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.gdchardwaremanagement.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; +import "google/type/datetime.proto"; +import "google/type/dayofweek.proto"; +import "google/type/postal_address.proto"; +import "google/type/timeofday.proto"; + +option csharp_namespace = "Google.Cloud.GdcHardwareManagement.V1Alpha"; +option go_package = "cloud.google.com/go/gdchardwaremanagement/apiv1alpha/gdchardwaremanagementpb;gdchardwaremanagementpb"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.cloud.gdchardwaremanagement.v1alpha"; +option php_namespace = "Google\\Cloud\\GdcHardwareManagement\\V1alpha"; +option ruby_package = "Google::Cloud::GDCHardwareManagement::V1alpha"; + +// The power supply options. +enum PowerSupply { + // Power supply is unspecified. + POWER_SUPPLY_UNSPECIFIED = 0; + + // AC power supply. + POWER_SUPPLY_AC = 1; + + // DC power supply. + POWER_SUPPLY_DC = 2; +} + +// An order for GDC hardware. +message Order { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/Order" + pattern: "projects/{project}/locations/{location}/orders/{order}" + plural: "orders" + singular: "order" + }; + + // Valid states of an order. + enum State { + // State of the order is unspecified. + STATE_UNSPECIFIED = 0; + + // Order is being drafted by the customer and has not been submitted yet. + DRAFT = 1; + + // Order has been submitted to Google. + SUBMITTED = 2; + + // Order has been accepted by Google. + ACCEPTED = 3; + + // Order needs more information from the customer. + ADDITIONAL_INFO_NEEDED = 4; + + // Google has initiated building hardware for the order. + BUILDING = 5; + + // The hardware has been built and is being shipped. + SHIPPING = 6; + + // The hardware is being installed. + INSTALLING = 7; + + // An error occurred in processing the order and customer intervention is + // required. + FAILED = 8; + + // Order has been partially completed i.e., some hardware have been + // delivered and installed. + PARTIALLY_COMPLETED = 9; + + // Order has been completed. + COMPLETED = 10; + + // Order has been cancelled. + CANCELLED = 11; + } + + // Valid types of an Order. + enum Type { + // Type of the order is unspecified. + TYPE_UNSPECIFIED = 0; + + // Paid by the customer. + PAID = 1; + + // Proof of concept for the customer. + POC = 2; + } + + // Identifier. Name of this order. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Display name of this order. + string display_name = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Time when this order was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this order was last updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this order as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. State of this order. On order creation, state will be set to + // DRAFT. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Customer contact information. + OrganizationContact organization_contact = 6 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Customer specified workloads of interest targeted by this order. + // This must contain <= 20 elements and the length of each element must be <= + // 50 characters. + repeated string target_workloads = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Information about the customer's motivation for this order. The + // length of this field must be <= 1000 characters. + string customer_motivation = 8 [(google.api.field_behavior) = REQUIRED]; + + // Required. Customer specified deadline by when this order should be + // fulfilled. + google.protobuf.Timestamp fulfillment_time = 9 + [(google.api.field_behavior) = REQUIRED]; + + // Required. [Unicode CLDR](http://cldr.unicode.org/) region code where this + // order will be deployed. For a list of valid CLDR region codes, see the + // [Language Subtag + // Registry](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry). + string region_code = 10 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Link to the order form. + string order_form_uri = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of this Order. + Type type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the order was submitted. Is auto-populated to the + // current time when an order is submitted. + google.protobuf.Timestamp submit_time = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The Google Cloud Billing ID to be charged for this order. + string billing_id = 15 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Existing hardware to be removed as part of this order. + // Note: any hardware removed will be recycled unless otherwise agreed. + repeated HardwareLocation existing_hardware = 16 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A physical site where hardware will be installed. +message Site { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/Site" + pattern: "projects/{project}/locations/{location}/sites/{site}" + plural: "sites" + singular: "site" + }; + + // Identifier. Name of the site. + // Format: `projects/{project}/locations/{location}/sites/{site}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Display name of this Site. + string display_name = 24 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Description of this Site. + string description = 25 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Time when this site was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this site was last updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this site as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Contact information for this site. + OrganizationContact organization_contact = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A URL to the Google Maps address location of the site. + // An example value is `https://goo.gl/maps/xxxxxxxxx`. + string google_maps_pin_uri = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The time periods when the site is accessible. + // If this field is empty, the site is accessible at all times. + repeated TimePeriod access_times = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Any additional notes for this Site. Please include information + // about: + // - security or access restrictions + // - any regulations affecting the technicians visiting the site + // - any special process or approval required to move the equipment + // - whether a representative will be available during site visits + string notes = 27 [(google.api.field_behavior) = OPTIONAL]; +} + +// A group of hardware that is part of the same order, has the same SKU, and is +// delivered to the same site. +message HardwareGroup { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/HardwareGroup" + pattern: "projects/{project}/locations/{location}/orders/{order}/hardwareGroups/{hardware_group}" + plural: "hardwareGroups" + singular: "hardwareGroup" + }; + + // Valid states of a HardwareGroup. + enum State { + // State of the HardwareGroup is unspecified. + STATE_UNSPECIFIED = 0; + + // More information is required from the customer to make progress. + ADDITIONAL_INFO_NEEDED = 1; + + // Google has initiated building hardware for this HardwareGroup. + BUILDING = 2; + + // The hardware has been built and is being shipped. + SHIPPING = 3; + + // The hardware is being installed. + INSTALLING = 4; + + // Some hardware in the HardwareGroup have been installed. + PARTIALLY_INSTALLED = 5; + + // All hardware in the HardwareGroup have been installed. + INSTALLED = 6; + + // An error occurred and customer intervention is required. + FAILED = 7; + } + + // Identifier. Name of this hardware group. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/hardwareGroups/{hardware_group}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Time when this hardware group was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this hardware group was last updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this hardware group as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Number of hardware in this HardwareGroup. + int32 hardware_count = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration for hardware in this HardwareGroup. + HardwareConfig config = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the site where the hardware in this HardwareGroup will be + // delivered. + // Format: `projects/{project}/locations/{location}/sites/{site}` + string site = 7 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; + + // Output only. Current state of this HardwareGroup. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Name of the zone that the hardware in this HardwareGroup belongs + // to. Format: `projects/{project}/locations/{location}/zones/{zone}` + string zone = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; + + // Optional. Requested installation date for the hardware in this + // HardwareGroup. Filled in by the customer. + google.type.Date requested_installation_date = 10 + [(google.api.field_behavior) = OPTIONAL]; +} + +// An instance of hardware installed at a site. +message Hardware { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/Hardware" + pattern: "projects/{project}/locations/{location}/hardware/{hardware}" + plural: "hardware" + singular: "hardware" + }; + + // Valid states for hardware. + enum State { + // State of the Hardware is unspecified. + STATE_UNSPECIFIED = 0; + + // More information is required from the customer to make progress. + ADDITIONAL_INFO_NEEDED = 1; + + // Google has initiated building hardware for this Hardware. + BUILDING = 2; + + // The hardware has been built and is being shipped. + SHIPPING = 3; + + // The hardware is being installed. + INSTALLING = 4; + + // The hardware has been installed. + INSTALLED = 5; + + // An error occurred and customer intervention is required. + FAILED = 6; + } + + // Identifier. Name of this hardware. + // Format: `projects/{project}/locations/{location}/hardware/{hardware}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Display name for this hardware. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Time when this hardware was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this hardware was last updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this hardware as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Name of the order that this hardware belongs to. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string order = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Order" + } + ]; + + // Output only. Name for the hardware group that this hardware belongs to. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/hardwareGroups/{hardware_group}` + string hardware_group = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/HardwareGroup" + } + ]; + + // Required. Name for the site that this hardware belongs to. + // Format: `projects/{project}/locations/{location}/sites/{site}` + string site = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; + + // Output only. Current state for this hardware. + State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to the Customer Intake Questionnaire (CIQ) sheet for this + // Hardware. + string ciq_uri = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Configuration for this hardware. + HardwareConfig config = 11 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Estimated installation date for this hardware. + google.type.Date estimated_installation_date = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Physical properties of this hardware. + HardwarePhysicalInfo physical_info = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Information for installation of this hardware. + HardwareInstallationInfo installation_info = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. Name for the zone that this hardware belongs to. + // Format: `projects/{project}/locations/{location}/zones/{zone}` + string zone = 15 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; + + // Optional. Requested installation date for this hardware. This is + // auto-populated when the order is accepted, if the hardware's HardwareGroup + // specifies this. It can also be filled in by the customer. + google.type.Date requested_installation_date = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Actual installation date for this hardware. Filled in by + // Google. + google.type.Date actual_installation_date = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A comment on an order. +message Comment { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/Comment" + pattern: "projects/{project}/locations/{location}/orders/{order}/comments/{comment}" + plural: "comments" + singular: "comment" + }; + + // Identifier. Name of this comment. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/comments/{comment}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Time when this comment was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this comment as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Username of the author of this comment. This is auto-populated + // from the credentials used during creation of the comment. + string author = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Text of this comment. The length of text must be <= 1000 + // characters. + string text = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// A log entry of a change made to an order. +message ChangeLogEntry { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/ChangeLogEntry" + pattern: "projects/{project}/locations/{location}/orders/{order}/changeLogEntries/{change_log_entry}" + plural: "changeLogEntries" + singular: "changeLogEntry" + }; + + // Identifier. Name of this change log entry. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/changeLogEntries/{change_log_entry}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Time when this change log entry was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this change log entry as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Content of this log entry. + string log = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A stock keeping unit (SKU) of GDC hardware. +message Sku { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/Sku" + pattern: "projects/{project}/locations/{location}/skus/{sku}" + plural: "skus" + singular: "sku" + }; + + // Valid types of a SKU. + enum Type { + // Type of the SKU is unspecified. This is not an allowed value. + TYPE_UNSPECIFIED = 0; + + // Rack SKU. + RACK = 1; + + // Server SKU. + SERVER = 2; + } + + // Identifier. Name of this SKU. + // Format: `projects/{project}/locations/{location}/skus/{sku}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Display name of this SKU. + string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this SKU was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this SKU was last updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Configuration for this SKU. + SkuConfig config = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Available instances of this SKU. This field should be used for + // checking availability of a SKU. + repeated SkuInstance instances = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Description of this SKU. + string description = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The SKU revision ID. + // A new revision is created whenever `config` is updated. The format is an + // 8-character hexadecimal string. + string revision_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Flag to indicate whether or not this revision is active. Only + // an active revision can be used in a new Order. + bool is_active = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of this SKU. + Type type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The vCPU count associated with this SKU. + int32 vcpu_count = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A zone holding a set of hardware. +message Zone { + option (google.api.resource) = { + type: "gdchardwaremanagement.googleapis.com/Zone" + pattern: "projects/{project}/locations/{location}/zones/{zone}" + plural: "zones" + singular: "zone" + }; + + // Valid states for a zone. + enum State { + // State of the Zone is unspecified. + STATE_UNSPECIFIED = 0; + + // More information is required from the customer to make progress. + ADDITIONAL_INFO_NEEDED = 1; + + // Google is preparing the Zone. + PREPARING = 2; + + // Factory turnup has succeeded. + READY_FOR_CUSTOMER_FACTORY_TURNUP_CHECKS = 5; + + // The Zone is ready for site turnup. + READY_FOR_SITE_TURNUP = 6; + + // The Zone failed in factory turnup checks. + CUSTOMER_FACTORY_TURNUP_CHECKS_FAILED = 7; + + // The Zone is available to use. + ACTIVE = 3; + + // The Zone has been cancelled. + CANCELLED = 4; + } + + // Identifier. Name of this zone. + // Format: `projects/{project}/locations/{location}/zones/{zone}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Time when this zone was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this zone was last updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels associated with this zone as key value pairs. + // For more information about labels, see [Create and manage + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Human friendly display name of this zone. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state for this zone. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The points of contact. + repeated Contact contacts = 9 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Link to the Customer Intake Questionnaire (CIQ) sheet for this + // zone. + string ciq_uri = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Networking configuration for this zone. + ZoneNetworkConfig network_config = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Globally unique identifier generated for this Edge Zone. + string globally_unique_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Contact information of the customer organization. +message OrganizationContact { + // Required. The organization's address. + google.type.PostalAddress address = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The organization's email. + string email = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The organization's phone number. + string phone = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The individual points of contact in the organization at this + // location. + repeated Contact contacts = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Contact details of a point of contact. +message Contact { + // Required. Given name of the contact. + string given_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Family name of the contact. + string family_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Email of the contact. + string email = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Phone number of the contact. + string phone = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Time zone of the contact. + google.type.TimeZone time_zone = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The time periods when the contact is reachable. + // If this field is empty, the contact is reachable at all times. + repeated TimePeriod reachable_times = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for GDC hardware. +message HardwareConfig { + // Required. Reference to the SKU for this hardware. This can point to a + // specific SKU revision in the form of `resource_name@revision_id` as defined + // in [AIP-162](https://google.aip.dev/162). If no revision_id is specified, + // it refers to the latest revision. + string sku = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Sku" + } + ]; + + // Required. Power supply type for this hardware. + PowerSupply power_supply = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Subscription duration for the hardware in months. + int32 subscription_duration_months = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for a SKU. +message SkuConfig { + // Information about CPU configuration. + string cpu = 1; + + // Information about GPU configuration. + string gpu = 2; + + // Information about RAM configuration. + string ram = 3; + + // Information about storage configuration. + string storage = 4; +} + +// A specific instance of the SKU. +message SkuInstance { + // The [Unicode CLDR](https://cldr.unicode.org) region code where this + // instance is available. + string region_code = 1; + + // Power supply type for this instance. + PowerSupply power_supply = 2; + + // Reference to the corresponding SKU in the Cloud Billing API. + // The estimated price information can be retrieved using that API. + // Format: `services/{service}/skus/{sku}` + string billing_sku = 3; + + // Reference to the corresponding SKU per vCPU in the Cloud Billing API. + // The estimated price information can be retrieved using that API. + // Format: `services/{service}/skus/{sku}` + string billing_sku_per_vcpu = 4; + + // Subscription duration for the hardware in months. + int32 subscription_duration_months = 5; +} + +// Physical properties of a hardware. +message HardwarePhysicalInfo { + // Valid power receptacle types. + enum PowerReceptacleType { + // Facility plug type is unspecified. + POWER_RECEPTACLE_TYPE_UNSPECIFIED = 0; + + // NEMA 5-15. + NEMA_5_15 = 1; + + // C13. + C_13 = 2; + + // Standard european receptacle. + STANDARD_EU = 3; + } + + // Valid network uplink types. + enum NetworkUplinkType { + // Network uplink type is unspecified. + NETWORK_UPLINK_TYPE_UNSPECIFIED = 0; + + // RJ-45. + RJ_45 = 1; + } + + // Valid voltage values. + enum Voltage { + // Voltage is unspecified. + VOLTAGE_UNSPECIFIED = 0; + + // 120V. + VOLTAGE_110 = 1; + + // 220V. + VOLTAGE_220 = 3; + } + + // Valid amperes values. + enum Amperes { + // Amperes is unspecified. + AMPERES_UNSPECIFIED = 0; + + // 15A. + AMPERES_15 = 1; + } + + // Required. The power receptacle type. + PowerReceptacleType power_receptacle = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Type of the uplink network connection. + NetworkUplinkType network_uplink = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Voltage of the power supply. + Voltage voltage = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Amperes of the power supply. + Amperes amperes = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Information for installation of a Hardware. +message HardwareInstallationInfo { + // Valid rack types. + enum RackType { + // Rack type is unspecified. + RACK_TYPE_UNSPECIFIED = 0; + + // Two post rack. + TWO_POST = 1; + + // Four post rack. + FOUR_POST = 2; + } + + // Optional. Location of the rack in the site e.g. Floor 2, Room 201, Row 7, + // Rack 3. + string rack_location = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Distance from the power outlet in meters. + int32 power_distance_meters = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Distance from the network switch in meters. + int32 switch_distance_meters = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dimensions of the rack unit. + Dimensions rack_unit_dimensions = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Rack space allocated for the hardware. + RackSpace rack_space = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Type of the rack. + RackType rack_type = 6 [(google.api.field_behavior) = REQUIRED]; +} + +// Networking configuration for a zone. +message ZoneNetworkConfig { + // Required. An IPv4 address block for machine management. + // Should be a private RFC1918 or public CIDR block large enough to allocate + // at least one address per machine in the Zone. + // Should be in `management_ipv4_subnet`, and disjoint with other address + // ranges. + string machine_mgmt_ipv4_range = 1 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. An IPv4 address block for kubernetes nodes. + // Should be a private RFC1918 or public CIDR block large enough to allocate + // at least one address per machine in the Zone. + // Should be in `kubernetes_ipv4_subnet`, and disjoint with other address + // ranges. + string kubernetes_node_ipv4_range = 2 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. An IPv4 address block for kubernetes control plane. + // Should be a private RFC1918 or public CIDR block large enough to allocate + // at least one address per cluster in the Zone. + // Should be in `kubernetes_ipv4_subnet`, and disjoint with other address + // ranges. + string kubernetes_control_plane_ipv4_range = 3 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. An IPv4 subnet for the management network. + Subnet management_ipv4_subnet = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An IPv4 subnet for the kubernetes network. + // If unspecified, the kubernetes subnet will be the same as the management + // subnet. + Subnet kubernetes_ipv4_subnet = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents a subnet. +message Subnet { + // Required. Address range for this subnet in CIDR notation. + string address_range = 1 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. Default gateway for this subnet. + string default_gateway_ip_address = 2 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = REQUIRED + ]; +} + +// Represents a time period in a week. +message TimePeriod { + // Required. The start of the time period. + google.type.TimeOfDay start_time = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The end of the time period. + google.type.TimeOfDay end_time = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The days of the week that the time period is active. + repeated google.type.DayOfWeek days = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the dimensions of an object. +message Dimensions { + // Required. Width in inches. + float width_inches = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Height in inches. + float height_inches = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Depth in inches. + float depth_inches = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents contiguous space in a rack. +message RackSpace { + // Required. First rack unit of the rack space (inclusive). + int32 start_rack_unit = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Last rack unit of the rack space (inclusive). + int32 end_rack_unit = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the location of one or many hardware. +message HardwareLocation { + // Required. Name of the site where the hardware are present. + // Format: `projects/{project}/locations/{location}/sites/{site}` + string site = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; + + // Required. Location of the rack in the site e.g. Floor 2, Room 201, Row 7, + // Rack 3. + string rack_location = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Spaces occupied by the hardware in the rack. + // If unset, this location is assumed to be the entire rack. + repeated RackSpace rack_space = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/service.proto b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/service.proto new file mode 100644 index 000000000..572436ccf --- /dev/null +++ b/third_party/googleapis/google/cloud/gdchardwaremanagement/v1alpha/service.proto @@ -0,0 +1,1212 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.gdchardwaremanagement.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/gdchardwaremanagement/v1alpha/resources.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.GdcHardwareManagement.V1Alpha"; +option go_package = "cloud.google.com/go/gdchardwaremanagement/apiv1alpha/gdchardwaremanagementpb;gdchardwaremanagementpb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.gdchardwaremanagement.v1alpha"; +option php_namespace = "Google\\Cloud\\GdcHardwareManagement\\V1alpha"; +option ruby_package = "Google::Cloud::GDCHardwareManagement::V1alpha"; + +// The GDC Hardware Management service. +service GDCHardwareManagement { + option (google.api.default_host) = "gdchardwaremanagement.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists orders in a given project and location. + rpc ListOrders(ListOrdersRequest) returns (ListOrdersResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/orders" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of an order. + rpc GetOrder(GetOrderRequest) returns (Order) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/orders/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new order in a given project and location. + rpc CreateOrder(CreateOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/orders" + body: "order" + }; + option (google.api.method_signature) = "parent,order,order_id"; + option (google.longrunning.operation_info) = { + response_type: "Order" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of an order. + rpc UpdateOrder(UpdateOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1alpha/{order.name=projects/*/locations/*/orders/*}" + body: "order" + }; + option (google.api.method_signature) = "order,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Order" + metadata_type: "OperationMetadata" + }; + } + + // Deletes an order. + rpc DeleteOrder(DeleteOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/orders/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Submits an order. + rpc SubmitOrder(SubmitOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{name=projects/*/locations/*/orders/*}:submit" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Order" + metadata_type: "OperationMetadata" + }; + } + + // Lists sites in a given project and location. + rpc ListSites(ListSitesRequest) returns (ListSitesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/sites" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a site. + rpc GetSite(GetSiteRequest) returns (Site) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/sites/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new site in a given project and location. + rpc CreateSite(CreateSiteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/sites" + body: "site" + }; + option (google.api.method_signature) = "parent,site,site_id"; + option (google.longrunning.operation_info) = { + response_type: "Site" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a site. + rpc UpdateSite(UpdateSiteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1alpha/{site.name=projects/*/locations/*/sites/*}" + body: "site" + }; + option (google.api.method_signature) = "site,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Site" + metadata_type: "OperationMetadata" + }; + } + + // Lists hardware groups in a given order. + rpc ListHardwareGroups(ListHardwareGroupsRequest) + returns (ListHardwareGroupsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/orders/*}/hardwareGroups" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a hardware group. + rpc GetHardwareGroup(GetHardwareGroupRequest) returns (HardwareGroup) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/orders/*/hardwareGroups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new hardware group in a given order. + rpc CreateHardwareGroup(CreateHardwareGroupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/orders/*}/hardwareGroups" + body: "hardware_group" + }; + option (google.api.method_signature) = + "parent,hardware_group,hardware_group_id"; + option (google.longrunning.operation_info) = { + response_type: "HardwareGroup" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a hardware group. + rpc UpdateHardwareGroup(UpdateHardwareGroupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1alpha/{hardware_group.name=projects/*/locations/*/orders/*/hardwareGroups/*}" + body: "hardware_group" + }; + option (google.api.method_signature) = "hardware_group,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "HardwareGroup" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a hardware group. + rpc DeleteHardwareGroup(DeleteHardwareGroupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/orders/*/hardwareGroups/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists hardware in a given project and location. + rpc ListHardware(ListHardwareRequest) returns (ListHardwareResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/hardware" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets hardware details. + rpc GetHardware(GetHardwareRequest) returns (Hardware) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/hardware/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates new hardware in a given project and location. + rpc CreateHardware(CreateHardwareRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/hardware" + body: "hardware" + }; + option (google.api.method_signature) = "parent,hardware,hardware_id"; + option (google.longrunning.operation_info) = { + response_type: "Hardware" + metadata_type: "OperationMetadata" + }; + } + + // Updates hardware parameters. + rpc UpdateHardware(UpdateHardwareRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1alpha/{hardware.name=projects/*/locations/*/hardware/*}" + body: "hardware" + }; + option (google.api.method_signature) = "hardware,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Hardware" + metadata_type: "OperationMetadata" + }; + } + + // Deletes hardware. + rpc DeleteHardware(DeleteHardwareRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/hardware/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists the comments on an order. + rpc ListComments(ListCommentsRequest) returns (ListCommentsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/orders/*}/comments" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the content of a comment. + rpc GetComment(GetCommentRequest) returns (Comment) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/orders/*/comments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new comment on an order. + rpc CreateComment(CreateCommentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/orders/*}/comments" + body: "comment" + }; + option (google.api.method_signature) = "parent,comment,comment_id"; + option (google.longrunning.operation_info) = { + response_type: "Comment" + metadata_type: "OperationMetadata" + }; + } + + // Lists the changes made to an order. + rpc ListChangeLogEntries(ListChangeLogEntriesRequest) + returns (ListChangeLogEntriesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/orders/*}/changeLogEntries" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a change to an order. + rpc GetChangeLogEntry(GetChangeLogEntryRequest) returns (ChangeLogEntry) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/orders/*/changeLogEntries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists SKUs for a given project and location. + rpc ListSkus(ListSkusRequest) returns (ListSkusResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/skus" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of an SKU. + rpc GetSku(GetSkuRequest) returns (Sku) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/skus/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists zones in a given project and location. + rpc ListZones(ListZonesRequest) returns (ListZonesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/zones" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a zone. + rpc GetZone(GetZoneRequest) returns (Zone) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/zones/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new zone in a given project and location. + rpc CreateZone(CreateZoneRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/zones" + body: "zone" + }; + option (google.api.method_signature) = "parent,zone,zone_id"; + option (google.longrunning.operation_info) = { + response_type: "Zone" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a zone. + rpc UpdateZone(UpdateZoneRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1alpha/{zone.name=projects/*/locations/*/zones/*}" + body: "zone" + }; + option (google.api.method_signature) = "zone,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Zone" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a zone. + rpc DeleteZone(DeleteZoneRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/zones/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Signals the state of a zone. + rpc SignalZoneState(SignalZoneStateRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{name=projects/*/locations/*/zones/*}:signal" + body: "*" + }; + option (google.api.method_signature) = "name,state_signal"; + option (google.longrunning.operation_info) = { + response_type: "Zone" + metadata_type: "OperationMetadata" + }; + } +} + +// A request to list orders. +message ListOrdersRequest { + // Required. The project and location to list orders in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Order" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of orders. +message ListOrdersResponse { + // The list of orders. + repeated Order orders = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get an order. +message GetOrderRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Order" + } + ]; +} + +// A request to create an order. +message CreateOrderRequest { + // Required. The project and location to create the order in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Order" + } + ]; + + // Optional. ID used to uniquely identify the Order within its parent scope. + // This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and `-` are accepted. + // The `-` character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The order.name field in the request will be ignored. + string order_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The order to create. + Order order = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to update an order. +message UpdateOrderRequest { + // Required. A mask to specify the fields in the Order to overwrite with this + // update. The fields specified in the update_mask are relative to the order, + // not the full request. A field will be overwritten if it is in the mask. If + // you don't provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The order to update. + Order order = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to delete an order. +message DeleteOrderRequest { + // Required. The name of the order. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Order" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An option to delete any nested resources in the Order, such as a + // HardwareGroup. If true, any nested resources for this Order will also be + // deleted. Otherwise, the request will only succeed if the Order has no + // nested resources. + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to submit an order. +message SubmitOrderRequest { + // Required. The name of the order. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Order" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to list sites. +message ListSitesRequest { + // Required. The project and location to list sites in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of sites. +message ListSitesResponse { + // The list of sites. + repeated Site sites = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get a site. +message GetSiteRequest { + // Required. The name of the site. + // Format: `projects/{project}/locations/{location}/sites/{site}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; +} + +// A request to create a site. +message CreateSiteRequest { + // Required. The project and location to create the site in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; + + // Optional. ID used to uniquely identify the Site within its parent scope. + // This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and `-` are accepted. + // The `-` character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The site.name field in the request will be ignored. + string site_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The site to create. + Site site = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to update a site. +message UpdateSiteRequest { + // Required. A mask to specify the fields in the Site to overwrite with this + // update. The fields specified in the update_mask are relative to the site, + // not the full request. A field will be overwritten if it is in the mask. If + // you don't provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The site to update. + Site site = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to list hardware groups. +message ListHardwareGroupsRequest { + // Required. The order to list hardware groups in. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/HardwareGroup" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of hardware groups. +message ListHardwareGroupsResponse { + // The list of hardware groups. + repeated HardwareGroup hardware_groups = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get a hardware group. +message GetHardwareGroupRequest { + // Required. The name of the hardware group. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/hardwareGroups/{hardware_group}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/HardwareGroup" + } + ]; +} + +// A request to create a hardware group. +message CreateHardwareGroupRequest { + // Required. The order to create the hardware group in. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/HardwareGroup" + } + ]; + + // Optional. ID used to uniquely identify the HardwareGroup within its parent + // scope. This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and `-` are accepted. + // The `-` character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The hardware_group.name field in the request will be ignored. + string hardware_group_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The hardware group to create. + HardwareGroup hardware_group = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to update a hardware group. +message UpdateHardwareGroupRequest { + // Required. A mask to specify the fields in the HardwareGroup to overwrite + // with this update. The fields specified in the update_mask are relative to + // the hardware group, not the full request. A field will be overwritten if it + // is in the mask. If you don't provide a mask then all fields will be + // overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The hardware group to update. + HardwareGroup hardware_group = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to delete a hardware group. +message DeleteHardwareGroupRequest { + // Required. The name of the hardware group. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/hardwareGroups/{hardware_group}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/HardwareGroup" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to list hardware. +message ListHardwareRequest { + // Required. The project and location to list hardware in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Hardware" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of hardware. +message ListHardwareResponse { + // The list of hardware. + repeated Hardware hardware = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get hardware. +message GetHardwareRequest { + // Required. The name of the hardware. + // Format: `projects/{project}/locations/{location}/hardware/{hardware}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Hardware" + } + ]; +} + +// A request to create hardware. +message CreateHardwareRequest { + // Required. The project and location to create hardware in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Hardware" + } + ]; + + // Optional. ID used to uniquely identify the Hardware within its parent + // scope. This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and `-` are accepted. + // The `-` character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The hardware.name field in the request will be ignored. + string hardware_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource to create. + Hardware hardware = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// A request to update hardware. +message UpdateHardwareRequest { + // Required. A mask to specify the fields in the Hardware to overwrite with + // this update. The fields specified in the update_mask are relative to the + // hardware, not the full request. A field will be overwritten if it is in the + // mask. If you don't provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The hardware to update. + Hardware hardware = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to delete hardware. +message DeleteHardwareRequest { + // Required. The name of the hardware. + // Format: `projects/{project}/locations/{location}/hardware/{hardware}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Hardware" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// A request to list comments. +message ListCommentsRequest { + // Required. The order to list comments on. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Comment" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to list comments. +message ListCommentsResponse { + // The list of comments. + repeated Comment comments = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get a comment. +message GetCommentRequest { + // Required. The name of the comment. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/comments/{comment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Comment" + } + ]; +} + +// A request to create a comment. +message CreateCommentRequest { + // Required. The order to create the comment on. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Comment" + } + ]; + + // Optional. ID used to uniquely identify the Comment within its parent scope. + // This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and `-` are accepted. + // The `-` character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The comment.name field in the request will be ignored. + string comment_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The comment to create. + Comment comment = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A request to list change log entries. +message ListChangeLogEntriesRequest { + // Required. The order to list change log entries for. + // Format: `projects/{project}/locations/{location}/orders/{order}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/ChangeLogEntry" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of change log entries. +message ListChangeLogEntriesResponse { + // The list of change log entries. + repeated ChangeLogEntry change_log_entries = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get a change log entry. +message GetChangeLogEntryRequest { + // Required. The name of the change log entry. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/changeLogEntries/{change_log_entry}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/ChangeLogEntry" + } + ]; +} + +// A request to list SKUs. +message ListSkusRequest { + // Required. The project and location to list SKUs in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Sku" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of SKUs. +message ListSkusResponse { + // The list of SKUs. + repeated Sku skus = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get an SKU. +message GetSkuRequest { + // Required. The name of the SKU. + // Format: `projects/{project}/locations/{location}/skus/{sku}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Sku" + } + ]; +} + +// A request to list zones. +message ListZonesRequest { + // Required. The project and location to list zones in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering condition. See [AIP-160](https://google.aip.dev/160). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// A list of zones. +message ListZonesResponse { + // The list of zones. + repeated Zone zones = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// A request to get a zone. +message GetZoneRequest { + // Required. The name of the zone. + // Format: `projects/{project}/locations/{location}/zones/{zone}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; +} + +// A request to create a zone. +message CreateZoneRequest { + // Required. The project and location to create the zone in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; + + // Optional. ID used to uniquely identify the Zone within its parent scope. + // This field should contain at most 63 characters and must start with + // lowercase characters. + // Only lowercase characters, numbers and `-` are accepted. + // The `-` character cannot be the first or the last one. + // A system generated ID will be used if the field is not set. + // + // The zone.name field in the request will be ignored. + string zone_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The zone to create. + Zone zone = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// A request to update a zone. +message UpdateZoneRequest { + // Required. A mask to specify the fields in the Zone to overwrite with this + // update. The fields specified in the update_mask are relative to the zone, + // not the full request. A field will be overwritten if it is in the mask. If + // you don't provide a mask then all fields will be overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The zone to update. + Zone zone = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// A request to delete a zone. +message DeleteZoneRequest { + // Required. The name of the zone. + // Format: `projects/{project}/locations/{location}/zones/{zone}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// A request to signal the state of a zone. +message SignalZoneStateRequest { + // Valid state signals for a zone. + enum StateSignal { + // State signal of the zone is unspecified. + STATE_SIGNAL_UNSPECIFIED = 0; + + // The Zone is ready for site turnup. + READY_FOR_SITE_TURNUP = 1; + + // The Zone failed in factory turnup checks. + FACTORY_TURNUP_CHECKS_FAILED = 2; + } + + // Required. The name of the zone. + // Format: `projects/{project}/locations/{location}/zones/{zone}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Zone" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Required. The state signal to send for this zone. + StateSignal state_signal = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the metadata of a long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/BUILD.bazel b/third_party/googleapis/google/cloud/gkebackup/logging/v1/BUILD.bazel index 579cd808e..643995779 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -27,10 +29,11 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", "java_proto_library", + "java_gapic_assembly_gradle_pkg", ) java_proto_library( @@ -38,15 +41,19 @@ java_proto_library( deps = [":logging_proto"], ) -java_grpc_library( - name = "logging_java_grpc", - srcs = [":logging_proto"], - deps = [":logging_java_proto"], +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gkebackup-logging-v1-java", + deps = [ + ":logging_proto", + ":logging_java_proto", + ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", @@ -64,7 +71,7 @@ go_proto_library( ) go_gapic_assembly_pkg( - name = "logging-v1-go", + name = "google-cloud-gkebackup-logging-v1-go", deps = [ ":logging_go_proto", ], @@ -73,11 +80,14 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", "py_grpc_library", "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", ) moved_proto_library( @@ -100,9 +110,25 @@ py_grpc_library( deps = [":logging_py_proto"], ) +py_gapic_library( + name = "logging_py_gapic", + srcs = [":logging_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-cloud-gkebackup-logging-v1-py", + deps = [ + ":logging_py_gapic", + ], +) + ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -115,7 +141,7 @@ php_proto_library( ) php_gapic_assembly_pkg( - name = "logging-v1-php", + name = "google-cloud-gkebackup-logging-v1-php", deps = [ ":logging_php_proto", ], @@ -124,6 +150,7 @@ php_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -144,10 +171,11 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "csharp_grpc_library", "csharp_proto_library", + "csharp_gapic_assembly_pkg", ) csharp_proto_library( @@ -155,15 +183,20 @@ csharp_proto_library( deps = [":logging_proto"], ) -csharp_grpc_library( - name = "logging_csharp_grpc", - srcs = [":logging_proto"], - deps = [":logging_csharp_proto"], +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gkebackup-logging-v1-csharp", + package_name = "Google.Cloud.GkeBackup.Logging.V1", + generate_nongapic_package = True, + deps = [ + ":logging_csharp_proto", + ], ) ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup.proto b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup.proto index 7943e1de5..cb509a4e9 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup.proto +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup_plan.proto b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup_plan.proto index 2a143961a..1af8ef137 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup_plan.proto +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_backup_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_common.proto b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_common.proto index e9620e909..3989d6514 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_common.proto +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore.proto b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore.proto index 0618615ec..ddaaaf927 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore.proto +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore_plan.proto b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore_plan.proto index 5278261cf..a1cd7210e 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore_plan.proto +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logged_restore_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logging.proto b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logging.proto index ee21aac06..18f411322 100644 --- a/third_party/googleapis/google/cloud/gkebackup/logging/v1/logging.proto +++ b/third_party/googleapis/google/cloud/gkebackup/logging/v1/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/BUILD.bazel b/third_party/googleapis/google/cloud/gkebackup/v1/BUILD.bazel index 055c9653e..100393835 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/gkebackup/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "gkebackup_proto", @@ -35,6 +38,10 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:date_proto", + "//google/type:dayofweek_proto", + "//google/type:timeofday_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -54,6 +61,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -82,9 +90,9 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "gkebackup_v1.yaml", test_deps = [ + ":gkebackup_java_grpc", "//google/cloud/location:location_java_grpc", "//google/iam/v1:iam_java_grpc", - ":gkebackup_java_grpc", ], transport = "grpc+rest", deps = [ @@ -120,6 +128,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -135,6 +144,9 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:timeofday_go_proto", ], ) @@ -155,6 +167,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -173,6 +186,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -218,6 +232,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -234,7 +249,7 @@ php_gapic_library( name = "gkebackup_php_gapic", srcs = [":gkebackup_proto_with_info"], grpc_service_config = "gkebackup_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "gkebackup_v1.yaml", transport = "grpc+rest", @@ -255,6 +270,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -285,6 +301,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -338,6 +355,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -348,7 +366,7 @@ load( csharp_proto_library( name = "gkebackup_csharp_proto", - extra_opts = [""], + extra_opts = [], deps = [":gkebackup_proto"], ) @@ -385,6 +403,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/backup.proto b/third_party/googleapis/google/cloud/gkebackup/v1/backup.proto index 88a95493a..9300857f8 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/backup.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/backup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,7 +33,6 @@ option ruby_package = "Google::Cloud::GkeBackup::V1"; // some portion of the state of a GKE cluster, the record of the backup // operation itself, and an anchor for the underlying artifacts that // comprise the Backup (the config backup and VolumeBackups). -// Next id: 28 message Backup { option (google.api.resource) = { type: "gkebackup.googleapis.com/Backup" @@ -42,7 +41,7 @@ message Backup { // Information about the GKE cluster from which this Backup was created. message ClusterMetadata { - // The source cluster from which this Backup was created. + // Output only. The source cluster from which this Backup was created. // Valid formats: // // - `projects/*/locations/*/clusters/*` @@ -50,21 +49,23 @@ message Backup { // // This is inherited from the parent BackupPlan's // [cluster][google.cloud.gkebackup.v1.BackupPlan.cluster] field. - string cluster = 1; + string cluster = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The Kubernetes server version of the source cluster. - string k8s_version = 2; + // Output only. The Kubernetes server version of the source cluster. + string k8s_version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // A list of the Backup for GKE CRD versions found in the cluster. - map backup_crd_versions = 3; + // Output only. A list of the Backup for GKE CRD versions found in the + // cluster. + map backup_crd_versions = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Platform-specific version oneof platform_version { - // GKE version - string gke_version = 4; + // Output only. GKE version + string gke_version = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Anthos version - string anthos_version = 5; + // Output only. Anthos version + string anthos_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -113,12 +114,12 @@ message Backup { // means that the Backup was created manually. bool manual = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - // A set of custom labels supplied by user. - map labels = 6; + // Optional. A set of custom labels supplied by user. + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; - // Minimum age for this Backup (in days). If this field is set to a non-zero - // value, the Backup will be "locked" against deletion (either manual or - // automatic deletion) for the number of days provided (measured from the + // Optional. Minimum age for this Backup (in days). If this field is set to a + // non-zero value, the Backup will be "locked" against deletion (either manual + // or automatic deletion) for the number of days provided (measured from the // creation time of the Backup). MUST be an integer value between 0-90 // (inclusive). // @@ -126,7 +127,7 @@ message Backup { // [backup_delete_lock_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_delete_lock_days] // setting and may only be increased // (either at creation time or in a subsequent update). - int32 delete_lock_days = 7; + int32 delete_lock_days = 7 [(google.api.field_behavior) = OPTIONAL]; // Output only. The time at which an existing delete lock will expire for this // backup (calculated from create_time + @@ -134,8 +135,8 @@ message Backup { google.protobuf.Timestamp delete_lock_expire_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The age (in days) after which this Backup will be automatically deleted. - // Must be an integer value >= 0: + // Optional. The age (in days) after which this Backup will be automatically + // deleted. Must be an integer value >= 0: // // - If 0, no automatic deletion will occur for this Backup. // - If not 0, this must be >= @@ -147,7 +148,7 @@ message Backup { // Defaults to the parent BackupPlan's // [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days] // value. - int32 retain_days = 9; + int32 retain_days = 9 [(google.api.field_behavior) = OPTIONAL]; // Output only. The time at which this Backup will be automatically deleted // (calculated from create_time + @@ -230,8 +231,8 @@ message Backup { // applied to the same version of the resource. string etag = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - // User specified descriptive string for this Backup. - string description = 25; + // Optional. User specified descriptive string for this Backup. + string description = 25 [(google.api.field_behavior) = OPTIONAL]; // Output only. The total number of Kubernetes Pods contained in the Backup. int32 pod_count = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -239,4 +240,13 @@ message Backup { // Output only. The size of the config backup in bytes. int64 config_backup_size_bytes = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If false, Backup will fail when Backup for GKE detects + // Kubernetes configuration that is non-standard or + // requires additional setup to restore. + // + // Inherited from the parent BackupPlan's + // [permissive_mode][google.cloud.gkebackup.v1.BackupPlan.BackupConfig.permissive_mode] + // value. + bool permissive_mode = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/backup_plan.proto b/third_party/googleapis/google/cloud/gkebackup/v1/backup_plan.proto index 42ed47db4..fd2fe0dbd 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/backup_plan.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/backup_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,7 +19,11 @@ package google.cloud.gkebackup.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/gkebackup/v1/common.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; option csharp_namespace = "Google.Cloud.GkeBackup.V1"; option go_package = "cloud.google.com/go/gkebackup/apiv1/gkebackuppb;gkebackuppb"; @@ -38,7 +42,7 @@ message BackupPlan { // RetentionPolicy defines a Backup retention policy for a BackupPlan. message RetentionPolicy { - // Minimum age for Backups created via this BackupPlan (in days). + // Optional. Minimum age for Backups created via this BackupPlan (in days). // This field MUST be an integer value between 0-90 (inclusive). // A Backup created under this BackupPlan will NOT be deletable until it // reaches Backup's (create_time + backup_delete_lock_days). @@ -47,53 +51,73 @@ message BackupPlan { // the new value. // // Default: 0 (no delete blocking) - int32 backup_delete_lock_days = 1; - - // The default maximum age of a Backup created via this BackupPlan. - // This field MUST be an integer value >= 0 and <= 365. - // If specified, a Backup created under this BackupPlan will be - // automatically deleted after its age reaches (create_time + - // backup_retain_days). - // If not specified, Backups created under this BackupPlan will NOT be - // subject to automatic deletion. - // Updating this field does NOT affect existing Backups under it. Backups - // created AFTER a successful update will automatically pick up the new - // value. - // NOTE: backup_retain_days must be >= + int32 backup_delete_lock_days = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The default maximum age of a Backup created via this + // BackupPlan. This field MUST be an integer value >= 0 and <= 365. If + // specified, a Backup created under this BackupPlan will be automatically + // deleted after its age reaches (create_time + backup_retain_days). If not + // specified, Backups created under this BackupPlan will NOT be subject to + // automatic deletion. Updating this field does NOT affect existing Backups + // under it. Backups created AFTER a successful update will automatically + // pick up the new value. NOTE: backup_retain_days must be >= // [backup_delete_lock_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_delete_lock_days]. // If // [cron_schedule][google.cloud.gkebackup.v1.BackupPlan.Schedule.cron_schedule] // is defined, then this must be - // <= 360 * the creation interval. + // <= 360 * the creation interval. If + // [rpo_config][google.cloud.gkebackup.v1.BackupPlan.Schedule.rpo_config] is + // defined, then this must be + // <= 360 * [target_rpo_minutes][Schedule.rpo_config.target_rpo_minutes] / + // (1440minutes/day). // // Default: 0 (no automatic deletion) - int32 backup_retain_days = 2; + int32 backup_retain_days = 2 [(google.api.field_behavior) = OPTIONAL]; - // This flag denotes whether the retention policy of this BackupPlan is - // locked. If set to True, no further update is allowed on this policy, - // including the `locked` field itself. + // Optional. This flag denotes whether the retention policy of this + // BackupPlan is locked. If set to True, no further update is allowed on + // this policy, including the `locked` field itself. // // Default: False - bool locked = 3; + bool locked = 3 [(google.api.field_behavior) = OPTIONAL]; } // Defines scheduling parameters for automatically creating Backups // via this BackupPlan. message Schedule { - // A standard [cron](https://wikipedia.com/wiki/cron) string that defines a - // repeating schedule for creating Backups via this BackupPlan. If this is - // defined, then + // Optional. A standard [cron](https://wikipedia.com/wiki/cron) string that + // defines a repeating schedule for creating Backups via this BackupPlan. + // This is mutually exclusive with the + // [rpo_config][google.cloud.gkebackup.v1.BackupPlan.Schedule.rpo_config] + // field since at most one schedule can be defined for a BackupPlan. If this + // is defined, then // [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days] // must also be defined. // // Default (empty): no automatic backup creation will occur. - string cron_schedule = 1; + string cron_schedule = 1 [(google.api.field_behavior) = OPTIONAL]; - // This flag denotes whether automatic Backup creation is paused for this - // BackupPlan. + // Optional. This flag denotes whether automatic Backup creation is paused + // for this BackupPlan. // // Default: False - bool paused = 2; + bool paused = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the RPO schedule configuration for this BackupPlan. + // This is mutually exclusive with the + // [cron_schedule][google.cloud.gkebackup.v1.BackupPlan.Schedule.cron_schedule] + // field since at most one schedule can be defined for a BackupPLan. If this + // is defined, then + // [backup_retain_days][google.cloud.gkebackup.v1.BackupPlan.RetentionPolicy.backup_retain_days] + // must also be defined. + // + // Default (empty): no automatic backup creation will occur. + RpoConfig rpo_config = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Start time of next scheduled backup under this BackupPlan by + // either cron_schedule or rpo config. + google.protobuf.Timestamp next_scheduled_backup_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // BackupConfig defines the configuration of Backups created via this @@ -114,24 +138,31 @@ message BackupPlan { NamespacedNames selected_applications = 3; } - // This flag specifies whether volume data should be backed up when - // PVCs are included in the scope of a Backup. + // Optional. This flag specifies whether volume data should be backed up + // when PVCs are included in the scope of a Backup. // // Default: False - bool include_volume_data = 4; + bool include_volume_data = 4 [(google.api.field_behavior) = OPTIONAL]; - // This flag specifies whether Kubernetes Secret resources should be - // included when they fall into the scope of Backups. + // Optional. This flag specifies whether Kubernetes Secret resources should + // be included when they fall into the scope of Backups. // // Default: False - bool include_secrets = 5; + bool include_secrets = 5 [(google.api.field_behavior) = OPTIONAL]; - // This defines a customer managed encryption key that will be used to - // encrypt the "config" portion (the Kubernetes resources) of Backups - // created via this plan. + // Optional. This defines a customer managed encryption key that will be + // used to encrypt the "config" portion (the Kubernetes resources) of + // Backups created via this plan. // // Default (empty): Config backup artifacts will not be encrypted. - EncryptionKey encryption_key = 6; + EncryptionKey encryption_key = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If false, Backups will fail when Backup for GKE detects + // Kubernetes configuration that is non-standard or + // requires additional setup to restore. + // + // Default: False + bool permissive_mode = 7 [(google.api.field_behavior) = OPTIONAL]; } // State @@ -175,8 +206,8 @@ message BackupPlan { google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // User specified descriptive string for this BackupPlan. - string description = 5; + // Optional. User specified descriptive string for this BackupPlan. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; // Required. Immutable. The source cluster from which Backups will be created // via this BackupPlan. Valid formats: @@ -191,14 +222,16 @@ message BackupPlan { } ]; - // RetentionPolicy governs lifecycle of Backups created under this plan. - RetentionPolicy retention_policy = 7; + // Optional. RetentionPolicy governs lifecycle of Backups created under this + // plan. + RetentionPolicy retention_policy = 7 [(google.api.field_behavior) = OPTIONAL]; - // A set of custom labels supplied by user. - map labels = 8; + // Optional. A set of custom labels supplied by user. + map labels = 8 [(google.api.field_behavior) = OPTIONAL]; - // Defines a schedule for automatic Backup creation via this BackupPlan. - Schedule backup_schedule = 9; + // Optional. Defines a schedule for automatic Backup creation via this + // BackupPlan. + Schedule backup_schedule = 9 [(google.api.field_behavior) = OPTIONAL]; // Output only. `etag` is used for optimistic concurrency control as a way to // help prevent simultaneous updates of a backup plan from overwriting each @@ -210,17 +243,17 @@ message BackupPlan { // will be applied to the same version of the resource. string etag = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // This flag indicates whether this BackupPlan has been deactivated. + // Optional. This flag indicates whether this BackupPlan has been deactivated. // Setting this field to True locks the BackupPlan such that no further // updates will be allowed (except deletes), including the deactivated field // itself. It also prevents any new Backups from being created via this // BackupPlan (including scheduled Backups). // // Default: False - bool deactivated = 11; + bool deactivated = 11 [(google.api.field_behavior) = OPTIONAL]; - // Defines the configuration of Backups created via this BackupPlan. - BackupConfig backup_config = 12; + // Optional. Defines the configuration of Backups created via this BackupPlan. + BackupConfig backup_config = 12 [(google.api.field_behavior) = OPTIONAL]; // Output only. The number of Kubernetes Pods backed up in the // last successful Backup created via this BackupPlan. @@ -235,4 +268,79 @@ message BackupPlan { // Output only. Human-readable description of why BackupPlan is in the current // `state` string state_reason = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that represents the current risk level of this + // BackupPlan from RPO perspective with 1 being no risk and 5 being highest + // risk. + int32 rpo_risk_level = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable description of why the BackupPlan is in the + // current rpo_risk_level and action items if any. + string rpo_risk_reason = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines RPO scheduling configuration for automatically creating +// Backups via this BackupPlan. +message RpoConfig { + // Required. Defines the target RPO for the BackupPlan in minutes, which means + // the target maximum data loss in time that is acceptable for this + // BackupPlan. This must be at least 60, i.e., 1 hour, and at most 86400, + // i.e., 60 days. + int32 target_rpo_minutes = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified time windows during which backup can NOT happen + // for this BackupPlan - backups should start and finish outside of any given + // exclusion window. Note: backup jobs will be scheduled to start and + // finish outside the duration of the window as much as possible, but + // running jobs will not get canceled when it runs into the window. + // All the time and date values in exclusion_windows entry in the API are in + // UTC. + // We only allow <=1 recurrence (daily or weekly) exclusion window for a + // BackupPlan while no restriction on number of single occurrence + // windows. + repeated ExclusionWindow exclusion_windows = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Defines a time window during which no backup should +// happen. All time and date are in UTC. +message ExclusionWindow { + // Holds repeated DaysOfWeek values as a container. + message DayOfWeekList { + // Optional. A list of days of week. + repeated google.type.DayOfWeek days_of_week = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Specifies the start time of the window using time of the day in + // UTC. + google.type.TimeOfDay start_time = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies duration of the window. + // Duration must be >= 5 minutes and < (target RPO - 20 minutes). + // Additional restrictions based on the recurrence type to allow some time for + // backup to happen: + // - single_occurrence_date: no restriction, but UI may warn about this when + // duration >= target RPO + // - daily window: duration < 24 hours + // - weekly window: + // - days of week includes all seven days of a week: duration < 24 hours + // - all other weekly window: duration < 168 hours (i.e., 24 * 7 hours) + google.protobuf.Duration duration = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies the day(s) on which the exclusion window takes + // effect. Exactly one of the fields MUST be specified. + oneof recurrence { + // No recurrence. The exclusion window occurs only once and on this + // date in UTC. + google.type.Date single_occurrence_date = 3; + + // The exclusion window occurs every day if set to "True". + // Specifying this field to "False" is an error. + bool daily = 4; + + // The exclusion window occurs on these days of each week in UTC. + DayOfWeekList days_of_week = 5; + } } diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/common.proto b/third_party/googleapis/google/cloud/gkebackup/v1/common.proto index 7521d2468..b26e46d1c 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/common.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.gkebackup.v1; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; option csharp_namespace = "Google.Cloud.GkeBackup.V1"; @@ -28,31 +29,47 @@ option ruby_package = "Google::Cloud::GkeBackup::V1"; // A list of Kubernetes Namespaces message Namespaces { - // A list of Kubernetes Namespaces - repeated string namespaces = 1; + // Optional. A list of Kubernetes Namespaces + repeated string namespaces = 1 [(google.api.field_behavior) = OPTIONAL]; } // A reference to a namespaced resource in Kubernetes. message NamespacedName { - // The Namespace of the Kubernetes resource. - string namespace = 1; + // Optional. The Namespace of the Kubernetes resource. + string namespace = 1 [(google.api.field_behavior) = OPTIONAL]; - // The name of the Kubernetes resource. - string name = 2; + // Optional. The name of the Kubernetes resource. + string name = 2 [(google.api.field_behavior) = OPTIONAL]; } // A list of namespaced Kubernetes resources. message NamespacedNames { - // A list of namespaced Kubernetes resources. - repeated NamespacedName namespaced_names = 1; + // Optional. A list of namespaced Kubernetes resources. + repeated NamespacedName namespaced_names = 1 + [(google.api.field_behavior) = OPTIONAL]; } // Defined a customer managed encryption key that will be used to encrypt Backup // artifacts. message EncryptionKey { - // Google Cloud KMS encryption key. Format: + // Optional. Google Cloud KMS encryption key. Format: // `projects/*/locations/*/keyRings/*/cryptoKeys/*` - string gcp_kms_encryption_key = 1 [(google.api.resource_reference) = { - type: "cloudkms.googleapis.com/CryptoKey" - }]; + string gcp_kms_encryption_key = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; +} + +// Message to encapsulate VolumeType enum. +message VolumeTypeEnum { + // Supported volume types. + enum VolumeType { + // Default + VOLUME_TYPE_UNSPECIFIED = 0; + + // Compute Engine Persistent Disk volume + GCE_PERSISTENT_DISK = 1; + } } diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup.proto b/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup.proto index 1a1bd10f5..6e14eab20 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -314,6 +314,15 @@ service BackupForGKE { }; option (google.api.method_signature) = "name"; } + + // Retrieve the link to the backupIndex. + rpc GetBackupIndexDownloadUrl(GetBackupIndexDownloadUrlRequest) + returns (GetBackupIndexDownloadUrlResponse) { + option (google.api.http) = { + get: "/v1/{backup=projects/*/locations/*/backupPlans/*/backups/*}:getBackupIndexDownloadUrl" + }; + option (google.api.method_signature) = "backup"; + } } // Represents the metadata of the long-running operation. @@ -382,27 +391,27 @@ message ListBackupPlansRequest { } ]; - // The target number of results to return in a single response. + // 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 inclue a partial list and a caller should + // Note that the response may include a partial list and a caller should // only rely on the response's // [next_page_token][google.cloud.gkebackup.v1.ListBackupPlansResponse.next_page_token] // to determine if there are more instances left to be queried. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value of + // Optional. The value of // [next_page_token][google.cloud.gkebackup.v1.ListBackupPlansResponse.next_page_token] // received from a previous `ListBackupPlans` call. // Provide this to retrieve the subsequent page in a multi-page list of // results. When paginating, all other parameters provided to // `ListBackupPlans` must match the call that provided the page token. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Field match expression used to filter the results. - string filter = 4; + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Field by which to sort the results. - string order_by = 5; + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ListBackupPlans. @@ -439,7 +448,7 @@ message UpdateBackupPlanRequest { // fields. This may be sparsely populated if an `update_mask` is provided. BackupPlan backup_plan = 1 [(google.api.field_behavior) = REQUIRED]; - // This is used to specify the fields to be overwritten in the + // Optional. This is used to specify the fields to be overwritten in the // BackupPlan targeted for update. The values for each of these // updated fields will be taken from the `backup_plan` provided // with this request. Field names are relative to the root of the resource @@ -448,7 +457,8 @@ message UpdateBackupPlanRequest { // written to the target BackupPlan resource. // Note that OUTPUT_ONLY and IMMUTABLE fields in `backup_plan` are ignored // and are not used to update the target BackupPlan. - google.protobuf.FieldMask update_mask = 2; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for DeleteBackupPlan. @@ -462,10 +472,10 @@ message DeleteBackupPlanRequest { } ]; - // If provided, this value must match the current value of the + // Optional. If provided, this value must match the current value of the // target BackupPlan's [etag][google.cloud.gkebackup.v1.BackupPlan.etag] field // or the request is rejected. - string etag = 2; + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for CreateBackup. @@ -479,10 +489,10 @@ message CreateBackupRequest { } ]; - // The Backup resource to create. - Backup backup = 2; + // Optional. The Backup resource to create. + Backup backup = 2 [(google.api.field_behavior) = OPTIONAL]; - // The client-provided short name for the Backup resource. + // Optional. The client-provided short name for the Backup resource. // This name must: // // - be between 1 and 63 characters long (inclusive) @@ -490,7 +500,7 @@ message CreateBackupRequest { // - start with a lower-case letter // - end with a lower-case letter or number // - be unique within the set of Backups in this BackupPlan - string backup_id = 3; + string backup_id = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request message for ListBackups. @@ -504,27 +514,27 @@ message ListBackupsRequest { } ]; - // The target number of results to return in a single response. + // 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 inclue a partial list and a caller should + // Note that the response may include a partial list and a caller should // only rely on the response's // [next_page_token][google.cloud.gkebackup.v1.ListBackupsResponse.next_page_token] // to determine if there are more instances left to be queried. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value of + // Optional. The value of // [next_page_token][google.cloud.gkebackup.v1.ListBackupsResponse.next_page_token] // received from a previous `ListBackups` call. // Provide this to retrieve the subsequent page in a multi-page list of // results. When paginating, all other parameters provided to // `ListBackups` must match the call that provided the page token. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Field match expression used to filter the results. - string filter = 4; + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Field by which to sort the results. - string order_by = 5; + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ListBackups. @@ -557,7 +567,7 @@ message UpdateBackupRequest { // fields. This may be sparsely populated if an `update_mask` is provided. Backup backup = 1 [(google.api.field_behavior) = REQUIRED]; - // This is used to specify the fields to be overwritten in the + // Optional. This is used to specify the fields to be overwritten in the // Backup targeted for update. The values for each of these // updated fields will be taken from the `backup_plan` provided // with this request. Field names are relative to the root of the resource. @@ -565,7 +575,8 @@ message UpdateBackupRequest { // written to the target Backup resource. // Note that OUTPUT_ONLY and IMMUTABLE fields in `backup` are ignored // and are not used to update the target Backup. - google.protobuf.FieldMask update_mask = 2; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for DeleteBackup. @@ -579,15 +590,15 @@ message DeleteBackupRequest { } ]; - // If provided, this value must match the current value of the + // Optional. If provided, this value must match the current value of the // target Backup's [etag][google.cloud.gkebackup.v1.Backup.etag] field or the // request is rejected. - string etag = 2; + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; - // If set to true, any VolumeBackups below this Backup will also be deleted. - // Otherwise, the request will only succeed if the Backup has no + // Optional. If set to true, any VolumeBackups below this Backup will also be + // deleted. Otherwise, the request will only succeed if the Backup has no // VolumeBackups. - bool force = 3; + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request message for ListVolumeBackups. @@ -601,27 +612,27 @@ message ListVolumeBackupsRequest { } ]; - // The target number of results to return in a single response. + // 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 inclue a partial list and a caller should + // Note that the response may include a partial list and a caller should // only rely on the response's // [next_page_token][google.cloud.gkebackup.v1.ListVolumeBackupsResponse.next_page_token] // to determine if there are more instances left to be queried. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value of + // Optional. The value of // [next_page_token][google.cloud.gkebackup.v1.ListVolumeBackupsResponse.next_page_token] // received from a previous `ListVolumeBackups` call. // Provide this to retrieve the subsequent page in a multi-page list of // results. When paginating, all other parameters provided to // `ListVolumeBackups` must match the call that provided the page token. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Field match expression used to filter the results. - string filter = 4; + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Field by which to sort the results. - string order_by = 5; + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ListVolumeBackups. @@ -685,27 +696,27 @@ message ListRestorePlansRequest { } ]; - // The target number of results to return in a single response. + // 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 inclue a partial list and a caller should + // Note that the response may include a partial list and a caller should // only rely on the response's // [next_page_token][google.cloud.gkebackup.v1.ListRestorePlansResponse.next_page_token] // to determine if there are more instances left to be queried. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value of + // Optional. The value of // [next_page_token][google.cloud.gkebackup.v1.ListRestorePlansResponse.next_page_token] // received from a previous `ListRestorePlans` call. // Provide this to retrieve the subsequent page in a multi-page list of // results. When paginating, all other parameters provided to // `ListRestorePlans` must match the call that provided the page token. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Field match expression used to filter the results. - string filter = 4; + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Field by which to sort the results. - string order_by = 5; + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ListRestorePlans. @@ -742,7 +753,7 @@ message UpdateRestorePlanRequest { // fields. This may be sparsely populated if an `update_mask` is provided. RestorePlan restore_plan = 1 [(google.api.field_behavior) = REQUIRED]; - // This is used to specify the fields to be overwritten in the + // Optional. This is used to specify the fields to be overwritten in the // RestorePlan targeted for update. The values for each of these // updated fields will be taken from the `restore_plan` provided // with this request. Field names are relative to the root of the resource. @@ -750,7 +761,8 @@ message UpdateRestorePlanRequest { // written to the target RestorePlan resource. // Note that OUTPUT_ONLY and IMMUTABLE fields in `restore_plan` are ignored // and are not used to update the target RestorePlan. - google.protobuf.FieldMask update_mask = 2; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for DeleteRestorePlan. @@ -764,15 +776,15 @@ message DeleteRestorePlanRequest { } ]; - // If provided, this value must match the current value of the + // Optional. If provided, this value must match the current value of the // target RestorePlan's [etag][google.cloud.gkebackup.v1.RestorePlan.etag] // field or the request is rejected. - string etag = 2; + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; - // If set to true, any Restores below this RestorePlan will also be deleted. - // Otherwise, the request will only succeed if the RestorePlan has no + // Optional. If set to true, any Restores below this RestorePlan will also be + // deleted. Otherwise, the request will only succeed if the RestorePlan has no // Restores. - bool force = 3; + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request message for CreateRestore. @@ -811,27 +823,27 @@ message ListRestoresRequest { } ]; - // The target number of results to return in a single response. + // 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 inclue a partial list and a caller should + // Note that the response may include a partial list and a caller should // only rely on the response's // [next_page_token][google.cloud.gkebackup.v1.ListRestoresResponse.next_page_token] // to determine if there are more instances left to be queried. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value of + // Optional. The value of // [next_page_token][google.cloud.gkebackup.v1.ListRestoresResponse.next_page_token] // received from a previous `ListRestores` call. // Provide this to retrieve the subsequent page in a multi-page list of // results. When paginating, all other parameters provided to `ListRestores` // must match the call that provided the page token. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Field match expression used to filter the results. - string filter = 4; + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Field by which to sort the results. - string order_by = 5; + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ListRestores. @@ -867,7 +879,7 @@ message UpdateRestoreRequest { // fields. This may be sparsely populated if an `update_mask` is provided. Restore restore = 1 [(google.api.field_behavior) = REQUIRED]; - // This is used to specify the fields to be overwritten in the + // Optional. This is used to specify the fields to be overwritten in the // Restore targeted for update. The values for each of these // updated fields will be taken from the `restore` provided // with this request. Field names are relative to the root of the resource. @@ -875,7 +887,8 @@ message UpdateRestoreRequest { // written to the target Restore resource. // Note that OUTPUT_ONLY and IMMUTABLE fields in `restore` are ignored // and are not used to update the target Restore. - google.protobuf.FieldMask update_mask = 2; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for DeleteRestore. @@ -889,15 +902,15 @@ message DeleteRestoreRequest { } ]; - // If provided, this value must match the current value of the + // Optional. If provided, this value must match the current value of the // target Restore's [etag][google.cloud.gkebackup.v1.Restore.etag] field or // the request is rejected. - string etag = 2; + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; - // If set to true, any VolumeRestores below this restore will also be deleted. - // Otherwise, the request will only succeed if the restore has no + // Optional. If set to true, any VolumeRestores below this restore will also + // be deleted. Otherwise, the request will only succeed if the restore has no // VolumeRestores. - bool force = 3; + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request message for ListVolumeRestores. @@ -911,27 +924,27 @@ message ListVolumeRestoresRequest { } ]; - // The target number of results to return in a single response. + // 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 inclue a partial list and a caller should + // Note that the response may include a partial list and a caller should // only rely on the response's // [next_page_token][google.cloud.gkebackup.v1.ListVolumeRestoresResponse.next_page_token] // to determine if there are more instances left to be queried. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The value of + // Optional. The value of // [next_page_token][google.cloud.gkebackup.v1.ListVolumeRestoresResponse.next_page_token] // received from a previous `ListVolumeRestores` call. // Provide this to retrieve the subsequent page in a multi-page list of // results. When paginating, all other parameters provided to // `ListVolumeRestores` must match the call that provided the page token. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Field match expression used to filter the results. - string filter = 4; + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Field by which to sort the results. - string order_by = 5; + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ListVolumeRestores. @@ -958,3 +971,21 @@ message GetVolumeRestoreRequest { } ]; } + +// Request message for GetBackupIndexDownloadUrl. +message GetBackupIndexDownloadUrlRequest { + // Required. Full name of Backup resource. + // Format: + // projects/{project}/locations/{location}/backupPlans/{backup_plan}/backups/{backup} + string backup = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gkebackup.googleapis.com/Backup" + } + ]; +} + +// Response message for GetBackupIndexDownloadUrl. +message GetBackupIndexDownloadUrlResponse { + string signed_url = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json b/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json index 166795b07..51625529b 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_grpc_service_config.json @@ -13,7 +13,8 @@ { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "ListRestores" }, { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetRestore" }, { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "ListVolumeRestores" }, - { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetVolumeRestore" } + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetVolumeRestore" }, + { "service": "google.cloud.gkebackup.v1.BackupForGKE", "method": "GetBackupIndexDownloadUrl" } ], "timeout": "60s", "retryPolicy": { diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_v1.yaml b/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_v1.yaml index 2241aae70..284b08349 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_v1.yaml +++ b/third_party/googleapis/google/cloud/gkebackup/v1/gkebackup_v1.yaml @@ -46,19 +46,6 @@ documentation: permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning. -backend: - rules: - - selector: 'google.cloud.gkebackup.v1.BackupForGKE.*' - deadline: 60.0 - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: 'google.iam.v1.IAMPolicy.*' - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation @@ -105,7 +92,7 @@ http: post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' body: '*' - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1/{name=projects/*/locations/*}/operations' + delete: '/v1/{name=projects/*/locations/*/operations/*}' - selector: google.longrunning.Operations.GetOperation get: '/v1/{name=projects/*/locations/*/operations/*}' - selector: google.longrunning.Operations.ListOperations diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/restore.proto b/third_party/googleapis/google/cloud/gkebackup/v1/restore.proto index 968b4f447..5adeb0fc2 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/restore.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/restore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,7 +31,6 @@ option ruby_package = "Google::Cloud::GkeBackup::V1"; // Represents both a request to Restore some portion of a Backup into // a target GKE cluster and a record of the restore operation itself. -// Next id: 18 message Restore { option (google.api.resource) = { type: "gkebackup.googleapis.com/Restore" @@ -62,6 +61,26 @@ message Restore { DELETING = 5; } + // Defines the filter for `Restore`. This filter can be used to further + // refine the resource selection of the `Restore` beyond the coarse-grained + // scope defined in the `RestorePlan`. `exclusion_filters` take precedence + // over `inclusion_filters`. If a resource matches both `inclusion_filters` + // and `exclusion_filters`, it will not be restored. + message Filter { + // Optional. Selects resources for restoration. If specified, only resources + // which match `inclusion_filters` will be selected for restoration. A + // resource will be selected if it matches any `ResourceSelector` of the + // `inclusion_filters`. + repeated ResourceSelector inclusion_filters = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Excludes resources from restoration. If specified, + // a resource will not be restored if it matches + // any `ResourceSelector` of the `exclusion_filters`. + repeated ResourceSelector exclusion_filters = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // Output only. The full name of the Restore resource. // Format: `projects/*/locations/*/restorePlans/*/restores/*` string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -154,10 +173,30 @@ message Restore { // `UpdateRestore` or `DeleteRestore` to ensure that their change will be // applied to the same version of the resource. string etag = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. Filters resources for `Restore`. If not specified, the + // scope of the restore will remain the same as defined in the `RestorePlan`. + // If this is specified, and no resources are matched by the + // `inclusion_filters` or everyting is excluded by the `exclusion_filters`, + // nothing will be restored. This filter can only be specified if the value of + // [namespaced_resource_restore_mode][google.cloud.gkebackup.v1.RestoreConfig.namespaced_resource_restore_mode] + // is set to `MERGE_SKIP_ON_CONFLICT`, `MERGE_REPLACE_VOLUME_ON_CONFLICT` or + // `MERGE_REPLACE_ON_CONFLICT`. + Filter filter = 18 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Immutable. Overrides the volume data restore policies selected in + // the Restore Config for override-scoped resources. + repeated VolumeDataRestorePolicyOverride + volume_data_restore_policy_overrides = 19 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // Configuration of a restore. -// Next id: 12 message RestoreConfig { // Defines how volume data should be restored. enum VolumeDataRestorePolicy { @@ -218,20 +257,54 @@ message RestoreConfig { // occurs during the restore process itself (e.g., because an out of band // process creates conflicting resources), a conflict will be reported. FAIL_ON_CONFLICT = 2; + + // This mode merges the backup and the target cluster and skips the + // conflicting resources. If a single resource to restore exists in the + // cluster before restoration, the resource will be skipped, otherwise it + // will be restored. + MERGE_SKIP_ON_CONFLICT = 3; + + // This mode merges the backup and the target cluster and skips the + // conflicting resources except volume data. If a PVC to restore already + // exists, this mode will restore/reconnect the volume without overwriting + // the PVC. It is similar to MERGE_SKIP_ON_CONFLICT except that it will + // apply the volume data policy for the conflicting PVCs: + // - RESTORE_VOLUME_DATA_FROM_BACKUP: restore data only and respect the + // reclaim policy of the original PV; + // - REUSE_VOLUME_HANDLE_FROM_BACKUP: reconnect and respect the reclaim + // policy of the original PV; + // - NO_VOLUME_DATA_RESTORATION: new provision and respect the reclaim + // policy of the original PV. + // Note that this mode could cause data loss as the original PV can be + // retained or deleted depending on its reclaim policy. + MERGE_REPLACE_VOLUME_ON_CONFLICT = 4; + + // This mode merges the backup and the target cluster and replaces the + // conflicting resources with the ones in the backup. If a single resource + // to restore exists in the cluster before restoration, the resource will be + // replaced with the one from the backup. To replace an existing resource, + // the first attempt is to update the resource to match the one from the + // backup; if the update fails, the second attempt is to delete the resource + // and restore it from the backup. + // Note that this mode could cause data loss as it replaces the existing + // resources in the target cluster, and the original PV can be retained or + // deleted depending on its reclaim policy. + MERGE_REPLACE_ON_CONFLICT = 5; } // This is a direct map to the Kubernetes GroupKind type // [GroupKind](https://godoc.org/k8s.io/apimachinery/pkg/runtime/schema#GroupKind) // and is used for identifying specific "types" of resources to restore. message GroupKind { - // API group string of a Kubernetes resource, e.g. + // Optional. API group string of a Kubernetes resource, e.g. // "apiextensions.k8s.io", "storage.k8s.io", etc. // Note: use empty string for core API group - string resource_group = 1; + string resource_group = 1 [(google.api.field_behavior) = OPTIONAL]; - // Kind of a Kubernetes resource, e.g. - // "CustomResourceDefinition", "StorageClass", etc. - string resource_kind = 2; + // Optional. Kind of a Kubernetes resource, must be in UpperCamelCase + // (PascalCase) and singular form. E.g. "CustomResourceDefinition", + // "StorageClass", etc. + string resource_kind = 2 [(google.api.field_behavior) = OPTIONAL]; } // Defines the scope of cluster-scoped resources to restore. @@ -253,46 +326,49 @@ message RestoreConfig { // - Namespace // - PersistentVolume message ClusterResourceRestoreScope { - // A list of cluster-scoped resource group kinds to restore from the - // backup. If specified, only the selected resources will be restored. + // Optional. A list of cluster-scoped resource group kinds to restore from + // the backup. If specified, only the selected resources will be restored. // Mutually exclusive to any other field in the message. - repeated GroupKind selected_group_kinds = 1; + repeated GroupKind selected_group_kinds = 1 + [(google.api.field_behavior) = OPTIONAL]; - // A list of cluster-scoped resource group kinds to NOT restore from the - // backup. If specified, all valid cluster-scoped resources will be + // Optional. A list of cluster-scoped resource group kinds to NOT restore + // from the backup. If specified, all valid cluster-scoped resources will be // restored except for those specified in the list. // Mutually exclusive to any other field in the message. - repeated GroupKind excluded_group_kinds = 2; + repeated GroupKind excluded_group_kinds = 2 + [(google.api.field_behavior) = OPTIONAL]; - // If True, all valid cluster-scoped resources will be restored. + // Optional. If True, all valid cluster-scoped resources will be restored. // Mutually exclusive to any other field in the message. - bool all_group_kinds = 3; + bool all_group_kinds = 3 [(google.api.field_behavior) = OPTIONAL]; - // If True, no cluster-scoped resources will be restored. + // Optional. If True, no cluster-scoped resources will be restored. // This has the same restore scope as if the message is not defined. // Mutually exclusive to any other field in the message. - bool no_group_kinds = 4; + bool no_group_kinds = 4 [(google.api.field_behavior) = OPTIONAL]; } // A transformation rule to be applied against Kubernetes resources as they // are selected for restoration from a Backup. A rule contains both filtering // logic (which resources are subject to substitution) and substitution logic. message SubstitutionRule { - // (Filtering parameter) Any resource subject to substitution must be - // contained within one of the listed Kubernetes Namespace in the Backup. + // Optional. (Filtering parameter) Any resource subject to substitution must + // be contained within one of the listed Kubernetes Namespace in the Backup. // If this field is not provided, no namespace filtering will be performed // (all resources in all Namespaces, including all cluster-scoped resources, // will be candidates for substitution). // To mix cluster-scoped and namespaced resources in the same rule, use an // empty string ("") as one of the target namespaces. - repeated string target_namespaces = 1; + repeated string target_namespaces = 1 + [(google.api.field_behavior) = OPTIONAL]; - // (Filtering parameter) Any resource subject to substitution must belong to - // one of the listed "types". - // If this field is not provided, no type filtering will be performed (all - // resources of all types matching previous filtering parameters will be - // candidates for substitution). - repeated GroupKind target_group_kinds = 2; + // Optional. (Filtering parameter) Any resource subject to substitution must + // belong to one of the listed "types". If this field is not provided, no + // type filtering will be performed (all resources of all types matching + // previous filtering parameters will be candidates for substitution). + repeated GroupKind target_group_kinds = 2 + [(google.api.field_behavior) = OPTIONAL]; // Required. This is a [JSONPath] // (https://kubernetes.io/docs/reference/kubectl/jsonpath/) @@ -303,7 +379,7 @@ message RestoreConfig { // fields out of the candidate resources will be modified). string target_json_path = 3 [(google.api.field_behavior) = REQUIRED]; - // (Filtering parameter) This is a [regular expression] + // Optional. (Filtering parameter) This is a [regular expression] // (https://en.wikipedia.org/wiki/Regular_expression) // that is compared against the fields matched by the target_json_path // expression (and must also have passed the previous filters). @@ -312,12 +388,13 @@ message RestoreConfig { // then ALL fields matched by the target_json_path expression will undergo // substitution. Note that an empty (e.g., "", rather than unspecified) // value for this field will only match empty fields. - string original_value_pattern = 4; + string original_value_pattern = 4 [(google.api.field_behavior) = OPTIONAL]; - // This is the new value to set for any fields that pass the filtering and - // selection criteria. To remove a value from a Kubernetes resource, either - // leave this field unspecified, or set it to the empty string (""). - string new_value = 5; + // Optional. This is the new value to set for any fields that pass the + // filtering and selection criteria. To remove a value from a Kubernetes + // resource, either leave this field unspecified, or set it to the empty + // string (""). + string new_value = 5 [(google.api.field_behavior) = OPTIONAL]; } // TransformationRuleAction defines a TransformationRule action based on the @@ -362,45 +439,43 @@ message RestoreConfig { // Required. op specifies the operation to perform. Op op = 1 [(google.api.field_behavior) = REQUIRED]; - // A string containing a JSON Pointer value that references the location in - // the target document to move the value from. - string from_path = 2; + // Optional. A string containing a JSON Pointer value that references the + // location in the target document to move the value from. + string from_path = 2 [(google.api.field_behavior) = OPTIONAL]; - // A string containing a JSON-Pointer value that references a location - // within the target document where the operation is performed. - string path = 3; + // Optional. A string containing a JSON-Pointer value that references a + // location within the target document where the operation is performed. + string path = 3 [(google.api.field_behavior) = OPTIONAL]; - // A string that specifies the desired value in string format to + // Optional. A string that specifies the desired value in string format to // use for transformation. - string value = 4; + string value = 4 [(google.api.field_behavior) = OPTIONAL]; } // ResourceFilter specifies matching criteria to limit the scope of a // change to a specific set of kubernetes resources that are selected for // restoration from a backup. message ResourceFilter { - // (Filtering parameter) Any resource subject to transformation must be - // contained within one of the listed Kubernetes Namespace in the Backup. - // If this field is not provided, no namespace filtering will be performed - // (all resources in all Namespaces, including all cluster-scoped resources, - // will be candidates for transformation). - // To mix cluster-scoped and namespaced resources in the same rule, use an - // empty string ("") as one of the target namespaces. - repeated string namespaces = 1; - - // (Filtering parameter) Any resource subject to transformation must belong - // to one of the listed "types". If this field is not provided, no type - // filtering will be performed (all resources of all types matching previous - // filtering parameters will be candidates for transformation). - repeated GroupKind group_kinds = 2; - - // This is a [JSONPath] + // Optional. (Filtering parameter) Any resource subject to transformation + // must be contained within one of the listed Kubernetes Namespace in the + // Backup. If this field is not provided, no namespace filtering will be + // performed (all resources in all Namespaces, including all cluster-scoped + // resources, will be candidates for transformation). + repeated string namespaces = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. (Filtering parameter) Any resource subject to transformation + // must belong to one of the listed "types". If this field is not provided, + // no type filtering will be performed (all resources of all types matching + // previous filtering parameters will be candidates for transformation). + repeated GroupKind group_kinds = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This is a [JSONPath] // (https://github.com/json-path/JsonPath/blob/master/README.md) // expression that matches specific fields of candidate // resources and it operates as a filtering parameter (resources that // are not matched with this expression will not be candidates for // transformation). - string json_path = 3; + string json_path = 3 [(google.api.field_behavior) = OPTIONAL]; } // A transformation rule to be applied against Kubernetes resources as they @@ -414,37 +489,77 @@ message RestoreConfig { repeated TransformationRuleAction field_actions = 1 [(google.api.field_behavior) = REQUIRED]; - // This field is used to specify a set of fields that should be used to - // determine which resources in backup should be acted upon by the supplied - // transformation rule actions, and this will ensure that only specific - // resources are affected by transformation rule actions. - ResourceFilter resource_filter = 2; + // Optional. This field is used to specify a set of fields that should be + // used to determine which resources in backup should be acted upon by the + // supplied transformation rule actions, and this will ensure that only + // specific resources are affected by transformation rule actions. + ResourceFilter resource_filter = 2 [(google.api.field_behavior) = OPTIONAL]; - // The description is a user specified string description of the + // Optional. The description is a user specified string description of the // transformation rule. - string description = 3; + string description = 3 [(google.api.field_behavior) = OPTIONAL]; } - // Specifies the mechanism to be used to restore volume data. + // Binds resources in the scope to the given VolumeDataRestorePolicy. + message VolumeDataRestorePolicyBinding { + // Required. The VolumeDataRestorePolicy to apply when restoring volumes in + // scope. + VolumeDataRestorePolicy policy = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof scope { + // The volume type, as determined by the PVC's bound PV, + // to apply the policy to. + VolumeTypeEnum.VolumeType volume_type = 2; + } + } + + // Allows customers to specify dependencies between resources + // that Backup for GKE can use to compute a resasonable restore order. + message RestoreOrder { + // Defines a dependency between two group kinds. + message GroupKindDependency { + // Required. The satisfying group kind must be restored first + // in order to satisfy the dependency. + GroupKind satisfying = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The requiring group kind requires that the other + // group kind be restored first. + GroupKind requiring = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Optional. Contains a list of group kind dependency pairs provided + // by the customer, that is used by Backup for GKE to + // generate a group kind restore order. + repeated GroupKindDependency group_kind_dependencies = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Specifies the mechanism to be used to restore volume data. // Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (will be treated as // NO_VOLUME_DATA_RESTORATION). - VolumeDataRestorePolicy volume_data_restore_policy = 1; + VolumeDataRestorePolicy volume_data_restore_policy = 1 + [(google.api.field_behavior) = OPTIONAL]; - // Defines the behavior for handling the situation where cluster-scoped - // resources being restored already exist in the target cluster. This MUST be - // set to a value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if + // Optional. Defines the behavior for handling the situation where + // cluster-scoped resources being restored already exist in the target + // cluster. This MUST be set to a value other than + // CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if // [cluster_resource_restore_scope][google.cloud.gkebackup.v1.RestoreConfig.cluster_resource_restore_scope] // is not empty. - ClusterResourceConflictPolicy cluster_resource_conflict_policy = 2; + ClusterResourceConflictPolicy cluster_resource_conflict_policy = 2 + [(google.api.field_behavior) = OPTIONAL]; - // Defines the behavior for handling the situation where sets of namespaced - // resources being restored already exist in the target cluster. This MUST be - // set to a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED. - NamespacedResourceRestoreMode namespaced_resource_restore_mode = 3; + // Optional. Defines the behavior for handling the situation where sets of + // namespaced resources being restored already exist in the target cluster. + // This MUST be set to a value other than + // NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED. + NamespacedResourceRestoreMode namespaced_resource_restore_mode = 3 + [(google.api.field_behavior) = OPTIONAL]; - // Identifies the cluster-scoped resources to restore from the Backup. - // Not specifying it means NO cluster resource will be restored. - ClusterResourceRestoreScope cluster_resource_restore_scope = 4; + // Optional. Identifies the cluster-scoped resources to restore from the + // Backup. Not specifying it means NO cluster resource will be restored. + ClusterResourceRestoreScope cluster_resource_restore_scope = 4 + [(google.api.field_behavior) = OPTIONAL]; // Specifies the namespaced resources to restore from the Backup. // Only one of the entries may be specified. If not specified, NO namespaced @@ -478,17 +593,74 @@ message RestoreConfig { Namespaces excluded_namespaces = 10; } - // A list of transformation rules to be applied against Kubernetes resources - // as they are selected for restoration from a Backup. Rules are executed in - // order defined - this order matters, as changes made by a rule may impact - // the filtering logic of subsequent rules. An empty list means no + // Optional. A list of transformation rules to be applied against Kubernetes + // resources as they are selected for restoration from a Backup. Rules are + // executed in order defined - this order matters, as changes made by a rule + // may impact the filtering logic of subsequent rules. An empty list means no // substitution will occur. - repeated SubstitutionRule substitution_rules = 8; + repeated SubstitutionRule substitution_rules = 8 + [(google.api.field_behavior) = OPTIONAL]; - // A list of transformation rules to be applied against Kubernetes resources - // as they are selected for restoration from a Backup. Rules are executed in - // order defined - this order matters, as changes made by a rule may impact - // the filtering logic of subsequent rules. An empty list means no + // Optional. A list of transformation rules to be applied against Kubernetes + // resources as they are selected for restoration from a Backup. Rules are + // executed in order defined - this order matters, as changes made by a rule + // may impact the filtering logic of subsequent rules. An empty list means no // transformation will occur. - repeated TransformationRule transformation_rules = 11; + repeated TransformationRule transformation_rules = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A table that binds volumes by their scope to a restore policy. + // Bindings must have a unique scope. Any volumes not scoped in the bindings + // are subject to the policy defined in volume_data_restore_policy. + repeated VolumeDataRestorePolicyBinding volume_data_restore_policy_bindings = + 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. RestoreOrder contains custom ordering to use on a Restore. + RestoreOrder restore_order = 13 [(google.api.field_behavior) = OPTIONAL]; +} + +// Defines a selector to identify a single or a group of resources. +// Conditions in the selector are optional, but at least one field +// should be set to a non-empty value. If a condition is not specified, +// no restrictions will be applied on that dimension. +// If more than one condition is specified, a resource will be selected +// if and only if all conditions are met. +message ResourceSelector { + // Optional. Selects resources using their Kubernetes GroupKinds. If + // specified, only resources of provided GroupKind will be selected. + RestoreConfig.GroupKind group_kind = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Selects resources using their resource names. If specified, + // only resources with the provided name will be selected. + string name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Selects resources using their namespaces. This only applies to + // namespace scoped resources and cannot be used for selecting + // cluster scoped resources. If specified, only resources in the provided + // namespace will be selected. If not specified, the filter will apply to + // both cluster scoped and namespace scoped resources (e.g. name or label). + // The [Namespace](https://pkg.go.dev/k8s.io/api/core/v1#Namespace) resource + // itself will be restored if and only if any resources within the namespace + // are restored. + string namespace = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Selects resources using Kubernetes + // [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). + // If specified, a resource will be selected if and only if the resource + // has all of the provided labels and all the label values match. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Defines an override to apply a VolumeDataRestorePolicy for scoped resources. +message VolumeDataRestorePolicyOverride { + // Required. The VolumeDataRestorePolicy to apply when restoring volumes in + // scope. + RestoreConfig.VolumeDataRestorePolicy policy = 1 + [(google.api.field_behavior) = REQUIRED]; + + oneof scope { + // A list of PVCs to apply the policy override to. + NamespacedNames selected_pvcs = 2; + } } diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/restore_plan.proto b/third_party/googleapis/google/cloud/gkebackup/v1/restore_plan.proto index 117412190..c7d330b9e 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/restore_plan.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/restore_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,7 +31,6 @@ option ruby_package = "Google::Cloud::GkeBackup::V1"; // The configuration of a potential series of Restore operations to be performed // against Backups belong to a particular BackupPlan. -// Next id: 13 message RestorePlan { option (google.api.resource) = { type: "gkebackup.googleapis.com/RestorePlan" @@ -74,8 +73,8 @@ message RestorePlan { google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // User specified descriptive string for this RestorePlan. - string description = 5; + // Optional. User specified descriptive string for this RestorePlan. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; // Required. Immutable. A reference to the // [BackupPlan][google.cloud.gkebackup.v1.BackupPlan] from which Backups may @@ -106,8 +105,8 @@ message RestorePlan { // Required. Configuration of Restores created via this RestorePlan. RestoreConfig restore_config = 8 [(google.api.field_behavior) = REQUIRED]; - // A set of custom labels supplied by user. - map labels = 9; + // Optional. A set of custom labels supplied by user. + map labels = 9 [(google.api.field_behavior) = OPTIONAL]; // Output only. `etag` is used for optimistic concurrency control as a way to // help prevent simultaneous updates of a restore from overwriting each other. diff --git a/third_party/googleapis/google/cloud/gkebackup/v1/volume.proto b/third_party/googleapis/google/cloud/gkebackup/v1/volume.proto index 37c62f2c5..ce86f277d 100644 --- a/third_party/googleapis/google/cloud/gkebackup/v1/volume.proto +++ b/third_party/googleapis/google/cloud/gkebackup/v1/volume.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,7 +32,6 @@ option ruby_package = "Google::Cloud::GkeBackup::V1"; // Represents the backup of a specific persistent volume as a component of a // Backup - both the record of the operation and a pointer to the underlying // storage-specific artifacts. -// Next id: 14 message VolumeBackup { option (google.api.resource) = { type: "gkebackup.googleapis.com/VolumeBackup" @@ -139,7 +138,6 @@ message VolumeBackup { } // Represents the operation of restoring a volume from a VolumeBackup. -// Next id: 13 message VolumeRestore { option (google.api.resource) = { type: "gkebackup.googleapis.com/VolumeRestore" diff --git a/third_party/googleapis/google/cloud/gkeconnect/gateway/v1/gateway.proto b/third_party/googleapis/google/cloud/gkeconnect/gateway/v1/gateway.proto index a9357af2c..71dab3db2 100644 --- a/third_party/googleapis/google/cloud/gkeconnect/gateway/v1/gateway.proto +++ b/third_party/googleapis/google/cloud/gkeconnect/gateway/v1/gateway.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto b/third_party/googleapis/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto index d37f8836e..baab61205 100644 --- a/third_party/googleapis/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto +++ b/third_party/googleapis/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto b/third_party/googleapis/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto index 5dc600c1c..b1fd9dea0 100644 --- a/third_party/googleapis/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto +++ b/third_party/googleapis/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/servicemesh/v1beta/BUILD.bazel b/third_party/googleapis/google/cloud/gkehub/servicemesh/v1beta/BUILD.bazel new file mode 100644 index 000000000..638a16290 --- /dev/null +++ b/third_party/googleapis/google/cloud/gkehub/servicemesh/v1beta/BUILD.bazel @@ -0,0 +1,209 @@ +# This file was automatically generated by BuildFileGenerator + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "servicemesh_proto", + srcs = [ + "servicemesh.proto", + ], + deps = [ + "//google/api:field_behavior_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", + "java_gapic_assembly_gradle_pkg", +) + +java_proto_library( + name = "servicemesh_java_proto", + deps = [":servicemesh_proto"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gkehub-servicemesh-v1beta-java", + deps = [ + ":servicemesh_proto", + ":servicemesh_java_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", + "go_gapic_assembly_pkg", +) + +go_proto_library( + name = "servicemesh_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/gkehub/servicemesh/apiv1beta/servicemeshpb", + protos = [":servicemesh_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_assembly_pkg( + name = "google-cloud-gkehub-servicemesh-v1beta-go", + deps = [ + ":servicemesh_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", +) + +moved_proto_library( + name = "servicemesh_moved_proto", + srcs = [":servicemesh_proto"], + deps = [ + "//google/api:field_behavior_proto", + ], +) + +py_proto_library( + name = "servicemesh_py_proto", + deps = [":servicemesh_moved_proto"], +) + +py_grpc_library( + name = "servicemesh_py_grpc", + srcs = [":servicemesh_moved_proto"], + deps = [":servicemesh_py_proto"], +) + +py_gapic_library( + name = "servicemesh_py_gapic", + srcs = [":servicemesh_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-cloud-gkehub-servicemesh-v1beta-py", + deps = [ + ":servicemesh_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_proto_library", +) + +php_proto_library( + name = "servicemesh_php_proto", + deps = [":servicemesh_proto"], +) + +php_gapic_assembly_pkg( + name = "google-cloud-gkehub-servicemesh-v1beta-php", + deps = [ + ":servicemesh_php_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "servicemesh_ruby_proto", + deps = [":servicemesh_proto"], +) + +ruby_grpc_library( + name = "servicemesh_ruby_grpc", + srcs = [":servicemesh_proto"], + deps = [":servicemesh_ruby_proto"], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", + "csharp_gapic_assembly_pkg", +) + +csharp_proto_library( + name = "servicemesh_csharp_proto", + deps = [":servicemesh_proto"], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gkehub-servicemesh-v1beta-csharp", + package_name = "Google.Cloud.GkeHub.ServiceMesh.V1Beta", + generate_nongapic_package = True, + deps = [ + ":servicemesh_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "servicemesh_cc_proto", + deps = [":servicemesh_proto"], +) + +cc_grpc_library( + name = "servicemesh_cc_grpc", + srcs = [":servicemesh_proto"], + grpc_only = True, + deps = [":servicemesh_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/gkehub/servicemesh/v1beta/servicemesh.proto b/third_party/googleapis/google/cloud/gkehub/servicemesh/v1beta/servicemesh.proto new file mode 100644 index 000000000..6c5634b98 --- /dev/null +++ b/third_party/googleapis/google/cloud/gkehub/servicemesh/v1beta/servicemesh.proto @@ -0,0 +1,276 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.gkehub.servicemesh.v1beta; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.GkeHub.ServiceMesh.V1Beta"; +option go_package = "cloud.google.com/go/gkehub/servicemesh/apiv1beta/servicemeshpb;servicemeshpb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceMeshProto"; +option java_package = "com.google.cloud.gkehub.servicemesh.v1beta"; +option php_namespace = "Google\\Cloud\\GkeHub\\ServiceMesh\\V1beta"; +option ruby_package = "Google::Cloud::GkeHub::ServiceMesh::V1beta"; + +// **Service Mesh**: Spec for a single Membership for the servicemesh feature +message MembershipSpec { + // Whether to automatically manage Service Mesh control planes. + enum ControlPlaneManagement { + // Unspecified + CONTROL_PLANE_MANAGEMENT_UNSPECIFIED = 0; + + // Google should provision a control plane revision and make it available in + // the cluster. Google will enroll this revision in a release channel and + // keep it up to date. The control plane revision may be a managed service, + // or a managed install. + AUTOMATIC = 1; + + // User will manually configure the control plane (e.g. via CLI, or via the + // ControlPlaneRevision KRM API) + MANUAL = 2; + } + + // Whether to automatically manage Service Mesh. + enum Management { + // Unspecified + MANAGEMENT_UNSPECIFIED = 0; + + // Google should manage my Service Mesh for the cluster. + MANAGEMENT_AUTOMATIC = 1; + + // User will manually configure their service mesh components. + MANAGEMENT_MANUAL = 2; + } + + // Deprecated: use `management` instead + // Enables automatic control plane management. + ControlPlaneManagement control_plane = 1 [deprecated = true]; + + // Enables automatic Service Mesh management. + Management management = 4; +} + +// **Service Mesh**: State for a single Membership, as analyzed by the Service +// Mesh Hub Controller. +message MembershipState { + // Status of control plane management. + message ControlPlaneManagement { + // Implementation of managed control plane. + enum Implementation { + // Unspecified + IMPLEMENTATION_UNSPECIFIED = 0; + + // A Google build of istiod is used for the managed control plane. + ISTIOD = 1; + + // Traffic director is used for the managed control plane. + TRAFFIC_DIRECTOR = 2; + + // The control plane implementation is being updated. + UPDATING = 3; + } + + // Explanation of state. + repeated StatusDetails details = 2; + + // LifecycleState of control plane management. + LifecycleState state = 3; + + // Output only. Implementation of managed control plane. + Implementation implementation = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Status of data plane management. Only reported per-member. + message DataPlaneManagement { + // Lifecycle status of data plane management. + LifecycleState state = 1; + + // Explanation of the status. + repeated StatusDetails details = 2; + } + + // Condition being reported. + message Condition { + // Unique identifier of the condition which describes the condition + // recognizable to the user. + enum Code { + // Default Unspecified code + CODE_UNSPECIFIED = 0; + + // Mesh IAM permission denied error code + MESH_IAM_PERMISSION_DENIED = 100; + + // CNI config unsupported error code + CNI_CONFIG_UNSUPPORTED = 201; + + // GKE sandbox unsupported error code + GKE_SANDBOX_UNSUPPORTED = 202; + + // Nodepool workload identity federation required error code + NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED = 203; + + // CNI installation failed error code + CNI_INSTALLATION_FAILED = 204; + + // CNI pod unschedulable error code + CNI_POD_UNSCHEDULABLE = 205; + + // Multiple control planes unsupported error code + UNSUPPORTED_MULTIPLE_CONTROL_PLANES = 301; + + // VPC-SC GA is supported for this control plane. + VPCSC_GA_SUPPORTED = 302; + + // Configuration (Istio/k8s resources) failed to apply due to internal + // error. + CONFIG_APPLY_INTERNAL_ERROR = 401; + + // Configuration failed to be applied due to being invalid. + CONFIG_VALIDATION_ERROR = 402; + + // Encountered configuration(s) with possible unintended behavior or + // invalid configuration. These configs may not have been applied. + CONFIG_VALIDATION_WARNING = 403; + + // BackendService quota exceeded error code. + QUOTA_EXCEEDED_BACKEND_SERVICES = 404; + + // HealthCheck quota exceeded error code. + QUOTA_EXCEEDED_HEALTH_CHECKS = 405; + + // HTTPRoute quota exceeded error code. + QUOTA_EXCEEDED_HTTP_ROUTES = 406; + + // TCPRoute quota exceeded error code. + QUOTA_EXCEEDED_TCP_ROUTES = 407; + + // TLS routes quota exceeded error code. + QUOTA_EXCEEDED_TLS_ROUTES = 408; + + // TrafficPolicy quota exceeded error code. + QUOTA_EXCEEDED_TRAFFIC_POLICIES = 409; + + // EndpointPolicy quota exceeded error code. + QUOTA_EXCEEDED_ENDPOINT_POLICIES = 410; + + // Gateway quota exceeded error code. + QUOTA_EXCEEDED_GATEWAYS = 411; + + // Mesh quota exceeded error code. + QUOTA_EXCEEDED_MESHES = 412; + + // ServerTLSPolicy quota exceeded error code. + QUOTA_EXCEEDED_SERVER_TLS_POLICIES = 413; + + // ClientTLSPolicy quota exceeded error code. + QUOTA_EXCEEDED_CLIENT_TLS_POLICIES = 414; + + // ServiceLBPolicy quota exceeded error code. + QUOTA_EXCEEDED_SERVICE_LB_POLICIES = 415; + + // HTTPFilter quota exceeded error code. + QUOTA_EXCEEDED_HTTP_FILTERS = 416; + + // TCPFilter quota exceeded error code. + QUOTA_EXCEEDED_TCP_FILTERS = 417; + + // NetworkEndpointGroup quota exceeded error code. + QUOTA_EXCEEDED_NETWORK_ENDPOINT_GROUPS = 418; + } + + // Severity level of the reported condition + enum Severity { + // Unspecified severity + SEVERITY_UNSPECIFIED = 0; + + // Indicates an issue that prevents the mesh from operating correctly + ERROR = 1; + + // Indicates a setting is likely wrong, but the mesh is still able to + // operate + WARNING = 2; + + // An informational message, not requiring any action + INFO = 3; + } + + // Unique identifier of the condition which describes the condition + // recognizable to the user. + Code code = 1; + + // Links contains actionable information. + string documentation_link = 2; + + // A short summary about the issue. + string details = 3; + + // Severity level of the condition. + Severity severity = 4; + } + + // Lifecycle state of Service Mesh components. + enum LifecycleState { + // Unspecified + LIFECYCLE_STATE_UNSPECIFIED = 0; + + // DISABLED means that the component is not enabled. + DISABLED = 1; + + // FAILED_PRECONDITION means that provisioning cannot proceed because of + // some characteristic of the member cluster. + FAILED_PRECONDITION = 2; + + // PROVISIONING means that provisioning is in progress. + PROVISIONING = 3; + + // ACTIVE means that the component is ready for use. + ACTIVE = 4; + + // STALLED means that provisioning could not be done. + STALLED = 5; + + // NEEDS_ATTENTION means that the component is ready, but some user + // intervention is required. (For example that the user should migrate + // workloads to a new control plane revision.) + NEEDS_ATTENTION = 6; + + // DEGRADED means that the component is ready, but operating in a + // degraded state. + DEGRADED = 7; + } + + // Output only. Status of control plane management + ControlPlaneManagement control_plane_management = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Status of data plane management. + DataPlaneManagement data_plane_management = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of conditions reported for this membership. + repeated Condition conditions = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Structured and human-readable details for a status. +message StatusDetails { + // A machine-readable code that further describes a broad status. + string code = 1; + + // Human-readable explanation of code. + string details = 2; +} diff --git a/third_party/googleapis/google/cloud/gkehub/v1/configmanagement/configmanagement.proto b/third_party/googleapis/google/cloud/gkehub/v1/configmanagement/configmanagement.proto index 978276dc5..dbfa47fdf 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1/configmanagement/configmanagement.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1/configmanagement/configmanagement.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,15 +39,15 @@ enum DeploymentState { // Deployment was attempted to be installed, but has errors ERROR = 3; + + // Deployment is installing or terminating + PENDING = 4; } // **Anthos Config Management**: State for a single cluster. message MembershipState { - // The user-defined name for the cluster used by ClusterSelectors to group - // clusters together. This should match Membership's membership_name, - // unless the user installed ACM on the cluster manually prior to enabling - // the ACM hub feature. - // Unique within a Anthos Config Management installation. + // This field is set to the `cluster_name` field of the Membership Spec if it + // is not empty. Otherwise, it is set to the cluster's fleet membership name. string cluster_name = 1; // Membership configuration in the cluster. This represents the actual state @@ -71,6 +71,18 @@ message MembershipState { // **Anthos Config Management**: Configuration for a single cluster. // Intended to parallel the ConfigManagement CR. message MembershipSpec { + // Whether to automatically manage the Feature. + enum Management { + // Unspecified + MANAGEMENT_UNSPECIFIED = 0; + + // Google will manage the Feature for the cluster. + MANAGEMENT_AUTOMATIC = 1; + + // User will manually manage the Feature for the cluster. + MANAGEMENT_MANUAL = 2; + } + // Config Sync configuration for the cluster. ConfigSync config_sync = 1; @@ -82,6 +94,18 @@ message MembershipSpec { // Version of ACM installed. string version = 10; + + // The user-specified cluster name used by Config Sync cluster-name-selector + // annotation or ClusterSelector, for applying configs to only a subset + // of clusters. + // Omit this field if the cluster's fleet membership name is used by Config + // Sync cluster-name-selector annotation or ClusterSelector. + // Set this field if a name different from the cluster's fleet membership name + // is used by Config Sync cluster-name-selector annotation or ClusterSelector. + string cluster = 11; + + // Enables automatic Feature management. + Management management = 12; } // Configuration for Config Sync @@ -90,8 +114,33 @@ message ConfigSync { GitConfig git = 7; // Specifies whether the Config Sync Repo is - // in “hierarchical” or “unstructured” mode. + // in "hierarchical" or "unstructured" mode. string source_format = 8; + + // Enables the installation of ConfigSync. + // If set to true, ConfigSync resources will be created and the other + // ConfigSync fields will be applied if exist. + // If set to false, all other ConfigSync fields will be ignored, ConfigSync + // resources will be deleted. + // If omitted, ConfigSync resources will be managed depends on the presence + // of the git or oci field. + optional bool enabled = 10; + + // Set to true to enable the Config Sync admission webhook to prevent drifts. + // If set to `false`, disables the Config Sync admission webhook and does not + // prevent drifts. + bool prevent_drift = 11; + + // OCI repo configuration for the cluster + OciConfig oci = 12; + + // The Email of the Google Cloud Service Account (GSA) used for exporting + // Config Sync metrics to Cloud Monitoring when Workload Identity is enabled. + // The GSA should have the Monitoring Metric Writer + // (roles/monitoring.metricWriter) IAM role. + // The Kubernetes ServiceAccount `default` in the namespace + // `config-management-monitoring` should be bound to the GSA. + string metrics_gcp_service_account_email = 15; } // Git repo configuration for a single cluster. @@ -112,17 +161,40 @@ message GitConfig { // Git revision (tag or hash) to check out. Default HEAD. string sync_rev = 5; - // Type of secret configured for access to the Git repo. + // Type of secret configured for access to the Git repo. Must be one of ssh, + // cookiefile, gcenode, token, gcpserviceaccount or none. The + // validation of this is case-sensitive. Required. string secret_type = 6; // URL for the HTTPS proxy to be used when communicating with the Git repo. string https_proxy = 7; - // The GCP Service Account Email used for auth when secret_type is + // The Google Cloud Service Account Email used for auth when secret_type is // gcpServiceAccount. string gcp_service_account_email = 8; } +// OCI repo configuration for a single cluster +message OciConfig { + // The OCI image repository URL for the package to sync from. + // e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`. + string sync_repo = 1; + + // The absolute path of the directory that contains + // the local resources. Default: the root directory of the image. + string policy_dir = 2; + + // Period in seconds between consecutive syncs. Default: 15. + int64 sync_wait_secs = 3; + + // Type of secret configured for access to the Git repo. + string secret_type = 4; + + // The Google Cloud Service Account Email used for auth when secret_type is + // gcpServiceAccount. + string gcp_service_account_email = 5; +} + // Configuration for Policy Controller message PolicyController { // Enables the installation of Policy Controller. @@ -208,6 +280,41 @@ message InstallError { // State information for ConfigSync message ConfigSyncState { + // CRDState representing the state of a CRD + enum CRDState { + // CRD's state cannot be determined + CRD_STATE_UNSPECIFIED = 0; + + // CRD is not installed + NOT_INSTALLED = 1; + + // CRD is installed + INSTALLED = 2; + + // CRD is terminating (i.e., it has been deleted and is cleaning up) + TERMINATING = 3; + + // CRD is installing + INSTALLING = 4; + } + + enum State { + // CS's state cannot be determined. + STATE_UNSPECIFIED = 0; + + // CS is not installed. + CONFIG_SYNC_NOT_INSTALLED = 1; + + // The expected CS version is installed successfully. + CONFIG_SYNC_INSTALLED = 2; + + // CS encounters errors. + CONFIG_SYNC_ERROR = 3; + + // CS is installing or terminating. + CONFIG_SYNC_PENDING = 4; + } + // The version of ConfigSync deployed ConfigSyncVersion version = 1; @@ -217,6 +324,25 @@ message ConfigSyncState { // The state of ConfigSync's process to sync configs to a cluster SyncState sync_state = 3; + + // Errors pertaining to the installation of Config Sync. + repeated ConfigSyncError errors = 4; + + // The state of the RootSync CRD + CRDState rootsync_crd = 5; + + // The state of the Reposync CRD + CRDState reposync_crd = 6; + + // The state of CS + // This field summarizes the other fields in this message. + State state = 7; +} + +// Errors pertaining to the installation of Config Sync +message ConfigSyncError { + // A string representing the user facing error message + string error_message = 1; } // Specific versioning information pertaining to ConfigSync's Pods @@ -238,6 +364,9 @@ message ConfigSyncVersion { // Version of the deployed reconciler container in root-reconciler pod string root_reconciler = 6; + + // Version of the deployed admission_webhook pod + string admission_webhook = 7; } // The state of ConfigSync's deployment on a cluster @@ -259,29 +388,31 @@ message ConfigSyncDeploymentState { // Deployment state of root-reconciler DeploymentState root_reconciler = 6; + + // Deployment state of admission-webhook + DeploymentState admission_webhook = 7; } // State indicating an ACM's progress syncing configurations to a cluster message SyncState { - // An enum representing an ACM's status syncing configs to a cluster + // An enum representing Config Sync's status of syncing configs to a cluster. enum SyncCode { - // ACM cannot determine a sync code + // Config Sync cannot determine a sync code SYNC_CODE_UNSPECIFIED = 0; - // ACM successfully synced the git Repo with the cluster + // Config Sync successfully synced the git Repo with the cluster SYNCED = 1; - // ACM is in the progress of syncing a new change + // Config Sync is in the progress of syncing a new change PENDING = 2; - // Indicates an error configuring ACM, and user action is required + // Indicates an error configuring Config Sync, and user action is required ERROR = 3; - // ACM has been installed (operator manifest deployed), - // but not configured. + // Config Sync has been installed but not configured NOT_CONFIGURED = 4; - // ACM has not been installed (no operator pod found) + // Config Sync has not been installed NOT_INSTALLED = 5; // Error authorizing with the cluster diff --git a/third_party/googleapis/google/cloud/gkehub/v1/feature.proto b/third_party/googleapis/google/cloud/gkehub/v1/feature.proto index 6b48661b4..f267a1f0b 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1/feature.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1/membership.proto b/third_party/googleapis/google/cloud/gkehub/v1/membership.proto index ae4337cc2..c60ca880d 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1/membership.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1/membership.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto b/third_party/googleapis/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto index ce9a72514..106d2cd96 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1/multiclusteringress/multiclusteringress.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1/service.proto b/third_party/googleapis/google/cloud/gkehub/v1/service.proto index cecf242e4..9c1e3a99a 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1/service.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto index e8b3bb0ca..e6e2d6f16 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/cloudauditlogging/cloudauditlogging.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto index bca2e5510..a12d2a08b 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/configmanagement/configmanagement.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/feature.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/feature.proto index e8557d90a..b1238e7e8 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/feature.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/metering/metering.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/metering/metering.proto index 6bb7e55a7..8cdd9c436 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/metering/metering.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/metering/metering.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto index 2d4ce5c7f..5a95e31be 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/multiclusteringress/multiclusteringress.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/service.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/service.proto index f90a53a51..6f1b3bc8d 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/service.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto b/third_party/googleapis/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto index 927c15a59..88a08f47f 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1alpha/servicemesh/servicemesh.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta/BUILD.bazel b/third_party/googleapis/google/cloud/gkehub/v1beta/BUILD.bazel index ee4414ab1..11b13b902 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/cloud/gkehub/v1beta/BUILD.bazel @@ -35,6 +35,7 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", + "//google/cloud/gkehub/servicemesh/v1beta:servicemesh_proto", "//google/longrunning:operations_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -139,6 +140,7 @@ go_proto_library( protos = [":gkehub_proto"], deps = [ "//google/api:annotations_go_proto", + "//google/cloud/gkehub/servicemesh/v1beta:servicemesh_go_proto", "//google/cloud/gkehub/v1beta/configmanagement:configmanagement_go_proto", "//google/cloud/gkehub/v1beta/metering:metering_go_proto", "//google/cloud/gkehub/v1beta/multiclusteringress:multiclusteringress_go_proto", @@ -280,6 +282,7 @@ nodejs_gapic_assembly_pkg( deps = [ ":gkehub_nodejs_gapic", ":gkehub_proto", + "//google/cloud/gkehub/servicemesh/v1beta:servicemesh_proto", "//google/cloud/gkehub/v1beta/configmanagement:configmanagement_proto", "//google/cloud/gkehub/v1beta/metering:metering_proto", "//google/cloud/gkehub/v1beta/multiclusteringress:multiclusteringress_proto", diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto b/third_party/googleapis/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto index 77211d349..dcebd2703 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta/feature.proto b/third_party/googleapis/google/cloud/gkehub/v1beta/feature.proto index 3655644e6..7ba1bbbf6 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta/feature.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1beta/feature.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.gkehub.v1beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/gkehub/servicemesh/v1beta/servicemesh.proto"; import "google/cloud/gkehub/v1beta/configmanagement/configmanagement.proto"; import "google/cloud/gkehub/v1beta/metering/metering.proto"; import "google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto"; @@ -42,22 +43,24 @@ message Feature { // `projects/*/locations/*/features/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // GCP labels for this Feature. + // Labels for this Feature. map labels = 2; // Output only. State of the Feature resource itself. - FeatureResourceState resource_state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + FeatureResourceState resource_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Hub-wide Feature configuration. If this Feature does not support any - // Hub-wide configuration, this field may be unused. + // Optional. Hub-wide Feature configuration. If this Feature does not support + // any Hub-wide configuration, this field may be unused. CommonFeatureSpec spec = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Membership-specific configuration for this Feature. If this Feature does - // not support any per-Membership configuration, this field may be unused. + // Optional. Membership-specific configuration for this Feature. If this + // Feature does not support any per-Membership configuration, this field may + // be unused. // // The keys indicate which Membership the configuration is for, in the form: // - // projects/{p}/locations/{l}/memberships/{m} + // `projects/{p}/locations/{l}/memberships/{m}` // // Where {p} is the project, {l} is a valid location and {m} is a valid // Membership in this project at that location. {p} WILL match the Feature's @@ -69,7 +72,8 @@ message Feature { // ONE of the entries will be saved, with no guarantees as to which. For this // reason, it is recommended the same format be used for all entries when // mutating a Feature. - map membership_specs = 5 [(google.api.field_behavior) = OPTIONAL]; + map membership_specs = 5 + [(google.api.field_behavior) = OPTIONAL]; // Output only. The Hub-wide Feature state. CommonFeatureState state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -79,21 +83,25 @@ message Feature { // // The keys indicate which Membership the state is for, in the form: // - // projects/{p}/locations/{l}/memberships/{m} + // `projects/{p}/locations/{l}/memberships/{m}` // // Where {p} is the project number, {l} is a valid location and {m} is a valid // Membership in this project at that location. {p} MUST match the Feature's // project number. - map membership_states = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + map membership_states = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. When the Feature resource was created. - google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. When the Feature resource was last updated. - google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. When the Feature resource was deleted. - google.protobuf.Timestamp delete_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp delete_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // FeatureResourceState describes the state of a Feature *resource* in the @@ -167,7 +175,8 @@ message FeatureState { message CommonFeatureSpec { oneof feature_spec { // Multicluster Ingress-specific spec. - google.cloud.gkehub.multiclusteringress.v1beta.FeatureSpec multiclusteringress = 102; + google.cloud.gkehub.multiclusteringress.v1beta.FeatureSpec + multiclusteringress = 102; } } @@ -179,10 +188,15 @@ message CommonFeatureState { // MembershipFeatureSpec contains configuration information for a single // Membership. +// NOTE: Please use snake case in your feature name. message MembershipFeatureSpec { oneof feature_spec { // Config Management-specific spec. - google.cloud.gkehub.configmanagement.v1beta.MembershipSpec configmanagement = 106; + google.cloud.gkehub.configmanagement.v1beta.MembershipSpec + configmanagement = 106; + + // Anthos Service Mesh-specific spec + google.cloud.gkehub.servicemesh.v1beta.MembershipSpec mesh = 116; } } @@ -190,11 +204,15 @@ message MembershipFeatureSpec { // Membership. message MembershipFeatureState { oneof feature_state { - // Metering-specific spec. + // Service Mesh-specific state. + google.cloud.gkehub.servicemesh.v1beta.MembershipState servicemesh = 100; + + // Metering-specific state. google.cloud.gkehub.metering.v1beta.MembershipState metering = 104; // Config Management-specific state. - google.cloud.gkehub.configmanagement.v1beta.MembershipState configmanagement = 106; + google.cloud.gkehub.configmanagement.v1beta.MembershipState + configmanagement = 106; } // The high-level state of this Feature for a single membership. diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta/metering/metering.proto b/third_party/googleapis/google/cloud/gkehub/v1beta/metering/metering.proto index 3436915d5..408dafc66 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta/metering/metering.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1beta/metering/metering.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto b/third_party/googleapis/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto index 90c483b3b..39884075d 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta/service.proto b/third_party/googleapis/google/cloud/gkehub/v1beta/service.proto index 27640473a..f3e768f3d 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta/service.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1beta/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkehub/v1beta1/membership.proto b/third_party/googleapis/google/cloud/gkehub/v1beta1/membership.proto index 020ae85c3..3dfb1cbe6 100644 --- a/third_party/googleapis/google/cloud/gkehub/v1beta1/membership.proto +++ b/third_party/googleapis/google/cloud/gkehub/v1beta1/membership.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/BUILD.bazel b/third_party/googleapis/google/cloud/gkemulticloud/v1/BUILD.bazel index 9a8090d55..757da15b6 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "gkemulticloud_proto", @@ -53,6 +56,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -119,6 +123,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -171,6 +176,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -215,6 +221,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -231,7 +238,7 @@ php_gapic_library( name = "gkemulticloud_php_gapic", srcs = [":gkemulticloud_proto_with_info"], grpc_service_config = "gkemulticloud_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = False, service_yaml = "gkemulticloud_v1.yaml", transport = "grpc+rest", @@ -252,6 +259,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -282,6 +290,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -335,6 +344,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -345,7 +355,6 @@ load( csharp_proto_library( name = "gkemulticloud_csharp_proto", - extra_opts = [], deps = [":gkemulticloud_proto"], ) @@ -382,6 +391,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_resources.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_resources.proto index f4f69ab10..2dc635bc9 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_resources.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_service.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_service.proto index eb15cd093..53092c70f 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_service.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/attached_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_resources.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_resources.proto index a40b66054..0c5a923aa 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_resources.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -564,8 +564,8 @@ message AwsNodeConfig { // 255 Unicode characters. map tags = 5 [(google.api.field_behavior) = OPTIONAL]; - // Required. The name or ARN of the AWS IAM role assigned to nodes in the - // pool. + // Required. The name or ARN of the AWS IAM instance profile to assign to + // nodes in the pool. string iam_instance_profile = 6 [(google.api.field_behavior) = REQUIRED]; // Optional. The OS image type to use on node pool instances. diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_service.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_service.proto index ce713cf65..8da89f0a1 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_service.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/aws_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_resources.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_resources.proto index ba6a45da7..867505992 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_resources.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_service.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_service.proto index 8e669a056..a282590d6 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_service.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/azure_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -472,6 +472,12 @@ message DeleteAzureClusterRequest { // If the provided etag does not match the current etag of the cluster, // the request will fail and an ABORTED error will be returned. string etag = 4; + + // Optional. If set to true, the deletion of + // [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource will + // succeed even if errors occur during deleting in cluster resources. Using + // this parameter may result in orphaned resources in the cluster. + bool ignore_errors = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for `AzureClusters.CreateAzureNodePool` method. @@ -635,6 +641,12 @@ message DeleteAzureNodePoolRequest { // If the provided ETag does not match the current etag of the node pool, // the request will fail and an ABORTED error will be returned. string etag = 4; + + // Optional. If set to true, the deletion of + // [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource will + // succeed even if errors occur during deleting in node pool resources. Using + // this parameter may result in orphaned resources in the node pool. + bool ignore_errors = 5 [(google.api.field_behavior) = OPTIONAL]; } // GetAzureOpenIdConfigRequest gets the OIDC discovery document for the @@ -658,7 +670,7 @@ message GetAzureOpenIdConfigRequest { message GetAzureJsonWebKeysRequest { // Required. The AzureCluster, which owns the JsonWebKeys. // Format: - // projects//locations//azureClusters/ + // `projects//locations//azureClusters/` string azure_cluster = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/gkemulticloud/v1/common_resources.proto b/third_party/googleapis/google/cloud/gkemulticloud/v1/common_resources.proto index a9746caba..3f84e4e73 100644 --- a/third_party/googleapis/google/cloud/gkemulticloud/v1/common_resources.proto +++ b/third_party/googleapis/google/cloud/gkemulticloud/v1/common_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gsuiteaddons/logging/v1/g_suite_add_ons_log_entry.proto b/third_party/googleapis/google/cloud/gsuiteaddons/logging/v1/g_suite_add_ons_log_entry.proto index 9d575dd8b..e6de447ff 100644 --- a/third_party/googleapis/google/cloud/gsuiteaddons/logging/v1/g_suite_add_ons_log_entry.proto +++ b/third_party/googleapis/google/cloud/gsuiteaddons/logging/v1/g_suite_add_ons_log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/gsuiteaddons/v1/BUILD.bazel b/third_party/googleapis/google/cloud/gsuiteaddons/v1/BUILD.bazel index 38f0cb42b..fb2d03826 100644 --- a/third_party/googleapis/google/cloud/gsuiteaddons/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/gsuiteaddons/v1/BUILD.bazel @@ -226,7 +226,7 @@ php_gapic_library( name = "gsuiteaddons_php_gapic", srcs = [":gsuiteaddons_proto_with_info"], grpc_service_config = "gsuiteaddons_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "gsuiteaddons_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/gsuiteaddons/v1/gsuiteaddons.proto b/third_party/googleapis/google/cloud/gsuiteaddons/v1/gsuiteaddons.proto index 8d557ca5f..70dc975a4 100644 --- a/third_party/googleapis/google/cloud/gsuiteaddons/v1/gsuiteaddons.proto +++ b/third_party/googleapis/google/cloud/gsuiteaddons/v1/gsuiteaddons.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/healthcare/logging/annotation.proto b/third_party/googleapis/google/cloud/healthcare/logging/annotation.proto index 45542397d..d0b7e7cca 100644 --- a/third_party/googleapis/google/cloud/healthcare/logging/annotation.proto +++ b/third_party/googleapis/google/cloud/healthcare/logging/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/healthcare/logging/consent.proto b/third_party/googleapis/google/cloud/healthcare/logging/consent.proto index e01e6d36b..66f9d4eb0 100644 --- a/third_party/googleapis/google/cloud/healthcare/logging/consent.proto +++ b/third_party/googleapis/google/cloud/healthcare/logging/consent.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/healthcare/logging/deid.proto b/third_party/googleapis/google/cloud/healthcare/logging/deid.proto index 9b254c378..76b47cdac 100644 --- a/third_party/googleapis/google/cloud/healthcare/logging/deid.proto +++ b/third_party/googleapis/google/cloud/healthcare/logging/deid.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/healthcare/logging/dicom.proto b/third_party/googleapis/google/cloud/healthcare/logging/dicom.proto index 76aea5b76..77336391f 100644 --- a/third_party/googleapis/google/cloud/healthcare/logging/dicom.proto +++ b/third_party/googleapis/google/cloud/healthcare/logging/dicom.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/healthcare/logging/fhir.proto b/third_party/googleapis/google/cloud/healthcare/logging/fhir.proto index 2e31d4b9e..5a286ef34 100644 --- a/third_party/googleapis/google/cloud/healthcare/logging/fhir.proto +++ b/third_party/googleapis/google/cloud/healthcare/logging/fhir.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/healthcare/logging/hl7v2.proto b/third_party/googleapis/google/cloud/healthcare/logging/hl7v2.proto index 6235a8824..fdeafbe2b 100644 --- a/third_party/googleapis/google/cloud/healthcare/logging/hl7v2.proto +++ b/third_party/googleapis/google/cloud/healthcare/logging/hl7v2.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/iap/v1/service.proto b/third_party/googleapis/google/cloud/iap/v1/service.proto index 40fbce180..dd1807f46 100644 --- a/third_party/googleapis/google/cloud/iap/v1/service.proto +++ b/third_party/googleapis/google/cloud/iap/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/iap/v1beta1/service.proto b/third_party/googleapis/google/cloud/iap/v1beta1/service.proto index c1ead1cfd..085adb767 100644 --- a/third_party/googleapis/google/cloud/iap/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/iap/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/identitytoolkit/logging/request_log.proto b/third_party/googleapis/google/cloud/identitytoolkit/logging/request_log.proto index 3b7fdd8a1..872afbd3c 100644 --- a/third_party/googleapis/google/cloud/identitytoolkit/logging/request_log.proto +++ b/third_party/googleapis/google/cloud/identitytoolkit/logging/request_log.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/identitytoolkit/v2/account_management_service.proto b/third_party/googleapis/google/cloud/identitytoolkit/v2/account_management_service.proto index dc4d4daf6..2635ef9b7 100644 --- a/third_party/googleapis/google/cloud/identitytoolkit/v2/account_management_service.proto +++ b/third_party/googleapis/google/cloud/identitytoolkit/v2/account_management_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/identitytoolkit/v2/authentication_service.proto b/third_party/googleapis/google/cloud/identitytoolkit/v2/authentication_service.proto index bb1ce9ec0..7bc82e94e 100644 --- a/third_party/googleapis/google/cloud/identitytoolkit/v2/authentication_service.proto +++ b/third_party/googleapis/google/cloud/identitytoolkit/v2/authentication_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/identitytoolkit/v2/mfa_info.proto b/third_party/googleapis/google/cloud/identitytoolkit/v2/mfa_info.proto index 862a9a2b7..479070e8c 100644 --- a/third_party/googleapis/google/cloud/identitytoolkit/v2/mfa_info.proto +++ b/third_party/googleapis/google/cloud/identitytoolkit/v2/mfa_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/ids/logging/v1/logging.proto b/third_party/googleapis/google/cloud/ids/logging/v1/logging.proto index f3e3eaca9..74283906b 100644 --- a/third_party/googleapis/google/cloud/ids/logging/v1/logging.proto +++ b/third_party/googleapis/google/cloud/ids/logging/v1/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/ids/v1/BUILD.bazel b/third_party/googleapis/google/cloud/ids/v1/BUILD.bazel index f3d563ea0..aa5a736f0 100644 --- a/third_party/googleapis/google/cloud/ids/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/ids/v1/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( srcs = [":ids_proto_with_info"], gapic_yaml = "ids_gapic.yaml", grpc_service_config = "ids_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "ids_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/ids/v1/ids.proto b/third_party/googleapis/google/cloud/ids/v1/ids.proto index bad61be32..699743e84 100644 --- a/third_party/googleapis/google/cloud/ids/v1/ids.proto +++ b/third_party/googleapis/google/cloud/ids/v1/ids.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/cloud_logging_details.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/cloud_logging_details.proto index bf1f5c08e..11659432b 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/cloud_logging_details.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/cloud_logging_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/coordinate.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/coordinate.proto index d5783975d..28db34805 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/coordinate.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/coordinate.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/event_parameter.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/event_parameter.proto index 412061581..d6b97d813 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/event_parameter.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/event_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/integration_state.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/integration_state.proto index bf31890c8..512b8b0a5 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/integration_state.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/integration_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/json_validation.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/json_validation.proto index 7b2373e8e..f7c5af048 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/json_validation.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/json_validation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/log_entries.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/log_entries.proto index 32ad38c88..79817caa3 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/log_entries.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/log_entries.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/product.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/product.proto index 61042d161..b3022f09d 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/product.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/product.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/task_config.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/task_config.proto index ed721461a..42b60f335 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/task_config.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/task_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/integrations/v1alpha/value_type.proto b/third_party/googleapis/google/cloud/integrations/v1alpha/value_type.proto index 70cabd79e..5d45e837d 100644 --- a/third_party/googleapis/google/cloud/integrations/v1alpha/value_type.proto +++ b/third_party/googleapis/google/cloud/integrations/v1alpha/value_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/iot/v1/device_manager.proto b/third_party/googleapis/google/cloud/iot/v1/device_manager.proto index 121bcdeef..0f1f7d63e 100644 --- a/third_party/googleapis/google/cloud/iot/v1/device_manager.proto +++ b/third_party/googleapis/google/cloud/iot/v1/device_manager.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/iot/v1/resources.proto b/third_party/googleapis/google/cloud/iot/v1/resources.proto index d08d268b0..92530f204 100644 --- a/third_party/googleapis/google/cloud/iot/v1/resources.proto +++ b/third_party/googleapis/google/cloud/iot/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/kms/BUILD.bazel b/third_party/googleapis/google/cloud/kms/BUILD.bazel index 6bacbb92c..efefb78a7 100644 --- a/third_party/googleapis/google/cloud/kms/BUILD.bazel +++ b/third_party/googleapis/google/cloud/kms/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-kms", "ruby-cloud-env-prefix=KMS", - "ruby-cloud-wrapper-of=v1:0.24", + "ruby-cloud-wrapper-of=v1:0.26", "ruby-cloud-product-url=https://cloud.google.com/kms", "ruby-cloud-api-id=cloudkms.googleapis.com", "ruby-cloud-api-shortname=cloudkms", diff --git a/third_party/googleapis/google/cloud/kms/inventory/v1/key_dashboard_service.proto b/third_party/googleapis/google/cloud/kms/inventory/v1/key_dashboard_service.proto index fe6353e44..0d80befb0 100644 --- a/third_party/googleapis/google/cloud/kms/inventory/v1/key_dashboard_service.proto +++ b/third_party/googleapis/google/cloud/kms/inventory/v1/key_dashboard_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/kms/inventory/v1/key_tracking_service.proto b/third_party/googleapis/google/cloud/kms/inventory/v1/key_tracking_service.proto index fa324fd78..90ecf0571 100644 --- a/third_party/googleapis/google/cloud/kms/inventory/v1/key_tracking_service.proto +++ b/third_party/googleapis/google/cloud/kms/inventory/v1/key_tracking_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/kms/logging/v1/logs.proto b/third_party/googleapis/google/cloud/kms/logging/v1/logs.proto index 82cc3a65e..99a56c4ee 100644 --- a/third_party/googleapis/google/cloud/kms/logging/v1/logs.proto +++ b/third_party/googleapis/google/cloud/kms/logging/v1/logs.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/kms/v1/BUILD.bazel b/third_party/googleapis/google/cloud/kms/v1/BUILD.bazel index 4b5aca936..bb03b727b 100644 --- a/third_party/googleapis/google/cloud/kms/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/kms/v1/BUILD.bazel @@ -1,20 +1,31 @@ -load("@rules_proto//proto:defs.bzl", "proto_library") +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) -# Reading the default service config is useful for custom gRPC clients. -exports_files(["cloudkms_grpc_service_config.json"]) - ############################################################################## # Common ############################################################################## -# buildifier: disable=load-on-top +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "kms_proto", srcs = [ + "autokey.proto", + "autokey_admin.proto", "ekm_service.proto", "resources.proto", "service.proto", @@ -24,9 +35,9 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", + "//google/longrunning:operations_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:field_mask_proto", - "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", ], @@ -39,14 +50,12 @@ proto_library_with_info( "//google/cloud:common_resources_proto", "//google/cloud/location:location_proto", "//google/iam/v1:iam_policy_proto", - "//google/iam/v1:policy_proto", ], ) ############################################################################## # Java ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -71,6 +80,7 @@ java_grpc_library( java_gapic_library( name = "kms_java_gapic", srcs = [":kms_proto_with_info"], + gapic_yaml = None, grpc_service_config = "cloudkms_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "cloudkms_v1.yaml", @@ -82,6 +92,7 @@ java_gapic_library( transport = "grpc+rest", deps = [ ":kms_java_proto", + "//google/api:api_java_proto", "//google/cloud/location:location_java_proto", "//google/iam/v1:iam_java_proto", ], @@ -90,6 +101,12 @@ java_gapic_library( java_gapic_test( name = "kms_java_gapic_test_suite", test_classes = [ + "com.google.cloud.kms.v1.AutokeyAdminClientHttpJsonTest", + "com.google.cloud.kms.v1.AutokeyAdminClientTest", + "com.google.cloud.kms.v1.AutokeyClientHttpJsonTest", + "com.google.cloud.kms.v1.AutokeyClientTest", + "com.google.cloud.kms.v1.EkmServiceClientHttpJsonTest", + "com.google.cloud.kms.v1.EkmServiceClientTest", "com.google.cloud.kms.v1.KeyManagementServiceClientHttpJsonTest", "com.google.cloud.kms.v1.KeyManagementServiceClientTest", ], @@ -112,7 +129,6 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -128,7 +144,7 @@ go_proto_library( protos = [":kms_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", ], ) @@ -146,6 +162,9 @@ go_gapic_library( ":kms_go_proto", "//google/cloud/location:location_go_proto", "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -155,6 +174,7 @@ go_gapic_assembly_pkg( name = "gapi-cloud-kms-v1-go", deps = [ ":kms_go_gapic", + ":kms_go_gapic_srcjar-metadata.srcjar", ":kms_go_gapic_srcjar-snippets.srcjar", ":kms_go_gapic_srcjar-test.srcjar", ":kms_go_proto", @@ -164,7 +184,6 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -190,7 +209,6 @@ py_gapic_library( transport = "grpc+rest", deps = [ "//google/iam/v1:iam_policy_py_proto", - "//google/iam/v1:policy_py_proto", ], ) @@ -204,6 +222,7 @@ py_test( deps = [":kms_py_gapic"], ) +# Open Source Packages py_gapic_assembly_pkg( name = "kms-v1-py", deps = [ @@ -214,7 +233,6 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -231,11 +249,14 @@ php_proto_library( php_gapic_library( name = "kms_php_gapic", srcs = [":kms_proto_with_info"], + grpc_service_config = "cloudkms_grpc_service_config.json", migration_mode = "MIGRATING", rest_numeric_enums = True, service_yaml = "cloudkms_v1.yaml", transport = "grpc+rest", - deps = [":kms_php_proto"], + deps = [ + ":kms_php_proto", + ], ) # Open Source Packages @@ -250,7 +271,6 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -282,7 +302,6 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -307,11 +326,11 @@ ruby_cloud_gapic_library( name = "kms_ruby_gapic", srcs = [":kms_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-kms-v1", - "ruby-cloud-env-prefix=KMS", - "ruby-cloud-product-url=https://cloud.google.com/kms", "ruby-cloud-api-id=cloudkms.googleapis.com", "ruby-cloud-api-shortname=cloudkms", + "ruby-cloud-env-prefix=KMS", + "ruby-cloud-gem-name=google-cloud-kms-v1", + "ruby-cloud-product-url=https://cloud.google.com/kms", ], grpc_service_config = "cloudkms_grpc_service_config.json", rest_numeric_enums = True, @@ -338,7 +357,6 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", @@ -350,6 +368,7 @@ load( csharp_proto_library( name = "kms_csharp_proto", + extra_opts = [], deps = [":kms_proto"], ) @@ -386,7 +405,6 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# buildifier: disable=load-on-top # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", diff --git a/third_party/googleapis/google/cloud/kms/v1/autokey.proto b/third_party/googleapis/google/cloud/kms/v1/autokey.proto new file mode 100644 index 000000000..e13c2441d --- /dev/null +++ b/third_party/googleapis/google/cloud/kms/v1/autokey.proto @@ -0,0 +1,194 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.kms.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "cloud.google.com/go/kms/apiv1/kmspb;kmspb"; +option java_multiple_files = true; +option java_outer_classname = "AutokeyProto"; +option java_package = "com.google.cloud.kms.v1"; + +// Provides interfaces for using Cloud KMS Autokey to provision new +// [CryptoKeys][google.cloud.kms.v1.CryptoKey], ready for Customer Managed +// Encryption Key (CMEK) use, on-demand. To support certain client tooling, this +// feature is modeled around a [KeyHandle][google.cloud.kms.v1.KeyHandle] +// resource: creating a [KeyHandle][google.cloud.kms.v1.KeyHandle] in a resource +// project and given location triggers Cloud KMS Autokey to provision a +// [CryptoKey][google.cloud.kms.v1.CryptoKey] in the configured key project and +// the same location. +// +// Prior to use in a given resource project, +// [UpdateAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig] +// should have been called on an ancestor folder, setting the key project where +// Cloud KMS Autokey should create new +// [CryptoKeys][google.cloud.kms.v1.CryptoKey]. See documentation for additional +// prerequisites. To check what key project, if any, is currently configured on +// a resource project's ancestor folder, see +// [ShowEffectiveAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig]. +service Autokey { + option (google.api.default_host) = "cloudkms.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloudkms"; + + // Creates a new [KeyHandle][google.cloud.kms.v1.KeyHandle], triggering the + // provisioning of a new [CryptoKey][google.cloud.kms.v1.CryptoKey] for CMEK + // use with the given resource type in the configured key project and the same + // location. [GetOperation][Operations.GetOperation] should be used to resolve + // the resulting long-running operation and get the resulting + // [KeyHandle][google.cloud.kms.v1.KeyHandle] and + // [CryptoKey][google.cloud.kms.v1.CryptoKey]. + rpc CreateKeyHandle(CreateKeyHandleRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/keyHandles" + body: "key_handle" + }; + option (google.api.method_signature) = "parent,key_handle,key_handle_id"; + option (google.longrunning.operation_info) = { + response_type: "KeyHandle" + metadata_type: "CreateKeyHandleMetadata" + }; + } + + // Returns the [KeyHandle][google.cloud.kms.v1.KeyHandle]. + rpc GetKeyHandle(GetKeyHandleRequest) returns (KeyHandle) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/keyHandles/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists [KeyHandles][google.cloud.kms.v1.KeyHandle]. + rpc ListKeyHandles(ListKeyHandlesRequest) returns (ListKeyHandlesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/keyHandles" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for +// [Autokey.CreateKeyHandle][google.cloud.kms.v1.Autokey.CreateKeyHandle]. +message CreateKeyHandleRequest { + // Required. Name of the resource project and location to create the + // [KeyHandle][google.cloud.kms.v1.KeyHandle] in, e.g. + // `projects/{PROJECT_ID}/locations/{LOCATION}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Id of the [KeyHandle][google.cloud.kms.v1.KeyHandle]. Must be + // unique to the resource project and location. If not provided by the caller, + // a new UUID is used. + string key_handle_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. [KeyHandle][google.cloud.kms.v1.KeyHandle] to create. + KeyHandle key_handle = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [GetKeyHandle][google.cloud.kms.v1.Autokey.GetKeyHandle]. +message GetKeyHandleRequest { + // Required. Name of the [KeyHandle][google.cloud.kms.v1.KeyHandle] resource, + // e.g. + // `projects/{PROJECT_ID}/locations/{LOCATION}/keyHandles/{KEY_HANDLE_ID}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/KeyHandle" + } + ]; +} + +// Resource-oriented representation of a request to Cloud KMS Autokey and the +// resulting provisioning of a [CryptoKey][google.cloud.kms.v1.CryptoKey]. +message KeyHandle { + option (google.api.resource) = { + type: "cloudkms.googleapis.com/KeyHandle" + pattern: "projects/{project}/locations/{location}/keyHandles/{key_handle}" + plural: "keyHandles" + singular: "keyHandle" + }; + + // Identifier. Name of the [KeyHandle][google.cloud.kms.v1.KeyHandle] + // resource, e.g. + // `projects/{PROJECT_ID}/locations/{LOCATION}/keyHandles/{KEY_HANDLE_ID}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Name of a [CryptoKey][google.cloud.kms.v1.CryptoKey] that has + // been provisioned for Customer Managed Encryption Key (CMEK) use in the + // [KeyHandle][google.cloud.kms.v1.KeyHandle] project and location for the + // requested resource type. The [CryptoKey][google.cloud.kms.v1.CryptoKey] + // project will reflect the value configured in the + // [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] on the resource + // project's ancestor folder at the time of the + // [KeyHandle][google.cloud.kms.v1.KeyHandle] creation. If more than one + // ancestor folder has a configured + // [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig], the nearest of these + // configurations is used. + string kms_key = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Required. Indicates the resource type that the resulting + // [CryptoKey][google.cloud.kms.v1.CryptoKey] is meant to protect, e.g. + // `{SERVICE}.googleapis.com/{TYPE}`. See documentation for supported resource + // types. + string resource_type_selector = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata message for +// [CreateKeyHandle][google.cloud.kms.v1.Autokey.CreateKeyHandle] long-running +// operation response. +message CreateKeyHandleMetadata {} + +// Request message for +// [Autokey.ListKeyHandles][google.cloud.kms.v1.Autokey.ListKeyHandles]. +message ListKeyHandlesRequest { + // Required. Name of the resource project and location from which to list + // [KeyHandles][google.cloud.kms.v1.KeyHandle], e.g. + // `projects/{PROJECT_ID}/locations/{LOCATION}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Filter to apply when listing + // [KeyHandles][google.cloud.kms.v1.KeyHandle], e.g. + // `resource_type_selector="{SERVICE}.googleapis.com/{TYPE}"`. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [Autokey.ListKeyHandles][google.cloud.kms.v1.Autokey.ListKeyHandles]. +message ListKeyHandlesResponse { + // Resulting [KeyHandles][google.cloud.kms.v1.KeyHandle]. + repeated KeyHandle key_handles = 1; +} diff --git a/third_party/googleapis/google/cloud/kms/v1/autokey_admin.proto b/third_party/googleapis/google/cloud/kms/v1/autokey_admin.proto new file mode 100644 index 000000000..fdbe170b9 --- /dev/null +++ b/third_party/googleapis/google/cloud/kms/v1/autokey_admin.proto @@ -0,0 +1,151 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.kms.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "cloud.google.com/go/kms/apiv1/kmspb;kmspb"; +option java_multiple_files = true; +option java_outer_classname = "AutokeyAdminProto"; +option java_package = "com.google.cloud.kms.v1"; + +// Provides interfaces for managing Cloud KMS Autokey folder-level +// configurations. A configuration is inherited by all descendent projects. A +// configuration at one folder overrides any other configurations in its +// ancestry. Setting a configuration on a folder is a prerequisite for Cloud KMS +// Autokey, so that users working in a descendant project can request +// provisioned [CryptoKeys][google.cloud.kms.v1.CryptoKey], ready for Customer +// Managed Encryption Key (CMEK) use, on-demand. +service AutokeyAdmin { + option (google.api.default_host) = "cloudkms.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloudkms"; + + // Updates the [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] for a + // folder. The caller must have both `cloudkms.autokeyConfigs.update` + // permission on the parent folder and `cloudkms.cryptoKeys.setIamPolicy` + // permission on the provided key project. A + // [KeyHandle][google.cloud.kms.v1.KeyHandle] creation in the folder's + // descendant projects will use this configuration to determine where to + // create the resulting [CryptoKey][google.cloud.kms.v1.CryptoKey]. + rpc UpdateAutokeyConfig(UpdateAutokeyConfigRequest) returns (AutokeyConfig) { + option (google.api.http) = { + patch: "/v1/{autokey_config.name=folders/*/autokeyConfig}" + body: "autokey_config" + }; + option (google.api.method_signature) = "autokey_config,update_mask"; + } + + // Returns the [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] for a + // folder. + rpc GetAutokeyConfig(GetAutokeyConfigRequest) returns (AutokeyConfig) { + option (google.api.http) = { + get: "/v1/{name=folders/*/autokeyConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns the effective Cloud KMS Autokey configuration for a given project. + rpc ShowEffectiveAutokeyConfig(ShowEffectiveAutokeyConfigRequest) + returns (ShowEffectiveAutokeyConfigResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}:showEffectiveAutokeyConfig" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for +// [UpdateAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig]. +message UpdateAutokeyConfigRequest { + // Required. [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] with values to + // update. + AutokeyConfig autokey_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Masks which fields of the + // [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] to update, e.g. + // `keyProject`. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [GetAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.GetAutokeyConfig]. +message GetAutokeyConfigRequest { + // Required. Name of the [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] + // resource, e.g. `folders/{FOLDER_NUMBER}/autokeyConfig`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/AutokeyConfig" + } + ]; +} + +// Cloud KMS Autokey configuration for a folder. +message AutokeyConfig { + option (google.api.resource) = { + type: "cloudkms.googleapis.com/AutokeyConfig" + pattern: "folders/{folder}/autokeyConfig" + plural: "autokeyConfigs" + singular: "autokeyConfig" + }; + + // Identifier. Name of the [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] + // resource, e.g. `folders/{FOLDER_NUMBER}/autokeyConfig`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Name of the key project, e.g. `projects/{PROJECT_ID}` or + // `projects/{PROJECT_NUMBER}`, where Cloud KMS Autokey will provision a new + // [CryptoKey][google.cloud.kms.v1.CryptoKey] when a + // [KeyHandle][google.cloud.kms.v1.KeyHandle] is created. On + // [UpdateAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig], + // the caller will require `cloudkms.cryptoKeys.setIamPolicy` permission on + // this key project. Once configured, for Cloud KMS Autokey to function + // properly, this key project must have the Cloud KMS API activated and the + // Cloud KMS Service Agent for this key project must be granted the + // `cloudkms.admin` role (or pertinent permissions). A request with an empty + // key project field will clear the configuration. + string key_project = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [ShowEffectiveAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig]. +message ShowEffectiveAutokeyConfigRequest { + // Required. Name of the resource project to the show effective Cloud KMS + // Autokey configuration for. This may be helpful for interrogating the effect + // of nested folder configurations on a given resource project. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; +} + +// Response message for +// [ShowEffectiveAutokeyConfig][google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig]. +message ShowEffectiveAutokeyConfigResponse { + // Name of the key project configured in the resource project's folder + // ancestry. + string key_project = 1; +} diff --git a/third_party/googleapis/google/cloud/kms/v1/cloudkms_grpc_service_config.json b/third_party/googleapis/google/cloud/kms/v1/cloudkms_grpc_service_config.json index 85ee12b04..c172aa4a8 100755 --- a/third_party/googleapis/google/cloud/kms/v1/cloudkms_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/kms/v1/cloudkms_grpc_service_config.json @@ -9,6 +9,10 @@ { "service": "google.cloud.kms.v1.KeyManagementService", "method": "ImportCryptoKeyVersion" + }, + { + "service": "google.cloud.kms.v1.Autokey", + "method": "CreateKeyHandle" } ], "timeout": "60s" @@ -150,6 +154,26 @@ { "service": "google.cloud.kms.v1.KeyManagementService", "method": "TestIamPermissions" + }, + { + "service": "google.cloud.kms.v1.AutokeyAdmin", + "method": "UpdateAutokeyConfig" + }, + { + "service": "google.cloud.kms.v1.AutokeyAdmin", + "method": "GetAutokeyConfig" + }, + { + "service": "google.cloud.kms.v1.AutokeyAdmin", + "method": "ShowEffectiveAutokeyConfig" + }, + { + "service": "google.cloud.kms.v1.Autokey", + "method": "GetKeyHandle" + }, + { + "service": "google.cloud.kms.v1.Autokey", + "method": "ListKeyHandles" } ], "timeout": "60s", diff --git a/third_party/googleapis/google/cloud/kms/v1/cloudkms_v1.yaml b/third_party/googleapis/google/cloud/kms/v1/cloudkms_v1.yaml index 4d00941c6..369a21b2c 100644 --- a/third_party/googleapis/google/cloud/kms/v1/cloudkms_v1.yaml +++ b/third_party/googleapis/google/cloud/kms/v1/cloudkms_v1.yaml @@ -4,6 +4,8 @@ name: cloudkms.googleapis.com title: Cloud Key Management Service (KMS) API apis: +- name: google.cloud.kms.v1.Autokey +- name: google.cloud.kms.v1.AutokeyAdmin - name: google.cloud.kms.v1.EkmService - name: google.cloud.kms.v1.KeyManagementService - name: google.cloud.location.Locations @@ -84,9 +86,21 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/ekmConnections/*}:testIamPermissions' body: '*' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' authentication: rules: + - selector: 'google.cloud.kms.v1.Autokey.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloudkms + - selector: 'google.cloud.kms.v1.AutokeyAdmin.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloudkms - selector: 'google.cloud.kms.v1.EkmService.*' oauth: canonical_scopes: |- @@ -112,3 +126,8 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/cloudkms + - selector: google.longrunning.Operations.GetOperation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/cloudkms diff --git a/third_party/googleapis/google/cloud/kms/v1/ekm_service.proto b/third_party/googleapis/google/cloud/kms/v1/ekm_service.proto index da3056543..f14915385 100644 --- a/third_party/googleapis/google/cloud/kms/v1/ekm_service.proto +++ b/third_party/googleapis/google/cloud/kms/v1/ekm_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/kms/v1/resources.proto b/third_party/googleapis/google/cloud/kms/v1/resources.proto index 3b44d7b22..1995b8b50 100644 --- a/third_party/googleapis/google/cloud/kms/v1/resources.proto +++ b/third_party/googleapis/google/cloud/kms/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -202,6 +202,17 @@ message CryptoKey { (google.api.field_behavior) = IMMUTABLE, (google.api.resource_reference) = { type: "*" } ]; + + // Optional. The policy used for Key Access Justifications Policy Enforcement. + // If this field is present and this key is enrolled in Key Access + // Justifications Policy Enforcement, the policy will be evaluated in encrypt, + // decrypt, and sign operations, and the operation will fail if rejected by + // the policy. The policy is defined by specifying zero or more allowed + // justification codes. + // https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes + // By default, this field is absent, and all justification codes are allowed. + KeyAccessJustificationsPolicy key_access_justifications_policy = 17 + [(google.api.field_behavior) = OPTIONAL]; } // A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] @@ -434,6 +445,9 @@ message CryptoKeyVersion { // https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms EC_SIGN_SECP256K1_SHA256 = 31; + // EdDSA on the Curve25519 in pure mode (taking data as input). + EC_SIGN_ED25519 = 40; + // HMAC-SHA256 signing with a 256 bit key. HMAC_SHA256 = 32; @@ -651,12 +665,10 @@ message PublicKey { pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}/publicKey" }; - // A public key encoded in PEM format, populated only when - // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] - // returns one key. For more information, see the [RFC - // 7468](https://tools.ietf.org/html/rfc7468) sections for [General - // Considerations](https://tools.ietf.org/html/rfc7468#section-2) and [Textual - // Encoding of Subject Public Key Info] + // The public key, encoded in PEM format. For more information, see the + // [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for + // [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and + // [Textual Encoding of Subject Public Key Info] // (https://tools.ietf.org/html/rfc7468#section-13). string pem = 1; @@ -665,10 +677,8 @@ message PublicKey { // associated with this key. CryptoKeyVersion.CryptoKeyVersionAlgorithm algorithm = 2; - // Integrity verification field: A CRC32C checksum of the returned - // [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem]. It is only populated - // when [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] - // returns one key. An integrity check of + // Integrity verification field. A CRC32C checksum of the returned + // [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem]. An integrity check of // [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] can be performed by // computing the CRC32C checksum of // [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] and comparing your @@ -922,3 +932,84 @@ enum ProtectionLevel { // Crypto operations are performed in an EKM-over-VPC backend. EXTERNAL_VPC = 4; } + +// Describes the reason for a data access. Please refer to +// https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes +// for the detailed semantic meaning of justification reason codes. +enum AccessReason { + // Unspecified access reason. + REASON_UNSPECIFIED = 0; + + // Customer-initiated support. + CUSTOMER_INITIATED_SUPPORT = 1; + + // Google-initiated access for system management and troubleshooting. + GOOGLE_INITIATED_SERVICE = 2; + + // Google-initiated access in response to a legal request or legal process. + THIRD_PARTY_DATA_REQUEST = 3; + + // Google-initiated access for security, fraud, abuse, or compliance purposes. + GOOGLE_INITIATED_REVIEW = 4; + + // Customer uses their account to perform any access to their own data which + // their IAM policy authorizes. + CUSTOMER_INITIATED_ACCESS = 5; + + // Google systems access customer data to help optimize the structure of the + // data or quality for future uses by the customer. + GOOGLE_INITIATED_SYSTEM_OPERATION = 6; + + // No reason is expected for this key request. + REASON_NOT_EXPECTED = 7; + + // Customer uses their account to perform any access to their own data which + // their IAM policy authorizes, and one of the following is true: + // + // * A Google administrator has reset the root-access account associated with + // the user's organization within the past 7 days. + // * A Google-initiated emergency access operation has interacted with a + // resource in the same project or folder as the currently accessed resource + // within the past 7 days. + MODIFIED_CUSTOMER_INITIATED_ACCESS = 8; + + // Google systems access customer data to help optimize the structure of the + // data or quality for future uses by the customer, and one of the following + // is true: + // + // * A Google administrator has reset the root-access account associated with + // the user's organization within the past 7 days. + // * A Google-initiated emergency access operation has interacted with a + // resource in the same project or folder as the currently accessed resource + // within the past 7 days. + MODIFIED_GOOGLE_INITIATED_SYSTEM_OPERATION = 9; + + // Google-initiated access to maintain system reliability. + GOOGLE_RESPONSE_TO_PRODUCTION_ALERT = 10; + + // One of the following operations is being executed while simultaneously + // encountering an internal technical issue which prevented a more precise + // justification code from being generated: + // + // * Your account has been used to perform any access to your own data which + // your IAM policy authorizes. + // * An automated Google system operates on encrypted customer data which your + // IAM policy authorizes. + // * Customer-initiated Google support access. + // * Google-initiated support access to protect system reliability. + CUSTOMER_AUTHORIZED_WORKFLOW_SERVICING = 11; +} + +// A +// [KeyAccessJustificationsPolicy][google.cloud.kms.v1.KeyAccessJustificationsPolicy] +// specifies zero or more allowed +// [AccessReason][google.cloud.kms.v1.AccessReason] values for encrypt, decrypt, +// and sign operations on a [CryptoKey][google.cloud.kms.v1.CryptoKey]. +message KeyAccessJustificationsPolicy { + // The list of allowed reasons for access to a + // [CryptoKey][google.cloud.kms.v1.CryptoKey]. Zero allowed access reasons + // means all encrypt, decrypt, and sign operations for the + // [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with this policy will + // fail. + repeated AccessReason allowed_access_reasons = 1; +} diff --git a/third_party/googleapis/google/cloud/kms/v1/service.proto b/third_party/googleapis/google/cloud/kms/v1/service.proto index c9a055714..26261d02f 100644 --- a/third_party/googleapis/google/cloud/kms/v1/service.proto +++ b/third_party/googleapis/google/cloud/kms/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/kubernetes/security/containersecurity_logging/logging.proto b/third_party/googleapis/google/cloud/kubernetes/security/containersecurity_logging/logging.proto index f24c8432c..2b30cd8e1 100644 --- a/third_party/googleapis/google/cloud/kubernetes/security/containersecurity_logging/logging.proto +++ b/third_party/googleapis/google/cloud/kubernetes/security/containersecurity_logging/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/language/v1/language_service.proto b/third_party/googleapis/google/cloud/language/v1/language_service.proto index d34240827..ac441cc60 100644 --- a/third_party/googleapis/google/cloud/language/v1/language_service.proto +++ b/third_party/googleapis/google/cloud/language/v1/language_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_classify_gcs.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_classify_gcs.yaml deleted file mode 100644 index a542d8485..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_classify_gcs.yaml +++ /dev/null @@ -1,42 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_classify_gcs - title: Classify Content (GCS) - description: Classifying Content in text file stored in Cloud Storage - service: google.cloud.language.v1.LanguageService - rpc: ClassifyText - request: - - field: document.gcs_content_uri - value: gs://cloud-samples-data/language/classify-entertainment.txt - comment: | - Google Cloud Storage URI where the file content is located. - e.g. gs://[Your Bucket]/[Path to File] - The text file must include at least 20 words. - input_parameter: gcs_content_uri - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - response: - - comment: ["Loop through classified categories returned from the API"] - - loop: - collection: $resp.categories - variable: category - body: - - comment: - - | - Get the name of the category representing the document. - See the predefined taxonomy of categories: - https://cloud.google.com/natural-language/docs/categories - - print: ["Category name: %s", category.name] - - comment: - - | - Get the confidence. Number representing how certain the classifier - is that this category represents the provided text. - - print: ["Confidence: %s", category.confidence] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_classify_text.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_classify_text.yaml deleted file mode 100644 index e53e85585..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_classify_text.yaml +++ /dev/null @@ -1,39 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_classify_text - title: Classify Content - description: Classifying Content in a String - service: google.cloud.language.v1.LanguageService - rpc: ClassifyText - request: - - field: document.content - value: "That actor on TV makes movies in Hollywood and also stars in a variety of popular new TV shows." - comment: The text content to analyze. Must include at least 20 words. - input_parameter: text_content - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - response: - - comment: ["Loop through classified categories returned from the API"] - - loop: - collection: $resp.categories - variable: category - body: - - comment: - - | - Get the name of the category representing the document. - See the predefined taxonomy of categories: - https://cloud.google.com/natural-language/docs/categories - - print: ["Category name: %s", category.name] - - comment: - - | - Get the confidence. Number representing how certain the classifier - is that this category represents the provided text. - - print: ["Confidence: %s", category.confidence] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_entities_gcs.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_entities_gcs.yaml deleted file mode 100644 index b914c3bd5..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_entities_gcs.yaml +++ /dev/null @@ -1,67 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_entities_gcs - title: Analyzing Entities (GCS) - description: Analyzing Entities in text file stored in Cloud Storage - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeEntities - request: - - field: document.gcs_content_uri - value: gs://cloud-samples-data/language/entity.txt - comment: | - Google Cloud Storage URI where the file content is located. - e.g. gs://[Your Bucket]/[Path to File] - input_parameter: gcs_content_uri - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Loop through entitites returned from the API"] - - loop: - collection: $resp.entities - variable: entity - body: - - print: ["Representative name for the entity: %s", entity.name] - - comment: ["Get entity type, e.g. PERSON, LOCATION, ADDRESS, NUMBER, et al"] - - print: ["Entity type: %s", entity.type] - - comment: ["Get the salience score associated with the entity in the [0, 1.0] range"] - - print: ["Salience score: %s", entity.salience] - - comment: - - | - Loop over the metadata associated with entity. For many known entities, - the metadata is a Wikipedia URL (wikipedia_url) and Knowledge Graph MID (mid). - Some entity types may have additional metadata, e.g. ADDRESS entities - may have metadata for the address street_name, postal_code, et al. - - loop: - map: entity.metadata - key: metadata_name - value: metadata_value - body: - - print: ["%s: %s", metadata_name, metadata_value] - - comment: - - | - Loop over the mentions of this entity in the input document. - The API currently supports proper noun mentions. - - loop: - collection: entity.mentions - variable: mention - body: - - print: ["Mention text: %s", mention.text.content] - - comment: ["Get the mention type, e.g. PROPER for proper noun"] - - print: ["Mention type: %s", mention.type] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_entities_text.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_entities_text.yaml deleted file mode 100644 index ad39c42c5..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_entities_text.yaml +++ /dev/null @@ -1,65 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_entities_text - title: Analyzing Entities - description: Analyzing Entities in a String - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeEntities - request: - - field: document.content - value: "California is a state." - comment: The text content to analyze - input_parameter: text_content - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Loop through entitites returned from the API"] - - loop: - collection: $resp.entities - variable: entity - body: - - print: ["Representative name for the entity: %s", entity.name] - - comment: ["Get entity type, e.g. PERSON, LOCATION, ADDRESS, NUMBER, et al"] - - print: ["Entity type: %s", entity.type] - - comment: ["Get the salience score associated with the entity in the [0, 1.0] range"] - - print: ["Salience score: %s", entity.salience] - - comment: - - | - Loop over the metadata associated with entity. For many known entities, - the metadata is a Wikipedia URL (wikipedia_url) and Knowledge Graph MID (mid). - Some entity types may have additional metadata, e.g. ADDRESS entities - may have metadata for the address street_name, postal_code, et al. - - loop: - map: entity.metadata - key: metadata_name - value: metadata_value - body: - - print: ["%s: %s", metadata_name, metadata_value] - - comment: - - | - Loop over the mentions of this entity in the input document. - The API currently supports proper noun mentions. - - loop: - collection: entity.mentions - variable: mention - body: - - print: ["Mention text: %s", mention.text.content] - - comment: ["Get the mention type, e.g. PROPER for proper noun"] - - print: ["Mention type: %s", mention.type] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_entity_sentiment_gcs.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_entity_sentiment_gcs.yaml deleted file mode 100644 index 358a1d515..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_entity_sentiment_gcs.yaml +++ /dev/null @@ -1,71 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_entity_sentiment_gcs - title: Analyzing Entity Sentiment (GCS) - description: Analyzing Entity Sentiment in text file stored in Cloud Storage - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeEntitySentiment - request: - - field: document.gcs_content_uri - value: gs://cloud-samples-data/language/entity-sentiment.txt - comment: | - Google Cloud Storage URI where the file content is located. - e.g. gs://[Your Bucket]/[Path to File] - input_parameter: gcs_content_uri - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: Loop through entitites returned from the API - - loop: - collection: $resp.entities - variable: entity - body: - - print: ["Representative name for the entity: %s", entity.name] - - comment: ["Get entity type, e.g. PERSON, LOCATION, ADDRESS, NUMBER, et al"] - - print: ["Entity type: %s", entity.type] - - comment: ["Get the salience score associated with the entity in the [0, 1.0] range"] - - print: ["Salience score: %s", entity.salience] - - comment: ["Get the aggregate sentiment expressed for this entity in the provided document."] - - define: sentiment = entity.sentiment - - print: ["Entity sentiment score: %s", sentiment.score] - - print: ["Entity sentiment magnitude: %s", sentiment.magnitude] - - comment: - - | - Loop over the metadata associated with entity. For many known entities, - the metadata is a Wikipedia URL (wikipedia_url) and Knowledge Graph MID (mid). - Some entity types may have additional metadata, e.g. ADDRESS entities - may have metadata for the address street_name, postal_code, et al. - - loop: - map: entity.metadata - key: metadata_name - value: metadata_value - body: - - print: ["%s = %s", metadata_name, metadata_value] - - comment: - - | - Loop over the mentions of this entity in the input document. - The API currently supports proper noun mentions. - - loop: - collection: entity.mentions - variable: mention - body: - - print: ["Mention text: %s", mention.text.content] - - comment: ["Get the mention type, e.g. PROPER for proper noun"] - - print: ["Mention type: %s", mention.type] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_entity_sentiment_text.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_entity_sentiment_text.yaml deleted file mode 100644 index 25b344f6a..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_entity_sentiment_text.yaml +++ /dev/null @@ -1,69 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_entity_sentiment_text - title: Analyzing Entity Sentiment - description: Analyzing Entity Sentiment in a String - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeEntitySentiment - request: - - field: document.content - value: "Grapes are good. Bananas are bad." - comment: The text content to analyze - input_parameter: text_content - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Loop through entitites returned from the API"] - - loop: - collection: $resp.entities - variable: entity - body: - - print: ["Representative name for the entity: %s", entity.name] - - comment: ["Get entity type, e.g. PERSON, LOCATION, ADDRESS, NUMBER, et al"] - - print: ["Entity type: %s", entity.type] - - comment: ["Get the salience score associated with the entity in the [0, 1.0] range"] - - print: ["Salience score: %s", entity.salience] - - comment: ["Get the aggregate sentiment expressed for this entity in the provided document."] - - define: sentiment = entity.sentiment - - print: ["Entity sentiment score: %s", sentiment.score] - - print: ["Entity sentiment magnitude: %s", sentiment.magnitude] - - comment: - - | - Loop over the metadata associated with entity. For many known entities, - the metadata is a Wikipedia URL (wikipedia_url) and Knowledge Graph MID (mid). - Some entity types may have additional metadata, e.g. ADDRESS entities - may have metadata for the address street_name, postal_code, et al. - - loop: - map: entity.metadata - key: metadata_name - value: metadata_value - body: - - print: ["%s = %s", metadata_name, metadata_value] - - comment: - - | - Loop over the mentions of this entity in the input document. - The API currently supports proper noun mentions. - - loop: - collection: entity.mentions - variable: mention - body: - - print: ["Mention text: %s", mention.text.content] - - comment: ["Get the mention type, e.g. PROPER for proper noun"] - - print: ["Mention type: %s", mention.type] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_sentiment_gcs.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_sentiment_gcs.yaml deleted file mode 100644 index ad85c30aa..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_sentiment_gcs.yaml +++ /dev/null @@ -1,45 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_sentiment_gcs - title: Analyzing Sentiment (GCS) - description: Analyzing Sentiment in text file stored in Cloud Storage - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeSentiment - request: - - field: document.gcs_content_uri - value: gs://cloud-samples-data/language/sentiment-positive.txt - comment: | - Google Cloud Storage URI where the file content is located. - e.g. gs://[Your Bucket]/[Path to File] - input_parameter: gcs_content_uri - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Get overall sentiment of the input document"] - - print: ["Document sentiment score: %s", $resp.document_sentiment.score] - - print: ["Document sentiment magnitude: %s", $resp.document_sentiment.magnitude] - - comment: ["Get sentiment for all sentences in the document"] - - loop: - collection: $resp.sentences - variable: sentence - body: - - print: ["Sentence text: %s", sentence.text.content] - - print: ["Sentence sentiment score: %s", sentence.sentiment.score] - - print: ["Sentence sentiment magnitude: %s", sentence.sentiment.magnitude] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_sentiment_text.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_sentiment_text.yaml deleted file mode 100644 index 08d1114ec..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_sentiment_text.yaml +++ /dev/null @@ -1,43 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_sentiment_text - title: Analyzing Sentiment - description: Analyzing Sentiment in a String - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeSentiment - request: - - field: document.content - value: "I am so happy and joyful." - comment: The text content to analyze - input_parameter: text_content - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Get overall sentiment of the input document"] - - print: ["Document sentiment score: %s", $resp.document_sentiment.score] - - print: ["Document sentiment magnitude: %s", $resp.document_sentiment.magnitude] - - comment: ["Get sentiment for all sentences in the document"] - - loop: - collection: $resp.sentences - variable: sentence - body: - - print: ["Sentence text: %s", sentence.text.content] - - print: ["Sentence sentiment score: %s", sentence.sentiment.score] - - print: ["Sentence sentiment magnitude: %s", sentence.sentiment.magnitude] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_syntax_gcs.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_syntax_gcs.yaml deleted file mode 100644 index 58ae881ad..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_syntax_gcs.yaml +++ /dev/null @@ -1,69 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_syntax_gcs - title: Analyzing Syntax (GCS) - description: Analyzing Syntax in text file stored in Cloud Storage - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeSyntax - request: - - field: document.gcs_content_uri - value: gs://cloud-samples-data/language/syntax-sentence.txt - comment: | - Google Cloud Storage URI where the file content is located. - e.g. gs://[Your Bucket]/[Path to File] - input_parameter: gcs_content_uri - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Loop through tokens returned from the API"] - - loop: - collection: $resp.tokens - variable: token - body: - - comment: ["Get the text content of this token. Usually a word or punctuation."] - - define: text = token.text - - print: ["Token text: %s", text.content] - - print: ["Location of this token in overall document: %s", text.begin_offset] - - comment: - - | - Get the part of speech information for this token. - Parts of spech are as defined in: - http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf - - define: part_of_speech = token.part_of_speech - - comment: ["Get the tag, e.g. NOUN, ADJ for Adjective, et al."] - - print: ["Part of Speech tag: %s", part_of_speech.tag] - - comment: ["Get the voice, e.g. ACTIVE or PASSIVE"] - - print: ["Voice: %s", part_of_speech.voice] - - comment: ["Get the tense, e.g. PAST, FUTURE, PRESENT, et al."] - - print: ["Tense: %s", part_of_speech.tense] - - comment: ["See API reference for additional Part of Speech information available"] - - comment: - - | - Get the lemma of the token. Wikipedia lemma description - https://en.wikipedia.org/wiki/Lemma_(morphology) - - print: ["Lemma: %s", token.lemma] - - comment: - - | - Get the dependency tree parse information for this token. - For more information on dependency labels: - http://www.aclweb.org/anthology/P13-2017 - - define: dependency_edge = token.dependency_edge - - print: ["Head token index: %s", dependency_edge.head_token_index] - - print: ["Label: %s", dependency_edge.label] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/language_syntax_text.yaml b/third_party/googleapis/google/cloud/language/v1/samples/language_syntax_text.yaml deleted file mode 100644 index 0e7de5bcd..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/language_syntax_text.yaml +++ /dev/null @@ -1,67 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: language_syntax_text - title: Analyzing Syntax - description: Analyzing Syntax in a String - service: google.cloud.language.v1.LanguageService - rpc: AnalyzeSyntax - request: - - field: document.content - value: "This is a short sentence." - comment: The text content to analyze - input_parameter: text_content - - field: document.type - value: PLAIN_TEXT - comment: "Available types: PLAIN_TEXT, HTML" - - field: document.language - value: en - comment: | - Optional. If not specified, the language is automatically detected. - For list of supported languages: - https://cloud.google.com/natural-language/docs/languages - - field: encoding_type - value: UTF8 - comment: "Available values: NONE, UTF8, UTF16, UTF32" - response: - - comment: ["Loop through tokens returned from the API"] - - loop: - collection: $resp.tokens - variable: token - body: - - comment: ["Get the text content of this token. Usually a word or punctuation."] - - define: text = token.text - - print: ["Token text: %s", text.content] - - print: ["Location of this token in overall document: %s", text.begin_offset] - - comment: - - | - Get the part of speech information for this token. - Parts of spech are as defined in: - http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf - - define: part_of_speech = token.part_of_speech - - comment: ["Get the tag, e.g. NOUN, ADJ for Adjective, et al."] - - print: ["Part of Speech tag: %s", part_of_speech.tag] - - comment: ["Get the voice, e.g. ACTIVE or PASSIVE"] - - print: ["Voice: %s", part_of_speech.voice] - - comment: ["Get the tense, e.g. PAST, FUTURE, PRESENT, et al."] - - print: ["Tense: %s", part_of_speech.tense] - - comment: ["See API reference for additional Part of Speech information available"] - - comment: - - | - Get the lemma of the token. Wikipedia lemma description - https://en.wikipedia.org/wiki/Lemma_(morphology) - - print: ["Lemma: %s", token.lemma] - - comment: - - | - Get the dependency tree parse information for this token. - For more information on dependency labels: - http://www.aclweb.org/anthology/P13-2017 - - define: dependency_edge = token.dependency_edge - - print: ["Head token index: %s", dependency_edge.head_token_index] - - print: ["Label: %s", dependency_edge.label] - - comment: - - | - Get the language of the text, which will be the same as - the language specified in the request or, if not specified, - the automatically-detected language. - - print: ["Language of the text: %s", $resp.language] diff --git a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_entities.test.yaml b/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_entities.test.yaml deleted file mode 100644 index 5fafd01ea..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_entities.test.yaml +++ /dev/null @@ -1,101 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: "Analyzing Entities [code sample tests]" - cases: - - - name: language_entities_text - Analyzing the Entities of a text string (default value) - spec: - # Default value: "California is a state." - - call: {sample: language_entities_text} - - assert_contains: - - {literal: "Representative name for the entity: California"} - - {literal: "Entity type: LOCATION"} - - {literal: "Salience score:"} - - {literal: "wikipedia_url: https://en.wikipedia.org/wiki/California"} - - {literal: "mid: /m/01n7q"} - - {literal: "Mention text: California"} - - {literal: "Mention type: PROPER"} - - {literal: "Mention text: state"} - - {literal: "Mention type: COMMON"} - - {literal: "Language of the text: en"} - - - name: language_entities_text - Analyzing the Entities of a text string (*custom value*) - spec: - # Custom value: "Alice is a person. She lives in California." - - call: - sample: language_entities_text - params: - text_content: {literal: "Alice is a person. She lives in California."} - - assert_contains: - - {literal: "Representative name for the entity: Alice"} - - {literal: "Entity type: PERSON"} - - {literal: "Mention text: Alice"} - - {literal: "Mention type: PROPER"} - - {literal: "Mention text: person"} - - {literal: "Mention type: COMMON"} - - {literal: "Representative name for the entity: California"} - - {literal: "Entity type: LOCATION"} - - {literal: "wikipedia_url: https://en.wikipedia.org/wiki/California"} - - {literal: "mid: /m/01n7q"} - - {literal: "Language of the text: en"} - - - name: language_entities_text - Analyzing the Entities of a text string (*metadata attributes*) - spec: - # Try out some of the metadata attributes which should be available for dates, addresses, etc. - # In case fake (555) area code numbers don't work, using United States Naval Observatory number. - # Custom value: "I called 202-762-1401 on January 31, 2019 from 1600 Amphitheatre Parkway, Mountain View, CA." - - call: - sample: language_entities_text - params: - text_content: - literal: "I called 202-762-1401 on January 31, 2019 from 1600 Amphitheatre Parkway, Mountain View, CA." - # The results may change, but it's fair to say that at least one of the following types were detected: - - assert_contains_any: - - literal: "Entity type: DATE" - - literal: "Entity type: ADDRESS" - - literal: "Entity type: PHONE_NUMBER" - # Check that at least some of the supporting metadata for an entity was present in the response - - assert_contains_any: - - literal: "month: 1" - - literal: "day: 31" - - literal: "year: 2019" - - literal: "street_number: 1600" - - literal: "street_name: Amphitheatre Parkway" - - literal: "area_code: 202" - - literal: "number: 7621401" - - - name: language_entities_gcs - Analyzing the Entities of text file in GCS (default value) - spec: - # Default value: gs://cloud-samples-data/language/entity.txt - # => "California is a state." - - call: {sample: language_entities_gcs} - - assert_contains: - - {literal: "Representative name for the entity: California"} - - {literal: "Entity type: LOCATION"} - - {literal: "Salience score:"} - - {literal: "wikipedia_url: https://en.wikipedia.org/wiki/California"} - - {literal: "mid: /m/01n7q"} - - {literal: "Mention text: California"} - - {literal: "Mention type: PROPER"} - - {literal: "Mention text: state"} - - {literal: "Mention type: COMMON"} - - {literal: "Language of the text: en"} - - - name: language_entities_gcs - Analyzing the Entities of text file in GCS (*custom value*) - spec: - # Use different file: gs://cloud-samples-data/language/entity-sentiment.txt - # => "Grapes are good. Bananas are bad." - - call: - sample: language_entities_gcs - params: - gcs_content_uri: - literal: "gs://cloud-samples-data/language/entity-sentiment.txt" - - assert_contains: - - {literal: "Representative name for the entity: Grapes"} - - {literal: "Mention text: Grapes"} - - {literal: "Mention type: COMMON"} - - {literal: "Representative name for the entity: Bananas"} - - {literal: "Mention text: Bananas"} - - {literal: "Language of the text: en"} diff --git a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_entity_sentiment.test.yaml b/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_entity_sentiment.test.yaml deleted file mode 100644 index beb8fb4a8..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_entity_sentiment.test.yaml +++ /dev/null @@ -1,63 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: "Analyzing Entity Sentiment [code sample tests]" - cases: - - - name: language_entity_sentiment_text - Analyzing Entity Sentiment of a text string (default value) - spec: - # Default value: "Grapes are good. Bananas are bad." - - call: {sample: language_entity_sentiment_text} - - assert_contains: - - {literal: "Representative name for the entity: Grapes"} - - {literal: "Entity sentiment score: 0."} - - {literal: "Representative name for the entity: Bananas"} - - {literal: "Entity sentiment score: -0."} - - {literal: "Entity sentiment magnitude: 0."} - - {literal: "Language of the text: en"} - - - name: language_entity_sentiment_text - Analyzing Entity Sentiment of a text string (*custom value*) - spec: - # Custom value: "Grapes are actually not very good. But Bananas are great." - - call: - sample: language_entity_sentiment_text - params: - text_content: {literal: "Grapes are actually not very good. But Bananas are great."} - - assert_contains: - - {literal: "Representative name for the entity: Grapes"} - - {literal: "Entity sentiment score: -0."} - - {literal: "Representative name for the entity: Bananas"} - - {literal: "Entity sentiment score: 0."} - - {literal: "Entity sentiment magnitude: 0."} - - {literal: "Language of the text: en"} - - - name: language_entity_sentiment_gcs - Analyzing Entity Sentiment of text file in GCS (default value) - spec: - # Default value: gs://cloud-samples-data/language/entity-sentiment.txt - # => "Grapes are good. Bananas are bad." - - call: {sample: language_entity_sentiment_gcs} - - assert_contains: - - {literal: "Representative name for the entity: Grapes"} - - {literal: "Entity sentiment score: -0."} - - {literal: "Representative name for the entity: Bananas"} - - {literal: "Entity sentiment score: 0."} - - {literal: "Entity sentiment magnitude: 0."} - - {literal: "Language of the text: en"} - - - name: language_entity_sentiment_gcs - Analyzing Entity Sentiment of text file in GCS (*custom value*) - spec: - # Use different file: gs://cloud-samples-data/language/entity-sentiment-reverse.txt - # => "Grapes are actually not very good. But Bananas are great." - - call: - sample: language_entity_sentiment_gcs - params: - gcs_content_uri: - literal: "gs://cloud-samples-data/language/entity-sentiment-reverse.txt" - - assert_contains: - - {literal: "Representative name for the entity: Grapes"} - - {literal: "Entity sentiment score: -0."} - - {literal: "Representative name for the entity: Bananas"} - - {literal: "Entity sentiment score: 0."} - - {literal: "Entity sentiment magnitude: 0."} - - {literal: "Language of the text: en"} diff --git a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_sentiment.test.yaml b/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_sentiment.test.yaml deleted file mode 100644 index 55b5fdcb2..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_sentiment.test.yaml +++ /dev/null @@ -1,74 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: "Analyzing Sentiment [code sample tests]" - cases: - - - name: language_sentiment_text - Analyzing the sentiment of a text string (default value) - spec: - # Default value: "I am so happy and joyful." - - call: {sample: language_sentiment_text} - - assert_contains: - - {literal: "Document sentiment score: 0."} - - {literal: "Document sentiment magnitude: 0."} - - {literal: "Sentence text: I am so happy and joyful."} - - {literal: "Sentence sentiment score: 0."} - - {literal: "Sentence sentiment magnitude: 0."} - - {literal: "Language of the text: en"} - # There should be no negative sentiment scores for this value. - - assert_not_contains: - - {literal: "Document sentiment score: -0."} - - {literal: "Sentence sentiment score: -0."} - - - name: language_sentiment_text - Analyzing the sentiment of a text string (*custom value*) - spec: - # Custom value: "I am very happy. I am angry and sad." - - call: - sample: language_sentiment_text - params: - text_content: {literal: "I am very happy. I am angry and sad."} - - assert_contains: - - {literal: "Sentence text: I am very happy"} - - {literal: "Sentence sentiment score: 0."} - - {literal: "Sentence text: I am angry and sad"} - - {literal: "Sentence sentiment score: -0."} - - {literal: "Language of the text: en"} - - - name: language_sentiment_gcs - Analyzing the sentiment of text file in GCS (default value) - spec: - # Default value: gs://cloud-samples-data/language/sentiment-positive.txt - # => "I am so happy and joyful." - - call: {sample: language_sentiment_gcs} - - assert_contains: - - {literal: "Document sentiment score: 0."} - - {literal: "Document sentiment magnitude: 0."} - - {literal: "Sentence text: I am so happy and joyful."} - - {literal: "Sentence sentiment score: 0."} - - {literal: "Sentence sentiment magnitude: 0."} - - {literal: "Language of the text: en"} - # There should be no negative sentiment scores for this value. - - assert_not_contains: - - {literal: "Document sentiment score: -0."} - - {literal: "Sentence sentiment score: -0."} - - - name: language_sentiment_gcs - Analyzing the sentiment of text file in GCS (*custom value*) - spec: - # Use different file: gs://cloud-samples-data/language/sentiment-negative.txt - # => "I am so sad and upset." - - call: - sample: language_sentiment_gcs - params: - gcs_content_uri: - literal: "gs://cloud-samples-data/language/sentiment-negative.txt" - - assert_contains: - - {literal: "Document sentiment score: -0."} - - {literal: "Document sentiment magnitude: 0."} - - {literal: "Sentence text: I am so sad and upset."} - - {literal: "Sentence sentiment score: -0."} - - {literal: "Sentence sentiment magnitude: 0."} - - {literal: "Language of the text: en"} - # There should be no positive sentiment scores for this value. - - assert_not_contains: - - {literal: "Document sentiment score: 0."} - - {literal: "Sentence sentiment score: 0."} diff --git a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_syntax.test.yaml b/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_syntax.test.yaml deleted file mode 100644 index e89d465c1..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/test/analyzing_syntax.test.yaml +++ /dev/null @@ -1,72 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: "Analyzing Syntax [code sample tests]" - cases: - - - name: language_syntax_text - Analyzing the syntax of a text string (default value) - spec: - # Default value: "This is a short sentence." - - call: {sample: language_syntax_text} - - assert_contains: - - {literal: "Token text: is"} - - {literal: "Part of Speech tag: VERB"} - - {literal: "Tense: PRESENT"} - - {literal: "Lemma: be"} - - {literal: "Token text: short"} - - {literal: "Part of Speech tag: ADJ"} - - {literal: "Lemma: short"} - - {literal: "Language of the text: en"} - - - name: language_syntax_text - Analyzing the syntax of a text string (*custom value*) - spec: - # Custom value: "Alice runs. Bob ran." - - call: - sample: language_syntax_text - params: - text_content: {literal: "Alice runs. Bob ran."} - - assert_contains: - - {literal: "Token text: Alice"} - - {literal: "Location of this token in overall document: 0"} - - {literal: "Part of Speech tag: NOUN"} - - {literal: "Label: NSUBJ"} - - {literal: "Token text: runs"} - - {literal: "Part of Speech tag: VERB"} - - {literal: "Tense: PRESENT"} - - {literal: "Lemma: run"} - - {literal: "Token text: ran"} - - {literal: "Tense: PAST"} - - {literal: "Language of the text: en"} - - - name: language_syntax_gcs - Analyzing the syntax of text file in GCS (default value) - spec: - # Default value: gs://cloud-samples-data/language/syntax-sentence.txt - # => "This is a short sentence." - - call: {sample: language_syntax_gcs} - - assert_contains: - - {literal: "Token text: is"} - - {literal: "Part of Speech tag: VERB"} - - {literal: "Tense: PRESENT"} - - {literal: "Lemma: be"} - - {literal: "Token text: short"} - - {literal: "Part of Speech tag: ADJ"} - - {literal: "Lemma: short"} - - {literal: "Language of the text: en"} - - - name: language_syntax_gcs - Analyzing the syntax of text file in GCS (*custom value*) - spec: - # Use different file: gs://cloud-samples-data/language/hello.txt - # => "Hello, world!" - - call: - sample: language_syntax_gcs - params: - gcs_content_uri: - literal: "gs://cloud-samples-data/language/hello.txt" - - assert_contains: - - {literal: "Token text: Hello"} - - {literal: "Token text: World"} - - {literal: "Part of Speech tag: NOUN"} - - {literal: "Token text: !"} - - {literal: "Part of Speech tag: PUNCT"} - - {literal: "Language of the text: en"} diff --git a/third_party/googleapis/google/cloud/language/v1/samples/test/classifying_content.test.yaml b/third_party/googleapis/google/cloud/language/v1/samples/test/classifying_content.test.yaml deleted file mode 100644 index 5cfc76696..000000000 --- a/third_party/googleapis/google/cloud/language/v1/samples/test/classifying_content.test.yaml +++ /dev/null @@ -1,51 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: "Classifying Content [code sample tests]" - cases: - - - name: language_classify_text - Classifying Content of a text string (default value) - spec: - # Default value: "That actor on TV makes movies in Hollywood and also stars in a variety of popular new TV shows." - - call: {sample: language_classify_text} - - assert_contains_any: - - {literal: "TV"} - - {literal: "Movies"} - - {literal: "Entertainment"} - - - name: language_classify_text - Classifying Content of a text string (*custom value*) - spec: - # Custom value: "Let's drink coffee and eat bagels at a coffee shop. I want muffins, croisants, coffee and baked goods." - - call: - sample: language_classify_text - params: - text_content: {literal: "Let's drink coffee and eat bagels at a coffee shop. I want muffins, croisants, coffee and baked goods."} - - assert_contains_any: - - {literal: "Food"} - - {literal: "Drink"} - - {literal: "Coffee"} - - - name: language_classify_gcs - Classifying Content of text file in GCS (default value) - spec: - # Default value: gs://cloud-samples-data/language/classify-entertainment.txt - # => "This is about film and movies and television and acting and movie theatres and theatre and drama and entertainment and the arts." - - call: {sample: language_classify_gcs} - - assert_contains_any: - - {literal: "TV"} - - {literal: "Movies"} - - {literal: "Entertainment"} - - - name: language_classify_gcs - Classifying Content of text file in GCS (*custom value*) - spec: - # Use different file: gs://cloud-samples-data/language/android.txt - # => "Android is a mobile operating system developed by Google, based on the Linux kernel and..." - - call: - sample: language_classify_gcs - params: - gcs_content_uri: - literal: "gs://cloud-samples-data/language/android.txt" - - assert_contains_any: - - {literal: "Mobile"} - - {literal: "Phone"} - - {literal: "Internet"} diff --git a/third_party/googleapis/google/cloud/language/v1beta1/language_service.proto b/third_party/googleapis/google/cloud/language/v1beta1/language_service.proto index 473551b7d..6b81b4d5f 100644 --- a/third_party/googleapis/google/cloud/language/v1beta1/language_service.proto +++ b/third_party/googleapis/google/cloud/language/v1beta1/language_service.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/language/v1beta2/language_service.proto b/third_party/googleapis/google/cloud/language/v1beta2/language_service.proto index 95c169be0..2edf4f992 100644 --- a/third_party/googleapis/google/cloud/language/v1beta2/language_service.proto +++ b/third_party/googleapis/google/cloud/language/v1beta2/language_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/language/v2/language_service.proto b/third_party/googleapis/google/cloud/language/v2/language_service.proto index acbdbd4f6..826fee68e 100644 --- a/third_party/googleapis/google/cloud/language/v2/language_service.proto +++ b/third_party/googleapis/google/cloud/language/v2/language_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/lifesciences/v2beta/workflows.proto b/third_party/googleapis/google/cloud/lifesciences/v2beta/workflows.proto index 162ca8fbe..a947a7122 100644 --- a/third_party/googleapis/google/cloud/lifesciences/v2beta/workflows.proto +++ b/third_party/googleapis/google/cloud/lifesciences/v2beta/workflows.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -448,7 +448,7 @@ message ServiceAccount { // Carries information about an accelerator that can be attached to a VM. message Accelerator { - // The accelerator type string (for example, "nvidia-tesla-k80"). + // The accelerator type string (for example, "nvidia-tesla-t4"). // // Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is // attached, the required runtime libraries will be made available to all diff --git a/third_party/googleapis/google/cloud/location/location.yaml b/third_party/googleapis/google/cloud/location/location.yaml deleted file mode 100644 index 901d8764c..000000000 --- a/third_party/googleapis/google/cloud/location/location.yaml +++ /dev/null @@ -1,15 +0,0 @@ -type: google.api.Service -config_version: 1 -name: cloudlocations.googleapis.com -title: Cloud Location API - -apis: -- name: google.cloud.location.Locations - -documentation: - overview: |- - # Google Cloud Locations API - - This package contains the definition of an abstract interface that manages - locations within API services. See - cs/symbol:google.cloud.location.Locations for details. diff --git a/third_party/googleapis/google/cloud/location/locations.proto b/third_party/googleapis/google/cloud/location/locations.proto index a91766c9d..12de2aeb4 100644 --- a/third_party/googleapis/google/cloud/location/locations.proto +++ b/third_party/googleapis/google/cloud/location/locations.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/managedidentities/v1/managed_identities_service.proto b/third_party/googleapis/google/cloud/managedidentities/v1/managed_identities_service.proto index 3a8d14ef1..217fb9378 100644 --- a/third_party/googleapis/google/cloud/managedidentities/v1/managed_identities_service.proto +++ b/third_party/googleapis/google/cloud/managedidentities/v1/managed_identities_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/managedidentities/v1/resource.proto b/third_party/googleapis/google/cloud/managedidentities/v1/resource.proto index f03917ca0..35e4bf288 100644 --- a/third_party/googleapis/google/cloud/managedidentities/v1/resource.proto +++ b/third_party/googleapis/google/cloud/managedidentities/v1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/managedidentities/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/managedidentities/v1beta1/BUILD.bazel index 5938d195e..0e36de81a 100644 --- a/third_party/googleapis/google/cloud/managedidentities/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/managedidentities/v1beta1/BUILD.bazel @@ -306,48 +306,51 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", -) - -csharp_proto_library( - name = "managedidentities_csharp_proto", - deps = [":managedidentities_proto"], -) - -csharp_grpc_library( - name = "managedidentities_csharp_grpc", - srcs = [":managedidentities_proto"], - deps = [":managedidentities_csharp_proto"], -) - -csharp_gapic_library( - name = "managedidentities_csharp_gapic", - srcs = [":managedidentities_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "managedidentities_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "managedidentities_v1beta1.yaml", - transport = "grpc", - deps = [ - ":managedidentities_csharp_grpc", - ":managedidentities_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-managedidentities-v1beta1-csharp", - deps = [ - ":managedidentities_csharp_gapic", - ":managedidentities_csharp_grpc", - ":managedidentities_csharp_proto", - ], -) +# C# generation is currently commented out as the protos don't contain all the +# required comments, and we want to be able to validate comments in the C# +# generator. See b/336702865. +# load( +# "@com_google_googleapis_imports//:imports.bzl", +# "csharp_gapic_assembly_pkg", +# "csharp_gapic_library", +# "csharp_grpc_library", +# "csharp_proto_library", +# ) +# +# csharp_proto_library( +# name = "managedidentities_csharp_proto", +# deps = [":managedidentities_proto"], +# ) +# +# csharp_grpc_library( +# name = "managedidentities_csharp_grpc", +# srcs = [":managedidentities_proto"], +# deps = [":managedidentities_csharp_proto"], +# ) +# +# csharp_gapic_library( +# name = "managedidentities_csharp_gapic", +# srcs = [":managedidentities_proto_with_info"], +# common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", +# grpc_service_config = "managedidentities_grpc_service_config.json", +# rest_numeric_enums = True, +# service_yaml = "managedidentities_v1beta1.yaml", +# transport = "grpc", +# deps = [ +# ":managedidentities_csharp_grpc", +# ":managedidentities_csharp_proto", +# ], +# ) +# +# # Open Source Packages +# csharp_gapic_assembly_pkg( +# name = "google-cloud-managedidentities-v1beta1-csharp", +# deps = [ +# ":managedidentities_csharp_gapic", +# ":managedidentities_csharp_grpc", +# ":managedidentities_csharp_proto", +# ], +# ) ############################################################################## # C++ diff --git a/third_party/googleapis/google/cloud/managedidentities/v1beta1/managed_identities_service.proto b/third_party/googleapis/google/cloud/managedidentities/v1beta1/managed_identities_service.proto index 8abe4a8c6..6f3cf4099 100644 --- a/third_party/googleapis/google/cloud/managedidentities/v1beta1/managed_identities_service.proto +++ b/third_party/googleapis/google/cloud/managedidentities/v1beta1/managed_identities_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/managedidentities/v1beta1/resource.proto b/third_party/googleapis/google/cloud/managedidentities/v1beta1/resource.proto index 7fa7cc0c0..e5eaf503c 100644 --- a/third_party/googleapis/google/cloud/managedidentities/v1beta1/resource.proto +++ b/third_party/googleapis/google/cloud/managedidentities/v1beta1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/managedkafka/BUILD.bazel b/third_party/googleapis/google/cloud/managedkafka/BUILD.bazel new file mode 100644 index 000000000..f58dc4df2 --- /dev/null +++ b/third_party/googleapis/google/cloud/managedkafka/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-managed_kafka. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for google-cloud-managed_kafka. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "managedkafka_ruby_wrapper", + srcs = ["//google/cloud/managedkafka/v1:managedkafka_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-managed_kafka", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/managedkafka/v1:managedkafka_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-managedkafka-ruby", + deps = [ + ":managedkafka_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/managedkafka/v1/BUILD.bazel b/third_party/googleapis/google/cloud/managedkafka/v1/BUILD.bazel new file mode 100644 index 000000000..a0e3ed608 --- /dev/null +++ b/third_party/googleapis/google/cloud/managedkafka/v1/BUILD.bazel @@ -0,0 +1,395 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "managedkafka_proto", + srcs = [ + "managed_kafka.proto", + "resources.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "managedkafka_proto_with_info", + deps = [ + ":managedkafka_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "managedkafka_java_proto", + deps = [":managedkafka_proto"], +) + +java_grpc_library( + name = "managedkafka_java_grpc", + srcs = [":managedkafka_proto"], + deps = [":managedkafka_java_proto"], +) + +java_gapic_library( + name = "managedkafka_java_gapic", + srcs = [":managedkafka_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + test_deps = [ + ":managedkafka_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":managedkafka_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "managedkafka_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.managedkafka.v1.ManagedKafkaClientHttpJsonTest", + "com.google.cloud.managedkafka.v1.ManagedKafkaClientTest", + ], + runtime_deps = [":managedkafka_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-managedkafka-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":managedkafka_java_gapic", + ":managedkafka_java_grpc", + ":managedkafka_java_proto", + ":managedkafka_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "managedkafka_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/managedkafka/apiv1/managedkafkapb", + protos = [":managedkafka_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "managedkafka_go_gapic", + srcs = [":managedkafka_proto_with_info"], + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/managedkafka/apiv1;managedkafka", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + transport = "grpc+rest", + deps = [ + ":managedkafka_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-managedkafka-v1-go", + deps = [ + ":managedkafka_go_gapic", + ":managedkafka_go_gapic_srcjar-metadata.srcjar", + ":managedkafka_go_gapic_srcjar-snippets.srcjar", + ":managedkafka_go_gapic_srcjar-test.srcjar", + ":managedkafka_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "managedkafka_py_gapic", + srcs = [":managedkafka_proto"], + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "managedkafka_py_gapic_test", + srcs = [ + "managedkafka_py_gapic_pytest.py", + "managedkafka_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":managedkafka_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "managedkafka-v1-py", + deps = [ + ":managedkafka_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "managedkafka_php_proto", + deps = [":managedkafka_proto"], +) + +php_gapic_library( + name = "managedkafka_php_gapic", + srcs = [":managedkafka_proto_with_info"], + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + transport = "grpc+rest", + deps = [ + ":managedkafka_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-managedkafka-v1-php", + deps = [ + ":managedkafka_php_gapic", + ":managedkafka_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "managedkafka_nodejs_gapic", + package_name = "@google-cloud/managedkafka", + src = ":managedkafka_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + package = "google.cloud.managedkafka.v1", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "managedkafka-v1-nodejs", + deps = [ + ":managedkafka_nodejs_gapic", + ":managedkafka_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "managedkafka_ruby_proto", + deps = [":managedkafka_proto"], +) + +ruby_grpc_library( + name = "managedkafka_ruby_grpc", + srcs = [":managedkafka_proto"], + deps = [":managedkafka_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "managedkafka_ruby_gapic", + srcs = [":managedkafka_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-managed_kafka-v1" + ], + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + transport = "grpc+rest", + deps = [ + ":managedkafka_ruby_grpc", + ":managedkafka_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-managedkafka-v1-ruby", + deps = [ + ":managedkafka_ruby_gapic", + ":managedkafka_ruby_grpc", + ":managedkafka_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "managedkafka_csharp_proto", + deps = [":managedkafka_proto"], +) + +csharp_grpc_library( + name = "managedkafka_csharp_grpc", + srcs = [":managedkafka_proto"], + deps = [":managedkafka_csharp_proto"], +) + +csharp_gapic_library( + name = "managedkafka_csharp_gapic", + srcs = [":managedkafka_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "managedkafka_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "managedkafka_v1.yaml", + transport = "grpc+rest", + deps = [ + ":managedkafka_csharp_grpc", + ":managedkafka_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-managedkafka-v1-csharp", + deps = [ + ":managedkafka_csharp_gapic", + ":managedkafka_csharp_grpc", + ":managedkafka_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "managedkafka_cc_proto", + deps = [":managedkafka_proto"], +) + +cc_grpc_library( + name = "managedkafka_cc_grpc", + srcs = [":managedkafka_proto"], + grpc_only = True, + deps = [":managedkafka_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/managedkafka/v1/managed_kafka.proto b/third_party/googleapis/google/cloud/managedkafka/v1/managed_kafka.proto new file mode 100644 index 000000000..93f62205d --- /dev/null +++ b/third_party/googleapis/google/cloud/managedkafka/v1/managed_kafka.proto @@ -0,0 +1,508 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.managedkafka.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/managedkafka/v1/resources.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ManagedKafka.V1"; +option go_package = "cloud.google.com/go/managedkafka/apiv1/managedkafkapb;managedkafkapb"; +option java_multiple_files = true; +option java_outer_classname = "ManagedKafkaProto"; +option java_package = "com.google.cloud.managedkafka.v1"; +option php_namespace = "Google\\Cloud\\ManagedKafka\\V1"; +option ruby_package = "Google::Cloud::ManagedKafka::V1"; + +// The service that a client application uses to manage Apache Kafka clusters, +// topics and consumer groups. +service ManagedKafka { + option (google.api.default_host) = "managedkafka.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists the clusters in a given project and location. + rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/clusters" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the properties of a single cluster. + rpc GetCluster(GetClusterRequest) returns (Cluster) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clusters/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new cluster in a given project and location. + rpc CreateCluster(CreateClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/clusters" + body: "cluster" + }; + option (google.api.method_signature) = "parent,cluster,cluster_id"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "OperationMetadata" + }; + } + + // Updates the properties of a single cluster. + rpc UpdateCluster(UpdateClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{cluster.name=projects/*/locations/*/clusters/*}" + body: "cluster" + }; + option (google.api.method_signature) = "cluster,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single cluster. + rpc DeleteCluster(DeleteClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clusters/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists the topics in a given cluster. + rpc ListTopics(ListTopicsRequest) returns (ListTopicsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/clusters/*}/topics" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the properties of a single topic. + rpc GetTopic(GetTopicRequest) returns (Topic) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clusters/*/topics/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new topic in a given project and location. + rpc CreateTopic(CreateTopicRequest) returns (Topic) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/clusters/*}/topics" + body: "topic" + }; + option (google.api.method_signature) = "parent,topic,topic_id"; + } + + // Updates the properties of a single topic. + rpc UpdateTopic(UpdateTopicRequest) returns (Topic) { + option (google.api.http) = { + patch: "/v1/{topic.name=projects/*/locations/*/clusters/*/topics/*}" + body: "topic" + }; + option (google.api.method_signature) = "topic,update_mask"; + } + + // Deletes a single topic. + rpc DeleteTopic(DeleteTopicRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clusters/*/topics/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the consumer groups in a given cluster. + rpc ListConsumerGroups(ListConsumerGroupsRequest) + returns (ListConsumerGroupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/clusters/*}/consumerGroups" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the properties of a single consumer group. + rpc GetConsumerGroup(GetConsumerGroupRequest) returns (ConsumerGroup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the properties of a single consumer group. + rpc UpdateConsumerGroup(UpdateConsumerGroupRequest) returns (ConsumerGroup) { + option (google.api.http) = { + patch: "/v1/{consumer_group.name=projects/*/locations/*/clusters/*/consumerGroups/*}" + body: "consumer_group" + }; + option (google.api.method_signature) = "consumer_group,update_mask"; + } + + // Deletes a single consumer group. + rpc DeleteConsumerGroup(DeleteConsumerGroupRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request for ListClusters. +message ListClustersRequest { + // Required. The parent location whose clusters are to be listed. Structured + // like `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "managedkafka.googleapis.com/Cluster" + } + ]; + + // Optional. The maximum number of clusters to return. The service may return + // fewer than this value. If unspecified, server will pick an appropriate + // default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListClusters` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListClusters` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter expression for the result. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Order by fields for the result. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListClusters. +message ListClustersResponse { + // The list of Clusters in the requested parent. + repeated Cluster clusters = 1; + + // A token that can be sent as `page_token` to retrieve the next page of + // results. If this field is omitted, there are no more results. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request for GetCluster. +message GetClusterRequest { + // Required. The name of the cluster whose configuration to return. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "managedkafka.googleapis.com/Cluster" + } + ]; +} + +// Request for CreateCluster. +message CreateClusterRequest { + // Required. The parent region in which to create the cluster. Structured like + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "managedkafka.googleapis.com/Cluster" + } + ]; + + // Required. The ID to use for the cluster, which will become the final + // component of the cluster's name. The ID must be 1-63 characters long, and + // match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` to comply with + // RFC 1035. + // + // This value is structured like: `my-cluster-id`. + string cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration of the cluster to create. Its `name` field is + // ignored. + Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID to avoid duplication of requests. If a request times out or + // fails, retrying with the same ID allows the server to recognize the + // previous attempt. For at least 60 minutes, the server ignores duplicate + // requests bearing the same ID. + // + // 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 + // within 60 minutes of the last request, the server checks if an original + // operation with the same request ID was received. If so, the server ignores + // the second request. + // + // The request ID must be a valid UUID. A zero UUID is not supported + // (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request for UpdateCluster. +message UpdateClusterRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // cluster 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. The mask is required and a value of * will update all + // fields. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The cluster to update. Its `name` field must be populated. + Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID to avoid duplication of requests. If a request times out or + // fails, retrying with the same ID allows the server to recognize the + // previous attempt. For at least 60 minutes, the server ignores duplicate + // requests bearing the same ID. + // + // 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 + // within 60 minutes of the last request, the server checks if an original + // operation with the same request ID was received. If so, the server ignores + // the second request. + // + // The request ID must be a valid UUID. A zero UUID is not supported + // (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request for DeleteCluster. +message DeleteClusterRequest { + // Required. The name of the cluster to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "managedkafka.googleapis.com/Cluster" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID to avoid duplication of requests. If a request times out or + // fails, retrying with the same ID allows the server to recognize the + // previous attempt. For at least 60 minutes, the server ignores duplicate + // requests bearing the same ID. + // + // 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 + // within 60 minutes of the last request, the server checks if an original + // operation with the same request ID was received. If so, the server ignores + // the second request. + // + // The request ID must be a valid UUID. A zero UUID is not supported + // (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request for ListTopics. +message ListTopicsRequest { + // Required. The parent cluster whose topics are to be listed. Structured like + // `projects/{project}/locations/{location}/clusters/{cluster}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "managedkafka.googleapis.com/Topic" + } + ]; + + // Optional. The maximum number of topics to return. The service may return + // fewer than this value. If unset or zero, all topics for the parent is + // returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListTopics` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListTopics` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListTopics. +message ListTopicsResponse { + // The list of topics in the requested parent. The order of the topics is + // unspecified. + repeated Topic topics = 1; + + // A token that can be sent as `page_token` to retrieve the next page of + // results. If this field is omitted, there are no more results. + string next_page_token = 2; +} + +// Request for GetTopic. +message GetTopicRequest { + // Required. The name of the topic whose configuration to return. Structured + // like: + // projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "managedkafka.googleapis.com/Topic" + } + ]; +} + +// Request for CreateTopic. +message CreateTopicRequest { + // Required. The parent cluster in which to create the topic. + // Structured like + // `projects/{project}/locations/{location}/clusters/{cluster}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "managedkafka.googleapis.com/Topic" + } + ]; + + // Required. The ID to use for the topic, which will become the final + // component of the topic's name. + // + // This value is structured like: `my-topic-name`. + string topic_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration of the topic to create. Its `name` field is + // ignored. + Topic topic = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for UpdateTopic. +message UpdateTopicRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Topic 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. The mask is required and a value of * will update all + // fields. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The topic to update. Its `name` field must be populated. + Topic topic = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for DeleteTopic. +message DeleteTopicRequest { + // Required. The name of the topic to delete. + // `projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "managedkafka.googleapis.com/Topic" + } + ]; +} + +// Request for ListConsumerGroups. +message ListConsumerGroupsRequest { + // Required. The parent cluster whose consumer groups are to be listed. + // Structured like + // `projects/{project}/locations/{location}/clusters/{cluster}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "managedkafka.googleapis.com/ConsumerGroup" + } + ]; + + // Optional. The maximum number of consumer groups to return. The service may + // return fewer than this value. If unset or zero, all consumer groups for the + // parent is returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListConsumerGroups` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListConsumerGroups` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for ListConsumerGroups. +message ListConsumerGroupsResponse { + // The list of consumer group in the requested parent. The order of the + // consumer groups is unspecified. + repeated ConsumerGroup consumer_groups = 1; + + // A token that can be sent as `page_token` to retrieve the next page of + // results. If this field is omitted, there are no more results. + string next_page_token = 2; +} + +// Request for GetConsumerGroup. +message GetConsumerGroupRequest { + // Required. The name of the consumer group whose configuration to return. + // `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "managedkafka.googleapis.com/ConsumerGroup" + } + ]; +} + +// Request for UpdateConsumerGroup. +message UpdateConsumerGroupRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // ConsumerGroup 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. The + // mask is required and a value of * will update all fields. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The consumer group to update. Its `name` field must be populated. + ConsumerGroup consumer_group = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for DeleteConsumerGroup. +message DeleteConsumerGroupRequest { + // Required. The name of the consumer group to delete. + // `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "managedkafka.googleapis.com/ConsumerGroup" + } + ]; +} diff --git a/third_party/googleapis/google/cloud/managedkafka/v1/managedkafka_v1.yaml b/third_party/googleapis/google/cloud/managedkafka/v1/managedkafka_v1.yaml new file mode 100644 index 000000000..733c86a37 --- /dev/null +++ b/third_party/googleapis/google/cloud/managedkafka/v1/managedkafka_v1.yaml @@ -0,0 +1,99 @@ +type: google.api.Service +config_version: 3 +name: managedkafka.googleapis.com +title: Apache Kafka for BigQuery API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.managedkafka.v1.ManagedKafka +- name: google.longrunning.Operations + +types: +- name: google.cloud.managedkafka.v1.OperationMetadata + +documentation: + summary: Manage Apache Kafka clusters and resources. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.managedkafka.v1.ManagedKafka.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1376234 + documentation_uri: https://cloud.google.com/managed-kafka + api_short_name: managedkafka + github_label: 'api: managedkafka' + doc_tag_prefix: managedkafka + organization: CLOUD + library_settings: + - version: google.cloud.managedkafka.v1 + launch_stage: PRELAUNCH + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/cloud/managedkafka/v1/managedkafka_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/managedkafka/v1/managedkafka_v1_grpc_service_config.json new file mode 100644 index 000000000..b66188a80 --- /dev/null +++ b/third_party/googleapis/google/cloud/managedkafka/v1/managedkafka_v1_grpc_service_config.json @@ -0,0 +1,81 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "ListClusters" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "GetCluster" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "ListTopics" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "GetTopic" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "ListConsumerGroups" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "GetConsumerGroup" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "CreateCluster" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "DeleteCluster" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "UpdateCluster" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "CreateTopic" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "DeleteTopic" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "UpdateTopic" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "CreateConsumerGroup" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "DeleteConsumerGroup" + }, + { + "service": "google.cloud.managedkafka.v1.ManagedKafka", + "method": "UpdateConsumerGroup" + } + ], + "timeout": "60s" + } + ] +} diff --git a/third_party/googleapis/google/cloud/managedkafka/v1/resources.proto b/third_party/googleapis/google/cloud/managedkafka/v1/resources.proto new file mode 100644 index 000000000..321391380 --- /dev/null +++ b/third_party/googleapis/google/cloud/managedkafka/v1/resources.proto @@ -0,0 +1,269 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.managedkafka.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ManagedKafka.V1"; +option go_package = "cloud.google.com/go/managedkafka/apiv1/managedkafkapb;managedkafkapb"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.cloud.managedkafka.v1"; +option php_namespace = "Google\\Cloud\\ManagedKafka\\V1"; +option ruby_package = "Google::Cloud::ManagedKafka::V1"; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; + +// An Apache Kafka cluster deployed in a location. +message Cluster { + option (google.api.resource) = { + type: "managedkafka.googleapis.com/Cluster" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}" + plural: "clusters" + singular: "cluster" + }; + + // The state of the cluster. + enum State { + // A state was not specified. + STATE_UNSPECIFIED = 0; + + // The cluster is being created. + CREATING = 1; + + // The cluster is active. + ACTIVE = 2; + + // The cluster is being deleted. + DELETING = 3; + } + + // Platform specific configuration properties for a Kafka cluster. + oneof platform_config { + // Required. Configuration properties for a Kafka cluster deployed to Google + // Cloud Platform. + GcpConfig gcp_config = 9 [(google.api.field_behavior) = REQUIRED]; + } + + // Identifier. The name of the cluster. Structured like: + // projects/{project_number}/locations/{location}/clusters/{cluster_id} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The time when the cluster was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the cluster was last updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Labels as key value pairs. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Capacity configuration for the Kafka cluster. + CapacityConfig capacity_config = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Rebalance configuration for the Kafka cluster. + RebalanceConfig rebalance_config = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current state of the cluster. + State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A capacity configuration of a Kafka cluster. +message CapacityConfig { + // Required. The number of vCPUs to provision for the cluster. Minimum: 3. + int64 vcpu_count = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The memory to provision for the cluster in bytes. + // The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8. + // Minimum: 3221225472 (3 GiB). + int64 memory_bytes = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Defines rebalancing behavior of a Kafka cluster. +message RebalanceConfig { + // The partition rebalance mode for the cluster. + enum Mode { + // A mode was not specified. Do not use. + MODE_UNSPECIFIED = 0; + + // Do not rebalance automatically. + NO_REBALANCE = 1; + + // Automatically rebalance topic partitions among brokers when the + // cluster is scaled up. + AUTO_REBALANCE_ON_SCALE_UP = 2; + } + + // Optional. The rebalance behavior for the cluster. + // When not specified, defaults to `NO_REBALANCE`. + Mode mode = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// The configuration of a Virtual Private Cloud (VPC) network that can access +// the Kafka cluster. +message NetworkConfig { + // Required. Name of the VPC subnet in which to create Private Service Connect + // (PSC) endpoints for the Kafka brokers and bootstrap address. Structured + // like: projects/{project}/regions/{region}/subnetworks/{subnet_id} + // + // The subnet must be located in the same region as the Kafka cluster. The + // project may differ. Multiple subnets from the same parent network must not + // be specified. + // + // The CIDR range of the subnet must be within the IPv4 address ranges for + // private networks, as specified in RFC 1918. + string subnet = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The configuration of access to the Kafka cluster. +message AccessConfig { + // Required. Virtual Private Cloud (VPC) networks that must be granted direct + // access to the Kafka cluster. Minimum of 1 network is required. Maximum 10 + // networks can be specified. + repeated NetworkConfig network_configs = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Configuration properties for a Kafka cluster deployed to Google Cloud +// Platform. +message GcpConfig { + // Required. Access configuration for the Kafka cluster. + AccessConfig access_config = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Immutable. The Cloud KMS Key name to use for encryption. The key + // must be located in the same region as the cluster and cannot be changed. + // Structured like: + // projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}. + // Note that the project component only accepts a project ID, and not a + // project number. + string kms_key = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; +} + +// A Kafka topic in a given cluster. +message Topic { + option (google.api.resource) = { + type: "managedkafka.googleapis.com/Topic" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}" + plural: "topics" + singular: "topic" + }; + + // Identifier. The name of the topic. The `topic` segment is used when + // connecting directly to the cluster. Structured like: + // projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The number of partitions this topic has. The partition count can + // only be increased, not decreased. Please note that if partitions are + // increased for a topic that has a key, the partitioning logic or the + // ordering of the messages will be affected. + int32 partition_count = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The number of replicas of each partition. A + // replication factor of 3 is recommended for high availability. + int32 replication_factor = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Configurations for the topic that are overridden from the cluster + // defaults. The key of the map is a Kafka topic property name, for example: + // `cleanup.policy`, `compression.type`. + map configs = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata for a consumer group corresponding to a specific topic. +message ConsumerTopicMetadata { + // Optional. Metadata for this consumer group and topic for all partition + // indexes it has metadata for. + map partitions = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata for a consumer group corresponding to a specific partition. +message ConsumerPartitionMetadata { + // Required. The offset for this partition, or 0 if no offset has been + // committed. + int64 offset = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The associated metadata for this partition, or empty if it does + // not exist. + string metadata = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A Kafka consumer group in a given cluster. +message ConsumerGroup { + option (google.api.resource) = { + type: "managedkafka.googleapis.com/ConsumerGroup" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}" + plural: "consumerGroups" + singular: "consumerGroup" + }; + + // Identifier. The name of the consumer group. The `consumer_group` segment is + // used when connecting directly to the cluster. Structured like: + // projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Metadata for this consumer group for all topics it has metadata + // for. The key of the map is a topic name, structured like: + // projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic} + map topics = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/mediatranslation/v1alpha1/media_translation.proto b/third_party/googleapis/google/cloud/mediatranslation/v1alpha1/media_translation.proto index 1bd6e1167..496a9ae37 100644 --- a/third_party/googleapis/google/cloud/mediatranslation/v1alpha1/media_translation.proto +++ b/third_party/googleapis/google/cloud/mediatranslation/v1alpha1/media_translation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/mediatranslation/v1beta1/media_translation.proto b/third_party/googleapis/google/cloud/mediatranslation/v1beta1/media_translation.proto index 63aff80c9..051a17463 100644 --- a/third_party/googleapis/google/cloud/mediatranslation/v1beta1/media_translation.proto +++ b/third_party/googleapis/google/cloud/mediatranslation/v1beta1/media_translation.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/memcache/v1/cloud_memcache.proto b/third_party/googleapis/google/cloud/memcache/v1/cloud_memcache.proto index 47606fab4..b559809a6 100644 --- a/third_party/googleapis/google/cloud/memcache/v1/cloud_memcache.proto +++ b/third_party/googleapis/google/cloud/memcache/v1/cloud_memcache.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/memcache/v1beta2/cloud_memcache.proto b/third_party/googleapis/google/cloud/memcache/v1beta2/cloud_memcache.proto index d69951f12..fb5aa91cf 100644 --- a/third_party/googleapis/google/cloud/memcache/v1beta2/cloud_memcache.proto +++ b/third_party/googleapis/google/cloud/memcache/v1beta2/cloud_memcache.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/logging/v1/log_streams.proto b/third_party/googleapis/google/cloud/metastore/logging/v1/log_streams.proto index 17ad15dfd..8e575fe01 100644 --- a/third_party/googleapis/google/cloud/metastore/logging/v1/log_streams.proto +++ b/third_party/googleapis/google/cloud/metastore/logging/v1/log_streams.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/logging/v1/scheduled_backups_log.proto b/third_party/googleapis/google/cloud/metastore/logging/v1/scheduled_backups_log.proto index ee00911be..c7efa258f 100644 --- a/third_party/googleapis/google/cloud/metastore/logging/v1/scheduled_backups_log.proto +++ b/third_party/googleapis/google/cloud/metastore/logging/v1/scheduled_backups_log.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/v1/BUILD.bazel b/third_party/googleapis/google/cloud/metastore/v1/BUILD.bazel index 11b2f1ae7..f0cb1cac6 100644 --- a/third_party/googleapis/google/cloud/metastore/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/metastore/v1/BUILD.bazel @@ -230,7 +230,7 @@ php_gapic_library( name = "metastore_php_gapic", srcs = [":metastore_proto_with_info"], grpc_service_config = "metastore_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "metastore_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/metastore/v1/metastore.proto b/third_party/googleapis/google/cloud/metastore/v1/metastore.proto index e0b8b216a..bace7232a 100644 --- a/third_party/googleapis/google/cloud/metastore/v1/metastore.proto +++ b/third_party/googleapis/google/cloud/metastore/v1/metastore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/v1/metastore_federation.proto b/third_party/googleapis/google/cloud/metastore/v1/metastore_federation.proto index dbe25125f..ae0c37deb 100644 --- a/third_party/googleapis/google/cloud/metastore/v1/metastore_federation.proto +++ b/third_party/googleapis/google/cloud/metastore/v1/metastore_federation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/v1alpha/BUILD.bazel b/third_party/googleapis/google/cloud/metastore/v1alpha/BUILD.bazel index 1be1ab169..492ef5092 100644 --- a/third_party/googleapis/google/cloud/metastore/v1alpha/BUILD.bazel +++ b/third_party/googleapis/google/cloud/metastore/v1alpha/BUILD.bazel @@ -230,7 +230,7 @@ php_gapic_library( name = "metastore_php_gapic", srcs = [":metastore_proto_with_info"], grpc_service_config = "metastore_grpc_service_config.json", - migration_mode = "PRE_MIGRATION_SURFACE_ONLY", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "metastore_v1alpha.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/metastore/v1alpha/metastore.proto b/third_party/googleapis/google/cloud/metastore/v1alpha/metastore.proto index 5e34b62b3..f0b1110ac 100644 --- a/third_party/googleapis/google/cloud/metastore/v1alpha/metastore.proto +++ b/third_party/googleapis/google/cloud/metastore/v1alpha/metastore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/v1alpha/metastore_federation.proto b/third_party/googleapis/google/cloud/metastore/v1alpha/metastore_federation.proto index bdb1ecb37..5f94a37ea 100644 --- a/third_party/googleapis/google/cloud/metastore/v1alpha/metastore_federation.proto +++ b/third_party/googleapis/google/cloud/metastore/v1alpha/metastore_federation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/v1beta/BUILD.bazel b/third_party/googleapis/google/cloud/metastore/v1beta/BUILD.bazel index e17e97221..fe0fa6d37 100644 --- a/third_party/googleapis/google/cloud/metastore/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/cloud/metastore/v1beta/BUILD.bazel @@ -230,7 +230,7 @@ php_gapic_library( name = "metastore_php_gapic", srcs = [":metastore_proto_with_info"], grpc_service_config = "metastore_grpc_service_config.json", - migration_mode = "PRE_MIGRATION_SURFACE_ONLY", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "metastore_v1beta.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/metastore/v1beta/metastore.proto b/third_party/googleapis/google/cloud/metastore/v1beta/metastore.proto index 8dea7353d..bda76d449 100644 --- a/third_party/googleapis/google/cloud/metastore/v1beta/metastore.proto +++ b/third_party/googleapis/google/cloud/metastore/v1beta/metastore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/metastore/v1beta/metastore_federation.proto b/third_party/googleapis/google/cloud/metastore/v1beta/metastore_federation.proto index 26bc70e7c..e32392b8f 100644 --- a/third_party/googleapis/google/cloud/metastore/v1beta/metastore_federation.proto +++ b/third_party/googleapis/google/cloud/metastore/v1beta/metastore_federation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/migrationcenter/v1/BUILD.bazel b/third_party/googleapis/google/cloud/migrationcenter/v1/BUILD.bazel index 4961e9d0f..ed248f317 100644 --- a/third_party/googleapis/google/cloud/migrationcenter/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/migrationcenter/v1/BUILD.bazel @@ -139,7 +139,7 @@ go_gapic_library( grpc_service_config = "migrationcenter_grpc_service_config.json", importpath = "cloud.google.com/go/migrationcenter/apiv1;migrationcenter", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "migrationcenter_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/migrationcenter/v1/migrationcenter.proto b/third_party/googleapis/google/cloud/migrationcenter/v1/migrationcenter.proto index d1b1fb2e2..e2c5d3018 100644 --- a/third_party/googleapis/google/cloud/migrationcenter/v1/migrationcenter.proto +++ b/third_party/googleapis/google/cloud/migrationcenter/v1/migrationcenter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/BUILD.bazel b/third_party/googleapis/google/cloud/netapp/v1/BUILD.bazel index ca4a1c4f5..16229a29d 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/netapp/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "netapp_proto", @@ -58,6 +61,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -122,6 +126,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -146,7 +151,7 @@ go_gapic_library( grpc_service_config = "netapp_v1_grpc_service_config.json", importpath = "cloud.google.com/go/netapp/apiv1;netapp", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "netapp_v1.yaml", transport = "grpc+rest", @@ -175,6 +180,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -214,6 +220,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -251,6 +258,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -281,6 +289,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -304,9 +313,9 @@ ruby_cloud_gapic_library( name = "netapp_ruby_gapic", srcs = [":netapp_proto_with_info"], extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-netapp-v1", "ruby-cloud-namespace-override=Netapp=NetApp", "ruby-cloud-path-override=net_app=netapp", - "ruby-cloud-gem-name=google-cloud-netapp-v1", ], grpc_service_config = "netapp_v1_grpc_service_config.json", rest_numeric_enums = True, @@ -331,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -341,6 +351,7 @@ load( csharp_proto_library( name = "netapp_csharp_proto", + extra_opts = [], deps = [":netapp_proto"], ) @@ -357,6 +368,7 @@ csharp_gapic_library( grpc_service_config = "netapp_v1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "netapp_v1.yaml", + transport = "grpc+rest", deps = [ ":netapp_csharp_grpc", ":netapp_csharp_proto", @@ -376,6 +388,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/netapp/v1/active_directory.proto b/third_party/googleapis/google/cloud/netapp/v1/active_directory.proto index 19b5e3d91..5877d2145 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/active_directory.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/active_directory.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -190,11 +190,14 @@ message ActiveDirectory { // Required. Password of the Active Directory domain administrator. string password = 11 [(google.api.field_behavior) = REQUIRED]; - // Users to be added to the Built-in Backup Operator active directory group. - repeated string backup_operators = 12; + // Optional. Users to be added to the Built-in Backup Operator active + // directory group. + repeated string backup_operators = 12 + [(google.api.field_behavior) = OPTIONAL]; - // Domain users to be given the SeSecurityPrivilege. - repeated string security_operators = 13; + // Optional. Domain users to be given the SeSecurityPrivilege. + repeated string security_operators = 13 + [(google.api.field_behavior) = OPTIONAL]; // Name of the active directory machine. This optional parameter is used only // while creating kerberos volume diff --git a/third_party/googleapis/google/cloud/netapp/v1/backup.proto b/third_party/googleapis/google/cloud/netapp/v1/backup.proto index f74a72347..222f650c9 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/backup.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/backup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/backup_policy.proto b/third_party/googleapis/google/cloud/netapp/v1/backup_policy.proto index cfe1e4dd1..0e235fc74 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/backup_policy.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/backup_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/backup_vault.proto b/third_party/googleapis/google/cloud/netapp/v1/backup_vault.proto index e5b759093..cb66f5060 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/backup_vault.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/backup_vault.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/cloud_netapp_service.proto b/third_party/googleapis/google/cloud/netapp/v1/cloud_netapp_service.proto index 48f125525..51a0ad088 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/cloud_netapp_service.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/cloud_netapp_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/common.proto b/third_party/googleapis/google/cloud/netapp/v1/common.proto index 66b152594..5123776af 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/common.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.cloud.netapp.v1; +import "google/api/field_behavior.proto"; + option csharp_namespace = "Google.Cloud.NetApp.V1"; option go_package = "cloud.google.com/go/netapp/apiv1/netapppb;netapppb"; option java_multiple_files = true; @@ -24,7 +26,7 @@ option java_package = "com.google.cloud.netapp.v1"; option php_namespace = "Google\\Cloud\\NetApp\\V1"; option ruby_package = "Google::Cloud::NetApp::V1"; -// The service levels - Storage Pool, Volumes +// The service level of a storage pool and its volumes. enum ServiceLevel { // Unspecified service level. SERVICE_LEVEL_UNSPECIFIED = 0; @@ -35,13 +37,16 @@ enum ServiceLevel { // Extreme service level. EXTREME = 2; - // Standard (Software offering) + // Standard service level. STANDARD = 3; + + // Flex service level. + FLEX = 4; } -// Defined the current volume encryption key source. +// The volume encryption key source. enum EncryptionType { - // The source of encryption key is not specified. + // The source of the encryption key is not specified. ENCRYPTION_TYPE_UNSPECIFIED = 0; // Google managed encryption key. @@ -50,3 +55,11 @@ enum EncryptionType { // Customer managed encryption key, which is stored in KMS. CLOUD_KMS = 2; } + +// Metadata for a given +// [google.cloud.location.Location][google.cloud.location.Location]. +message LocationMetadata { + // Output only. Supported service levels in a location. + repeated ServiceLevel supported_service_levels = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/netapp/v1/kms.proto b/third_party/googleapis/google/cloud/netapp/v1/kms.proto index 0775435a9..be50b5661 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/kms.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/kms.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/netapp_v1.yaml b/third_party/googleapis/google/cloud/netapp/v1/netapp_v1.yaml index e6e55fc64..7e6eec4df 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/netapp_v1.yaml +++ b/third_party/googleapis/google/cloud/netapp/v1/netapp_v1.yaml @@ -9,6 +9,7 @@ apis: - name: google.longrunning.Operations types: +- name: google.cloud.netapp.v1.LocationMetadata - name: google.cloud.netapp.v1.OperationMetadata documentation: diff --git a/third_party/googleapis/google/cloud/netapp/v1/replication.proto b/third_party/googleapis/google/cloud/netapp/v1/replication.proto index d5db6a431..a8b626d68 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/replication.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/replication.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/snapshot.proto b/third_party/googleapis/google/cloud/netapp/v1/snapshot.proto index 5687aee7b..1c94af37a 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/snapshot.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/snapshot.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/netapp/v1/storage_pool.proto b/third_party/googleapis/google/cloud/netapp/v1/storage_pool.proto index 8d49f3586..6e12eeb7f 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/storage_pool.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/storage_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -51,18 +51,19 @@ message ListStoragePoolsRequest { } ]; - // The maximum number of items to return. - int32 page_size = 2; + // Optional. The maximum number of items to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // The next_page_token value to use if there are additional + // Optional. The next_page_token value to use if there are additional // results to retrieve for this list request. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Sort results. Supported values are "name", "name desc" or "" (unsorted). - string order_by = 4; + // Optional. Sort results. Supported values are "name", "name desc" or "" + // (unsorted). + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; - // List filter. - string filter = 5; + // Optional. List filter. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; } // ListStoragePoolsResponse is the response to a ListStoragePoolsRequest. @@ -184,11 +185,11 @@ message StoragePool { google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Description of the storage pool - string description = 9; + // Optional. Description of the storage pool + string description = 9 [(google.api.field_behavior) = OPTIONAL]; - // Labels as key value pairs - map labels = 10; + // Optional. Labels as key value pairs + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; // Required. VPC Network name. // Format: projects/{project}/global/networks/{network} @@ -197,22 +198,29 @@ message StoragePool { (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } ]; - // Specifies the Active Directory to be used for creating a SMB volume. - string active_directory = 12 [(google.api.resource_reference) = { - type: "netapp.googleapis.com/ActiveDirectory" - }]; + // Optional. Specifies the Active Directory to be used for creating a SMB + // volume. + string active_directory = 12 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "netapp.googleapis.com/ActiveDirectory" + } + ]; - // Specifies the KMS config to be used for volume encryption. - string kms_config = 13 [(google.api.resource_reference) = { - type: "netapp.googleapis.com/KmsConfig" - }]; + // Optional. Specifies the KMS config to be used for volume encryption. + string kms_config = 13 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "netapp.googleapis.com/KmsConfig" + } + ]; - // Flag indicating if the pool is NFS LDAP enabled or not. - bool ldap_enabled = 14; + // Optional. Flag indicating if the pool is NFS LDAP enabled or not. + bool ldap_enabled = 14 [(google.api.field_behavior) = OPTIONAL]; - // Name of the Private Service Access allocated range. If - // not provided, any available range will be chosen. - string psa_range = 15; + // Optional. This field is not implemented. The values provided in this field + // are ignored. + string psa_range = 15 [(google.api.field_behavior) = OPTIONAL]; // Output only. Specifies the current pool encryption key source. EncryptionType encryption_type = 16 diff --git a/third_party/googleapis/google/cloud/netapp/v1/volume.proto b/third_party/googleapis/google/cloud/netapp/v1/volume.proto index f727d0272..49f3b11bf 100644 --- a/third_party/googleapis/google/cloud/netapp/v1/volume.proto +++ b/third_party/googleapis/google/cloud/netapp/v1/volume.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -102,7 +102,7 @@ enum SecurityStyle { // SecurityStyle uses NTFS NTFS = 1; - // SecurityStyle uses NTFS + // SecurityStyle uses UNIX UNIX = 2; } @@ -274,8 +274,8 @@ message Volume { // Required. Share name of the volume string share_name = 5 [(google.api.field_behavior) = REQUIRED]; - // Output only. Name of the Private Service Access allocated range. This is - // optional. If not provided, any available range will be chosen. + // Output only. This field is not implemented. The values provided in this + // field are ignored. string psa_range = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. StoragePool name of the volume @@ -383,6 +383,9 @@ message Volume { // Optional. List of actions that are restricted on this volume. repeated RestrictedAction restricted_actions = 31 [(google.api.field_behavior) = OPTIONAL]; + + // Tiering policy for the volume. + optional TieringPolicy tiering_policy = 34; } // Defines the export policy for the volume. @@ -576,4 +579,34 @@ message BackupConfig { // This field should be nil when there's no backup policy attached. optional bool scheduled_backup_enabled = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Total size of all backups in a chain in bytes = baseline + // backup size + sum(incremental backup size). + optional int64 backup_chain_bytes = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Defines tiering policy for the volume. +message TieringPolicy { + // Tier action for the volume. + enum TierAction { + // Unspecified. + TIER_ACTION_UNSPECIFIED = 0; + + // When tiering is enabled, new cold data will be tiered. + ENABLED = 1; + + // When paused, tiering won't be performed on new data. Existing data stays + // tiered until accessed. + PAUSED = 2; + } + + // Optional. Flag indicating if the volume has tiering policy enable/pause. + // Default is PAUSED. + optional TierAction tier_action = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Time in days to mark the volume's data block as cold and make it + // eligible for tiering, can be range from 7-183. Default is 31. + optional int32 cooling_threshold_days = 2 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto b/third_party/googleapis/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto index 7e3128dd6..56bc87f8e 100644 --- a/third_party/googleapis/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto +++ b/third_party/googleapis/google/cloud/networkanalyzer/logging/v1/analyzer_log.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -42,6 +42,8 @@ enum ReportCauseCode { ROUTE_INVALID_NEXT_HOP_ILB_BACKEND_IP_FORWARDING_DISABLED = 6; + ROUTE_INVALID_NEXT_HOP_ILB_VIP_NOT_ASSIGNED = 7; + IP_UTILIZATION_IP_ALLOCATION_RATIO_HIGH = 20; // Summary of ip utilization of all subnet ranges in the project. diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto index 12efca7b3..9fc25fd93 100644 --- a/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto +++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto index 3ea7e85c2..7f6284430 100644 --- a/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto +++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/hub.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1/policy_based_routing.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1/policy_based_routing.proto index ae5c057f6..3b5bbffd1 100644 --- a/third_party/googleapis/google/cloud/networkconnectivity/v1/policy_based_routing.proto +++ b/third_party/googleapis/google/cloud/networkconnectivity/v1/policy_based_routing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto index 1ef4b4714..c4fee6ef4 100644 --- a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto +++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto index 72875cfb6..0c4d61dbe 100644 --- a/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto +++ b/third_party/googleapis/google/cloud/networkconnectivity/v1alpha1/hub.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1/BUILD.bazel b/third_party/googleapis/google/cloud/networkmanagement/v1/BUILD.bazel index ba60e1167..12e4cac64 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/networkmanagement/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "networkmanagement_proto", @@ -29,6 +32,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -43,12 +47,15 @@ proto_library_with_info( deps = [ ":networkmanagement_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -72,23 +79,30 @@ java_grpc_library( java_gapic_library( name = "networkmanagement_java_gapic", srcs = [":networkmanagement_proto_with_info"], + gapic_yaml = None, grpc_service_config = "networkmanagement_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "networkmanagement_v1.yaml", test_deps = [ ":networkmanagement_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], transport = "grpc+rest", deps = [ ":networkmanagement_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "networkmanagement_java_gapic_test_suite", test_classes = [ - "com.google.cloud.networkmanagement.v1.ReachabilityServiceClientHttpJsonTest", + # This test is temporarily disabled due to the issue: + # https://github.com/googleapis/sdk-platform-java/issues/1839 + # "com.google.cloud.networkmanagement.v1.ReachabilityServiceClientHttpJsonTest", "com.google.cloud.networkmanagement.v1.ReachabilityServiceClientTest", ], runtime_deps = [":networkmanagement_java_gapic_test"], @@ -110,6 +124,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -141,6 +156,8 @@ go_gapic_library( transport = "grpc+rest", deps = [ ":networkmanagement_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -162,10 +179,12 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -173,13 +192,16 @@ py_gapic_library( srcs = [":networkmanagement_proto"], grpc_service_config = "networkmanagement_grpc_service_config.json", opt_args = [ - "warehouse-package-name=google-cloud-network-management", - "python-gapic-namespace=google.cloud", "python-gapic-name=network_management", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-network-management", ], rest_numeric_enums = True, service_yaml = "networkmanagement_v1.yaml", transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], ) py_test( @@ -203,6 +225,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -223,7 +246,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "networkmanagement_v1.yaml", transport = "grpc+rest", - deps = [":networkmanagement_php_proto"], + deps = [ + ":networkmanagement_php_proto", + ], ) # Open Source Packages @@ -238,6 +263,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -268,6 +294,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -291,9 +318,9 @@ ruby_cloud_gapic_library( name = "networkmanagement_ruby_gapic", srcs = [":networkmanagement_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-network_management-v1", - "ruby-cloud-api-shortname=networkmanagement", "ruby-cloud-api-id=networkmanagement.googleapis.com", + "ruby-cloud-api-shortname=networkmanagement", + "ruby-cloud-gem-name=google-cloud-network_management-v1", "ruby-cloud-product-url=https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest", ], grpc_service_config = "networkmanagement_grpc_service_config.json", @@ -321,6 +348,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -331,6 +359,7 @@ load( csharp_proto_library( name = "networkmanagement_csharp_proto", + extra_opts = [], deps = [":networkmanagement_proto"], ) @@ -367,6 +396,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1/connectivity_test.proto b/third_party/googleapis/google/cloud/networkmanagement/v1/connectivity_test.proto index 7bbdef65d..8fe340aeb 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1/connectivity_test.proto +++ b/third_party/googleapis/google/cloud/networkmanagement/v1/connectivity_test.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -38,7 +38,7 @@ message ConnectivityTest { }; // Required. Unique name of the resource using the form: - // `projects/{project_id}/locations/global/connectivityTests/{test}` + // `projects/{project_id}/locations/global/connectivityTests/{test_id}` string name = 1 [(google.api.field_behavior) = REQUIRED]; // The user-supplied description of the Connectivity Test. @@ -122,6 +122,10 @@ message ConnectivityTest { // existing test. ProbingDetails probing_details = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Whether the test should skip firewall checking. + // If not provided, we assume false. + bool bypass_firewall_checks = 17; } // Source or destination of the Connectivity Test. @@ -186,9 +190,6 @@ message Endpoint { } // The IP address of the endpoint, which can be an external or internal IP. - // An IPv6 address is only allowed when the test's destination is a - // [global load balancer - // VIP](https://cloud.google.com/load-balancing/docs/load-balancing-overview). string ip_address = 1; // The IP protocol port of the endpoint. @@ -280,7 +281,9 @@ message ReachabilityDetails { // The source and destination endpoints do not uniquely identify // the test location in the network, and the reachability result contains // multiple traces. For some traces, a packet could be delivered, and for - // others, it would not be. + // others, it would not be. This result is also assigned to + // configuration analysis of return path if on its own it should be + // REACHABLE, but configuration analysis of forward path is AMBIGUOUS. AMBIGUOUS = 4; // The configuration analysis did not complete. Possible reasons are: diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1/networkmanagement_v1.yaml b/third_party/googleapis/google/cloud/networkmanagement/v1/networkmanagement_v1.yaml index b72b64854..b3084630a 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1/networkmanagement_v1.yaml +++ b/third_party/googleapis/google/cloud/networkmanagement/v1/networkmanagement_v1.yaml @@ -4,7 +4,10 @@ name: networkmanagement.googleapis.com title: Network Management API apis: +- name: google.cloud.location.Locations - name: google.cloud.networkmanagement.v1.ReachabilityService +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.networkmanagement.v1.OperationMetadata @@ -43,23 +46,6 @@ documentation: permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning. -backend: - rules: - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: google.cloud.networkmanagement.v1.ReachabilityService.GetConnectivityTest - deadline: 60.0 - - selector: google.cloud.networkmanagement.v1.ReachabilityService.ListConnectivityTests - deadline: 60.0 - - selector: 'google.iam.v1.IAMPolicy.*' - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 10.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1/reachability.proto b/third_party/googleapis/google/cloud/networkmanagement/v1/reachability.proto index d81fe4f57..2ae3caa91 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1/reachability.proto +++ b/third_party/googleapis/google/cloud/networkmanagement/v1/reachability.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ package google.cloud.networkmanagement.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/cloud/networkmanagement/v1/connectivity_test.proto"; import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -44,10 +46,12 @@ option ruby_package = "Google::Cloud::NetworkManagement::V1"; // to troubleshoot connectivity issues. service ReachabilityService { option (google.api.default_host) = "networkmanagement.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; // Lists all Connectivity Tests owned by a project. - rpc ListConnectivityTests(ListConnectivityTestsRequest) returns (ListConnectivityTestsResponse) { + rpc ListConnectivityTests(ListConnectivityTestsRequest) + returns (ListConnectivityTestsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/global}/connectivityTests" }; @@ -55,7 +59,8 @@ service ReachabilityService { } // Gets the details of a specific Connectivity Test. - rpc GetConnectivityTest(GetConnectivityTestRequest) returns (ConnectivityTest) { + rpc GetConnectivityTest(GetConnectivityTestRequest) + returns (ConnectivityTest) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/global/connectivityTests/*}" }; @@ -75,7 +80,8 @@ service ReachabilityService { // incomplete, the reachability result returns a value of // AMBIGUOUS. For more information, // see the Connectivity Test documentation. - rpc CreateConnectivityTest(CreateConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc CreateConnectivityTest(CreateConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/global}/connectivityTests" body: "resource" @@ -101,7 +107,8 @@ service ReachabilityService { // If the endpoint specifications in `ConnectivityTest` are incomplete, the // reachability result returns a value of `AMBIGUOUS`. See the documentation // in `ConnectivityTest` for for more details. - rpc UpdateConnectivityTest(UpdateConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc UpdateConnectivityTest(UpdateConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{resource.name=projects/*/locations/global/connectivityTests/*}" body: "resource" @@ -125,7 +132,8 @@ service ReachabilityService { // example, specified resources are deleted in the network, or you lost // read permissions to the network configurations of listed projects), then // the reachability result returns a value of `UNKNOWN`. - rpc RerunConnectivityTest(RerunConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc RerunConnectivityTest(RerunConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/global/connectivityTests/*}:rerun" body: "*" @@ -137,7 +145,8 @@ service ReachabilityService { } // Deletes a specific `ConnectivityTest`. - rpc DeleteConnectivityTest(DeleteConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc DeleteConnectivityTest(DeleteConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/global/connectivityTests/*}" }; @@ -228,7 +237,8 @@ message CreateConnectivityTestRequest { message UpdateConnectivityTestRequest { // Required. Mask of fields to update. At least one path must be supplied in // this field. - google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; // Required. Only fields specified in update_mask are updated. ConnectivityTest resource = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1/trace.proto b/third_party/googleapis/google/cloud/networkmanagement/v1/trace.proto index 3316f6f09..de0bbfa48 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1/trace.proto +++ b/third_party/googleapis/google/cloud/networkmanagement/v1/trace.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,9 @@ syntax = "proto3"; package google.cloud.networkmanagement.v1; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; + option csharp_namespace = "Google.Cloud.NetworkManagement.V1"; option go_package = "cloud.google.com/go/networkmanagement/apiv1/networkmanagementpb;networkmanagementpb"; option java_multiple_files = true; @@ -49,6 +52,11 @@ message Trace { // network state machine. It is critical to preserve the order of the steps // and avoid reordering or sorting them. repeated Step steps = 2; + + // ID of trace. For forward traces, this ID is unique for each trace. For + // return traces, it matches ID of associated forward trace. A single forward + // trace can be associated with none, one or more than one return trace. + int32 forward_trace_id = 4; } // A simulated forwarding path is composed of multiple steps. @@ -68,10 +76,8 @@ message Step { // The endpoint information is populated. START_FROM_INTERNET = 2; - // Initial state: packet originating from a Google service. Some Google - // services, such as health check probers or Identity Aware Proxy use - // special routes, outside VPC routing configuration to reach Compute Engine - // Instances. + // Initial state: packet originating from a Google service. + // The google_service information is populated. START_FROM_GOOGLE_SERVICE = 27; // Initial state: packet originating from a VPC or on-premises network @@ -100,6 +106,15 @@ message Step { // A CloudRunRevisionInfo is populated with starting revision information. START_FROM_CLOUD_RUN_REVISION = 26; + // Initial state: packet originating from a Storage Bucket. Used only for + // return traces. + // The storage_bucket information is populated. + START_FROM_STORAGE_BUCKET = 29; + + // Initial state: packet originating from a published service that uses + // Private Service Connect. Used only for return traces. + START_FROM_PSC_PUBLISHED_SERVICE = 30; + // Config checking state: verify ingress firewall rule. APPLY_INGRESS_FIREWALL_RULE = 4; @@ -112,6 +127,9 @@ message Step { // Config checking state: match forwarding rule. APPLY_FORWARDING_RULE = 7; + // Config checking state: verify load balancer backend configuration. + ANALYZE_LOAD_BALANCER_BACKEND = 28; + // Config checking state: packet sent or received under foreign IP // address and allowed. SPOOFING_APPROVED = 8; @@ -120,10 +138,10 @@ message Step { ARRIVE_AT_INSTANCE = 9; // Forwarding state: arriving at a Compute Engine internal load balancer. - ARRIVE_AT_INTERNAL_LOAD_BALANCER = 10; + ARRIVE_AT_INTERNAL_LOAD_BALANCER = 10 [deprecated = true]; // Forwarding state: arriving at a Compute Engine external load balancer. - ARRIVE_AT_EXTERNAL_LOAD_BALANCER = 11; + ARRIVE_AT_EXTERNAL_LOAD_BALANCER = 11 [deprecated = true]; // Forwarding state: arriving at a Cloud VPN gateway. ARRIVE_AT_VPN_GATEWAY = 12; @@ -219,8 +237,9 @@ message Step { // Display information of the final state "drop" and reason. DropInfo drop = 15; - // Display information of the load balancers. - LoadBalancerInfo load_balancer = 16; + // Display information of the load balancers. Deprecated in favor of the + // `load_balancer_backend_info` field, not used in new tests. + LoadBalancerInfo load_balancer = 16 [deprecated = true]; // Display information of a Google Cloud network. NetworkInfo network = 17; @@ -239,6 +258,18 @@ message Step { // Display information of a Cloud Run revision. CloudRunRevisionInfo cloud_run_revision = 23; + + // Display information of a NAT. + NatInfo nat = 25; + + // Display information of a ProxyConnection. + ProxyConnectionInfo proxy_connection = 26; + + // Display information of a specific load balancer backend. + LoadBalancerBackendInfo load_balancer_backend_info = 27; + + // Display information of a Storage Bucket. Used only for return traces. + StorageBucketInfo storage_bucket = 28; } } @@ -319,6 +350,18 @@ message FirewallInfo { // For details, see [Regional network firewall // policies](https://cloud.google.com/firewall/docs/regional-firewall-policies). NETWORK_REGIONAL_FIREWALL_POLICY_RULE = 6; + + // Firewall policy rule containing attributes not yet supported in + // Connectivity tests. Firewall analysis is skipped if such a rule can + // potentially be matched. Please see the [list of unsupported + // configurations](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs). + UNSUPPORTED_FIREWALL_POLICY_RULE = 100; + + // Tracking state for response traffic created when request traffic goes + // through allow firewall rule. + // For details, see [firewall rules + // specifications](https://cloud.google.com/firewall/docs/firewalls#specifications) + TRACKING_STATE = 101; } // The display name of the VPC firewall rule. This field is not applicable @@ -332,7 +375,7 @@ message FirewallInfo { // Possible values: INGRESS, EGRESS string direction = 3; - // Possible values: ALLOW, DENY + // Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP string action = 4; // The priority of the firewall rule. @@ -507,7 +550,7 @@ message RouteInfo { message GoogleServiceInfo { // Recognized type of a Google Service. enum GoogleServiceType { - // Unspecified Google Service. Includes most of Google APIs and services. + // Unspecified Google Service. GOOGLE_SERVICE_TYPE_UNSPECIFIED = 0; // Identity aware proxy. @@ -525,6 +568,17 @@ message GoogleServiceInfo { // https://cloud.google.com/dns/docs/zones/forwarding-zones#firewall-rules // https://cloud.google.com/dns/docs/policies#firewall-rules CLOUD_DNS = 3; + + // private.googleapis.com and restricted.googleapis.com + GOOGLE_API = 4; + + // Google API via Private Service Connect. + // https://cloud.google.com/vpc/docs/configure-private-service-connect-apis + GOOGLE_API_PSC = 5; + + // Google API via VPC Service Controls. + // https://cloud.google.com/vpc/docs/configure-private-service-connect-apis + GOOGLE_API_VPC_SC = 6; } // Source IP address. @@ -599,8 +653,10 @@ message LoadBalancerInfo { // Type of the load balancer. LoadBalancerType load_balancer_type = 1; - // URI of the health check for the load balancer. - string health_check_uri = 2; + // URI of the health check for the load balancer. Deprecated and no longer + // populated as different load balancer backends might have different health + // checks. + string health_check_uri = 2 [deprecated = true]; // Information for the loadbalancer backends. repeated LoadBalancerBackend backends = 3; @@ -781,6 +837,21 @@ message DeliverInfo { // Target is a serverless network endpoint group. SERVERLESS_NEG = 9; + + // Target is a Cloud Storage bucket. + STORAGE_BUCKET = 10; + + // Target is a private network. Used only for return traces. + PRIVATE_NETWORK = 11; + + // Target is a Cloud Function. Used only for return traces. + CLOUD_FUNCTION = 12; + + // Target is a App Engine service version. Used only for return traces. + APP_ENGINE_VERSION = 13; + + // Target is a Cloud Run revision. Used only for return traces. + CLOUD_RUN_REVISION = 14; } // Target type where the packet is delivered to. @@ -788,6 +859,9 @@ message DeliverInfo { // URI of the resource that the packet is delivered to. string resource_uri = 2; + + // IP address of the target (if applicable). + string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; } // Details of the final state "forward" and associated resource. @@ -807,19 +881,22 @@ message ForwardInfo { INTERCONNECT = 3; // Forwarded to a Google Kubernetes Engine Container cluster master. - GKE_MASTER = 4; + GKE_MASTER = 4 [deprecated = true]; // Forwarded to the next hop of a custom route imported from a peering VPC. IMPORTED_CUSTOM_ROUTE_NEXT_HOP = 5; // Forwarded to a Cloud SQL instance. - CLOUD_SQL_INSTANCE = 6; + CLOUD_SQL_INSTANCE = 6 [deprecated = true]; // Forwarded to a VPC network in another project. ANOTHER_PROJECT = 7; // Forwarded to an NCC Hub. NCC_HUB = 8; + + // Forwarded to a router appliance. + ROUTER_APPLIANCE = 9; } // Target type where this packet is forwarded to. @@ -827,6 +904,9 @@ message ForwardInfo { // URI of the resource that the packet is forwarded to. string resource_uri = 2; + + // IP address of the target (if applicable). + string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; } // Details of the final state "abort" and associated resource. @@ -836,63 +916,78 @@ message AbortInfo { // Cause is unspecified. CAUSE_UNSPECIFIED = 0; - // Aborted due to unknown network. - // The reachability analysis cannot proceed because the user does not have - // access to the host project's network configurations, including firewall - // rules and routes. This happens when the project is a service project and - // the endpoints being traced are in the host project's network. - UNKNOWN_NETWORK = 1; + // Aborted due to unknown network. Deprecated, not used in the new tests. + UNKNOWN_NETWORK = 1 [deprecated = true]; - // Aborted because the IP address(es) are unknown. + // Aborted because no project information can be derived from the test + // input. Deprecated, not used in the new tests. + UNKNOWN_PROJECT = 3 [deprecated = true]; + + // Aborted because traffic is sent from a public IP to an instance without + // an external IP. Deprecated, not used in the new tests. + NO_EXTERNAL_IP = 7 [deprecated = true]; + + // Aborted because none of the traces matches destination information + // specified in the input test request. Deprecated, not used in the new + // tests. + UNINTENDED_DESTINATION = 8 [deprecated = true]; + + // Aborted because the source endpoint could not be found. Deprecated, not + // used in the new tests. + SOURCE_ENDPOINT_NOT_FOUND = 11 [deprecated = true]; + + // Aborted because the source network does not match the source endpoint. + // Deprecated, not used in the new tests. + MISMATCHED_SOURCE_NETWORK = 12 [deprecated = true]; + + // Aborted because the destination endpoint could not be found. Deprecated, + // not used in the new tests. + DESTINATION_ENDPOINT_NOT_FOUND = 13 [deprecated = true]; + + // Aborted because the destination network does not match the destination + // endpoint. Deprecated, not used in the new tests. + MISMATCHED_DESTINATION_NETWORK = 14 [deprecated = true]; + + // Aborted because no endpoint with the packet's destination IP address is + // found. UNKNOWN_IP = 2; - // Aborted because no project information can be derived from the test - // input. - UNKNOWN_PROJECT = 3; + // Aborted because the source IP address doesn't belong to any of the + // subnets of the source VPC network. + SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK = 23; - // Aborted because the user lacks the permission to access all or part of - // the network configurations required to run the test. + // Aborted because user lacks permission to access all or part of the + // network configurations required to run the test. PERMISSION_DENIED = 4; - // Aborted because no valid source endpoint is derived from the input test - // request. - NO_SOURCE_LOCATION = 5; + // Aborted because user lacks permission to access Cloud NAT configs + // required to run the test. + PERMISSION_DENIED_NO_CLOUD_NAT_CONFIGS = 28; - // Aborted because the source and/or destination endpoint specified in - // the test are invalid. The possible reasons that an endpoint is - // invalid include: malformed IP address; nonexistent instance or - // network URI; IP address not in the range of specified network URI; and - // instance not owning the network interface in the specified network. - INVALID_ARGUMENT = 6; + // Aborted because user lacks permission to access Network endpoint group + // endpoint configs required to run the test. + PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS = 29; - // Aborted because traffic is sent from a public IP to an instance without - // an external IP. - NO_EXTERNAL_IP = 7; + // Aborted because no valid source or destination endpoint is derived from + // the input test request. + NO_SOURCE_LOCATION = 5; - // Aborted because none of the traces matches destination information - // specified in the input test request. - UNINTENDED_DESTINATION = 8; + // Aborted because the source or destination endpoint specified in + // the request is invalid. Some examples: + // - The request might contain malformed resource URI, project ID, or IP + // address. + // - The request might contain inconsistent information (for example, the + // request might include both the instance and the network, but the instance + // might not have a NIC in that network). + INVALID_ARGUMENT = 6; - // Aborted because the number of steps in the trace exceeding a certain - // limit which may be caused by routing loop. + // Aborted because the number of steps in the trace exceeds a certain + // limit. It might be caused by a routing loop. TRACE_TOO_LONG = 9; // Aborted due to internal server error. INTERNAL_ERROR = 10; - // Aborted because the source endpoint could not be found. - SOURCE_ENDPOINT_NOT_FOUND = 11; - - // Aborted because the source network does not match the source endpoint. - MISMATCHED_SOURCE_NETWORK = 12; - - // Aborted because the destination endpoint could not be found. - DESTINATION_ENDPOINT_NOT_FOUND = 13; - - // Aborted because the destination network does not match the destination - // endpoint. - MISMATCHED_DESTINATION_NETWORK = 14; - // Aborted because the test scenario is not supported. UNSUPPORTED = 15; @@ -908,6 +1003,18 @@ message AbortInfo { // Aborted because expected resource configuration was missing. RESOURCE_CONFIG_NOT_FOUND = 18; + // Aborted because expected VM instance configuration was missing. + VM_INSTANCE_CONFIG_NOT_FOUND = 24; + + // Aborted because expected network configuration was missing. + NETWORK_CONFIG_NOT_FOUND = 25; + + // Aborted because expected firewall configuration was missing. + FIREWALL_CONFIG_NOT_FOUND = 26; + + // Aborted because expected route configuration was missing. + ROUTE_CONFIG_NOT_FOUND = 27; + // Aborted because a PSC endpoint selection for the Google-managed service // is ambiguous (several PSC endpoints satisfy test input). GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT = 19; @@ -919,6 +1026,17 @@ message AbortInfo { // Aborted because tests with a forwarding rule as a source are not // supported. SOURCE_FORWARDING_RULE_UNSUPPORTED = 21; + + // Aborted because one of the endpoints is a non-routable IP address + // (loopback, link-local, etc). + NON_ROUTABLE_IP_ADDRESS = 22; + + // Aborted due to an unknown issue in the Google-managed project. + UNKNOWN_ISSUE_IN_GOOGLE_MANAGED_PROJECT = 30; + + // Aborted due to an unsupported configuration of the Google-managed + // project. + UNSUPPORTED_GOOGLE_MANAGED_PROJECT_CONFIG = 31; } // Causes that the analysis is aborted. @@ -927,9 +1045,11 @@ message AbortInfo { // URI of the resource that caused the abort. string resource_uri = 2; - // List of project IDs that the user has specified in the request but does - // not have permission to access network configs. Analysis is aborted in this - // case with the PERMISSION_DENIED cause. + // IP address that caused the abort. + string ip_address = 4 [(google.api.field_info).format = IPV4_OR_IPV6]; + + // List of project IDs the user specified in the request but lacks access to. + // In this case, analysis is aborted with the PERMISSION_DENIED cause. repeated string projects_missing_permission = 3; } @@ -953,7 +1073,7 @@ message DropInfo { // tracking. FIREWALL_RULE = 3; - // Dropped due to no routes. + // Dropped due to no matching routes. NO_ROUTE = 4; // Dropped due to invalid route. Route's next hop is a blackhole. @@ -961,16 +1081,53 @@ message DropInfo { // Packet is sent to a wrong (unintended) network. Example: you trace a // packet from VM1:Network1 to VM2:Network2, however, the route configured - // in Network1 sends the packet destined for VM2's IP addresss to Network3. + // in Network1 sends the packet destined for VM2's IP address to Network3. ROUTE_WRONG_NETWORK = 6; + // Route's next hop IP address cannot be resolved to a GCP resource. + ROUTE_NEXT_HOP_IP_ADDRESS_NOT_RESOLVED = 42; + + // Route's next hop resource is not found. + ROUTE_NEXT_HOP_RESOURCE_NOT_FOUND = 43; + + // Route's next hop instance doesn't have a NIC in the route's network. + ROUTE_NEXT_HOP_INSTANCE_WRONG_NETWORK = 49; + + // Route's next hop IP address is not a primary IP address of the next hop + // instance. + ROUTE_NEXT_HOP_INSTANCE_NON_PRIMARY_IP = 50; + + // Route's next hop forwarding rule doesn't match next hop IP address. + ROUTE_NEXT_HOP_FORWARDING_RULE_IP_MISMATCH = 51; + + // Route's next hop VPN tunnel is down (does not have valid IKE SAs). + ROUTE_NEXT_HOP_VPN_TUNNEL_NOT_ESTABLISHED = 52; + + // Route's next hop forwarding rule type is invalid (it's not a forwarding + // rule of the internal passthrough load balancer). + ROUTE_NEXT_HOP_FORWARDING_RULE_TYPE_INVALID = 53; + + // Packet is sent from the Internet to the private IPv6 address. + NO_ROUTE_FROM_INTERNET_TO_PRIVATE_IPV6_ADDRESS = 44; + + // The packet does not match a policy-based VPN tunnel local selector. + VPN_TUNNEL_LOCAL_SELECTOR_MISMATCH = 45; + + // The packet does not match a policy-based VPN tunnel remote selector. + VPN_TUNNEL_REMOTE_SELECTOR_MISMATCH = 46; + // Packet with internal destination address sent to the internet gateway. PRIVATE_TRAFFIC_TO_INTERNET = 7; // Instance with only an internal IP address tries to access Google API and - // services, but private Google access is not enabled. + // services, but private Google access is not enabled in the subnet. PRIVATE_GOOGLE_ACCESS_DISALLOWED = 8; + // Source endpoint tries to access Google API and services through the VPN + // tunnel to another network, but Private Google Access needs to be enabled + // in the source endpoint network. + PRIVATE_GOOGLE_ACCESS_VIA_VPN_TUNNEL_UNSUPPORTED = 47; + // Instance with only an internal IP address tries to access external hosts, // but Cloud NAT is not enabled in the subnet, unless special configurations // on a VM allow this connection. @@ -985,10 +1142,6 @@ message DropInfo { // Forwarding rule's protocol and ports do not match the packet header. FORWARDING_RULE_MISMATCH = 11; - // Packet could be dropped because it was sent from a different region - // to a regional forwarding without global access. - FORWARDING_RULE_REGION_MISMATCH = 25; - // Forwarding rule does not have backends configured. FORWARDING_RULE_NO_INSTANCES = 12; @@ -1084,10 +1237,46 @@ message DropInfo { // state. VPC_CONNECTOR_NOT_RUNNING = 24; + // Packet could be dropped because it was sent from a different region + // to a regional forwarding without global access. + FORWARDING_RULE_REGION_MISMATCH = 25; + // The Private Service Connect endpoint is in a project that is not approved // to connect to the service. PSC_CONNECTION_NOT_ACCEPTED = 26; + // The packet is sent to the Private Service Connect endpoint over the + // peering, but [it's not + // supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises). + PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK = 41; + + // The packet is sent to the Private Service Connect backend (network + // endpoint group), but the producer PSC forwarding rule does not have + // global access enabled. + PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS = 48; + + // The packet is sent to the Private Service Connect backend (network + // endpoint group), but the producer PSC forwarding rule has multiple ports + // specified. + PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS = 54; + + // The packet is sent to the Private Service Connect backend (network + // endpoint group) targeting a Cloud SQL service attachment, but this + // configuration is not supported. + CLOUD_SQL_PSC_NEG_UNSUPPORTED = 58; + + // No NAT subnets are defined for the PSC service attachment. + NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT = 57; + + // The packet sent from the hybrid NEG proxy matches a non-dynamic route, + // but such a configuration is not supported. + HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED = 55; + + // The packet sent from the hybrid NEG proxy matches a dynamic route with a + // next hop in a different region, but such a configuration is not + // supported. + HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED = 56; + // Packet sent from a Cloud Run revision that is not ready. CLOUD_RUN_REVISION_NOT_READY = 29; @@ -1097,6 +1286,12 @@ message DropInfo { // Packet sent to a load balancer, which requires a proxy-only subnet and // the subnet is not found. LOAD_BALANCER_HAS_NO_PROXY_SUBNET = 39; + + // Packet sent to Cloud Nat without active NAT IPs. + CLOUD_NAT_NO_ADDRESSES = 40; + + // Packet is stuck in a routing loop. + ROUTING_LOOP = 59; } // Cause that the packet is dropped. @@ -1104,6 +1299,15 @@ message DropInfo { // URI of the resource that caused the drop. string resource_uri = 2; + + // Source IP address of the dropped packet (if relevant). + string source_ip = 3; + + // Destination IP address of the dropped packet (if relevant). + string destination_ip = 4; + + // Region of the dropped packet (if relevant). + string region = 5; } // For display only. Metadata associated with a Google Kubernetes Engine (GKE) @@ -1201,6 +1405,176 @@ message VpcConnectorInfo { string location = 3; } +// For display only. Metadata associated with NAT. +message NatInfo { + // Types of NAT. + enum Type { + // Type is unspecified. + TYPE_UNSPECIFIED = 0; + + // From Compute Engine instance's internal address to external address. + INTERNAL_TO_EXTERNAL = 1; + + // From Compute Engine instance's external address to internal address. + EXTERNAL_TO_INTERNAL = 2; + + // Cloud NAT Gateway. + CLOUD_NAT = 3; + + // Private service connect NAT. + PRIVATE_SERVICE_CONNECT = 4; + } + + // Type of NAT. + Type type = 1; + + // IP protocol in string format, for example: "TCP", "UDP", "ICMP". + string protocol = 2; + + // URI of the network where NAT translation takes place. + string network_uri = 3; + + // Source IP address before NAT translation. + string old_source_ip = 4; + + // Source IP address after NAT translation. + string new_source_ip = 5; + + // Destination IP address before NAT translation. + string old_destination_ip = 6; + + // Destination IP address after NAT translation. + string new_destination_ip = 7; + + // Source port before NAT translation. Only valid when protocol is TCP or UDP. + int32 old_source_port = 8; + + // Source port after NAT translation. Only valid when protocol is TCP or UDP. + int32 new_source_port = 9; + + // Destination port before NAT translation. Only valid when protocol is TCP or + // UDP. + int32 old_destination_port = 10; + + // Destination port after NAT translation. Only valid when protocol is TCP or + // UDP. + int32 new_destination_port = 11; + + // Uri of the Cloud Router. Only valid when type is CLOUD_NAT. + string router_uri = 12; + + // The name of Cloud NAT Gateway. Only valid when type is CLOUD_NAT. + string nat_gateway_name = 13; +} + +// For display only. Metadata associated with ProxyConnection. +message ProxyConnectionInfo { + // IP protocol in string format, for example: "TCP", "UDP", "ICMP". + string protocol = 1; + + // Source IP address of an original connection. + string old_source_ip = 2; + + // Source IP address of a new connection. + string new_source_ip = 3; + + // Destination IP address of an original connection + string old_destination_ip = 4; + + // Destination IP address of a new connection. + string new_destination_ip = 5; + + // Source port of an original connection. Only valid when protocol is TCP or + // UDP. + int32 old_source_port = 6; + + // Source port of a new connection. Only valid when protocol is TCP or UDP. + int32 new_source_port = 7; + + // Destination port of an original connection. Only valid when protocol is TCP + // or UDP. + int32 old_destination_port = 8; + + // Destination port of a new connection. Only valid when protocol is TCP or + // UDP. + int32 new_destination_port = 9; + + // Uri of proxy subnet. + string subnet_uri = 10; + + // URI of the network where connection is proxied. + string network_uri = 11; +} + +// For display only. Metadata associated with the load balancer backend. +message LoadBalancerBackendInfo { + // Health check firewalls configuration state enum. + enum HealthCheckFirewallsConfigState { + // Configuration state unspecified. It usually means that the backend has + // no health check attached, or there was an unexpected configuration error + // preventing Connectivity tests from verifying health check configuration. + HEALTH_CHECK_FIREWALLS_CONFIG_STATE_UNSPECIFIED = 0; + + // Firewall rules (policies) allowing health check traffic from all required + // IP ranges to the backend are configured. + FIREWALLS_CONFIGURED = 1; + + // Firewall rules (policies) allow health check traffic only from a part of + // required IP ranges. + FIREWALLS_PARTIALLY_CONFIGURED = 2; + + // Firewall rules (policies) deny health check traffic from all required + // IP ranges to the backend. + FIREWALLS_NOT_CONFIGURED = 3; + + // The network contains firewall rules of unsupported types, so Connectivity + // tests were not able to verify health check configuration status. Please + // refer to the documentation for the list of unsupported configurations: + // https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs + FIREWALLS_UNSUPPORTED = 4; + } + + // Display name of the backend. For example, it might be an instance name for + // the instance group backends, or an IP address and port for zonal network + // endpoint group backends. + string name = 1; + + // URI of the backend instance (if applicable). Populated for instance group + // backends, and zonal NEG backends. + string instance_uri = 2; + + // URI of the backend service this backend belongs to (if applicable). + string backend_service_uri = 3; + + // URI of the instance group this backend belongs to (if applicable). + string instance_group_uri = 4; + + // URI of the network endpoint group this backend belongs to (if applicable). + string network_endpoint_group_uri = 5; + + // URI of the backend bucket this backend targets (if applicable). + string backend_bucket_uri = 8; + + // URI of the PSC service attachment this PSC NEG backend targets (if + // applicable). + string psc_service_attachment_uri = 9; + + // PSC Google API target this PSC NEG backend targets (if applicable). + string psc_google_api_target = 10; + + // URI of the health check attached to this backend (if applicable). + string health_check_uri = 6; + + // Output only. Health check firewalls configuration state for the backend. + // This is a result of the static firewall analysis (verifying that health + // check traffic from required IP ranges to the backend is allowed or not). + // The backend might still be unhealthy even if these firewalls are + // configured. Please refer to the documentation for more information: + // https://cloud.google.com/load-balancing/docs/firewall-rules + HealthCheckFirewallsConfigState health_check_firewalls_config_state = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Type of a load balancer. For more information, see [Summary of Google Cloud // load // balancers](https://cloud.google.com/load-balancing/docs/load-balancing-overview#summary-of-google-cloud-load-balancers). @@ -1239,3 +1613,9 @@ enum LoadBalancerType { // Internal TCP/UDP load balancer. TCP_UDP_INTERNAL_LOAD_BALANCER = 10; } + +// For display only. Metadata associated with Storage Bucket. +message StorageBucketInfo { + // Cloud Storage Bucket name. + string bucket = 1; +} diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/BUILD.bazel index c99e809a6..0ef6462dd 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "networkmanagement_proto", @@ -29,6 +32,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -43,12 +47,15 @@ proto_library_with_info( deps = [ ":networkmanagement_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + "//google/iam/v1:iam_policy_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -72,23 +79,30 @@ java_grpc_library( java_gapic_library( name = "networkmanagement_java_gapic", srcs = [":networkmanagement_proto_with_info"], + gapic_yaml = None, grpc_service_config = "networkmanagement_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "networkmanagement_v1beta1.yaml", test_deps = [ ":networkmanagement_java_grpc", + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", ], transport = "grpc+rest", deps = [ ":networkmanagement_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", ], ) java_gapic_test( name = "networkmanagement_java_gapic_test_suite", test_classes = [ - "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientHttpJsonTest", + # This test is temporarily disabled due to the issue: + # https://github.com/googleapis/sdk-platform-java/issues/1839 + # "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientHttpJsonTest", "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientTest", ], runtime_deps = [":networkmanagement_java_gapic_test"], @@ -110,6 +124,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -141,6 +156,8 @@ go_gapic_library( transport = "grpc+rest", deps = [ ":networkmanagement_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -162,10 +179,12 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -175,6 +194,9 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "networkmanagement_v1beta1.yaml", transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], ) py_test( @@ -198,6 +220,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -214,10 +237,13 @@ php_gapic_library( name = "networkmanagement_php_gapic", srcs = [":networkmanagement_proto_with_info"], grpc_service_config = "networkmanagement_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "networkmanagement_v1beta1.yaml", transport = "grpc+rest", - deps = [":networkmanagement_php_proto"], + deps = [ + ":networkmanagement_php_proto", + ], ) # Open Source Packages @@ -232,6 +258,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -262,6 +289,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -285,9 +313,9 @@ ruby_cloud_gapic_library( name = "networkmanagement_ruby_gapic", srcs = [":networkmanagement_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-network_management-v1beta1", - "ruby-cloud-api-shortname=networkmanagement", "ruby-cloud-api-id=networkmanagement.googleapis.com", + "ruby-cloud-api-shortname=networkmanagement", + "ruby-cloud-gem-name=google-cloud-network_management-v1beta1", "ruby-cloud-product-url=https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest", ], grpc_service_config = "networkmanagement_grpc_service_config.json", @@ -315,6 +343,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -325,6 +354,7 @@ load( csharp_proto_library( name = "networkmanagement_csharp_proto", + extra_opts = [], deps = [":networkmanagement_proto"], ) @@ -361,4 +391,21 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "networkmanagement_cc_proto", + deps = [":networkmanagement_proto"], +) + +cc_grpc_library( + name = "networkmanagement_cc_grpc", + srcs = [":networkmanagement_proto"], + grpc_only = True, + deps = [":networkmanagement_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/connectivity_test.proto b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/connectivity_test.proto index b565eb345..3ba30550e 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/connectivity_test.proto +++ b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/connectivity_test.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -122,6 +122,10 @@ message ConnectivityTest { // existing test. ProbingDetails probing_details = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Whether the test should skip firewall checking. + // If not provided, we assume false. + bool bypass_firewall_checks = 17; } // Source or destination of the Connectivity Test. @@ -186,9 +190,6 @@ message Endpoint { } // The IP address of the endpoint, which can be an external or internal IP. - // An IPv6 address is only allowed when the test's destination is a - // [global load balancer - // VIP](https://cloud.google.com/load-balancing/docs/load-balancing-overview). string ip_address = 1; // The IP protocol port of the endpoint. @@ -280,7 +281,9 @@ message ReachabilityDetails { // The source and destination endpoints do not uniquely identify // the test location in the network, and the reachability result contains // multiple traces. For some traces, a packet could be delivered, and for - // others, it would not be. + // others, it would not be. This result is also assigned to + // configuration analysis of return path if on its own it should be + // REACHABLE, but configuration analysis of forward path is AMBIGUOUS. AMBIGUOUS = 4; // The configuration analysis did not complete. Possible reasons are: diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml index 95d04c677..813c89cef 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml +++ b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml @@ -4,7 +4,10 @@ name: networkmanagement.googleapis.com title: Network Management API apis: +- name: google.cloud.location.Locations - name: google.cloud.networkmanagement.v1beta1.ReachabilityService +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations types: - name: google.cloud.networkmanagement.v1beta1.OperationMetadata @@ -43,23 +46,6 @@ documentation: permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning. -backend: - rules: - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: google.cloud.networkmanagement.v1beta1.ReachabilityService.GetConnectivityTest - deadline: 60.0 - - selector: google.cloud.networkmanagement.v1beta1.ReachabilityService.ListConnectivityTests - deadline: 60.0 - - selector: 'google.iam.v1.IAMPolicy.*' - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 10.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/reachability.proto b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/reachability.proto index 6c642e51e..8fbb70c48 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/reachability.proto +++ b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/reachability.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ package google.cloud.networkmanagement.v1beta1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/cloud/networkmanagement/v1beta1/connectivity_test.proto"; import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -44,17 +46,20 @@ option ruby_package = "Google::Cloud::NetworkManagement::V1beta1"; // to troubleshoot connectivity issues. service ReachabilityService { option (google.api.default_host) = "networkmanagement.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; // Lists all Connectivity Tests owned by a project. - rpc ListConnectivityTests(ListConnectivityTestsRequest) returns (ListConnectivityTestsResponse) { + rpc ListConnectivityTests(ListConnectivityTestsRequest) + returns (ListConnectivityTestsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/locations/global}/connectivityTests" }; } // Gets the details of a specific Connectivity Test. - rpc GetConnectivityTest(GetConnectivityTestRequest) returns (ConnectivityTest) { + rpc GetConnectivityTest(GetConnectivityTestRequest) + returns (ConnectivityTest) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/locations/global/connectivityTests/*}" }; @@ -73,7 +78,8 @@ service ReachabilityService { // incomplete, the reachability result returns a value of // AMBIGUOUS. For more information, // see the Connectivity Test documentation. - rpc CreateConnectivityTest(CreateConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc CreateConnectivityTest(CreateConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta1/{parent=projects/*/locations/global}/connectivityTests" body: "resource" @@ -98,7 +104,8 @@ service ReachabilityService { // If the endpoint specifications in `ConnectivityTest` are incomplete, the // reachability result returns a value of `AMBIGUOUS`. See the documentation // in `ConnectivityTest` for for more details. - rpc UpdateConnectivityTest(UpdateConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc UpdateConnectivityTest(UpdateConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1beta1/{resource.name=projects/*/locations/global/connectivityTests/*}" body: "resource" @@ -121,7 +128,8 @@ service ReachabilityService { // example, specified resources are deleted in the network, or you lost // read permissions to the network configurations of listed projects), then // the reachability result returns a value of `UNKNOWN`. - rpc RerunConnectivityTest(RerunConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc RerunConnectivityTest(RerunConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta1/{name=projects/*/locations/global/connectivityTests/*}:rerun" body: "*" @@ -133,7 +141,8 @@ service ReachabilityService { } // Deletes a specific `ConnectivityTest`. - rpc DeleteConnectivityTest(DeleteConnectivityTestRequest) returns (google.longrunning.Operation) { + rpc DeleteConnectivityTest(DeleteConnectivityTestRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/locations/global/connectivityTests/*}" }; @@ -223,7 +232,8 @@ message CreateConnectivityTestRequest { message UpdateConnectivityTestRequest { // Required. Mask of fields to update. At least one path must be supplied in // this field. - google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; // Required. Only fields specified in update_mask are updated. ConnectivityTest resource = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/trace.proto b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/trace.proto index ebc53ba0d..33f76c55a 100644 --- a/third_party/googleapis/google/cloud/networkmanagement/v1beta1/trace.proto +++ b/third_party/googleapis/google/cloud/networkmanagement/v1beta1/trace.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,9 @@ syntax = "proto3"; package google.cloud.networkmanagement.v1beta1; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; + option csharp_namespace = "Google.Cloud.NetworkManagement.V1Beta1"; option go_package = "cloud.google.com/go/networkmanagement/apiv1beta1/networkmanagementpb;networkmanagementpb"; option java_multiple_files = true; @@ -49,6 +52,11 @@ message Trace { // network state machine. It is critical to preserve the order of the steps // and avoid reordering or sorting them. repeated Step steps = 2; + + // ID of trace. For forward traces, this ID is unique for each trace. For + // return traces, it matches ID of associated forward trace. A single forward + // trace can be associated with none, one or more than one return trace. + int32 forward_trace_id = 4; } // A simulated forwarding path is composed of multiple steps. @@ -68,10 +76,8 @@ message Step { // The endpoint information is populated. START_FROM_INTERNET = 2; - // Initial state: packet originating from a Google service. Some Google - // services, such as health check probers or Identity Aware Proxy use - // special routes, outside VPC routing configuration to reach Compute Engine - // Instances. + // Initial state: packet originating from a Google service. + // The google_service information is populated. START_FROM_GOOGLE_SERVICE = 27; // Initial state: packet originating from a VPC or on-premises network @@ -100,6 +106,15 @@ message Step { // A CloudRunRevisionInfo is populated with starting revision information. START_FROM_CLOUD_RUN_REVISION = 26; + // Initial state: packet originating from a Storage Bucket. Used only for + // return traces. + // The storage_bucket information is populated. + START_FROM_STORAGE_BUCKET = 29; + + // Initial state: packet originating from a published service that uses + // Private Service Connect. Used only for return traces. + START_FROM_PSC_PUBLISHED_SERVICE = 30; + // Config checking state: verify ingress firewall rule. APPLY_INGRESS_FIREWALL_RULE = 4; @@ -112,6 +127,9 @@ message Step { // Config checking state: match forwarding rule. APPLY_FORWARDING_RULE = 7; + // Config checking state: verify load balancer backend configuration. + ANALYZE_LOAD_BALANCER_BACKEND = 28; + // Config checking state: packet sent or received under foreign IP // address and allowed. SPOOFING_APPROVED = 8; @@ -120,10 +138,14 @@ message Step { ARRIVE_AT_INSTANCE = 9; // Forwarding state: arriving at a Compute Engine internal load balancer. - ARRIVE_AT_INTERNAL_LOAD_BALANCER = 10; + // Deprecated in favor of the `ANALYZE_LOAD_BALANCER_BACKEND` state, not + // used in new tests. + ARRIVE_AT_INTERNAL_LOAD_BALANCER = 10 [deprecated = true]; // Forwarding state: arriving at a Compute Engine external load balancer. - ARRIVE_AT_EXTERNAL_LOAD_BALANCER = 11; + // Deprecated in favor of the `ANALYZE_LOAD_BALANCER_BACKEND` state, not + // used in new tests. + ARRIVE_AT_EXTERNAL_LOAD_BALANCER = 11 [deprecated = true]; // Forwarding state: arriving at a Cloud VPN gateway. ARRIVE_AT_VPN_GATEWAY = 12; @@ -219,8 +241,9 @@ message Step { // Display information of the final state "drop" and reason. DropInfo drop = 15; - // Display information of the load balancers. - LoadBalancerInfo load_balancer = 16; + // Display information of the load balancers. Deprecated in favor of the + // `load_balancer_backend_info` field, not used in new tests. + LoadBalancerInfo load_balancer = 16 [deprecated = true]; // Display information of a Google Cloud network. NetworkInfo network = 17; @@ -239,6 +262,18 @@ message Step { // Display information of a Cloud Run revision. CloudRunRevisionInfo cloud_run_revision = 23; + + // Display information of a NAT. + NatInfo nat = 25; + + // Display information of a ProxyConnection. + ProxyConnectionInfo proxy_connection = 26; + + // Display information of a specific load balancer backend. + LoadBalancerBackendInfo load_balancer_backend_info = 27; + + // Display information of a Storage Bucket. Used only for return traces. + StorageBucketInfo storage_bucket = 28; } } @@ -319,6 +354,18 @@ message FirewallInfo { // For details, see [Regional network firewall // policies](https://cloud.google.com/firewall/docs/regional-firewall-policies). NETWORK_REGIONAL_FIREWALL_POLICY_RULE = 6; + + // Firewall policy rule containing attributes not yet supported in + // Connectivity tests. Firewall analysis is skipped if such a rule can + // potentially be matched. Please see the [list of unsupported + // configurations](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs). + UNSUPPORTED_FIREWALL_POLICY_RULE = 100; + + // Tracking state for response traffic created when request traffic goes + // through allow firewall rule. + // For details, see [firewall rules + // specifications](https://cloud.google.com/firewall/docs/firewalls#specifications) + TRACKING_STATE = 101; } // The display name of the VPC firewall rule. This field is not applicable @@ -332,7 +379,7 @@ message FirewallInfo { // Possible values: INGRESS, EGRESS string direction = 3; - // Possible values: ALLOW, DENY + // Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP string action = 4; // The priority of the firewall rule. @@ -507,7 +554,7 @@ message RouteInfo { message GoogleServiceInfo { // Recognized type of a Google Service. enum GoogleServiceType { - // Unspecified Google Service. Includes most of Google APIs and services. + // Unspecified Google Service. GOOGLE_SERVICE_TYPE_UNSPECIFIED = 0; // Identity aware proxy. @@ -525,6 +572,17 @@ message GoogleServiceInfo { // https://cloud.google.com/dns/docs/zones/forwarding-zones#firewall-rules // https://cloud.google.com/dns/docs/policies#firewall-rules CLOUD_DNS = 3; + + // private.googleapis.com and restricted.googleapis.com + GOOGLE_API = 4; + + // Google API via Private Service Connect. + // https://cloud.google.com/vpc/docs/configure-private-service-connect-apis + GOOGLE_API_PSC = 5; + + // Google API via VPC Service Controls. + // https://cloud.google.com/vpc/docs/configure-private-service-connect-apis + GOOGLE_API_VPC_SC = 6; } // Source IP address. @@ -599,8 +657,10 @@ message LoadBalancerInfo { // Type of the load balancer. LoadBalancerType load_balancer_type = 1; - // URI of the health check for the load balancer. - string health_check_uri = 2; + // URI of the health check for the load balancer. Deprecated and no longer + // populated as different load balancer backends might have different health + // checks. + string health_check_uri = 2 [deprecated = true]; // Information for the loadbalancer backends. repeated LoadBalancerBackend backends = 3; @@ -781,6 +841,21 @@ message DeliverInfo { // Target is a serverless network endpoint group. SERVERLESS_NEG = 9; + + // Target is a Cloud Storage bucket. + STORAGE_BUCKET = 10; + + // Target is a private network. Used only for return traces. + PRIVATE_NETWORK = 11; + + // Target is a Cloud Function. Used only for return traces. + CLOUD_FUNCTION = 12; + + // Target is a App Engine service version. Used only for return traces. + APP_ENGINE_VERSION = 13; + + // Target is a Cloud Run revision. Used only for return traces. + CLOUD_RUN_REVISION = 14; } // Target type where the packet is delivered to. @@ -788,6 +863,9 @@ message DeliverInfo { // URI of the resource that the packet is delivered to. string resource_uri = 2; + + // IP address of the target (if applicable). + string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; } // Details of the final state "forward" and associated resource. @@ -807,19 +885,22 @@ message ForwardInfo { INTERCONNECT = 3; // Forwarded to a Google Kubernetes Engine Container cluster master. - GKE_MASTER = 4; + GKE_MASTER = 4 [deprecated = true]; // Forwarded to the next hop of a custom route imported from a peering VPC. IMPORTED_CUSTOM_ROUTE_NEXT_HOP = 5; // Forwarded to a Cloud SQL instance. - CLOUD_SQL_INSTANCE = 6; + CLOUD_SQL_INSTANCE = 6 [deprecated = true]; // Forwarded to a VPC network in another project. ANOTHER_PROJECT = 7; // Forwarded to an NCC Hub. NCC_HUB = 8; + + // Forwarded to a router appliance. + ROUTER_APPLIANCE = 9; } // Target type where this packet is forwarded to. @@ -827,6 +908,9 @@ message ForwardInfo { // URI of the resource that the packet is forwarded to. string resource_uri = 2; + + // IP address of the target (if applicable). + string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; } // Details of the final state "abort" and associated resource. @@ -836,63 +920,78 @@ message AbortInfo { // Cause is unspecified. CAUSE_UNSPECIFIED = 0; - // Aborted due to unknown network. - // The reachability analysis cannot proceed because the user does not have - // access to the host project's network configurations, including firewall - // rules and routes. This happens when the project is a service project and - // the endpoints being traced are in the host project's network. - UNKNOWN_NETWORK = 1; + // Aborted due to unknown network. Deprecated, not used in the new tests. + UNKNOWN_NETWORK = 1 [deprecated = true]; - // Aborted because the IP address(es) are unknown. + // Aborted because no project information can be derived from the test + // input. Deprecated, not used in the new tests. + UNKNOWN_PROJECT = 3 [deprecated = true]; + + // Aborted because traffic is sent from a public IP to an instance without + // an external IP. Deprecated, not used in the new tests. + NO_EXTERNAL_IP = 7 [deprecated = true]; + + // Aborted because none of the traces matches destination information + // specified in the input test request. Deprecated, not used in the new + // tests. + UNINTENDED_DESTINATION = 8 [deprecated = true]; + + // Aborted because the source endpoint could not be found. Deprecated, not + // used in the new tests. + SOURCE_ENDPOINT_NOT_FOUND = 11 [deprecated = true]; + + // Aborted because the source network does not match the source endpoint. + // Deprecated, not used in the new tests. + MISMATCHED_SOURCE_NETWORK = 12 [deprecated = true]; + + // Aborted because the destination endpoint could not be found. Deprecated, + // not used in the new tests. + DESTINATION_ENDPOINT_NOT_FOUND = 13 [deprecated = true]; + + // Aborted because the destination network does not match the destination + // endpoint. Deprecated, not used in the new tests. + MISMATCHED_DESTINATION_NETWORK = 14 [deprecated = true]; + + // Aborted because no endpoint with the packet's destination IP address is + // found. UNKNOWN_IP = 2; - // Aborted because no project information can be derived from the test - // input. - UNKNOWN_PROJECT = 3; + // Aborted because the source IP address doesn't belong to any of the + // subnets of the source VPC network. + SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK = 23; - // Aborted because the user lacks the permission to access all or part of - // the network configurations required to run the test. + // Aborted because user lacks permission to access all or part of the + // network configurations required to run the test. PERMISSION_DENIED = 4; - // Aborted because no valid source endpoint is derived from the input test - // request. - NO_SOURCE_LOCATION = 5; + // Aborted because user lacks permission to access Cloud NAT configs + // required to run the test. + PERMISSION_DENIED_NO_CLOUD_NAT_CONFIGS = 28; - // Aborted because the source and/or destination endpoint specified in - // the test are invalid. The possible reasons that an endpoint is - // invalid include: malformed IP address; nonexistent instance or - // network URI; IP address not in the range of specified network URI; and - // instance not owning the network interface in the specified network. - INVALID_ARGUMENT = 6; + // Aborted because user lacks permission to access Network endpoint group + // endpoint configs required to run the test. + PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS = 29; - // Aborted because traffic is sent from a public IP to an instance without - // an external IP. - NO_EXTERNAL_IP = 7; + // Aborted because no valid source or destination endpoint is derived from + // the input test request. + NO_SOURCE_LOCATION = 5; - // Aborted because none of the traces matches destination information - // specified in the input test request. - UNINTENDED_DESTINATION = 8; + // Aborted because the source or destination endpoint specified in + // the request is invalid. Some examples: + // - The request might contain malformed resource URI, project ID, or IP + // address. + // - The request might contain inconsistent information (for example, the + // request might include both the instance and the network, but the instance + // might not have a NIC in that network). + INVALID_ARGUMENT = 6; - // Aborted because the number of steps in the trace exceeding a certain - // limit which may be caused by routing loop. + // Aborted because the number of steps in the trace exceeds a certain + // limit. It might be caused by a routing loop. TRACE_TOO_LONG = 9; // Aborted due to internal server error. INTERNAL_ERROR = 10; - // Aborted because the source endpoint could not be found. - SOURCE_ENDPOINT_NOT_FOUND = 11; - - // Aborted because the source network does not match the source endpoint. - MISMATCHED_SOURCE_NETWORK = 12; - - // Aborted because the destination endpoint could not be found. - DESTINATION_ENDPOINT_NOT_FOUND = 13; - - // Aborted because the destination network does not match the destination - // endpoint. - MISMATCHED_DESTINATION_NETWORK = 14; - // Aborted because the test scenario is not supported. UNSUPPORTED = 15; @@ -908,6 +1007,18 @@ message AbortInfo { // Aborted because expected resource configuration was missing. RESOURCE_CONFIG_NOT_FOUND = 18; + // Aborted because expected VM instance configuration was missing. + VM_INSTANCE_CONFIG_NOT_FOUND = 24; + + // Aborted because expected network configuration was missing. + NETWORK_CONFIG_NOT_FOUND = 25; + + // Aborted because expected firewall configuration was missing. + FIREWALL_CONFIG_NOT_FOUND = 26; + + // Aborted because expected route configuration was missing. + ROUTE_CONFIG_NOT_FOUND = 27; + // Aborted because a PSC endpoint selection for the Google-managed service // is ambiguous (several PSC endpoints satisfy test input). GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT = 19; @@ -919,6 +1030,17 @@ message AbortInfo { // Aborted because tests with a forwarding rule as a source are not // supported. SOURCE_FORWARDING_RULE_UNSUPPORTED = 21; + + // Aborted because one of the endpoints is a non-routable IP address + // (loopback, link-local, etc). + NON_ROUTABLE_IP_ADDRESS = 22; + + // Aborted due to an unknown issue in the Google-managed project. + UNKNOWN_ISSUE_IN_GOOGLE_MANAGED_PROJECT = 30; + + // Aborted due to an unsupported configuration of the Google-managed + // project. + UNSUPPORTED_GOOGLE_MANAGED_PROJECT_CONFIG = 31; } // Causes that the analysis is aborted. @@ -927,9 +1049,11 @@ message AbortInfo { // URI of the resource that caused the abort. string resource_uri = 2; - // List of project IDs that the user has specified in the request but does - // not have permission to access network configs. Analysis is aborted in this - // case with the PERMISSION_DENIED cause. + // IP address that caused the abort. + string ip_address = 4 [(google.api.field_info).format = IPV4_OR_IPV6]; + + // List of project IDs the user specified in the request but lacks access to. + // In this case, analysis is aborted with the PERMISSION_DENIED cause. repeated string projects_missing_permission = 3; } @@ -953,7 +1077,7 @@ message DropInfo { // tracking. FIREWALL_RULE = 3; - // Dropped due to no routes. + // Dropped due to no matching routes. NO_ROUTE = 4; // Dropped due to invalid route. Route's next hop is a blackhole. @@ -961,16 +1085,53 @@ message DropInfo { // Packet is sent to a wrong (unintended) network. Example: you trace a // packet from VM1:Network1 to VM2:Network2, however, the route configured - // in Network1 sends the packet destined for VM2's IP addresss to Network3. + // in Network1 sends the packet destined for VM2's IP address to Network3. ROUTE_WRONG_NETWORK = 6; + // Route's next hop IP address cannot be resolved to a GCP resource. + ROUTE_NEXT_HOP_IP_ADDRESS_NOT_RESOLVED = 42; + + // Route's next hop resource is not found. + ROUTE_NEXT_HOP_RESOURCE_NOT_FOUND = 43; + + // Route's next hop instance doesn't have a NIC in the route's network. + ROUTE_NEXT_HOP_INSTANCE_WRONG_NETWORK = 49; + + // Route's next hop IP address is not a primary IP address of the next hop + // instance. + ROUTE_NEXT_HOP_INSTANCE_NON_PRIMARY_IP = 50; + + // Route's next hop forwarding rule doesn't match next hop IP address. + ROUTE_NEXT_HOP_FORWARDING_RULE_IP_MISMATCH = 51; + + // Route's next hop VPN tunnel is down (does not have valid IKE SAs). + ROUTE_NEXT_HOP_VPN_TUNNEL_NOT_ESTABLISHED = 52; + + // Route's next hop forwarding rule type is invalid (it's not a forwarding + // rule of the internal passthrough load balancer). + ROUTE_NEXT_HOP_FORWARDING_RULE_TYPE_INVALID = 53; + + // Packet is sent from the Internet to the private IPv6 address. + NO_ROUTE_FROM_INTERNET_TO_PRIVATE_IPV6_ADDRESS = 44; + + // The packet does not match a policy-based VPN tunnel local selector. + VPN_TUNNEL_LOCAL_SELECTOR_MISMATCH = 45; + + // The packet does not match a policy-based VPN tunnel remote selector. + VPN_TUNNEL_REMOTE_SELECTOR_MISMATCH = 46; + // Packet with internal destination address sent to the internet gateway. PRIVATE_TRAFFIC_TO_INTERNET = 7; // Instance with only an internal IP address tries to access Google API and - // services, but private Google access is not enabled. + // services, but private Google access is not enabled in the subnet. PRIVATE_GOOGLE_ACCESS_DISALLOWED = 8; + // Source endpoint tries to access Google API and services through the VPN + // tunnel to another network, but Private Google Access needs to be enabled + // in the source endpoint network. + PRIVATE_GOOGLE_ACCESS_VIA_VPN_TUNNEL_UNSUPPORTED = 47; + // Instance with only an internal IP address tries to access external hosts, // but Cloud NAT is not enabled in the subnet, unless special configurations // on a VM allow this connection. @@ -985,10 +1146,6 @@ message DropInfo { // Forwarding rule's protocol and ports do not match the packet header. FORWARDING_RULE_MISMATCH = 11; - // Packet could be dropped because it was sent from a different region - // to a regional forwarding without global access. - FORWARDING_RULE_REGION_MISMATCH = 25; - // Forwarding rule does not have backends configured. FORWARDING_RULE_NO_INSTANCES = 12; @@ -1084,10 +1241,46 @@ message DropInfo { // state. VPC_CONNECTOR_NOT_RUNNING = 24; + // Packet could be dropped because it was sent from a different region + // to a regional forwarding without global access. + FORWARDING_RULE_REGION_MISMATCH = 25; + // The Private Service Connect endpoint is in a project that is not approved // to connect to the service. PSC_CONNECTION_NOT_ACCEPTED = 26; + // The packet is sent to the Private Service Connect endpoint over the + // peering, but [it's not + // supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises). + PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK = 41; + + // The packet is sent to the Private Service Connect backend (network + // endpoint group), but the producer PSC forwarding rule does not have + // global access enabled. + PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS = 48; + + // The packet is sent to the Private Service Connect backend (network + // endpoint group), but the producer PSC forwarding rule has multiple ports + // specified. + PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS = 54; + + // The packet is sent to the Private Service Connect backend (network + // endpoint group) targeting a Cloud SQL service attachment, but this + // configuration is not supported. + CLOUD_SQL_PSC_NEG_UNSUPPORTED = 58; + + // No NAT subnets are defined for the PSC service attachment. + NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT = 57; + + // The packet sent from the hybrid NEG proxy matches a non-dynamic route, + // but such a configuration is not supported. + HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED = 55; + + // The packet sent from the hybrid NEG proxy matches a dynamic route with a + // next hop in a different region, but such a configuration is not + // supported. + HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED = 56; + // Packet sent from a Cloud Run revision that is not ready. CLOUD_RUN_REVISION_NOT_READY = 29; @@ -1097,6 +1290,12 @@ message DropInfo { // Packet sent to a load balancer, which requires a proxy-only subnet and // the subnet is not found. LOAD_BALANCER_HAS_NO_PROXY_SUBNET = 39; + + // Packet sent to Cloud Nat without active NAT IPs. + CLOUD_NAT_NO_ADDRESSES = 40; + + // Packet is stuck in a routing loop. + ROUTING_LOOP = 59; } // Cause that the packet is dropped. @@ -1104,6 +1303,15 @@ message DropInfo { // URI of the resource that caused the drop. string resource_uri = 2; + + // Source IP address of the dropped packet (if relevant). + string source_ip = 3; + + // Destination IP address of the dropped packet (if relevant). + string destination_ip = 4; + + // Region of the dropped packet (if relevant). + string region = 5; } // For display only. Metadata associated with a Google Kubernetes Engine (GKE) @@ -1201,6 +1409,176 @@ message VpcConnectorInfo { string location = 3; } +// For display only. Metadata associated with NAT. +message NatInfo { + // Types of NAT. + enum Type { + // Type is unspecified. + TYPE_UNSPECIFIED = 0; + + // From Compute Engine instance's internal address to external address. + INTERNAL_TO_EXTERNAL = 1; + + // From Compute Engine instance's external address to internal address. + EXTERNAL_TO_INTERNAL = 2; + + // Cloud NAT Gateway. + CLOUD_NAT = 3; + + // Private service connect NAT. + PRIVATE_SERVICE_CONNECT = 4; + } + + // Type of NAT. + Type type = 1; + + // IP protocol in string format, for example: "TCP", "UDP", "ICMP". + string protocol = 2; + + // URI of the network where NAT translation takes place. + string network_uri = 3; + + // Source IP address before NAT translation. + string old_source_ip = 4; + + // Source IP address after NAT translation. + string new_source_ip = 5; + + // Destination IP address before NAT translation. + string old_destination_ip = 6; + + // Destination IP address after NAT translation. + string new_destination_ip = 7; + + // Source port before NAT translation. Only valid when protocol is TCP or UDP. + int32 old_source_port = 8; + + // Source port after NAT translation. Only valid when protocol is TCP or UDP. + int32 new_source_port = 9; + + // Destination port before NAT translation. Only valid when protocol is TCP or + // UDP. + int32 old_destination_port = 10; + + // Destination port after NAT translation. Only valid when protocol is TCP or + // UDP. + int32 new_destination_port = 11; + + // Uri of the Cloud Router. Only valid when type is CLOUD_NAT. + string router_uri = 12; + + // The name of Cloud NAT Gateway. Only valid when type is CLOUD_NAT. + string nat_gateway_name = 13; +} + +// For display only. Metadata associated with ProxyConnection. +message ProxyConnectionInfo { + // IP protocol in string format, for example: "TCP", "UDP", "ICMP". + string protocol = 1; + + // Source IP address of an original connection. + string old_source_ip = 2; + + // Source IP address of a new connection. + string new_source_ip = 3; + + // Destination IP address of an original connection + string old_destination_ip = 4; + + // Destination IP address of a new connection. + string new_destination_ip = 5; + + // Source port of an original connection. Only valid when protocol is TCP or + // UDP. + int32 old_source_port = 6; + + // Source port of a new connection. Only valid when protocol is TCP or UDP. + int32 new_source_port = 7; + + // Destination port of an original connection. Only valid when protocol is TCP + // or UDP. + int32 old_destination_port = 8; + + // Destination port of a new connection. Only valid when protocol is TCP or + // UDP. + int32 new_destination_port = 9; + + // Uri of proxy subnet. + string subnet_uri = 10; + + // URI of the network where connection is proxied. + string network_uri = 11; +} + +// For display only. Metadata associated with the load balancer backend. +message LoadBalancerBackendInfo { + // Health check firewalls configuration state enum. + enum HealthCheckFirewallsConfigState { + // Configuration state unspecified. It usually means that the backend has + // no health check attached, or there was an unexpected configuration error + // preventing Connectivity tests from verifying health check configuration. + HEALTH_CHECK_FIREWALLS_CONFIG_STATE_UNSPECIFIED = 0; + + // Firewall rules (policies) allowing health check traffic from all required + // IP ranges to the backend are configured. + FIREWALLS_CONFIGURED = 1; + + // Firewall rules (policies) allow health check traffic only from a part of + // required IP ranges. + FIREWALLS_PARTIALLY_CONFIGURED = 2; + + // Firewall rules (policies) deny health check traffic from all required + // IP ranges to the backend. + FIREWALLS_NOT_CONFIGURED = 3; + + // The network contains firewall rules of unsupported types, so Connectivity + // tests were not able to verify health check configuration status. Please + // refer to the documentation for the list of unsupported configurations: + // https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs + FIREWALLS_UNSUPPORTED = 4; + } + + // Display name of the backend. For example, it might be an instance name for + // the instance group backends, or an IP address and port for zonal network + // endpoint group backends. + string name = 1; + + // URI of the backend instance (if applicable). Populated for instance group + // backends, and zonal NEG backends. + string instance_uri = 2; + + // URI of the backend service this backend belongs to (if applicable). + string backend_service_uri = 3; + + // URI of the instance group this backend belongs to (if applicable). + string instance_group_uri = 4; + + // URI of the network endpoint group this backend belongs to (if applicable). + string network_endpoint_group_uri = 5; + + // URI of the backend bucket this backend targets (if applicable). + string backend_bucket_uri = 8; + + // URI of the PSC service attachment this PSC NEG backend targets (if + // applicable). + string psc_service_attachment_uri = 9; + + // PSC Google API target this PSC NEG backend targets (if applicable). + string psc_google_api_target = 10; + + // URI of the health check attached to this backend (if applicable). + string health_check_uri = 6; + + // Output only. Health check firewalls configuration state for the backend. + // This is a result of the static firewall analysis (verifying that health + // check traffic from required IP ranges to the backend is allowed or not). + // The backend might still be unhealthy even if these firewalls are + // configured. Please refer to the documentation for more information: + // https://cloud.google.com/load-balancing/docs/firewall-rules + HealthCheckFirewallsConfigState health_check_firewalls_config_state = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Type of a load balancer. For more information, see [Summary of Google Cloud // load // balancers](https://cloud.google.com/load-balancing/docs/load-balancing-overview#summary-of-google-cloud-load-balancers). @@ -1239,3 +1617,9 @@ enum LoadBalancerType { // Internal TCP/UDP load balancer. TCP_UDP_INTERNAL_LOAD_BALANCER = 10; } + +// For display only. Metadata associated with Storage Bucket. +message StorageBucketInfo { + // Cloud Storage Bucket name. + string bucket = 1; +} diff --git a/third_party/googleapis/google/cloud/networksecurity/v1/authorization_policy.proto b/third_party/googleapis/google/cloud/networksecurity/v1/authorization_policy.proto index 7d720d4e9..79fd9c15b 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1/authorization_policy.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1/authorization_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1/client_tls_policy.proto b/third_party/googleapis/google/cloud/networksecurity/v1/client_tls_policy.proto index e201dd82c..a6b24502c 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1/client_tls_policy.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1/client_tls_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1/common.proto b/third_party/googleapis/google/cloud/networksecurity/v1/common.proto index 728b9b089..a08189f47 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1/common.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1/network_security.proto b/third_party/googleapis/google/cloud/networksecurity/v1/network_security.proto index a77d11f6b..131991a72 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1/network_security.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1/network_security.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1/server_tls_policy.proto b/third_party/googleapis/google/cloud/networksecurity/v1/server_tls_policy.proto index c837d4a61..f060ad057 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1/server_tls_policy.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1/server_tls_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1/tls.proto b/third_party/googleapis/google/cloud/networksecurity/v1/tls.proto index 2a8281859..211e4867a 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1/tls.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1/tls.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1beta1/authorization_policy.proto b/third_party/googleapis/google/cloud/networksecurity/v1beta1/authorization_policy.proto index e52f06d6a..7fcfcb3bc 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1beta1/authorization_policy.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1beta1/authorization_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1beta1/client_tls_policy.proto b/third_party/googleapis/google/cloud/networksecurity/v1beta1/client_tls_policy.proto index 23b510774..8a75b15f2 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1beta1/client_tls_policy.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1beta1/client_tls_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1beta1/common.proto b/third_party/googleapis/google/cloud/networksecurity/v1beta1/common.proto index 04f37a45e..f71a1a404 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1beta1/common.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1beta1/network_security.proto b/third_party/googleapis/google/cloud/networksecurity/v1beta1/network_security.proto index 157948f65..e33964131 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1beta1/network_security.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1beta1/network_security.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1beta1/server_tls_policy.proto b/third_party/googleapis/google/cloud/networksecurity/v1beta1/server_tls_policy.proto index 02b5a7443..24d124cd1 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1beta1/server_tls_policy.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1beta1/server_tls_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networksecurity/v1beta1/tls.proto b/third_party/googleapis/google/cloud/networksecurity/v1beta1/tls.proto index f160146c1..a6f10cc84 100644 --- a/third_party/googleapis/google/cloud/networksecurity/v1beta1/tls.proto +++ b/third_party/googleapis/google/cloud/networksecurity/v1beta1/tls.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/BUILD.bazel b/third_party/googleapis/google/cloud/networkservices/BUILD.bazel new file mode 100644 index 000000000..0cb6257d3 --- /dev/null +++ b/third_party/googleapis/google/cloud/networkservices/BUILD.bazel @@ -0,0 +1,37 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-network_services. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for networkservices. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "networkservices_ruby_wrapper", + srcs = ["//google/cloud/networkservices/v1:networkservices_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-network_services", + "ruby-cloud-wrapper-of=v1:0.0", + "ruby-cloud-product-url=https://cloud.google.com/products/networking", + ], + service_yaml = "//google/cloud/networkservices/v1:networkservices_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-network_services-ruby", + deps = [ + ":networkservices_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/networkservices/v1/BUILD.bazel b/third_party/googleapis/google/cloud/networkservices/v1/BUILD.bazel index 1c412df12..254eacb51 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/networkservices/v1/BUILD.bazel @@ -9,19 +9,23 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "networkservices_proto", srcs = [ "common.proto", + "dep.proto", "endpoint_policy.proto", "gateway.proto", "grpc_route.proto", @@ -36,10 +40,13 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -57,6 +64,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -85,9 +93,9 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "networkservices_v1.yaml", test_deps = [ + ":networkservices_java_grpc", "//google/cloud/location:location_java_grpc", "//google/iam/v1:iam_java_grpc", - ":networkservices_java_grpc", ], transport = "grpc+rest", deps = [ @@ -101,6 +109,8 @@ java_gapic_library( java_gapic_test( name = "networkservices_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networkservices.v1.DepServiceClientHttpJsonTest", + "com.google.cloud.networkservices.v1.DepServiceClientTest", "com.google.cloud.networkservices.v1.NetworkServicesClientHttpJsonTest", "com.google.cloud.networkservices.v1.NetworkServicesClientTest", ], @@ -123,6 +133,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -159,6 +170,7 @@ go_gapic_library( "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", "@io_bazel_rules_go//proto/wkt:duration_go_proto", + "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], ) @@ -177,6 +189,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -222,6 +235,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -259,6 +273,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -289,6 +304,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -311,7 +327,10 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "networkservices_ruby_gapic", srcs = [":networkservices_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-networkservices-v1"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-network_services-v1", + "ruby-cloud-product-url=https://cloud.google.com/products/networking", + ], grpc_service_config = "networkservices_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "networkservices_v1.yaml", @@ -335,6 +354,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -381,6 +401,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/networkservices/v1/common.proto b/third_party/googleapis/google/cloud/networkservices/v1/common.proto index 599a35d36..f3e8028c8 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/common.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/dep.proto b/third_party/googleapis/google/cloud/networkservices/v1/dep.proto new file mode 100644 index 000000000..1fad89621 --- /dev/null +++ b/third_party/googleapis/google/cloud/networkservices/v1/dep.proto @@ -0,0 +1,756 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.networkservices.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/networkservices/v1/common.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkServices.V1"; +option go_package = "cloud.google.com/go/networkservices/apiv1/networkservicespb;networkservicespb"; +option java_multiple_files = true; +option java_outer_classname = "DepProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// Service describing handlers for resources. +service DepService { + option (google.api.default_host) = "networkservices.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists `LbTrafficExtension` resources in a given project and location. + rpc ListLbTrafficExtensions(ListLbTrafficExtensionsRequest) + returns (ListLbTrafficExtensionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/lbTrafficExtensions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of the specified `LbTrafficExtension` resource. + rpc GetLbTrafficExtension(GetLbTrafficExtensionRequest) + returns (LbTrafficExtension) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/lbTrafficExtensions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new `LbTrafficExtension` resource in a given project and + // location. + rpc CreateLbTrafficExtension(CreateLbTrafficExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/lbTrafficExtensions" + body: "lb_traffic_extension" + }; + option (google.api.method_signature) = + "parent,lb_traffic_extension,lb_traffic_extension_id"; + option (google.longrunning.operation_info) = { + response_type: "LbTrafficExtension" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of the specified `LbTrafficExtension` resource. + rpc UpdateLbTrafficExtension(UpdateLbTrafficExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{lb_traffic_extension.name=projects/*/locations/*/lbTrafficExtensions/*}" + body: "lb_traffic_extension" + }; + option (google.api.method_signature) = "lb_traffic_extension,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "LbTrafficExtension" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the specified `LbTrafficExtension` resource. + rpc DeleteLbTrafficExtension(DeleteLbTrafficExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lbTrafficExtensions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists `LbRouteExtension` resources in a given project and location. + rpc ListLbRouteExtensions(ListLbRouteExtensionsRequest) + returns (ListLbRouteExtensionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/lbRouteExtensions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of the specified `LbRouteExtension` resource. + rpc GetLbRouteExtension(GetLbRouteExtensionRequest) + returns (LbRouteExtension) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/lbRouteExtensions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new `LbRouteExtension` resource in a given project and location. + rpc CreateLbRouteExtension(CreateLbRouteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/lbRouteExtensions" + body: "lb_route_extension" + }; + option (google.api.method_signature) = + "parent,lb_route_extension,lb_route_extension_id"; + option (google.longrunning.operation_info) = { + response_type: "LbRouteExtension" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of the specified `LbRouteExtension` resource. + rpc UpdateLbRouteExtension(UpdateLbRouteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{lb_route_extension.name=projects/*/locations/*/lbRouteExtensions/*}" + body: "lb_route_extension" + }; + option (google.api.method_signature) = "lb_route_extension,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "LbRouteExtension" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the specified `LbRouteExtension` resource. + rpc DeleteLbRouteExtension(DeleteLbRouteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lbRouteExtensions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// The part of the request or response for which the extension is called. +enum EventType { + // Unspecified value. Do not use. + EVENT_TYPE_UNSPECIFIED = 0; + + // If included in `supported_events`, + // the extension is called when the HTTP request headers arrive. + REQUEST_HEADERS = 1; + + // If included in `supported_events`, + // the extension is called when the HTTP request body arrives. + REQUEST_BODY = 2; + + // If included in `supported_events`, + // the extension is called when the HTTP response headers arrive. + RESPONSE_HEADERS = 3; + + // If included in `supported_events`, + // the extension is called when the HTTP response body arrives. + RESPONSE_BODY = 4; + + // If included in `supported_events`, + // the extension is called when the HTTP request trailers arrives. + REQUEST_TRAILERS = 5; + + // If included in `supported_events`, + // the extension is called when the HTTP response trailers arrives. + RESPONSE_TRAILERS = 6; +} + +// Load balancing schemes supported by the `LbTrafficExtension` resource and +// `LbRouteExtension` resource. +// For more information, refer to [Choosing a load +// balancer](https://cloud.google.com/load-balancing/docs/backend-service). +enum LoadBalancingScheme { + // Default value. Do not use. + LOAD_BALANCING_SCHEME_UNSPECIFIED = 0; + + // Signifies that this is used for Internal HTTP(S) Load Balancing. + INTERNAL_MANAGED = 1; + + // Signifies that this is used for External Managed HTTP(S) Load + // Balancing. + EXTERNAL_MANAGED = 2; +} + +// A single extension chain wrapper that contains the match conditions and +// extensions to execute. +message ExtensionChain { + // Conditions under which this chain is invoked for a request. + message MatchCondition { + // Required. A Common Expression Language (CEL) expression that is used to + // match requests for which the extension chain is executed. + // + // For more information, see [CEL matcher language + // reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference). + string cel_expression = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // A single extension in the chain to execute for the matching request. + message Extension { + // Required. The name for this extension. + // The name is logged as part of the HTTP request logs. + // The name must conform with RFC-1034, is restricted to lower-cased + // letters, numbers and hyphens, and can have a maximum length of 63 + // characters. Additionally, the first character must be a letter and the + // last a letter or a number. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The `:authority` header in the gRPC request sent from Envoy + // to the extension service. + // Required for Callout extensions. + string authority = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The reference to the service that runs the extension. + // + // Currently only callout extensions are supported here. + // + // To configure a callout extension, `service` must be a fully-qualified + // reference + // to a [backend + // service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) + // in the format: + // `https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}` + // or + // `https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}`. + string service = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A set of events during request or response processing for which + // this extension is called. This field is required for the + // `LbTrafficExtension` resource. It must not be set for the + // `LbRouteExtension` resource. + repeated EventType supported_events = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the timeout for each individual message on the + // stream. The timeout must be between 10-1000 milliseconds. Required for + // Callout extensions. + google.protobuf.Duration timeout = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines how the proxy behaves if the call to the extension + // fails or times out. + // + // When set to `TRUE`, request or response processing continues without + // error. Any subsequent extensions in the extension chain are also + // executed. When set to `FALSE` or the default setting of `FALSE` is used, + // one of the following happens: + // + // * If response headers have not been delivered to the downstream client, + // a generic 500 error is returned to the client. The error response can be + // tailored by configuring a custom error response in the load balancer. + // + // * If response headers have been delivered, then the HTTP stream to the + // downstream client is reset. + bool fail_open = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of the HTTP headers to forward to the extension + // (from the client or backend). If omitted, all headers are sent. + // Each element is a string indicating the header name. + repeated string forward_headers = 7 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The name for this extension chain. + // The name is logged as part of the HTTP request logs. + // The name must conform with RFC-1034, is restricted to lower-cased letters, + // numbers and hyphens, and can have a maximum length of 63 characters. + // Additionally, the first character must be a letter and the last a letter or + // a number. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Conditions under which this chain is invoked for a request. + MatchCondition match_condition = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A set of extensions to execute for the matching request. + // At least one extension is required. + // Up to 3 extensions can be defined for each extension chain + // for `LbTrafficExtension` resource. + // `LbRouteExtension` chains are limited to 1 extension per extension chain. + repeated Extension extensions = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `LbTrafficExtension` is a resource that lets the extension service modify the +// headers and payloads of both requests and responses without impacting the +// choice of backend services or any other security policies associated with the +// backend service. +message LbTrafficExtension { + option (google.api.resource) = { + type: "networkservices.googleapis.com/LbTrafficExtension" + pattern: "projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}" + plural: "lbTrafficExtensions" + singular: "lbTrafficExtension" + }; + + // Required. Identifier. Name of the `LbTrafficExtension` resource in the + // following format: + // `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A human-readable description of the resource. + string description = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set of labels associated with the `LbTrafficExtension` resource. + // + // The format must comply with [the requirements for + // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) + // for Google Cloud resources. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A list of references to the forwarding rules to which this + // service extension is attached to. At least one forwarding rule is required. + // There can be only one `LBTrafficExtension` resource per forwarding rule. + repeated string forwarding_rules = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. A set of ordered extension chains that contain the match + // conditions and extensions to execute. Match conditions for each extension + // chain are evaluated in sequence for a given request. The first extension + // chain that has a condition that matches the request is executed. + // Any subsequent extension chains do not execute. + // Limited to 5 extension chains per resource. + repeated ExtensionChain extension_chains = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. All backend services and forwarding rules referenced by this + // extension must share the same load balancing scheme. Supported values: + // `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to + // [Choosing a load + // balancer](https://cloud.google.com/load-balancing/docs/backend-service). + LoadBalancingScheme load_balancing_scheme = 8 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The metadata provided here is included in the + // `ProcessingRequest.metadata_context.filter_metadata` map field. The + // metadata is available under the key + // `com.google.lb_traffic_extension.`. + // The following variables are supported in the metadata: + // + // `{forwarding_rule_id}` - substituted with the forwarding rule's fully + // qualified resource name. + google.protobuf.Struct metadata = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for requesting list of `LbTrafficExtension` resources. +message ListLbTrafficExtensionsRequest { + // Required. The project and location from which the `LbTrafficExtension` + // resources are listed, specified in the following format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; + + // Optional. Requested page size. The server might return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results that the server returns. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing `LbTrafficExtension` resources. +message ListLbTrafficExtensionsResponse { + // The list of `LbTrafficExtension` resources. + repeated LbTrafficExtension lb_traffic_extensions = 1; + + // A token identifying a page of results that the server returns. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a `LbTrafficExtension` resource. +message GetLbTrafficExtensionRequest { + // Required. A name of the `LbTrafficExtension` resource to get. Must be in + // the format + // `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; +} + +// Message for creating a `LbTrafficExtension` resource. +message CreateLbTrafficExtensionRequest { + // Required. The parent resource of the `LbTrafficExtension` resource. Must be + // in the format `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; + + // Required. User-provided ID of the `LbTrafficExtension` resource to be + // created. + string lb_traffic_extension_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. `LbTrafficExtension` resource to be created. + LbTrafficExtension lb_traffic_extension = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional 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 guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for updating a `LbTrafficExtension` resource. +message UpdateLbTrafficExtensionRequest { + // Optional. Used to specify the fields to be overwritten in the + // `LbTrafficExtension` resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field is overwritten if it is in the mask. If the + // user does not specify a mask, then all fields are overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. `LbTrafficExtension` resource being updated. + LbTrafficExtension lb_traffic_extension = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional 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 guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for deleting a `LbTrafficExtension` resource. +message DeleteLbTrafficExtensionRequest { + // Required. The name of the `LbTrafficExtension` resource to delete. Must be + // in the format + // `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; + + // Optional. An optional 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 guarantees + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// `LbRouteExtension` is a resource that lets you control where traffic is +// routed to for a given request. +message LbRouteExtension { + option (google.api.resource) = { + type: "networkservices.googleapis.com/LbRouteExtension" + pattern: "projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}" + plural: "lbRouteExtensions" + singular: "lbRouteExtension" + }; + + // Required. Identifier. Name of the `LbRouteExtension` resource in the + // following format: + // `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A human-readable description of the resource. + string description = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set of labels associated with the `LbRouteExtension` resource. + // + // The format must comply with [the requirements for + // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) + // for Google Cloud resources. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A list of references to the forwarding rules to which this + // service extension is attached to. At least one forwarding rule is required. + // There can be only one `LbRouteExtension` resource per forwarding rule. + repeated string forwarding_rules = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. A set of ordered extension chains that contain the match + // conditions and extensions to execute. Match conditions for each extension + // chain are evaluated in sequence for a given request. The first extension + // chain that has a condition that matches the request is executed. + // Any subsequent extension chains do not execute. + // Limited to 5 extension chains per resource. + repeated ExtensionChain extension_chains = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. All backend services and forwarding rules referenced by this + // extension must share the same load balancing scheme. Supported values: + // `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to + // [Choosing a load + // balancer](https://cloud.google.com/load-balancing/docs/backend-service). + LoadBalancingScheme load_balancing_scheme = 8 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The metadata provided here is included as part of the + // `metadata_context` (of type `google.protobuf.Struct`) in the + // `ProcessingRequest` message sent to the extension + // server. The metadata is available under the namespace + // `com.google.lb_route_extension.`. + // The following variables are supported in the metadata Struct: + // + // `{forwarding_rule_id}` - substituted with the forwarding rule's fully + // qualified resource name. + google.protobuf.Struct metadata = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for requesting list of `LbRouteExtension` resources. +message ListLbRouteExtensionsRequest { + // Required. The project and location from which the `LbRouteExtension` + // resources are listed, specified in the following format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; + + // Optional. Requested page size. The server might return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results that the server returns. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing `LbRouteExtension` resources. +message ListLbRouteExtensionsResponse { + // The list of `LbRouteExtension` resources. + repeated LbRouteExtension lb_route_extensions = 1; + + // A token identifying a page of results that the server returns. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a `LbRouteExtension` resource. +message GetLbRouteExtensionRequest { + // Required. A name of the `LbRouteExtension` resource to get. Must be in the + // format + // `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; +} + +// Message for creating a `LbRouteExtension` resource. +message CreateLbRouteExtensionRequest { + // Required. The parent resource of the `LbRouteExtension` resource. Must be + // in the format `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; + + // Required. User-provided ID of the `LbRouteExtension` resource to be + // created. + string lb_route_extension_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. `LbRouteExtension` resource to be created. + LbRouteExtension lb_route_extension = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional 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 guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for updating a `LbRouteExtension` resource. +message UpdateLbRouteExtensionRequest { + // Optional. Used to specify the fields to be overwritten in the + // `LbRouteExtension` resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field is overwritten if it is in the mask. If the + // user does not specify a mask, then all fields are overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. `LbRouteExtension` resource being updated. + LbRouteExtension lb_route_extension = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional 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 guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for deleting a `LbRouteExtension` resource. +message DeleteLbRouteExtensionRequest { + // Required. The name of the `LbRouteExtension` resource to delete. Must be in + // the format + // `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; + + // Optional. An optional 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 guarantees + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} diff --git a/third_party/googleapis/google/cloud/networkservices/v1/endpoint_policy.proto b/third_party/googleapis/google/cloud/networkservices/v1/endpoint_policy.proto index 889a575dd..863e78961 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/endpoint_policy.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/endpoint_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/gateway.proto b/third_party/googleapis/google/cloud/networkservices/v1/gateway.proto index 07ae67323..d2e8fc12b 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/gateway.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/gateway.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/grpc_route.proto b/third_party/googleapis/google/cloud/networkservices/v1/grpc_route.proto index 48894fe29..2915ea313 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/grpc_route.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/grpc_route.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/http_route.proto b/third_party/googleapis/google/cloud/networkservices/v1/http_route.proto index bbbae60ae..685b8ed11 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/http_route.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/http_route.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/mesh.proto b/third_party/googleapis/google/cloud/networkservices/v1/mesh.proto index ffa2c0b20..24ea0344e 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/mesh.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/mesh.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/network_services.proto b/third_party/googleapis/google/cloud/networkservices/v1/network_services.proto index 09f10fdbe..576bbcc6c 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/network_services.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/network_services.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,6 +35,7 @@ option java_package = "com.google.cloud.networkservices.v1"; option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; option ruby_package = "Google::Cloud::NetworkServices::V1"; +// Service describing handlers for resources. service NetworkServices { option (google.api.default_host) = "networkservices.googleapis.com"; option (google.api.oauth_scopes) = diff --git a/third_party/googleapis/google/cloud/networkservices/v1/networkservices_grpc_service_config.json b/third_party/googleapis/google/cloud/networkservices/v1/networkservices_grpc_service_config.json index 981f8bc9d..15c16118e 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/networkservices_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/networkservices/v1/networkservices_grpc_service_config.json @@ -2,9 +2,8 @@ "methodConfig": [ { "name": [ - { - "service": "google.cloud.networkservices.v1.NetworkServices" - } + {"service": "google.cloud.networkservices.v1.NetworkServices"}, + {"service": "google.cloud.networkservices.v1.DepService"} ], "timeout": "60s" } diff --git a/third_party/googleapis/google/cloud/networkservices/v1/networkservices_v1.yaml b/third_party/googleapis/google/cloud/networkservices/v1/networkservices_v1.yaml index 7b0a45ae9..d3eac7984 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/networkservices_v1.yaml +++ b/third_party/googleapis/google/cloud/networkservices/v1/networkservices_v1.yaml @@ -5,6 +5,7 @@ title: Network Services API apis: - name: google.cloud.location.Locations +- name: google.cloud.networkservices.v1.DepService - name: google.cloud.networkservices.v1.NetworkServices - name: google.iam.v1.IAMPolicy - name: google.longrunning.Operations @@ -123,6 +124,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.networkservices.v1.DepService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.networkservices.v1.NetworkServices.*' oauth: canonical_scopes: |- @@ -135,3 +140,46 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1132189&template=1639113 + documentation_uri: https://cloud.google.com/products/networking + api_short_name: networkservices + github_label: 'api: networkservices' + doc_tag_prefix: networkservices + organization: CLOUD + library_settings: + - version: google.cloud.networkservices.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/cloud/networkservices/v1/service_binding.proto b/third_party/googleapis/google/cloud/networkservices/v1/service_binding.proto index ebec29df0..4a44c3919 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/service_binding.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/service_binding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/tcp_route.proto b/third_party/googleapis/google/cloud/networkservices/v1/tcp_route.proto index 0060a2899..ac1c6bfed 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/tcp_route.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/tcp_route.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1/tls_route.proto b/third_party/googleapis/google/cloud/networkservices/v1/tls_route.proto index 7117192b5..0bebcdc9f 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1/tls_route.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1/tls_route.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/networkservices/v1beta1/BUILD.bazel index a8f6b63e3..3e6fe98f7 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/networkservices/v1beta1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "networkservices_proto", @@ -51,6 +54,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -115,6 +119,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -167,6 +172,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -206,6 +212,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -243,6 +250,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -273,6 +281,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -319,6 +328,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -329,7 +339,6 @@ load( csharp_proto_library( name = "networkservices_csharp_proto", - extra_opts = [], deps = [":networkservices_proto"], ) @@ -366,6 +375,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/networkservices/v1beta1/common.proto b/third_party/googleapis/google/cloud/networkservices/v1beta1/common.proto index 210c43528..75ebbfa9a 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1beta1/common.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1beta1/dep.proto b/third_party/googleapis/google/cloud/networkservices/v1beta1/dep.proto index 9f67a76e5..b7213c2c8 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1beta1/dep.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1beta1/dep.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -164,9 +164,38 @@ service DepService { } } +// The part of the request or response for which the extension is called. +enum EventType { + // Unspecified value. Do not use. + EVENT_TYPE_UNSPECIFIED = 0; + + // If included in `supported_events`, + // the extension is called when the HTTP request headers arrive. + REQUEST_HEADERS = 1; + + // If included in `supported_events`, + // the extension is called when the HTTP request body arrives. + REQUEST_BODY = 2; + + // If included in `supported_events`, + // the extension is called when the HTTP response headers arrive. + RESPONSE_HEADERS = 3; + + // If included in `supported_events`, + // the extension is called when the HTTP response body arrives. + RESPONSE_BODY = 4; + + // If included in `supported_events`, + // the extension is called when the HTTP request trailers arrives. + REQUEST_TRAILERS = 5; + + // If included in `supported_events`, + // the extension is called when the HTTP response trailers arrives. + RESPONSE_TRAILERS = 6; +} + // Load balancing schemes supported by the `LbTrafficExtension` resource and -// `LbRouteExtension` resource. The valid values are `INTERNAL_MANAGED` and -// `EXTERNAL_MANAGED`. +// `LbRouteExtension` resource. // For more information, refer to [Choosing a load // balancer](https://cloud.google.com/load-balancing/docs/backend-service). enum LoadBalancingScheme { @@ -189,39 +218,13 @@ message ExtensionChain { // Required. A Common Expression Language (CEL) expression that is used to // match requests for which the extension chain is executed. // - // For more information, see - // [CEL matcher language - // reference](/service-extensions/docs/cel-matcher-language-reference). + // For more information, see [CEL matcher language + // reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference). string cel_expression = 1 [(google.api.field_behavior) = REQUIRED]; } // A single extension in the chain to execute for the matching request. message Extension { - // The part of the request or response for which this extension - // is called. - // The valid values are: - // `REQUEST_HEADERS`, `REQUEST_BODY`, `RESPONSE_HEADERS`, `RESPONSE_BODY`. - enum EventType { - // Unspecified value. Do not use. - EVENT_TYPE_UNSPECIFIED = 0; - - // If included in `supported_events`, - // the extension is called when the HTTP request headers arrive. - REQUEST_HEADERS = 1; - - // If included in `supported_events`, - // the extension is called when the HTTP request body arrives. - REQUEST_BODY = 2; - - // If included in `supported_events`, - // the extension is called when the HTTP response headers arrive. - RESPONSE_HEADERS = 3; - - // If included in `supported_events`, - // the extension is called when the HTTP response body arrives. - RESPONSE_BODY = 4; - } - // Required. The name for this extension. // The name is logged as part of the HTTP request logs. // The name must conform with RFC-1034, is restricted to lower-cased @@ -232,6 +235,7 @@ message ExtensionChain { // Optional. The `:authority` header in the gRPC request sent from Envoy // to the extension service. + // Required for Callout extensions. string authority = 2 [(google.api.field_behavior) = OPTIONAL]; // Required. The reference to the service that runs the extension. @@ -255,10 +259,11 @@ message ExtensionChain { repeated EventType supported_events = 4 [(google.api.field_behavior) = OPTIONAL]; - // Required. Specifies the timeout for each individual message on the - // stream. The timeout must be between 10-1000 milliseconds. + // Optional. Specifies the timeout for each individual message on the + // stream. The timeout must be between 10-1000 milliseconds. Required for + // Callout extensions. google.protobuf.Duration timeout = 5 - [(google.api.field_behavior) = REQUIRED]; + [(google.api.field_behavior) = OPTIONAL]; // Optional. Determines how the proxy behaves if the call to the extension // fails or times out. @@ -335,8 +340,8 @@ message LbTrafficExtension { // Optional. Set of labels associated with the `LbTrafficExtension` resource. // // The format must comply with [the requirements for - // labels](/compute/docs/labeling-resources#requirements) for Google Cloud - // resources. + // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) + // for Google Cloud resources. map labels = 4 [(google.api.field_behavior) = OPTIONAL]; // Required. A list of references to the forwarding rules to which this @@ -547,8 +552,8 @@ message LbRouteExtension { // Optional. Set of labels associated with the `LbRouteExtension` resource. // // The format must comply with [the requirements for - // labels](/compute/docs/labeling-resources#requirements) for Google Cloud - // resources. + // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) + // for Google Cloud resources. map labels = 4 [(google.api.field_behavior) = OPTIONAL]; // Required. A list of references to the forwarding rules to which this diff --git a/third_party/googleapis/google/cloud/networkservices/v1beta1/endpoint_policy.proto b/third_party/googleapis/google/cloud/networkservices/v1beta1/endpoint_policy.proto index 12f20c65c..2a3ae9af1 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1beta1/endpoint_policy.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1beta1/endpoint_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/networkservices/v1beta1/network_services.proto b/third_party/googleapis/google/cloud/networkservices/v1beta1/network_services.proto index e9f4c0010..2c50db9ec 100644 --- a/third_party/googleapis/google/cloud/networkservices/v1beta1/network_services.proto +++ b/third_party/googleapis/google/cloud/networkservices/v1beta1/network_services.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,12 +28,15 @@ option java_package = "com.google.cloud.networkservices.v1beta1"; option php_namespace = "Google\\Cloud\\NetworkServices\\V1beta1"; option ruby_package = "Google::Cloud::NetworkServices::V1beta1"; +// Service describing handlers for resources. service NetworkServices { option (google.api.default_host) = "networkservices.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; // Lists EndpointPolicies in a given project and location. - rpc ListEndpointPolicies(ListEndpointPoliciesRequest) returns (ListEndpointPoliciesResponse) { + rpc ListEndpointPolicies(ListEndpointPoliciesRequest) + returns (ListEndpointPoliciesResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/locations/*}/endpointPolicies" }; @@ -49,12 +52,14 @@ service NetworkServices { } // Creates a new EndpointPolicy in a given project and location. - rpc CreateEndpointPolicy(CreateEndpointPolicyRequest) returns (google.longrunning.Operation) { + rpc CreateEndpointPolicy(CreateEndpointPolicyRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta1/{parent=projects/*/locations/*}/endpointPolicies" body: "endpoint_policy" }; - option (google.api.method_signature) = "parent,endpoint_policy,endpoint_policy_id"; + option (google.api.method_signature) = + "parent,endpoint_policy,endpoint_policy_id"; option (google.longrunning.operation_info) = { response_type: "EndpointPolicy" metadata_type: "google.cloud.networkservices.v1beta1.OperationMetadata" @@ -62,7 +67,8 @@ service NetworkServices { } // Updates the parameters of a single EndpointPolicy. - rpc UpdateEndpointPolicy(UpdateEndpointPolicyRequest) returns (google.longrunning.Operation) { + rpc UpdateEndpointPolicy(UpdateEndpointPolicyRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1beta1/{endpoint_policy.name=projects/*/locations/*/endpointPolicies/*}" body: "endpoint_policy" @@ -75,7 +81,8 @@ service NetworkServices { } // Deletes a single EndpointPolicy. - rpc DeleteEndpointPolicy(DeleteEndpointPolicyRequest) returns (google.longrunning.Operation) { + rpc DeleteEndpointPolicy(DeleteEndpointPolicyRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/locations/*/endpointPolicies/*}" }; diff --git a/third_party/googleapis/google/cloud/notebooks/logging/v1/runtime_log.proto b/third_party/googleapis/google/cloud/notebooks/logging/v1/runtime_log.proto index 20fe64e70..e06e855c7 100644 --- a/third_party/googleapis/google/cloud/notebooks/logging/v1/runtime_log.proto +++ b/third_party/googleapis/google/cloud/notebooks/logging/v1/runtime_log.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/diagnostic_config.proto b/third_party/googleapis/google/cloud/notebooks/v1/diagnostic_config.proto index ab8b98f16..1f4021bf0 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/diagnostic_config.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/diagnostic_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/environment.proto b/third_party/googleapis/google/cloud/notebooks/v1/environment.proto index cf947b824..0241c4a9f 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/environment.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/event.proto b/third_party/googleapis/google/cloud/notebooks/v1/event.proto index 2f62bda32..ed7aa6a1e 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/event.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/execution.proto b/third_party/googleapis/google/cloud/notebooks/v1/execution.proto index c23545d31..0919dc731 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/execution.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/instance.proto b/third_party/googleapis/google/cloud/notebooks/v1/instance.proto index d78883938..0b855b2e9 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/instance.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/instance_config.proto b/third_party/googleapis/google/cloud/notebooks/v1/instance_config.proto index 59fd01ef7..e1784084d 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/instance_config.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/instance_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/managed_service.proto b/third_party/googleapis/google/cloud/notebooks/v1/managed_service.proto index 245e07640..b66cf4930 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/managed_service.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/managed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/runtime.proto b/third_party/googleapis/google/cloud/notebooks/v1/runtime.proto index 48505b537..1a036a472 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/runtime.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/runtime.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/schedule.proto b/third_party/googleapis/google/cloud/notebooks/v1/schedule.proto index 9d30a17ee..de7f3b8ad 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/schedule.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/schedule.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1/service.proto b/third_party/googleapis/google/cloud/notebooks/v1/service.proto index 04c42eddd..95ee6c75d 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1/service.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1beta1/environment.proto b/third_party/googleapis/google/cloud/notebooks/v1beta1/environment.proto index abe755073..a58259f93 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1beta1/environment.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1beta1/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1beta1/instance.proto b/third_party/googleapis/google/cloud/notebooks/v1beta1/instance.proto index 123ace8c1..4cbe35b93 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1beta1/instance.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1beta1/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v1beta1/service.proto b/third_party/googleapis/google/cloud/notebooks/v1beta1/service.proto index 57dfe2f38..7bb051bb7 100644 --- a/third_party/googleapis/google/cloud/notebooks/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/notebooks/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v2/diagnostic_config.proto b/third_party/googleapis/google/cloud/notebooks/v2/diagnostic_config.proto index ccd60acd0..54cf82e5d 100644 --- a/third_party/googleapis/google/cloud/notebooks/v2/diagnostic_config.proto +++ b/third_party/googleapis/google/cloud/notebooks/v2/diagnostic_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v2/event.proto b/third_party/googleapis/google/cloud/notebooks/v2/event.proto index 1480bbc3e..d34ef58a7 100644 --- a/third_party/googleapis/google/cloud/notebooks/v2/event.proto +++ b/third_party/googleapis/google/cloud/notebooks/v2/event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v2/gce_setup.proto b/third_party/googleapis/google/cloud/notebooks/v2/gce_setup.proto index e3fb8b18d..9c6475f8c 100644 --- a/third_party/googleapis/google/cloud/notebooks/v2/gce_setup.proto +++ b/third_party/googleapis/google/cloud/notebooks/v2/gce_setup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v2/instance.proto b/third_party/googleapis/google/cloud/notebooks/v2/instance.proto index 9a3dff5bf..b4b28b4ad 100644 --- a/third_party/googleapis/google/cloud/notebooks/v2/instance.proto +++ b/third_party/googleapis/google/cloud/notebooks/v2/instance.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/notebooks/v2/service.proto b/third_party/googleapis/google/cloud/notebooks/v2/service.proto index 04bcb485c..7095ab768 100644 --- a/third_party/googleapis/google/cloud/notebooks/v2/service.proto +++ b/third_party/googleapis/google/cloud/notebooks/v2/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/optimization/v1/BUILD.bazel b/third_party/googleapis/google/cloud/optimization/v1/BUILD.bazel index e206fa2fc..e60633951 100644 --- a/third_party/googleapis/google/cloud/optimization/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/optimization/v1/BUILD.bazel @@ -216,7 +216,7 @@ php_gapic_library( name = "optimization_php_gapic", srcs = [":optimization_proto_with_info"], grpc_service_config = "cloudoptimization_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudoptimization_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/optimization/v1/async_model.proto b/third_party/googleapis/google/cloud/optimization/v1/async_model.proto index 5706871e1..65e99f36f 100644 --- a/third_party/googleapis/google/cloud/optimization/v1/async_model.proto +++ b/third_party/googleapis/google/cloud/optimization/v1/async_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/optimization/v1/fleet_routing.proto b/third_party/googleapis/google/cloud/optimization/v1/fleet_routing.proto index 13dfb375d..0892c7231 100644 --- a/third_party/googleapis/google/cloud/optimization/v1/fleet_routing.proto +++ b/third_party/googleapis/google/cloud/optimization/v1/fleet_routing.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/composer_v1.yaml b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/composer_v1.yaml index d5d5691e1..34711bf46 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/composer_v1.yaml +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/composer_v1.yaml @@ -23,15 +23,6 @@ types: documentation: summary: Manages Apache Airflow environments on Google Cloud Platform. -backend: - rules: - - selector: 'google.cloud.orchestration.airflow.service.v1.Environments.*' - deadline: 10.0 - - selector: google.cloud.orchestration.airflow.service.v1.ImageVersions.ListImageVersions - deadline: 10.0 - - selector: 'google.longrunning.Operations.*' - deadline: 10.0 - http: rules: - selector: google.longrunning.Operations.DeleteOperation diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/environments.proto b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/environments.proto index 72fbe14f3..8ab07130f 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/environments.proto +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/environments.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/image_versions.proto b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/image_versions.proto index 0f458cc5c..94c92b8ec 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/image_versions.proto +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/image_versions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/operations.proto b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/operations.proto index 71672aa3c..ec14d069c 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/operations.proto +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/composer_v1beta1.yaml b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/composer_v1beta1.yaml index e794bc569..ce70752ad 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/composer_v1beta1.yaml +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/composer_v1beta1.yaml @@ -23,15 +23,6 @@ types: documentation: summary: Manages Apache Airflow environments on Google Cloud Platform. -backend: - rules: - - selector: 'google.cloud.orchestration.airflow.service.v1beta1.Environments.*' - deadline: 10.0 - - selector: google.cloud.orchestration.airflow.service.v1beta1.ImageVersions.ListImageVersions - deadline: 10.0 - - selector: 'google.longrunning.Operations.*' - deadline: 10.0 - http: rules: - selector: google.longrunning.Operations.DeleteOperation diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/environments.proto b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/environments.proto index 807c177db..ba6e5ec76 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/environments.proto +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/environments.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -1156,8 +1156,9 @@ message EnvironmentConfig { // This may be split into multiple chunks, each with a size of // at least 4 hours. // - // If this value is omitted, Cloud Composer components may be subject to - // maintenance at any time. + // If this value is omitted, the default value for maintenance window is + // applied. By default, maintenance windows are from 00:00:00 to 04:00:00 + // (GMT) on Friday, Saturday, and Sunday every week. MaintenanceWindow maintenance_window = 13 [(google.api.field_behavior) = OPTIONAL]; @@ -1840,6 +1841,9 @@ message WorkloadsConfig { } // Configuration for resources used by Airflow DAG processors. + // + // This field is supported for Cloud Composer environments in versions + // composer-3.*.*-airflow-*.*.* and newer. message DagProcessorResource { // Optional. CPU request and limit for a single Airflow DAG processor // replica. @@ -1880,9 +1884,19 @@ message WorkloadsConfig { // The configuration setting for Airflow database data retention mechanism. message DataRetentionConfig { + // Optional. The number of days describing for how long to store event-based + // records in airflow database. If the retention mechanism is enabled this + // value must be a positive integer otherwise, value should be set to 0. + int32 airflow_database_retention_days = 1 + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + // Optional. The configuration settings for task logs retention TaskLogsRetentionConfig task_logs_retention_config = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The retention policy for airflow metadata database. + AirflowMetadataRetentionPolicyConfig airflow_metadata_retention_config = 5 + [(google.api.field_behavior) = OPTIONAL]; } // The configuration setting for Task Logs. @@ -1900,11 +1914,31 @@ message TaskLogsRetentionConfig { CLOUD_LOGGING_ONLY = 2; } - // Optional. The mode of storage for Airflow workers task logs. For details, - // see go/composer-store-task-logs-in-cloud-logging-only-design-doc + // Optional. The mode of storage for Airflow workers task logs. TaskLogsStorageMode storage_mode = 2 [(google.api.field_behavior) = OPTIONAL]; } +// The policy for airflow metadata database retention. +message AirflowMetadataRetentionPolicyConfig { + // Describes retention policy. + enum RetentionMode { + // Default mode doesn't change environment parameters. + RETENTION_MODE_UNSPECIFIED = 0; + + // Retention policy is enabled. + RETENTION_MODE_ENABLED = 1; + + // Retention policy is disabled. + RETENTION_MODE_DISABLED = 2; + } + + // Optional. Retention can be either enabled or disabled. + RetentionMode retention_mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. How many days data should be retained for. + int32 retention_days = 2 [(google.api.field_behavior) = OPTIONAL]; +} + // The configuration for data storage in the environment. message StorageConfig { // Optional. The name of the Cloud Storage bucket used by the environment. No diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/image_versions.proto b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/image_versions.proto index e462bee57..9863ed91f 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/image_versions.proto +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/image_versions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/operations.proto b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/operations.proto index 6596658a0..baf41d297 100644 --- a/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/operations.proto +++ b/third_party/googleapis/google/cloud/orchestration/airflow/service/v1beta1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orgpolicy/v1/orgpolicy.proto b/third_party/googleapis/google/cloud/orgpolicy/v1/orgpolicy.proto index 5a3bb979a..10fe86a21 100644 --- a/third_party/googleapis/google/cloud/orgpolicy/v1/orgpolicy.proto +++ b/third_party/googleapis/google/cloud/orgpolicy/v1/orgpolicy.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orgpolicy/v2/BUILD.bazel b/third_party/googleapis/google/cloud/orgpolicy/v2/BUILD.bazel index 0fd546dbd..778de2564 100644 --- a/third_party/googleapis/google/cloud/orgpolicy/v2/BUILD.bazel +++ b/third_party/googleapis/google/cloud/orgpolicy/v2/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( name = "orgpolicy_php_gapic", srcs = [":orgpolicy_proto_with_info"], grpc_service_config = "orgpolicy_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "orgpolicy_v2.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/orgpolicy/v2/constraint.proto b/third_party/googleapis/google/cloud/orgpolicy/v2/constraint.proto index 14e3530cd..ed6374bbd 100644 --- a/third_party/googleapis/google/cloud/orgpolicy/v2/constraint.proto +++ b/third_party/googleapis/google/cloud/orgpolicy/v2/constraint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/orgpolicy/v2/orgpolicy.proto b/third_party/googleapis/google/cloud/orgpolicy/v2/orgpolicy.proto index 2b7bad833..2194409db 100644 --- a/third_party/googleapis/google/cloud/orgpolicy/v2/orgpolicy.proto +++ b/third_party/googleapis/google/cloud/orgpolicy/v2/orgpolicy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto index d3ef4b3c3..c21dcbf93 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/agentendpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.osconfig.agentendpoint.v1; +import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/osconfig/agentendpoint/v1/inventory.proto"; @@ -31,7 +32,8 @@ service AgentEndpointService { option (google.api.default_host) = "osconfig.googleapis.com"; // Stream established by client to receive Task notifications. - rpc ReceiveTaskNotification(ReceiveTaskNotificationRequest) returns (stream ReceiveTaskNotificationResponse) { + rpc ReceiveTaskNotification(ReceiveTaskNotificationRequest) + returns (stream ReceiveTaskNotificationResponse) { option (google.api.method_signature) = "instance_id_token,agent_version"; } @@ -41,24 +43,31 @@ service AgentEndpointService { } // Signals an intermediary progress checkpoint in task execution. - rpc ReportTaskProgress(ReportTaskProgressRequest) returns (ReportTaskProgressResponse) { - option (google.api.method_signature) = "instance_id_token,task_id,task_type"; + rpc ReportTaskProgress(ReportTaskProgressRequest) + returns (ReportTaskProgressResponse) { + option (google.api.method_signature) = + "instance_id_token,task_id,task_type"; } // Signals that the task execution is complete and optionally returns the next // task. - rpc ReportTaskComplete(ReportTaskCompleteRequest) returns (ReportTaskCompleteResponse) { - option (google.api.method_signature) = "instance_id_token,task_id,task_type,error_message"; + rpc ReportTaskComplete(ReportTaskCompleteRequest) + returns (ReportTaskCompleteResponse) { + option (google.api.method_signature) = + "instance_id_token,task_id,task_type,error_message"; } // Registers the agent running on the VM. rpc RegisterAgent(RegisterAgentRequest) returns (RegisterAgentResponse) { - option (google.api.method_signature) = "instance_id_token,agent_version,supported_capabilities"; + option (google.api.method_signature) = + "instance_id_token,agent_version,supported_capabilities"; } // Reports the VMs current inventory. - rpc ReportInventory(ReportInventoryRequest) returns (ReportInventoryResponse) { - option (google.api.method_signature) = "instance_id_token,inventory_checksum,inventory"; + rpc ReportInventory(ReportInventoryRequest) + returns (ReportInventoryResponse) { + option (google.api.method_signature) = + "instance_id_token,inventory_checksum,inventory"; } } @@ -75,9 +84,7 @@ message ReceiveTaskNotificationRequest { // The streaming rpc message that will notify the agent when it has a task // it needs to perform on the instance. -message ReceiveTaskNotificationResponse { - -} +message ReceiveTaskNotificationResponse {} // A request message for signaling the start of a task execution. message StartNextTaskRequest { @@ -108,9 +115,9 @@ message ReportTaskProgressRequest { // // Progress must include the appropriate message based on this enum as // specified below: - // APPLY_PATCHES = ApplyPatchesTaskProgress - // EXEC_STEP = Progress not supported for this type. - // APPLY_CONFIG_TASK = ApplyConfigTaskProgress + // `APPLY_PATCHES` = ApplyPatchesTaskProgress + // `EXEC_STEP` = Progress not supported for this type. + // `APPLY_CONFIG_TASK` = ApplyConfigTaskProgress TaskType task_type = 3 [(google.api.field_behavior) = REQUIRED]; // Intermediate progress of the current task. @@ -168,9 +175,7 @@ message ReportTaskCompleteRequest { } // The response message after the agent signaled the current task complete. -message ReportTaskCompleteResponse { - -} +message ReportTaskCompleteResponse {} // The request message for registering the agent. message RegisterAgentRequest { @@ -186,7 +191,8 @@ message RegisterAgentRequest { // PATCH_GA // GUEST_POLICY_BETA // CONFIG_V1 - repeated string supported_capabilities = 3 [(google.api.field_behavior) = REQUIRED]; + repeated string supported_capabilities = 3 + [(google.api.field_behavior) = REQUIRED]; // The operating system long name. // For example 'Debian GNU/Linux 9' or 'Microsoft Window Server 2019 @@ -205,9 +211,7 @@ message RegisterAgentRequest { } // The response message after the agent registered. -message RegisterAgentResponse { - -} +message RegisterAgentResponse {} // The request message for having the agent report inventory. message ReportInventoryRequest { @@ -216,13 +220,13 @@ message ReportInventoryRequest { // where the audience is 'osconfig.googleapis.com' and the format is 'full'. string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. This is a client created checksum that should be generated based on the - // contents of the reported inventory. This will be used by the service to - // determine if it has the latest version of inventory. + // Required. This is a client created checksum that should be generated based + // on the contents of the reported inventory. This will be used by the + // service to determine if it has the latest version of inventory. string inventory_checksum = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. This is the details of the inventory. Should only be provided if the - // inventory has changed since the last report, or if instructed by the + // Optional. This is the details of the inventory. Should only be provided if + // the inventory has changed since the last report, or if instructed by the // service to provide full inventory. Inventory inventory = 3 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/config_common.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/config_common.proto index 11826601a..c959d58bc 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/config_common.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/config_common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/inventory.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/inventory.proto index d0c01b66f..b3c00b3c9 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/inventory.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/inventory.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.osconfig.agentendpoint.v1; +import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "google/type/date.proto"; @@ -110,6 +111,16 @@ message Inventory { // Information related to the a standard versioned package. This includes // package info for APT, Yum, Zypper, and Googet package managers. message VersionedPackage { + // Information related to the actuall source of the versioned package. This + // includes source package name and version if available. + message Source { + // Required. The name of the source package. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The version of the source package. + string version = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // The name of the package. string package_name = 1; @@ -118,6 +129,9 @@ message Inventory { // The version of the package. string version = 3; + + // Optional. The source of the package. + Source source = 4 [(google.api.field_behavior) = OPTIONAL]; } // Details related to a Zypper Patch. diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/os_policy.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/os_policy.proto index 8f24c375e..218276d58 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/os_policy.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/os_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -51,8 +51,8 @@ message OSPolicy { message File { // Specifies a file available via some URI. message Remote { - // Required. URI from which to fetch the object. It should contain both the - // protocol and path following the format `{protocol}://{location}`. + // Required. URI from which to fetch the object. It should contain both + // the protocol and path following the format `{protocol}://{location}`. string uri = 1 [(google.api.field_behavior) = REQUIRED]; // SHA256 checksum of the remote file. @@ -174,8 +174,8 @@ message OSPolicy { repeated string properties = 2; } - // Required. The desired state the agent should maintain for this package. The - // default is to ensure the package is installed. + // Required. The desired state the agent should maintain for this package. + // The default is to ensure the package is installed. DesiredState desired_state = 1 [(google.api.field_behavior) = REQUIRED]; // A system package. @@ -221,8 +221,8 @@ message OSPolicy { DEB_SRC = 2; } - // Required. Type of archive files in this repository. The default behavior is - // DEB. + // Required. Type of archive files in this repository. The default + // behavior is DEB. ArchiveType archive_type = 1 [(google.api.field_behavior) = REQUIRED]; // Required. URI for this repository. @@ -231,8 +231,8 @@ message OSPolicy { // Required. Distribution of this repository. string distribution = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. List of components for this repository. Must contain at least one - // item. + // Required. List of components for this repository. Must contain at + // least one item. repeated string components = 4 [(google.api.field_behavior) = REQUIRED]; // URI of the key file for this repository. The agent maintains a @@ -244,8 +244,8 @@ message OSPolicy { // repo file that is managed at // `/etc/yum.repos.d/google_osconfig.repo`. message YumRepository { - // Required. A one word, unique name for this repository. This is the `repo - // id` in the yum config file and also the `display_name` if + // Required. A one word, unique name for this repository. This is the + // `repo id` in the yum config file and also the `display_name` if // `display_name` is omitted. This id is also used as the unique // identifier when checking for resource conflicts. string id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -264,8 +264,8 @@ message OSPolicy { // repo file that is managed at // `/etc/zypp/repos.d/google_osconfig.repo`. message ZypperRepository { - // Required. A one word, unique name for this repository. This is the `repo - // id` in the zypper config file and also the `display_name` if + // Required. A one word, unique name for this repository. This is the + // `repo id` in the zypper config file and also the `display_name` if // `display_name` is omitted. This id is also used as the unique // identifier when checking for GuestPolicy conflicts. string id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -355,10 +355,10 @@ message OSPolicy { string output_file_path = 5; } - // Required. What to run to validate this resource is in the desired state. - // An exit code of 100 indicates "in desired state", and exit code of 101 - // indicates "not in desired state". Any other exit code indicates a - // failure running validate. + // Required. What to run to validate this resource is in the desired + // state. An exit code of 100 indicates "in desired state", and exit code + // of 101 indicates "not in desired state". Any other exit code indicates + // a failure running validate. Exec validate = 1 [(google.api.field_behavior) = REQUIRED]; // What to run to bring this resource into the desired state. @@ -440,6 +440,4 @@ message OSPolicy { FileResource file = 5; } } - - } diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto index 98bc3f6de..e6bbed093 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/patch_jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -127,9 +127,7 @@ message YumSettings { } // Googet patching is performed by running `googet update`. -message GooSettings { - -} +message GooSettings {} // Zypper patching is performed by running `zypper patch`. // See also https://en.opensuse.org/SDB:Zypper_manual. @@ -242,21 +240,23 @@ message ExecStep { // Common configurations for an ExecStep. message ExecStepConfig { - // The interpreter used to execute the a file. + // The interpreter used to run the file. enum Interpreter { - // Deprecated, defaults to NONE for compatibility reasons. + // If the interpreter is not specified, the value defaults to `NONE`. INTERPRETER_UNSPECIFIED = 0; - // Invalid for a Windows ExecStepConfig. For a Linux ExecStepConfig, the - // interpreter will be parsed from the shebang line of the script if - // unspecified. + // Indicates that the file is run as follows on each operating system: + // + For Linux VMs, the file is ran as an executable and the interpreter + // might be parsed from the [shebang + // line](https://wikipedia.org/wiki/Shebang_(Unix)) of the file. + // + For Windows VM, this value is not supported. NONE = 3; - // Indicates that the script will be run with /bin/sh on Linux and cmd - // on windows. + // Indicates that the file is run with `/bin/sh` on Linux and `cmd` + // on Windows. SHELL = 1; - // Indicates that the file will be run with PowerShell. + // Indicates that the file is run with PowerShell. POWERSHELL = 2; } diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/tasks.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/tasks.proto index 84151dd2e..4dc9efcbe 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/tasks.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1/tasks.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -189,7 +189,8 @@ message ExecStepTaskOutput { // Required. The final state of the exec step. State state = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The exit code received from the script which ran as part of the exec step. + // Required. The exit code received from the script which ran as part of the + // exec step. int32 exit_code = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -211,12 +212,13 @@ message ApplyConfigTask { // projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id} // Used for reporting and logging by the agent. string os_policy_assignment = 3 [(google.api.resource_reference) = { - type: "osconfig.googleapis.com/OSPolicyAssignment" - }]; + type: "osconfig.googleapis.com/OSPolicyAssignment" + }]; // List of resources associated with the policy to be set to their // desired state. - repeated .google.cloud.osconfig.agentendpoint.v1.OSPolicy.Resource resources = 4; + repeated .google.cloud.osconfig.agentendpoint.v1.OSPolicy.Resource + resources = 4; } // List of os policies to be applied for the instance. @@ -256,8 +258,8 @@ message ApplyConfigTaskOutput { // projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id@revision_id} // Used for reporting and logging by the agent. string os_policy_assignment = 2 [(google.api.resource_reference) = { - type: "osconfig.googleapis.com/OSPolicyAssignment" - }]; + type: "osconfig.googleapis.com/OSPolicyAssignment" + }]; // Results of applying desired state config for the OS policy resources. repeated OSPolicyResourceCompliance os_policy_resource_compliances = 3; diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto index 3e6d5bd66..5bf2fcd25 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/agentendpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/guest_policies.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/guest_policies.proto index 6a21c17a3..d26fa8437 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/guest_policies.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/guest_policies.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto index c5babb5c8..011b857ea 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/patch_jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto index d30cf76a5..6c8a318b6 100644 --- a/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto +++ b/third_party/googleapis/google/cloud/osconfig/agentendpoint/v1beta/tasks.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/logging/patch_job_log.proto b/third_party/googleapis/google/cloud/osconfig/logging/patch_job_log.proto index 9a277599c..9c74f6635 100644 --- a/third_party/googleapis/google/cloud/osconfig/logging/patch_job_log.proto +++ b/third_party/googleapis/google/cloud/osconfig/logging/patch_job_log.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/inventory.proto b/third_party/googleapis/google/cloud/osconfig/v1/inventory.proto index 2807b85cb..96e0b23f8 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/inventory.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/inventory.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/os_policy.proto b/third_party/googleapis/google/cloud/osconfig/v1/os_policy.proto index f19111996..b67eb9c6f 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/os_policy.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/os_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignment_reports.proto b/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignment_reports.proto index c7f102b2d..1a290ee5e 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignment_reports.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignment_reports.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignments.proto b/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignments.proto index 73e10aeb6..e1bfb7e1f 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignments.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/os_policy_assignments.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/osconfig_common.proto b/third_party/googleapis/google/cloud/osconfig/v1/osconfig_common.proto index baa6e3729..1a6491cdd 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/osconfig_common.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/osconfig_common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/osconfig_service.proto b/third_party/googleapis/google/cloud/osconfig/v1/osconfig_service.proto index c6afe3fa5..e4a5f2c5a 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/osconfig_service.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/osconfig_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/osconfig_zonal_service.proto b/third_party/googleapis/google/cloud/osconfig/v1/osconfig_zonal_service.proto index 671ed3c0d..8a868362f 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/osconfig_zonal_service.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/osconfig_zonal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/patch_deployments.proto b/third_party/googleapis/google/cloud/osconfig/v1/patch_deployments.proto index ac45652d9..4df0e3710 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/patch_deployments.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/patch_deployments.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/patch_jobs.proto b/third_party/googleapis/google/cloud/osconfig/v1/patch_jobs.proto index 7c0b34007..ee3df8740 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/patch_jobs.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/patch_jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1/vulnerability.proto b/third_party/googleapis/google/cloud/osconfig/v1/vulnerability.proto index b758df3ba..f586776da 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1/vulnerability.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1/vulnerability.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/config_common.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/config_common.proto index 2fe52e14a..bdd367422 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/config_common.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/config_common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto index 0d6eafc7f..bc72baa49 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/instance_os_policies_compliance.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/inventory.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/inventory.proto index a63416ae1..14ef85a51 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/inventory.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/inventory.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy.proto index f822ecb4c..cee06059e 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto index 6b00fb9e0..721443718 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignment_reports.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignments.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignments.proto index 86b0cbb88..fb15f83c0 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignments.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/os_policy_assignments.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_common.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_common.proto index 49bfeca0c..b21cb07b5 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_common.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto index 439efa9d7..e91fcc3b9 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/osconfig_zonal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1alpha/vulnerability.proto b/third_party/googleapis/google/cloud/osconfig/v1alpha/vulnerability.proto index 2ea9784fd..79c11b6dc 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1alpha/vulnerability.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1alpha/vulnerability.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1beta/guest_policies.proto b/third_party/googleapis/google/cloud/osconfig/v1beta/guest_policies.proto index 5534bb9d8..bd5208b45 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1beta/guest_policies.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1beta/guest_policies.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_common.proto b/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_common.proto index 959b39c51..54485c379 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_common.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_common.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_service.proto b/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_service.proto index 8882f2314..2f6f1c7e9 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_service.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1beta/osconfig_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto b/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto index 127cc6a2c..bb08ef047 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1beta/patch_deployments.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/osconfig/v1beta/patch_jobs.proto b/third_party/googleapis/google/cloud/osconfig/v1beta/patch_jobs.proto index c691bc7e6..c55d0bd3d 100644 --- a/third_party/googleapis/google/cloud/osconfig/v1beta/patch_jobs.proto +++ b/third_party/googleapis/google/cloud/osconfig/v1beta/patch_jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/oslogin/common/common.proto b/third_party/googleapis/google/cloud/oslogin/common/common.proto index c0a15cc71..966eb3252 100644 --- a/third_party/googleapis/google/cloud/oslogin/common/common.proto +++ b/third_party/googleapis/google/cloud/oslogin/common/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/oslogin/v1/oslogin.proto b/third_party/googleapis/google/cloud/oslogin/v1/oslogin.proto index 7a63ca6db..b16413151 100644 --- a/third_party/googleapis/google/cloud/oslogin/v1/oslogin.proto +++ b/third_party/googleapis/google/cloud/oslogin/v1/oslogin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/oslogin/v1alpha/oslogin.proto b/third_party/googleapis/google/cloud/oslogin/v1alpha/oslogin.proto index a57aa6db4..ac33c93e1 100644 --- a/third_party/googleapis/google/cloud/oslogin/v1alpha/oslogin.proto +++ b/third_party/googleapis/google/cloud/oslogin/v1alpha/oslogin.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/oslogin/v1beta/oslogin.proto b/third_party/googleapis/google/cloud/oslogin/v1beta/oslogin.proto index a49b7df44..ca497079a 100644 --- a/third_party/googleapis/google/cloud/oslogin/v1beta/oslogin.proto +++ b/third_party/googleapis/google/cloud/oslogin/v1beta/oslogin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -308,10 +308,7 @@ message SignSshPublicKeyRequest { // The SSH public key to sign. string ssh_public_key = 1; - // The parent project and zone for the signing request. This is needed to - // properly ensure per-organization ISS processing and potentially to provide - // for the possibility of zone-specific certificates used in the signing - // process. + // The parent project and region for the signing request. string parent = 2; } diff --git a/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore.proto b/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore.proto index daf159df6..0114beec7 100644 --- a/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore.proto +++ b/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,6 +41,10 @@ option (google.api.resource_definition) = { type: "compute.googleapis.com/Address" pattern: "projects/{project}/regions/{region}/addresses/{address}" }; +option (google.api.resource_definition) = { + type: "iam.googleapis.com/ServiceAccount" + pattern: "projects/{project}/serviceAccounts/{service_account}" +}; // Service describing handlers for resources // Configures and manages parallelstore resources. @@ -118,6 +122,42 @@ service Parallelstore { metadata_type: "OperationMetadata" }; } + + // ImportData copies data from Cloud Storage to Parallelstore. + rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/locations/*/instances/*}:importData" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ImportDataResponse" + metadata_type: "ImportDataMetadata" + }; + } + + // ExportData copies data from Parallelstore to Cloud Storage + rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/locations/*/instances/*}:exportData" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportDataResponse" + metadata_type: "ExportDataMetadata" + }; + } +} + +// Type of transfer that occurred. +enum TransferType { + // Zero is an illegal value. + TRANSFER_TYPE_UNSPECIFIED = 0; + + // Imports to Parallelstore. + IMPORT = 1; + + // Exports from Parallelstore. + EXPORT = 2; } // A Parallelstore instance. @@ -212,7 +252,7 @@ message Instance { (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } ]; - // Optional. Immutable. Contains the id of allocated IP address range + // Optional. Immutable. Contains the id of the allocated IP address range // associated with the private service access connection for example, // "test-default" associated with IP range 10.0.0.0/29. If no range id is // provided all ranges will be considered. @@ -221,6 +261,17 @@ message Instance { (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "compute.googleapis.com/Address" } ]; + + // Output only. Immutable. Contains the id of the allocated IP address range + // associated with the private service access connection for example, + // "test-default" associated with IP range 10.0.0.0/29. This field is + // populated by the service and and contains the value currently used by the + // service. + string effective_reserved_ip_range = 14 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "compute.googleapis.com/Address" } + ]; } // Message for requesting list of Instances @@ -401,3 +452,269 @@ message OperationMetadata { // Output only. API version used to start the operation. string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Google Cloud Storage as a source. +message SourceGcsBucket { + // Required. URI to a Cloud Storage object in format: + // 'gs:///'. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Google Cloud Storage as a destination. +message DestinationGcsBucket { + // Required. URI to a Cloud Storage object in format: + // 'gs:///'. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Pa as a source. +message SourceParallelstore { + // Optional. Root directory path to the Paralellstore filesystem, starting + // with '/'. Defaults to '/' if unset. + string path = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Parallelstore as a destination. +message DestinationParallelstore { + // Optional. Root directory path to the Paralellstore filesystem, starting + // with '/'. Defaults to '/' if unset. + string path = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message representing the request importing data from parallelstore to Cloud +// Storage. +message ImportDataRequest { + // The source of the data being imported into the parallelstore instance. + oneof source { + // Cloud Storage source. + SourceGcsBucket source_gcs_bucket = 2; + } + + // The destination of the data being imported into the parallelstore instance. + oneof destination { + // Parallelstore destination. + DestinationParallelstore destination_parallelstore = 3; + } + + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and 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). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. User-specified Service Account (SA) credentials to be used when + // performing the transfer. + // Format: `projects/{project_id}/serviceAccounts/{service_account}` + // If unspecified, the Parallelstore service agent is used: + // service-@gcp-sa-parallelstore.iam.gserviceaccount.com) + string service_account = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "iam.googleapis.com/ServiceAccount" + } + ]; +} + +// Message representing the request exporting data from Cloud Storage to +// parallelstore. +message ExportDataRequest { + // The source of the data exported from the parallelstore instance. + oneof source { + // Parallelstore source. + SourceParallelstore source_parallelstore = 2; + } + + // The destination of the data exported from the parallelstore instance. + oneof destination { + // Cloud Storage destination. + DestinationGcsBucket destination_gcs_bucket = 3; + } + + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and 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). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. User-specified Service Account (SA) credentials to be used when + // performing the transfer. + // Format: `projects/{project_id}/serviceAccounts/{service_account}` + // If unspecified, the Parallelstore service agent is used: + // service-@gcp-sa-parallelstore.iam.gserviceaccount.com) + string service_account = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "iam.googleapis.com/ServiceAccount" + } + ]; +} + +// ImportDataResponse is the response returned from ImportData rpc. +message ImportDataResponse {} + +// ImportDataMetadata contains import data operation metadata +message ImportDataMetadata { + // Contains the data transfer operation metadata. + TransferOperationMetadata operation_metadata = 1; + + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ExportDataResponse is the response returned from ExportData rpc +message ExportDataResponse {} + +// ExportDataMetadata contains export data operation metadata +message ExportDataMetadata { + // Contains the data transfer operation metadata. + TransferOperationMetadata operation_metadata = 1; + + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents the metadata of the long-running operation. +message TransferOperationMetadata { + // The source of transfer operation. + oneof source { + // Output only. Parallelstore source. + SourceParallelstore source_parallelstore = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cloud Storage source. + SourceGcsBucket source_gcs_bucket = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The destination of transfer operation. + oneof destination { + // Output only. Cloud Storage destination. + DestinationGcsBucket destination_gcs_bucket = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Parallelstore destination. + DestinationParallelstore destination_parallelstore = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Information about the progress of the transfer operation. + TransferCounters counters = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of transfer occurring. + TransferType transfer_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A collection of counters that report the progress of a transfer operation. +message TransferCounters { + // Objects found in the data source that are scheduled to be transferred, + // excluding any that are filtered based on object conditions or skipped due + // to sync. + int64 objects_found = 1; + + // Bytes found in the data source that are scheduled to be transferred, + // excluding any that are filtered based on object conditions or skipped due + // to sync. + int64 bytes_found = 2; + + // Objects in the data source that are not transferred because they already + // exist in the data destination. + int64 objects_skipped = 3; + + // Bytes in the data source that are not transferred because they already + // exist in the data destination. + int64 bytes_skipped = 4; + + // Objects that are copied to the data destination. + int64 objects_copied = 5; + + // Bytes that are copied to the data destination. + int64 bytes_copied = 6; +} diff --git a/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore_v1beta.yaml b/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore_v1beta.yaml index 8a3b77125..5877340b0 100644 --- a/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore_v1beta.yaml +++ b/third_party/googleapis/google/cloud/parallelstore/v1beta/parallelstore_v1beta.yaml @@ -56,7 +56,7 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=1181190 - documentation_uri: http://cloud/parallelstore?hl=en + documentation_uri: https://cloud.google.com/parallelstore?hl=en api_short_name: parallelstore github_label: 'api: parallelstore' doc_tag_prefix: parallelstore @@ -96,4 +96,3 @@ publishing: common: destinations: - PACKAGE_MANAGER - proto_reference_documentation_uri: http://cloud/parallelstore/docs/apis diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/account_manager_transactions.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/account_manager_transactions.proto index 0401a094e..becba1127 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/account_manager_transactions.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/account_manager_transactions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/managed_accounts.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/managed_accounts.proto index 4b451eded..101f66f6e 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/managed_accounts.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/accountmanager/v1/managed_accounts.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto index 12b535b79..78fe61a2d 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/logs.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/logs.proto index 6a8640032..88b0a4c60 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/logs.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/logs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/participants.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/participants.proto index 39091e72e..931c67a7a 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/participants.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/participants.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto index dc295890f..29e2f3e14 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/rules.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/rules.proto index 936838673..910ed5255 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/rules.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/rules.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto index 8cf96446f..bca311bf0 100644 --- a/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto +++ b/third_party/googleapis/google/cloud/paymentgateway/issuerswitch/v1/transactions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/phishingprotection/BUILD.bazel b/third_party/googleapis/google/cloud/phishingprotection/BUILD.bazel index 34590ef83..b7288f984 100644 --- a/third_party/googleapis/google/cloud/phishingprotection/BUILD.bazel +++ b/third_party/googleapis/google/cloud/phishingprotection/BUILD.bazel @@ -23,7 +23,7 @@ ruby_cloud_gapic_library( "ruby-cloud-gem-name=google-cloud-phishing_protection", "ruby-cloud-env-prefix=PHISHING_PROTECTION", "ruby-cloud-wrapper-of=v1beta1:0.8", - "ruby-cloud-product-url=https://cloud.google.com/phishing-protection", + "ruby-cloud-product-url=https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection", "ruby-cloud-api-id=phishingprotection.googleapis.com", "ruby-cloud-api-shortname=phishingprotection", "ruby-cloud-migration-version=0.10", diff --git a/third_party/googleapis/google/cloud/phishingprotection/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/phishingprotection/v1beta1/BUILD.bazel index fa63ab39a..9110d3a47 100644 --- a/third_party/googleapis/google/cloud/phishingprotection/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/phishingprotection/v1beta1/BUILD.bazel @@ -268,7 +268,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-phishing_protection-v1beta1", "ruby-cloud-env-prefix=PHISHING_PROTECTION", - "ruby-cloud-product-url=https://cloud.google.com/phishing-protection", + "ruby-cloud-product-url=https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection", "ruby-cloud-api-id=phishingprotection.googleapis.com", "ruby-cloud-api-shortname=phishingprotection", "ruby-cloud-service-override=PhishingProtectionServiceV1Beta1=PhishingProtectionService", diff --git a/third_party/googleapis/google/cloud/phishingprotection/v1beta1/phishingprotection.proto b/third_party/googleapis/google/cloud/phishingprotection/v1beta1/phishingprotection.proto index 82eb6af44..cda5d72dc 100644 --- a/third_party/googleapis/google/cloud/phishingprotection/v1beta1/phishingprotection.proto +++ b/third_party/googleapis/google/cloud/phishingprotection/v1beta1/phishingprotection.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/policysimulator/v1/explanations.proto b/third_party/googleapis/google/cloud/policysimulator/v1/explanations.proto index 8999b4dc6..30f049d2e 100644 --- a/third_party/googleapis/google/cloud/policysimulator/v1/explanations.proto +++ b/third_party/googleapis/google/cloud/policysimulator/v1/explanations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/policysimulator/v1/simulator.proto b/third_party/googleapis/google/cloud/policysimulator/v1/simulator.proto index 217e6e247..fdb93814c 100644 --- a/third_party/googleapis/google/cloud/policysimulator/v1/simulator.proto +++ b/third_party/googleapis/google/cloud/policysimulator/v1/simulator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3/troubleshooter.proto b/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3/troubleshooter.proto index 6a2928b1d..d4f638627 100644 --- a/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3/troubleshooter.proto +++ b/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3/troubleshooter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3beta/troubleshooter.proto b/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3beta/troubleshooter.proto index 2d4c9429a..1a9adaf6b 100644 --- a/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3beta/troubleshooter.proto +++ b/third_party/googleapis/google/cloud/policytroubleshooter/iam/v3beta/troubleshooter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/policytroubleshooter/v1/checker.proto b/third_party/googleapis/google/cloud/policytroubleshooter/v1/checker.proto index ebefb7b6a..cdfecfcc2 100644 --- a/third_party/googleapis/google/cloud/policytroubleshooter/v1/checker.proto +++ b/third_party/googleapis/google/cloud/policytroubleshooter/v1/checker.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/policytroubleshooter/v1/explanations.proto b/third_party/googleapis/google/cloud/policytroubleshooter/v1/explanations.proto index 18d4611eb..bbf3c149e 100644 --- a/third_party/googleapis/google/cloud/policytroubleshooter/v1/explanations.proto +++ b/third_party/googleapis/google/cloud/policytroubleshooter/v1/explanations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/privatecatalog/v1beta1/private_catalog.proto b/third_party/googleapis/google/cloud/privatecatalog/v1beta1/private_catalog.proto index 1ee777143..e7b441bd4 100644 --- a/third_party/googleapis/google/cloud/privatecatalog/v1beta1/private_catalog.proto +++ b/third_party/googleapis/google/cloud/privatecatalog/v1beta1/private_catalog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/privilegedaccessmanager/BUILD.bazel b/third_party/googleapis/google/cloud/privilegedaccessmanager/BUILD.bazel new file mode 100644 index 000000000..3dfe24620 --- /dev/null +++ b/third_party/googleapis/google/cloud/privilegedaccessmanager/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-privileged_access_manager. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for privilegedaccessmanager. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "privilegedaccessmanager_ruby_wrapper", + srcs = ["//google/cloud/privilegedaccessmanager/v1:privilegedaccessmanager_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-privileged_access_manager", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/privilegedaccessmanager/v1:privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-privileged_access_manager-ruby", + deps = [ + ":privilegedaccessmanager_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/BUILD.bazel b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/BUILD.bazel new file mode 100644 index 000000000..8e3e59ac0 --- /dev/null +++ b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/BUILD.bazel @@ -0,0 +1,398 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "privilegedaccessmanager_proto", + srcs = [ + "privilegedaccessmanager.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "privilegedaccessmanager_proto_with_info", + deps = [ + ":privilegedaccessmanager_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "privilegedaccessmanager_java_proto", + deps = [":privilegedaccessmanager_proto"], +) + +java_grpc_library( + name = "privilegedaccessmanager_java_grpc", + srcs = [":privilegedaccessmanager_proto"], + deps = [":privilegedaccessmanager_java_proto"], +) + +java_gapic_library( + name = "privilegedaccessmanager_java_gapic", + srcs = [":privilegedaccessmanager_proto_with_info"], + gapic_yaml = "privilegedaccessmanager_gapic.yaml", + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + test_deps = [ + ":privilegedaccessmanager_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":privilegedaccessmanager_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "privilegedaccessmanager_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManagerClientHttpJsonTest", + "com.google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManagerClientTest", + ], + runtime_deps = [":privilegedaccessmanager_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-privilegedaccessmanager-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":privilegedaccessmanager_java_gapic", + ":privilegedaccessmanager_java_grpc", + ":privilegedaccessmanager_java_proto", + ":privilegedaccessmanager_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "privilegedaccessmanager_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/privilegedaccessmanager/apiv1/privilegedaccessmanagerpb", + protos = [":privilegedaccessmanager_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", + ], +) + +go_gapic_library( + name = "privilegedaccessmanager_go_gapic", + srcs = [":privilegedaccessmanager_proto_with_info"], + grpc_service_config = None, + importpath = "cloud.google.com/go/privilegedaccessmanager/apiv1;privilegedaccessmanager", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", + deps = [ + ":privilegedaccessmanager_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-privilegedaccessmanager-v1-go", + deps = [ + ":privilegedaccessmanager_go_gapic", + ":privilegedaccessmanager_go_gapic_srcjar-metadata.srcjar", + ":privilegedaccessmanager_go_gapic_srcjar-snippets.srcjar", + ":privilegedaccessmanager_go_gapic_srcjar-test.srcjar", + ":privilegedaccessmanager_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "privilegedaccessmanager_py_gapic", + srcs = [":privilegedaccessmanager_proto"], + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "privilegedaccessmanager_py_gapic_test", + srcs = [ + "privilegedaccessmanager_py_gapic_pytest.py", + "privilegedaccessmanager_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":privilegedaccessmanager_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "privilegedaccessmanager-v1-py", + deps = [ + ":privilegedaccessmanager_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "privilegedaccessmanager_php_proto", + deps = [":privilegedaccessmanager_proto"], +) + +php_gapic_library( + name = "privilegedaccessmanager_php_gapic", + srcs = [":privilegedaccessmanager_proto_with_info"], + gapic_yaml = "privilegedaccessmanager_gapic.yaml", + grpc_service_config = None, + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", + deps = [ + ":privilegedaccessmanager_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-privilegedaccessmanager-v1-php", + deps = [ + ":privilegedaccessmanager_php_gapic", + ":privilegedaccessmanager_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "privilegedaccessmanager_nodejs_gapic", + package_name = "@google-cloud/privilegedaccessmanager", + src = ":privilegedaccessmanager_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = None, + package = "google.cloud.privilegedaccessmanager.v1", + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "privilegedaccessmanager-v1-nodejs", + deps = [ + ":privilegedaccessmanager_nodejs_gapic", + ":privilegedaccessmanager_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "privilegedaccessmanager_ruby_proto", + deps = [":privilegedaccessmanager_proto"], +) + +ruby_grpc_library( + name = "privilegedaccessmanager_ruby_grpc", + srcs = [":privilegedaccessmanager_proto"], + deps = [":privilegedaccessmanager_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "privilegedaccessmanager_ruby_gapic", + srcs = [":privilegedaccessmanager_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-privileged_access_manager-v1", + ], + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", + deps = [ + ":privilegedaccessmanager_ruby_grpc", + ":privilegedaccessmanager_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-privilegedaccessmanager-v1-ruby", + deps = [ + ":privilegedaccessmanager_ruby_gapic", + ":privilegedaccessmanager_ruby_grpc", + ":privilegedaccessmanager_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "privilegedaccessmanager_csharp_proto", + extra_opts = [], + deps = [":privilegedaccessmanager_proto"], +) + +csharp_grpc_library( + name = "privilegedaccessmanager_csharp_grpc", + srcs = [":privilegedaccessmanager_proto"], + deps = [":privilegedaccessmanager_csharp_proto"], +) + +csharp_gapic_library( + name = "privilegedaccessmanager_csharp_gapic", + srcs = [":privilegedaccessmanager_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "privilegedaccessmanager_v1.yaml", + transport = "grpc+rest", + deps = [ + ":privilegedaccessmanager_csharp_grpc", + ":privilegedaccessmanager_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-privilegedaccessmanager-v1-csharp", + deps = [ + ":privilegedaccessmanager_csharp_gapic", + ":privilegedaccessmanager_csharp_grpc", + ":privilegedaccessmanager_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "privilegedaccessmanager_cc_proto", + deps = [":privilegedaccessmanager_proto"], +) + +cc_grpc_library( + name = "privilegedaccessmanager_cc_grpc", + srcs = [":privilegedaccessmanager_proto"], + grpc_only = True, + deps = [":privilegedaccessmanager_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager.proto b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager.proto new file mode 100644 index 000000000..2d49ecb85 --- /dev/null +++ b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager.proto @@ -0,0 +1,1248 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.privilegedaccessmanager.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.PrivilegedAccessManager.V1"; +option go_package = "cloud.google.com/go/privilegedaccessmanager/apiv1/privilegedaccessmanagerpb;privilegedaccessmanagerpb"; +option java_multiple_files = true; +option java_outer_classname = "PrivilegedAccessManagerProto"; +option java_package = "com.google.cloud.privilegedaccessmanager.v1"; +option php_namespace = "Google\\Cloud\\PrivilegedAccessManager\\V1"; +option ruby_package = "Google::Cloud::PrivilegedAccessManager::V1"; +option (google.api.resource_definition) = { + type: "privilegedaccessmanager.googleapis.com/OrganizationLocation" + pattern: "organizations/{organization}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "privilegedaccessmanager.googleapis.com/FolderLocation" + pattern: "folders/{folder}/locations/{location}" +}; + +// This API allows customers to manage temporary, request based privileged +// access to their resources. +// +// It defines the following resource model: +// +// * A collection of `Entitlement` resources. An entitlement allows configuring +// (among other things): +// +// * Some kind of privileged access that users can request. +// * A set of users called _requesters_ who can request this access. +// * A maximum duration for which the access can be requested. +// * An optional approval workflow which must be satisfied before access is +// granted. +// +// * A collection of `Grant` resources. A grant is a request by a requester to +// get the privileged access specified in an entitlement for some duration. +// +// After the approval workflow as specified in the entitlement is satisfied, +// the specified access is given to the requester. The access is automatically +// taken back after the requested duration is over. +service PrivilegedAccessManager { + option (google.api.default_host) = "privilegedaccessmanager.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // CheckOnboardingStatus reports the onboarding status for a + // project/folder/organization. Any findings reported by this API need to be + // fixed before PAM can be used on the resource. + rpc CheckOnboardingStatus(CheckOnboardingStatusRequest) + returns (CheckOnboardingStatusResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}:checkOnboardingStatus" + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*}:checkOnboardingStatus" + } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*}:checkOnboardingStatus" + } + }; + } + + // Lists entitlements in a given project/folder/organization and location. + rpc ListEntitlements(ListEntitlementsRequest) + returns (ListEntitlementsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/entitlements" + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*}/entitlements" + } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*}/entitlements" + } + }; + option (google.api.method_signature) = "parent"; + } + + // `SearchEntitlements` returns entitlements on which the caller has the + // specified access. + rpc SearchEntitlements(SearchEntitlementsRequest) + returns (SearchEntitlementsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/entitlements:search" + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*}/entitlements:search" + } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*}/entitlements:search" + } + }; + } + + // Gets details of a single entitlement. + rpc GetEntitlement(GetEntitlementRequest) returns (Entitlement) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/entitlements/*}" + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/entitlements/*}" + } + additional_bindings { + get: "/v1/{name=folders/*/locations/*/entitlements/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new entitlement in a given project/folder/organization and + // location. + rpc CreateEntitlement(CreateEntitlementRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/entitlements" + body: "entitlement" + additional_bindings { + post: "/v1/{parent=organizations/*/locations/*}/entitlements" + body: "entitlement" + } + additional_bindings { + post: "/v1/{parent=folders/*/locations/*}/entitlements" + body: "entitlement" + } + }; + option (google.api.method_signature) = "parent,entitlement,entitlement_id"; + option (google.longrunning.operation_info) = { + response_type: "Entitlement" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single entitlement. This method can only be called when there + // are no in-progress (ACTIVE/ACTIVATING/REVOKING) grants under the + // entitlement. + rpc DeleteEntitlement(DeleteEntitlementRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/entitlements/*}" + additional_bindings { + delete: "/v1/{name=organizations/*/locations/*/entitlements/*}" + } + additional_bindings { + delete: "/v1/{name=folders/*/locations/*/entitlements/*}" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Entitlement" + metadata_type: "OperationMetadata" + }; + } + + // Updates the entitlement specified in the request. Updated fields in the + // entitlement need to be specified in an update mask. The changes made to an + // entitlement are applicable only on future grants of the entitlement. + // However, if new approvers are added or existing approvers are removed from + // the approval workflow, the changes are effective on existing grants. + // + // The following fields are not supported for updates: + // + // * All immutable fields + // * Entitlement name + // * Resource name + // * Resource type + // * Adding an approval workflow in an entitlement which previously had no + // approval workflow. + // * Deleting the approval workflow from an entitlement. + // * Adding or deleting a step in the approval workflow (only one step is + // supported) + // + // Note that updates are allowed on the list of approvers in an approval + // workflow step. + rpc UpdateEntitlement(UpdateEntitlementRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{entitlement.name=projects/*/locations/*/entitlements/*}" + body: "entitlement" + additional_bindings { + patch: "/v1/{entitlement.name=organizations/*/locations/*/entitlements/*}" + body: "entitlement" + } + additional_bindings { + patch: "/v1/{entitlement.name=folders/*/locations/*/entitlements/*}" + body: "entitlement" + } + }; + option (google.api.method_signature) = "entitlement,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Entitlement" + metadata_type: "OperationMetadata" + }; + } + + // Lists grants for a given entitlement. + rpc ListGrants(ListGrantsRequest) returns (ListGrantsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/entitlements/*}/grants" + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*/entitlements/*}/grants" + } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*/entitlements/*}/grants" + } + }; + option (google.api.method_signature) = "parent"; + } + + // `SearchGrants` returns grants that are related to the calling user in the + // specified way. + rpc SearchGrants(SearchGrantsRequest) returns (SearchGrantsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/entitlements/*}/grants:search" + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*/entitlements/*}/grants:search" + } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*/entitlements/*}/grants:search" + } + }; + } + + // Get details of a single grant. + rpc GetGrant(GetGrantRequest) returns (Grant) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}" + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}" + } + additional_bindings { + get: "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new grant in a given project and location. + rpc CreateGrant(CreateGrantRequest) returns (Grant) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/entitlements/*}/grants" + body: "grant" + additional_bindings { + post: "/v1/{parent=organizations/*/locations/*/entitlements/*}/grants" + body: "grant" + } + additional_bindings { + post: "/v1/{parent=folders/*/locations/*/entitlements/*}/grants" + body: "grant" + } + }; + option (google.api.method_signature) = "parent,grant"; + } + + // `ApproveGrant` is used to approve a grant. This method can only be called + // on a grant when it's in the `APPROVAL_AWAITED` state. This operation can't + // be undone. + rpc ApproveGrant(ApproveGrantRequest) returns (Grant) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}:approve" + body: "*" + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}:approve" + body: "*" + } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}:approve" + body: "*" + } + }; + } + + // `DenyGrant` is used to deny a grant. This method can only be called on a + // grant when it's in the `APPROVAL_AWAITED` state. This operation can't be + // undone. + rpc DenyGrant(DenyGrantRequest) returns (Grant) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}:deny" + body: "*" + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}:deny" + body: "*" + } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}:deny" + body: "*" + } + }; + } + + // `RevokeGrant` is used to immediately revoke access for a grant. This method + // can be called when the grant is in a non-terminal state. + rpc RevokeGrant(RevokeGrantRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/entitlements/*/grants/*}:revoke" + body: "*" + additional_bindings { + post: "/v1/{name=organizations/*/locations/*/entitlements/*/grants/*}:revoke" + body: "*" + } + additional_bindings { + post: "/v1/{name=folders/*/locations/*/entitlements/*/grants/*}:revoke" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "Grant" + metadata_type: "OperationMetadata" + }; + } +} + +// Request message for `CheckOnboardingStatus` method. +message CheckOnboardingStatusRequest { + // Required. The resource for which the onboarding status should be checked. + // Should be in one of the following formats: + // + // * `projects/{project-number|project-id}/locations/{region}` + // * `folders/{folder-number}/locations/{region}` + // * `organizations/{organization-number}/locations/{region}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Entitlement" + } + ]; +} + +// Response message for `CheckOnboardingStatus` method. +message CheckOnboardingStatusResponse { + // Finding represents an issue which prevents PAM from functioning properly + // for this resource. + message Finding { + // PAM's service account is being denied access by Cloud IAM. + // This can be fixed by granting a role that contains the missing + // permissions to the service account or exempting it from deny policies if + // they are blocking the access. + message IAMAccessDenied { + // List of permissions that are being denied. + repeated string missing_permissions = 1; + } + + oneof finding_type { + // PAM's service account is being denied access by Cloud IAM. + IAMAccessDenied iam_access_denied = 1; + } + } + + // The service account that PAM uses to act on this resource. + string service_account = 1; + + // List of issues that are preventing PAM from functioning for this resource + // and need to be fixed to complete onboarding. Some issues might not be + // detected or reported. + repeated Finding findings = 2; +} + +// An entitlement defines the eligibility of a set of users to obtain +// predefined access for some time possibly after going through an approval +// workflow. +message Entitlement { + option (google.api.resource) = { + type: "privilegedaccessmanager.googleapis.com/Entitlement" + pattern: "projects/{project}/locations/{location}/entitlements/{entitlement}" + pattern: "folders/{folder}/locations/{location}/entitlements/{entitlement}" + pattern: "organizations/{organization}/locations/{location}/entitlements/{entitlement}" + plural: "entitlements" + singular: "entitlement" + }; + + // Defines how a requester must provide a justification when requesting + // access. + message RequesterJustificationConfig { + // The justification is not mandatory but can be provided in any of the + // supported formats. + message NotMandatory {} + + // The requester has to provide a justification in the form of a string. + message Unstructured {} + + // This is a required field and the user must explicitly opt out if a + // justification from the requester isn't mandatory. + oneof justification_type { + // This option means the requester isn't required to provide a + // justification. + NotMandatory not_mandatory = 1; + + // This option means the requester must provide a string as + // justification. If this is selected, the server allows the requester + // to provide a justification but doesn't validate it. + Unstructured unstructured = 2; + } + } + + // AdditionalNotificationTargets includes email addresses to be notified. + message AdditionalNotificationTargets { + // Optional. Additional email addresses to be notified when a principal + // (requester) is granted access. + repeated string admin_email_recipients = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional email address to be notified about an eligible + // entitlement. + repeated string requester_email_recipients = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Different states an entitlement can be in. + enum State { + // Unspecified state. This value is never returned by the server. + STATE_UNSPECIFIED = 0; + + // The entitlement is being created. + CREATING = 1; + + // The entitlement is available for requesting access. + AVAILABLE = 2; + + // The entitlement is being deleted. + DELETING = 3; + + // The entitlement has been deleted. + DELETED = 4; + + // The entitlement is being updated. + UPDATING = 5; + } + + // Identifier. Name of the entitlement. + // Possible formats: + // + // * `organizations/{organization-number}/locations/{region}/entitlements/{entitlement-id}` + // * `folders/{folder-number}/locations/{region}/entitlements/{entitlement-id}` + // * `projects/{project-id|project-number}/locations/{region}/entitlements/{entitlement-id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Create time stamp. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time stamp. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Who can create grants using this entitlement. This list should + // contain at most one entry. + repeated AccessControlEntry eligible_users = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The approvals needed before access are granted to a requester. No + // approvals are needed if this field is null. + ApprovalWorkflow approval_workflow = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // The access granted to a requester on successful approval. + PrivilegedAccess privileged_access = 7; + + // Required. The maximum amount of time that access is granted for a request. + // A requester can ask for a duration less than this, but never more. + google.protobuf.Duration max_request_duration = 8 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Current state of this entitlement. + State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The manner in which the requester should provide a justification + // for requesting access. + RequesterJustificationConfig requester_justification_config = 10 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Additional email addresses to be notified based on actions taken. + AdditionalNotificationTargets additional_notification_targets = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // An `etag` is used for optimistic concurrency control as a way to prevent + // simultaneous updates to the same entitlement. An `etag` is returned in the + // response to `GetEntitlement` and the caller should put the `etag` in the + // request to `UpdateEntitlement` so that their change is applied on + // the same version. If this field is omitted or if there is a mismatch while + // updating an entitlement, then the server rejects the request. + string etag = 12; +} + +// AccessControlEntry is used to control who can do some operation. +message AccessControlEntry { + // Optional. Users who are allowed for the operation. Each entry should be a + // valid v1 IAM principal identifier. The format for these is documented at: + // https://cloud.google.com/iam/docs/principal-identifiers#v1 + repeated string principals = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Different types of approval workflows that can be used to gate privileged +// access granting. +message ApprovalWorkflow { + oneof approval_workflow { + // An approval workflow where users designated as approvers review and act + // on the grants. + ManualApprovals manual_approvals = 1; + } +} + +// A manual approval workflow where users who are designated as approvers +// need to call the `ApproveGrant`/`DenyGrant` APIs for a grant. The workflow +// can consist of multiple serial steps where each step defines who can act as +// approver in that step and how many of those users should approve before the +// workflow moves to the next step. +// +// This can be used to create approval workflows such as: +// +// * Require an approval from any user in a group G. +// * Require an approval from any k number of users from a Group G. +// * Require an approval from any user in a group G and then from a user U. +// +// A single user might be part of the `approvers` ACL for multiple steps in this +// workflow, but they can only approve once and that approval is only considered +// to satisfy the approval step at which it was granted. +message ManualApprovals { + // Step represents a logical step in a manual approval workflow. + message Step { + // Optional. The potential set of approvers in this step. This list must + // contain at most one entry. + repeated AccessControlEntry approvers = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. How many users from the above list need to approve. If there + // aren't enough distinct users in the list, then the workflow indefinitely + // blocks. Should always be greater than 0. 1 is the only supported value. + int32 approvals_needed = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Additional email addresses to be notified when a grant is + // pending approval. + repeated string approver_email_recipients = 3 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Do the approvers need to provide a justification for their + // actions? + bool require_approver_justification = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of approval steps in this workflow. These steps are followed + // in the specified order sequentially. Only 1 step is supported. + repeated Step steps = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Privileged access that this service can be used to gate. +message PrivilegedAccess { + // GcpIamAccess represents IAM based access control on a Google Cloud + // resource. Refer to https://cloud.google.com/iam/docs to understand more + // about IAM. + message GcpIamAccess { + // IAM Role bindings that are created after a successful grant. + message RoleBinding { + // Required. IAM role to be granted. + // https://cloud.google.com/iam/docs/roles-overview. + string role = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The expression field of the IAM condition to be associated + // with the role. If specified, a user with an active grant for this + // entitlement is able to access the resource only if this condition + // evaluates to true for their request. + // + // This field uses the same CEL format as IAM and supports all attributes + // that IAM supports, except tags. + // https://cloud.google.com/iam/docs/conditions-overview#attributes. + string condition_expression = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The type of this resource. + string resource_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the resource. + string resource = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Role bindings that are created on successful grant. + repeated RoleBinding role_bindings = 4 + [(google.api.field_behavior) = REQUIRED]; + } + + oneof access_type { + // Access to a Google Cloud resource through IAM. + GcpIamAccess gcp_iam_access = 1; + } +} + +// Message for requesting list of entitlements. +message ListEntitlementsRequest { + // Required. The parent which owns the entitlement resources. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Entitlement" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing entitlements. +message ListEntitlementsResponse { + // The list of entitlements. + repeated Entitlement entitlements = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for `SearchEntitlements` method. +message SearchEntitlementsRequest { + // Different types of access a user can have on the entitlement resource. + enum CallerAccessType { + // Unspecified access type. + CALLER_ACCESS_TYPE_UNSPECIFIED = 0; + + // The user has access to create grants using this entitlement. + GRANT_REQUESTER = 1; + + // The user has access to approve/deny grants created under this + // entitlement. + GRANT_APPROVER = 2; + } + + // Required. The parent which owns the entitlement resources. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Entitlement" + } + ]; + + // Required. Only entitlements where the calling user has this access are + // returned. + CallerAccessType caller_access_type = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only entitlements matching this filter are returned in the + // response. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Requested page size. The server may return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for `SearchEntitlements` method. +message SearchEntitlementsResponse { + // The list of entitlements. + repeated Entitlement entitlements = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// Message for getting an entitlement. +message GetEntitlementRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privilegedaccessmanager.googleapis.com/Entitlement" + } + ]; +} + +// Message for creating an entitlement. +message CreateEntitlementRequest { + // Required. Name of the parent resource for the entitlement. + // Possible formats: + // + // * `organizations/{organization-number}/locations/{region}` + // * `folders/{folder-number}/locations/{region}` + // * `projects/{project-id|project-number}/locations/{region}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Entitlement" + } + ]; + + // Required. The ID to use for this entitlement. This becomes the last part of + // the resource name. + // + // This value should be 4-63 characters in length, and valid characters are + // "[a-z]", "[0-9]", and "-". The first character should be from [a-z]. + // + // This value should be unique among all other entitlements under the + // specified `parent`. + string entitlement_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + Entitlement entitlement = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server knows to + // ignore the request if it has already been completed. The server guarantees + // this for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request and returns the + // previous operation's response. 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). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting an entitlement. +message DeleteEntitlementRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privilegedaccessmanager.googleapis.com/Entitlement" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server knows to + // ignore the request if it has already been completed. The server guarantees + // this for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, any child grant under this entitlement is also + // deleted. (Otherwise, the request only works if the entitlement has no child + // grant.) + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for updating an entitlement. +message UpdateEntitlementRequest { + // Required. The entitlement resource that is updated. + Entitlement entitlement = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. A field is overwritten if, and only + // if, it is in the mask. Any immutable fields set in the mask are ignored by + // the server. Repeated fields and map fields are only allowed in the last + // position of a `paths` string and overwrite the existing values. Hence an + // update to a repeated field or a map should contain the entire list of + // values. The fields specified in the update_mask are relative to the + // resource and not to the request. + // (e.g. `MaxRequestDuration`; *not* `entitlement.MaxRequestDuration`) + // A value of '*' for this field refers to full replacement of the resource. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// This is to ensure that the `Grants` and `ProducerGrants` proto are byte +// compatible. +// A grant represents a request from a user for obtaining the access specified +// in an entitlement they are eligible for. +message Grant { + option (google.api.resource) = { + type: "privilegedaccessmanager.googleapis.com/Grant" + pattern: "projects/{project}/locations/{location}/entitlements/{entitlement}/grants/{grant}" + pattern: "folders/{folder}/locations/{location}/entitlements/{entitlement}/grants/{grant}" + pattern: "organizations/{organization}/locations/{location}/entitlements/{entitlement}/grants/{grant}" + plural: "grants" + singular: "grant" + }; + + // Timeline of a grant describing what happened to it and when. + message Timeline { + // A single operation on the grant. + message Event { + // An event representing that a grant was requested. + message Requested { + // Output only. The time at which this grant expires unless the approval + // workflow completes. If omitted, then the request never expires. + google.protobuf.Timestamp expire_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An event representing that the grant was approved. + message Approved { + // Output only. The reason provided by the approver for approving the + // grant. + string reason = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Username of the user who approved the grant. + string actor = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An event representing that the grant was denied. + message Denied { + // Output only. The reason provided by the approver for denying the + // grant. + string reason = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Username of the user who denied the grant. + string actor = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An event representing that the grant was revoked. + message Revoked { + // Output only. The reason provided by the user for revoking the grant. + string reason = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Username of the user who revoked the grant. + string actor = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An event representing that the grant has been scheduled to be + // activated later. + message Scheduled { + // Output only. The time at which the access is granted. + google.protobuf.Timestamp scheduled_activation_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An event representing that the grant was successfully + // activated. + message Activated {} + + // An event representing that the grant activation failed. + message ActivationFailed { + // Output only. The error that occurred while activating the grant. + google.rpc.Status error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An event representing that the grant was expired. + message Expired {} + + // An event representing that the grant has ended. + message Ended {} + + // An event representing that the policy bindings made by this grant were + // modified externally. + message ExternallyModified {} + + oneof event { + // The grant was requested. + Requested requested = 2; + + // The grant was approved. + Approved approved = 3; + + // The grant was denied. + Denied denied = 4; + + // The grant was revoked. + Revoked revoked = 5; + + // The grant has been scheduled to give access. + Scheduled scheduled = 6; + + // The grant was successfully activated to give access. + Activated activated = 7; + + // There was a non-retriable error while trying to give access. + ActivationFailed activation_failed = 8; + + // The approval workflow did not complete in the necessary duration, + // and so the grant is expired. + Expired expired = 10; + + // Access given by the grant ended automatically as the approved + // duration was over. + Ended ended = 11; + + // The policy bindings made by grant have been modified outside of PAM. + ExternallyModified externally_modified = 12; + } + + // Output only. The time (as recorded at server) when this event occurred. + google.protobuf.Timestamp event_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The events that have occurred on this grant. This list + // contains entries in the same order as they occurred. The first entry is + // always be of type `Requested` and there is always at least one entry in + // this array. + repeated Event events = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Audit trail for the access provided by this grant. + message AuditTrail { + // Output only. The time at which access was given. + google.protobuf.Timestamp access_grant_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the system removed access. This could be + // because of an automatic expiry or because of a revocation. + // + // If unspecified, then access hasn't been removed yet. + google.protobuf.Timestamp access_remove_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Different states a grant can be in. + enum State { + // Unspecified state. This value is never returned by the server. + STATE_UNSPECIFIED = 0; + + // The entitlement had an approval workflow configured and this grant is + // waiting for the workflow to complete. + APPROVAL_AWAITED = 1; + + // The approval workflow completed with a denied result. No access is + // granted for this grant. This is a terminal state. + DENIED = 3; + + // The approval workflow completed successfully with an approved result or + // none was configured. Access is provided at an appropriate time. + SCHEDULED = 4; + + // Access is being given. + ACTIVATING = 5; + + // Access was successfully given and is currently active. + ACTIVE = 6; + + // The system could not give access due to a non-retriable error. This is a + // terminal state. + ACTIVATION_FAILED = 7; + + // Expired after waiting for the approval workflow to complete. This is a + // terminal state. + EXPIRED = 8; + + // Access is being revoked. + REVOKING = 9; + + // Access was revoked by a user. This is a terminal state. + REVOKED = 10; + + // System took back access as the requested duration was over. This is a + // terminal state. + ENDED = 11; + } + + // Identifier. Name of this grant. + // Possible formats: + // + // * `organizations/{organization-number}/locations/{region}/entitlements/{entitlement-id}/grants/{grant-id}` + // * `folders/{folder-number}/locations/{region}/entitlements/{entitlement-id}/grants/{grant-id}` + // * `projects/{project-id|project-number}/locations/{region}/entitlements/{entitlement-id}/grants/{grant-id}` + // + // The last segment of this name (`{grant-id}`) is autogenerated. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Create time stamp. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time stamp. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Username of the user who created this grant. + string requester = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The amount of time access is needed for. This value should be + // less than the `max_request_duration` value of the entitlement. + google.protobuf.Duration requested_duration = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Justification of why this access is needed. + Justification justification = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Current state of this grant. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timeline of this grant. + Timeline timeline = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The access that would be granted by this grant. + PrivilegedAccess privileged_access = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Audit trail of access provided by this grant. If unspecified + // then access was never granted. + AuditTrail audit_trail = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Additional email addresses to notify for all the actions + // performed on the grant. + repeated string additional_email_recipients = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Flag set by the PAM system to indicate that policy bindings + // made by this grant have been modified from outside PAM. + // + // After it is set, this flag remains set forever irrespective of the grant + // state. A `true` value here indicates that PAM no longer has any certainty + // on the access a user has because of this grant. + bool externally_modified = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Justification represents a justification for requesting access. +message Justification { + oneof justification { + // A free form textual justification. The system only ensures that this + // is not empty. No other kind of validation is performed on the string. + string unstructured_justification = 1; + } +} + +// Message for requesting list of grants. +message ListGrantsRequest { + // Required. The parent resource which owns the grants. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; + + // Optional. Requested page size. The server may return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing grants. +message ListGrantsResponse { + // The list of grants. + repeated Grant grants = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for `SearchGrants` method. +message SearchGrantsRequest { + // Different types of relationships a user can have with a grant. + enum CallerRelationshipType { + // Unspecified caller relationship type. + CALLER_RELATIONSHIP_TYPE_UNSPECIFIED = 0; + + // The user created this grant by calling `CreateGrant` earlier. + HAD_CREATED = 1; + + // The user is an approver for the entitlement that this grant is parented + // under and can currently approve/deny it. + CAN_APPROVE = 2; + + // The caller had successfully approved/denied this grant earlier. + HAD_APPROVED = 3; + } + + // Required. The parent which owns the grant resources. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; + + // Required. Only grants which the caller is related to by this relationship + // are returned in the response. + CallerRelationshipType caller_relationship = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Only grants matching this filter are returned in the response. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Requested page size. The server may return fewer items than + // requested. If unspecified, server picks an appropriate default. + int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for `SearchGrants` method. +message SearchGrantsResponse { + // The list of grants. + repeated Grant grants = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// Message for getting a grant. +message GetGrantRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; +} + +// Request message for `ApproveGrant` method. +message ApproveGrantRequest { + // Required. Name of the grant resource which is being approved. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; + + // Optional. The reason for approving this grant. This is required if the + // `require_approver_justification` field of the `ManualApprovals` workflow + // used in this grant is true. + string reason = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for `DenyGrant` method. +message DenyGrantRequest { + // Required. Name of the grant resource which is being denied. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; + + // Optional. The reason for denying this grant. This is required if + // `require_approver_justification` field of the `ManualApprovals` workflow + // used in this grant is true. + string reason = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for `RevokeGrant` method. +message RevokeGrantRequest { + // Required. Name of the grant resource which is being revoked. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; + + // Optional. The reason for revoking this grant. + string reason = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for creating a grant +message CreateGrantRequest { + // Required. Name of the parent entitlement for which this grant is being + // requested. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "privilegedaccessmanager.googleapis.com/Grant" + } + ]; + + // Required. The resource being created. + Grant grant = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server knows to + // ignore the request if it has already been completed. The server guarantees + // this for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager_gapic.yaml b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager_gapic.yaml new file mode 100644 index 000000000..fe25b8836 --- /dev/null +++ b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager_gapic.yaml @@ -0,0 +1,29 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +interfaces: +- name: google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager + methods: + - name: CreateEntitlement + long_running: + initial_poll_delay_millis: 5000 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 45000 + total_poll_timeout_millis: 900000 + - name: UpdateEntitlement + long_running: + initial_poll_delay_millis: 5000 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 45000 + total_poll_timeout_millis: 900000 + - name: DeleteEntitlement + long_running: + initial_poll_delay_millis: 5000 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 45000 + total_poll_timeout_millis: 900000 + - name: RevokeGrant + long_running: + initial_poll_delay_millis: 5000 + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 45000 + total_poll_timeout_millis: 900000 diff --git a/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager_v1.yaml b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager_v1.yaml new file mode 100644 index 000000000..1066158bc --- /dev/null +++ b/third_party/googleapis/google/cloud/privilegedaccessmanager/v1/privilegedaccessmanager_v1.yaml @@ -0,0 +1,174 @@ +type: google.api.Service +config_version: 3 +name: privilegedaccessmanager.googleapis.com +title: Privileged Access Manager API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager +- name: google.longrunning.Operations + +types: +- name: google.cloud.privilegedaccessmanager.v1.OperationMetadata + +documentation: + summary: |- + Privileged Access Manager (PAM) helps you on your journey towards least + privilege and helps mitigate risks tied to privileged access misuse or + abuse. PAM allows you to shift from always-on standing privileges towards + on-demand access with just-in-time, time-bound, and approval-based access + elevations. PAM allows IAM administrators to create entitlements that can + grant just-in-time, temporary access to any resource scope. Requesters can + explore eligible entitlements and request the access needed for their + task. Approvers are notified when approvals await their + decision. Streamlined workflows facilitated by using PAM can support + various use cases, including emergency access for incident responders, + time-boxed access for developers for critical deployment or maintenance, + temporary access for operators for data ingestion and audits, JIT access + to service accounts for automated tasks, and more. + overview: |- + ## Overview + + Privileged Access Manager (PAM) is a Google Cloud native, managed solution + to secure, manage and audit privileged access while ensuring operational + velocity and developer productivity. + + PAM enables just-in-time, time-bound, approval-based access elevations, + and auditing of privileged access elevations and activity. PAM lets you + define the rules of who can request access, what they can request access + to, and if they should be granted access with or without approvals based + on the sensitivity of the access and emergency of the situation. + + ## Concepts + + ### Entitlement + + An entitlement is an eligibility or license that allows specified users + (requesters) to request and obtain access to specified resources subject + to a set of conditions such as duration, etc. entitlements can be granted + to both human and non-human principals. + + ### Grant + + A grant is an instance of active usage against the entitlement. A user can + place a request for a grant against an entitlement. The request may be + forwarded to an approver for their decision. Once approved, the grant is + activated, ultimately giving the user access (roles/permissions) on a + resource per the criteria specified in entitlement. + + ### How does PAM work + + PAM creates and uses a service agent (Google-managed service account) to + perform the required IAM policy changes for granting access at a + specific + resource/access scope. The service agent requires getIAMPolicy and + setIAMPolicy permissions at the appropriate (or higher) access scope + - + Organization/Folder/Project to make policy changes on the resources listed + in PAM entitlements. + + When enabling PAM for a resource scope, the user/ principal performing + that action should have the appropriate permissions at that resource + scope + (resourcemanager.{projects|folders|organizations}.setIamPolicy, + resourcemanager.{projects|folders|organizations}.getIamPolicy, and + resourcemanager.{projects|folders|organizations}.get) to list and grant + the service agent/account the required access to perform IAM policy + changes. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + additional_bindings: + - get: '/v1/{name=organizations/*/locations/*}' + - get: '/v1/{name=folders/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + additional_bindings: + - get: '/v1/{name=organizations/*}/locations' + - get: '/v1/{name=folders/*}/locations' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + additional_bindings: + - delete: '/v1/{name=organizations/*/locations/*/operations/*}' + - delete: '/v1/{name=folders/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + additional_bindings: + - get: '/v1/{name=organizations/*/locations/*/operations/*}' + - get: '/v1/{name=folders/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + additional_bindings: + - get: '/v1/{name=organizations/*/locations/*}/operations' + - get: '/v1/{name=folders/*/locations/*}/operations' + +authentication: + rules: + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.privilegedaccessmanager.v1.PrivilegedAccessManager.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1587284&template=2001118 + documentation_uri: https://cloud.google.com/iam/docs/pam-overview + api_short_name: privilegedaccessmanager + github_label: 'api: privilegedaccessmanager' + doc_tag_prefix: privilegedaccessmanager + organization: CLOUD + library_settings: + - version: google.cloud.privilegedaccessmanager.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/iam/docs/reference/pam/rpc diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto b/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto index 484aa1956..799b20f63 100644 --- a/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto +++ b/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/common.proto b/third_party/googleapis/google/cloud/pubsublite/v1/common.proto index 3f08c3086..861425e84 100644 --- a/third_party/googleapis/google/cloud/pubsublite/v1/common.proto +++ b/third_party/googleapis/google/cloud/pubsublite/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/cursor.proto b/third_party/googleapis/google/cloud/pubsublite/v1/cursor.proto index 95a62fc36..b4f44061f 100644 --- a/third_party/googleapis/google/cloud/pubsublite/v1/cursor.proto +++ b/third_party/googleapis/google/cloud/pubsublite/v1/cursor.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/publisher.proto b/third_party/googleapis/google/cloud/pubsublite/v1/publisher.proto index 20b924384..0f1592f14 100644 --- a/third_party/googleapis/google/cloud/pubsublite/v1/publisher.proto +++ b/third_party/googleapis/google/cloud/pubsublite/v1/publisher.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/subscriber.proto b/third_party/googleapis/google/cloud/pubsublite/v1/subscriber.proto index a02b3cf5d..2483645f7 100644 --- a/third_party/googleapis/google/cloud/pubsublite/v1/subscriber.proto +++ b/third_party/googleapis/google/cloud/pubsublite/v1/subscriber.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/topic_stats.proto b/third_party/googleapis/google/cloud/pubsublite/v1/topic_stats.proto index f6226d3e0..c15f4b5ef 100644 --- a/third_party/googleapis/google/cloud/pubsublite/v1/topic_stats.proto +++ b/third_party/googleapis/google/cloud/pubsublite/v1/topic_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/api_entities.proto b/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/api_entities.proto index 54a3247c5..21aa1d8be 100644 --- a/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/api_entities.proto +++ b/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/api_entities.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/rapidmigrationassessment.proto b/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/rapidmigrationassessment.proto index 580fd4e6b..7f12af5bc 100644 --- a/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/rapidmigrationassessment.proto +++ b/third_party/googleapis/google/cloud/rapidmigrationassessment/v1/rapidmigrationassessment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recaptchaenterprise/v1/BUILD.bazel b/third_party/googleapis/google/cloud/recaptchaenterprise/v1/BUILD.bazel index 1d5d7bc96..b90947124 100644 --- a/third_party/googleapis/google/cloud/recaptchaenterprise/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/recaptchaenterprise/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "recaptchaenterprise_proto", @@ -27,6 +30,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/rpc:status_proto", "@com_google_protobuf//:empty_proto", @@ -46,6 +50,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -107,6 +112,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -155,6 +161,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -195,6 +202,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -232,6 +240,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -262,6 +271,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -316,6 +326,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -362,6 +373,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto b/third_party/googleapis/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto index e01e13f71..be727b9e9 100644 --- a/third_party/googleapis/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto +++ b/third_party/googleapis/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package google.cloud.recaptchaenterprise.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -598,6 +599,8 @@ message Assessment { option (google.api.resource) = { type: "recaptchaenterprise.googleapis.com/Assessment" pattern: "projects/{project}/assessments/{assessment}" + plural: "assessments" + singular: "assessment" }; // Output only. Identifier. The resource name for the Assessment in the format @@ -646,10 +649,34 @@ message Assessment { // Output only. Fraud Signals specific to the users involved in a payment // transaction. FraudSignals fraud_signals = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Assessment returned when a site key, a token, and a phone + // number as `user_id` are provided. Account defender and SMS toll fraud + // protection need to be enabled. + PhoneFraudAssessment phone_fraud_assessment = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // The event being assessed. message Event { + // Setting that controls Fraud Prevention assessments. + enum FraudPrevention { + // Default, unspecified setting. If opted in for automatic detection, + // `fraud_prevention_assessment` is returned based on the request. + // Otherwise, `fraud_prevention_assessment` is returned if + // `transaction_data` is present in the `Event` and Fraud Prevention is + // enabled in the Google Cloud console. + FRAUD_PREVENTION_UNSPECIFIED = 0; + + // Enable Fraud Prevention for this assessment, if Fraud Prevention is + // enabled in the Google Cloud console. + ENABLED = 1; + + // Disable Fraud Prevention for this assessment, regardless of opt-in + // status or Google Cloud console settings. + DISABLED = 2; + } + // Optional. The user response token provided by the reCAPTCHA Enterprise // client-side integration on your site. string token = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -664,7 +691,10 @@ message Event { // Optional. The IP address in the request from the user's device related to // this event. - string user_ip_address = 4 [(google.api.field_behavior) = OPTIONAL]; + string user_ip_address = 4 [ + (google.api.field_info).format = IPV4_OR_IPV6, + (google.api.field_behavior) = OPTIONAL + ]; // Optional. The expected action for this type of event. This should be the // same action provided at token generation time on client-side platforms @@ -712,6 +742,10 @@ message Event { // for logged-in requests or login/registration requests, or by providing user // identifiers for guest actions like checkout. UserInfo user_info = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Fraud Prevention setting for this assessment. + FraudPrevention fraud_prevention = 17 + [(google.api.field_behavior) = OPTIONAL]; } // Transaction data associated with a payment protected by reCAPTCHA Enterprise. @@ -1088,6 +1122,33 @@ message FraudSignals { CardSignals card_signals = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Information about SMS toll fraud. +message SmsTollFraudVerdict { + // Reasons contributing to the SMS toll fraud verdict. + enum SmsTollFraudReason { + // Default unspecified reason + SMS_TOLL_FRAUD_REASON_UNSPECIFIED = 0; + + // The provided phone number was invalid + INVALID_PHONE_NUMBER = 1; + } + + // Output only. Probability of an SMS event being fraudulent. + // Values are from 0.0 (lowest) to 1.0 (highest). + float risk = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reasons contributing to the SMS toll fraud verdict. + repeated SmsTollFraudReason reasons = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Assessment for Phone Fraud +message PhoneFraudAssessment { + // Output only. Assessment of this phone event for risk of SMS toll fraud. + SmsTollFraudVerdict sms_toll_fraud_verdict = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Account defender risk assessment. message AccountDefenderAssessment { // Labels returned by account defender for this request. @@ -1244,7 +1305,7 @@ message ListFirewallPoliciesRequest { string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } -// Response to request to list firewall policies belonging to a key. +// Response to request to list firewall policies belonging to a project. message ListFirewallPoliciesResponse { // Policy details. repeated FirewallPolicy firewall_policies = 1; @@ -1352,6 +1413,8 @@ message Metrics { option (google.api.resource) = { type: "recaptchaenterprise.googleapis.com/Metrics" pattern: "projects/{project}/keys/{key}/metrics" + plural: "metrics" + singular: "metrics" }; // Output only. Identifier. The name of the metrics, in the format @@ -1390,6 +1453,8 @@ message Key { option (google.api.resource) = { type: "recaptchaenterprise.googleapis.com/Key" pattern: "projects/{project}/keys/{key}" + plural: "keys" + singular: "key" }; // Identifier. The resource name for the Key in the format @@ -1631,6 +1696,13 @@ message FirewallAction { // hitting the backend. message BlockAction {} + // An include reCAPTCHA script action involves injecting reCAPTCHA JavaScript + // code into the HTML returned by the site backend. This reCAPTCHA + // script is tasked with collecting user signals on the requested web page, + // issuing tokens as a cookie within the site domain, and enabling their + // utilization in subsequent page requests. + message IncludeRecaptchaScriptAction {} + // A redirect action returns a 307 (temporary redirect) response, pointing // the user to a ReCaptcha interstitial page to attach a token. message RedirectAction {} @@ -1663,6 +1735,10 @@ message FirewallAction { // error code. BlockAction block = 2; + // This action will inject reCAPTCHA JavaScript code into the HTML page + // returned by the site backend. + IncludeRecaptchaScriptAction include_recaptcha_script = 6; + // This action will redirect the request to a ReCaptcha interstitial to // attach a token. RedirectAction redirect = 5; @@ -1683,6 +1759,8 @@ message FirewallPolicy { option (google.api.resource) = { type: "recaptchaenterprise.googleapis.com/FirewallPolicy" pattern: "projects/{project}/firewallpolicies/{firewallpolicy}" + plural: "firewallPolicies" + singular: "firewallPolicy" }; // Identifier. The resource name for the FirewallPolicy in the format @@ -1798,7 +1876,7 @@ message SearchRelatedAccountGroupMembershipsRequest { string project = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + type: "cloudresourcemanager.googleapis.com/Project" } ]; @@ -1846,16 +1924,15 @@ message RelatedAccountGroupMembership { option (google.api.resource) = { type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" pattern: "projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}" + plural: "relatedAccountGroupMemberships" + singular: "relatedAccountGroupMembership" }; // Required. Identifier. The resource name for this membership in the format // `projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}`. string name = 1 [ (google.api.field_behavior) = IDENTIFIER, - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" - } + (google.api.field_behavior) = REQUIRED ]; // The unique stable account identifier of the member. The identifier @@ -1875,6 +1952,8 @@ message RelatedAccountGroup { option (google.api.resource) = { type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup" pattern: "projects/{project}/relatedaccountgroups/{relatedaccountgroup}" + plural: "relatedAccountGroups" + singular: "relatedAccountGroup" }; // Required. Identifier. The resource name for the related account group in @@ -1882,10 +1961,7 @@ message RelatedAccountGroup { // `projects/{project}/relatedaccountgroups/{related_account_group}`. string name = 1 [ (google.api.field_behavior) = IDENTIFIER, - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup" - } + (google.api.field_behavior) = REQUIRED ]; } @@ -1923,6 +1999,9 @@ message WafSettings { // Fastly FASTLY = 3; + + // Cloudflare + CLOUDFLARE = 4; } // Required. The WAF service that uses this key. diff --git a/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel index da185a5dc..66518a1ba 100644 --- a/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "recaptchaenterprise_proto", @@ -43,6 +46,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -105,6 +109,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -152,6 +157,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -192,6 +198,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -229,6 +236,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -259,6 +267,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -314,6 +323,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -324,6 +334,7 @@ load( csharp_proto_library( name = "recaptchaenterprise_csharp_proto", + extra_opts = [], deps = [":recaptchaenterprise_proto"], ) @@ -360,6 +371,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto b/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto index 3172a6047..002868344 100644 --- a/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto +++ b/third_party/googleapis/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -401,6 +401,24 @@ message Assessment { } message Event { + // Setting that controls Fraud Prevention assessments. + enum FraudPrevention { + // Default, unspecified setting. If opted in for automatic detection, + // `fraud_prevention_assessment` is returned based on the request. + // Otherwise, `fraud_prevention_assessment` is returned if + // `transaction_data` is present in the `Event` and Fraud Prevention is + // enabled in the Google Cloud console. + FRAUD_PREVENTION_UNSPECIFIED = 0; + + // Enable Fraud Prevention for this assessment, if Fraud Prevention is + // enabled in the Google Cloud console. + ENABLED = 1; + + // Disable Fraud Prevention for this assessment, regardless of opt-in + // status or the Google Cloud console settings. + DISABLED = 2; + } + // Optional. The user response token provided by the reCAPTCHA Enterprise // client-side integration on your site. string token = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -431,6 +449,10 @@ message Event { // FraudPreventionAssessment component in the response. TransactionData transaction_data = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Fraud Prevention setting for this Assessment. + FraudPrevention fraud_prevention = 17 + [(google.api.field_behavior) = OPTIONAL]; } // Transaction data associated with a payment protected by reCAPTCHA Enterprise. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog.proto index b2c918884..e86d6ffed 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog_service.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog_service.proto index 659b9749f..8df6c321b 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog_service.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/catalog_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/common.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/common.proto index a3c91c975..cb828c502 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/common.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/import.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/import.proto index 2f9cf509c..9ec2b1462 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/import.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/import.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.proto index 41b51a635..dbbfef4fc 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_service.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_service.proto index fcb6262ae..dd55c87cd 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_service.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto index 664612236..95070bb7f 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/recommendationengine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event.proto index ee0d33405..bfbd1fc5d 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event_service.proto b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event_service.proto index 6ee85e8c5..bd6190e42 100644 --- a/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event_service.proto +++ b/third_party/googleapis/google/cloud/recommendationengine/v1beta1/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/logging/v1/action_log.proto b/third_party/googleapis/google/cloud/recommender/logging/v1/action_log.proto index 4db39b67e..7558aae86 100644 --- a/third_party/googleapis/google/cloud/recommender/logging/v1/action_log.proto +++ b/third_party/googleapis/google/cloud/recommender/logging/v1/action_log.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/logging/v1beta1/action_log.proto b/third_party/googleapis/google/cloud/recommender/logging/v1beta1/action_log.proto index 5d1c4b1a4..c72dd9bc6 100644 --- a/third_party/googleapis/google/cloud/recommender/logging/v1beta1/action_log.proto +++ b/third_party/googleapis/google/cloud/recommender/logging/v1beta1/action_log.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1/insight.proto b/third_party/googleapis/google/cloud/recommender/v1/insight.proto index 8022297e9..5ac30e242 100644 --- a/third_party/googleapis/google/cloud/recommender/v1/insight.proto +++ b/third_party/googleapis/google/cloud/recommender/v1/insight.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1/insight_type_config.proto b/third_party/googleapis/google/cloud/recommender/v1/insight_type_config.proto index 457d6fbca..575c9d1fc 100644 --- a/third_party/googleapis/google/cloud/recommender/v1/insight_type_config.proto +++ b/third_party/googleapis/google/cloud/recommender/v1/insight_type_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1/recommendation.proto b/third_party/googleapis/google/cloud/recommender/v1/recommendation.proto index ad0f71b0f..a526a0a85 100644 --- a/third_party/googleapis/google/cloud/recommender/v1/recommendation.proto +++ b/third_party/googleapis/google/cloud/recommender/v1/recommendation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1/recommender_config.proto b/third_party/googleapis/google/cloud/recommender/v1/recommender_config.proto index 19daba2c1..fb4946b7e 100644 --- a/third_party/googleapis/google/cloud/recommender/v1/recommender_config.proto +++ b/third_party/googleapis/google/cloud/recommender/v1/recommender_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1/recommender_service.proto b/third_party/googleapis/google/cloud/recommender/v1/recommender_service.proto index eecb1ae81..9ce7c8f25 100644 --- a/third_party/googleapis/google/cloud/recommender/v1/recommender_service.proto +++ b/third_party/googleapis/google/cloud/recommender/v1/recommender_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1beta1/insight.proto b/third_party/googleapis/google/cloud/recommender/v1beta1/insight.proto index 55cdf44ef..b38da36a4 100644 --- a/third_party/googleapis/google/cloud/recommender/v1beta1/insight.proto +++ b/third_party/googleapis/google/cloud/recommender/v1beta1/insight.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1beta1/insight_type_config.proto b/third_party/googleapis/google/cloud/recommender/v1beta1/insight_type_config.proto index e910a3d26..6ca0a984f 100644 --- a/third_party/googleapis/google/cloud/recommender/v1beta1/insight_type_config.proto +++ b/third_party/googleapis/google/cloud/recommender/v1beta1/insight_type_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1beta1/recommendation.proto b/third_party/googleapis/google/cloud/recommender/v1beta1/recommendation.proto index b9bcd2c8b..9ddf2da4e 100644 --- a/third_party/googleapis/google/cloud/recommender/v1beta1/recommendation.proto +++ b/third_party/googleapis/google/cloud/recommender/v1beta1/recommendation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_config.proto b/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_config.proto index 834f17bea..de1047bbe 100644 --- a/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_config.proto +++ b/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_service.proto b/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_service.proto index e46e7a670..48101263c 100644 --- a/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_service.proto +++ b/third_party/googleapis/google/cloud/recommender/v1beta1/recommender_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/recommender/v1beta1/samples/list_recommendations.yaml b/third_party/googleapis/google/cloud/recommender/v1beta1/samples/list_recommendations.yaml deleted file mode 100644 index b3086c07d..000000000 --- a/third_party/googleapis/google/cloud/recommender/v1beta1/samples/list_recommendations.yaml +++ /dev/null @@ -1,18 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- title: List Recommendations - service: google.cloud.recommender.v1beta1.Recommender - description: | - List recommendations for a specified project, location, and recommender. - rpc: ListRecommendations - request: - - field: parent - value: "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER]" - response: - - define: recommendation = $resp - - print: ["Recommendation name: %s", recommendation.name] - - print: ["- description: %s", recommendation.description] - - print: ["- primary_impact.category: %s", recommendation.primary_impact.category] - - print: ["- state_info.state: %s", recommendation.state_info.state] - - print: ["- last_refresh_time: %s", recommendation.last_refresh_time] diff --git a/third_party/googleapis/google/cloud/redis/cluster/v1/BUILD.bazel b/third_party/googleapis/google/cloud/redis/cluster/v1/BUILD.bazel index 598db7be7..7428333ff 100644 --- a/third_party/googleapis/google/cloud/redis/cluster/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/redis/cluster/v1/BUILD.bazel @@ -136,7 +136,7 @@ go_gapic_library( grpc_service_config = "redis_cluster_v1_grpc_service_config.json", importpath = "cloud.google.com/go/redis/cluster/apiv1;cluster", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "redis_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto b/third_party/googleapis/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto index 483cb2192..b89fe889e 100644 --- a/third_party/googleapis/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto +++ b/third_party/googleapis/google/cloud/redis/cluster/v1/cloud_redis_cluster.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -134,6 +134,15 @@ service CloudRedisCluster { metadata_type: "google.protobuf.Any" }; } + + // Gets the details of certificate authority information for Redis cluster. + rpc GetClusterCertificateAuthority(GetClusterCertificateAuthorityRequest) + returns (CertificateAuthority) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/clusters/*/certificateAuthority}" + }; + option (google.api.method_signature) = "name"; + } } // Available authorization mode of a Redis cluster. @@ -148,6 +157,23 @@ enum AuthorizationMode { AUTH_MODE_DISABLED = 2; } +// NodeType of a redis cluster node, +enum NodeType { + NODE_TYPE_UNSPECIFIED = 0; + + // Redis shared core nano node_type. + REDIS_SHARED_CORE_NANO = 1; + + // Redis highmem medium node_type. + REDIS_HIGHMEM_MEDIUM = 2; + + // Redis highmem xlarge node_type. + REDIS_HIGHMEM_XLARGE = 3; + + // Redis standard small node_type. + REDIS_STANDARD_SMALL = 4; +} + // Available mode of in-transit encryption. enum TransitEncryptionMode { // In-transit encryption not set. @@ -282,6 +308,20 @@ message DeleteClusterRequest { string request_id = 2; } +// Request for +// [GetClusterCertificateAuthorityRequest][CloudRedis.GetClusterCertificateAuthorityRequest]. +message GetClusterCertificateAuthorityRequest { + // Required. Redis cluster certificate authority resource name using the form: + // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}/certificateAuthority` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "redis.googleapis.com/CertificateAuthority" + } + ]; +} + // A cluster instance. message Cluster { option (google.api.resource) = { @@ -353,7 +393,8 @@ message Cluster { TransitEncryptionMode transit_encryption_mode = 12 [(google.api.field_behavior) = OPTIONAL]; - // Output only. Redis memory size in GB for the entire cluster. + // Output only. Redis memory size in GB for the entire cluster rounded up to + // the next integer. optional int32 size_gb = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. Number of shards for the Redis cluster. @@ -376,6 +417,32 @@ message Cluster { // Output only. Additional information about the current state of the cluster. StateInfo state_info = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The type of a redis node in the cluster. NodeType determines the + // underlying machine-type of a redis node. + NodeType node_type = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Persistence config (RDB, AOF) for the cluster. + ClusterPersistenceConfig persistence_config = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Key/Value pairs of customer overrides for mutable Redis Configs + map redis_configs = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Precise value of redis memory size in GB for the entire + // cluster. + optional double precise_size_gb = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. This config will be used to determine how the customer wants us + // to distribute cluster resources within the region. + ZoneDistributionConfig zone_distribution_config = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The delete operation will fail when the value is set to true. + optional bool deletion_protection_enabled = 25 + [(google.api.field_behavior) = OPTIONAL]; } message PscConfig { @@ -452,3 +519,143 @@ message OperationMetadata { // Output only. API version used to start the operation. string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Redis cluster certificate authority +message CertificateAuthority { + option (google.api.resource) = { + type: "redis.googleapis.com/CertificateAuthority" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority" + }; + + message ManagedCertificateAuthority { + message CertChain { + // The certificates that form the CA chain, from leaf to root order. + repeated string certificates = 1; + } + + // The PEM encoded CA certificate chains for redis managed + // server authentication + repeated CertChain ca_certs = 1; + } + + // server ca information + oneof server_ca { + ManagedCertificateAuthority managed_server_ca = 1; + } + + // Identifier. Unique name of the resource in this scope including project, + // location and cluster using the form: + // `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority` + string name = 2 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Configuration of the persistence functionality. +message ClusterPersistenceConfig { + // Configuration of the RDB based persistence. + message RDBConfig { + // Available snapshot periods. + enum SnapshotPeriod { + // Not set. + SNAPSHOT_PERIOD_UNSPECIFIED = 0; + + // One hour. + ONE_HOUR = 1; + + // Six hours. + SIX_HOURS = 2; + + // Twelve hours. + TWELVE_HOURS = 3; + + // Twenty four hours. + TWENTY_FOUR_HOURS = 4; + } + + // Optional. Period between RDB snapshots. + SnapshotPeriod rdb_snapshot_period = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The time that the first snapshot was/will be attempted, and to + // which future snapshots will be aligned. If not provided, the current time + // will be used. + google.protobuf.Timestamp rdb_snapshot_start_time = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Configuration of the AOF based persistence. + message AOFConfig { + // Available fsync modes. + enum AppendFsync { + // Not set. Default: EVERYSEC + APPEND_FSYNC_UNSPECIFIED = 0; + + // Never fsync. Normally Linux will flush data every 30 seconds with this + // configuration, but it's up to the kernel's exact tuning. + NO = 1; + + // fsync every second. Fast enough, and you may lose 1 second of data if + // there is a disaster + EVERYSEC = 2; + + // fsync every time new commands are appended to the AOF. It has the best + // data loss protection at the cost of performance + ALWAYS = 3; + } + + // Optional. fsync configuration. + AppendFsync append_fsync = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Available persistence modes. + enum PersistenceMode { + // Not set. + PERSISTENCE_MODE_UNSPECIFIED = 0; + + // Persistence is disabled, and any snapshot data is deleted. + DISABLED = 1; + + // RDB based persistence is enabled. + RDB = 2; + + // AOF based persistence is enabled. + AOF = 3; + } + + // Optional. The mode of persistence. + PersistenceMode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. RDB configuration. This field will be ignored if mode is not RDB. + RDBConfig rdb_config = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. AOF configuration. This field will be ignored if mode is not AOF. + AOFConfig aof_config = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Zone distribution config for allocation of cluster resources. +message ZoneDistributionConfig { + // Defines various modes of zone distribution. + // Currently supports two modes, can be expanded in future to support more + // types of distribution modes. + // design doc: go/same-zone-cluster + enum ZoneDistributionMode { + // Not Set. Default: MULTI_ZONE + ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0; + + // Distribute all resources across 3 zones picked at random, within the + // region. + MULTI_ZONE = 1; + + // Distribute all resources in a single zone. The zone field must be + // specified, when this mode is selected. + SINGLE_ZONE = 2; + } + + // Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not + // specified. + ZoneDistributionMode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When SINGLE ZONE distribution is selected, zone field would be + // used to allocate all resources in that zone. This is not applicable to + // MULTI_ZONE, and would be ignored for MULTI_ZONE clusters. + string zone = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/redis/cluster/v1/redis_v1.yaml b/third_party/googleapis/google/cloud/redis/cluster/v1/redis_v1.yaml index 2ada9e154..d31d163ff 100644 --- a/third_party/googleapis/google/cloud/redis/cluster/v1/redis_v1.yaml +++ b/third_party/googleapis/google/cloud/redis/cluster/v1/redis_v1.yaml @@ -56,13 +56,13 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=1288776&template=1161103 - documentation_uri: https://cloud.google.com/redis/docs + documentation_uri: https://cloud.google.com/memorystore/docs/redis api_short_name: redis github_label: 'api: redis' doc_tag_prefix: redis organization: CLOUD library_settings: - - version: com.google.cloud.redis.cluster.v1 + - version: google.cloud.redis.cluster.v1 launch_stage: GA java_settings: common: diff --git a/third_party/googleapis/google/cloud/redis/cluster/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/redis/cluster/v1beta1/BUILD.bazel index 216671847..846d39d8f 100644 --- a/third_party/googleapis/google/cloud/redis/cluster/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/redis/cluster/v1beta1/BUILD.bazel @@ -297,7 +297,10 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "cluster_ruby_gapic", srcs = [":cluster_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-redis-cluster-v1beta1"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-redis-cluster-v1beta1", + "ruby-cloud-product-url=https://cloud.google.com/memorystore/docs/cluster", + ], grpc_service_config = "redis_cluster_v1beta1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "redis_v1beta1.yaml", diff --git a/third_party/googleapis/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto b/third_party/googleapis/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto index ee0c01c6c..8114ac016 100644 --- a/third_party/googleapis/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto +++ b/third_party/googleapis/google/cloud/redis/cluster/v1beta1/cloud_redis_cluster.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ option go_package = "cloud.google.com/go/redis/cluster/apiv1beta1/clusterpb;clus option java_multiple_files = true; option java_outer_classname = "CloudRedisClusterProto"; option java_package = "com.google.cloud.redis.cluster.v1beta1"; +option ruby_package = "Google::Cloud::Redis::Cluster::V1beta1"; // Configures and manages Cloud Memorystore for Redis clusters // @@ -133,6 +134,15 @@ service CloudRedisCluster { metadata_type: "google.protobuf.Any" }; } + + // Gets the details of certificate authority information for Redis cluster. + rpc GetClusterCertificateAuthority(GetClusterCertificateAuthorityRequest) + returns (CertificateAuthority) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/clusters/*/certificateAuthority}" + }; + option (google.api.method_signature) = "name"; + } } // Available authorization mode of a Redis cluster. @@ -147,6 +157,23 @@ enum AuthorizationMode { AUTH_MODE_DISABLED = 2; } +// NodeType of a redis cluster node, +enum NodeType { + NODE_TYPE_UNSPECIFIED = 0; + + // Redis shared core nano node_type. + REDIS_SHARED_CORE_NANO = 1; + + // Redis highmem medium node_type. + REDIS_HIGHMEM_MEDIUM = 2; + + // Redis highmem xlarge node_type. + REDIS_HIGHMEM_XLARGE = 3; + + // Redis standard small node_type. + REDIS_STANDARD_SMALL = 4; +} + // Available mode of in-transit encryption. enum TransitEncryptionMode { // In-transit encryption not set. @@ -281,6 +308,20 @@ message DeleteClusterRequest { string request_id = 2; } +// Request for +// [GetClusterCertificateAuthorityRequest][CloudRedis.GetClusterCertificateAuthorityRequest]. +message GetClusterCertificateAuthorityRequest { + // Required. Redis cluster certificate authority resource name using the form: + // `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}/certificateAuthority` + // where `location_id` refers to a GCP region. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "redis.googleapis.com/CertificateAuthority" + } + ]; +} + // A cluster instance. message Cluster { option (google.api.resource) = { @@ -352,7 +393,8 @@ message Cluster { TransitEncryptionMode transit_encryption_mode = 12 [(google.api.field_behavior) = OPTIONAL]; - // Output only. Redis memory size in GB for the entire cluster. + // Output only. Redis memory size in GB for the entire cluster rounded up to + // the next integer. optional int32 size_gb = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. Number of shards for the Redis cluster. @@ -375,6 +417,32 @@ message Cluster { // Output only. Additional information about the current state of the cluster. StateInfo state_info = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The type of a redis node in the cluster. NodeType determines the + // underlying machine-type of a redis node. + NodeType node_type = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Persistence config (RDB, AOF) for the cluster. + ClusterPersistenceConfig persistence_config = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Key/Value pairs of customer overrides for mutable Redis Configs + map redis_configs = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Precise value of redis memory size in GB for the entire + // cluster. + optional double precise_size_gb = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. This config will be used to determine how the customer wants us + // to distribute cluster resources within the region. + ZoneDistributionConfig zone_distribution_config = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The delete operation will fail when the value is set to true. + optional bool deletion_protection_enabled = 25 + [(google.api.field_behavior) = OPTIONAL]; } message PscConfig { @@ -451,3 +519,143 @@ message OperationMetadata { // Output only. API version used to start the operation. string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Redis cluster certificate authority +message CertificateAuthority { + option (google.api.resource) = { + type: "redis.googleapis.com/CertificateAuthority" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority" + }; + + message ManagedCertificateAuthority { + message CertChain { + // The certificates that form the CA chain, from leaf to root order. + repeated string certificates = 1; + } + + // The PEM encoded CA certificate chains for redis managed + // server authentication + repeated CertChain ca_certs = 1; + } + + // server ca information + oneof server_ca { + ManagedCertificateAuthority managed_server_ca = 1; + } + + // Identifier. Unique name of the resource in this scope including project, + // location and cluster using the form: + // `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority` + string name = 2 [(google.api.field_behavior) = IDENTIFIER]; +} + +// Configuration of the persistence functionality. +message ClusterPersistenceConfig { + // Configuration of the RDB based persistence. + message RDBConfig { + // Available snapshot periods. + enum SnapshotPeriod { + // Not set. + SNAPSHOT_PERIOD_UNSPECIFIED = 0; + + // One hour. + ONE_HOUR = 1; + + // Six hours. + SIX_HOURS = 2; + + // Twelve hours. + TWELVE_HOURS = 3; + + // Twenty four hours. + TWENTY_FOUR_HOURS = 4; + } + + // Optional. Period between RDB snapshots. + SnapshotPeriod rdb_snapshot_period = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The time that the first snapshot was/will be attempted, and to + // which future snapshots will be aligned. If not provided, the current time + // will be used. + google.protobuf.Timestamp rdb_snapshot_start_time = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Configuration of the AOF based persistence. + message AOFConfig { + // Available fsync modes. + enum AppendFsync { + // Not set. Default: EVERYSEC + APPEND_FSYNC_UNSPECIFIED = 0; + + // Never fsync. Normally Linux will flush data every 30 seconds with this + // configuration, but it's up to the kernel's exact tuning. + NO = 1; + + // fsync every second. Fast enough, and you may lose 1 second of data if + // there is a disaster + EVERYSEC = 2; + + // fsync every time new commands are appended to the AOF. It has the best + // data loss protection at the cost of performance + ALWAYS = 3; + } + + // Optional. fsync configuration. + AppendFsync append_fsync = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Available persistence modes. + enum PersistenceMode { + // Not set. + PERSISTENCE_MODE_UNSPECIFIED = 0; + + // Persistence is disabled, and any snapshot data is deleted. + DISABLED = 1; + + // RDB based persistence is enabled. + RDB = 2; + + // AOF based persistence is enabled. + AOF = 3; + } + + // Optional. The mode of persistence. + PersistenceMode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. RDB configuration. This field will be ignored if mode is not RDB. + RDBConfig rdb_config = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. AOF configuration. This field will be ignored if mode is not AOF. + AOFConfig aof_config = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Zone distribution config for allocation of cluster resources. +message ZoneDistributionConfig { + // Defines various modes of zone distribution. + // Currently supports two modes, can be expanded in future to support more + // types of distribution modes. + // design doc: go/same-zone-cluster + enum ZoneDistributionMode { + // Not Set. Default: MULTI_ZONE + ZONE_DISTRIBUTION_MODE_UNSPECIFIED = 0; + + // Distribute all resources across 3 zones picked at random, within the + // region. + MULTI_ZONE = 1; + + // Distribute all resources in a single zone. The zone field must be + // specified, when this mode is selected. + SINGLE_ZONE = 2; + } + + // Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not + // specified. + ZoneDistributionMode mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When SINGLE ZONE distribution is selected, zone field would be + // used to allocate all resources in that zone. This is not applicable to + // MULTI_ZONE, and would be ignored for MULTI_ZONE clusters. + string zone = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/redis/cluster/v1beta1/redis_v1beta1.yaml b/third_party/googleapis/google/cloud/redis/cluster/v1beta1/redis_v1beta1.yaml index ddfdfb890..39e9cbc33 100644 --- a/third_party/googleapis/google/cloud/redis/cluster/v1beta1/redis_v1beta1.yaml +++ b/third_party/googleapis/google/cloud/redis/cluster/v1beta1/redis_v1beta1.yaml @@ -56,8 +56,51 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=1288776&template=1161103 - documentation_uri: https://cloud.google.com/redis/docs + documentation_uri: https://cloud.google.com/memorystore/docs/redis api_short_name: redis github_label: 'api: redis' doc_tag_prefix: redis organization: CLOUD + library_settings: + - version: google.cloud.redis.cluster.v1beta1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + php_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + python_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + node_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB + go_settings: + common: + destinations: + - PACKAGE_MANAGER + - GITHUB diff --git a/third_party/googleapis/google/cloud/redis/v1/cloud_redis.proto b/third_party/googleapis/google/cloud/redis/v1/cloud_redis.proto index 5ff9e9c8b..06223fb6e 100644 --- a/third_party/googleapis/google/cloud/redis/v1/cloud_redis.proto +++ b/third_party/googleapis/google/cloud/redis/v1/cloud_redis.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/redis/v1beta1/cloud_redis.proto b/third_party/googleapis/google/cloud/redis/v1beta1/cloud_redis.proto index 037c93aeb..a6af50cfa 100644 --- a/third_party/googleapis/google/cloud/redis/v1beta1/cloud_redis.proto +++ b/third_party/googleapis/google/cloud/redis/v1beta1/cloud_redis.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v2/folders.proto b/third_party/googleapis/google/cloud/resourcemanager/v2/folders.proto index 2c13229b5..49bc2b67a 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v2/folders.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v2/folders.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/BUILD.bazel b/third_party/googleapis/google/cloud/resourcemanager/v3/BUILD.bazel index 3cb9b8fe7..a47bd69c0 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/BUILD.bazel +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/BUILD.bazel @@ -242,7 +242,7 @@ php_gapic_library( name = "resourcemanager_php_gapic", srcs = [":resourcemanager_proto_with_info"], grpc_service_config = "cloudresourcemanager_v3_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudresourcemanager_v3.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/folders.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/folders.proto index 036bf4e6d..1f841d303 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/folders.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/folders.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/organizations.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/organizations.proto index 7b0ed95a5..5d6551938 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/organizations.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/organizations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/projects.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/projects.proto index 512814710..b07f23edf 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/projects.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/projects.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_bindings.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_bindings.proto index 6e94b8884..cf52fca07 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_bindings.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_bindings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_holds.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_holds.proto index 15c446913..79fd89c02 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_holds.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_holds.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_keys.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_keys.proto index 72881b226..204d63b1f 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_keys.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_keys.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_values.proto b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_values.proto index 9a5bd7f1f..3efc8fe00 100644 --- a/third_party/googleapis/google/cloud/resourcemanager/v3/tag_values.proto +++ b/third_party/googleapis/google/cloud/resourcemanager/v3/tag_values.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/resourcesettings/v1/resource_settings.proto b/third_party/googleapis/google/cloud/resourcesettings/v1/resource_settings.proto index 38479dcbd..b5a459865 100644 --- a/third_party/googleapis/google/cloud/resourcesettings/v1/resource_settings.proto +++ b/third_party/googleapis/google/cloud/resourcesettings/v1/resource_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -44,20 +44,21 @@ option ruby_package = "Google::Cloud::ResourceSettings::V1"; // resource is not in a Cloud Organization. // For all requests, returns a `google.rpc.Status` with // `google.rpc.Code.INVALID_ARGUMENT` if the request is malformed. +// (== deprecation_description Resource Settings is deprecated. As of November +// 7, 2023, no organizations will be onboarded for any of the enabled settings, +// and the service will be shut down on October 1, 2024. ==) service ResourceSettingsService { + option deprecated = true; option (google.api.default_host) = "resourcesettings.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; // Lists all the settings that are available on the Cloud resource `parent`. rpc ListSettings(ListSettingsRequest) returns (ListSettingsResponse) { option (google.api.http) = { get: "/v1/{parent=organizations/*}/settings" - additional_bindings { - get: "/v1/{parent=folders/*}/settings" - } - additional_bindings { - get: "/v1/{parent=projects/*}/settings" - } + additional_bindings { get: "/v1/{parent=folders/*}/settings" } + additional_bindings { get: "/v1/{parent=projects/*}/settings" } }; option (google.api.method_signature) = "parent"; } @@ -69,12 +70,8 @@ service ResourceSettingsService { rpc GetSetting(GetSettingRequest) returns (Setting) { option (google.api.http) = { get: "/v1/{name=organizations/*/settings/*}" - additional_bindings { - get: "/v1/{name=folders/*/settings/*}" - } - additional_bindings { - get: "/v1/{name=projects/*/settings/*}" - } + additional_bindings { get: "/v1/{name=folders/*/settings/*}" } + additional_bindings { get: "/v1/{name=projects/*/settings/*}" } }; option (google.api.method_signature) = "name"; } @@ -129,40 +126,47 @@ message Setting { // For example, "/projects/123/settings/gcp-enableMyFeature" string name = 1; - // Output only. Metadata about a setting which is not editable by the end user. + // Output only. Metadata about a setting which is not editable by the end + // user. SettingMetadata metadata = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // The configured value of the setting at the given parent resource (ignoring - // the resource hierarchy). The data type of [Value][google.cloud.resourcesettings.v1.Value] must always be - // consistent with the data type defined in [Setting.metadata][google.cloud.resourcesettings.v1.Setting.metadata]. + // the resource hierarchy). The data type of + // [Value][google.cloud.resourcesettings.v1.Value] must always be consistent + // with the data type defined in + // [Setting.metadata][google.cloud.resourcesettings.v1.Setting.metadata]. Value local_value = 8; - // Output only. The computed effective value of the setting at the given parent resource - // (based on the resource hierarchy). + // Output only. The computed effective value of the setting at the given + // parent resource (based on the resource hierarchy). // // The effective value evaluates to one of the following options in the given // order (the next option is used if the previous one does not exist): // - // 1. the local setting value on the given resource: [Setting.local_value][google.cloud.resourcesettings.v1.Setting.local_value] + // 1. the local setting value on the given resource: + // [Setting.local_value][google.cloud.resourcesettings.v1.Setting.local_value] // 2. if one of the given resource's ancestors have a local setting value, // the local value at the nearest such ancestor - // 3. the setting's default value: [SettingMetadata.default_value][google.cloud.resourcesettings.v1.SettingMetadata.default_value] + // 3. the setting's default value: + // [SettingMetadata.default_value][google.cloud.resourcesettings.v1.SettingMetadata.default_value] // 4. an empty value (defined as a `Value` with all fields unset) // - // The data type of [Value][google.cloud.resourcesettings.v1.Value] must always be - // consistent with the data type defined in [Setting.metadata][google.cloud.resourcesettings.v1.Setting.metadata]. + // The data type of [Value][google.cloud.resourcesettings.v1.Value] must + // always be consistent with the data type defined in + // [Setting.metadata][google.cloud.resourcesettings.v1.Setting.metadata]. Value effective_value = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // A fingerprint used for optimistic concurrency. See - // [UpdateSetting][google.cloud.resourcesettings.v1.ResourceSettingsService.UpdateSetting] for more - // details. + // [UpdateSetting][google.cloud.resourcesettings.v1.ResourceSettingsService.UpdateSetting] + // for more details. string etag = 10; } // Metadata about a setting which is not editable by the end user. message SettingMetadata { - // The data type for setting values of this setting. See [Value][google.cloud.resourcesettings.v1.Value] for more - // details on the available data types. + // The data type for setting values of this setting. See + // [Value][google.cloud.resourcesettings.v1.Value] for more details on the + // available data types. enum DataType { // Unspecified data type. DATA_TYPE_UNSPECIFIED = 0; @@ -193,8 +197,9 @@ message SettingMetadata { // The data type for this setting. DataType data_type = 4; - // The value provided by [Setting.effective_value][google.cloud.resourcesettings.v1.Setting.effective_value] if no setting value is - // explicitly set. + // The value provided by + // [Setting.effective_value][google.cloud.resourcesettings.v1.Setting.effective_value] + // if no setting value is explicitly set. // // Note: not all settings have a default value. Value default_value = 5; @@ -236,8 +241,8 @@ message Value { // The request for ListSettings. message ListSettingsRequest { - // Required. The Cloud resource that parents the setting. Must be in one of the - // following forms: + // Required. The Cloud resource that parents the setting. Must be in one of + // the following forms: // // * `projects/{project_number}` // * `projects/{project_id}` @@ -245,9 +250,7 @@ message ListSettingsRequest { // * `organizations/{organization_id}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "*" - } + (google.api.resource_reference) = { type: "*" } ]; // Unused. The size of the page to be returned. @@ -271,7 +274,8 @@ message ListSettingsResponse { // The request for GetSetting. message GetSettingRequest { - // Required. The name of the setting to get. See [Setting][google.cloud.resourcesettings.v1.Setting] for naming + // Required. The name of the setting to get. See + // [Setting][google.cloud.resourcesettings.v1.Setting] for naming // requirements. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -286,7 +290,8 @@ message GetSettingRequest { // The request for UpdateSetting. message UpdateSettingRequest { - // Required. The setting to update. See [Setting][google.cloud.resourcesettings.v1.Setting] for field requirements. + // Required. The setting to update. See + // [Setting][google.cloud.resourcesettings.v1.Setting] for field requirements. Setting setting = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -296,13 +301,19 @@ enum SettingView { // The API will default to the SETTING_VIEW_BASIC view. SETTING_VIEW_UNSPECIFIED = 0; - // Include [Setting.metadata][google.cloud.resourcesettings.v1.Setting.metadata], but nothing else. - // This is the default value (for both ListSettings and GetSetting). + // Include + // [Setting.metadata][google.cloud.resourcesettings.v1.Setting.metadata], but + // nothing else. This is the default value (for both ListSettings and + // GetSetting). SETTING_VIEW_BASIC = 1; - // Include [Setting.effective_value][google.cloud.resourcesettings.v1.Setting.effective_value], but nothing else. + // Include + // [Setting.effective_value][google.cloud.resourcesettings.v1.Setting.effective_value], + // but nothing else. SETTING_VIEW_EFFECTIVE_VALUE = 2; - // Include [Setting.local_value][google.cloud.resourcesettings.v1.Setting.local_value], but nothing else. + // Include + // [Setting.local_value][google.cloud.resourcesettings.v1.Setting.local_value], + // but nothing else. SETTING_VIEW_LOCAL_VALUE = 3; } diff --git a/third_party/googleapis/google/cloud/retail/logging/error_log.proto b/third_party/googleapis/google/cloud/retail/logging/error_log.proto index 18c512006..24ae007e6 100644 --- a/third_party/googleapis/google/cloud/retail/logging/error_log.proto +++ b/third_party/googleapis/google/cloud/retail/logging/error_log.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/analytics_service.proto b/third_party/googleapis/google/cloud/retail/v2/analytics_service.proto index 2b1f0bce3..beb1ba110 100644 --- a/third_party/googleapis/google/cloud/retail/v2/analytics_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/analytics_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/catalog.proto b/third_party/googleapis/google/cloud/retail/v2/catalog.proto index 4205e0014..90e976418 100644 --- a/third_party/googleapis/google/cloud/retail/v2/catalog.proto +++ b/third_party/googleapis/google/cloud/retail/v2/catalog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2/common.proto"; import "google/cloud/retail/v2/import_config.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Retail.V2"; option go_package = "cloud.google.com/go/retail/apiv2/retailpb;retailpb"; @@ -87,6 +88,123 @@ message ProductLevelConfig { // Catalog level attribute config for an attribute. For example, if customers // want to enable/disable facet for a specific attribute. message CatalogAttribute { + // Possible options for the facet that corresponds to the current attribute + // config. + message FacetConfig { + // [Facet values][google.cloud.retail.v2.SearchResponse.Facet.values] to + // ignore on [facets][google.cloud.retail.v2.SearchResponse.Facet] during + // the specified time range for the given + // [SearchResponse.Facet.key][google.cloud.retail.v2.SearchResponse.Facet.key] + // attribute. + message IgnoredFacetValues { + // List of facet values to ignore for the following time range. The facet + // values are the same as the attribute values. There is a limit of 10 + // values per instance of IgnoredFacetValues. Each value can have at most + // 128 characters. + repeated string values = 1; + + // Time range for the current list of facet values to ignore. + // If multiple time ranges are specified for an facet value for the + // current attribute, consider all of them. If both are empty, ignore + // always. If start time and end time are set, then start time + // must be before end time. + // If start time is not empty and end time is empty, then will ignore + // these facet values after the start time. + google.protobuf.Timestamp start_time = 2; + + // If start time is empty and end time is not empty, then ignore these + // facet values before end time. + google.protobuf.Timestamp end_time = 3; + } + + // Replaces a set of textual facet values by the same (possibly different) + // merged facet value. Each facet value should appear at most once as a + // value per [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute]. + // This feature is available only for textual custom attributes. + message MergedFacetValue { + // All the facet values that are replaces by the same + // [merged_value][google.cloud.retail.v2.CatalogAttribute.FacetConfig.MergedFacetValue.merged_value] + // that follows. The maximum number of values per MergedFacetValue is 25. + // Each value can have up to 128 characters. + repeated string values = 1; + + // All the previous values are replaced by this merged facet value. + // This merged_value must be non-empty and can have up to 128 characters. + string merged_value = 2; + } + + // The current facet key (i.e. attribute config) maps into the + // [merged_facet_key][google.cloud.retail.v2.CatalogAttribute.FacetConfig.MergedFacet.merged_facet_key]. + // A facet key can have at most one child. The current facet key and the + // merged facet key need both to be textual custom attributes or both + // numerical custom attributes (same type). + message MergedFacet { + // The merged facet key should be a valid facet key that is different than + // the facet key of the current catalog attribute. We refer this is + // merged facet key as the child of the current catalog attribute. This + // merged facet key can't be a parent of another facet key (i.e. no + // directed path of length 2). This merged facet key needs to be either a + // textual custom attribute or a numerical custom attribute. + string merged_facet_key = 1; + } + + // Options to rerank based on facet values engaged by the user for the + // current key. That key needs to be a custom textual key and facetable. + // To use this control, you also need to pass all the facet keys engaged by + // the user in the request using the field [SearchRequest.FacetSpec]. In + // particular, if you don't pass the facet keys engaged that you want to + // rerank on, this control won't be effective. Moreover, to obtain better + // results, the facet values that you want to rerank on should be close to + // English (ideally made of words, underscores, and spaces). + message RerankConfig { + // If set to true, then we also rerank the dynamic facets based on the + // facet values engaged by the user for the current attribute key during + // serving. + bool rerank_facet = 1; + + // If empty, rerank on all facet values for the current key. Otherwise, + // will rerank on the facet values from this list only. + repeated string facet_values = 2; + } + + // If you don't set the facet + // [SearchRequest.FacetSpec.FacetKey.intervals][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.intervals] + // in the request to a numerical attribute, then we use the computed + // intervals with rounded bounds obtained from all its product numerical + // attribute values. The computed intervals might not be ideal for some + // attributes. Therefore, we give you the option to overwrite them with the + // facet_intervals field. The maximum of facet intervals per + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] is 40. Each + // interval must have a lower bound or an upper bound. If both bounds are + // provided, then the lower bound must be smaller or equal than the upper + // bound. + repeated Interval facet_intervals = 1; + + // Each instance represents a list of attribute values to ignore as facet + // values for a specific time range. The maximum number of instances per + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] is 25. + repeated IgnoredFacetValues ignored_facet_values = 2; + + // Each instance replaces a list of facet values by a merged facet + // value. If a facet value is not in any list, then it will stay the same. + // To avoid conflicts, only paths of length 1 are accepted. In other words, + // if "dark_blue" merged into "BLUE", then the latter can't merge into + // "blues" because this would create a path of length 2. The maximum number + // of instances of MergedFacetValue per + // [CatalogAttribute][google.cloud.retail.v2.CatalogAttribute] is 100. This + // feature is available only for textual custom attributes. + repeated MergedFacetValue merged_facet_values = 3; + + // Use this field only if you want to merge a facet key into another facet + // key. + MergedFacet merged_facet = 4; + + // Set this field only if you want to rerank based on facet values engaged + // by the user for the current key. This option is only possible for custom + // facetable textual keys. + RerankConfig rerank_config = 5; + } + // The type of an attribute. enum AttributeType { // The type of the attribute is unknown. @@ -210,7 +328,9 @@ message CatalogAttribute { // are indexed so that it can be filtered, faceted, or boosted in // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. // - // Must be specified, otherwise throws INVALID_FORMAT error. + // Must be specified when + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error. IndexableOption indexable_option = 5; // If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic @@ -232,7 +352,9 @@ message CatalogAttribute { // [SearchService.Search][google.cloud.retail.v2.SearchService.Search], as // there are no text values associated to numerical attributes. // - // Must be specified, otherwise throws INVALID_FORMAT error. + // Must be specified, when + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error. SearchableOption searchable_option = 7; // If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. @@ -246,6 +368,9 @@ message CatalogAttribute { // results. If unset, the server behavior defaults to // [RETRIEVABLE_DISABLED][google.cloud.retail.v2.CatalogAttribute.RetrievableOption.RETRIEVABLE_DISABLED]. RetrievableOption retrievable_option = 12; + + // Contains facet options. + FacetConfig facet_config = 13; } // Catalog level attribute config. @@ -335,8 +460,8 @@ message CompletionConfig { // Output only. Name of the LRO corresponding to the latest suggestion terms // list import. // - // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to - // retrieve the latest state of the Long Running Operation. + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API + // method to retrieve the latest state of the Long Running Operation. string last_suggestions_import_operation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/retail/v2/catalog_service.proto b/third_party/googleapis/google/cloud/retail/v2/catalog_service.proto index 14b45841b..72326c5b9 100644 --- a/third_party/googleapis/google/cloud/retail/v2/catalog_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/catalog_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/common.proto b/third_party/googleapis/google/cloud/retail/v2/common.proto index d04afc3d1..78014a149 100644 --- a/third_party/googleapis/google/cloud/retail/v2/common.proto +++ b/third_party/googleapis/google/cloud/retail/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -124,6 +124,12 @@ message Condition { // Range of time(s) specifying when Condition is active. // Condition true if any time range matches. repeated TimeRange active_time_range = 3; + + // Used to support browse uses cases. + // A list (up to 10 entries) of categories or departments. + // The format should be the same as + // [UserEvent.page_categories][google.cloud.retail.v2.UserEvent.page_categories]; + repeated string page_categories = 4; } // A rule is a condition-action pair @@ -172,17 +178,19 @@ message Rule { } // * Rule Condition: - // - No - // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] - // provided is a global match. - // - 1 or more - // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] - // provided are combined with OR operator. + // - No + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] + // provided is a global match. + // - 1 or more + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] + // provided are combined with OR operator. + // // * Action Input: The request query and filter that are applied to the // retrieved products, in addition to any filters already provided with the // SearchRequest. The AND operator is used to combine the query's existing // filters with the filter rule(s). NOTE: May result in 0 results when // filters conflict. + // // * Action Result: Filters the returned objects to be ONLY those that passed // the filter. message FilterAction { @@ -190,10 +198,9 @@ message Rule { // // * [filter][google.cloud.retail.v2.Rule.FilterAction.filter] must be set. // * Filter syntax is identical to - // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter]. See + // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter]. For // more - // details at the Retail Search - // [user guide](/retail/search/docs/filter-and-order#filter). + // information, see [Filter](/retail/docs/filter-and-order#filter). // * To filter products with product ID "product_1" or "product_2", and // color // "Red" or "Blue":
@@ -206,7 +213,7 @@ message Rule { // Redirects a shopper to a specific page. // // * Rule Condition: - // - Must specify + // Must specify // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms]. // * Action Input: Request Query // * Action Result: Redirects shopper to provided uri. @@ -288,6 +295,78 @@ message Rule { repeated string ignore_terms = 1; } + // Force returns an attribute/facet in the request around a certain position + // or above. + // + // * Rule Condition: + // Must specify non-empty + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] + // (for search only) or + // [Condition.page_categories][google.cloud.retail.v2.Condition.page_categories] + // (for browse only), but can't specify both. + // + // * Action Inputs: attribute name, position + // + // * Action Result: Will force return a facet key around a certain position + // or above if the condition is satisfied. + // + // Example: Suppose the query is "shoes", the + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] is + // "shoes", the + // [ForceReturnFacetAction.FacetPositionAdjustment.attribute_name][google.cloud.retail.v2.Rule.ForceReturnFacetAction.FacetPositionAdjustment.attribute_name] + // is "size" and the + // [ForceReturnFacetAction.FacetPositionAdjustment.position][google.cloud.retail.v2.Rule.ForceReturnFacetAction.FacetPositionAdjustment.position] + // is 8. + // + // Two cases: a) The facet key "size" is not already in the top 8 slots, then + // the facet "size" will appear at a position close to 8. b) The facet key + // "size" in among the top 8 positions in the request, then it will stay at + // its current rank. + message ForceReturnFacetAction { + // Each facet position adjustment consists of a single attribute name (i.e. + // facet key) along with a specified position. + message FacetPositionAdjustment { + // The attribute name to force return as a facet. Each attribute name + // should be a valid attribute name, be non-empty and contain at most 80 + // characters long. + string attribute_name = 1; + + // This is the position in the request as explained above. It should be + // strictly positive be at most 100. + int32 position = 2; + } + + // Each instance corresponds to a force return attribute for the given + // condition. There can't be more 3 instances here. + repeated FacetPositionAdjustment facet_position_adjustments = 1; + } + + // Removes an attribute/facet in the request if is present. + // + // * Rule Condition: + // Must specify non-empty + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] + // (for search only) or + // [Condition.page_categories][google.cloud.retail.v2.Condition.page_categories] + // (for browse only), but can't specify both. + // + // * Action Input: attribute name + // + // * Action Result: Will remove the attribute (as a facet) from the request + // if it is present. + // + // Example: Suppose the query is "shoes", the + // [Condition.query_terms][google.cloud.retail.v2.Condition.query_terms] is + // "shoes" and the attribute name "size", then facet key "size" will be + // removed from the request (if it is present). + message RemoveFacetAction { + // The attribute names (i.e. facet keys) to remove from the dynamic facets + // (if present in the request). There can't be more 3 attribute names. + // Each attribute name should be a valid attribute name, be non-empty and + // contain at most 80 characters. + repeated string attribute_names = 1; + } + // An action must be provided. oneof action { // A boost action. @@ -314,6 +393,12 @@ message Rule { // Treats a set of terms as synonyms of one another. TwowaySynonymsAction twoway_synonyms_action = 11; + + // Force returns an attribute as a facet in the request. + ForceReturnFacetAction force_return_facet_action = 12; + + // Remove an attribute as a facet in the request (if present). + RemoveFacetAction remove_facet_action = 13; } // Required. The condition that triggers the rule. diff --git a/third_party/googleapis/google/cloud/retail/v2/completion_service.proto b/third_party/googleapis/google/cloud/retail/v2/completion_service.proto index 75c2d9371..a5f2b0ac8 100644 --- a/third_party/googleapis/google/cloud/retail/v2/completion_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -151,10 +151,15 @@ message CompleteQueryRequest { // capped by 20. int32 max_suggestions = 5; - // The entity for customers that may run multiple different entities, domains, - // sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, + // If true, attribute suggestions are enabled and provided in response. + // + // This field is only available for "cloud-retail" dataset. + bool enable_attribute_suggestions = 9; + + // The entity for customers who run multiple entities, domains, sites, or + // regions, for example, `Google US`, `Google Ads`, `Waymo`, // `google.com`, `youtube.com`, etc. - // If this is set, it should be exactly matched with + // If this is set, it must be an exact match with // [UserEvent.entity][google.cloud.retail.v2.UserEvent.entity] to get // per-entity autocomplete results. string entity = 10; @@ -179,8 +184,10 @@ message CompleteQueryResponse { map attributes = 2; } - // Recent search of this user. + // Deprecated: Recent search of this user. message RecentSearchResult { + option deprecated = true; + // The recent search query. string recent_search = 1; } @@ -195,9 +202,9 @@ message CompleteQueryResponse { // attribution of complete model performance. string attribution_token = 2; - // Matched recent searches of this user. The maximum number of recent searches - // is 10. This field is a restricted feature. Contact Retail Search support - // team if you are interested in enabling it. + // Deprecated. Matched recent searches of this user. The maximum number of + // recent searches is 10. This field is a restricted feature. If you want to + // enable it, contact Retail Search support. // // This feature is only available when // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2.CompleteQueryRequest.visitor_id] @@ -216,5 +223,5 @@ message CompleteQueryResponse { // // Recent searches are deduplicated. More recent searches will be reserved // when duplication happens. - repeated RecentSearchResult recent_search_results = 3; + repeated RecentSearchResult recent_search_results = 3 [deprecated = true]; } diff --git a/third_party/googleapis/google/cloud/retail/v2/control.proto b/third_party/googleapis/google/cloud/retail/v2/control.proto index c2b1d1c9d..b60744f93 100644 --- a/third_party/googleapis/google/cloud/retail/v2/control.proto +++ b/third_party/googleapis/google/cloud/retail/v2/control.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/control_service.proto b/third_party/googleapis/google/cloud/retail/v2/control_service.proto index e84e30b21..42e50491e 100644 --- a/third_party/googleapis/google/cloud/retail/v2/control_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/control_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/export_config.proto b/third_party/googleapis/google/cloud/retail/v2/export_config.proto index fe12c1fcd..3ebbedfac 100644 --- a/third_party/googleapis/google/cloud/retail/v2/export_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2/export_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/import_config.proto b/third_party/googleapis/google/cloud/retail/v2/import_config.proto index f6ff762a3..3425f604b 100644 --- a/third_party/googleapis/google/cloud/retail/v2/import_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2/import_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -196,7 +196,8 @@ message ImportProductsRequest { ImportErrorsConfig errors_config = 3; // Indicates which fields in the provided imported `products` to update. If - // not set, all fields are updated. + // not set, all fields are updated. If provided, only the existing product + // fields are updated. Missing products will not be created. google.protobuf.FieldMask update_mask = 4; // The mode of reconciliation between existing products and the products to be @@ -212,9 +213,14 @@ message ImportProductsRequest { // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has // to be within the same project as // [ImportProductsRequest.parent][google.cloud.retail.v2.ImportProductsRequest.parent]. - // Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the - // `pubsub.topics.publish` IAM permission on the topic. + // Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` + // have the `pubsub.topics.publish` IAM permission on the topic. + // + // Only supported when + // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2.ImportProductsRequest.reconciliation_mode] + // is set to `FULL`. string notification_pubsub_topic = 7; } diff --git a/third_party/googleapis/google/cloud/retail/v2/model.proto b/third_party/googleapis/google/cloud/retail/v2/model.proto index 85b64fcea..69fff52e7 100644 --- a/third_party/googleapis/google/cloud/retail/v2/model.proto +++ b/third_party/googleapis/google/cloud/retail/v2/model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,6 +50,25 @@ message Model { [(google.api.field_behavior) = OPTIONAL]; } + // Additional configs for the frequently-bought-together model type. + message FrequentlyBoughtTogetherFeaturesConfig { + // Optional. Specifies the context of the model when it is used in predict + // requests. Can only be set for the `frequently-bought-together` type. If + // it isn't specified, it defaults to + // [MULTIPLE_CONTEXT_PRODUCTS][google.cloud.retail.v2.Model.ContextProductsType.MULTIPLE_CONTEXT_PRODUCTS]. + ContextProductsType context_products_type = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Additional model features config. + message ModelFeaturesConfig { + oneof type_dedicated_config { + // Additional configs for frequently-bought-together models. + FrequentlyBoughtTogetherFeaturesConfig frequently_bought_together_config = + 1; + } + } + // The serving state of the model. enum ServingState { // Unspecified serving state. @@ -118,6 +137,22 @@ message Model { DATA_ERROR = 2; } + // Use single or multiple context products for recommendations. + enum ContextProductsType { + // Unspecified default value, should never be explicitly set. + // Defaults to + // [MULTIPLE_CONTEXT_PRODUCTS][google.cloud.retail.v2.Model.ContextProductsType.MULTIPLE_CONTEXT_PRODUCTS]. + CONTEXT_PRODUCTS_TYPE_UNSPECIFIED = 0; + + // Use only a single product as context for the recommendation. Typically + // used on pages like add-to-cart or product details. + SINGLE_CONTEXT_PRODUCT = 1; + + // Use one or multiple products as context for the recommendation. Typically + // used on shopping cart pages. + MULTIPLE_CONTEXT_PRODUCTS = 2; + } + // Required. The fully qualified resource name of the model. // // Format: @@ -236,4 +271,8 @@ message Model { // PageOptimizationConfig. repeated ServingConfigList serving_config_lists = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Additional model features config. + ModelFeaturesConfig model_features_config = 22 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/retail/v2/model_service.proto b/third_party/googleapis/google/cloud/retail/v2/model_service.proto index 488cf8d74..b0a681b2f 100644 --- a/third_party/googleapis/google/cloud/retail/v2/model_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/prediction_service.proto b/third_party/googleapis/google/cloud/retail/v2/prediction_service.proto index 6e8061726..79c77125e 100644 --- a/third_party/googleapis/google/cloud/retail/v2/prediction_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/product.proto b/third_party/googleapis/google/cloud/retail/v2/product.proto index f1ec48695..71aee814e 100644 --- a/third_party/googleapis/google/cloud/retail/v2/product.proto +++ b/third_party/googleapis/google/cloud/retail/v2/product.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -103,23 +103,22 @@ message Product { } oneof expiration { - // The timestamp when this product becomes unavailable for - // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. Note - // that this is only applicable to - // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] and - // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION], and - // ignored for [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT]. - // In general, we suggest the users to delete the stale products explicitly, - // instead of using this field to determine staleness. + // Note that this field is applied in the following ways: // - // If it is set, the [Product][google.cloud.retail.v2.Product] is not - // available for - // [SearchService.Search][google.cloud.retail.v2.SearchService.Search] after - // [expire_time][google.cloud.retail.v2.Product.expire_time]. However, the - // product can still be retrieved by - // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] - // and - // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // * If the [Product][google.cloud.retail.v2.Product] is already expired + // when it is uploaded, this product + // is not indexed for search. + // + // * If the [Product][google.cloud.retail.v2.Product] is not expired when it + // is uploaded, only the + // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY]'s and + // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]'s + // expireTime is respected, and + // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT]'s + // expireTime is not used. + // + // In general, we suggest the users to delete the stale + // products explicitly, instead of using this field to determine staleness. // // [expire_time][google.cloud.retail.v2.Product.expire_time] must be later // than [available_time][google.cloud.retail.v2.Product.available_time] and @@ -256,9 +255,10 @@ message Product { // error is returned. // // At most 250 values are allowed per - // [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. - // Each value must be a UTF-8 encoded string with a length limit of 5,000 - // characters. Otherwise, an INVALID_ARGUMENT error is returned. + // [Product][google.cloud.retail.v2.Product] unless overridden through the + // Google Cloud console. Empty values are not allowed. Each value must be a + // UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an + // INVALID_ARGUMENT error is returned. // // Corresponding properties: Google Merchant Center property // [google_product_category][mc_google_product_category]. Schema.org property @@ -280,9 +280,10 @@ message Product { // The brands of the product. // - // A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded - // string with a length limit of 1,000 characters. Otherwise, an - // INVALID_ARGUMENT error is returned. + // A maximum of 30 brands are allowed unless overridden through the Google + // Cloud console. Each + // brand must be a UTF-8 encoded string with a length limit of 1,000 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // Corresponding properties: Google Merchant Center property // [brand](https://support.google.com/merchants/answer/6324351). Schema.org diff --git a/third_party/googleapis/google/cloud/retail/v2/product_service.proto b/third_party/googleapis/google/cloud/retail/v2/product_service.proto index ff69b68c7..8d953ac28 100644 --- a/third_party/googleapis/google/cloud/retail/v2/product_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/product_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import "google/api/resource.proto"; import "google/cloud/retail/v2/common.proto"; import "google/cloud/retail/v2/import_config.proto"; import "google/cloud/retail/v2/product.proto"; +import "google/cloud/retail/v2/purge_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -86,6 +87,35 @@ service ProductService { option (google.api.method_signature) = "name"; } + // Permanently deletes all selected [Product][google.cloud.retail.v2.Product]s + // under a branch. + // + // This process is asynchronous. If the request is valid, the removal will be + // enqueued and processed offline. Depending on the number of + // [Product][google.cloud.retail.v2.Product]s, this operation could take hours + // to complete. Before the operation completes, some + // [Product][google.cloud.retail.v2.Product]s may still be returned by + // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. + // + // Depending on the number of [Product][google.cloud.retail.v2.Product]s, this + // operation could take hours to complete. To get a sample of + // [Product][google.cloud.retail.v2.Product]s that would be deleted, set + // [PurgeProductsRequest.force][google.cloud.retail.v2.PurgeProductsRequest.force] + // to false. + rpc PurgeProducts(PurgeProductsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2.PurgeProductsResponse" + metadata_type: "google.cloud.retail.v2.PurgeProductsMetadata" + }; + } + // Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. // // Request processing may be synchronous. @@ -166,10 +196,11 @@ service ProductService { }; } - // It is recommended to use the + // We recommend that you use the // [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] - // method instead of - // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces]. + // method instead of the + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2.ProductService.AddFulfillmentPlaces] + // method. // [ProductService.AddLocalInventories][google.cloud.retail.v2.ProductService.AddLocalInventories] // achieves the same results but provides more fine-grained control over // ingesting local inventory data. @@ -208,10 +239,11 @@ service ProductService { }; } - // It is recommended to use the + // We recommend that you use the // [ProductService.RemoveLocalInventories][google.cloud.retail.v2.ProductService.RemoveLocalInventories] - // method instead of - // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces]. + // method instead of the + // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2.ProductService.RemoveFulfillmentPlaces] + // method. // [ProductService.RemoveLocalInventories][google.cloud.retail.v2.ProductService.RemoveLocalInventories] // achieves the same results but provides more fine-grained control over // ingesting local inventory data. diff --git a/third_party/googleapis/google/cloud/retail/v2/promotion.proto b/third_party/googleapis/google/cloud/retail/v2/promotion.proto index 266943845..69c246127 100644 --- a/third_party/googleapis/google/cloud/retail/v2/promotion.proto +++ b/third_party/googleapis/google/cloud/retail/v2/promotion.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ message Promotion { // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is // returned. // - // Google Merchant Center property - // [promotion](https://support.google.com/merchants/answer/7050148). + // Corresponds to Google Merchant Center property + // [promotion_id](https://support.google.com/merchants/answer/7050148). string promotion_id = 1; } diff --git a/third_party/googleapis/google/cloud/retail/v2/purge_config.proto b/third_party/googleapis/google/cloud/retail/v2/purge_config.proto index fe6272d5d..8924b9427 100644 --- a/third_party/googleapis/google/cloud/retail/v2/purge_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2/purge_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.retail.v2; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Retail.V2"; option go_package = "cloud.google.com/go/retail/apiv2/retailpb;retailpb"; @@ -32,6 +33,95 @@ option ruby_package = "Google::Cloud::Retail::V2"; // This will be returned by the google.longrunning.Operation.metadata field. message PurgeMetadata {} +// Metadata related to the progress of the PurgeProducts operation. +// This will be returned by the google.longrunning.Operation.metadata field. +message PurgeProductsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of entries that were deleted successfully. + int64 success_count = 3; + + // Count of entries that encountered errors while processing. + int64 failure_count = 4; +} + +// Request message for PurgeProducts method. +message PurgeProductsRequest { + // Required. The resource name of the branch under which the products are + // created. The format is + // `projects/${projectId}/locations/global/catalogs/${catalogId}/branches/${branchId}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } + ]; + + // Required. The filter string to specify the products to be deleted with a + // length limit of 5,000 characters. + // + // Empty string filter is not allowed. "*" implies delete all items in a + // branch. + // + // The eligible fields for filtering are: + // + // * `availability`: Double quoted + // [Product.availability][google.cloud.retail.v2.Product.availability] string. + // * `create_time` : in ISO 8601 "zulu" format. + // + // Supported syntax: + // + // * Comparators (">", "<", ">=", "<=", "="). + // Examples: + // * create_time <= "2015-02-13T17:05:46Z" + // * availability = "IN_STOCK" + // + // * Conjunctions ("AND") + // Examples: + // * create_time <= "2015-02-13T17:05:46Z" AND availability = "PREORDER" + // + // * Disjunctions ("OR") + // Examples: + // * create_time <= "2015-02-13T17:05:46Z" OR availability = "IN_STOCK" + // + // * Can support nested queries. + // Examples: + // * (create_time <= "2015-02-13T17:05:46Z" AND availability = "PREORDER") + // OR (create_time >= "2015-02-14T13:03:32Z" AND availability = "IN_STOCK") + // + // * Filter Limits: + // * Filter should not contain more than 6 conditions. + // * Max nesting depth should not exceed 2 levels. + // + // Examples queries: + // * Delete back order products created before a timestamp. + // create_time <= "2015-02-13T17:05:46Z" OR availability = "BACKORDER" + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Actually perform the purge. + // If `force` is set to false, the method will return the expected purge count + // without deleting any products. + bool force = 3; +} + +// Response of the PurgeProductsRequest. If the long running operation is +// successfully done, then this message is returned by the +// google.longrunning.Operations.response field. +message PurgeProductsResponse { + // The total count of products purged as a result of the operation. + int64 purge_count = 1; + + // A sample of the product names that will be deleted. + // Only populated if `force` is set to false. A max of 100 names will be + // returned and the names are chosen at random. + repeated string purge_sample = 2 [ + (google.api.resource_reference) = { type: "retail.googleapis.com/Product" } + ]; +} + // Request message for PurgeUserEvents method. message PurgeUserEventsRequest { // Required. The resource name of the catalog under which the events are diff --git a/third_party/googleapis/google/cloud/retail/v2/retail_grpc_service_config.json b/third_party/googleapis/google/cloud/retail/v2/retail_grpc_service_config.json index 094508b75..222b3cc68 100644 --- a/third_party/googleapis/google/cloud/retail/v2/retail_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/retail/v2/retail_grpc_service_config.json @@ -4,7 +4,6 @@ "name": [ { "service": "google.cloud.retail.v2.CatalogService" }, { "service": "google.cloud.retail.v2.CompletionService" }, - { "service": "google.cloud.retail.v2.UserEventService" }, { "service": "google.cloud.retail.v2.PredictionService" }, { "service": "google.cloud.retail.v2.SearchService" } ], @@ -16,6 +15,18 @@ "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } }, + { + "name": [ + { "service": "google.cloud.retail.v2.UserEventService" } + ], + "timeout": "10s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "5s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, { "name": [ { "service": "google.cloud.retail.v2.ProductService" }, diff --git a/third_party/googleapis/google/cloud/retail/v2/retail_v2.yaml b/third_party/googleapis/google/cloud/retail/v2/retail_v2.yaml index 82b086e58..c00bfc85e 100644 --- a/third_party/googleapis/google/cloud/retail/v2/retail_v2.yaml +++ b/third_party/googleapis/google/cloud/retail/v2/retail_v2.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: retail.googleapis.com -title: Retail API +title: Vertex AI Search for Retail API apis: - name: google.cloud.location.Locations @@ -33,6 +33,8 @@ types: - name: google.cloud.retail.v2.ImportUserEventsResponse - name: google.cloud.retail.v2.Model - name: google.cloud.retail.v2.PurgeMetadata +- name: google.cloud.retail.v2.PurgeProductsMetadata +- name: google.cloud.retail.v2.PurgeProductsResponse - name: google.cloud.retail.v2.PurgeUserEventsResponse - name: google.cloud.retail.v2.RejoinUserEventsMetadata - name: google.cloud.retail.v2.RejoinUserEventsResponse @@ -47,9 +49,10 @@ types: documentation: summary: |- - Cloud Retail service enables customers to build end-to-end personalized - recommendation systems without requiring a high level of expertise in - machine learning, recommendation system, or Google Cloud. + Vertex AI Search for Retail API is made up of Retail Search, Browse and + Recommendations. These discovery AI solutions help you implement + personalized search, browse and recommendations, based on machine learning + models, across your websites and mobile applications. rules: - selector: google.cloud.location.Locations.GetLocation description: Gets information about a location. @@ -57,27 +60,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.retail.v2.CatalogService.UpdateCatalog - deadline: 10.0 - - selector: google.cloud.retail.v2.CompletionService.ImportCompletionData - deadline: 300.0 - - selector: 'google.cloud.retail.v2.ModelService.*' - deadline: 60.0 - - selector: 'google.cloud.retail.v2.ProductService.*' - deadline: 30.0 - - selector: google.cloud.retail.v2.ProductService.ImportProducts - deadline: 300.0 - - selector: google.cloud.retail.v2.UserEventService.CollectUserEvent - deadline: 10.0 - - selector: google.cloud.retail.v2.UserEventService.ImportUserEvents - deadline: 600.0 - - selector: google.cloud.retail.v2.UserEventService.PurgeUserEvents - deadline: 30.0 - - selector: google.longrunning.Operations.ListOperations - deadline: 300.0 - http: rules: - selector: google.longrunning.Operations.GetOperation diff --git a/third_party/googleapis/google/cloud/retail/v2/search_service.proto b/third_party/googleapis/google/cloud/retail/v2/search_service.proto index d25d28499..c9b8cbb3e 100644 --- a/third_party/googleapis/google/cloud/retail/v2/search_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -118,13 +118,13 @@ message SearchRequest { // values. Maximum number of intervals is 40. // // For all numerical facet keys that appear in the list of products from - // the catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are + // the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are // computed from their distribution weekly. If the model assigns a high // score to a numerical facet key and its intervals are not specified in - // the search request, these percentiles will become the bounds - // for its intervals and will be returned in the response. If the + // the search request, these percentiles become the bounds + // for its intervals and are returned in the response. If the // facet key intervals are specified in the request, then the specified - // intervals will be returned instead. + // intervals are returned instead. repeated Interval intervals = 2; // Only get facet for the given restricted values. For example, when using @@ -157,14 +157,14 @@ message SearchRequest { // Only get facet values that start with the given string prefix. For // example, suppose "categories" has three values "Women > Shoe", // "Women > Dress" and "Men > Shoe". If set "prefixes" to "Women", the - // "categories" facet will give only "Women > Shoe" and "Women > Dress". + // "categories" facet gives only "Women > Shoe" and "Women > Dress". // Only supported on textual fields. Maximum is 10. repeated string prefixes = 8; // Only get facet values that contains the given strings. For example, // suppose "categories" has three values "Women > Shoe", // "Women > Dress" and "Men > Shoe". If set "contains" to "Shoe", the - // "categories" facet will give only "Women > Shoe" and "Men > Shoe". + // "categories" facet gives only "Women > Shoe" and "Men > Shoe". // Only supported on textual fields. Maximum is 10. repeated string contains = 9; @@ -197,7 +197,7 @@ message SearchRequest { string order_by = 4; // The query that is used to compute facet for the given facet key. - // When provided, it will override the default behavior of facet + // When provided, it overrides the default behavior of facet // computation. The query syntax is the same as a filter expression. See // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter] for // detail syntax and limitations. Notice that there is no limitation on @@ -206,9 +206,9 @@ message SearchRequest { // // In the response, // [SearchResponse.Facet.values.value][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.value] - // will be always "1" and + // is always "1" and // [SearchResponse.Facet.values.count][google.cloud.retail.v2.SearchResponse.Facet.FacetValue.count] - // will be the number of results that match the query. + // is the number of results that match the query. // // For example, you can set a customized facet for "shipToStore", // where @@ -216,7 +216,7 @@ message SearchRequest { // is "customizedShipToStore", and // [FacetKey.query][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.query] // is "availability: ANY(\"IN_STOCK\") AND shipToStore: ANY(\"123\")". - // Then the facet will count the products that are both in stock and ship + // Then the facet counts the products that are both in stock and ship // to store "123". string query = 5; @@ -267,15 +267,15 @@ message SearchRequest { // Enables dynamic position for this facet. If set to true, the position of // this facet among all facets in the response is determined by Google - // Retail Search. It will be ordered together with dynamic facets if dynamic + // Retail Search. It is ordered together with dynamic facets if dynamic // facets is enabled. If set to false, the position of this facet in the - // response will be the same as in the request, and it will be ranked before + // response is the same as in the request, and it is ranked before // the facets with dynamic position enable and all dynamic facets. // // For example, you may always want to have rating facet returned in // the response, but it's not necessarily to always display the rating facet // at the top. In that case, you can set enable_dynamic_position to true so - // that the position of rating facet in response will be determined by + // that the position of rating facet in response is determined by // Google Retail Search. // // Another example, assuming you have the following facets in the request: @@ -286,13 +286,13 @@ message SearchRequest { // // * "brands", enable_dynamic_position = false // - // And also you have a dynamic facets enable, which will generate a facet - // 'gender'. Then the final order of the facets in the response can be + // And also you have a dynamic facets enable, which generates a facet + // "gender". Then, the final order of the facets in the response can be // ("price", "brands", "rating", "gender") or ("price", "brands", "gender", // "rating") depends on how Google Retail Search orders "gender" and - // "rating" facets. However, notice that "price" and "brands" will always be - // ranked at 1st and 2nd position since their enable_dynamic_position are - // false. + // "rating" facets. However, notice that "price" and "brands" are always + // ranked at first and second position because their enable_dynamic_position + // values are false. bool enable_dynamic_position = 4; } @@ -489,7 +489,7 @@ message SearchRequest { // or the name of the legacy placement resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. // This field is used to identify the serving config name and the set - // of models that will be used to make the search. + // of models that are used to make the search. string placement = 1 [(google.api.field_behavior) = REQUIRED]; // The branch resource name, such as @@ -554,8 +554,8 @@ message SearchRequest { // The filter syntax consists of an expression language for constructing a // predicate from one or more fields of the products being filtered. Filter - // expression is case-sensitive. See more details at this [user - // guide](https://cloud.google.com/retail/docs/filter-and-order#filter). + // expression is case-sensitive. For more information, see + // [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). // // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string filter = 10; @@ -564,21 +564,21 @@ message SearchRequest { // checking any filters on the search page. // // The filter applied to every search request when quality improvement such as - // query expansion is needed. For example, if a query does not have enough - // results, an expanded query with - // [SearchRequest.canonical_filter][google.cloud.retail.v2.SearchRequest.canonical_filter] - // will be returned as a supplement of the original query. This field is - // strongly recommended to achieve high search quality. + // query expansion is needed. In the case a query does not have a sufficient + // amount of results this filter will be used to determine whether or not to + // enable the query expansion flow. The original filter will still be used for + // the query expanded search. + // This field is strongly recommended to achieve high search quality. // - // See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter] for - // more details about filter syntax. + // For more information about filter syntax, see + // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter]. string canonical_filter = 28; // The order in which products are returned. Products can be ordered by // a field in an [Product][google.cloud.retail.v2.Product] object. Leave it - // unset if ordered by relevance. OrderBy expression is case-sensitive. See - // more details at this [user - // guide](https://cloud.google.com/retail/docs/filter-and-order#order). + // unset if ordered by relevance. OrderBy expression is case-sensitive. For + // more information, see + // [Order](https://cloud.google.com/retail/docs/filter-and-order#order). // // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string order_by = 11; @@ -596,8 +596,8 @@ message SearchRequest { // textual facets can be dynamically generated. DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; - // Boost specification to boost certain products. See more details at this - // [user guide](https://cloud.google.com/retail/docs/boosting). + // Boost specification to boost certain products. For more information, see + // [Boost results](https://cloud.google.com/retail/docs/boosting). // // Notice that if both // [ServingConfig.boost_control_ids][google.cloud.retail.v2.ServingConfig.boost_control_ids] @@ -609,8 +609,8 @@ message SearchRequest { BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which - // query expansion will occur. See more details at this [user - // guide](https://cloud.google.com/retail/docs/result-size#query_expansion). + // query expansion occurs. For more information, see [Query + // expansion](https://cloud.google.com/retail/docs/result-size#query_expansion). QueryExpansionSpec query_expansion_spec = 14; // The keys to fetch and rollup the matching @@ -685,7 +685,7 @@ message SearchRequest { // INVALID_ARGUMENT error is returned. repeated string variant_rollup_keys = 17; - // The categories associated with a category page. Required for category + // 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 // [UserEvent.page_categories][google.cloud.retail.v2.UserEvent.page_categories]; @@ -729,9 +729,9 @@ message SearchRequest { // 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. + // For more information, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // in the Resource Manager documentation. map labels = 34; // The spell correction specification that specifies the mode under @@ -948,7 +948,7 @@ message SearchResponse { repeated ExperimentInfo experiment_info = 17; } -// Metadata for active A/B testing [Experiments][]. +// Metadata for active A/B testing [Experiment][]. message ExperimentInfo { // Metadata for active serving config A/B tests. message ServingConfigExperiment { @@ -961,8 +961,8 @@ message ExperimentInfo { }]; // The fully qualified resource name of the serving config - // [VariantArm.serving_config_id][] responsible for generating the search - // response. For example: + // [Experiment.VariantArm.serving_config_id][] responsible for generating + // the search response. For example: // `projects/*/locations/*/catalogs/*/servingConfigs/*`. string experiment_serving_config = 2 [(google.api.resource_reference) = { type: "retail.googleapis.com/ServingConfig" diff --git a/third_party/googleapis/google/cloud/retail/v2/serving_config.proto b/third_party/googleapis/google/cloud/retail/v2/serving_config.proto index ef5b46fca..5b234396f 100644 --- a/third_party/googleapis/google/cloud/retail/v2/serving_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2/serving_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -240,6 +240,10 @@ message ServingConfig { // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. string enable_category_filter_level = 16; + // When the flag is enabled, the products in the denylist will not be filtered + // out in the recommendation filtering results. + bool ignore_recs_denylist = 24; + // The specification for personalization spec. // // Can only be set if diff --git a/third_party/googleapis/google/cloud/retail/v2/serving_config_service.proto b/third_party/googleapis/google/cloud/retail/v2/serving_config_service.proto index 25ca897f3..28716f47b 100644 --- a/third_party/googleapis/google/cloud/retail/v2/serving_config_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/serving_config_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2/user_event.proto b/third_party/googleapis/google/cloud/retail/v2/user_event.proto index 1ddc8bd61..32859f1f8 100644 --- a/third_party/googleapis/google/cloud/retail/v2/user_event.proto +++ b/third_party/googleapis/google/cloud/retail/v2/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ message UserEvent { // Required. User event type. Allowed values are: // // * `add-to-cart`: Products being added to cart. + // * `remove-from-cart`: Products being removed from cart. // * `category-page-view`: Special pages such as sale or promotion pages // viewed. // * `detail-page-view`: Products detail page viewed. @@ -271,8 +272,8 @@ message UserEvent { // The entity for customers that may run multiple different entities, domains, // sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, // `google.com`, `youtube.com`, etc. - // It is recommended to set this field to get better per-entity search, - // completion and prediction results. + // We recommend that you set this field to get better per-entity search, + // completion, and prediction results. string entity = 23; } diff --git a/third_party/googleapis/google/cloud/retail/v2/user_event_service.proto b/third_party/googleapis/google/cloud/retail/v2/user_event_service.proto index 719fdaa2d..1ebdae2f8 100644 --- a/third_party/googleapis/google/cloud/retail/v2/user_event_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/BUILD.bazel b/third_party/googleapis/google/cloud/retail/v2alpha/BUILD.bazel index 91853ac17..335fc5d17 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/BUILD.bazel +++ b/third_party/googleapis/google/cloud/retail/v2alpha/BUILD.bazel @@ -9,19 +9,24 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "retail_proto", srcs = [ "analytics_service.proto", + "branch.proto", + "branch_service.proto", "catalog.proto", "catalog_service.proto", "common.proto", @@ -37,6 +42,8 @@ proto_library( "prediction_service.proto", "product.proto", "product_service.proto", + "project.proto", + "project_service.proto", "promotion.proto", "purge_config.proto", "search_service.proto", @@ -68,12 +75,14 @@ proto_library_with_info( deps = [ ":retail_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -103,11 +112,13 @@ java_gapic_library( service_yaml = "retail_v2alpha.yaml", test_deps = [ ":retail_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ ":retail_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) @@ -116,6 +127,8 @@ java_gapic_test( test_classes = [ "com.google.cloud.retail.v2alpha.AnalyticsServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.AnalyticsServiceClientTest", + "com.google.cloud.retail.v2alpha.BranchServiceClientHttpJsonTest", + "com.google.cloud.retail.v2alpha.BranchServiceClientTest", "com.google.cloud.retail.v2alpha.CatalogServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.CatalogServiceClientTest", "com.google.cloud.retail.v2alpha.CompletionServiceClientHttpJsonTest", @@ -130,6 +143,8 @@ java_gapic_test( "com.google.cloud.retail.v2alpha.PredictionServiceClientTest", "com.google.cloud.retail.v2alpha.ProductServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.ProductServiceClientTest", + "com.google.cloud.retail.v2alpha.ProjectServiceClientHttpJsonTest", + "com.google.cloud.retail.v2alpha.ProjectServiceClientTest", "com.google.cloud.retail.v2alpha.SearchServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.SearchServiceClientTest", "com.google.cloud.retail.v2alpha.ServingConfigServiceClientHttpJsonTest", @@ -156,6 +171,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -190,6 +206,7 @@ go_gapic_library( deps = [ ":retail_go_proto", "//google/api:httpbody_go_proto", + "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -213,6 +230,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -227,6 +245,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "retail_v2alpha.yaml", transport = "grpc+rest", + deps = [ + ], ) py_test( @@ -250,6 +270,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -266,10 +287,13 @@ php_gapic_library( name = "retail_php_gapic", srcs = [":retail_proto_with_info"], grpc_service_config = "retail_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "retail_v2alpha.yaml", transport = "grpc+rest", - deps = [":retail_php_proto"], + deps = [ + ":retail_php_proto", + ], ) # Open Source Packages @@ -284,6 +308,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -315,6 +340,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -369,6 +395,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -379,6 +406,7 @@ load( csharp_proto_library( name = "retail_csharp_proto", + extra_opts = [], deps = [":retail_proto"], ) @@ -415,6 +443,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/analytics_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/analytics_service.proto index 84df2cf9b..49e39f7cf 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/analytics_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/analytics_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/branch.proto b/third_party/googleapis/google/cloud/retail/v2alpha/branch.proto new file mode 100644 index 000000000..9667eae96 --- /dev/null +++ b/third_party/googleapis/google/cloud/retail/v2alpha/branch.proto @@ -0,0 +1,245 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.retail.v2alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/product.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "BranchProto"; +option java_package = "com.google.cloud.retail.v2alpha"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; +option ruby_package = "Google::Cloud::Retail::V2alpha"; + +// A view that specifies different level of fields of a +// [Branch][google.cloud.retail.v2alpha.Branch] to show in responses. +enum BranchView { + // The value when it's unspecified. This defaults to the BASIC view. + BRANCH_VIEW_UNSPECIFIED = 0; + + // Includes basic metadata about the branch, but not statistical fields. + // See documentation of fields of [Branch][google.cloud.retail.v2alpha.Branch] + // to find what fields are excluded from BASIC view. + BRANCH_VIEW_BASIC = 1; + + // Includes all fields of a [Branch][google.cloud.retail.v2alpha.Branch]. + BRANCH_VIEW_FULL = 2; +} + +// A data branch that stores [Product][google.cloud.retail.v2alpha.Product]s. +message Branch { + option (google.api.resource) = { + type: "retail.googleapis.com/Branch" + pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/branches/{branch}" + }; + + // A statistic about the number of products in a branch. + message ProductCountStatistic { + // Scope of what products are included for this count. + enum ProductCountScope { + // Default value for enum. This value is not used in the API response. + PRODUCT_COUNT_SCOPE_UNSPECIFIED = 0; + + // Scope for all existing products in the branch. Useful for understanding + // how many products there are in a branch. + ALL_PRODUCTS = 1; + + // Scope for products created or updated in the last 24 hours. + LAST_24_HOUR_UPDATE = 2; + } + + // [ProductCountScope] of the [counts]. + ProductCountScope scope = 1; + + // The number of products in + // [scope][google.cloud.retail.v2alpha.Branch.ProductCountStatistic.scope] + // broken down into different groups. + // + // The key is a group representing a set of products, and the value is the + // number of products in that group. + // Note: keys in this map may change over time. + // + // Possible keys: + // * "primary-in-stock", products have + // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] + // type and + // [Product.Availability.IN_STOCK][google.cloud.retail.v2alpha.Product.Availability.IN_STOCK] + // availability. + // + // * "primary-out-of-stock", products have + // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] + // type and + // [Product.Availability.OUT_OF_STOCK][google.cloud.retail.v2alpha.Product.Availability.OUT_OF_STOCK] + // availability. + // + // * "primary-preorder", products have + // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] + // type and + // [Product.Availability.PREORDER][google.cloud.retail.v2alpha.Product.Availability.PREORDER] + // availability. + // + // * "primary-backorder", products have + // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] + // type and + // [Product.Availability.BACKORDER][google.cloud.retail.v2alpha.Product.Availability.BACKORDER] + // availability. + // + // * "variant-in-stock", products have + // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] + // type and + // [Product.Availability.IN_STOCK][google.cloud.retail.v2alpha.Product.Availability.IN_STOCK] + // availability. + // + // * "variant-out-of-stock", products have + // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] + // type and + // [Product.Availability.OUT_OF_STOCK][google.cloud.retail.v2alpha.Product.Availability.OUT_OF_STOCK] + // availability. + // + // * "variant-preorder", products have + // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] + // type and + // [Product.Availability.PREORDER][google.cloud.retail.v2alpha.Product.Availability.PREORDER] + // availability. + // + // * "variant-backorder", products have + // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT] + // type and + // [Product.Availability.BACKORDER][google.cloud.retail.v2alpha.Product.Availability.BACKORDER] + // availability. + // + // * "price-discounted", products have [Product.price_info.price] < + // [Product.price_info.original_price]. + map counts = 2; + } + + // Metric measured on a group of + // [Product][google.cloud.retail.v2alpha.Product]s against a certain quality + // requirement. Contains the number of products that pass the check and the + // number of products that don't. + message QualityMetric { + // The key that represents a quality requirement rule. + // + // Supported keys: + // * "has-valid-uri": product has a valid and accessible + // [uri][google.cloud.retail.v2alpha.Product.uri]. + // + // * "available-expire-time-conformance": + // [Product.available_time][google.cloud.retail.v2alpha.Product.available_time] + // is early than "now", and + // [Product.expire_time][google.cloud.retail.v2alpha.Product.expire_time] is + // greater than "now". + // + // * "has-searchable-attributes": product has at least one + // [attribute][google.cloud.retail.v2alpha.Product.attributes] set to + // searchable. + // + // * "has-description": product has non-empty + // [description][google.cloud.retail.v2alpha.Product.description]. + // + // * "has-at-least-bigram-title": Product + // [title][google.cloud.retail.v2alpha.Product.title] has at least two + // words. A comprehensive title helps to improve search quality. + // + // * "variant-has-image": the + // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT] products has + // at least one [image][google.cloud.retail.v2alpha.Product.images]. You may + // ignore this metric if all your products are at + // [primary][google.cloud.retail.v2alpha.Product.Type.PRIMARY] level. + // + // * "variant-has-price-info": the + // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT] products has + // [price_info][google.cloud.retail.v2alpha.Product.price_info] set. You may + // ignore this metric if all your products are at + // [primary][google.cloud.retail.v2alpha.Product.Type.PRIMARY] level. + // + // * "has-publish-time": product has non-empty + // [publish_time][google.cloud.retail.v2alpha.Product.publish_time]. + string requirement_key = 1; + + // Number of products passing the quality requirement check. We only check + // searchable products. + int32 qualified_product_count = 2; + + // Number of products failing the quality requirement check. We only check + // searchable products. + int32 unqualified_product_count = 3; + + // Value from 0 to 100 representing the suggested percentage of products + // that meet the quality requirements to get good search and recommendation + // performance. 100 * (qualified_product_count) / + // (qualified_product_count + unqualified_product_count) should be greater + // or equal to this suggestion. + double suggested_quality_percent_threshold = 4; + + // A list of a maximum of 100 sample products that do not qualify for + // this requirement. + // + // This field is only populated in the response to + // [BranchService.GetBranch][google.cloud.retail.v2alpha.BranchService.GetBranch] + // API, and is always empty for + // [BranchService.ListBranches][google.cloud.retail.v2alpha.BranchService.ListBranches]. + // + // Only the following fields are set in the + // [Product][google.cloud.retail.v2alpha.Product]. + // + // * [Product.name][google.cloud.retail.v2alpha.Product.name] + // * [Product.id][google.cloud.retail.v2alpha.Product.id] + // * [Product.title][google.cloud.retail.v2alpha.Product.title] + repeated Product unqualified_sample_products = 5; + } + + // Immutable. Full resource name of the branch, such as + // `projects/*/locations/global/catalogs/default_catalog/branches/branch_id`. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Human readable name of the branch to display in the UI. + string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether this branch is set as the default branch of + // its parent catalog. + bool is_default = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp of last import through + // [ProductService.ImportProducts][google.cloud.retail.v2alpha.ProductService.ImportProducts]. + // Empty value means no import has been made to this branch. + google.protobuf.Timestamp last_product_import_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics for number of products in the branch, provided for + // different + // [scopes][google.cloud.retail.v2alpha.Branch.ProductCountStatistic.ProductCountScope]. + // + // This field is not populated in [BranchView.BASIC][] view. + repeated ProductCountStatistic product_count_stats = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The quality metrics measured among products of this branch. + // + // See + // [QualityMetric.requirement_key][google.cloud.retail.v2alpha.Branch.QualityMetric.requirement_key] + // for supported metrics. Metrics could be missing if failed to retrieve. + // + // This field is not populated in [BranchView.BASIC][] view. + repeated QualityMetric quality_metrics = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/branch_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/branch_service.proto new file mode 100644 index 000000000..79f95c361 --- /dev/null +++ b/third_party/googleapis/google/cloud/retail/v2alpha/branch_service.proto @@ -0,0 +1,111 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.retail.v2alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/branch.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "BranchServiceProto"; +option java_package = "com.google.cloud.retail.v2alpha"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; +option ruby_package = "Google::Cloud::Retail::V2alpha"; + +// Service for [Branch][google.cloud.retail.v2alpha.Branch] Management +// +// [Branch][google.cloud.retail.v2alpha.Branch]es are automatically created when +// a [Catalog][google.cloud.retail.v2alpha.Catalog] is created. There are fixed +// three branches in each catalog, and may use +// [ListBranches][google.cloud.retail.v2alpha.BranchService.ListBranches] method +// to get the details of all branches. +service BranchService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists all [Branch][google.cloud.retail.v2alpha.Branch]s under the specified + // parent [Catalog][google.cloud.retail.v2alpha.Catalog]. + rpc ListBranches(ListBranchesRequest) returns (ListBranchesResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/branches" + }; + option (google.api.method_signature) = "parent"; + } + + // Retrieves a [Branch][google.cloud.retail.v2alpha.Branch]. + rpc GetBranch(GetBranchRequest) returns (Branch) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/locations/*/catalogs/*/branches/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request for +// [BranchService.ListBranches][google.cloud.retail.v2alpha.BranchService.ListBranches] +// method. +message ListBranchesRequest { + // Required. The parent catalog resource name. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // The view to apply to the returned + // [Branch][google.cloud.retail.v2alpha.Branch]. Defaults to + // [Branch.BranchView.BASIC] if unspecified. + // See documentation of fields of [Branch][google.cloud.retail.v2alpha.Branch] + // to find what fields are excluded from BASIC view. + BranchView view = 2; +} + +// Response for +// [BranchService.ListBranches][google.cloud.retail.v2alpha.BranchService.ListBranches] +// method. +message ListBranchesResponse { + // The Branches. + repeated Branch branches = 1; +} + +// Request for +// [BranchService.GetBranch][google.cloud.retail.v2alpha.BranchService.GetBranch] +// method. +message GetBranchRequest { + // Required. The name of the branch to retrieve. + // Format: + // `projects/*/locations/global/catalogs/default_catalog/branches/some_branch_id`. + // + // "default_branch" can be used as a special branch_id, it returns the + // default branch that has been set for the catalog. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } + ]; + + // The view to apply to the returned + // [Branch][google.cloud.retail.v2alpha.Branch]. Defaults to + // [Branch.BranchView.BASIC] if unspecified. + // See documentation of fields of [Branch][google.cloud.retail.v2alpha.Branch] + // to find what fields are excluded from BASIC view. + BranchView view = 2; +} diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/catalog.proto b/third_party/googleapis/google/cloud/retail/v2alpha/catalog.proto index ee569f9c8..891b328e9 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/catalog.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/catalog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2alpha/common.proto"; import "google/cloud/retail/v2alpha/import_config.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; @@ -87,6 +88,124 @@ message ProductLevelConfig { // Catalog level attribute config for an attribute. For example, if customers // want to enable/disable facet for a specific attribute. message CatalogAttribute { + // Possible options for the facet that corresponds to the current attribute + // config. + message FacetConfig { + // [Facet values][google.cloud.retail.v2alpha.SearchResponse.Facet.values] + // to ignore on [facets][google.cloud.retail.v2alpha.SearchResponse.Facet] + // during the specified time range for the given + // [SearchResponse.Facet.key][google.cloud.retail.v2alpha.SearchResponse.Facet.key] + // attribute. + message IgnoredFacetValues { + // List of facet values to ignore for the following time range. The facet + // values are the same as the attribute values. There is a limit of 10 + // values per instance of IgnoredFacetValues. Each value can have at most + // 128 characters. + repeated string values = 1; + + // Time range for the current list of facet values to ignore. + // If multiple time ranges are specified for an facet value for the + // current attribute, consider all of them. If both are empty, ignore + // always. If start time and end time are set, then start time + // must be before end time. + // If start time is not empty and end time is empty, then will ignore + // these facet values after the start time. + google.protobuf.Timestamp start_time = 2; + + // If start time is empty and end time is not empty, then ignore these + // facet values before end time. + google.protobuf.Timestamp end_time = 3; + } + + // Replaces a set of textual facet values by the same (possibly different) + // merged facet value. Each facet value should appear at most once as a + // value per + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute]. This + // feature is available only for textual custom attributes. + message MergedFacetValue { + // All the facet values that are replaces by the same + // [merged_value][google.cloud.retail.v2alpha.CatalogAttribute.FacetConfig.MergedFacetValue.merged_value] + // that follows. The maximum number of values per MergedFacetValue is 25. + // Each value can have up to 128 characters. + repeated string values = 1; + + // All the previous values are replaced by this merged facet value. + // This merged_value must be non-empty and can have up to 128 characters. + string merged_value = 2; + } + + // The current facet key (i.e. attribute config) maps into the + // [merged_facet_key][google.cloud.retail.v2alpha.CatalogAttribute.FacetConfig.MergedFacet.merged_facet_key]. + // A facet key can have at most one child. The current facet key and the + // merged facet key need both to be textual custom attributes or both + // numerical custom attributes (same type). + message MergedFacet { + // The merged facet key should be a valid facet key that is different than + // the facet key of the current catalog attribute. We refer this is + // merged facet key as the child of the current catalog attribute. This + // merged facet key can't be a parent of another facet key (i.e. no + // directed path of length 2). This merged facet key needs to be either a + // textual custom attribute or a numerical custom attribute. + string merged_facet_key = 1; + } + + // Options to rerank based on facet values engaged by the user for the + // current key. That key needs to be a custom textual key and facetable. + // To use this control, you also need to pass all the facet keys engaged by + // the user in the request using the field [SearchRequest.FacetSpec]. In + // particular, if you don't pass the facet keys engaged that you want to + // rerank on, this control won't be effective. Moreover, to obtain better + // results, the facet values that you want to rerank on should be close to + // English (ideally made of words, underscores, and spaces). + message RerankConfig { + // If set to true, then we also rerank the dynamic facets based on the + // facet values engaged by the user for the current attribute key during + // serving. + bool rerank_facet = 1; + + // If empty, rerank on all facet values for the current key. Otherwise, + // will rerank on the facet values from this list only. + repeated string facet_values = 2; + } + + // If you don't set the facet + // [SearchRequest.FacetSpec.FacetKey.intervals][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.intervals] + // in the request to a numerical attribute, then we use the computed + // intervals with rounded bounds obtained from all its product numerical + // attribute values. The computed intervals might not be ideal for some + // attributes. Therefore, we give you the option to overwrite them with the + // facet_intervals field. The maximum of facet intervals per + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] is 40. + // Each interval must have a lower bound or an upper bound. If both bounds + // are provided, then the lower bound must be smaller or equal than the + // upper bound. + repeated Interval facet_intervals = 1; + + // Each instance represents a list of attribute values to ignore as facet + // values for a specific time range. The maximum number of instances per + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] is 25. + repeated IgnoredFacetValues ignored_facet_values = 2; + + // Each instance replaces a list of facet values by a merged facet + // value. If a facet value is not in any list, then it will stay the same. + // To avoid conflicts, only paths of length 1 are accepted. In other words, + // if "dark_blue" merged into "BLUE", then the latter can't merge into + // "blues" because this would create a path of length 2. The maximum number + // of instances of MergedFacetValue per + // [CatalogAttribute][google.cloud.retail.v2alpha.CatalogAttribute] is 100. + // This feature is available only for textual custom attributes. + repeated MergedFacetValue merged_facet_values = 3; + + // Use this field only if you want to merge a facet key into another facet + // key. + MergedFacet merged_facet = 4; + + // Set this field only if you want to rerank based on facet values engaged + // by the user for the current key. This option is only possible for custom + // facetable textual keys. + RerankConfig rerank_config = 5; + } + // The type of an attribute. enum AttributeType { // The type of the attribute is unknown. @@ -211,7 +330,9 @@ message CatalogAttribute { // are indexed so that it can be filtered, faceted, or boosted in // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]. // - // Must be specified, otherwise throws INVALID_FORMAT error. + // Must be specified when + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error. IndexableOption indexable_option = 5; // If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic @@ -233,7 +354,9 @@ message CatalogAttribute { // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search], // as there are no text values associated to numerical attributes. // - // Must be specified, otherwise throws INVALID_FORMAT error. + // Must be specified, when + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2alpha.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error. SearchableOption searchable_option = 7; // When @@ -255,6 +378,9 @@ message CatalogAttribute { // results. If unset, the server behavior defaults to // [RETRIEVABLE_DISABLED][google.cloud.retail.v2alpha.CatalogAttribute.RetrievableOption.RETRIEVABLE_DISABLED]. RetrievableOption retrievable_option = 12; + + // Contains facet options. + FacetConfig facet_config = 13; } // Catalog level attribute config. @@ -344,8 +470,8 @@ message CompletionConfig { // Output only. Name of the LRO corresponding to the latest suggestion terms // list import. // - // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to - // retrieve the latest state of the Long Running Operation. + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API + // method to retrieve the latest state of the Long Running Operation. string last_suggestions_import_operation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -375,10 +501,10 @@ message CompletionConfig { } // Represents a link between a Merchant Center account and a branch. -// Once a link is established, products from the linked merchant center account -// will be streamed to the linked branch. +// After a link is established, products from the linked Merchant Center account +// are streamed to the linked branch. message MerchantCenterLink { - // Required. The linked [Merchant center account + // Required. The linked [Merchant Center account // ID](https://developers.google.com/shopping-content/guides/accountstatuses). // The account must be a standalone account or a sub-account of a MCA. int64 merchant_center_account_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -388,7 +514,7 @@ message MerchantCenterLink { // empty value will use the currently configured default branch. However, // changing the default branch later on won't change the linked branch here. // - // A single branch ID can only have one linked merchant center account ID. + // A single branch ID can only have one linked Merchant Center account ID. string branch_id = 2; // String representing the destination to import for, all if left empty. @@ -470,8 +596,8 @@ message Catalog { [(google.api.field_behavior) = REQUIRED]; // The Merchant Center linking configuration. - // Once a link is added, the data stream from Merchant Center to Cloud Retail + // After a link is added, the data stream from Merchant Center to Cloud Retail // will be enabled automatically. The requester must have access to the - // merchant center account in order to make changes to this field. + // Merchant Center account in order to make changes to this field. MerchantCenterLinkingConfig merchant_center_linking_config = 6; } diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/catalog_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/catalog_service.proto index 41b1af8a3..5cec188d4 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/catalog_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/catalog_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/common.proto b/third_party/googleapis/google/cloud/retail/v2alpha/common.proto index 276af73c9..1b6da16d9 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/common.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -124,6 +124,12 @@ message Condition { // Range of time(s) specifying when Condition is active. // Condition true if any time range matches. repeated TimeRange active_time_range = 3; + + // Used to support browse uses cases. + // A list (up to 10 entries) of categories or departments. + // The format should be the same as + // [UserEvent.page_categories][google.cloud.retail.v2alpha.UserEvent.page_categories]; + repeated string page_categories = 4; } // A rule is a condition-action pair @@ -173,17 +179,19 @@ message Rule { } // * Rule Condition: - // - No - // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] - // provided is a global match. - // - 1 or more - // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] - // provided are combined with OR operator. + // - No + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] + // provided is a global match. + // - 1 or more + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] + // provided are combined with OR operator. + // // * Action Input: The request query and filter that are applied to the // retrieved products, in addition to any filters already provided with the // SearchRequest. The AND operator is used to combine the query's existing // filters with the filter rule(s). NOTE: May result in 0 results when // filters conflict. + // // * Action Result: Filters the returned objects to be ONLY those that passed // the filter. message FilterAction { @@ -193,9 +201,8 @@ message Rule { // set. // * Filter syntax is identical to // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter]. - // See more - // details at the Retail Search - // [user guide](/retail/search/docs/filter-and-order#filter). + // For more + // information, see [Filter](/retail/docs/filter-and-order#filter). // * To filter products with product ID "product_1" or "product_2", and // color // "Red" or "Blue":
@@ -208,7 +215,7 @@ message Rule { // Redirects a shopper to a specific page. // // * Rule Condition: - // - Must specify + // Must specify // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms]. // * Action Input: Request Query // * Action Result: Redirects shopper to provided uri. @@ -290,6 +297,78 @@ message Rule { repeated string ignore_terms = 1; } + // Force returns an attribute/facet in the request around a certain position + // or above. + // + // * Rule Condition: + // Must specify non-empty + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] + // (for search only) or + // [Condition.page_categories][google.cloud.retail.v2alpha.Condition.page_categories] + // (for browse only), but can't specify both. + // + // * Action Inputs: attribute name, position + // + // * Action Result: Will force return a facet key around a certain position + // or above if the condition is satisfied. + // + // Example: Suppose the query is "shoes", the + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] + // is "shoes", the + // [ForceReturnFacetAction.FacetPositionAdjustment.attribute_name][google.cloud.retail.v2alpha.Rule.ForceReturnFacetAction.FacetPositionAdjustment.attribute_name] + // is "size" and the + // [ForceReturnFacetAction.FacetPositionAdjustment.position][google.cloud.retail.v2alpha.Rule.ForceReturnFacetAction.FacetPositionAdjustment.position] + // is 8. + // + // Two cases: a) The facet key "size" is not already in the top 8 slots, then + // the facet "size" will appear at a position close to 8. b) The facet key + // "size" in among the top 8 positions in the request, then it will stay at + // its current rank. + message ForceReturnFacetAction { + // Each facet position adjustment consists of a single attribute name (i.e. + // facet key) along with a specified position. + message FacetPositionAdjustment { + // The attribute name to force return as a facet. Each attribute name + // should be a valid attribute name, be non-empty and contain at most 80 + // characters long. + string attribute_name = 1; + + // This is the position in the request as explained above. It should be + // strictly positive be at most 100. + int32 position = 2; + } + + // Each instance corresponds to a force return attribute for the given + // condition. There can't be more 3 instances here. + repeated FacetPositionAdjustment facet_position_adjustments = 1; + } + + // Removes an attribute/facet in the request if is present. + // + // * Rule Condition: + // Must specify non-empty + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] + // (for search only) or + // [Condition.page_categories][google.cloud.retail.v2alpha.Condition.page_categories] + // (for browse only), but can't specify both. + // + // * Action Input: attribute name + // + // * Action Result: Will remove the attribute (as a facet) from the request + // if it is present. + // + // Example: Suppose the query is "shoes", the + // [Condition.query_terms][google.cloud.retail.v2alpha.Condition.query_terms] + // is "shoes" and the attribute name "size", then facet key "size" will be + // removed from the request (if it is present). + message RemoveFacetAction { + // The attribute names (i.e. facet keys) to remove from the dynamic facets + // (if present in the request). There can't be more 3 attribute names. + // Each attribute name should be a valid attribute name, be non-empty and + // contain at most 80 characters. + repeated string attribute_names = 1; + } + // An action must be provided. oneof action { // A boost action. @@ -316,6 +395,12 @@ message Rule { // Treats a set of terms as synonyms of one another. TwowaySynonymsAction twoway_synonyms_action = 11; + + // Force returns an attribute as a facet in the request. + ForceReturnFacetAction force_return_facet_action = 12; + + // Remove an attribute as a facet in the request (if present). + RemoveFacetAction remove_facet_action = 13; } // Required. The condition that triggers the rule. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/completion_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/completion_service.proto index 61cd99363..13a7ce610 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/completion_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -157,10 +157,10 @@ message CompleteQueryRequest { // This field is only available for "cloud-retail" dataset. bool enable_attribute_suggestions = 9; - // The entity for customers that may run multiple different entities, domains, - // sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, + // The entity for customers who run multiple entities, domains, sites, or + // regions, for example, `Google US`, `Google Ads`, `Waymo`, // `google.com`, `youtube.com`, etc. - // If this is set, it should be exactly matched with + // If this is set, it must be an exact match with // [UserEvent.entity][google.cloud.retail.v2alpha.UserEvent.entity] to get // per-entity autocomplete results. string entity = 10; @@ -187,19 +187,22 @@ message CompleteQueryResponse { // Facet information for the suggestion term. Gives the number of items // resulting from a search with this suggestion term for each facet. // - // This is an experimental feature for limited customers. Please reach out - // to the support team if you would like to receive this information. + // This is an experimental feature for limited customers. If you want to + // receive this facet information, reach out to the Retail support team. repeated SearchResponse.Facet facets = 3; // Total number of products associated with a search with this suggestion. // - // This is an experimental feature for limited customers. Please reach out - // to the support team if you would like to receive this information. + // This is an experimental feature for limited customers. If you want to + // receive this product count information, reach out to the Retail support + // team. int32 total_product_count = 4; } - // Recent search of this user. + // Deprecated: Recent search of this user. message RecentSearchResult { + option deprecated = true; + // The recent search query. string recent_search = 1; } @@ -220,9 +223,9 @@ message CompleteQueryResponse { // attribution of complete model performance. string attribution_token = 2; - // Matched recent searches of this user. The maximum number of recent searches - // is 10. This field is a restricted feature. Contact Retail Search support - // team if you are interested in enabling it. + // Deprecated. Matched recent searches of this user. The maximum number of + // recent searches is 10. This field is a restricted feature. If you want to + // enable it, contact Retail Search support. // // This feature is only available when // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2alpha.CompleteQueryRequest.visitor_id] @@ -241,7 +244,7 @@ message CompleteQueryResponse { // // Recent searches are deduplicated. More recent searches will be reserved // when duplication happens. - repeated RecentSearchResult recent_search_results = 3; + repeated RecentSearchResult recent_search_results = 3 [deprecated = true]; // A map of matched attribute suggestions. This field is only available for // "cloud-retail" dataset. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/control.proto b/third_party/googleapis/google/cloud/retail/v2alpha/control.proto index 5c3047ce4..69a4c0cf8 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/control.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/control.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/control_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/control_service.proto index 7cfd462db..30048ae1c 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/control_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/control_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/export_config.proto b/third_party/googleapis/google/cloud/retail/v2alpha/export_config.proto index 83d4acfc8..05de85521 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/export_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/export_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/import_config.proto b/third_party/googleapis/google/cloud/retail/v2alpha/import_config.proto index 77ab88be3..e82b7efb3 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/import_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/import_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -196,7 +196,8 @@ message ImportProductsRequest { ImportErrorsConfig errors_config = 3; // Indicates which fields in the provided imported `products` to update. If - // not set, all fields are updated. + // not set, all fields are updated. If provided, only the existing product + // fields are updated. Missing products will not be created. google.protobuf.FieldMask update_mask = 4; // The mode of reconciliation between existing products and the products to be @@ -212,9 +213,14 @@ message ImportProductsRequest { // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has // to be within the same project as // [ImportProductsRequest.parent][google.cloud.retail.v2alpha.ImportProductsRequest.parent]. - // Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the - // `pubsub.topics.publish` IAM permission on the topic. + // Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` + // have the `pubsub.topics.publish` IAM permission on the topic. + // + // Only supported when + // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2alpha.ImportProductsRequest.reconciliation_mode] + // is set to `FULL`. string notification_pubsub_topic = 7; // If true, this performs the FULL import even if it would delete a large diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link.proto b/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link.proto index 5d8df7c8a..6a979bf27 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -30,8 +30,8 @@ option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; option ruby_package = "Google::Cloud::Retail::V2alpha"; // Represents a link between a Merchant Center account and a branch. -// Once a link is established, products from the linked merchant center account -// will be streamed to the linked branch. +// After a link is established, products from the linked Merchant Center account +// are streamed to the linked branch. message MerchantCenterAccountLink { option (google.api.resource) = { type: "retail.googleapis.com/MerchantCenterAccountLink" @@ -88,12 +88,12 @@ message MerchantCenterAccountLink { // The account must be a standalone account or a sub-account of a MCA. int64 merchant_center_account_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The branch id (e.g. 0/1/2) within the catalog that products from + // Required. The branch ID (e.g. 0/1/2) within the catalog that products from // merchant_center_account_id are streamed to. When updating this field, an // empty value will use the currently configured default branch. However, // changing the default branch later on won't change the linked branch here. // - // A single branch id can only have one linked merchant center account id. + // A single branch ID can only have one linked Merchant Center account ID. string branch_id = 3 [(google.api.field_behavior) = REQUIRED]; // The FeedLabel used to perform filtering. @@ -122,8 +122,12 @@ message MerchantCenterAccountLink { // Output only. Represents the state of the link. State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. GCP project ID. + // Output only. Google Cloud project ID. string project_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. An optional arbitrary string that could be used as a tag for + // tracking link source. + string source = 10 [(google.api.field_behavior) = OPTIONAL]; } // Common metadata related to the progress of the operations. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link_service.proto index 93704f004..2decfde2e 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/merchant_center_account_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -86,7 +86,7 @@ service MerchantCenterAccountLinkService { message ListMerchantCenterAccountLinksRequest { // Required. The parent Catalog of the resource. // It must match this format: - // projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID} + // `projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } @@ -107,7 +107,7 @@ message ListMerchantCenterAccountLinksResponse { message CreateMerchantCenterAccountLinkRequest { // Required. The branch resource where this MerchantCenterAccountLink will be // created. Format: - // projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}} + // `projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } @@ -130,7 +130,7 @@ message CreateMerchantCenterAccountLinkRequest { // method. message DeleteMerchantCenterAccountLinkRequest { // Required. Full resource name. Format: - // projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/merchantCenterAccountLinks/{merchant_center_account_link_id} + // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/merchantCenterAccountLinks/{merchant_center_account_link_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/model.proto b/third_party/googleapis/google/cloud/retail/v2alpha/model.proto index b8f8cd8dc..1a1791c76 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/model.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -253,6 +253,25 @@ message Model { [(google.api.field_behavior) = OPTIONAL]; } + // Additional configs for the frequently-bought-together model type. + message FrequentlyBoughtTogetherFeaturesConfig { + // Optional. Specifies the context of the model when it is used in predict + // requests. Can only be set for the `frequently-bought-together` type. If + // it isn't specified, it defaults to + // [MULTIPLE_CONTEXT_PRODUCTS][google.cloud.retail.v2alpha.Model.ContextProductsType.MULTIPLE_CONTEXT_PRODUCTS]. + ContextProductsType context_products_type = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Additional model features config. + message ModelFeaturesConfig { + oneof type_dedicated_config { + // Additional configs for frequently-bought-together models. + FrequentlyBoughtTogetherFeaturesConfig frequently_bought_together_config = + 1; + } + } + // The serving state of the model. enum ServingState { // Unspecified serving state. @@ -321,6 +340,22 @@ message Model { DATA_ERROR = 2; } + // Use single or multiple context products for recommendations. + enum ContextProductsType { + // Unspecified default value, should never be explicitly set. + // Defaults to + // [MULTIPLE_CONTEXT_PRODUCTS][google.cloud.retail.v2alpha.Model.ContextProductsType.MULTIPLE_CONTEXT_PRODUCTS]. + CONTEXT_PRODUCTS_TYPE_UNSPECIFIED = 0; + + // Use only a single product as context for the recommendation. Typically + // used on pages like add-to-cart or product details. + SINGLE_CONTEXT_PRODUCT = 1; + + // Use one or multiple products as context for the recommendation. Typically + // used on shopping cart pages. + MULTIPLE_CONTEXT_PRODUCTS = 2; + } + // Training configuration specific to a // [Model.type][google.cloud.retail.v2alpha.Model.type] - currently, only for // page optimization. @@ -448,4 +483,8 @@ message Model { // PageOptimizationConfig. repeated ServingConfigList serving_config_lists = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Additional model features config. + ModelFeaturesConfig model_features_config = 22 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/model_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/model_service.proto index e26fc8b42..765531bec 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/model_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/prediction_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/prediction_service.proto index 30fb4bf46..b083c39f6 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/prediction_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/product.proto b/third_party/googleapis/google/cloud/retail/v2alpha/product.proto index 3dc548fde..88a391f1f 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/product.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/product.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,10 +33,6 @@ option java_package = "com.google.cloud.retail.v2alpha"; option objc_class_prefix = "RETAIL"; option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; option ruby_package = "Google::Cloud::Retail::V2alpha"; -option (google.api.resource_definition) = { - type: "retail.googleapis.com/Branch" - pattern: "projects/{project}/locations/{location}/catalogs/{catalog}/branches/{branch}" -}; // Product captures all metadata information of items to be recommended or // searched. @@ -103,24 +99,22 @@ message Product { } oneof expiration { - // The timestamp when this product becomes unavailable for - // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]. - // Note that this is only applicable to - // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] and - // [Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION], - // and ignored for - // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]. In - // general, we suggest the users to delete the stale products explicitly, - // instead of using this field to determine staleness. + // Note that this field is applied in the following ways: // - // If it is set, the [Product][google.cloud.retail.v2alpha.Product] is not - // available for - // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search] - // after [expire_time][google.cloud.retail.v2alpha.Product.expire_time]. - // However, the product can still be retrieved by - // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] - // and - // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. + // * If the [Product][google.cloud.retail.v2alpha.Product] is already + // expired when it is uploaded, this product + // is not indexed for search. + // + // * If the [Product][google.cloud.retail.v2alpha.Product] is not expired + // when it is uploaded, only the + // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]'s and + // [Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]'s + // expireTime is respected, and + // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]'s + // expireTime is not used. + // + // In general, we suggest the users to delete the stale + // products explicitly, instead of using this field to determine staleness. // // [expire_time][google.cloud.retail.v2alpha.Product.expire_time] must be // later than @@ -264,9 +258,10 @@ message Product { // INVALID_ARGUMENT error is returned. // // At most 250 values are allowed per - // [Product][google.cloud.retail.v2alpha.Product]. Empty values are not - // allowed. Each value must be a UTF-8 encoded string with a length limit of - // 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + // [Product][google.cloud.retail.v2alpha.Product] unless overridden through + // the Google Cloud console. Empty values are not allowed. Each value must be + // a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, + // an INVALID_ARGUMENT error is returned. // // Corresponding properties: Google Merchant Center property // [google_product_category][mc_google_product_category]. Schema.org property @@ -288,9 +283,10 @@ message Product { // The brands of the product. // - // A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded - // string with a length limit of 1,000 characters. Otherwise, an - // INVALID_ARGUMENT error is returned. + // A maximum of 30 brands are allowed unless overridden through the Google + // Cloud console. Each + // brand must be a UTF-8 encoded string with a length limit of 1,000 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // Corresponding properties: Google Merchant Center property // [brand](https://support.google.com/merchants/answer/6324351). Schema.org diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/product_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/product_service.proto index c954d8c61..72c1edecf 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/product_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/product_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -196,10 +196,11 @@ service ProductService { }; } - // It is recommended to use the + // We recommend that you use the // [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories] - // method instead of - // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces]. + // method instead of the + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces] + // method. // [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories] // achieves the same results but provides more fine-grained control over // ingesting local inventory data. @@ -238,10 +239,11 @@ service ProductService { }; } - // It is recommended to use the + // We recommend that you use the // [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories] - // method instead of - // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]. + // method instead of the + // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces] + // method. // [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories] // achieves the same results but provides more fine-grained control over // ingesting local inventory data. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/project.proto b/third_party/googleapis/google/cloud/retail/v2alpha/project.proto new file mode 100644 index 000000000..6b91fce27 --- /dev/null +++ b/third_party/googleapis/google/cloud/retail/v2alpha/project.proto @@ -0,0 +1,188 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.retail.v2alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/common.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectProto"; +option java_package = "com.google.cloud.retail.v2alpha"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; +option ruby_package = "Google::Cloud::Retail::V2alpha"; + +// Project level logging config to control what level of log will be generated +// and written to Cloud Logging. +message LoggingConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/LoggingConfig" + pattern: "projects/{project}/loggingConfig" + }; + + // The logging configurations for services supporting log generation. + message LogGenerationRule { + // The logging level. + // + // By default it is set to `LOG_WARNINGS_AND_ABOVE`. + LoggingLevel logging_level = 1; + + // The log sample rate for INFO level log entries. You can use this to + // reduce the number of entries generated for INFO level logs. + // + // DO NOT set this field if the + // [logging_level][google.cloud.retail.v2alpha.LoggingConfig.LogGenerationRule.logging_level] + // is not + // [LoggingLevel.LOG_ALL][google.cloud.retail.v2alpha.LoggingConfig.LoggingLevel.LOG_ALL]. + // Otherwise, an INVALID_ARGUMENT error is returned. + // + // Sample rate for INFO logs defaults to 1 when unset (generate and send all + // INFO logs to Cloud Logging). Its value must be greater than 0 and less + // than or equal to 1. + optional float info_log_sample_rate = 2; + } + + // The granular logging configurations for supported services. + message ServiceLogGenerationRule { + // Required. Supported service names: + // "CatalogService", + // "CompletionService", + // "ControlService", + // "MerchantCenterStreaming", + // "ModelService", + // "PredictionService", + // "ProductService", + // "ServingConfigService", + // "UserEventService", + string service_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // The log generation rule that applies to this service. + LogGenerationRule log_generation_rule = 3; + } + + // The setting to control log generation. + enum LoggingLevel { + // Default value. Defaults to `LOG_FOR_WARNINGS_AND_ABOVE` if unset. + LOGGING_LEVEL_UNSPECIFIED = 0; + + // No log will be generated and sent to Cloud Logging. + LOGGING_DISABLED = 1; + + // Log for operations resulted in fatal error. + LOG_ERRORS_AND_ABOVE = 2; + + // In addition to `LOG_ERRORS_AND_ABOVE`, also log for operations that have + // soft errors, quality suggestions. + LOG_WARNINGS_AND_ABOVE = 3; + + // Log all operations, including successful ones. + LOG_ALL = 4; + } + + // Required. Immutable. The name of the LoggingConfig singleton resource. + // Format: projects/*/loggingConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // The log generation rule that applies by default to all services + // supporting log generation. It can be overridden by + // [ServiceLogGenerationRule][google.cloud.retail.v2alpha.LoggingConfig.ServiceLogGenerationRule] + // for service level control. + LogGenerationRule default_log_generation_rule = 2; + + // Controls logging configurations more granularly for each supported + // service. + // + // This overrides the + // [default_log_generation_rule][google.cloud.retail.v2alpha.LoggingConfig.default_log_generation_rule] + // for the services specified. For those not mentioned, they will fallback to + // the default log generation rule. + repeated ServiceLogGenerationRule service_log_generation_rules = 4; +} + +// Metadata that describes a Cloud Retail Project. +message Project { + option (google.api.resource) = { + type: "retail.googleapis.com/RetailProject" + pattern: "projects/{project}/retailProject" + }; + + // Output only. Full resource name of the retail project, such as + // `projects/{project_id_or_number}/retailProject`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Retail API solutions that the project has enrolled. + repeated SolutionType enrolled_solutions = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Project level alert config. +message AlertConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/AlertConfig" + pattern: "projects/{project}/alertConfig" + }; + + // Alert policy for a customer. + message AlertPolicy { + // Recipient contact information. + message Recipient { + // Email address of the recipient. + string email_address = 1; + } + + // The enrollment status enum for alert policy. + enum EnrollStatus { + // Default value. Used for customers who have not responded to the + // alert policy. + ENROLL_STATUS_UNSPECIFIED = 0; + + // Customer is enrolled in this policy. + ENROLLED = 1; + + // Customer declined this policy. + DECLINED = 2; + } + + // The feature that provides alerting capability. Supported value is + // only `search-data-quality` for now. + string alert_group = 1; + + // The enrollment status of a customer. + EnrollStatus enroll_status = 2; + + // Recipients for the alert policy. + // One alert policy should not exceed 20 recipients. + repeated Recipient recipients = 3; + } + + // Required. Immutable. The name of the AlertConfig singleton resource. + // Format: projects/*/alertConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Alert policies for a customer. + // They must be unique by [AlertPolicy.alert_group] + repeated AlertPolicy alert_policies = 2; +} diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/project_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/project_service.proto new file mode 100644 index 000000000..4e7959017 --- /dev/null +++ b/third_party/googleapis/google/cloud/retail/v2alpha/project_service.proto @@ -0,0 +1,273 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.retail.v2alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/retail/v2alpha/common.proto"; +import "google/cloud/retail/v2alpha/project.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectServiceProto"; +option java_package = "com.google.cloud.retail.v2alpha"; +option objc_class_prefix = "RETAIL"; +option php_namespace = "Google\\Cloud\\Retail\\V2alpha"; +option ruby_package = "Google::Cloud::Retail::V2alpha"; + +// Service for settings at Project level. +service ProjectService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets the project. + // + // Throws `NOT_FOUND` if the project wasn't initialized for the Retail API + // service. + rpc GetProject(GetProjectRequest) returns (Project) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/retailProject}" + }; + option (google.api.method_signature) = "name"; + } + + // Accepts service terms for this project. + // By making requests to this API, you agree to the terms of service linked + // below. + // https://cloud.google.com/retail/data-use-terms + rpc AcceptTerms(AcceptTermsRequest) returns (Project) { + option (google.api.http) = { + post: "/v2alpha/{project=projects/*/retailProject}:acceptTerms" + body: "*" + }; + option (google.api.method_signature) = "project"; + } + + // The method enrolls a solution of type [Retail + // Search][google.cloud.retail.v2alpha.SolutionType.SOLUTION_TYPE_SEARCH] + // into a project. + // + // The [Recommendations AI solution + // type][google.cloud.retail.v2alpha.SolutionType.SOLUTION_TYPE_RECOMMENDATION] + // is enrolled by default when your project enables Retail API, so you don't + // need to call the enrollSolution method for recommendations. + rpc EnrollSolution(EnrollSolutionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{project=projects/*}:enrollSolution" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2alpha.EnrollSolutionResponse" + metadata_type: "google.cloud.retail.v2alpha.EnrollSolutionMetadata" + }; + } + + // Lists all the retail API solutions the project has enrolled. + rpc ListEnrolledSolutions(ListEnrolledSolutionsRequest) + returns (ListEnrolledSolutionsResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*}:enrolledSolutions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the [LoggingConfig][google.cloud.retail.v2alpha.LoggingConfig] of the + // requested project. + rpc GetLoggingConfig(GetLoggingConfigRequest) returns (LoggingConfig) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/loggingConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the [LoggingConfig][google.cloud.retail.v2alpha.LoggingConfig] of + // the requested project. + rpc UpdateLoggingConfig(UpdateLoggingConfigRequest) returns (LoggingConfig) { + option (google.api.http) = { + patch: "/v2alpha/{logging_config.name=projects/*/loggingConfig}" + body: "logging_config" + }; + option (google.api.method_signature) = "logging_config,update_mask"; + } + + // Get the [AlertConfig][google.cloud.retail.v2alpha.AlertConfig] of the + // requested project. + rpc GetAlertConfig(GetAlertConfigRequest) returns (AlertConfig) { + option (google.api.http) = { + get: "/v2alpha/{name=projects/*/alertConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Update the alert config of the requested project. + rpc UpdateAlertConfig(UpdateAlertConfigRequest) returns (AlertConfig) { + option (google.api.http) = { + patch: "/v2alpha/{alert_config.name=projects/*/alertConfig}" + body: "alert_config" + }; + option (google.api.method_signature) = "alert_config,update_mask"; + } +} + +// Request for GetProject method. +message GetProjectRequest { + // Required. Full resource name of the project. Format: + // `projects/{project_number_or_id}/retailProject` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/RetailProject" + } + ]; +} + +// Request for AcceptTerms method. +message AcceptTermsRequest { + // Required. Full resource name of the project. Format: + // `projects/{project_number_or_id}/retailProject` + string project = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/RetailProject" + } + ]; +} + +// Request for EnrollSolution method. +message EnrollSolutionRequest { + // Required. Full resource name of parent. Format: + // `projects/{project_number_or_id}` + string project = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Required. Solution to enroll. + SolutionType solution = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for EnrollSolution method. +message EnrollSolutionResponse { + // Retail API solution that the project has enrolled. + SolutionType enrolled_solution = 1; +} + +// Metadata related to the EnrollSolution method. +// This will be returned by the google.longrunning.Operation.metadata field. +message EnrollSolutionMetadata {} + +// Request for ListEnrolledSolutions method. +message ListEnrolledSolutionsRequest { + // Required. Full resource name of parent. Format: + // `projects/{project_number_or_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; +} + +// Response for ListEnrolledSolutions method. +message ListEnrolledSolutionsResponse { + // Retail API solutions that the project has enrolled. + repeated SolutionType enrolled_solutions = 1; +} + +// Request for +// [ProjectService.GetLoggingConfig][google.cloud.retail.v2alpha.ProjectService.GetLoggingConfig] +// method. +message GetLoggingConfigRequest { + // Required. Full LoggingConfig resource name. Format: + // projects/{project_number}/loggingConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/LoggingConfig" + } + ]; +} + +// Request for +// [ProjectService.UpdateLoggingConfig][google.cloud.retail.v2alpha.ProjectService.UpdateLoggingConfig] +// method. +message UpdateLoggingConfigRequest { + // Required. The [LoggingConfig][google.cloud.retail.v2alpha.LoggingConfig] to + // update. + // + // If the caller does not have permission to update the + // [LoggingConfig][google.cloud.retail.v2alpha.LoggingConfig], then a + // PERMISSION_DENIED error is returned. + // + // If the [LoggingConfig][google.cloud.retail.v2alpha.LoggingConfig] to update + // does not exist, a NOT_FOUND error is returned. + LoggingConfig logging_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [LoggingConfig][google.cloud.retail.v2alpha.LoggingConfig] to update. The + // following are the only supported fields: + // + // * [LoggingConfig.default_log_generation_rule][google.cloud.retail.v2alpha.LoggingConfig.default_log_generation_rule] + // * [LoggingConfig.service_log_generation_rules][google.cloud.retail.v2alpha.LoggingConfig.service_log_generation_rules] + // + // If not set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for +// [ProjectService.GetAlertConfig][google.cloud.retail.v2alpha.ProjectService.GetAlertConfig] +// method. +message GetAlertConfigRequest { + // Required. Full AlertConfig resource name. Format: + // projects/{project_number}/alertConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AlertConfig" + } + ]; +} + +// Request for +// [ProjectService.UpdateAlertConfig][google.cloud.retail.v2alpha.ProjectService.UpdateAlertConfig] +// method. +message UpdateAlertConfigRequest { + // Required. The [AlertConfig][google.cloud.retail.v2alpha.AlertConfig] to + // update. + // + // If the caller does not have permission to update the + // [AlertConfig][google.cloud.retail.v2alpha.AlertConfig], then a + // PERMISSION_DENIED error is returned. + // + // If the [AlertConfig][google.cloud.retail.v2alpha.AlertConfig] to update + // does not exist, a NOT_FOUND error is returned. + AlertConfig alert_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [AlertConfig][google.cloud.retail.v2alpha.AlertConfig] to update. If not + // set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/promotion.proto b/third_party/googleapis/google/cloud/retail/v2alpha/promotion.proto index 63a80737c..b02a84e21 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/promotion.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/promotion.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ message Promotion { // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is // returned. // - // Google Merchant Center property - // [promotion](https://support.google.com/merchants/answer/7050148). + // Corresponds to Google Merchant Center property + // [promotion_id](https://support.google.com/merchants/answer/7050148). string promotion_id = 1; } diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/purge_config.proto b/third_party/googleapis/google/cloud/retail/v2alpha/purge_config.proto index b7b9ab814..8d40306f5 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/purge_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/purge_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/retail_grpc_service_config.json b/third_party/googleapis/google/cloud/retail/v2alpha/retail_grpc_service_config.json index 322291ad2..81ce6cdac 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/retail_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/retail/v2alpha/retail_grpc_service_config.json @@ -4,10 +4,11 @@ "name": [ { "service": "google.cloud.retail.v2alpha.CatalogService" }, { "service": "google.cloud.retail.v2alpha.CompletionService" }, - { "service": "google.cloud.retail.v2alpha.UserEventService" }, { "service": "google.cloud.retail.v2alpha.PromotionService" }, { "service": "google.cloud.retail.v2alpha.PredictionService" }, - { "service": "google.cloud.retail.v2alpha.SearchService" } + { "service": "google.cloud.retail.v2alpha.SearchService" }, + { "service": "google.cloud.retail.v2alpha.RequirementService" }, + { "service": "google.cloud.retail.v2alpha.SampleService" } ], "timeout": "5s", "retryPolicy": { @@ -19,7 +20,36 @@ }, { "name": [ + { "service": "google.cloud.retail.v2alpha.UserEventService" } + ], + "timeout": "10s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "5s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, + { + "name": [ + { + "service": "google.cloud.retail.v2alpha.PredictionService", + "method": "BatchPredict" + } + ], + "timeout": "30s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "30s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, + { + "name": [ + { "service": "google.cloud.retail.v2alpha.BranchService" }, { "service": "google.cloud.retail.v2alpha.ProductService" }, + { "service": "google.cloud.retail.v2alpha.ProjectService" }, { "service": "google.cloud.retail.v2alpha.UserEventService", "method": "PurgeUserEvents" diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/retail_v2alpha.yaml b/third_party/googleapis/google/cloud/retail/v2alpha/retail_v2alpha.yaml index 3867c38fb..dcd7c23cc 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/retail_v2alpha.yaml +++ b/third_party/googleapis/google/cloud/retail/v2alpha/retail_v2alpha.yaml @@ -1,11 +1,12 @@ type: google.api.Service config_version: 3 name: retail.googleapis.com -title: Retail API +title: Vertex AI Search for Retail API apis: - name: google.cloud.location.Locations - name: google.cloud.retail.v2alpha.AnalyticsService +- name: google.cloud.retail.v2alpha.BranchService - name: google.cloud.retail.v2alpha.CatalogService - name: google.cloud.retail.v2alpha.CompletionService - name: google.cloud.retail.v2alpha.ControlService @@ -13,6 +14,7 @@ apis: - name: google.cloud.retail.v2alpha.ModelService - name: google.cloud.retail.v2alpha.PredictionService - name: google.cloud.retail.v2alpha.ProductService +- name: google.cloud.retail.v2alpha.ProjectService - name: google.cloud.retail.v2alpha.SearchService - name: google.cloud.retail.v2alpha.ServingConfigService - name: google.cloud.retail.v2alpha.UserEventService @@ -26,6 +28,8 @@ types: - name: google.cloud.retail.v2alpha.AddLocalInventoriesResponse - name: google.cloud.retail.v2alpha.CreateMerchantCenterAccountLinkMetadata - name: google.cloud.retail.v2alpha.CreateModelMetadata +- name: google.cloud.retail.v2alpha.EnrollSolutionMetadata +- name: google.cloud.retail.v2alpha.EnrollSolutionResponse - name: google.cloud.retail.v2alpha.ExportAnalyticsMetricsResponse - name: google.cloud.retail.v2alpha.ExportErrorsConfig - name: google.cloud.retail.v2alpha.ExportMetadata @@ -55,9 +59,10 @@ types: documentation: summary: |- - Cloud Retail service enables customers to build end-to-end personalized - recommendation systems without requiring a high level of expertise in - machine learning, recommendation system, or Google Cloud. + Vertex AI Search for Retail API is made up of Retail Search, Browse and + Recommendations. These discovery AI solutions help you implement + personalized search, browse and recommendations, based on machine learning + models, across your websites and mobile applications. rules: - selector: google.cloud.location.Locations.GetLocation description: Gets information about a location. @@ -65,27 +70,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.retail.v2alpha.CatalogService.UpdateCatalog - deadline: 10.0 - - selector: google.cloud.retail.v2alpha.CompletionService.ImportCompletionData - deadline: 300.0 - - selector: 'google.cloud.retail.v2alpha.ModelService.*' - deadline: 60.0 - - selector: 'google.cloud.retail.v2alpha.ProductService.*' - deadline: 30.0 - - selector: google.cloud.retail.v2alpha.ProductService.ImportProducts - deadline: 300.0 - - selector: google.cloud.retail.v2alpha.UserEventService.CollectUserEvent - deadline: 10.0 - - selector: google.cloud.retail.v2alpha.UserEventService.ImportUserEvents - deadline: 600.0 - - selector: google.cloud.retail.v2alpha.UserEventService.PurgeUserEvents - deadline: 30.0 - - selector: google.longrunning.Operations.ListOperations - deadline: 300.0 - http: rules: - selector: google.longrunning.Operations.GetOperation @@ -115,6 +99,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.retail.v2alpha.BranchService.GetBranch + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.retail.v2alpha.BranchService.ListBranches + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2alpha.CatalogService.*' oauth: canonical_scopes: |- @@ -147,6 +139,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2alpha.ProjectService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.retail.v2alpha.SearchService.Search oauth: canonical_scopes: |- diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/search_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/search_service.proto index f2931e40e..bced414d8 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/search_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -119,13 +119,13 @@ message SearchRequest { // values. Maximum number of intervals is 40. // // For all numerical facet keys that appear in the list of products from - // the catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are + // the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are // computed from their distribution weekly. If the model assigns a high // score to a numerical facet key and its intervals are not specified in - // the search request, these percentiles will become the bounds - // for its intervals and will be returned in the response. If the + // the search request, these percentiles become the bounds + // for its intervals and are returned in the response. If the // facet key intervals are specified in the request, then the specified - // intervals will be returned instead. + // intervals are returned instead. repeated Interval intervals = 2; // Only get facet for the given restricted values. For example, when using @@ -158,14 +158,14 @@ message SearchRequest { // Only get facet values that start with the given string prefix. For // example, suppose "categories" has three values "Women > Shoe", // "Women > Dress" and "Men > Shoe". If set "prefixes" to "Women", the - // "categories" facet will give only "Women > Shoe" and "Women > Dress". + // "categories" facet gives only "Women > Shoe" and "Women > Dress". // Only supported on textual fields. Maximum is 10. repeated string prefixes = 8; // Only get facet values that contains the given strings. For example, // suppose "categories" has three values "Women > Shoe", // "Women > Dress" and "Men > Shoe". If set "contains" to "Shoe", the - // "categories" facet will give only "Women > Shoe" and "Men > Shoe". + // "categories" facet gives only "Women > Shoe" and "Men > Shoe". // Only supported on textual fields. Maximum is 10. repeated string contains = 9; @@ -198,7 +198,7 @@ message SearchRequest { string order_by = 4; // The query that is used to compute facet for the given facet key. - // When provided, it will override the default behavior of facet + // When provided, it overrides the default behavior of facet // computation. The query syntax is the same as a filter expression. See // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter] // for detail syntax and limitations. Notice that there is no limitation @@ -208,9 +208,9 @@ message SearchRequest { // // In the response, // [SearchResponse.Facet.values.value][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.value] - // will be always "1" and + // is always "1" and // [SearchResponse.Facet.values.count][google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.count] - // will be the number of results that match the query. + // is the number of results that match the query. // // For example, you can set a customized facet for "shipToStore", // where @@ -218,7 +218,7 @@ message SearchRequest { // is "customizedShipToStore", and // [FacetKey.query][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.query] // is "availability: ANY(\"IN_STOCK\") AND shipToStore: ANY(\"123\")". - // Then the facet will count the products that are both in stock and ship + // Then the facet counts the products that are both in stock and ship // to store "123". string query = 5; @@ -269,15 +269,15 @@ message SearchRequest { // Enables dynamic position for this facet. If set to true, the position of // this facet among all facets in the response is determined by Google - // Retail Search. It will be ordered together with dynamic facets if dynamic + // Retail Search. It is ordered together with dynamic facets if dynamic // facets is enabled. If set to false, the position of this facet in the - // response will be the same as in the request, and it will be ranked before + // response is the same as in the request, and it is ranked before // the facets with dynamic position enable and all dynamic facets. // // For example, you may always want to have rating facet returned in // the response, but it's not necessarily to always display the rating facet // at the top. In that case, you can set enable_dynamic_position to true so - // that the position of rating facet in response will be determined by + // that the position of rating facet in response is determined by // Google Retail Search. // // Another example, assuming you have the following facets in the request: @@ -288,13 +288,13 @@ message SearchRequest { // // * "brands", enable_dynamic_position = false // - // And also you have a dynamic facets enable, which will generate a facet - // 'gender'. Then the final order of the facets in the response can be + // And also you have a dynamic facets enable, which generates a facet + // "gender". Then, the final order of the facets in the response can be // ("price", "brands", "rating", "gender") or ("price", "brands", "gender", // "rating") depends on how Google Retail Search orders "gender" and - // "rating" facets. However, notice that "price" and "brands" will always be - // ranked at 1st and 2nd position since their enable_dynamic_position are - // false. + // "rating" facets. However, notice that "price" and "brands" are always + // ranked at first and second position because their enable_dynamic_position + // values are false. bool enable_dynamic_position = 4; } @@ -513,7 +513,7 @@ message SearchRequest { // or the name of the legacy placement resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. // This field is used to identify the serving config name and the set - // of models that will be used to make the search. + // of models that are used to make the search. string placement = 1 [(google.api.field_behavior) = REQUIRED]; // The branch resource name, such as @@ -579,8 +579,8 @@ message SearchRequest { // The filter syntax consists of an expression language for constructing a // predicate from one or more fields of the products being filtered. Filter - // expression is case-sensitive. See more details at this [user - // guide](https://cloud.google.com/retail/docs/filter-and-order#filter). + // expression is case-sensitive. For more information, see + // [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). // // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string filter = 10; @@ -589,22 +589,21 @@ message SearchRequest { // checking any filters on the search page. // // The filter applied to every search request when quality improvement such as - // query expansion is needed. For example, if a query does not have enough - // results, an expanded query with - // [SearchRequest.canonical_filter][google.cloud.retail.v2alpha.SearchRequest.canonical_filter] - // will be returned as a supplement of the original query. This field is - // strongly recommended to achieve high search quality. + // query expansion is needed. In the case a query does not have a sufficient + // amount of results this filter will be used to determine whether or not to + // enable the query expansion flow. The original filter will still be used for + // the query expanded search. + // This field is strongly recommended to achieve high search quality. // - // See - // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter] - // for more details about filter syntax. + // For more information about filter syntax, see + // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter]. string canonical_filter = 28; // The order in which products are returned. Products can be ordered by // a field in an [Product][google.cloud.retail.v2alpha.Product] object. Leave - // it unset if ordered by relevance. OrderBy expression is case-sensitive. See - // more details at this [user - // guide](https://cloud.google.com/retail/docs/filter-and-order#order). + // it unset if ordered by relevance. OrderBy expression is case-sensitive. For + // more information, see + // [Order](https://cloud.google.com/retail/docs/filter-and-order#order). // // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string order_by = 11; @@ -622,8 +621,8 @@ message SearchRequest { // textual facets can be dynamically generated. DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; - // Boost specification to boost certain products. See more details at this - // [user guide](https://cloud.google.com/retail/docs/boosting). + // Boost specification to boost certain products. For more information, see + // [Boost results](https://cloud.google.com/retail/docs/boosting). // // Notice that if both // [ServingConfig.boost_control_ids][google.cloud.retail.v2alpha.ServingConfig.boost_control_ids] @@ -635,8 +634,8 @@ message SearchRequest { BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which - // query expansion will occur. See more details at this [user - // guide](https://cloud.google.com/retail/docs/result-size#query_expansion). + // query expansion occurs. For more information, see [Query + // expansion](https://cloud.google.com/retail/docs/result-size#query_expansion). QueryExpansionSpec query_expansion_spec = 14; // The relevance threshold of the search results. @@ -644,8 +643,8 @@ message SearchRequest { // Defaults to // [RelevanceThreshold.HIGH][google.cloud.retail.v2alpha.SearchRequest.RelevanceThreshold.HIGH], // which means only the most relevant results are shown, and the least number - // of results are returned. See more details at this [user - // guide](https://cloud.google.com/retail/docs/result-size#relevance_thresholding). + // of results are returned. For more information, see [Adjust result + // size](https://cloud.google.com/retail/docs/result-size#relevance_thresholding). RelevanceThreshold relevance_threshold = 15; // The keys to fetch and rollup the matching @@ -773,9 +772,9 @@ message SearchRequest { // 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. + // For more information, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // in the Resource Manager documentation. map labels = 34; // The spell correction specification that specifies the mode under @@ -995,7 +994,8 @@ message SearchResponse { repeated ExperimentInfo experiment_info = 17; } -// Metadata for active A/B testing [Experiments][]. +// Metadata for active A/B testing +// [Experiment][google.cloud.retail.v2alpha.Experiment]. message ExperimentInfo { // Metadata for active serving config A/B tests. message ServingConfigExperiment { @@ -1008,8 +1008,8 @@ message ExperimentInfo { }]; // The fully qualified resource name of the serving config - // [VariantArm.serving_config_id][] responsible for generating the search - // response. For example: + // [Experiment.VariantArm.serving_config_id][google.cloud.retail.v2alpha.Experiment.VariantArm.serving_config_id] + // responsible for generating the search response. For example: // `projects/*/locations/*/catalogs/*/servingConfigs/*`. string experiment_serving_config = 2 [(google.api.resource_reference) = { type: "retail.googleapis.com/ServingConfig" diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/serving_config.proto b/third_party/googleapis/google/cloud/retail/v2alpha/serving_config.proto index d4c89cb0c..d8dc67794 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/serving_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/serving_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -255,6 +255,10 @@ message ServingConfig { // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. string enable_category_filter_level = 16; + // When the flag is enabled, the products in the denylist will not be filtered + // out in the recommendation filtering results. + bool ignore_recs_denylist = 24; + // The specification for personalization spec. // // Can only be set if diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/serving_config_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/serving_config_service.proto index abe94af65..3749d123f 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/serving_config_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/serving_config_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/user_event.proto b/third_party/googleapis/google/cloud/retail/v2alpha/user_event.proto index 8ace03d04..1b810fbbf 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/user_event.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ message UserEvent { // Required. User event type. Allowed values are: // // * `add-to-cart`: Products being added to cart. + // * `remove-from-cart`: Products being removed from cart. // * `category-page-view`: Special pages such as sale or promotion pages // viewed. // * `detail-page-view`: Products detail page viewed. @@ -274,8 +275,8 @@ message UserEvent { // The entity for customers that may run multiple different entities, domains, // sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, // `google.com`, `youtube.com`, etc. - // It is recommended to set this field to get better per-entity search, - // completion and prediction results. + // We recommend that you set this field to get better per-entity search, + // completion, and prediction results. string entity = 23; } diff --git a/third_party/googleapis/google/cloud/retail/v2alpha/user_event_service.proto b/third_party/googleapis/google/cloud/retail/v2alpha/user_event_service.proto index 2a825e652..8aeebc08a 100644 --- a/third_party/googleapis/google/cloud/retail/v2alpha/user_event_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2alpha/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/analytics_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/analytics_service.proto index 6782baf83..db00a10d4 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/analytics_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/analytics_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/catalog.proto b/third_party/googleapis/google/cloud/retail/v2beta/catalog.proto index 83e6d10cd..c8bca58e6 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/catalog.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/catalog.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/retail/v2beta/common.proto"; import "google/cloud/retail/v2beta/import_config.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Beta"; option go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; @@ -87,6 +88,124 @@ message ProductLevelConfig { // Catalog level attribute config for an attribute. For example, if customers // want to enable/disable facet for a specific attribute. message CatalogAttribute { + // Possible options for the facet that corresponds to the current attribute + // config. + message FacetConfig { + // [Facet values][google.cloud.retail.v2beta.SearchResponse.Facet.values] to + // ignore on [facets][google.cloud.retail.v2beta.SearchResponse.Facet] + // during the specified time range for the given + // [SearchResponse.Facet.key][google.cloud.retail.v2beta.SearchResponse.Facet.key] + // attribute. + message IgnoredFacetValues { + // List of facet values to ignore for the following time range. The facet + // values are the same as the attribute values. There is a limit of 10 + // values per instance of IgnoredFacetValues. Each value can have at most + // 128 characters. + repeated string values = 1; + + // Time range for the current list of facet values to ignore. + // If multiple time ranges are specified for an facet value for the + // current attribute, consider all of them. If both are empty, ignore + // always. If start time and end time are set, then start time + // must be before end time. + // If start time is not empty and end time is empty, then will ignore + // these facet values after the start time. + google.protobuf.Timestamp start_time = 2; + + // If start time is empty and end time is not empty, then ignore these + // facet values before end time. + google.protobuf.Timestamp end_time = 3; + } + + // Replaces a set of textual facet values by the same (possibly different) + // merged facet value. Each facet value should appear at most once as a + // value per + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute]. This + // feature is available only for textual custom attributes. + message MergedFacetValue { + // All the facet values that are replaces by the same + // [merged_value][google.cloud.retail.v2beta.CatalogAttribute.FacetConfig.MergedFacetValue.merged_value] + // that follows. The maximum number of values per MergedFacetValue is 25. + // Each value can have up to 128 characters. + repeated string values = 1; + + // All the previous values are replaced by this merged facet value. + // This merged_value must be non-empty and can have up to 128 characters. + string merged_value = 2; + } + + // The current facet key (i.e. attribute config) maps into the + // [merged_facet_key][google.cloud.retail.v2beta.CatalogAttribute.FacetConfig.MergedFacet.merged_facet_key]. + // A facet key can have at most one child. The current facet key and the + // merged facet key need both to be textual custom attributes or both + // numerical custom attributes (same type). + message MergedFacet { + // The merged facet key should be a valid facet key that is different than + // the facet key of the current catalog attribute. We refer this is + // merged facet key as the child of the current catalog attribute. This + // merged facet key can't be a parent of another facet key (i.e. no + // directed path of length 2). This merged facet key needs to be either a + // textual custom attribute or a numerical custom attribute. + string merged_facet_key = 1; + } + + // Options to rerank based on facet values engaged by the user for the + // current key. That key needs to be a custom textual key and facetable. + // To use this control, you also need to pass all the facet keys engaged by + // the user in the request using the field [SearchRequest.FacetSpec]. In + // particular, if you don't pass the facet keys engaged that you want to + // rerank on, this control won't be effective. Moreover, to obtain better + // results, the facet values that you want to rerank on should be close to + // English (ideally made of words, underscores, and spaces). + message RerankConfig { + // If set to true, then we also rerank the dynamic facets based on the + // facet values engaged by the user for the current attribute key during + // serving. + bool rerank_facet = 1; + + // If empty, rerank on all facet values for the current key. Otherwise, + // will rerank on the facet values from this list only. + repeated string facet_values = 2; + } + + // If you don't set the facet + // [SearchRequest.FacetSpec.FacetKey.intervals][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.intervals] + // in the request to a numerical attribute, then we use the computed + // intervals with rounded bounds obtained from all its product numerical + // attribute values. The computed intervals might not be ideal for some + // attributes. Therefore, we give you the option to overwrite them with the + // facet_intervals field. The maximum of facet intervals per + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] is 40. + // Each interval must have a lower bound or an upper bound. If both bounds + // are provided, then the lower bound must be smaller or equal than the + // upper bound. + repeated Interval facet_intervals = 1; + + // Each instance represents a list of attribute values to ignore as facet + // values for a specific time range. The maximum number of instances per + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] is 25. + repeated IgnoredFacetValues ignored_facet_values = 2; + + // Each instance replaces a list of facet values by a merged facet + // value. If a facet value is not in any list, then it will stay the same. + // To avoid conflicts, only paths of length 1 are accepted. In other words, + // if "dark_blue" merged into "BLUE", then the latter can't merge into + // "blues" because this would create a path of length 2. The maximum number + // of instances of MergedFacetValue per + // [CatalogAttribute][google.cloud.retail.v2beta.CatalogAttribute] is 100. + // This feature is available only for textual custom attributes. + repeated MergedFacetValue merged_facet_values = 3; + + // Use this field only if you want to merge a facet key into another facet + // key. + MergedFacet merged_facet = 4; + + // Set this field only if you want to rerank based on facet values engaged + // by the user for the current key. This option is only possible for custom + // facetable textual keys. + RerankConfig rerank_config = 5; + } + // The type of an attribute. enum AttributeType { // The type of the attribute is unknown. @@ -210,7 +329,9 @@ message CatalogAttribute { // are indexed so that it can be filtered, faceted, or boosted in // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search]. // - // Must be specified, otherwise throws INVALID_FORMAT error. + // Must be specified when + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error. IndexableOption indexable_option = 5; // If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic @@ -232,7 +353,9 @@ message CatalogAttribute { // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search], as // there are no text values associated to numerical attributes. // - // Must be specified, otherwise throws INVALID_FORMAT error. + // Must be specified, when + // [AttributesConfig.attribute_config_level][google.cloud.retail.v2beta.AttributesConfig.attribute_config_level] + // is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error. SearchableOption searchable_option = 7; // When @@ -254,6 +377,9 @@ message CatalogAttribute { // results. If unset, the server behavior defaults to // [RETRIEVABLE_DISABLED][google.cloud.retail.v2beta.CatalogAttribute.RetrievableOption.RETRIEVABLE_DISABLED]. RetrievableOption retrievable_option = 12; + + // Contains facet options. + FacetConfig facet_config = 13; } // Catalog level attribute config. @@ -343,8 +469,8 @@ message CompletionConfig { // Output only. Name of the LRO corresponding to the latest suggestion terms // list import. // - // Can use [GetOperation][google.longrunning.Operations.GetOperation] API to - // retrieve the latest state of the Long Running Operation. + // Can use [GetOperation][google.longrunning.Operations.GetOperation] API + // method to retrieve the latest state of the Long Running Operation. string last_suggestions_import_operation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -374,10 +500,10 @@ message CompletionConfig { } // Represents a link between a Merchant Center account and a branch. -// Once a link is established, products from the linked merchant center account -// will be streamed to the linked branch. +// After a link is established, products from the linked Merchant Center account +// are streamed to the linked branch. message MerchantCenterLink { - // Required. The linked [Merchant center account + // Required. The linked [Merchant Center account // ID](https://developers.google.com/shopping-content/guides/accountstatuses). // The account must be a standalone account or a sub-account of a MCA. int64 merchant_center_account_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -387,7 +513,7 @@ message MerchantCenterLink { // empty value will use the currently configured default branch. However, // changing the default branch later on won't change the linked branch here. // - // A single branch ID can only have one linked merchant center account ID. + // A single branch ID can only have one linked Merchant Center account ID. string branch_id = 2; // String representing the destination to import for, all if left empty. @@ -469,8 +595,8 @@ message Catalog { [(google.api.field_behavior) = REQUIRED]; // The Merchant Center linking configuration. - // Once a link is added, the data stream from Merchant Center to Cloud Retail + // After a link is added, the data stream from Merchant Center to Cloud Retail // will be enabled automatically. The requester must have access to the - // merchant center account in order to make changes to this field. + // Merchant Center account in order to make changes to this field. MerchantCenterLinkingConfig merchant_center_linking_config = 6; } diff --git a/third_party/googleapis/google/cloud/retail/v2beta/catalog_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/catalog_service.proto index 337111764..925abef19 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/catalog_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/catalog_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/common.proto b/third_party/googleapis/google/cloud/retail/v2beta/common.proto index 1ffa26902..b0a522235 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/common.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -124,6 +124,12 @@ message Condition { // Range of time(s) specifying when Condition is active. // Condition true if any time range matches. repeated TimeRange active_time_range = 3; + + // Used to support browse uses cases. + // A list (up to 10 entries) of categories or departments. + // The format should be the same as + // [UserEvent.page_categories][google.cloud.retail.v2beta.UserEvent.page_categories]; + repeated string page_categories = 4; } // A rule is a condition-action pair @@ -173,17 +179,19 @@ message Rule { } // * Rule Condition: - // - No - // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] - // provided is a global match. - // - 1 or more - // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] - // provided are combined with OR operator. + // - No + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] + // provided is a global match. + // - 1 or more + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] + // provided are combined with OR operator. + // // * Action Input: The request query and filter that are applied to the // retrieved products, in addition to any filters already provided with the // SearchRequest. The AND operator is used to combine the query's existing // filters with the filter rule(s). NOTE: May result in 0 results when // filters conflict. + // // * Action Result: Filters the returned objects to be ONLY those that passed // the filter. message FilterAction { @@ -193,9 +201,8 @@ message Rule { // set. // * Filter syntax is identical to // [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter]. - // See more - // details at the Retail Search - // [user guide](/retail/search/docs/filter-and-order#filter). + // For more + // information, see [Filter](/retail/docs/filter-and-order#filter). // * To filter products with product ID "product_1" or "product_2", and // color // "Red" or "Blue":
@@ -208,7 +215,7 @@ message Rule { // Redirects a shopper to a specific page. // // * Rule Condition: - // - Must specify + // Must specify // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms]. // * Action Input: Request Query // * Action Result: Redirects shopper to provided uri. @@ -290,6 +297,78 @@ message Rule { repeated string ignore_terms = 1; } + // Force returns an attribute/facet in the request around a certain position + // or above. + // + // * Rule Condition: + // Must specify non-empty + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] + // (for search only) or + // [Condition.page_categories][google.cloud.retail.v2beta.Condition.page_categories] + // (for browse only), but can't specify both. + // + // * Action Inputs: attribute name, position + // + // * Action Result: Will force return a facet key around a certain position + // or above if the condition is satisfied. + // + // Example: Suppose the query is "shoes", the + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] + // is "shoes", the + // [ForceReturnFacetAction.FacetPositionAdjustment.attribute_name][google.cloud.retail.v2beta.Rule.ForceReturnFacetAction.FacetPositionAdjustment.attribute_name] + // is "size" and the + // [ForceReturnFacetAction.FacetPositionAdjustment.position][google.cloud.retail.v2beta.Rule.ForceReturnFacetAction.FacetPositionAdjustment.position] + // is 8. + // + // Two cases: a) The facet key "size" is not already in the top 8 slots, then + // the facet "size" will appear at a position close to 8. b) The facet key + // "size" in among the top 8 positions in the request, then it will stay at + // its current rank. + message ForceReturnFacetAction { + // Each facet position adjustment consists of a single attribute name (i.e. + // facet key) along with a specified position. + message FacetPositionAdjustment { + // The attribute name to force return as a facet. Each attribute name + // should be a valid attribute name, be non-empty and contain at most 80 + // characters long. + string attribute_name = 1; + + // This is the position in the request as explained above. It should be + // strictly positive be at most 100. + int32 position = 2; + } + + // Each instance corresponds to a force return attribute for the given + // condition. There can't be more 3 instances here. + repeated FacetPositionAdjustment facet_position_adjustments = 1; + } + + // Removes an attribute/facet in the request if is present. + // + // * Rule Condition: + // Must specify non-empty + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] + // (for search only) or + // [Condition.page_categories][google.cloud.retail.v2beta.Condition.page_categories] + // (for browse only), but can't specify both. + // + // * Action Input: attribute name + // + // * Action Result: Will remove the attribute (as a facet) from the request + // if it is present. + // + // Example: Suppose the query is "shoes", the + // [Condition.query_terms][google.cloud.retail.v2beta.Condition.query_terms] + // is "shoes" and the attribute name "size", then facet key "size" will be + // removed from the request (if it is present). + message RemoveFacetAction { + // The attribute names (i.e. facet keys) to remove from the dynamic facets + // (if present in the request). There can't be more 3 attribute names. + // Each attribute name should be a valid attribute name, be non-empty and + // contain at most 80 characters. + repeated string attribute_names = 1; + } + // An action must be provided. oneof action { // A boost action. @@ -316,6 +395,12 @@ message Rule { // Treats a set of terms as synonyms of one another. TwowaySynonymsAction twoway_synonyms_action = 11; + + // Force returns an attribute as a facet in the request. + ForceReturnFacetAction force_return_facet_action = 12; + + // Remove an attribute as a facet in the request (if present). + RemoveFacetAction remove_facet_action = 13; } // Required. The condition that triggers the rule. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/completion_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/completion_service.proto index 9442028b9..ebf7fdb25 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/completion_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -151,10 +151,15 @@ message CompleteQueryRequest { // capped by 20. int32 max_suggestions = 5; - // The entity for customers that may run multiple different entities, domains, - // sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, + // If true, attribute suggestions are enabled and provided in response. + // + // This field is only available for "cloud-retail" dataset. + bool enable_attribute_suggestions = 9; + + // The entity for customers who run multiple entities, domains, sites, or + // regions, for example, `Google US`, `Google Ads`, `Waymo`, // `google.com`, `youtube.com`, etc. - // If this is set, it should be exactly matched with + // If this is set, it must be an exact match with // [UserEvent.entity][google.cloud.retail.v2beta.UserEvent.entity] to get // per-entity autocomplete results. string entity = 10; @@ -179,8 +184,10 @@ message CompleteQueryResponse { map attributes = 2; } - // Recent search of this user. + // Deprecated: Recent search of this user. message RecentSearchResult { + option deprecated = true; + // The recent search query. string recent_search = 1; } @@ -195,9 +202,9 @@ message CompleteQueryResponse { // attribution of complete model performance. string attribution_token = 2; - // Matched recent searches of this user. The maximum number of recent searches - // is 10. This field is a restricted feature. Contact Retail Search support - // team if you are interested in enabling it. + // Deprecated. Matched recent searches of this user. The maximum number of + // recent searches is 10. This field is a restricted feature. If you want to + // enable it, contact Retail Search support. // // This feature is only available when // [CompleteQueryRequest.visitor_id][google.cloud.retail.v2beta.CompleteQueryRequest.visitor_id] @@ -216,5 +223,5 @@ message CompleteQueryResponse { // // Recent searches are deduplicated. More recent searches will be reserved // when duplication happens. - repeated RecentSearchResult recent_search_results = 3; + repeated RecentSearchResult recent_search_results = 3 [deprecated = true]; } diff --git a/third_party/googleapis/google/cloud/retail/v2beta/control.proto b/third_party/googleapis/google/cloud/retail/v2beta/control.proto index e44cfdd67..6b12d286d 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/control.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/control.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/control_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/control_service.proto index 6a9a8707f..03114da13 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/control_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/control_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/export_config.proto b/third_party/googleapis/google/cloud/retail/v2beta/export_config.proto index 303712b21..9a90d35ef 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/export_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/export_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/import_config.proto b/third_party/googleapis/google/cloud/retail/v2beta/import_config.proto index ad58554e6..f5e67023b 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/import_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/import_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -196,7 +196,8 @@ message ImportProductsRequest { ImportErrorsConfig errors_config = 3; // Indicates which fields in the provided imported `products` to update. If - // not set, all fields are updated. + // not set, all fields are updated. If provided, only the existing product + // fields are updated. Missing products will not be created. google.protobuf.FieldMask update_mask = 4; // The mode of reconciliation between existing products and the products to be @@ -212,9 +213,14 @@ message ImportProductsRequest { // Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has // to be within the same project as // [ImportProductsRequest.parent][google.cloud.retail.v2beta.ImportProductsRequest.parent]. - // Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the - // `pubsub.topics.publish` IAM permission on the topic. + // Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` + // have the `pubsub.topics.publish` IAM permission on the topic. + // + // Only supported when + // [ImportProductsRequest.reconciliation_mode][google.cloud.retail.v2beta.ImportProductsRequest.reconciliation_mode] + // is set to `FULL`. string notification_pubsub_topic = 7; } diff --git a/third_party/googleapis/google/cloud/retail/v2beta/model.proto b/third_party/googleapis/google/cloud/retail/v2beta/model.proto index 92a3a43d5..e9916f669 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/model.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/model.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,6 +50,25 @@ message Model { [(google.api.field_behavior) = OPTIONAL]; } + // Additional configs for the frequently-bought-together model type. + message FrequentlyBoughtTogetherFeaturesConfig { + // Optional. Specifies the context of the model when it is used in predict + // requests. Can only be set for the `frequently-bought-together` type. If + // it isn't specified, it defaults to + // [MULTIPLE_CONTEXT_PRODUCTS][google.cloud.retail.v2beta.Model.ContextProductsType.MULTIPLE_CONTEXT_PRODUCTS]. + ContextProductsType context_products_type = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Additional model features config. + message ModelFeaturesConfig { + oneof type_dedicated_config { + // Additional configs for frequently-bought-together models. + FrequentlyBoughtTogetherFeaturesConfig frequently_bought_together_config = + 1; + } + } + // The serving state of the model. enum ServingState { // Unspecified serving state. @@ -118,6 +137,22 @@ message Model { DATA_ERROR = 2; } + // Use single or multiple context products for recommendations. + enum ContextProductsType { + // Unspecified default value, should never be explicitly set. + // Defaults to + // [MULTIPLE_CONTEXT_PRODUCTS][google.cloud.retail.v2beta.Model.ContextProductsType.MULTIPLE_CONTEXT_PRODUCTS]. + CONTEXT_PRODUCTS_TYPE_UNSPECIFIED = 0; + + // Use only a single product as context for the recommendation. Typically + // used on pages like add-to-cart or product details. + SINGLE_CONTEXT_PRODUCT = 1; + + // Use one or multiple products as context for the recommendation. Typically + // used on shopping cart pages. + MULTIPLE_CONTEXT_PRODUCTS = 2; + } + // Required. The fully qualified resource name of the model. // // Format: @@ -236,4 +271,8 @@ message Model { // PageOptimizationConfig. repeated ServingConfigList serving_config_lists = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Additional model features config. + ModelFeaturesConfig model_features_config = 22 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/retail/v2beta/model_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/model_service.proto index 0b5c1c4a9..e7495bfbd 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/model_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/prediction_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/prediction_service.proto index ba579bdb7..05ad3a2b4 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/prediction_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/product.proto b/third_party/googleapis/google/cloud/retail/v2beta/product.proto index 188635659..31e076625 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/product.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/product.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -103,24 +103,22 @@ message Product { } oneof expiration { - // The timestamp when this product becomes unavailable for - // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search]. - // Note that this is only applicable to - // [Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY] and - // [Type.COLLECTION][google.cloud.retail.v2beta.Product.Type.COLLECTION], - // and ignored for - // [Type.VARIANT][google.cloud.retail.v2beta.Product.Type.VARIANT]. In - // general, we suggest the users to delete the stale products explicitly, - // instead of using this field to determine staleness. + // Note that this field is applied in the following ways: // - // If it is set, the [Product][google.cloud.retail.v2beta.Product] is not - // available for - // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search] - // after [expire_time][google.cloud.retail.v2beta.Product.expire_time]. - // However, the product can still be retrieved by - // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] - // and - // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // * If the [Product][google.cloud.retail.v2beta.Product] is already expired + // when it is uploaded, this product + // is not indexed for search. + // + // * If the [Product][google.cloud.retail.v2beta.Product] is not expired + // when it is uploaded, only the + // [Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY]'s and + // [Type.COLLECTION][google.cloud.retail.v2beta.Product.Type.COLLECTION]'s + // expireTime is respected, and + // [Type.VARIANT][google.cloud.retail.v2beta.Product.Type.VARIANT]'s + // expireTime is not used. + // + // In general, we suggest the users to delete the stale + // products explicitly, instead of using this field to determine staleness. // // [expire_time][google.cloud.retail.v2beta.Product.expire_time] must be // later than @@ -263,9 +261,10 @@ message Product { // error is returned. // // At most 250 values are allowed per - // [Product][google.cloud.retail.v2beta.Product]. Empty values are not - // allowed. Each value must be a UTF-8 encoded string with a length limit of - // 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. + // [Product][google.cloud.retail.v2beta.Product] unless overridden through the + // Google Cloud console. Empty values are not allowed. Each value must be a + // UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an + // INVALID_ARGUMENT error is returned. // // Corresponding properties: Google Merchant Center property // [google_product_category][mc_google_product_category]. Schema.org property @@ -287,9 +286,10 @@ message Product { // The brands of the product. // - // A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded - // string with a length limit of 1,000 characters. Otherwise, an - // INVALID_ARGUMENT error is returned. + // A maximum of 30 brands are allowed unless overridden through the Google + // Cloud console. Each + // brand must be a UTF-8 encoded string with a length limit of 1,000 + // characters. Otherwise, an INVALID_ARGUMENT error is returned. // // Corresponding properties: Google Merchant Center property // [brand](https://support.google.com/merchants/answer/6324351). Schema.org diff --git a/third_party/googleapis/google/cloud/retail/v2beta/product_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/product_service.proto index edf212454..77b59b5d4 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/product_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/product_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import "google/api/resource.proto"; import "google/cloud/retail/v2beta/common.proto"; import "google/cloud/retail/v2beta/import_config.proto"; import "google/cloud/retail/v2beta/product.proto"; +import "google/cloud/retail/v2beta/purge_config.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -86,6 +87,35 @@ service ProductService { option (google.api.method_signature) = "name"; } + // Permanently deletes all selected + // [Product][google.cloud.retail.v2beta.Product]s under a branch. + // + // This process is asynchronous. If the request is valid, the removal will be + // enqueued and processed offline. Depending on the number of + // [Product][google.cloud.retail.v2beta.Product]s, this operation could take + // hours to complete. Before the operation completes, some + // [Product][google.cloud.retail.v2beta.Product]s may still be returned by + // [ProductService.GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] + // or + // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. + // + // Depending on the number of [Product][google.cloud.retail.v2beta.Product]s, + // this operation could take hours to complete. To get a sample of + // [Product][google.cloud.retail.v2beta.Product]s that would be deleted, set + // [PurgeProductsRequest.force][google.cloud.retail.v2beta.PurgeProductsRequest.force] + // to false. + rpc PurgeProducts(PurgeProductsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.PurgeProductsResponse" + metadata_type: "google.cloud.retail.v2beta.PurgeProductsMetadata" + }; + } + // Bulk import of multiple [Product][google.cloud.retail.v2beta.Product]s. // // Request processing may be synchronous. @@ -166,10 +196,11 @@ service ProductService { }; } - // It is recommended to use the + // We recommend that you use the // [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] - // method instead of - // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces]. + // method instead of the + // [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces] + // method. // [ProductService.AddLocalInventories][google.cloud.retail.v2beta.ProductService.AddLocalInventories] // achieves the same results but provides more fine-grained control over // ingesting local inventory data. @@ -208,10 +239,11 @@ service ProductService { }; } - // It is recommended to use the + // We recommend that you use the // [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] - // method instead of - // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces]. + // method instead of the + // [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces] + // method. // [ProductService.RemoveLocalInventories][google.cloud.retail.v2beta.ProductService.RemoveLocalInventories] // achieves the same results but provides more fine-grained control over // ingesting local inventory data. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/promotion.proto b/third_party/googleapis/google/cloud/retail/v2beta/promotion.proto index e388f3aeb..ebd30a284 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/promotion.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/promotion.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ message Promotion { // id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is // returned. // - // Google Merchant Center property - // [promotion](https://support.google.com/merchants/answer/7050148). + // Corresponds to Google Merchant Center property + // [promotion_id](https://support.google.com/merchants/answer/7050148). string promotion_id = 1; } diff --git a/third_party/googleapis/google/cloud/retail/v2beta/purge_config.proto b/third_party/googleapis/google/cloud/retail/v2beta/purge_config.proto index 377c46549..037e3aed5 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/purge_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/purge_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.retail.v2beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Retail.V2Beta"; option go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; @@ -32,6 +33,96 @@ option ruby_package = "Google::Cloud::Retail::V2beta"; // This will be returned by the google.longrunning.Operation.metadata field. message PurgeMetadata {} +// Metadata related to the progress of the PurgeProducts operation. +// This will be returned by the google.longrunning.Operation.metadata field. +message PurgeProductsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of entries that were deleted successfully. + int64 success_count = 3; + + // Count of entries that encountered errors while processing. + int64 failure_count = 4; +} + +// Request message for PurgeProducts method. +message PurgeProductsRequest { + // Required. The resource name of the branch under which the products are + // created. The format is + // `projects/${projectId}/locations/global/catalogs/${catalogId}/branches/${branchId}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } + ]; + + // Required. The filter string to specify the products to be deleted with a + // length limit of 5,000 characters. + // + // Empty string filter is not allowed. "*" implies delete all items in a + // branch. + // + // The eligible fields for filtering are: + // + // * `availability`: Double quoted + // [Product.availability][google.cloud.retail.v2beta.Product.availability] + // string. + // * `create_time` : in ISO 8601 "zulu" format. + // + // Supported syntax: + // + // * Comparators (">", "<", ">=", "<=", "="). + // Examples: + // * create_time <= "2015-02-13T17:05:46Z" + // * availability = "IN_STOCK" + // + // * Conjunctions ("AND") + // Examples: + // * create_time <= "2015-02-13T17:05:46Z" AND availability = "PREORDER" + // + // * Disjunctions ("OR") + // Examples: + // * create_time <= "2015-02-13T17:05:46Z" OR availability = "IN_STOCK" + // + // * Can support nested queries. + // Examples: + // * (create_time <= "2015-02-13T17:05:46Z" AND availability = "PREORDER") + // OR (create_time >= "2015-02-14T13:03:32Z" AND availability = "IN_STOCK") + // + // * Filter Limits: + // * Filter should not contain more than 6 conditions. + // * Max nesting depth should not exceed 2 levels. + // + // Examples queries: + // * Delete back order products created before a timestamp. + // create_time <= "2015-02-13T17:05:46Z" OR availability = "BACKORDER" + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Actually perform the purge. + // If `force` is set to false, the method will return the expected purge count + // without deleting any products. + bool force = 3; +} + +// Response of the PurgeProductsRequest. If the long running operation is +// successfully done, then this message is returned by the +// google.longrunning.Operations.response field. +message PurgeProductsResponse { + // The total count of products purged as a result of the operation. + int64 purge_count = 1; + + // A sample of the product names that will be deleted. + // Only populated if `force` is set to false. A max of 100 names will be + // returned and the names are chosen at random. + repeated string purge_sample = 2 [ + (google.api.resource_reference) = { type: "retail.googleapis.com/Product" } + ]; +} + // Request message for PurgeUserEvents method. message PurgeUserEventsRequest { // Required. The resource name of the catalog under which the events are diff --git a/third_party/googleapis/google/cloud/retail/v2beta/retail_grpc_service_config.json b/third_party/googleapis/google/cloud/retail/v2beta/retail_grpc_service_config.json index 9f3b7320c..da0924579 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/retail_grpc_service_config.json +++ b/third_party/googleapis/google/cloud/retail/v2beta/retail_grpc_service_config.json @@ -4,7 +4,6 @@ "name": [ { "service": "google.cloud.retail.v2beta.CatalogService" }, { "service": "google.cloud.retail.v2beta.CompletionService" }, - { "service": "google.cloud.retail.v2beta.UserEventService" }, { "service": "google.cloud.retail.v2beta.PredictionService" }, { "service": "google.cloud.retail.v2beta.SearchService" } ], @@ -16,6 +15,18 @@ "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] } }, + { + "name": [ + { "service": "google.cloud.retail.v2beta.UserEventService" } + ], + "timeout": "10s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "5s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"] + } + }, { "name": [ { "service": "google.cloud.retail.v2beta.ProductService" }, diff --git a/third_party/googleapis/google/cloud/retail/v2beta/retail_v2beta.yaml b/third_party/googleapis/google/cloud/retail/v2beta/retail_v2beta.yaml index 6725a2cc0..29e2cfd96 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/retail_v2beta.yaml +++ b/third_party/googleapis/google/cloud/retail/v2beta/retail_v2beta.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: retail.googleapis.com -title: Retail API +title: Vertex AI Search for Retail API apis: - name: google.cloud.location.Locations @@ -36,6 +36,8 @@ types: - name: google.cloud.retail.v2beta.ImportUserEventsResponse - name: google.cloud.retail.v2beta.Model - name: google.cloud.retail.v2beta.PurgeMetadata +- name: google.cloud.retail.v2beta.PurgeProductsMetadata +- name: google.cloud.retail.v2beta.PurgeProductsResponse - name: google.cloud.retail.v2beta.PurgeUserEventsResponse - name: google.cloud.retail.v2beta.RejoinUserEventsMetadata - name: google.cloud.retail.v2beta.RejoinUserEventsResponse @@ -50,9 +52,10 @@ types: documentation: summary: |- - Cloud Retail service enables customers to build end-to-end personalized - recommendation systems without requiring a high level of expertise in - machine learning, recommendation system, or Google Cloud. + Vertex AI Search for Retail API is made up of Retail Search, Browse and + Recommendations. These discovery AI solutions help you implement + personalized search, browse and recommendations, based on machine learning + models, across your websites and mobile applications. rules: - selector: google.cloud.location.Locations.GetLocation description: Gets information about a location. @@ -60,27 +63,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.retail.v2beta.CatalogService.UpdateCatalog - deadline: 10.0 - - selector: google.cloud.retail.v2beta.CompletionService.ImportCompletionData - deadline: 300.0 - - selector: 'google.cloud.retail.v2beta.ModelService.*' - deadline: 60.0 - - selector: 'google.cloud.retail.v2beta.ProductService.*' - deadline: 30.0 - - selector: google.cloud.retail.v2beta.ProductService.ImportProducts - deadline: 300.0 - - selector: google.cloud.retail.v2beta.UserEventService.CollectUserEvent - deadline: 10.0 - - selector: google.cloud.retail.v2beta.UserEventService.ImportUserEvents - deadline: 600.0 - - selector: google.cloud.retail.v2beta.UserEventService.PurgeUserEvents - deadline: 30.0 - - selector: google.longrunning.Operations.ListOperations - deadline: 300.0 - http: rules: - selector: google.longrunning.Operations.GetOperation diff --git a/third_party/googleapis/google/cloud/retail/v2beta/search_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/search_service.proto index efd7fc27e..5768df56d 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/search_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -119,13 +119,13 @@ message SearchRequest { // values. Maximum number of intervals is 40. // // For all numerical facet keys that appear in the list of products from - // the catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are + // the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are // computed from their distribution weekly. If the model assigns a high // score to a numerical facet key and its intervals are not specified in - // the search request, these percentiles will become the bounds - // for its intervals and will be returned in the response. If the + // the search request, these percentiles become the bounds + // for its intervals and are returned in the response. If the // facet key intervals are specified in the request, then the specified - // intervals will be returned instead. + // intervals are returned instead. repeated Interval intervals = 2; // Only get facet for the given restricted values. For example, when using @@ -158,14 +158,14 @@ message SearchRequest { // Only get facet values that start with the given string prefix. For // example, suppose "categories" has three values "Women > Shoe", // "Women > Dress" and "Men > Shoe". If set "prefixes" to "Women", the - // "categories" facet will give only "Women > Shoe" and "Women > Dress". + // "categories" facet gives only "Women > Shoe" and "Women > Dress". // Only supported on textual fields. Maximum is 10. repeated string prefixes = 8; // Only get facet values that contains the given strings. For example, // suppose "categories" has three values "Women > Shoe", // "Women > Dress" and "Men > Shoe". If set "contains" to "Shoe", the - // "categories" facet will give only "Women > Shoe" and "Men > Shoe". + // "categories" facet gives only "Women > Shoe" and "Men > Shoe". // Only supported on textual fields. Maximum is 10. repeated string contains = 9; @@ -198,7 +198,7 @@ message SearchRequest { string order_by = 4; // The query that is used to compute facet for the given facet key. - // When provided, it will override the default behavior of facet + // When provided, it overrides the default behavior of facet // computation. The query syntax is the same as a filter expression. See // [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter] // for detail syntax and limitations. Notice that there is no limitation @@ -208,9 +208,9 @@ message SearchRequest { // // In the response, // [SearchResponse.Facet.values.value][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.value] - // will be always "1" and + // is always "1" and // [SearchResponse.Facet.values.count][google.cloud.retail.v2beta.SearchResponse.Facet.FacetValue.count] - // will be the number of results that match the query. + // is the number of results that match the query. // // For example, you can set a customized facet for "shipToStore", // where @@ -218,7 +218,7 @@ message SearchRequest { // is "customizedShipToStore", and // [FacetKey.query][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.query] // is "availability: ANY(\"IN_STOCK\") AND shipToStore: ANY(\"123\")". - // Then the facet will count the products that are both in stock and ship + // Then the facet counts the products that are both in stock and ship // to store "123". string query = 5; @@ -269,15 +269,15 @@ message SearchRequest { // Enables dynamic position for this facet. If set to true, the position of // this facet among all facets in the response is determined by Google - // Retail Search. It will be ordered together with dynamic facets if dynamic + // Retail Search. It is ordered together with dynamic facets if dynamic // facets is enabled. If set to false, the position of this facet in the - // response will be the same as in the request, and it will be ranked before + // response is the same as in the request, and it is ranked before // the facets with dynamic position enable and all dynamic facets. // // For example, you may always want to have rating facet returned in // the response, but it's not necessarily to always display the rating facet // at the top. In that case, you can set enable_dynamic_position to true so - // that the position of rating facet in response will be determined by + // that the position of rating facet in response is determined by // Google Retail Search. // // Another example, assuming you have the following facets in the request: @@ -288,13 +288,13 @@ message SearchRequest { // // * "brands", enable_dynamic_position = false // - // And also you have a dynamic facets enable, which will generate a facet - // 'gender'. Then the final order of the facets in the response can be + // And also you have a dynamic facets enable, which generates a facet + // "gender". Then, the final order of the facets in the response can be // ("price", "brands", "rating", "gender") or ("price", "brands", "gender", // "rating") depends on how Google Retail Search orders "gender" and - // "rating" facets. However, notice that "price" and "brands" will always be - // ranked at 1st and 2nd position since their enable_dynamic_position are - // false. + // "rating" facets. However, notice that "price" and "brands" are always + // ranked at first and second position because their enable_dynamic_position + // values are false. bool enable_dynamic_position = 4; } @@ -492,7 +492,7 @@ message SearchRequest { // or the name of the legacy placement resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. // This field is used to identify the serving config name and the set - // of models that will be used to make the search. + // of models that are used to make the search. string placement = 1 [(google.api.field_behavior) = REQUIRED]; // The branch resource name, such as @@ -557,8 +557,8 @@ message SearchRequest { // The filter syntax consists of an expression language for constructing a // predicate from one or more fields of the products being filtered. Filter - // expression is case-sensitive. See more details at this [user - // guide](https://cloud.google.com/retail/docs/filter-and-order#filter). + // expression is case-sensitive. For more information, see + // [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). // // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string filter = 10; @@ -567,21 +567,21 @@ message SearchRequest { // checking any filters on the search page. // // The filter applied to every search request when quality improvement such as - // query expansion is needed. For example, if a query does not have enough - // results, an expanded query with - // [SearchRequest.canonical_filter][google.cloud.retail.v2beta.SearchRequest.canonical_filter] - // will be returned as a supplement of the original query. This field is - // strongly recommended to achieve high search quality. + // query expansion is needed. In the case a query does not have a sufficient + // amount of results this filter will be used to determine whether or not to + // enable the query expansion flow. The original filter will still be used for + // the query expanded search. + // This field is strongly recommended to achieve high search quality. // - // See [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter] - // for more details about filter syntax. + // For more information about filter syntax, see + // [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter]. string canonical_filter = 28; // The order in which products are returned. Products can be ordered by // a field in an [Product][google.cloud.retail.v2beta.Product] object. Leave - // it unset if ordered by relevance. OrderBy expression is case-sensitive. See - // more details at this [user - // guide](https://cloud.google.com/retail/docs/filter-and-order#order). + // it unset if ordered by relevance. OrderBy expression is case-sensitive. For + // more information, see + // [Order](https://cloud.google.com/retail/docs/filter-and-order#order). // // If this field is unrecognizable, an INVALID_ARGUMENT is returned. string order_by = 11; @@ -599,8 +599,8 @@ message SearchRequest { // textual facets can be dynamically generated. DynamicFacetSpec dynamic_facet_spec = 21 [deprecated = true]; - // Boost specification to boost certain products. See more details at this - // [user guide](https://cloud.google.com/retail/docs/boosting). + // Boost specification to boost certain products. For more information, see + // [Boost results](https://cloud.google.com/retail/docs/boosting). // // Notice that if both // [ServingConfig.boost_control_ids][google.cloud.retail.v2beta.ServingConfig.boost_control_ids] @@ -612,8 +612,8 @@ message SearchRequest { BoostSpec boost_spec = 13; // The query expansion specification that specifies the conditions under which - // query expansion will occur. See more details at this [user - // guide](https://cloud.google.com/retail/docs/result-size#query_expansion). + // query expansion occurs. For more information, see [Query + // expansion](https://cloud.google.com/retail/docs/result-size#query_expansion). QueryExpansionSpec query_expansion_spec = 14; // The keys to fetch and rollup the matching @@ -732,9 +732,9 @@ message SearchRequest { // 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. + // For more information, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // in the Resource Manager documentation. map labels = 34; // The spell correction specification that specifies the mode under @@ -953,7 +953,7 @@ message SearchResponse { repeated ExperimentInfo experiment_info = 17; } -// Metadata for active A/B testing [Experiments][]. +// Metadata for active A/B testing [Experiment][]. message ExperimentInfo { // Metadata for active serving config A/B tests. message ServingConfigExperiment { @@ -966,8 +966,8 @@ message ExperimentInfo { }]; // The fully qualified resource name of the serving config - // [VariantArm.serving_config_id][] responsible for generating the search - // response. For example: + // [Experiment.VariantArm.serving_config_id][] responsible for generating + // the search response. For example: // `projects/*/locations/*/catalogs/*/servingConfigs/*`. string experiment_serving_config = 2 [(google.api.resource_reference) = { type: "retail.googleapis.com/ServingConfig" diff --git a/third_party/googleapis/google/cloud/retail/v2beta/serving_config.proto b/third_party/googleapis/google/cloud/retail/v2beta/serving_config.proto index 45dd103f9..94d0675d8 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/serving_config.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/serving_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -255,6 +255,10 @@ message ServingConfig { // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.retail.v2main.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. string enable_category_filter_level = 16; + // When the flag is enabled, the products in the denylist will not be filtered + // out in the recommendation filtering results. + bool ignore_recs_denylist = 24; + // The specification for personalization spec. // // Can only be set if diff --git a/third_party/googleapis/google/cloud/retail/v2beta/serving_config_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/serving_config_service.proto index 66b210b3a..1611d7b86 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/serving_config_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/serving_config_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/retail/v2beta/user_event.proto b/third_party/googleapis/google/cloud/retail/v2beta/user_event.proto index c212b9de2..aab2ae31a 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/user_event.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/user_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ message UserEvent { // Required. User event type. Allowed values are: // // * `add-to-cart`: Products being added to cart. + // * `remove-from-cart`: Products being removed from cart. // * `category-page-view`: Special pages such as sale or promotion pages // viewed. // * `detail-page-view`: Products detail page viewed. @@ -272,8 +273,8 @@ message UserEvent { // The entity for customers that may run multiple different entities, domains, // sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, // `google.com`, `youtube.com`, etc. - // It is recommended to set this field to get better per-entity search, - // completion and prediction results. + // We recommend that you set this field to get better per-entity search, + // completion, and prediction results. string entity = 23; } diff --git a/third_party/googleapis/google/cloud/retail/v2beta/user_event_service.proto b/third_party/googleapis/google/cloud/retail/v2beta/user_event_service.proto index d6a9b0e60..48374fa00 100644 --- a/third_party/googleapis/google/cloud/retail/v2beta/user_event_service.proto +++ b/third_party/googleapis/google/cloud/retail/v2beta/user_event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/run/v2/BUILD.bazel b/third_party/googleapis/google/cloud/run/v2/BUILD.bazel index 09dc93532..ef5e28815 100644 --- a/third_party/googleapis/google/cloud/run/v2/BUILD.bazel +++ b/third_party/googleapis/google/cloud/run/v2/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "run_proto", @@ -29,6 +32,7 @@ proto_library( "revision.proto", "revision_template.proto", "service.proto", + "status.proto", "task.proto", "task_template.proto", "traffic_target.proto", @@ -46,6 +50,7 @@ proto_library( "//google/longrunning:operations_proto", "//google/rpc:status_proto", "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -62,6 +67,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -136,6 +142,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -151,7 +158,6 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/api:api_go_proto", - "//google/api:routing_go_proto", "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", @@ -194,6 +200,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -234,6 +241,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -250,11 +258,13 @@ php_gapic_library( name = "run_php_gapic", srcs = [":run_proto_with_info"], grpc_service_config = "run_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "run_v2.yaml", transport = "grpc+rest", - deps = [":run_php_proto"], + deps = [ + ":run_php_proto", + ], ) # Open Source Packages @@ -269,6 +279,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -299,6 +310,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -353,6 +365,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -399,6 +412,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/run/v2/condition.proto b/third_party/googleapis/google/cloud/run/v2/condition.proto index 458fc934c..64b78b095 100644 --- a/third_party/googleapis/google/cloud/run/v2/condition.proto +++ b/third_party/googleapis/google/cloud/run/v2/condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.run.v2; +import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; @@ -200,13 +201,15 @@ message Condition { // it will populate one of these fields. // Successful conditions cannot have a reason. oneof reasons { - // A common (service-level) reason for this condition. - CommonReason reason = 6; + // Output only. A common (service-level) reason for this condition. + CommonReason reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // A reason for the revision condition. - RevisionReason revision_reason = 9; + // Output only. A reason for the revision condition. + RevisionReason revision_reason = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // A reason for the execution condition. - ExecutionReason execution_reason = 11; + // Output only. A reason for the execution condition. + ExecutionReason execution_reason = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/third_party/googleapis/google/cloud/run/v2/execution.proto b/third_party/googleapis/google/cloud/run/v2/execution.proto index 5b9b19f1e..f7b961203 100644 --- a/third_party/googleapis/google/cloud/run/v2/execution.proto +++ b/third_party/googleapis/google/cloud/run/v2/execution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -45,7 +45,8 @@ service Executions { option (google.api.method_signature) = "name"; } - // Lists Executions from a Job. + // Lists Executions from a Job. Results are sorted by creation time, + // descending. rpc ListExecutions(ListExecutionsRequest) returns (ListExecutionsResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*/locations/*/jobs/*}/executions" diff --git a/third_party/googleapis/google/cloud/run/v2/execution_template.proto b/third_party/googleapis/google/cloud/run/v2/execution_template.proto index 55f465a5f..7a2354ac1 100644 --- a/third_party/googleapis/google/cloud/run/v2/execution_template.proto +++ b/third_party/googleapis/google/cloud/run/v2/execution_template.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/run/v2/job.proto b/third_party/googleapis/google/cloud/run/v2/job.proto index 8d6559ad4..4ead8a2e7 100644 --- a/third_party/googleapis/google/cloud/run/v2/job.proto +++ b/third_party/googleapis/google/cloud/run/v2/job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import "google/api/launch_stage.proto"; import "google/api/resource.proto"; import "google/api/routing.proto"; import "google/cloud/run/v2/condition.proto"; -import "google/cloud/run/v2/execution.proto"; import "google/cloud/run/v2/execution_template.proto"; import "google/cloud/run/v2/k8s.min.proto"; import "google/cloud/run/v2/vendor_settings.proto"; @@ -77,7 +76,7 @@ service Jobs { option (google.api.method_signature) = "name"; } - // Lists Jobs. + // Lists Jobs. Results are sorted by creation time, descending. rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*/locations/*}/jobs" @@ -220,10 +219,10 @@ message UpdateJobRequest { // populated, without persisting the request or updating any resources. bool validate_only = 3; - // If set to true, and if the Job does not exist, it will create a new - // one. Caller must have both create and update permissions for this call if - // this is set to true. - bool allow_missing = 4; + // Optional. If set to true, and if the Job does not exist, it will create a + // new one. Caller must have both create and update permissions for this call + // if this is set to true. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; } // Request message for retrieving a list of Jobs. @@ -391,7 +390,8 @@ message Job { google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The deletion time. + // Output only. The deletion time. It is only populated as a response to a + // Delete request. google.protobuf.Timestamp delete_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -478,6 +478,18 @@ message Job { // Output only. Reserved for future use. bool satisfies_pzs = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + oneof create_execution { + // A unique string used as a suffix creating a new execution. The Job will + // become ready when the execution is successfully started. + // The sum of job name and token length must be fewer than 63 characters. + string start_execution_token = 26; + + // A unique string used as a suffix for creating a new execution. The Job + // will become ready when the execution is successfully completed. + // The sum of job name and token length must be fewer than 63 characters. + string run_execution_token = 27; + } + // Output only. A system-generated fingerprint for this version of the // resource. May be used to detect modification conflict during updates. string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -486,6 +498,27 @@ message Job { // Reference to an Execution. Use /Executions.GetExecution with the given name // to get full execution including the latest status. message ExecutionReference { + // Possible execution completion status. + enum CompletionStatus { + // The default value. This value is used if the state is omitted. + COMPLETION_STATUS_UNSPECIFIED = 0; + + // Job execution has succeeded. + EXECUTION_SUCCEEDED = 1; + + // Job execution has failed. + EXECUTION_FAILED = 2; + + // Job execution is running normally. + EXECUTION_RUNNING = 3; + + // Waiting for backing resources to be provisioned. + EXECUTION_PENDING = 4; + + // Job execution has been cancelled by the user. + EXECUTION_CANCELLED = 5; + } + // Name of the execution. string name = 1 [ (google.api.resource_reference) = { type: "run.googleapis.com/Execution" } @@ -496,4 +529,11 @@ message ExecutionReference { // Creation timestamp of the execution. google.protobuf.Timestamp completion_time = 3; + + // The deletion time of the execution. It is only + // populated as a response to a Delete request. + google.protobuf.Timestamp delete_time = 5; + + // Status for the execution completion. + CompletionStatus completion_status = 4; } diff --git a/third_party/googleapis/google/cloud/run/v2/k8s.min.proto b/third_party/googleapis/google/cloud/run/v2/k8s.min.proto index 378462e0e..a2489a478 100644 --- a/third_party/googleapis/google/cloud/run/v2/k8s.min.proto +++ b/third_party/googleapis/google/cloud/run/v2/k8s.min.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -100,7 +100,7 @@ message Container { // ResourceRequirements describes the compute resource requirements. message ResourceRequirements { - // Only ´memory´ and 'cpu' are supported. + // Only `memory` and `cpu` keys in the map are supported. // //

Notes: // * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 @@ -110,7 +110,9 @@ message ResourceRequirements { // https://cloud.google.com/run/docs/configuring/memory-limits map limits = 1; - // Determines whether CPU should be throttled or not outside of requests. + // Determines whether CPU is only allocated during requests (true by default). + // However, if ResourceRequirements is set, the caller must explicitly + // set this field to true to preserve the default behavior. bool cpu_idle = 2; // Determines whether CPU should be boosted on startup of a new container @@ -208,6 +210,12 @@ message Volume { // Ephemeral storage used as a shared volume. EmptyDirVolumeSource empty_dir = 4; + + // For NFS Voumes, contains the path to the nfs Volume + NFSVolumeSource nfs = 5; + + // Persistent storage backed by a Google Cloud Storage bucket. + GCSVolumeSource gcs = 6; } } @@ -322,57 +330,79 @@ message EmptyDirVolumeSource { string size_limit = 2; } +// Represents an NFS mount. +message NFSVolumeSource { + // Hostname or IP address of the NFS server + string server = 1; + + // Path that is exported by the NFS server. + string path = 2; + + // If true, the volume will be mounted as read only for all mounts. + bool read_only = 3; +} + +// Represents a volume backed by a Cloud Storage bucket using Cloud Storage +// FUSE. +message GCSVolumeSource { + // Cloud Storage Bucket name. + string bucket = 1; + + // If true, the volume will be mounted as read only for all mounts. + bool read_only = 2; +} + // Probe describes a health check to be performed against a container to // determine whether it is alive or ready to receive traffic. message Probe { - // Number of seconds after the container has started before the probe is - // initiated. - // Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe - // is 3600. Maximum value for startup probe is 240. - int32 initial_delay_seconds = 1; + // Optional. Number of seconds after the container has started before the + // probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum + // value for liveness probe is 3600. Maximum value for startup probe is 240. + int32 initial_delay_seconds = 1 [(google.api.field_behavior) = OPTIONAL]; - // Number of seconds after which the probe times out. + // Optional. Number of seconds after which the probe times out. // Defaults to 1 second. Minimum value is 1. Maximum value is 3600. // Must be smaller than period_seconds. - int32 timeout_seconds = 2; + int32 timeout_seconds = 2 [(google.api.field_behavior) = OPTIONAL]; - // How often (in seconds) to perform the probe. + // Optional. How often (in seconds) to perform the probe. // Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe // is 3600. Maximum value for startup probe is 240. // Must be greater or equal than timeout_seconds. - int32 period_seconds = 3; + int32 period_seconds = 3 [(google.api.field_behavior) = OPTIONAL]; - // Minimum consecutive failures for the probe to be considered failed after - // having succeeded. Defaults to 3. Minimum value is 1. - int32 failure_threshold = 4; + // Optional. Minimum consecutive failures for the probe to be considered + // failed after having succeeded. Defaults to 3. Minimum value is 1. + int32 failure_threshold = 4 [(google.api.field_behavior) = OPTIONAL]; oneof probe_type { - // HTTPGet specifies the http request to perform. + // Optional. HTTPGet specifies the http request to perform. // Exactly one of httpGet, tcpSocket, or grpc must be specified. - HTTPGetAction http_get = 5; + HTTPGetAction http_get = 5 [(google.api.field_behavior) = OPTIONAL]; - // TCPSocket specifies an action involving a TCP port. + // Optional. TCPSocket specifies an action involving a TCP port. // Exactly one of httpGet, tcpSocket, or grpc must be specified. - TCPSocketAction tcp_socket = 6; + TCPSocketAction tcp_socket = 6 [(google.api.field_behavior) = OPTIONAL]; - // GRPC specifies an action involving a gRPC port. + // Optional. GRPC specifies an action involving a gRPC port. // Exactly one of httpGet, tcpSocket, or grpc must be specified. - GRPCAction grpc = 7; + GRPCAction grpc = 7 [(google.api.field_behavior) = OPTIONAL]; } } // HTTPGetAction describes an action based on HTTP Get requests. message HTTPGetAction { - // Path to access on the HTTP server. Defaults to '/'. - string path = 1; + // Optional. Path to access on the HTTP server. Defaults to '/'. + string path = 1 [(google.api.field_behavior) = OPTIONAL]; - // Custom headers to set in the request. HTTP allows repeated headers. - repeated HTTPHeader http_headers = 4; + // Optional. Custom headers to set in the request. HTTP allows repeated + // headers. + repeated HTTPHeader http_headers = 4 [(google.api.field_behavior) = OPTIONAL]; - // Port number to access on the container. Must be in the range 1 to 65535. - // If not specified, defaults to the exposed port of the container, which is - // the value of container.ports[0].containerPort. - int32 port = 5; + // Optional. Port number to access on the container. Must be in the range 1 to + // 65535. If not specified, defaults to the exposed port of the container, + // which is the value of container.ports[0].containerPort. + int32 port = 5 [(google.api.field_behavior) = OPTIONAL]; } // HTTPHeader describes a custom header to be used in HTTP probes @@ -380,27 +410,28 @@ message HTTPHeader { // Required. The header field name string name = 1 [(google.api.field_behavior) = REQUIRED]; - // The header field value - string value = 2; + // Optional. The header field value + string value = 2 [(google.api.field_behavior) = OPTIONAL]; } // TCPSocketAction describes an action based on opening a socket message TCPSocketAction { - // Port number to access on the container. Must be in the range 1 to 65535. - // If not specified, defaults to the exposed port of the container, which is - // the value of container.ports[0].containerPort. - int32 port = 1; + // Optional. Port number to access on the container. Must be in the range 1 to + // 65535. If not specified, defaults to the exposed port of the container, + // which is the value of container.ports[0].containerPort. + int32 port = 1 [(google.api.field_behavior) = OPTIONAL]; } // GRPCAction describes an action involving a GRPC port. message GRPCAction { - // Port number of the gRPC service. Number must be in the range 1 to 65535. - // If not specified, defaults to the exposed port of the container, which is - // the value of container.ports[0].containerPort. - int32 port = 1; - - // Service is the name of the service to place in the gRPC HealthCheckRequest - // (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If - // this is not specified, the default behavior is defined by gRPC. - string service = 2; + // Optional. Port number of the gRPC service. Number must be in the range 1 to + // 65535. If not specified, defaults to the exposed port of the container, + // which is the value of container.ports[0].containerPort. + int32 port = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Service is the name of the service to place in the gRPC + // HealthCheckRequest (see + // https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this + // is not specified, the default behavior is defined by gRPC. + string service = 2 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/run/v2/revision.proto b/third_party/googleapis/google/cloud/run/v2/revision.proto index bdaf9e739..00b59aea7 100644 --- a/third_party/googleapis/google/cloud/run/v2/revision.proto +++ b/third_party/googleapis/google/cloud/run/v2/revision.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import "google/api/resource.proto"; import "google/api/routing.proto"; import "google/cloud/run/v2/condition.proto"; import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/status.proto"; import "google/cloud/run/v2/vendor_settings.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/duration.proto"; @@ -54,7 +55,8 @@ service Revisions { option (google.api.method_signature) = "name"; } - // Lists Revisions from a given Service, or from a given location. + // Lists Revisions from a given Service, or from a given location. Results + // are sorted by creation time, descending. rpc ListRevisions(ListRevisionsRequest) returns (ListRevisionsResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*/locations/*/services/*}/revisions" @@ -293,6 +295,10 @@ message Revision { // Enable session affinity. bool session_affinity = 38; + // Output only. The current effective scaling settings for the revision. + RevisionScalingStatus scaling_status = 39 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. A system-generated fingerprint for this version of the // resource. May be used to detect modification conflict during updates. string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/run/v2/revision_template.proto b/third_party/googleapis/google/cloud/run/v2/revision_template.proto index cc13e2d85..a06786314 100644 --- a/third_party/googleapis/google/cloud/run/v2/revision_template.proto +++ b/third_party/googleapis/google/cloud/run/v2/revision_template.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.run.v2; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/run/v2/k8s.min.proto"; import "google/cloud/run/v2/vendor_settings.proto"; @@ -29,17 +30,17 @@ option java_package = "com.google.cloud.run.v2"; // RevisionTemplate describes the data a revision should have when created from // a template. message RevisionTemplate { - // The unique name for the revision. If this field is omitted, it will be - // automatically generated based on the Service name. + // Optional. The unique name for the revision. If this field is omitted, it + // will be automatically generated based on the Service name. string revision = 1 [ + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } ]; - // Unstructured key value map that can be used to organize and categorize - // objects. - // User-provided labels are shared with Google's billing system, so they can - // be used to filter, or break down billing charges by team, component, - // environment, state, etc. For more information, visit + // Optional. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit // https://cloud.google.com/resource-manager/docs/creating-managing-labels or // https://cloud.google.com/run/docs/configuring/labels. // @@ -47,11 +48,11 @@ message RevisionTemplate { // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` // namespaces, and they will be rejected. All system labels in v1 now have a // corresponding field in v2 RevisionTemplate. - map labels = 2; + map labels = 2 [(google.api.field_behavior) = OPTIONAL]; - // Unstructured key value map that may be set by external tools to store and - // arbitrary metadata. They are not queryable and should be preserved - // when modifying objects. + // Optional. Unstructured key value map that may be set by external tools to + // store and arbitrary metadata. They are not queryable and should be + // preserved when modifying objects. // //

Cloud Run API v2 does not support annotations with `run.googleapis.com`, // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` @@ -60,33 +61,35 @@ message RevisionTemplate { // //

This field follows Kubernetes annotations' namespacing, limits, and // rules. - map annotations = 3; + map annotations = 3 [(google.api.field_behavior) = OPTIONAL]; - // Scaling settings for this Revision. - RevisionScaling scaling = 4; + // Optional. Scaling settings for this Revision. + RevisionScaling scaling = 4 [(google.api.field_behavior) = OPTIONAL]; - // VPC Access configuration to use for this Revision. For more information, - // visit https://cloud.google.com/run/docs/configuring/connecting-vpc. - VpcAccess vpc_access = 6; + // Optional. VPC Access configuration to use for this Revision. For more + // information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 6 [(google.api.field_behavior) = OPTIONAL]; - // Max allowed time for an instance to respond to a request. - google.protobuf.Duration timeout = 8; + // Optional. Max allowed time for an instance to respond to a request. + google.protobuf.Duration timeout = 8 [(google.api.field_behavior) = OPTIONAL]; - // Email address of the IAM service account associated with the revision of - // the service. The service account represents the identity of the running - // revision, and determines what permissions the revision has. If not + // Optional. Email address of the IAM service account associated with the + // revision of the service. The service account represents the identity of the + // running revision, and determines what permissions the revision has. If not // provided, the revision will use the project's default service account. - string service_account = 9; + string service_account = 9 [(google.api.field_behavior) = OPTIONAL]; // Holds the single container that defines the unit of execution for this // Revision. repeated Container containers = 10; - // A list of Volumes to make available to containers. - repeated Volume volumes = 11; + // Optional. A list of Volumes to make available to containers. + repeated Volume volumes = 11 [(google.api.field_behavior) = OPTIONAL]; - // The sandbox environment to host this Revision. - ExecutionEnvironment execution_environment = 13; + // Optional. The sandbox environment to host this Revision. + ExecutionEnvironment execution_environment = 13 + [(google.api.field_behavior) = OPTIONAL]; // A reference to a customer managed encryption key (CMEK) to use to encrypt // this container image. For more information, go to @@ -95,9 +98,14 @@ message RevisionTemplate { type: "cloudkms.googleapis.com/CryptoKey" }]; - // Sets the maximum number of requests that each serving instance can receive. - int32 max_instance_request_concurrency = 15; + // Optional. Sets the maximum number of requests that each serving instance + // can receive. + int32 max_instance_request_concurrency = 15 + [(google.api.field_behavior) = OPTIONAL]; - // Enable session affinity. - bool session_affinity = 19; + // Optional. Enable session affinity. + bool session_affinity = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disables health checking containers during deployment. + bool health_check_disabled = 20 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/run/v2/service.proto b/third_party/googleapis/google/cloud/run/v2/service.proto index 8ce51cb2b..0f37f6593 100644 --- a/third_party/googleapis/google/cloud/run/v2/service.proto +++ b/third_party/googleapis/google/cloud/run/v2/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import "google/cloud/run/v2/vendor_settings.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; @@ -76,7 +77,7 @@ service Services { option (google.api.method_signature) = "name"; } - // Lists Services. + // Lists Services. Results are sorted by creation time, descending. rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*/locations/*}/services" @@ -104,6 +105,7 @@ service Services { } }; option (google.api.method_signature) = "service"; + option (google.api.method_signature) = "service,update_mask"; option (google.longrunning.operation_info) = { response_type: "Service" metadata_type: "Service" @@ -189,6 +191,10 @@ message CreateServiceRequest { // Request message for updating a service. message UpdateServiceRequest { + // Optional. The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + // Required. The Service to be updated. Service service = 1 [(google.api.field_behavior) = REQUIRED]; @@ -196,10 +202,10 @@ message UpdateServiceRequest { // populated, without persisting the request or updating any resources. bool validate_only = 3; - // If set to true, and if the Service does not exist, it will create a new - // one. The caller must have 'run.services.create' permissions if this is set - // to true and the Service does not exist. - bool allow_missing = 4; + // Optional. If set to true, and if the Service does not exist, it will create + // a new one. The caller must have 'run.services.create' permissions if this + // is set to true and the Service does not exist. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; } // Request message for retrieving a list of Services. @@ -301,11 +307,10 @@ message Service { // APIs, its JSON representation will be a `string` instead of an `integer`. int64 generation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Unstructured key value map that can be used to organize and categorize - // objects. - // User-provided labels are shared with Google's billing system, so they can - // be used to filter, or break down billing charges by team, component, - // environment, state, etc. For more information, visit + // Optional. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit // https://cloud.google.com/resource-manager/docs/creating-managing-labels or // https://cloud.google.com/run/docs/configuring/labels. // @@ -313,11 +318,11 @@ message Service { // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` // namespaces, and they will be rejected. All system labels in v1 now have a // corresponding field in v2 Service. - map labels = 5; + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; - // Unstructured key value map that may be set by external tools to store and - // arbitrary metadata. They are not queryable and should be preserved - // when modifying objects. + // Optional. Unstructured key value map that may be set by external tools to + // store and arbitrary metadata. They are not queryable and should be + // preserved when modifying objects. // //

Cloud Run API v2 does not support annotations with `run.googleapis.com`, // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` @@ -326,7 +331,7 @@ message Service { // //

This field follows Kubernetes // annotations' namespacing, limits, and rules. - map annotations = 6; + map annotations = 6 [(google.api.field_behavior) = OPTIONAL]; // Output only. The creation time. google.protobuf.Timestamp create_time = 7 @@ -336,7 +341,8 @@ message Service { google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The deletion time. + // Output only. The deletion time. It is only populated as a response to a + // Delete request. google.protobuf.Timestamp delete_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -357,12 +363,12 @@ message Service { // Arbitrary version identifier for the API client. string client_version = 14; - // Provides the ingress settings for this Service. On output, returns the - // currently observed ingress settings, or INGRESS_TRAFFIC_UNSPECIFIED if no - // revision is active. - IngressTraffic ingress = 15; + // Optional. Provides the ingress settings for this Service. On output, + // returns the currently observed ingress settings, or + // INGRESS_TRAFFIC_UNSPECIFIED if no revision is active. + IngressTraffic ingress = 15 [(google.api.field_behavior) = OPTIONAL]; - // The launch stage as defined by [Google Cloud Platform + // Optional. The launch stage as defined by [Google Cloud Platform // Launch Stages](https://cloud.google.com/terms/launch-stages). // Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA // is assumed. @@ -372,18 +378,26 @@ message Service { //

// For example, if ALPHA is provided as input, but only BETA and GA-level // features are used, this field will be BETA on output. - google.api.LaunchStage launch_stage = 16; + google.api.LaunchStage launch_stage = 16 + [(google.api.field_behavior) = OPTIONAL]; - // Settings for the Binary Authorization feature. - BinaryAuthorization binary_authorization = 17; + // Optional. Settings for the Binary Authorization feature. + BinaryAuthorization binary_authorization = 17 + [(google.api.field_behavior) = OPTIONAL]; // Required. The template used to create revisions for this Service. RevisionTemplate template = 18 [(google.api.field_behavior) = REQUIRED]; - // Specifies how to distribute traffic over a collection of Revisions - // belonging to the Service. If traffic is empty or not provided, defaults to - // 100% traffic to the latest `Ready` Revision. - repeated TrafficTarget traffic = 19; + // Optional. Specifies how to distribute traffic over a collection of + // Revisions belonging to the Service. If traffic is empty or not provided, + // defaults to 100% traffic to the latest `Ready` Revision. + repeated TrafficTarget traffic = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies service-level scaling settings + ServiceScaling scaling = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disables public resolution of the default URI of this service. + bool default_uri_disabled = 22 [(google.api.field_behavior) = OPTIONAL]; // Output only. The generation of this Service currently serving traffic. See // comments in `reconciling` for additional information on reconciliation diff --git a/third_party/googleapis/google/cloud/run/v2/status.proto b/third_party/googleapis/google/cloud/run/v2/status.proto new file mode 100644 index 000000000..580b110bb --- /dev/null +++ b/third_party/googleapis/google/cloud/run/v2/status.proto @@ -0,0 +1,28 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.run.v2; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "StatusProto"; +option java_package = "com.google.cloud.run.v2"; + +// Effective settings for the current revision +message RevisionScalingStatus { + // The current number of min instances provisioned for this revision. + int32 desired_min_instance_count = 1; +} diff --git a/third_party/googleapis/google/cloud/run/v2/task.proto b/third_party/googleapis/google/cloud/run/v2/task.proto index e24acc0e0..1969e41d2 100644 --- a/third_party/googleapis/google/cloud/run/v2/task.proto +++ b/third_party/googleapis/google/cloud/run/v2/task.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/run/v2/task_template.proto b/third_party/googleapis/google/cloud/run/v2/task_template.proto index 586c44956..a0552d1ed 100644 --- a/third_party/googleapis/google/cloud/run/v2/task_template.proto +++ b/third_party/googleapis/google/cloud/run/v2/task_template.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.run.v2; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/run/v2/k8s.min.proto"; import "google/cloud/run/v2/vendor_settings.proto"; @@ -33,8 +34,8 @@ message TaskTemplate { // task. repeated Container containers = 1; - // A list of Volumes to make available to containers. - repeated Volume volumes = 2; + // Optional. A list of Volumes to make available to containers. + repeated Volume volumes = 2 [(google.api.field_behavior) = OPTIONAL]; oneof retries { // Number of retries allowed per Task, before marking this Task failed. @@ -42,20 +43,21 @@ message TaskTemplate { int32 max_retries = 3; } - // Max allowed time duration the Task may be active before the system will - // actively try to mark it failed and kill associated containers. This applies - // per attempt of a task, meaning each retry can run for the full timeout. - // Defaults to 600 seconds. - google.protobuf.Duration timeout = 4; + // Optional. Max allowed time duration the Task may be active before the + // system will actively try to mark it failed and kill associated containers. + // This applies per attempt of a task, meaning each retry can run for the full + // timeout. Defaults to 600 seconds. + google.protobuf.Duration timeout = 4 [(google.api.field_behavior) = OPTIONAL]; - // Email address of the IAM service account associated with the Task of a - // Job. The service account represents the identity of the - // running task, and determines what permissions the task has. If - // not provided, the task will use the project's default service account. - string service_account = 5; + // Optional. Email address of the IAM service account associated with the Task + // of a Job. The service account represents the identity of the running task, + // and determines what permissions the task has. If not provided, the task + // will use the project's default service account. + string service_account = 5 [(google.api.field_behavior) = OPTIONAL]; - // The execution environment being used to host this Task. - ExecutionEnvironment execution_environment = 6; + // Optional. The execution environment being used to host this Task. + ExecutionEnvironment execution_environment = 6 + [(google.api.field_behavior) = OPTIONAL]; // A reference to a customer managed encryption key (CMEK) to use to encrypt // this container image. For more information, go to @@ -64,7 +66,8 @@ message TaskTemplate { type: "cloudkms.googleapis.com/CryptoKey" }]; - // VPC Access configuration to use for this Task. For more information, - // visit https://cloud.google.com/run/docs/configuring/connecting-vpc. - VpcAccess vpc_access = 8; + // Optional. VPC Access configuration to use for this Task. For more + // information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 8 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/run/v2/traffic_target.proto b/third_party/googleapis/google/cloud/run/v2/traffic_target.proto index adc7f05e2..e56f56263 100644 --- a/third_party/googleapis/google/cloud/run/v2/traffic_target.proto +++ b/third_party/googleapis/google/cloud/run/v2/traffic_target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/run/v2/vendor_settings.proto b/third_party/googleapis/google/cloud/run/v2/vendor_settings.proto index 9a24d3db5..7162623f6 100644 --- a/third_party/googleapis/google/cloud/run/v2/vendor_settings.proto +++ b/third_party/googleapis/google/cloud/run/v2/vendor_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,22 +41,22 @@ message VpcAccess { // Direct VPC egress settings. message NetworkInterface { - // The VPC network that the Cloud Run resource will be able to send traffic - // to. At least one of network or subnetwork must be specified. If both - // network and subnetwork are specified, the given VPC subnetwork must - // belong to the given VPC network. If network is not specified, it will be - // looked up from the subnetwork. - string network = 1; - - // The VPC subnetwork that the Cloud Run resource will get IPs from. At - // least one of network or subnetwork must be specified. If both + // Optional. The VPC network that the Cloud Run resource will be able to + // send traffic to. At least one of network or subnetwork must be specified. + // If both network and subnetwork are specified, the given VPC subnetwork + // must belong to the given VPC network. If network is not specified, it + // will be looked up from the subnetwork. + string network = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The VPC subnetwork that the Cloud Run resource will get IPs + // from. At least one of network or subnetwork must be specified. If both // network and subnetwork are specified, the given VPC subnetwork must // belong to the given VPC network. If subnetwork is not specified, the // subnetwork with the same name with the network will be used. - string subnetwork = 2; + string subnetwork = 2 [(google.api.field_behavior) = OPTIONAL]; - // Network tags applied to this Cloud Run resource. - repeated string tags = 3; + // Optional. Network tags applied to this Cloud Run resource. + repeated string tags = 3 [(google.api.field_behavior) = OPTIONAL]; } // VPC Access connector name. @@ -68,37 +68,53 @@ message VpcAccess { type: "vpcaccess.googleapis.com/Connector" }]; - // Traffic VPC egress settings. If not provided, it defaults to + // Optional. Traffic VPC egress settings. If not provided, it defaults to // PRIVATE_RANGES_ONLY. - VpcEgress egress = 2; + VpcEgress egress = 2 [(google.api.field_behavior) = OPTIONAL]; - // Direct VPC egress settings. Currently only single network interface is - // supported. - repeated NetworkInterface network_interfaces = 3; + // Optional. Direct VPC egress settings. Currently only single network + // interface is supported. + repeated NetworkInterface network_interfaces = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Settings for Binary Authorization feature. message BinaryAuthorization { oneof binauthz_method { - // If True, indicates to use the default project's binary authorization - // policy. If False, binary authorization will be disabled. - bool use_default = 1; + // Optional. If True, indicates to use the default project's binary + // authorization policy. If False, binary authorization will be disabled. + bool use_default = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The path to a binary authorization policy. + // Format: projects/{project}/platforms/cloudRun/{policy-name} + string policy = 3 [(google.api.field_behavior) = OPTIONAL]; } - // If present, indicates to use Breakglass using this justification. + // Optional. If present, indicates to use Breakglass using this justification. // If use_default is False, then it must be empty. // For more information on breakglass, see // https://cloud.google.com/binary-authorization/docs/using-breakglass - string breakglass_justification = 2; + string breakglass_justification = 2 [(google.api.field_behavior) = OPTIONAL]; } // Settings for revision-level scaling settings. message RevisionScaling { - // Minimum number of serving instances that this resource should have. - int32 min_instance_count = 1; + // Optional. Minimum number of serving instances that this resource should + // have. + int32 min_instance_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of serving instances that this resource should + // have. + int32 max_instance_count = 2 [(google.api.field_behavior) = OPTIONAL]; +} - // Maximum number of serving instances that this resource should have. - int32 max_instance_count = 2; +// Scaling settings applied at the service level rather than +// at the revision level. +message ServiceScaling { + // Optional. total min instances for the service. This number of instances is + // divided among all revisions with specified traffic based on the percent + // of traffic they are receiving. (BETA) + int32 min_instance_count = 1 [(google.api.field_behavior) = OPTIONAL]; } // Allowed ingress traffic for the Container. diff --git a/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml b/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml index 1f66c9b60..d6d8e4ef6 100644 --- a/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml +++ b/third_party/googleapis/google/cloud/runtimeconfig/runtimeconfig.yaml @@ -47,3 +47,10 @@ authentication: oauth: canonical_scopes: https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/cloudruntimeconfig + +auditing: + rules: + - selector: > + google.longrunning.Operations.*, + google.iam.v1.IAMPolicy.*, + directive: AUDIT_EXEMPTED diff --git a/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto index f1eee44c0..7e10a9996 100644 --- a/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto +++ b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto index 29adfc749..2f62722d0 100644 --- a/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto +++ b/third_party/googleapis/google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/notification_service_payload.proto b/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/notification_service_payload.proto index 83e7e223d..d6a37a6bc 100644 --- a/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/notification_service_payload.proto +++ b/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/notification_service_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/saas_instance_payload.proto b/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/saas_instance_payload.proto index e3d662b45..2080b21c3 100644 --- a/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/saas_instance_payload.proto +++ b/third_party/googleapis/google/cloud/saasaccelerator/management/logs/v1/saas_instance_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/scheduler/v1/cloudscheduler.proto b/third_party/googleapis/google/cloud/scheduler/v1/cloudscheduler.proto index b6b594b2b..0c201c519 100644 --- a/third_party/googleapis/google/cloud/scheduler/v1/cloudscheduler.proto +++ b/third_party/googleapis/google/cloud/scheduler/v1/cloudscheduler.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/scheduler/v1/job.proto b/third_party/googleapis/google/cloud/scheduler/v1/job.proto index e12e589ef..452588271 100644 --- a/third_party/googleapis/google/cloud/scheduler/v1/job.proto +++ b/third_party/googleapis/google/cloud/scheduler/v1/job.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/scheduler/v1/target.proto b/third_party/googleapis/google/cloud/scheduler/v1/target.proto index 3565dbea7..6b899e7d9 100644 --- a/third_party/googleapis/google/cloud/scheduler/v1/target.proto +++ b/third_party/googleapis/google/cloud/scheduler/v1/target.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/scheduler/v1beta1/cloudscheduler.proto b/third_party/googleapis/google/cloud/scheduler/v1beta1/cloudscheduler.proto index 210e0f294..4d669209b 100644 --- a/third_party/googleapis/google/cloud/scheduler/v1beta1/cloudscheduler.proto +++ b/third_party/googleapis/google/cloud/scheduler/v1beta1/cloudscheduler.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/scheduler/v1beta1/job.proto b/third_party/googleapis/google/cloud/scheduler/v1beta1/job.proto index 2674217d9..c893cfe56 100644 --- a/third_party/googleapis/google/cloud/scheduler/v1beta1/job.proto +++ b/third_party/googleapis/google/cloud/scheduler/v1beta1/job.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/scheduler/v1beta1/target.proto b/third_party/googleapis/google/cloud/scheduler/v1beta1/target.proto index 3f2ad51f2..363b3a2cb 100644 --- a/third_party/googleapis/google/cloud/scheduler/v1beta1/target.proto +++ b/third_party/googleapis/google/cloud/scheduler/v1beta1/target.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/secretmanager/logging/v1/secret_event.proto b/third_party/googleapis/google/cloud/secretmanager/logging/v1/secret_event.proto index c7dfd8c43..c41e7e6aa 100644 --- a/third_party/googleapis/google/cloud/secretmanager/logging/v1/secret_event.proto +++ b/third_party/googleapis/google/cloud/secretmanager/logging/v1/secret_event.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/secretmanager/v1/BUILD.bazel b/third_party/googleapis/google/cloud/secretmanager/v1/BUILD.bazel index 96e89cf11..ef9e07f48 100644 --- a/third_party/googleapis/google/cloud/secretmanager/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/secretmanager/v1/BUILD.bazel @@ -76,12 +76,15 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "secretmanager_v1.yaml", test_deps = [ + "//google/cloud/location:location_java_grpc", ":secretmanager_java_grpc", "//google/iam/v1:iam_java_grpc", ], transport = "grpc+rest", deps = [ ":secretmanager_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", "//google/iam/v1:iam_java_proto", ], ) @@ -141,6 +144,7 @@ go_gapic_library( transport = "grpc+rest", deps = [ ":secretmanager_go_proto", + "//google/cloud/location:location_go_proto", "//google/iam/v1:iam_go_proto", "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], diff --git a/third_party/googleapis/google/cloud/secretmanager/v1/resources.proto b/third_party/googleapis/google/cloud/secretmanager/v1/resources.proto index 0be89098c..7adce715a 100644 --- a/third_party/googleapis/google/cloud/secretmanager/v1/resources.proto +++ b/third_party/googleapis/google/cloud/secretmanager/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,6 +41,9 @@ message Secret { option (google.api.resource) = { type: "secretmanager.googleapis.com/Secret" pattern: "projects/{project}/secrets/{secret}" + pattern: "projects/{project}/locations/{location}/secrets/{secret}" + plural: "secrets" + singular: "secret" }; // Output only. The resource name of the @@ -48,13 +51,13 @@ message Secret { // `projects/*/secrets/*`. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Immutable. The replication policy of the secret data attached to + // Optional. Immutable. The replication policy of the secret data attached to // the [Secret][google.cloud.secretmanager.v1.Secret]. // // The replication policy cannot be changed after the Secret has been created. Replication replication = 2 [ (google.api.field_behavior) = IMMUTABLE, - (google.api.field_behavior) = REQUIRED + (google.api.field_behavior) = OPTIONAL ]; // Output only. The time at which the @@ -120,7 +123,7 @@ message Secret { // No more than 50 aliases can be assigned to a given secret. // // Version-Alias pairs will be viewable via GetSecret and modifiable via - // UpdateSecret. At launch access by alias will only be supported on + // UpdateSecret. Access by alias is only be supported on // GetSecretVersion and AccessSecretVersion. map version_aliases = 11 [(google.api.field_behavior) = OPTIONAL]; @@ -138,6 +141,27 @@ message Secret { // // The total size of annotation keys and values must be less than 16KiB. map annotations = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Secret Version TTL after destruction request + // + // This is a part of the Delayed secret version destroy feature. + // For secret with TTL>0, version destruction doesn't happen immediately + // on calling destroy instead the version goes to a disabled state and + // destruction happens after the TTL expires. + google.protobuf.Duration version_destroy_ttl = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The customer-managed encryption configuration of the Regionalised + // Secrets. If no configuration is provided, Google-managed default encryption + // is used. + // + // Updates to the [Secret][google.cloud.secretmanager.v1.Secret] encryption + // configuration only apply to + // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] added + // afterwards. They do not apply retroactively to existing + // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. + CustomerManagedEncryption customer_managed_encryption = 15 + [(google.api.field_behavior) = OPTIONAL]; } // A secret version resource in the Secret Manager API. @@ -145,6 +169,9 @@ message SecretVersion { option (google.api.resource) = { type: "secretmanager.googleapis.com/SecretVersion" pattern: "projects/{project}/secrets/{secret}/versions/{secret_version}" + pattern: "projects/{project}/locations/{location}/secrets/{secret}/versions/{secret_version}" + plural: "secretVersions" + singular: "secretVersion" }; // The state of a @@ -213,6 +240,22 @@ message SecretVersion { // [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]. bool client_specified_payload_checksum = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Output only. Scheduled destroy time for secret version. + // This is a part of the Delayed secret version destroy feature. For a + // Secret with a valid version destroy TTL, when a secert version is + // destroyed, the version is moved to disabled state and it is scheduled for + // destruction. The version is destroyed only after the + // `scheduled_destroy_time`. + google.protobuf.Timestamp scheduled_destroy_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The customer-managed encryption status of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. Only + // populated if customer-managed encryption is used and + // [Secret][google.cloud.secretmanager.v1.Secret] is a Regionalised Secret. + CustomerManagedEncryptionStatus customer_managed_encryption = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A policy that defines the replication and encryption configuration of data. @@ -381,8 +424,9 @@ message Topic { // Required. The resource name of the Pub/Sub topic that will be published to, // in the following format: `projects/*/topics/*`. For publication to succeed, - // the Secret Manager P4SA must have `pubsub.publisher` permissions on the - // topic. + // the Secret Manager service agent must have the `pubsub.topic.publish` + // permission on the topic. The Pub/Sub Publisher role + // (`roles/pubsub.publisher`) includes this permission. string name = 1 [(google.api.field_behavior) = REQUIRED]; } diff --git a/third_party/googleapis/google/cloud/secretmanager/v1/secretmanager_v1.yaml b/third_party/googleapis/google/cloud/secretmanager/v1/secretmanager_v1.yaml index b269b2981..cf3328feb 100644 --- a/third_party/googleapis/google/cloud/secretmanager/v1/secretmanager_v1.yaml +++ b/third_party/googleapis/google/cloud/secretmanager/v1/secretmanager_v1.yaml @@ -4,6 +4,7 @@ name: secretmanager.googleapis.com title: Secret Manager API apis: +- name: google.cloud.location.Locations - name: google.cloud.secretmanager.v1.SecretManagerService documentation: @@ -18,15 +19,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: 'google.cloud.secretmanager.v1.SecretManagerService.*' - deadline: 60.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation @@ -48,3 +40,47 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=784854&template=1380926 + documentation_uri: https://cloud.google.com/secret-manager/docs/overview + api_short_name: secretmanager + github_label: 'api: secretmanager' + doc_tag_prefix: secretmanager + organization: CLOUD + library_settings: + - version: google.cloud.secretmanager.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/secret-manager/docs/reference/rpc diff --git a/third_party/googleapis/google/cloud/secretmanager/v1/service.proto b/third_party/googleapis/google/cloud/secretmanager/v1/service.proto index 029d38f4a..ad23183b0 100644 --- a/third_party/googleapis/google/cloud/secretmanager/v1/service.proto +++ b/third_party/googleapis/google/cloud/secretmanager/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -45,31 +45,43 @@ option ruby_package = "Google::Cloud::SecretManager::V1"; // * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] service SecretManagerService { option (google.api.default_host) = "secretmanager.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; // Lists [Secrets][google.cloud.secretmanager.v1.Secret]. rpc ListSecrets(ListSecretsRequest) returns (ListSecretsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*}/secrets" + additional_bindings { get: "/v1/{parent=projects/*/locations/*}/secrets" } }; option (google.api.method_signature) = "parent"; } - // Creates a new [Secret][google.cloud.secretmanager.v1.Secret] containing no [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. + // Creates a new [Secret][google.cloud.secretmanager.v1.Secret] containing no + // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. rpc CreateSecret(CreateSecretRequest) returns (Secret) { option (google.api.http) = { post: "/v1/{parent=projects/*}/secrets" body: "secret" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/secrets" + body: "secret" + } }; option (google.api.method_signature) = "parent,secret_id,secret"; } - // Creates a new [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] containing secret data and attaches - // it to an existing [Secret][google.cloud.secretmanager.v1.Secret]. + // Creates a new [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] + // containing secret data and attaches it to an existing + // [Secret][google.cloud.secretmanager.v1.Secret]. rpc AddSecretVersion(AddSecretVersionRequest) returns (SecretVersion) { option (google.api.http) = { post: "/v1/{parent=projects/*/secrets/*}:addVersion" body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/secrets/*}:addVersion" + body: "*" + } }; option (google.api.method_signature) = "parent,payload"; } @@ -78,15 +90,21 @@ service SecretManagerService { rpc GetSecret(GetSecretRequest) returns (Secret) { option (google.api.http) = { get: "/v1/{name=projects/*/secrets/*}" + additional_bindings { get: "/v1/{name=projects/*/locations/*/secrets/*}" } }; option (google.api.method_signature) = "name"; } - // Updates metadata of an existing [Secret][google.cloud.secretmanager.v1.Secret]. + // Updates metadata of an existing + // [Secret][google.cloud.secretmanager.v1.Secret]. rpc UpdateSecret(UpdateSecretRequest) returns (Secret) { option (google.api.http) = { patch: "/v1/{secret.name=projects/*/secrets/*}" body: "secret" + additional_bindings { + patch: "/v1/{secret.name=projects/*/locations/*/secrets/*}" + body: "secret" + } }; option (google.api.method_signature) = "secret,update_mask"; } @@ -95,74 +113,107 @@ service SecretManagerService { rpc DeleteSecret(DeleteSecretRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/{name=projects/*/secrets/*}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/secrets/*}" + } }; option (google.api.method_signature) = "name"; } - // Lists [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. This call does not return secret - // data. - rpc ListSecretVersions(ListSecretVersionsRequest) returns (ListSecretVersionsResponse) { + // Lists [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. This + // call does not return secret data. + rpc ListSecretVersions(ListSecretVersionsRequest) + returns (ListSecretVersionsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/secrets/*}/versions" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/secrets/*}/versions" + } }; option (google.api.method_signature) = "parent"; } - // Gets metadata for a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. + // Gets metadata for a + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. // // `projects/*/secrets/*/versions/latest` is an alias to the most recently // created [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. rpc GetSecretVersion(GetSecretVersionRequest) returns (SecretVersion) { option (google.api.http) = { get: "/v1/{name=projects/*/secrets/*/versions/*}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/secrets/*/versions/*}" + } }; option (google.api.method_signature) = "name"; } - // Accesses a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. This call returns the secret data. + // Accesses a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. + // This call returns the secret data. // // `projects/*/secrets/*/versions/latest` is an alias to the most recently // created [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. - rpc AccessSecretVersion(AccessSecretVersionRequest) returns (AccessSecretVersionResponse) { + rpc AccessSecretVersion(AccessSecretVersionRequest) + returns (AccessSecretVersionResponse) { option (google.api.http) = { get: "/v1/{name=projects/*/secrets/*/versions/*}:access" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:access" + } }; option (google.api.method_signature) = "name"; } // Disables a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. // - // Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to + // Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to // [DISABLED][google.cloud.secretmanager.v1.SecretVersion.State.DISABLED]. - rpc DisableSecretVersion(DisableSecretVersionRequest) returns (SecretVersion) { + rpc DisableSecretVersion(DisableSecretVersionRequest) + returns (SecretVersion) { option (google.api.http) = { post: "/v1/{name=projects/*/secrets/*/versions/*}:disable" body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:disable" + body: "*" + } }; option (google.api.method_signature) = "name"; } // Enables a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. // - // Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to + // Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to // [ENABLED][google.cloud.secretmanager.v1.SecretVersion.State.ENABLED]. rpc EnableSecretVersion(EnableSecretVersionRequest) returns (SecretVersion) { option (google.api.http) = { post: "/v1/{name=projects/*/secrets/*/versions/*}:enable" body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:enable" + body: "*" + } }; option (google.api.method_signature) = "name"; } // Destroys a [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. // - // Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to - // [DESTROYED][google.cloud.secretmanager.v1.SecretVersion.State.DESTROYED] and irrevocably destroys the - // secret data. - rpc DestroySecretVersion(DestroySecretVersionRequest) returns (SecretVersion) { + // Sets the [state][google.cloud.secretmanager.v1.SecretVersion.state] of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to + // [DESTROYED][google.cloud.secretmanager.v1.SecretVersion.State.DESTROYED] + // and irrevocably destroys the secret data. + rpc DestroySecretVersion(DestroySecretVersionRequest) + returns (SecretVersion) { option (google.api.http) = { post: "/v1/{name=projects/*/secrets/*/versions/*}:destroy" body: "*" + additional_bindings { + post: "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:destroy" + body: "*" + } }; option (google.api.method_signature) = "name"; } @@ -170,20 +221,31 @@ service SecretManagerService { // Sets the access control policy on the specified secret. Replaces any // existing policy. // - // Permissions on [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] are enforced according - // to the policy set on the associated [Secret][google.cloud.secretmanager.v1.Secret]. - rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + // Permissions on + // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] are enforced + // according to the policy set on the associated + // [Secret][google.cloud.secretmanager.v1.Secret]. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1/{resource=projects/*/secrets/*}:setIamPolicy" body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/secrets/*}:setIamPolicy" + body: "*" + } }; } // Gets the access control policy for a secret. // Returns empty policy if the secret exists and does not have a policy set. - rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { option (google.api.http) = { get: "/v1/{resource=projects/*/secrets/*}:getIamPolicy" + additional_bindings { + get: "/v1/{resource=projects/*/locations/*/secrets/*}:getIamPolicy" + } }; } @@ -194,22 +256,29 @@ service SecretManagerService { // 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. - rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { option (google.api.http) = { post: "/v1/{resource=projects/*/secrets/*}:testIamPermissions" body: "*" + additional_bindings { + post: "/v1/{resource=projects/*/locations/*/secrets/*}:testIamPermissions" + body: "*" + } }; } } -// Request message for [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1.SecretManagerService.ListSecrets]. +// Request message for +// [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1.SecretManagerService.ListSecrets]. message ListSecretsRequest { // Required. The resource name of the project associated with the - // [Secrets][google.cloud.secretmanager.v1.Secret], in the format `projects/*`. + // [Secrets][google.cloud.secretmanager.v1.Secret], in the format `projects/*` + // or `projects/*/locations/*` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" + child_type: "secretmanager.googleapis.com/Secret" } ]; @@ -230,28 +299,35 @@ message ListSecretsRequest { string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } -// Response message for [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1.SecretManagerService.ListSecrets]. +// Response message for +// [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1.SecretManagerService.ListSecrets]. message ListSecretsResponse { - // The list of [Secrets][google.cloud.secretmanager.v1.Secret] sorted in reverse by create_time (newest - // first). + // The list of [Secrets][google.cloud.secretmanager.v1.Secret] sorted in + // reverse by create_time (newest first). repeated Secret secrets = 1; // A token to retrieve the next page of results. Pass this value in - // [ListSecretsRequest.page_token][google.cloud.secretmanager.v1.ListSecretsRequest.page_token] to retrieve the next page. + // [ListSecretsRequest.page_token][google.cloud.secretmanager.v1.ListSecretsRequest.page_token] + // to retrieve the next page. string next_page_token = 2; - // The total number of [Secrets][google.cloud.secretmanager.v1.Secret]. + // The total number of [Secrets][google.cloud.secretmanager.v1.Secret] but 0 + // when the + // [ListSecretsRequest.filter][google.cloud.secretmanager.v1.ListSecretsRequest.filter] + // field is set. int32 total_size = 3; } -// Request message for [SecretManagerService.CreateSecret][google.cloud.secretmanager.v1.SecretManagerService.CreateSecret]. +// Request message for +// [SecretManagerService.CreateSecret][google.cloud.secretmanager.v1.SecretManagerService.CreateSecret]. message CreateSecretRequest { // Required. The resource name of the project to associate with the - // [Secret][google.cloud.secretmanager.v1.Secret], in the format `projects/*`. + // [Secret][google.cloud.secretmanager.v1.Secret], in the format `projects/*` + // or `projects/*/locations/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" + child_type: "secretmanager.googleapis.com/Secret" } ]; @@ -262,14 +338,18 @@ message CreateSecretRequest { // underscore (`_`) characters. string secret_id = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. A [Secret][google.cloud.secretmanager.v1.Secret] with initial field values. + // Required. A [Secret][google.cloud.secretmanager.v1.Secret] with initial + // field values. Secret secret = 3 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]. +// Request message for +// [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]. message AddSecretVersionRequest { - // Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] to associate with the - // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format `projects/*/secrets/*`. + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1.Secret] to associate with the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format + // `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -277,13 +357,17 @@ message AddSecretVersionRequest { } ]; - // Required. The secret payload of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. + // Required. The secret payload of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. SecretPayload payload = 2 [(google.api.field_behavior) = REQUIRED]; } -// Request message for [SecretManagerService.GetSecret][google.cloud.secretmanager.v1.SecretManagerService.GetSecret]. +// Request message for +// [SecretManagerService.GetSecret][google.cloud.secretmanager.v1.SecretManagerService.GetSecret]. message GetSecretRequest { - // Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret], in the format `projects/*/secrets/*`. + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1.Secret], in the format + // `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -292,11 +376,13 @@ message GetSecretRequest { ]; } -// Request message for [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions]. +// Request message for +// [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions]. message ListSecretVersionsRequest { - // Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] associated with the - // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] to list, in the format - // `projects/*/secrets/*`. + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1.Secret] associated with the + // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] to list, in + // the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -321,27 +407,38 @@ message ListSecretVersionsRequest { string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } -// Response message for [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions]. +// Response message for +// [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1.SecretManagerService.ListSecretVersions]. message ListSecretVersionsResponse { - // The list of [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] sorted in reverse by - // create_time (newest first). + // The list of [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] + // sorted in reverse by create_time (newest first). repeated SecretVersion versions = 1; // A token to retrieve the next page of results. Pass this value in - // [ListSecretVersionsRequest.page_token][google.cloud.secretmanager.v1.ListSecretVersionsRequest.page_token] to retrieve the next page. + // [ListSecretVersionsRequest.page_token][google.cloud.secretmanager.v1.ListSecretVersionsRequest.page_token] + // to retrieve the next page. string next_page_token = 2; - // The total number of [SecretVersions][google.cloud.secretmanager.v1.SecretVersion]. + // The total number of + // [SecretVersions][google.cloud.secretmanager.v1.SecretVersion] but 0 when + // the + // [ListSecretsRequest.filter][google.cloud.secretmanager.v1.ListSecretsRequest.filter] + // field is set. int32 total_size = 3; } -// Request message for [SecretManagerService.GetSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.GetSecretVersion]. +// Request message for +// [SecretManagerService.GetSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.GetSecretVersion]. message GetSecretVersionRequest { - // Required. The resource name of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format - // `projects/*/secrets/*/versions/*`. + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format + // `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. // - // `projects/*/secrets/*/versions/latest` is an alias to the most recently - // created [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. + // `projects/*/secrets/*/versions/latest` or + // `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most + // recently created + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -350,22 +447,30 @@ message GetSecretVersionRequest { ]; } -// Request message for [SecretManagerService.UpdateSecret][google.cloud.secretmanager.v1.SecretManagerService.UpdateSecret]. +// Request message for +// [SecretManagerService.UpdateSecret][google.cloud.secretmanager.v1.SecretManagerService.UpdateSecret]. message UpdateSecretRequest { - // Required. [Secret][google.cloud.secretmanager.v1.Secret] with updated field values. + // Required. [Secret][google.cloud.secretmanager.v1.Secret] with updated field + // values. Secret secret = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Specifies the fields to be updated. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; } -// Request message for [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]. +// Request message for +// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]. message AccessSecretVersionRequest { - // Required. The resource name of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format - // `projects/*/secrets/*/versions/*`. + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format + // `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. // - // `projects/*/secrets/*/versions/latest` is an alias to the most recently - // created [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. + // `projects/*/secrets/*/versions/latest` or + // `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most + // recently created + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -374,21 +479,26 @@ message AccessSecretVersionRequest { ]; } -// Response message for [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]. +// Response message for +// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion]. message AccessSecretVersionResponse { - // The resource name of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format - // `projects/*/secrets/*/versions/*`. + // The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format + // `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. string name = 1 [(google.api.resource_reference) = { - type: "secretmanager.googleapis.com/SecretVersion" - }]; + type: "secretmanager.googleapis.com/SecretVersion" + }]; // Secret payload SecretPayload payload = 2; } -// Request message for [SecretManagerService.DeleteSecret][google.cloud.secretmanager.v1.SecretManagerService.DeleteSecret]. +// Request message for +// [SecretManagerService.DeleteSecret][google.cloud.secretmanager.v1.SecretManagerService.DeleteSecret]. message DeleteSecretRequest { - // Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] to delete in the format + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1.Secret] to delete in the format // `projects/*/secrets/*`. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -397,16 +507,19 @@ message DeleteSecretRequest { } ]; - // Optional. Etag of the [Secret][google.cloud.secretmanager.v1.Secret]. The request succeeds if it matches - // the etag of the currently stored secret object. If the etag is omitted, - // the request succeeds. + // Optional. Etag of the [Secret][google.cloud.secretmanager.v1.Secret]. The + // request succeeds if it matches the etag of the currently stored secret + // object. If the etag is omitted, the request succeeds. string etag = 2 [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [SecretManagerService.DisableSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.DisableSecretVersion]. +// Request message for +// [SecretManagerService.DisableSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.DisableSecretVersion]. message DisableSecretVersionRequest { - // Required. The resource name of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to disable in the format - // `projects/*/secrets/*/versions/*`. + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to disable in + // the format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -414,16 +527,20 @@ message DisableSecretVersionRequest { } ]; - // Optional. Etag of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request succeeds if it matches - // the etag of the currently stored secret version object. If the etag is - // omitted, the request succeeds. + // Optional. Etag of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request + // succeeds if it matches the etag of the currently stored secret version + // object. If the etag is omitted, the request succeeds. string etag = 2 [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [SecretManagerService.EnableSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.EnableSecretVersion]. +// Request message for +// [SecretManagerService.EnableSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.EnableSecretVersion]. message EnableSecretVersionRequest { - // Required. The resource name of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to enable in the format - // `projects/*/secrets/*/versions/*`. + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to enable in + // the format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -431,16 +548,20 @@ message EnableSecretVersionRequest { } ]; - // Optional. Etag of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request succeeds if it matches - // the etag of the currently stored secret version object. If the etag is - // omitted, the request succeeds. + // Optional. Etag of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request + // succeeds if it matches the etag of the currently stored secret version + // object. If the etag is omitted, the request succeeds. string etag = 2 [(google.api.field_behavior) = OPTIONAL]; } -// Request message for [SecretManagerService.DestroySecretVersion][google.cloud.secretmanager.v1.SecretManagerService.DestroySecretVersion]. +// Request message for +// [SecretManagerService.DestroySecretVersion][google.cloud.secretmanager.v1.SecretManagerService.DestroySecretVersion]. message DestroySecretVersionRequest { - // Required. The resource name of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to destroy in the format - // `projects/*/secrets/*/versions/*`. + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] to destroy in + // the format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -448,8 +569,9 @@ message DestroySecretVersionRequest { } ]; - // Optional. Etag of the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request succeeds if it matches - // the etag of the currently stored secret version object. If the etag is - // omitted, the request succeeds. + // Optional. Etag of the + // [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. The request + // succeeds if it matches the etag of the currently stored secret version + // object. If the etag is omitted, the request succeeds. string etag = 2 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/secretmanager/v1beta2/BUILD.bazel b/third_party/googleapis/google/cloud/secretmanager/v1beta2/BUILD.bazel new file mode 100644 index 000000000..68a68a1c3 --- /dev/null +++ b/third_party/googleapis/google/cloud/secretmanager/v1beta2/BUILD.bazel @@ -0,0 +1,403 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "secretmanager_proto", + srcs = [ + "resources.proto", + "service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/iam/v1:iam_policy_proto", + "//google/iam/v1:policy_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "secretmanager_proto_with_info", + deps = [ + ":secretmanager_proto", + "//google/cloud/location:location_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "secretmanager_java_proto", + deps = [":secretmanager_proto"], +) + +java_grpc_library( + name = "secretmanager_java_grpc", + srcs = [":secretmanager_proto"], + deps = [":secretmanager_java_proto"], +) + +java_gapic_library( + name = "secretmanager_java_gapic", + srcs = [":secretmanager_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "secretmanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "secretmanager_v1beta2.yaml", + test_deps = [ + "//google/cloud/location:location_java_grpc", + "//google/iam/v1:iam_java_grpc", + ":secretmanager_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":secretmanager_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "secretmanager_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.secretmanager.v1beta2.SecretManagerServiceClientHttpJsonTest", + "com.google.cloud.secretmanager.v1beta2.SecretManagerServiceClientTest", + ], + runtime_deps = [":secretmanager_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-secretmanager-v1beta2-java", + transport = "grpc+rest", + deps = [ + ":secretmanager_java_gapic", + ":secretmanager_java_grpc", + ":secretmanager_java_proto", + ":secretmanager_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "secretmanager_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/secretmanager/apiv1beta2/secretmanagerpb", + protos = [":secretmanager_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/iam/v1:iam_go_proto", + ], +) + +go_gapic_library( + name = "secretmanager_go_gapic", + srcs = [":secretmanager_proto_with_info"], + grpc_service_config = "secretmanager_grpc_service_config.json", + importpath = "cloud.google.com/go/secretmanager/apiv1beta2;secretmanager", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "secretmanager_v1beta2.yaml", + transport = "grpc+rest", + deps = [ + ":secretmanager_go_proto", + "//google/cloud/location:location_go_proto", + "//google/iam/v1:iam_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-secretmanager-v1beta2-go", + deps = [ + ":secretmanager_go_gapic", + ":secretmanager_go_gapic_srcjar-test.srcjar", + ":secretmanager_go_gapic_srcjar-metadata.srcjar", + ":secretmanager_go_gapic_srcjar-snippets.srcjar", + ":secretmanager_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "secretmanager_py_gapic", + srcs = [":secretmanager_proto"], + grpc_service_config = "secretmanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "secretmanager_v1beta2.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "secretmanager_py_gapic_test", + srcs = [ + "secretmanager_py_gapic_pytest.py", + "secretmanager_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":secretmanager_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "secretmanager-v1beta2-py", + deps = [ + ":secretmanager_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "secretmanager_php_proto", + deps = [":secretmanager_proto"], +) + +php_gapic_library( + name = "secretmanager_php_gapic", + srcs = [":secretmanager_proto_with_info"], + grpc_service_config = "secretmanager_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "secretmanager_v1beta2.yaml", + transport = "grpc+rest", + deps = [ + ":secretmanager_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-secretmanager-v1beta2-php", + deps = [ + ":secretmanager_php_gapic", + ":secretmanager_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "secretmanager_nodejs_gapic", + package_name = "@google-cloud/secretmanager", + src = ":secretmanager_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "secretmanager_grpc_service_config.json", + package = "google.cloud.secretmanager.v1beta2", + rest_numeric_enums = True, + service_yaml = "secretmanager_v1beta2.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "secretmanager-v1beta2-nodejs", + deps = [ + ":secretmanager_nodejs_gapic", + ":secretmanager_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "secretmanager_ruby_proto", + deps = [":secretmanager_proto"], +) + +ruby_grpc_library( + name = "secretmanager_ruby_grpc", + srcs = [":secretmanager_proto"], + deps = [":secretmanager_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "secretmanager_ruby_gapic", + srcs = [":secretmanager_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=secretmanager.googleapis.com", + "ruby-cloud-api-shortname=secretmanager", + "ruby-cloud-env-prefix=SECRET_MANAGER", + "ruby-cloud-gem-name=google-cloud-secret_manager-v1beta2", + "ruby-cloud-product-url=https://cloud.google.com/secret-manager" + ], + grpc_service_config = "secretmanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "secretmanager_v1beta2.yaml", + transport = "grpc+rest", + deps = [ + ":secretmanager_ruby_grpc", + ":secretmanager_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-secretmanager-v1beta2-ruby", + deps = [ + ":secretmanager_ruby_gapic", + ":secretmanager_ruby_grpc", + ":secretmanager_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "secretmanager_csharp_proto", + extra_opts = [], + deps = [":secretmanager_proto"], +) + +csharp_grpc_library( + name = "secretmanager_csharp_grpc", + srcs = [":secretmanager_proto"], + deps = [":secretmanager_csharp_proto"], +) + +csharp_gapic_library( + name = "secretmanager_csharp_gapic", + srcs = [":secretmanager_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "secretmanager_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "secretmanager_v1beta2.yaml", + transport = "grpc+rest", + deps = [ + ":secretmanager_csharp_grpc", + ":secretmanager_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-secretmanager-v1beta2-csharp", + deps = [ + ":secretmanager_csharp_gapic", + ":secretmanager_csharp_grpc", + ":secretmanager_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "secretmanager_cc_proto", + deps = [":secretmanager_proto"], +) + +cc_grpc_library( + name = "secretmanager_cc_grpc", + srcs = [":secretmanager_proto"], + grpc_only = True, + deps = [":secretmanager_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/secretmanager/v1beta2/resources.proto b/third_party/googleapis/google/cloud/secretmanager/v1beta2/resources.proto new file mode 100644 index 000000000..304a141d2 --- /dev/null +++ b/third_party/googleapis/google/cloud/secretmanager/v1beta2/resources.proto @@ -0,0 +1,494 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.secretmanager.v1beta2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.SecretManager.V1Beta2"; +option go_package = "cloud.google.com/go/secretmanager/apiv1beta2/secretmanagerpb;secretmanagerpb"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.cloud.secretmanager.v1beta2"; +option objc_class_prefix = "GSM"; +option php_namespace = "Google\\Cloud\\SecretManager\\V1beta2"; +option ruby_package = "Google::Cloud::SecretManager::V1beta2"; + +// A [Secret][google.cloud.secretmanager.v1beta2.Secret] is a logical secret +// whose value and versions can be accessed. +// +// A [Secret][google.cloud.secretmanager.v1beta2.Secret] is made up of zero or +// more [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] that +// represent the secret data. +message Secret { + option (google.api.resource) = { + type: "secretmanager.googleapis.com/Secret" + pattern: "projects/{project}/secrets/{secret}" + pattern: "projects/{project}/locations/{location}/secrets/{secret}" + plural: "secrets" + singular: "secret" + }; + + // Output only. The resource name of the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] in the format + // `projects/*/secrets/*`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. The replication policy of the secret data attached to + // the [Secret][google.cloud.secretmanager.v1beta2.Secret]. + // + // The replication policy cannot be changed after the Secret has been created. + Replication replication = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; + + // Output only. The time at which the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels assigned to this Secret. + // + // Label keys must be between 1 and 63 characters long, have a UTF-8 encoding + // of maximum 128 bytes, and must conform to the following PCRE regular + // expression: `[\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}` + // + // Label values must be between 0 and 63 characters long, have a UTF-8 + // encoding of maximum 128 bytes, and must conform to the following PCRE + // regular expression: `[\p{Ll}\p{Lo}\p{N}_-]{0,63}` + // + // No more than 64 labels can be assigned to a given resource. + map labels = 4; + + // Optional. A list of up to 10 Pub/Sub topics to which messages are published + // when control plane operations are called on the secret or its versions. + repeated Topic topics = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Expiration policy attached to the + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. If specified the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] and all + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] will be + // automatically deleted at expiration. Expired secrets are irreversibly + // deleted. + // + // Expiration is *not* the recommended way to set time-based permissions. [IAM + // Conditions](https://cloud.google.com/secret-manager/docs/access-control#conditions) + // is recommended for granting time-based permissions because the operation + // can be reversed. + oneof expiration { + // Optional. Timestamp in UTC when the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] is scheduled to + // expire. This is always provided on output, regardless of what was sent on + // input. + google.protobuf.Timestamp expire_time = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Input only. The TTL for the + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + google.protobuf.Duration ttl = 7 [(google.api.field_behavior) = INPUT_ONLY]; + } + + // Optional. Etag of the currently stored + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + string etag = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Rotation policy attached to the + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. May be excluded if + // there is no rotation policy. + Rotation rotation = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mapping from version alias to version name. + // + // A version alias is a string with a maximum length of 63 characters and can + // contain uppercase and lowercase letters, numerals, and the hyphen (`-`) + // and underscore ('_') characters. An alias string must start with a + // letter and cannot be the string 'latest' or 'NEW'. + // No more than 50 aliases can be assigned to a given secret. + // + // Version-Alias pairs will be viewable via GetSecret and modifiable via + // UpdateSecret. Access by alias is only supported for + // GetSecretVersion and AccessSecretVersion. + map version_aliases = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom metadata about the secret. + // + // Annotations are distinct from various forms of labels. + // Annotations exist to allow client tools to store their own state + // information without requiring a database. + // + // Annotation keys must be between 1 and 63 characters long, have a UTF-8 + // encoding of maximum 128 bytes, begin and end with an alphanumeric character + // ([a-z0-9A-Z]), and may have dashes (-), underscores (_), dots (.), and + // alphanumerics in between these symbols. + // + // The total size of annotation keys and values must be less than 16KiB. + map annotations = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Secret Version TTL after destruction request + // + // This is a part of the Delayed secret version destroy feature. + // For secret with TTL>0, version destruction doesn't happen immediately + // on calling destroy instead the version goes to a disabled state and + // destruction happens after the TTL expires. + google.protobuf.Duration version_destroy_ttl = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The customer-managed encryption configuration of the Regionalised + // Secrets. If no configuration is provided, Google-managed default encryption + // is used. + // + // Updates to the [Secret][google.cloud.secretmanager.v1beta2.Secret] + // encryption configuration only apply to + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] added + // afterwards. They do not apply retroactively to existing + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion]. + CustomerManagedEncryption customer_managed_encryption = 15 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A secret version resource in the Secret Manager API. +message SecretVersion { + option (google.api.resource) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{secret_version}" + pattern: "projects/{project}/locations/{location}/secrets/{secret}/versions/{secret_version}" + plural: "secretVersions" + singular: "secretVersion" + }; + + // The state of a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion], + // indicating if it can be accessed. + enum State { + // Not specified. This value is unused and invalid. + STATE_UNSPECIFIED = 0; + + // The [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] may + // be accessed. + ENABLED = 1; + + // The [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] may + // not be accessed, but the secret data is still available and can be placed + // back into the + // [ENABLED][google.cloud.secretmanager.v1beta2.SecretVersion.State.ENABLED] + // state. + DISABLED = 2; + + // The [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] is + // destroyed and the secret data is no longer stored. A version may not + // leave this state once entered. + DESTROYED = 3; + } + + // Output only. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] in the + // format `projects/*/secrets/*/versions/*`. + // + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] IDs in a + // [Secret][google.cloud.secretmanager.v1beta2.Secret] start at 1 and are + // incremented for each subsequent version of the secret. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] was + // created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time this + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] was + // destroyed. Only present if + // [state][google.cloud.secretmanager.v1beta2.SecretVersion.state] is + // [DESTROYED][google.cloud.secretmanager.v1beta2.SecretVersion.State.DESTROYED]. + google.protobuf.Timestamp destroy_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The replication status of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + ReplicationStatus replication_status = 5; + + // Output only. Etag of the currently stored + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + string etag = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if payload checksum specified in + // [SecretPayload][google.cloud.secretmanager.v1beta2.SecretPayload] object + // has been received by + // [SecretManagerService][google.cloud.secretmanager.v1beta2.SecretManagerService] + // on + // [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AddSecretVersion]. + bool client_specified_payload_checksum = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Output only. Scheduled destroy time for secret version. + // This is a part of the Delayed secret version destroy feature. For a + // Secret with a valid version destroy TTL, when a secert version is + // destroyed, version is moved to disabled state and it is scheduled for + // destruction Version is destroyed only after the scheduled_destroy_time. + google.protobuf.Timestamp scheduled_destroy_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The customer-managed encryption status of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. Only + // populated if customer-managed encryption is used and + // [Secret][google.cloud.secretmanager.v1beta2.Secret] is a Regionalised + // Secret. + CustomerManagedEncryptionStatus customer_managed_encryption = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A policy that defines the replication and encryption configuration of data. +message Replication { + // A replication policy that replicates the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] payload without any + // restrictions. + message Automatic { + // Optional. The customer-managed encryption configuration of the + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. If no configuration + // is provided, Google-managed default encryption is used. + // + // Updates to the [Secret][google.cloud.secretmanager.v1beta2.Secret] + // encryption configuration only apply to + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] added + // afterwards. They do not apply retroactively to existing + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion]. + CustomerManagedEncryption customer_managed_encryption = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // A replication policy that replicates the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] payload into the + // locations specified in [Secret.replication.user_managed.replicas][] + message UserManaged { + // Represents a Replica for this + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + message Replica { + // The canonical IDs of the location to replicate data. + // For example: `"us-east1"`. + string location = 1; + + // Optional. The customer-managed encryption configuration of the + // [User-Managed Replica][Replication.UserManaged.Replica]. If no + // configuration is provided, Google-managed default encryption is used. + // + // Updates to the [Secret][google.cloud.secretmanager.v1beta2.Secret] + // encryption configuration only apply to + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] + // added afterwards. They do not apply retroactively to existing + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion]. + CustomerManagedEncryption customer_managed_encryption = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The list of Replicas for this + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + // + // Cannot be empty. + repeated Replica replicas = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // The replication policy for this secret. + oneof replication { + // The [Secret][google.cloud.secretmanager.v1beta2.Secret] will + // automatically be replicated without any restrictions. + Automatic automatic = 1; + + // The [Secret][google.cloud.secretmanager.v1beta2.Secret] will only be + // replicated into the locations specified. + UserManaged user_managed = 2; + } +} + +// Configuration for encrypting secret payloads using customer-managed +// encryption keys (CMEK). +message CustomerManagedEncryption { + // Required. The resource name of the Cloud KMS CryptoKey used to encrypt + // secret payloads. + // + // For secrets using the + // [UserManaged][google.cloud.secretmanager.v1beta2.Replication.UserManaged] + // replication policy type, Cloud KMS CryptoKeys must reside in the same + // location as the [replica location][Secret.UserManaged.Replica.location]. + // + // For secrets using the + // [Automatic][google.cloud.secretmanager.v1beta2.Replication.Automatic] + // replication policy type, Cloud KMS CryptoKeys must reside in `global`. + // + // The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`. + string kms_key_name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The replication status of a +// [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. +message ReplicationStatus { + // The replication status of a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] using + // automatic replication. + // + // Only populated if the parent + // [Secret][google.cloud.secretmanager.v1beta2.Secret] has an automatic + // replication policy. + message AutomaticStatus { + // Output only. The customer-managed encryption status of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. Only + // populated if customer-managed encryption is used. + CustomerManagedEncryptionStatus customer_managed_encryption = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The replication status of a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] using + // user-managed replication. + // + // Only populated if the parent + // [Secret][google.cloud.secretmanager.v1beta2.Secret] has a user-managed + // replication policy. + message UserManagedStatus { + // Describes the status of a user-managed replica for the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + message ReplicaStatus { + // Output only. The canonical ID of the replica location. + // For example: `"us-east1"`. + string location = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The customer-managed encryption status of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. Only + // populated if customer-managed encryption is used. + CustomerManagedEncryptionStatus customer_managed_encryption = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The list of replica statuses for the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + repeated ReplicaStatus replicas = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The replication status of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + oneof replication_status { + // Describes the replication status of a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] with + // automatic replication. + // + // Only populated if the parent + // [Secret][google.cloud.secretmanager.v1beta2.Secret] has an automatic + // replication policy. + AutomaticStatus automatic = 1; + + // Describes the replication status of a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] with + // user-managed replication. + // + // Only populated if the parent + // [Secret][google.cloud.secretmanager.v1beta2.Secret] has a user-managed + // replication policy. + UserManagedStatus user_managed = 2; + } +} + +// Describes the status of customer-managed encryption. +message CustomerManagedEncryptionStatus { + // Required. The resource name of the Cloud KMS CryptoKeyVersion used to + // encrypt the secret payload, in the following format: + // `projects/*/locations/*/keyRings/*/cryptoKeys/*/versions/*`. + string kms_key_version_name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A Pub/Sub topic which Secret Manager will publish to when control plane +// events occur on this secret. +message Topic { + option (google.api.resource) = { + type: "pubsub.googleapis.com/Topic" + pattern: "projects/{project}/topics/{topic}" + }; + + // Required. The resource name of the Pub/Sub topic that will be published to, + // in the following format: `projects/*/topics/*`. For publication to succeed, + // the Secret Manager service agent must have the `pubsub.topic.publish` + // permission on the topic. The Pub/Sub Publisher role + // (`roles/pubsub.publisher`) includes this permission. + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The rotation time and period for a +// [Secret][google.cloud.secretmanager.v1beta2.Secret]. At next_rotation_time, +// Secret Manager will send a Pub/Sub notification to the topics configured on +// the Secret. [Secret.topics][google.cloud.secretmanager.v1beta2.Secret.topics] +// must be set to configure rotation. +message Rotation { + // Optional. Timestamp in UTC at which the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] is scheduled to rotate. + // Cannot be set to less than 300s (5 min) in the future and at most + // 3153600000s (100 years). + // + // [next_rotation_time][google.cloud.secretmanager.v1beta2.Rotation.next_rotation_time] + // MUST be set if + // [rotation_period][google.cloud.secretmanager.v1beta2.Rotation.rotation_period] + // is set. + google.protobuf.Timestamp next_rotation_time = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Input only. The Duration between rotation notifications. Must be in seconds + // and at least 3600s (1h) and at most 3153600000s (100 years). + // + // If + // [rotation_period][google.cloud.secretmanager.v1beta2.Rotation.rotation_period] + // is set, + // [next_rotation_time][google.cloud.secretmanager.v1beta2.Rotation.next_rotation_time] + // must be set. + // [next_rotation_time][google.cloud.secretmanager.v1beta2.Rotation.next_rotation_time] + // will be advanced by this period when the service automatically sends + // rotation notifications. + google.protobuf.Duration rotation_period = 2 + [(google.api.field_behavior) = INPUT_ONLY]; +} + +// A secret payload resource in the Secret Manager API. This contains the +// sensitive secret payload that is associated with a +// [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. +message SecretPayload { + // The secret data. Must be no larger than 64KiB. + bytes data = 1; + + // Optional. If specified, + // [SecretManagerService][google.cloud.secretmanager.v1beta2.SecretManagerService] + // will verify the integrity of the received + // [data][google.cloud.secretmanager.v1beta2.SecretPayload.data] on + // [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AddSecretVersion] + // calls using the crc32c checksum and store it to include in future + // [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AccessSecretVersion] + // responses. If a checksum is not provided in the + // [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AddSecretVersion] + // request, the + // [SecretManagerService][google.cloud.secretmanager.v1beta2.SecretManagerService] + // will generate and store one for you. + // + // The CRC32C value is encoded as a Int64 for compatibility, and can be + // safely downconverted to uint32 in languages that support this type. + // https://cloud.google.com/apis/design/design_patterns#integer_types + optional int64 data_crc32c = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/secretmanager/v1beta2/secretmanager_grpc_service_config.json b/third_party/googleapis/google/cloud/secretmanager/v1beta2/secretmanager_grpc_service_config.json new file mode 100644 index 000000000..c8f4f0b9f --- /dev/null +++ b/third_party/googleapis/google/cloud/secretmanager/v1beta2/secretmanager_grpc_service_config.json @@ -0,0 +1,84 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "ListSecrets" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "CreateSecret" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "AddSecretVersion" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "GetSecret" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "UpdateSecret" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "DeleteSecret" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "ListSecretVersions" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "GetSecretVersion" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "DisableSecretVersion" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "EnableSecretVersion" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "DestroySecretVersion" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "SetIamPolicy" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "GetIamPolicy" + }, + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "TestIamPermissions" + } + ], + "timeout": "60s" + }, + { + "name": [ + { + "service": "google.cloud.secretmanager.v1beta2.SecretManagerService", + "method": "AccessSecretVersion" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "2s", + "maxBackoff": "60s", + "backoffMultiplier": 2.0, + "retryableStatusCodes": [ + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" + ] + } + } + ] +} diff --git a/third_party/googleapis/google/cloud/secretmanager/v1beta2/secretmanager_v1beta2.yaml b/third_party/googleapis/google/cloud/secretmanager/v1beta2/secretmanager_v1beta2.yaml new file mode 100644 index 000000000..b1b1e9a70 --- /dev/null +++ b/third_party/googleapis/google/cloud/secretmanager/v1beta2/secretmanager_v1beta2.yaml @@ -0,0 +1,86 @@ +type: google.api.Service +config_version: 3 +name: secretmanager.googleapis.com +title: Secret Manager API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.secretmanager.v1beta2.SecretManagerService + +documentation: + summary: |- + Stores sensitive data such as API keys, passwords, and certificates. + Provides convenience while improving security. + overview: Secret Manager Overview + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1beta2/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1beta2/{name=projects/*}/locations' + +authentication: + rules: + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.secretmanager.v1beta2.SecretManagerService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=784854&template=1380926 + documentation_uri: https://cloud.google.com/secret-manager/docs/overview + api_short_name: secretmanager + github_label: 'api: secretmanager' + doc_tag_prefix: secretmanager + organization: CLOUD + library_settings: + - version: google.cloud.secretmanager.v1beta2 + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/secret-manager/docs/reference/rpc diff --git a/third_party/googleapis/google/cloud/secretmanager/v1beta2/service.proto b/third_party/googleapis/google/cloud/secretmanager/v1beta2/service.proto new file mode 100644 index 000000000..db9db3f46 --- /dev/null +++ b/third_party/googleapis/google/cloud/secretmanager/v1beta2/service.proto @@ -0,0 +1,589 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.secretmanager.v1beta2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/secretmanager/v1beta2/resources.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.SecretManager.V1Beta2"; +option go_package = "cloud.google.com/go/secretmanager/apiv1beta2/secretmanagerpb;secretmanagerpb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.secretmanager.v1beta2"; +option objc_class_prefix = "GSM"; +option php_namespace = "Google\\Cloud\\SecretManager\\V1beta2"; +option ruby_package = "Google::Cloud::SecretManager::V1beta2"; + +// Secret Manager Service +// +// Manages secrets and operations using those secrets. Implements a REST +// model with the following objects: +// +// * [Secret][google.cloud.secretmanager.v1beta2.Secret] +// * [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] +service SecretManagerService { + option (google.api.default_host) = "secretmanager.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists [Secrets][google.cloud.secretmanager.v1beta2.Secret]. + rpc ListSecrets(ListSecretsRequest) returns (ListSecretsResponse) { + option (google.api.http) = { + get: "/v1beta2/{parent=projects/*}/secrets" + additional_bindings { + get: "/v1beta2/{parent=projects/*/locations/*}/secrets" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a new [Secret][google.cloud.secretmanager.v1beta2.Secret] + // containing no + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion]. + rpc CreateSecret(CreateSecretRequest) returns (Secret) { + option (google.api.http) = { + post: "/v1beta2/{parent=projects/*}/secrets" + body: "secret" + additional_bindings { + post: "/v1beta2/{parent=projects/*/locations/*}/secrets" + body: "secret" + } + }; + option (google.api.method_signature) = "parent,secret_id,secret"; + } + + // Creates a new + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] + // containing secret data and attaches it to an existing + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + rpc AddSecretVersion(AddSecretVersionRequest) returns (SecretVersion) { + option (google.api.http) = { + post: "/v1beta2/{parent=projects/*/secrets/*}:addVersion" + body: "*" + additional_bindings { + post: "/v1beta2/{parent=projects/*/locations/*/secrets/*}:addVersion" + body: "*" + } + }; + option (google.api.method_signature) = "parent,payload"; + } + + // Gets metadata for a given + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + rpc GetSecret(GetSecretRequest) returns (Secret) { + option (google.api.http) = { + get: "/v1beta2/{name=projects/*/secrets/*}" + additional_bindings { + get: "/v1beta2/{name=projects/*/locations/*/secrets/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Updates metadata of an existing + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + rpc UpdateSecret(UpdateSecretRequest) returns (Secret) { + option (google.api.http) = { + patch: "/v1beta2/{secret.name=projects/*/secrets/*}" + body: "secret" + additional_bindings { + patch: "/v1beta2/{secret.name=projects/*/locations/*/secrets/*}" + body: "secret" + } + }; + option (google.api.method_signature) = "secret,update_mask"; + } + + // Deletes a [Secret][google.cloud.secretmanager.v1beta2.Secret]. + rpc DeleteSecret(DeleteSecretRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta2/{name=projects/*/secrets/*}" + additional_bindings { + delete: "/v1beta2/{name=projects/*/locations/*/secrets/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion]. + // This call does not return secret data. + rpc ListSecretVersions(ListSecretVersionsRequest) + returns (ListSecretVersionsResponse) { + option (google.api.http) = { + get: "/v1beta2/{parent=projects/*/secrets/*}/versions" + additional_bindings { + get: "/v1beta2/{parent=projects/*/locations/*/secrets/*}/versions" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Gets metadata for a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + // + // `projects/*/secrets/*/versions/latest` is an alias to the most recently + // created [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + rpc GetSecretVersion(GetSecretVersionRequest) returns (SecretVersion) { + option (google.api.http) = { + get: "/v1beta2/{name=projects/*/secrets/*/versions/*}" + additional_bindings { + get: "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Accesses a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. This + // call returns the secret data. + // + // `projects/*/secrets/*/versions/latest` is an alias to the most recently + // created [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + rpc AccessSecretVersion(AccessSecretVersionRequest) + returns (AccessSecretVersionResponse) { + option (google.api.http) = { + get: "/v1beta2/{name=projects/*/secrets/*/versions/*}:access" + additional_bindings { + get: "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:access" + } + }; + option (google.api.method_signature) = "name"; + } + + // Disables a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + // + // Sets the [state][google.cloud.secretmanager.v1beta2.SecretVersion.state] of + // the [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] to + // [DISABLED][google.cloud.secretmanager.v1beta2.SecretVersion.State.DISABLED]. + rpc DisableSecretVersion(DisableSecretVersionRequest) + returns (SecretVersion) { + option (google.api.http) = { + post: "/v1beta2/{name=projects/*/secrets/*/versions/*}:disable" + body: "*" + additional_bindings { + post: "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:disable" + body: "*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Enables a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + // + // Sets the [state][google.cloud.secretmanager.v1beta2.SecretVersion.state] of + // the [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] to + // [ENABLED][google.cloud.secretmanager.v1beta2.SecretVersion.State.ENABLED]. + rpc EnableSecretVersion(EnableSecretVersionRequest) returns (SecretVersion) { + option (google.api.http) = { + post: "/v1beta2/{name=projects/*/secrets/*/versions/*}:enable" + body: "*" + additional_bindings { + post: "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:enable" + body: "*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Destroys a + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + // + // Sets the [state][google.cloud.secretmanager.v1beta2.SecretVersion.state] of + // the [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] to + // [DESTROYED][google.cloud.secretmanager.v1beta2.SecretVersion.State.DESTROYED] + // and irrevocably destroys the secret data. + rpc DestroySecretVersion(DestroySecretVersionRequest) + returns (SecretVersion) { + option (google.api.http) = { + post: "/v1beta2/{name=projects/*/secrets/*/versions/*}:destroy" + body: "*" + additional_bindings { + post: "/v1beta2/{name=projects/*/locations/*/secrets/*/versions/*}:destroy" + body: "*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Sets the access control policy on the specified secret. Replaces any + // existing policy. + // + // Permissions on + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] are + // enforced according to the policy set on the associated + // [Secret][google.cloud.secretmanager.v1beta2.Secret]. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v1beta2/{resource=projects/*/secrets/*}:setIamPolicy" + body: "*" + additional_bindings { + post: "/v1beta2/{resource=projects/*/locations/*/secrets/*}:setIamPolicy" + body: "*" + } + }; + } + + // Gets the access control policy for a secret. + // Returns empty policy if the secret exists and does not have a policy set. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v1beta2/{resource=projects/*/secrets/*}:getIamPolicy" + additional_bindings { + get: "/v1beta2/{resource=projects/*/locations/*/secrets/*}:getIamPolicy" + } + }; + } + + // Returns permissions that a caller has for the specified secret. + // If the secret does not exist, this call returns 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. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v1beta2/{resource=projects/*/secrets/*}:testIamPermissions" + body: "*" + additional_bindings { + post: "/v1beta2/{resource=projects/*/locations/*/secrets/*}:testIamPermissions" + body: "*" + } + }; + } +} + +// Request message for +// [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1beta2.SecretManagerService.ListSecrets]. +message ListSecretsRequest { + // Required. The resource name of the project associated with the + // [Secrets][google.cloud.secretmanager.v1beta2.Secret], in the format + // `projects/*` or `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "secretmanager.googleapis.com/Secret" + } + ]; + + // Optional. The maximum number of results to be returned in a single page. If + // set to 0, the server decides the number of results to return. If the + // number is greater than 25000, it is capped at 25000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Pagination token, returned earlier via + // [ListSecretsResponse.next_page_token][google.cloud.secretmanager.v1beta2.ListSecretsResponse.next_page_token]. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter string, adhering to the rules in + // [List-operation + // filtering](https://cloud.google.com/secret-manager/docs/filtering). List + // only secrets matching the filter. If filter is empty, all secrets are + // listed. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [SecretManagerService.ListSecrets][google.cloud.secretmanager.v1beta2.SecretManagerService.ListSecrets]. +message ListSecretsResponse { + // The list of [Secrets][google.cloud.secretmanager.v1beta2.Secret] sorted in + // reverse by create_time (newest first). + repeated Secret secrets = 1; + + // A token to retrieve the next page of results. Pass this value in + // [ListSecretsRequest.page_token][google.cloud.secretmanager.v1beta2.ListSecretsRequest.page_token] + // to retrieve the next page. + string next_page_token = 2; + + // The total number of [Secrets][google.cloud.secretmanager.v1beta2.Secret] + // but 0 when the + // [ListSecretsRequest.filter][google.cloud.secretmanager.v1beta2.ListSecretsRequest.filter] + // field is set. + int32 total_size = 3; +} + +// Request message for +// [SecretManagerService.CreateSecret][google.cloud.secretmanager.v1beta2.SecretManagerService.CreateSecret]. +message CreateSecretRequest { + // Required. The resource name of the project to associate with the + // [Secret][google.cloud.secretmanager.v1beta2.Secret], in the format + // `projects/*` or `projects/*/locations/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "secretmanager.googleapis.com/Secret" + } + ]; + + // Required. This must be unique within the project. + // + // A secret ID is a string with a maximum length of 255 characters and can + // contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and + // underscore (`_`) characters. + string secret_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A [Secret][google.cloud.secretmanager.v1beta2.Secret] with + // initial field values. + Secret secret = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AddSecretVersion]. +message AddSecretVersionRequest { + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] to associate with the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] in the + // format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/Secret" + } + ]; + + // Required. The secret payload of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + SecretPayload payload = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SecretManagerService.GetSecret][google.cloud.secretmanager.v1beta2.SecretManagerService.GetSecret]. +message GetSecretRequest { + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1beta2.Secret], in the format + // `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/Secret" + } + ]; +} + +// Request message for +// [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1beta2.SecretManagerService.ListSecretVersions]. +message ListSecretVersionsRequest { + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] associated with the + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] to list, + // in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/Secret" + } + ]; + + // Optional. The maximum number of results to be returned in a single page. If + // set to 0, the server decides the number of results to return. If the + // number is greater than 25000, it is capped at 25000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Pagination token, returned earlier via + // ListSecretVersionsResponse.next_page_token][]. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter string, adhering to the rules in + // [List-operation + // filtering](https://cloud.google.com/secret-manager/docs/filtering). List + // only secret versions matching the filter. If filter is empty, all secret + // versions are listed. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [SecretManagerService.ListSecretVersions][google.cloud.secretmanager.v1beta2.SecretManagerService.ListSecretVersions]. +message ListSecretVersionsResponse { + // The list of + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] sorted + // in reverse by create_time (newest first). + repeated SecretVersion versions = 1; + + // A token to retrieve the next page of results. Pass this value in + // [ListSecretVersionsRequest.page_token][google.cloud.secretmanager.v1beta2.ListSecretVersionsRequest.page_token] + // to retrieve the next page. + string next_page_token = 2; + + // The total number of + // [SecretVersions][google.cloud.secretmanager.v1beta2.SecretVersion] but 0 + // when the + // [ListSecretsRequest.filter][google.cloud.secretmanager.v1beta2.ListSecretsRequest.filter] + // field is set. + int32 total_size = 3; +} + +// Request message for +// [SecretManagerService.GetSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.GetSecretVersion]. +message GetSecretVersionRequest { + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] in the + // format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. + // + // `projects/*/secrets/*/versions/latest` or + // `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most + // recently created + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; +} + +// Request message for +// [SecretManagerService.UpdateSecret][google.cloud.secretmanager.v1beta2.SecretManagerService.UpdateSecret]. +message UpdateSecretRequest { + // Required. [Secret][google.cloud.secretmanager.v1beta2.Secret] with updated + // field values. + Secret secret = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies the fields to be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AccessSecretVersion]. +message AccessSecretVersionRequest { + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] in the + // format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. + // + // `projects/*/secrets/*/versions/latest` or + // `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most + // recently created + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; +} + +// Response message for +// [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.AccessSecretVersion]. +message AccessSecretVersionResponse { + // The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] in the + // format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. + string name = 1 [(google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + }]; + + // Secret payload + SecretPayload payload = 2; +} + +// Request message for +// [SecretManagerService.DeleteSecret][google.cloud.secretmanager.v1beta2.SecretManagerService.DeleteSecret]. +message DeleteSecretRequest { + // Required. The resource name of the + // [Secret][google.cloud.secretmanager.v1beta2.Secret] to delete in the format + // `projects/*/secrets/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/Secret" + } + ]; + + // Optional. Etag of the [Secret][google.cloud.secretmanager.v1beta2.Secret]. + // The request succeeds if it matches the etag of the currently stored secret + // object. If the etag is omitted, the request succeeds. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SecretManagerService.DisableSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.DisableSecretVersion]. +message DisableSecretVersionRequest { + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] to + // disable in the format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Optional. Etag of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. The + // request succeeds if it matches the etag of the currently stored secret + // version object. If the etag is omitted, the request succeeds. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SecretManagerService.EnableSecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.EnableSecretVersion]. +message EnableSecretVersionRequest { + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] to enable + // in the format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Optional. Etag of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. The + // request succeeds if it matches the etag of the currently stored secret + // version object. If the etag is omitted, the request succeeds. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for +// [SecretManagerService.DestroySecretVersion][google.cloud.secretmanager.v1beta2.SecretManagerService.DestroySecretVersion]. +message DestroySecretVersionRequest { + // Required. The resource name of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion] to + // destroy in the format `projects/*/secrets/*/versions/*` or + // `projects/*/locations/*/secrets/*/versions/*`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Optional. Etag of the + // [SecretVersion][google.cloud.secretmanager.v1beta2.SecretVersion]. The + // request succeeds if it matches the etag of the currently stored secret + // version object. If the etag is omitted, the request succeeds. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/secrets/v1beta1/resources.proto b/third_party/googleapis/google/cloud/secrets/v1beta1/resources.proto index 5e79209fd..a9908e617 100644 --- a/third_party/googleapis/google/cloud/secrets/v1beta1/resources.proto +++ b/third_party/googleapis/google/cloud/secrets/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/secrets/v1beta1/service.proto b/third_party/googleapis/google/cloud/secrets/v1beta1/service.proto index 423da02cf..6a3dd69bb 100644 --- a/third_party/googleapis/google/cloud/secrets/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/secrets/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securesourcemanager/v1/BUILD.bazel b/third_party/googleapis/google/cloud/securesourcemanager/v1/BUILD.bazel index d17c90397..c364eb9a1 100644 --- a/third_party/googleapis/google/cloud/securesourcemanager/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/securesourcemanager/v1/BUILD.bazel @@ -140,7 +140,7 @@ go_gapic_library( grpc_service_config = "securesourcemanager_grpc_service_config.json", importpath = "cloud.google.com/go/securesourcemanager/apiv1;securesourcemanager", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "securesourcemanager_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/securesourcemanager/v1/secure_source_manager.proto b/third_party/googleapis/google/cloud/securesourcemanager/v1/secure_source_manager.proto index d2776b96d..61da4c2bc 100644 --- a/third_party/googleapis/google/cloud/securesourcemanager/v1/secure_source_manager.proto +++ b/third_party/googleapis/google/cloud/securesourcemanager/v1/secure_source_manager.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -221,6 +221,9 @@ message Instance { // Instance is paused. PAUSED = 4; + + // Instance is unknown, we are not sure if it's functioning. + UNKNOWN = 6; } // Provides information about the current instance state. @@ -252,6 +255,43 @@ message Instance { string git_ssh = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // PrivateConfig includes settings for private instance. + message PrivateConfig { + // Required. Immutable. Indicate if it's private instance. + bool is_private = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. Immutable. CA pool resource, resource must in the format of + // `projects/{project}/locations/{location}/caPools/{ca_pool}`. + string ca_pool = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "privateca.googleapis.com/CaPool" + } + ]; + + // Output only. Service Attachment for HTTP, resource is in the format of + // `projects/{project}/regions/{region}/serviceAttachments/{service_attachment}`. + string http_service_attachment = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceAttachment" + } + ]; + + // Output only. Service Attachment for SSH, resource is in the format of + // `projects/{project}/regions/{region}/serviceAttachments/{service_attachment}`. + string ssh_service_attachment = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "compute.googleapis.com/ServiceAttachment" + } + ]; + } + // Optional. A unique identifier for an instance. The name should be of the // format: // `projects/{project_number}/locations/{location_id}/instances/{instance_id}` @@ -277,6 +317,9 @@ message Instance { // Optional. Labels as key value pairs. map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Private settings for private instance. + PrivateConfig private_config = 13 [(google.api.field_behavior) = OPTIONAL]; + // Output only. Current state of the instance. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -465,10 +508,12 @@ message Repository { // characters. string description = 2 [(google.api.field_behavior) = OPTIONAL]; - // Output only. The name of the instance in which the repository is hosted, + // Optional. The name of the instance in which the repository is hosted, // formatted as // `projects/{project_number}/locations/{location_id}/instances/{instance_id}` - string instance = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + // For data plane CreateRepository requests, this field is output only. + // For control plane CreateRepository requests, this field is used as input. + string instance = 3 [(google.api.field_behavior) = OPTIONAL]; // Output only. Unique identifier of the repository. string uid = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/third_party/googleapis/google/cloud/security/privateca/v1/resources.proto b/third_party/googleapis/google/cloud/security/privateca/v1/resources.proto index b64be7bc7..7083fd3bd 100644 --- a/third_party/googleapis/google/cloud/security/privateca/v1/resources.proto +++ b/third_party/googleapis/google/cloud/security/privateca/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -338,6 +338,22 @@ message CaPool { // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] // in the [CaPool][google.cloud.security.privateca.v1.CaPool]. message PublishingOptions { + // Supported encoding formats for publishing. + enum EncodingFormat { + // Not specified. By default, PEM format will be used. + ENCODING_FORMAT_UNSPECIFIED = 0; + + // The + // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s + // CA certificate and CRLs will be published in PEM format. + PEM = 1; + + // The + // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s + // CA certificate and CRLs will be published in DER format. + DER = 2; + } + // Optional. When true, publishes each // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority]'s // CA certificate and includes its URL in the "Authority Information Access" @@ -357,6 +373,12 @@ message CaPool { // days from their creation. However, we will rebuild daily. CRLs are also // rebuilt shortly after a certificate is revoked. bool publish_crl = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the encoding format of each + // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] + // resource's CA certificate and CRLs. If this is omitted, CA certificates + // and CRLs will be published in PEM. + EncodingFormat encoding_format = 3 [(google.api.field_behavior) = OPTIONAL]; } // Defines controls over all certificate issuance within a @@ -455,9 +477,9 @@ message CaPool { // if the issuing // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] // expires before a - // [Certificate][google.cloud.security.privateca.v1.Certificate]'s requested - // maximum_lifetime, the effective lifetime will be explicitly truncated to - // match it. + // [Certificate][google.cloud.security.privateca.v1.Certificate] resource's + // requested maximum_lifetime, the effective lifetime will be explicitly + // truncated to match it. google.protobuf.Duration maximum_lifetime = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -770,6 +792,24 @@ message CertificateTemplate { } ]; + // Optional. The maximum lifetime allowed for issued + // [Certificates][google.cloud.security.privateca.v1.Certificate] that use + // this template. If the issuing + // [CaPool][google.cloud.security.privateca.v1.CaPool] resource's + // [IssuancePolicy][google.cloud.security.privateca.v1.CaPool.IssuancePolicy] + // specifies a + // [maximum_lifetime][google.cloud.security.privateca.v1.CaPool.IssuancePolicy.maximum_lifetime] + // the minimum of the two durations will be the maximum lifetime for issued + // [Certificates][google.cloud.security.privateca.v1.Certificate]. Note that + // if the issuing + // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] + // expires before a + // [Certificate][google.cloud.security.privateca.v1.Certificate]'s requested + // maximum_lifetime, the effective lifetime will be explicitly truncated + // to match it. + google.protobuf.Duration maximum_lifetime = 9 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. A set of X.509 values that will be applied to all issued // certificates that use this template. If the certificate request includes // conflicting values for the same properties, they will be overwritten by the @@ -1007,15 +1047,23 @@ message CertificateConfig { // These values are used to create the distinguished name and subject // alternative name fields in an X.509 certificate. message SubjectConfig { - // Required. Contains distinguished name fields such as the common name, + // Optional. Contains distinguished name fields such as the common name, // location and organization. - Subject subject = 1 [(google.api.field_behavior) = REQUIRED]; + Subject subject = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. The subject alternative name fields. SubjectAltNames subject_alt_name = 2 [(google.api.field_behavior) = OPTIONAL]; } + // A KeyId identifies a specific public key, usually by hashing the public + // key. + message KeyId { + // Required. The value of this KeyId encoded in lowercase hexadecimal. This + // is most likely the 160 bit SHA-1 hash of the public key. + string key_id = 1 [(google.api.field_behavior) = REQUIRED]; + } + // Required. Specifies some of the values in a certificate that are related to // the subject. SubjectConfig subject_config = 1 [(google.api.field_behavior) = REQUIRED]; @@ -1033,6 +1081,12 @@ message CertificateConfig { // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] // CSR. PublicKey public_key = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When specified this provides a custom SKI to be used in the + // certificate. This should only be used to maintain a SKI of an existing CA + // originally created outside CA service, which was not generated using method + // (1) described in RFC 5280 section 4.2.1.2. + KeyId subject_key_id = 4 [(google.api.field_behavior) = OPTIONAL]; } // A diff --git a/third_party/googleapis/google/cloud/security/privateca/v1/service.proto b/third_party/googleapis/google/cloud/security/privateca/v1/service.proto index b90a374d6..848e72e93 100644 --- a/third_party/googleapis/google/cloud/security/privateca/v1/service.proto +++ b/third_party/googleapis/google/cloud/security/privateca/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -301,9 +301,8 @@ service CertificateAuthorityService { // FetchCaCerts returns the current trust anchor for the // [CaPool][google.cloud.security.privateca.v1.CaPool]. This will include CA - // certificate chains for all ACTIVE - // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] - // resources in the [CaPool][google.cloud.security.privateca.v1.CaPool]. + // certificate chains for all certificate authorities in the ENABLED, + // DISABLED, or STAGED states. rpc FetchCaCerts(FetchCaCertsRequest) returns (FetchCaCertsResponse) { option (google.api.http) = { post: "/v1/{ca_pool=projects/*/locations/*/caPools/*}:fetchCaCerts" @@ -724,7 +723,7 @@ message DisableCertificateAuthorityRequest { // Optional. This field allows this CA to be disabled even if it's being // depended on by another resource. However, doing so may result in unintended - // and unrecoverable effects on any dependent resource(s) since the CA will + // and unrecoverable effects on any dependent resources since the CA will // no longer be able to issue certificates. bool ignore_dependent_resources = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -911,9 +910,9 @@ message DeleteCertificateAuthorityRequest { // been allowed. If you proceed, there will be no way to recover this CA. bool skip_grace_period = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. This field allows this ca to be deleted even if it's being + // Optional. This field allows this CA to be deleted even if it's being // depended on by another resource. However, doing so may result in unintended - // and unrecoverable effects on any dependent resource(s) since the CA will + // and unrecoverable effects on any dependent resources since the CA will // no longer be able to issue certificates. bool ignore_dependent_resources = 6 [(google.api.field_behavior) = OPTIONAL]; } @@ -1041,7 +1040,7 @@ message DeleteCaPoolRequest { // Optional. This field allows this pool to be deleted even if it's being // depended on by another resource. However, doing so may result in unintended - // and unrecoverable effects on any dependent resource(s) since the pool will + // and unrecoverable effects on any dependent resources since the pool will // no longer be able to issue certificates. bool ignore_dependent_resources = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -1083,10 +1082,9 @@ message FetchCaCertsResponse { repeated string certificates = 1; } - // The PEM encoded CA certificate chains of all - // [ACTIVE][CertificateAuthority.State.ACTIVE] - // [CertificateAuthority][google.cloud.security.privateca.v1.CertificateAuthority] - // resources in this [CaPool][google.cloud.security.privateca.v1.CaPool]. + // The PEM encoded CA certificate chains of all certificate authorities in + // this [CaPool][google.cloud.security.privateca.v1.CaPool] in the ENABLED, + // DISABLED, or STAGED states. repeated CertChain ca_certs = 1; } diff --git a/third_party/googleapis/google/cloud/security/privateca/v1beta1/resources.proto b/third_party/googleapis/google/cloud/security/privateca/v1beta1/resources.proto index 736ba6e70..58502051e 100644 --- a/third_party/googleapis/google/cloud/security/privateca/v1beta1/resources.proto +++ b/third_party/googleapis/google/cloud/security/privateca/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/security/privateca/v1beta1/service.proto b/third_party/googleapis/google/cloud/security/privateca/v1beta1/service.proto index b83b3daf8..9e4b1c03e 100644 --- a/third_party/googleapis/google/cloud/security/privateca/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/security/privateca/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/security/publicca/v1/BUILD.bazel b/third_party/googleapis/google/cloud/security/publicca/v1/BUILD.bazel new file mode 100644 index 000000000..ed625cb39 --- /dev/null +++ b/third_party/googleapis/google/cloud/security/publicca/v1/BUILD.bazel @@ -0,0 +1,384 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "publicca_proto", + srcs = [ + "resources.proto", + "service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + ], +) + +proto_library_with_info( + name = "publicca_proto_with_info", + deps = [ + ":publicca_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "publicca_java_proto", + deps = [":publicca_proto"], +) + +java_grpc_library( + name = "publicca_java_grpc", + srcs = [":publicca_proto"], + deps = [":publicca_java_proto"], +) + +java_gapic_library( + name = "publicca_java_gapic", + srcs = [":publicca_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "publicca_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + test_deps = [ + ":publicca_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":publicca_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "publicca_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.security.publicca.v1.PublicCertificateAuthorityServiceClientHttpJsonTest", + "com.google.cloud.security.publicca.v1.PublicCertificateAuthorityServiceClientTest", + ], + runtime_deps = [":publicca_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-security-publicca-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":publicca_java_gapic", + ":publicca_java_grpc", + ":publicca_java_proto", + ":publicca_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "publicca_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/security/publicca/apiv1/publiccapb", + protos = [":publicca_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "publicca_go_gapic", + srcs = [":publicca_proto_with_info"], + grpc_service_config = "publicca_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/security/publicca/apiv1;publicca", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + transport = "grpc+rest", + deps = [ + ":publicca_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-security-publicca-v1-go", + deps = [ + ":publicca_go_gapic", + ":publicca_go_gapic_srcjar-metadata.srcjar", + ":publicca_go_gapic_srcjar-snippets.srcjar", + ":publicca_go_gapic_srcjar-test.srcjar", + ":publicca_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "publicca_py_gapic", + srcs = [":publicca_proto"], + grpc_service_config = "publicca_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "publicca_py_gapic_test", + srcs = [ + "publicca_py_gapic_pytest.py", + "publicca_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":publicca_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "security-publicca-v1-py", + deps = [ + ":publicca_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "publicca_php_proto", + deps = [":publicca_proto"], +) + +php_gapic_library( + name = "publicca_php_gapic", + srcs = [":publicca_proto_with_info"], + grpc_service_config = "publicca_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + transport = "grpc+rest", + deps = [ + ":publicca_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-security-publicca-v1-php", + deps = [ + ":publicca_php_gapic", + ":publicca_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "publicca_nodejs_gapic", + package_name = "@google-cloud/publicca", + src = ":publicca_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "publicca_v1_grpc_service_config.json", + package = "google.cloud.security.publicca.v1", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "security-publicca-v1-nodejs", + deps = [ + ":publicca_nodejs_gapic", + ":publicca_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "publicca_ruby_proto", + deps = [":publicca_proto"], +) + +ruby_grpc_library( + name = "publicca_ruby_grpc", + srcs = [":publicca_proto"], + deps = [":publicca_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "publicca_ruby_gapic", + srcs = [":publicca_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-security-public_ca-v1", + "ruby-cloud-gem-namespace=Google::Cloud::Security::PublicCA::V1", + ], + grpc_service_config = "publicca_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + transport = "grpc+rest", + deps = [ + ":publicca_ruby_grpc", + ":publicca_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-security-publicca-v1-ruby", + deps = [ + ":publicca_ruby_gapic", + ":publicca_ruby_grpc", + ":publicca_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "publicca_csharp_proto", + extra_opts = [], + deps = [":publicca_proto"], +) + +csharp_grpc_library( + name = "publicca_csharp_grpc", + srcs = [":publicca_proto"], + deps = [":publicca_csharp_proto"], +) + +csharp_gapic_library( + name = "publicca_csharp_gapic", + srcs = [":publicca_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "publicca_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "publicca_v1.yaml", + transport = "grpc+rest", + deps = [ + ":publicca_csharp_grpc", + ":publicca_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-security-publicca-v1-csharp", + deps = [ + ":publicca_csharp_gapic", + ":publicca_csharp_grpc", + ":publicca_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "publicca_cc_proto", + deps = [":publicca_proto"], +) + +cc_grpc_library( + name = "publicca_cc_grpc", + srcs = [":publicca_proto"], + grpc_only = True, + deps = [":publicca_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/security/publicca/v1/publicca_v1.yaml b/third_party/googleapis/google/cloud/security/publicca/v1/publicca_v1.yaml new file mode 100644 index 000000000..9f04e11da --- /dev/null +++ b/third_party/googleapis/google/cloud/security/publicca/v1/publicca_v1.yaml @@ -0,0 +1,64 @@ +type: google.api.Service +config_version: 3 +name: publicca.googleapis.com +title: Public Certificate Authority API + +apis: +- name: google.cloud.security.publicca.v1.PublicCertificateAuthorityService + +documentation: + summary: |- + The Public Certificate Authority API may be used to create and manage ACME + external account binding keys associated with Google Trust Services' + publicly trusted certificate authority. + +authentication: + rules: + - selector: google.cloud.security.publicca.v1.PublicCertificateAuthorityService.CreateExternalAccountKey + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://cloud.google.com/certificate-manager/docs/getting-support + documentation_uri: https://cloud.google.com/certificate-manager/docs/public-ca + api_short_name: publicca + github_label: 'api: publicca' + doc_tag_prefix: publicca + organization: CLOUD + library_settings: + - version: google.cloud.security.publicca.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/certificate-manager/docs/reference/public-ca/rpc diff --git a/third_party/googleapis/google/cloud/security/publicca/v1/publicca_v1_grpc_service_config.json b/third_party/googleapis/google/cloud/security/publicca/v1/publicca_v1_grpc_service_config.json new file mode 100644 index 000000000..57503b94e --- /dev/null +++ b/third_party/googleapis/google/cloud/security/publicca/v1/publicca_v1_grpc_service_config.json @@ -0,0 +1,21 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.security.publicca.v1.PublicCertificateAuthorityService" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/third_party/googleapis/google/cloud/security/publicca/v1/resources.proto b/third_party/googleapis/google/cloud/security/publicca/v1/resources.proto new file mode 100644 index 000000000..4105f9653 --- /dev/null +++ b/third_party/googleapis/google/cloud/security/publicca/v1/resources.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.security.publicca.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Security.PublicCA.V1"; +option go_package = "cloud.google.com/go/security/publicca/apiv1/publiccapb;publiccapb"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.cloud.security.publicca.v1"; +option php_namespace = "Google\\Cloud\\Security\\PublicCA\\V1"; +option ruby_package = "Google::Cloud::Security::PublicCA::V1"; + +// A representation of an ExternalAccountKey used for [external account +// binding](https://tools.ietf.org/html/rfc8555#section-7.3.4) within ACME. +message ExternalAccountKey { + option (google.api.resource) = { + type: "publicca.googleapis.com/ExternalAccountKey" + pattern: "projects/{project}/locations/{location}/externalAccountKeys/{external_account_key}" + }; + + // Output only. Resource name. + // projects/{project}/locations/{location}/externalAccountKeys/{key_id} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Key ID. + // It is generated by the PublicCertificateAuthorityService + // when the ExternalAccountKey is created + string key_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Base64-URL-encoded HS256 key. + // It is generated by the PublicCertificateAuthorityService + // when the ExternalAccountKey is created + bytes b64_mac_key = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/security/publicca/v1/service.proto b/third_party/googleapis/google/cloud/security/publicca/v1/service.proto new file mode 100644 index 000000000..2a1eb741a --- /dev/null +++ b/third_party/googleapis/google/cloud/security/publicca/v1/service.proto @@ -0,0 +1,75 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.security.publicca.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/security/publicca/v1/resources.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Security.PublicCA.V1"; +option go_package = "cloud.google.com/go/security/publicca/apiv1/publiccapb;publiccapb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.security.publicca.v1"; +option php_namespace = "Google\\Cloud\\Security\\PublicCA\\V1"; +option ruby_package = "Google::Cloud::Security::PublicCA::V1"; + +// Manages the resources required for ACME [external account +// binding](https://tools.ietf.org/html/rfc8555#section-7.3.4) for +// the public certificate authority service. +service PublicCertificateAuthorityService { + option (google.api.default_host) = "publicca.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new + // [ExternalAccountKey][google.cloud.security.publicca.v1.ExternalAccountKey] + // bound to the project. + rpc CreateExternalAccountKey(CreateExternalAccountKeyRequest) + returns (ExternalAccountKey) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/externalAccountKeys" + body: "external_account_key" + }; + option (google.api.method_signature) = "parent,external_account_key"; + } +} + +// Creates a new +// [ExternalAccountKey][google.cloud.security.publicca.v1.ExternalAccountKey] in +// a given project. +message CreateExternalAccountKeyRequest { + // 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. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "publicca.googleapis.com/ExternalAccountKey" + } + ]; + + // 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. + ExternalAccountKey external_account_key = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/security/publicca/v1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/security/publicca/v1beta1/BUILD.bazel index 122a81cf8..f8a5a6498 100644 --- a/third_party/googleapis/google/cloud/security/publicca/v1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/security/publicca/v1beta1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "publicca_proto", @@ -43,6 +46,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -105,6 +109,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -152,6 +157,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -163,9 +169,7 @@ py_gapic_library( name = "publicca_py_gapic", srcs = [":publicca_proto"], grpc_service_config = "publicca_v1beta1_grpc_service_config.json", - opt_args = [ - "warehouse-package-name=google-cloud-public-ca", - ], + opt_args = ["warehouse-package-name=google-cloud-public-ca"], rest_numeric_enums = True, service_yaml = "publicca_v1beta1.yaml", transport = "grpc+rest", @@ -194,6 +198,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -214,7 +219,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "publicca_v1beta1.yaml", transport = "grpc+rest", - deps = [":publicca_php_proto"], + deps = [ + ":publicca_php_proto", + ], ) # Open Source Packages @@ -229,6 +236,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -259,6 +267,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -313,6 +322,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -323,6 +333,7 @@ load( csharp_proto_library( name = "publicca_csharp_proto", + extra_opts = [], deps = [":publicca_proto"], ) @@ -359,6 +370,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/security/publicca/v1beta1/resources.proto b/third_party/googleapis/google/cloud/security/publicca/v1beta1/resources.proto index ffe43b1b2..bba9fc594 100644 --- a/third_party/googleapis/google/cloud/security/publicca/v1beta1/resources.proto +++ b/third_party/googleapis/google/cloud/security/publicca/v1beta1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/security/publicca/v1beta1/service.proto b/third_party/googleapis/google/cloud/security/publicca/v1beta1/service.proto index b9090b08b..954463bcc 100644 --- a/third_party/googleapis/google/cloud/security/publicca/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/security/publicca/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/BUILD.bazel b/third_party/googleapis/google/cloud/securitycenter/BUILD.bazel index 671ed7ad9..d7182f469 100644 --- a/third_party/googleapis/google/cloud/securitycenter/BUILD.bazel +++ b/third_party/googleapis/google/cloud/securitycenter/BUILD.bazel @@ -22,7 +22,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-security_center", "ruby-cloud-env-prefix=SECURITY_CENTER", - "ruby-cloud-wrapper-of=v1:0.34;v1p1beta1:0.13", + "ruby-cloud-wrapper-of=v1:0.34;v1p1beta1:0.13;v2:0.0", "ruby-cloud-product-url=https://cloud.google.com/security-command-center", "ruby-cloud-api-id=securitycenter.googleapis.com", "ruby-cloud-api-shortname=securitycenter", diff --git a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto index 9487bc4d4..19dc660ce 100644 --- a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/billing_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/component_settings.proto b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/component_settings.proto index 90e4fbf8b..5ddb181e4 100644 --- a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/component_settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/component_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/detector.proto b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/detector.proto index f74a3155e..3cc6921bd 100644 --- a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/detector.proto +++ b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/detector.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/securitycenter_settings_service.proto b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/securitycenter_settings_service.proto index c7bb82b7d..7c17651e5 100644 --- a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/securitycenter_settings_service.proto +++ b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/securitycenter_settings_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/settings.proto b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/settings.proto index 39916d246..463385c2b 100644 --- a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto index 853c9d3db..d48477937 100644 --- a/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/settings/v1beta1/sink_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/BUILD.bazel b/third_party/googleapis/google/cloud/securitycenter/v1/BUILD.bazel index 2548ac5c1..f02d8d879 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/securitycenter/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "securitycenter_proto", @@ -24,8 +27,11 @@ proto_library( "access.proto", "application.proto", "asset.proto", + "attack_exposure.proto", + "attack_path.proto", "backup_disaster_recovery.proto", "bigquery_export.proto", + "cloud_armor.proto", "cloud_dlp_data_profile.proto", "cloud_dlp_inspection.proto", "compliance.proto", @@ -33,12 +39,16 @@ proto_library( "contact_details.proto", "container.proto", "database.proto", + "effective_event_threat_detection_custom_module.proto", "effective_security_health_analytics_custom_module.proto", + "event_threat_detection_custom_module.proto", + "event_threat_detection_custom_module_validation_errors.proto", "exfiltration.proto", "external_system.proto", "file.proto", "finding.proto", "folder.proto", + "group_membership.proto", "iam_binding.proto", "indicator.proto", "kernel_rootkit.proto", @@ -48,18 +58,24 @@ proto_library( "log_entry.proto", "mitre_attack.proto", "mute_config.proto", + "notebook.proto", "notification_config.proto", "notification_message.proto", - "organization_settings.proto", "org_policy.proto", + "organization_settings.proto", "process.proto", "resource.proto", + "resource_value_config.proto", "run_asset_discovery_response.proto", "security_health_analytics_custom_config.proto", "security_health_analytics_custom_module.proto", "security_marks.proto", + "security_posture.proto", "securitycenter_service.proto", + "simulation.proto", "source.proto", + "toxic_combination.proto", + "valued_resource.proto", "vulnerability.proto", ], deps = [ @@ -70,8 +86,8 @@ proto_library( "//google/iam/v1:iam_policy_proto", "//google/iam/v1:policy_proto", "//google/longrunning:operations_proto", - "//google/type:expr_proto", "//google/rpc:status_proto", + "//google/type:expr_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -91,6 +107,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -155,6 +172,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -171,8 +189,8 @@ go_proto_library( "//google/api:annotations_go_proto", "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", - "//google/type:expr_go_proto", "//google/rpc:status_go_proto", + "//google/type:expr_go_proto", ], ) @@ -212,6 +230,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -252,6 +271,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -272,7 +292,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "securitycenter_v1.yaml", transport = "grpc+rest", - deps = [":securitycenter_php_proto"], + deps = [ + ":securitycenter_php_proto", + ], ) # Open Source Packages @@ -287,6 +309,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -317,6 +340,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -371,6 +395,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -381,6 +406,7 @@ load( csharp_proto_library( name = "securitycenter_csharp_proto", + extra_opts = [], deps = [":securitycenter_proto"], ) @@ -417,6 +443,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/access.proto b/third_party/googleapis/google/cloud/securitycenter/v1/access.proto index b8b0e77f2..e5473989b 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/access.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/access.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/application.proto b/third_party/googleapis/google/cloud/securitycenter/v1/application.proto index d7a9ae474..4fd476cf8 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/application.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/application.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/asset.proto b/third_party/googleapis/google/cloud/securitycenter/v1/asset.proto index 01462175a..489fb3c31 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/asset.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -42,6 +42,8 @@ message Asset { pattern: "organizations/{organization}/assets/{asset}" pattern: "folders/{folder}/assets/{asset}" pattern: "projects/{project}/assets/{asset}" + plural: "assets" + singular: "asset" }; // Security Command Center managed properties. These properties are managed by diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/attack_exposure.proto b/third_party/googleapis/google/cloud/securitycenter/v1/attack_exposure.proto new file mode 100644 index 000000000..636393c9e --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/attack_exposure.proto @@ -0,0 +1,71 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AttackExposureProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// An attack exposure contains the results of an attack path simulation run. +message AttackExposure { + // This enum defines the various states an AttackExposure can be in. + enum State { + // The state is not specified. + STATE_UNSPECIFIED = 0; + + // The attack exposure has been calculated. + CALCULATED = 1; + + // The attack exposure has not been calculated. + NOT_CALCULATED = 2; + } + + // A number between 0 (inclusive) and infinity that represents how important + // this finding is to remediate. The higher the score, the more important it + // is to remediate. + double score = 1; + + // The most recent time the attack exposure was updated on this finding. + google.protobuf.Timestamp latest_calculation_time = 2; + + // The resource name of the attack path simulation result that contains the + // details regarding this attack exposure score. + // Example: `organizations/123/simulations/456/attackExposureResults/789` + string attack_exposure_result = 3; + + // What state this AttackExposure is in. This captures whether or not an + // attack exposure has been calculated or not. + State state = 4; + + // The number of high value resources that are exposed as a result of this + // finding. + int32 exposed_high_value_resources_count = 5; + + // The number of medium value resources that are exposed as a result of this + // finding. + int32 exposed_medium_value_resources_count = 6; + + // The number of high value resources that are exposed as a result of this + // finding. + int32 exposed_low_value_resources_count = 7; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/attack_path.proto b/third_party/googleapis/google/cloud/securitycenter/v1/attack_path.proto new file mode 100644 index 000000000..cf561417f --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/attack_path.proto @@ -0,0 +1,131 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AttackPathProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// A path that an attacker could take to reach an exposed resource. +message AttackPath { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/AttackPath" + pattern: "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}/attackPaths/{attack_path}" + plural: "attackPaths" + singular: "attackPath" + }; + + // Represents one point that an attacker passes through in this attack path. + message AttackPathNode { + // A finding that is associated with this node in the attack path. + message PathNodeAssociatedFinding { + // Canonical name of the associated findings. Example: + // `organizations/123/sources/456/findings/789` + string canonical_finding = 1; + + // The additional taxonomy group within findings from a given source. + string finding_category = 2; + + // Full resource name of the finding. + string name = 3; + } + + // The type of the incoming attack step node. + enum NodeType { + // Type not specified + NODE_TYPE_UNSPECIFIED = 0; + + // Incoming edge joined with AND + NODE_TYPE_AND = 1; + + // Incoming edge joined with OR + NODE_TYPE_OR = 2; + + // Incoming edge is defense + NODE_TYPE_DEFENSE = 3; + + // Incoming edge is attacker + NODE_TYPE_ATTACKER = 4; + } + + // Detailed steps the attack can take between path nodes. + message AttackStepNode { + // Unique ID for one Node + string uuid = 1; + + // Attack step type. Can be either AND, OR or DEFENSE + NodeType type = 2; + + // User friendly name of the attack step + string display_name = 3; + + // Attack step labels for metadata + map labels = 4; + + // Attack step description + string description = 5; + } + + // The name of the resource at this point in the attack path. + // The format of the name follows the Cloud Asset Inventory [resource + // name + // format](https://cloud.google.com/asset-inventory/docs/resource-name-format) + string resource = 1; + + // The [supported resource + // type](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + string resource_type = 2; + + // Human-readable name of this resource. + string display_name = 3; + + // The findings associated with this node in the attack path. + repeated PathNodeAssociatedFinding associated_findings = 4; + + // Unique id of the attack path node. + string uuid = 5; + + // A list of attack step nodes that exist in this attack path node. + repeated AttackStepNode attack_steps = 6; + } + + // Represents a connection between a source node and a destination node in + // this attack path. + message AttackPathEdge { + // The attack node uuid of the source node. + string source = 1; + + // The attack node uuid of the destination node. + string destination = 2; + } + + // The attack path name, for example, + // `organizations/12/simulation/34/valuedResources/56/attackPaths/78` + string name = 1; + + // A list of nodes that exist in this attack path. + repeated AttackPathNode path_nodes = 2; + + // A list of the edges between nodes in this attack path. + repeated AttackPathEdge edges = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/bigquery_export.proto b/third_party/googleapis/google/cloud/securitycenter/v1/bigquery_export.proto index 8299f05e4..ce19dd1c6 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/bigquery_export.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/bigquery_export.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,6 +35,8 @@ message BigQueryExport { pattern: "organizations/{organization}/bigQueryExports/{export}" pattern: "folders/{folder}/bigQueryExports/{export}" pattern: "projects/{project}/bigQueryExports/{export}" + plural: "bigQueryExports" + singular: "bigQueryExport" }; // The relative resource name of this export. See: diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/cloud_armor.proto b/third_party/googleapis/google/cloud/securitycenter/v1/cloud_armor.proto new file mode 100644 index 000000000..81b590e9a --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/cloud_armor.proto @@ -0,0 +1,114 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "CloudArmorProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Fields related to Google Cloud Armor findings. +message CloudArmor { + // Information about the [Google Cloud Armor security + // policy](https://cloud.google.com/armor/docs/security-policy-overview) + // relevant to the finding. + SecurityPolicy security_policy = 1; + + // Information about incoming requests evaluated by [Google Cloud Armor + // security + // policies](https://cloud.google.com/armor/docs/security-policy-overview). + Requests requests = 2; + + // Information about potential Layer 7 DDoS attacks identified by [Google + // Cloud Armor Adaptive + // Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview). + AdaptiveProtection adaptive_protection = 3; + + // Information about DDoS attack volume and classification. + Attack attack = 4; + + // Distinguish between volumetric & protocol DDoS attack and + // application layer attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS + // attacks, or "L_7" for Layer 7 DDoS attacks. + string threat_vector = 5; + + // Duration of attack from the start until the current moment (updated every 5 + // minutes). + google.protobuf.Duration duration = 6; +} + +// Information about the [Google Cloud Armor security +// policy](https://cloud.google.com/armor/docs/security-policy-overview) +// relevant to the finding. +message SecurityPolicy { + // The name of the Google Cloud Armor security policy, for example, + // "my-security-policy". + string name = 1; + + // The type of Google Cloud Armor security policy for example, 'backend + // security policy', 'edge security policy', 'network edge security policy', + // or 'always-on DDoS protection'. + string type = 2; + + // Whether or not the associated rule or policy is in preview mode. + bool preview = 3; +} + +// Information about the requests relevant to the finding. +message Requests { + // For 'Increasing deny ratio', the ratio is the denied traffic divided by the + // allowed traffic. For 'Allowed traffic spike', the ratio is the allowed + // traffic in the short term divided by allowed traffic in the long term. + double ratio = 1; + + // Allowed RPS (requests per second) in the short term. + int32 short_term_allowed = 2; + + // Allowed RPS (requests per second) over the long term. + int32 long_term_allowed = 3; + + // Denied RPS (requests per second) over the long term. + int32 long_term_denied = 4; +} + +// Information about [Google Cloud Armor Adaptive +// Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection). +message AdaptiveProtection { + // A score of 0 means that there is low confidence that the detected event is + // an actual attack. A score of 1 means that there is high confidence that the + // detected event is an attack. See the [Adaptive Protection + // documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) + // for further explanation. + double confidence = 1; +} + +// Information about DDoS attack volume and classification. +message Attack { + // Total PPS (packets per second) volume of attack. + int32 volume_pps = 1; + + // Total BPS (bytes per second) volume of attack. + int32 volume_bps = 2; + + // Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'. + string classification = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto b/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto index 8bb30eb50..a608cb740 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_inspection.proto b/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_inspection.proto index bfab2e934..1e24bfc85 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_inspection.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/cloud_dlp_inspection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/compliance.proto b/third_party/googleapis/google/cloud/securitycenter/v1/compliance.proto index 466808dfa..b19c0805c 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/compliance.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/compliance.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/connection.proto b/third_party/googleapis/google/cloud/securitycenter/v1/connection.proto index 43a211567..628a7060b 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/connection.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/contact_details.proto b/third_party/googleapis/google/cloud/securitycenter/v1/contact_details.proto index f2e9bf032..d05795298 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/contact_details.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/contact_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/container.proto b/third_party/googleapis/google/cloud/securitycenter/v1/container.proto index dab20aea3..a62db7efe 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/container.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/container.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; import "google/cloud/securitycenter/v1/label.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; @@ -41,4 +42,7 @@ message Container { // Container labels, as provided by the container runtime. repeated Label labels = 4; + + // The time that the container was created. + google.protobuf.Timestamp create_time = 5; } diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/database.proto b/third_party/googleapis/google/cloud/securitycenter/v1/database.proto index 63b5aaad1..359848b8e 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/database.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/database.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/effective_event_threat_detection_custom_module.proto b/third_party/googleapis/google/cloud/securitycenter/v1/effective_event_threat_detection_custom_module.proto new file mode 100644 index 000000000..4f1ee9fc6 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/effective_event_threat_detection_custom_module.proto @@ -0,0 +1,85 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "EffectiveEventThreatDetectionCustomModuleProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// An EffectiveEventThreatDetectionCustomModule is the representation of +// an Event Threat Detection custom module at a specified level of the +// resource hierarchy: organization, folder, or project. If a custom module is +// inherited from a parent organization or folder, the value of the +// `enablement_state` property in EffectiveEventThreatDetectionCustomModule is +// set to the value that is effective in the parent, instead of `INHERITED`. +// For example, if the module is enabled in a parent organization or folder, the +// effective `enablement_state` for the module in all child folders or projects +// is also `enabled`. EffectiveEventThreatDetectionCustomModule is read-only. +message EffectiveEventThreatDetectionCustomModule { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/EffectiveEventThreatDetectionCustomModule" + pattern: "organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}" + pattern: "folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}" + pattern: "projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}" + }; + + // The enablement state of the module. + enum EnablementState { + // Unspecified enablement state. + ENABLEMENT_STATE_UNSPECIFIED = 0; + + // The module is enabled at the given level. + ENABLED = 1; + + // The module is disabled at the given level. + DISABLED = 2; + } + + // Output only. The resource name of the effective ETD custom module. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. + // * `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. + // * `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Config for the effective module. + google.protobuf.Struct config = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective state of enablement for the module at the given + // level of the hierarchy. + EnablementState enablement_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type for the module. e.g. CONFIGURABLE_BAD_IP. + string type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The human readable name to be displayed for the module. + string display_name = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The description for the module. + string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/effective_security_health_analytics_custom_module.proto b/third_party/googleapis/google/cloud/securitycenter/v1/effective_security_health_analytics_custom_module.proto index 3c5cc8af3..0a236991c 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/effective_security_health_analytics_custom_module.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/effective_security_health_analytics_custom_module.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/event_threat_detection_custom_module.proto b/third_party/googleapis/google/cloud/securitycenter/v1/event_threat_detection_custom_module.proto new file mode 100644 index 000000000..a866d9cca --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/event_threat_detection_custom_module.proto @@ -0,0 +1,102 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "EventThreatDetectionCustomModuleProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents an instance of an Event Threat Detection custom module, +// including its full module name, display name, enablement state, and last +// updated time. You can create a custom module at the organization, folder, or +// project level. Custom modules that you create at the organization or folder +// level are inherited by child folders and projects. +message EventThreatDetectionCustomModule { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + pattern: "organizations/{organization}/eventThreatDetectionSettings/customModules/{module}" + pattern: "folders/{folder}/eventThreatDetectionSettings/customModules/{module}" + pattern: "projects/{project}/eventThreatDetectionSettings/customModules/{module}" + }; + + // The enablement state of the module. + enum EnablementState { + // Unspecified enablement state. + ENABLEMENT_STATE_UNSPECIFIED = 0; + + // The module is enabled at the given level. + ENABLED = 1; + + // The module is disabled at the given level. + DISABLED = 2; + + // When the enablement state is inherited. + INHERITED = 3; + } + + // Immutable. The resource name of the Event Threat Detection custom module. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. + // * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. + // * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`. + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Config for the module. For the resident module, its config value is defined + // at this level. For the inherited module, its config value is inherited from + // the ancestor module. + google.protobuf.Struct config = 2; + + // Output only. The closest ancestor module that this module inherits the + // enablement state from. The format is the same as the + // EventThreatDetectionCustomModule resource name. + string ancestor_module = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; + + // The state of enablement for the module at the given level of the hierarchy. + EnablementState enablement_state = 4; + + // Type for the module. e.g. CONFIGURABLE_BAD_IP. + string type = 5; + + // The human readable name to be displayed for the module. + string display_name = 6; + + // The description for the module. + string description = 7; + + // Output only. The time the module was last updated. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The editor the module was last updated by. + string last_editor = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/event_threat_detection_custom_module_validation_errors.proto b/third_party/googleapis/google/cloud/securitycenter/v1/event_threat_detection_custom_module_validation_errors.proto new file mode 100644 index 000000000..12065c988 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/event_threat_detection_custom_module_validation_errors.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "EventThreatDetectionCustomModuleValidationErrorsProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// A list of zero or more errors encountered while validating the uploaded +// configuration of an Event Threat Detection Custom Module. +message CustomModuleValidationErrors { + repeated CustomModuleValidationError errors = 1; +} + +// An error encountered while validating the uploaded configuration of an +// Event Threat Detection Custom Module. +message CustomModuleValidationError { + // A description of the error, suitable for human consumption. Required. + string description = 1; + + // The path, in RFC 8901 JSON Pointer format, to the field that failed + // validation. This may be left empty if no specific field is affected. + string field_path = 2; + + // The initial position of the error in the uploaded text version of the + // module. This field may be omitted if no specific position applies, or if + // one could not be computed. + optional Position start = 3; + + // The end position of the error in the uploaded text version of the + // module. This field may be omitted if no specific position applies, or if + // one could not be computed.. + optional Position end = 4; +} + +// A position in the uploaded text version of a module. +message Position { + int32 line_number = 1; + + int32 column_number = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/exfiltration.proto b/third_party/googleapis/google/cloud/securitycenter/v1/exfiltration.proto index 59779c9d5..a173851d7 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/exfiltration.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/exfiltration.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/external_system.proto b/third_party/googleapis/google/cloud/securitycenter/v1/external_system.proto index 0e23d6a67..bcc2456c6 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/external_system.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/external_system.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,8 +34,33 @@ message ExternalSystem { pattern: "organizations/{organization}/sources/{source}/findings/{finding}/externalSystems/{externalsystem}" pattern: "folders/{folder}/sources/{source}/findings/{finding}/externalSystems/{externalsystem}" pattern: "projects/{project}/sources/{source}/findings/{finding}/externalSystems/{externalsystem}" + plural: "externalSystems" + singular: "externalSystem" }; + // Information about the ticket, if any, that is being used to track the + // resolution of the issue that is identified by this finding. + message TicketInfo { + // The identifier of the ticket in the ticket system. + string id = 1; + + // The assignee of the ticket in the ticket system. + string assignee = 2; + + // The description of the ticket in the ticket system. + string description = 3; + + // The link to the ticket in the ticket system. + string uri = 4; + + // The latest status of the ticket, as reported by the ticket system. + string status = 5; + + // The time when the ticket was last updated, as reported by the ticket + // system. + google.protobuf.Timestamp update_time = 6; + } + // Full resource name of the external system, for example: // "organizations/1234/sources/5678/findings/123456/externalSystems/jira", // "folders/1234/sources/5678/findings/123456/externalSystems/jira", @@ -45,14 +70,34 @@ message ExternalSystem { // References primary/secondary etc assignees in the external system. repeated string assignees = 2; - // Identifier that's used to track the given finding in the external system. + // The identifier that's used to track the finding's corresponding case in the + // external system. string external_uid = 3; - // Most recent status of the corresponding finding's ticket/tracker in the - // external system. + // The most recent status of the finding's corresponding case, as reported by + // the external system. string status = 4; - // The most recent time when the corresponding finding's ticket/tracker was - // updated in the external system. + // The time when the case was last updated, as reported by the external + // system. google.protobuf.Timestamp external_system_update_time = 5; + + // The link to the finding's corresponding case in the external system. + string case_uri = 6; + + // The priority of the finding's corresponding case in the external system. + string case_priority = 7; + + // The SLA of the finding's corresponding case in the external system. + google.protobuf.Timestamp case_sla = 9; + + // The time when the case was created, as reported by the external system. + google.protobuf.Timestamp case_create_time = 10; + + // The time when the case was closed, as reported by the external system. + google.protobuf.Timestamp case_close_time = 11; + + // Information about the ticket, if any, that is being used to track the + // resolution of the issue that is identified by this finding. + TicketInfo ticket_info = 8; } diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/file.proto b/third_party/googleapis/google/cloud/securitycenter/v1/file.proto index c0b46eef3..189774a47 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/file.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/file.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/finding.proto b/third_party/googleapis/google/cloud/securitycenter/v1/finding.proto index 088c9fd3b..c1b15c089 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/finding.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,9 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/securitycenter/v1/access.proto"; import "google/cloud/securitycenter/v1/application.proto"; +import "google/cloud/securitycenter/v1/attack_exposure.proto"; import "google/cloud/securitycenter/v1/backup_disaster_recovery.proto"; +import "google/cloud/securitycenter/v1/cloud_armor.proto"; import "google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto"; import "google/cloud/securitycenter/v1/cloud_dlp_inspection.proto"; import "google/cloud/securitycenter/v1/compliance.proto"; @@ -31,6 +33,7 @@ import "google/cloud/securitycenter/v1/database.proto"; import "google/cloud/securitycenter/v1/exfiltration.proto"; import "google/cloud/securitycenter/v1/external_system.proto"; import "google/cloud/securitycenter/v1/file.proto"; +import "google/cloud/securitycenter/v1/group_membership.proto"; import "google/cloud/securitycenter/v1/iam_binding.proto"; import "google/cloud/securitycenter/v1/indicator.proto"; import "google/cloud/securitycenter/v1/kernel_rootkit.proto"; @@ -38,9 +41,12 @@ import "google/cloud/securitycenter/v1/kubernetes.proto"; import "google/cloud/securitycenter/v1/load_balancer.proto"; import "google/cloud/securitycenter/v1/log_entry.proto"; import "google/cloud/securitycenter/v1/mitre_attack.proto"; +import "google/cloud/securitycenter/v1/notebook.proto"; import "google/cloud/securitycenter/v1/org_policy.proto"; import "google/cloud/securitycenter/v1/process.proto"; import "google/cloud/securitycenter/v1/security_marks.proto"; +import "google/cloud/securitycenter/v1/security_posture.proto"; +import "google/cloud/securitycenter/v1/toxic_combination.proto"; import "google/cloud/securitycenter/v1/vulnerability.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; @@ -65,6 +71,8 @@ message Finding { pattern: "organizations/{organization}/sources/{source}/findings/{finding}" pattern: "folders/{folder}/sources/{source}/findings/{finding}" pattern: "projects/{project}/sources/{source}/findings/{finding}" + plural: "findings" + singular: "finding" }; // The state of the finding. @@ -176,6 +184,16 @@ message Finding { // Describes an error that prevents some SCC functionality. SCC_ERROR = 5; + + // Describes a potential security risk due to a change in the security + // posture. + POSTURE_VIOLATION = 6; + + // Describes a group of security issues that, when the issues + // occur together, represent a greater risk than when the issues occur + // independently. A group of such issues is referred to as a toxic + // combination. + TOXIC_COMBINATION = 7; } // The [relative resource @@ -352,6 +370,9 @@ message Finding { // Database associated with the finding. Database database = 44; + // The results of an attack path simulation relevant to this finding. + AttackExposure attack_exposure = 45; + // File associated with the finding. repeated File files = 46; @@ -374,9 +395,30 @@ message Finding { // Fields related to Backup and DR findings. BackupDisasterRecovery backup_disaster_recovery = 55; + // The security posture associated with the finding. + SecurityPosture security_posture = 56; + // Log entries that are relevant to the finding. repeated LogEntry log_entries = 57; // The load balancers associated with the finding. repeated LoadBalancer load_balancers = 58; + + // Fields related to Cloud Armor findings. + CloudArmor cloud_armor = 59; + + // Notebook associated with the finding. + Notebook notebook = 63; + + // Contains details about a group of security issues that, when the issues + // occur together, represent a greater risk than when the issues occur + // independently. A group of such issues is referred to as a toxic + // combination. + // This field cannot be updated. Its value is ignored in all update requests. + ToxicCombination toxic_combination = 64; + + // Contains details about groups of which this finding is a member. A group is + // a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + repeated GroupMembership group_memberships = 65; } diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/folder.proto b/third_party/googleapis/google/cloud/securitycenter/v1/folder.proto index e80915423..724a9a1bf 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/folder.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/folder.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/group_membership.proto b/third_party/googleapis/google/cloud/securitycenter/v1/group_membership.proto new file mode 100644 index 000000000..da364378a --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/group_membership.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "GroupMembershipProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Contains details about groups of which this finding is a member. A group is a +// collection of findings that are related in some way. +message GroupMembership { + // Possible types of groups. + enum GroupType { + // Default value. + GROUP_TYPE_UNSPECIFIED = 0; + + // Group represents a toxic combination. + GROUP_TYPE_TOXIC_COMBINATION = 1; + } + + // Type of group. + GroupType group_type = 1; + + // ID of the group. + string group_id = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/iam_binding.proto b/third_party/googleapis/google/cloud/securitycenter/v1/iam_binding.proto index 3aee0bc5f..4cb267734 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/iam_binding.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/iam_binding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/indicator.proto b/third_party/googleapis/google/cloud/securitycenter/v1/indicator.proto index bb9f22dad..080f94ea0 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/indicator.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/indicator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/kernel_rootkit.proto b/third_party/googleapis/google/cloud/securitycenter/v1/kernel_rootkit.proto index ee516db4a..b517b511d 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/kernel_rootkit.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/kernel_rootkit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/kubernetes.proto b/third_party/googleapis/google/cloud/securitycenter/v1/kubernetes.proto index cfe923304..6ed96e787 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/kubernetes.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/kubernetes.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/label.proto b/third_party/googleapis/google/cloud/securitycenter/v1/label.proto index 3a256e568..0b77887e1 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/label.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/mitre_attack.proto b/third_party/googleapis/google/cloud/securitycenter/v1/mitre_attack.proto index 56bf0c399..c9072542d 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/mitre_attack.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/mitre_attack.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -78,7 +78,7 @@ message MitreAttack { // MITRE ATT&CK techniques that can be referenced by SCC findings. // See: https://attack.mitre.org/techniques/enterprise/ - // Next ID: 59 + // Next ID: 63 enum Technique { // Unspecified value. TECHNIQUE_UNSPECIFIED = 0; @@ -107,6 +107,9 @@ message MitreAttack { // T1059.004 UNIX_SHELL = 7; + // T1059.006 + PYTHON = 59; + // T1069 PERMISSION_GROUPS_DISCOVERY = 18; @@ -254,8 +257,17 @@ message MitreAttack { // T1595.001 SCANNING_IP_BLOCKS = 2; + // T1609 + CONTAINER_ADMINISTRATION_COMMAND = 60; + + // T1611 + ESCAPE_TO_HOST = 61; + // T1613 CONTAINER_AND_RESOURCE_DISCOVERY = 57; + + // T1649 + STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES = 62; } // The MITRE ATT&CK tactic most closely represented by this finding, if any. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/mute_config.proto b/third_party/googleapis/google/cloud/securitycenter/v1/mute_config.proto index d2a8db684..ed82eca48 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/mute_config.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/mute_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,12 +36,20 @@ message MuteConfig { pattern: "organizations/{organization}/muteConfigs/{mute_config}" pattern: "folders/{folder}/muteConfigs/{mute_config}" pattern: "projects/{project}/muteConfigs/{mute_config}" + pattern: "organizations/{organization}/locations/{location}/muteConfigs/{mute_config}" + pattern: "folders/{folder}/locations/{location}/muteConfigs/{mute_config}" + pattern: "projects/{project}/locations/{location}/muteConfigs/{mute_config}" + plural: "muteConfigs" + singular: "muteConfig" }; // This field will be ignored if provided on config creation. Format - // "organizations/{organization}/muteConfigs/{mute_config}" - // "folders/{folder}/muteConfigs/{mute_config}" - // "projects/{project}/muteConfigs/{mute_config}" + // `organizations/{organization}/muteConfigs/{mute_config}` + // `folders/{folder}/muteConfigs/{mute_config}` + // `projects/{project}/muteConfigs/{mute_config}` + // `organizations/{organization}/locations/global/muteConfigs/{mute_config}` + // `folders/{folder}/locations/global/muteConfigs/{mute_config}` + // `projects/{project}/locations/global/muteConfigs/{mute_config}` string name = 1; // The human readable name to be displayed for the mute config. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/notebook.proto b/third_party/googleapis/google/cloud/securitycenter/v1/notebook.proto new file mode 100644 index 000000000..213eec6ed --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/notebook.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise +// notebook](https://cloud.google.com/colab/docs/introduction) file, that is +// associated with a finding. +message Notebook { + // The name of the notebook. + string name = 1; + + // The source notebook service, for example, "Colab Enterprise". + string service = 2; + + // The user ID of the latest author to modify the notebook. + string last_author = 3; + + // The most recent time the notebook was updated. + google.protobuf.Timestamp notebook_update_time = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/notification_config.proto b/third_party/googleapis/google/cloud/securitycenter/v1/notification_config.proto index de2a88b6b..d0e6e0caa 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/notification_config.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/notification_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,6 +41,8 @@ message NotificationConfig { pattern: "organizations/{organization}/notificationConfigs/{notification_config}" pattern: "folders/{folder}/notificationConfigs/{notification_config}" pattern: "projects/{project}/notificationConfigs/{notification_config}" + plural: "notificationConfigs" + singular: "notificationConfig" }; // The config for streaming-based notifications, which send each event as soon diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/notification_message.proto b/third_party/googleapis/google/cloud/securitycenter/v1/notification_message.proto index 59841d92e..745f41a61 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/notification_message.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/notification_message.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/organization_settings.proto b/third_party/googleapis/google/cloud/securitycenter/v1/organization_settings.proto index eaf8dbc9c..6466c205d 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/organization_settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/organization_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,6 +31,8 @@ message OrganizationSettings { option (google.api.resource) = { type: "securitycenter.googleapis.com/OrganizationSettings" pattern: "organizations/{organization}/organizationSettings" + plural: "organizationSettings" + singular: "organizationSettings" }; // The configuration used for Asset Discovery runs. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/process.proto b/third_party/googleapis/google/cloud/securitycenter/v1/process.proto index 5f960cc64..5db6c327b 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/process.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/process.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/resource.proto b/third_party/googleapis/google/cloud/securitycenter/v1/resource.proto index 626974ea9..6faee3a40 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/resource.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -55,4 +55,199 @@ message Resource { // ancestry. The first folder is the deepest nested folder, and the last // folder is the folder directly under the Organization. repeated Folder folders = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Indicates which cloud provider the resource resides in. + CloudProvider cloud_provider = 9; + + // Indicates which organization or tenant in the cloud provider the finding + // applies to. + string organization = 10; + + // The parent service or product from which the resource is provided, for + // example, GKE or SNS. + string service = 11; + + // The region or location of the service (if applicable). + string location = 12; + + oneof cloud_provider_metadata { + // The AWS metadata associated with the finding. + AwsMetadata aws_metadata = 16; + + // The Azure metadata associated with the finding. + AzureMetadata azure_metadata = 17; + } + + // Provides the path to the resource within the resource hierarchy. + ResourcePath resource_path = 18; + + // A string representation of the resource path. + // For Google Cloud, it has the format of + // `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` + // where there can be any number of folders. + // For AWS, it has the format of + // `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` + // where there can be any number of organizational units. + // For Azure, it has the format of + // `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` + // where there can be any number of management groups. + string resource_path_string = 19; +} + +// Enumeration representing the various cloud providers a finding's resource +// could reside in. +enum CloudProvider { + // The cloud provider is unspecified. + CLOUD_PROVIDER_UNSPECIFIED = 0; + + // The cloud provider is Google Cloud Platform. + GOOGLE_CLOUD_PLATFORM = 1; + + // The cloud provider is Amazon Web Services. + AMAZON_WEB_SERVICES = 2; + + // The cloud provider is Microsoft Azure. + MICROSOFT_AZURE = 3; +} + +// AWS metadata associated with the resource, only applicable if the finding's +// cloud provider is Amazon Web Services. +message AwsMetadata { + // An organization is a collection of accounts that are centrally managed + // together using consolidated billing, organized hierarchically with + // organizational units (OUs), and controlled with policies. + message AwsOrganization { + // The unique identifier (ID) for the organization. The regex pattern for an + // organization ID string requires "o-" followed by from 10 to 32 lowercase + // letters or digits. + string id = 1; + } + + // An Organizational Unit (OU) is a container of AWS accounts within a root of + // an organization. Policies that are attached to an OU apply to all accounts + // contained in that OU and in any child OUs. + message AwsOrganizationalUnit { + // The unique identifier (ID) associated with this OU. The regex pattern for + // an organizational unit ID string requires "ou-" followed by from 4 to 32 + // lowercase letters or digits (the ID of the root that contains the OU). + // This string is followed by a second "-" dash and from 8 to 32 additional + // lowercase letters or digits. For example, "ou-ab12-cd34ef56". + string id = 1; + + // The friendly name of the OU. + string name = 2; + } + + // An AWS account that is a member of an organization. + message AwsAccount { + // The unique identifier (ID) of the account, containing exactly 12 digits. + string id = 1; + + // The friendly name of this account. + string name = 2; + } + + // The AWS organization associated with the resource. + AwsOrganization organization = 2; + + // A list of AWS organizational units associated with the resource, ordered + // from lowest level (closest to the account) to highest level. + repeated AwsOrganizationalUnit organizational_units = 3; + + // The AWS account associated with the resource. + AwsAccount account = 4; +} + +// Azure metadata associated with the resource, only applicable if the finding's +// cloud provider is Microsoft Azure. +message AzureMetadata { + // Represents an Azure management group. + message AzureManagementGroup { + // The UUID of the Azure management group, for example, + // `20000000-0001-0000-0000-000000000000`. + string id = 1; + + // The display name of the Azure management group. + string display_name = 2; + } + + // Represents an Azure subscription. + message AzureSubscription { + // The UUID of the Azure subscription, for example, + // `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`. + string id = 1; + + // The display name of the Azure subscription. + string display_name = 2; + } + + // Represents an Azure resource group. + message AzureResourceGroup { + // The name of the Azure resource group. This is not a UUID. + string name = 1; + } + + // A list of Azure management groups associated with the resource, ordered + // from lowest level (closest to the subscription) to highest level. + repeated AzureManagementGroup management_groups = 4; + + // The Azure subscription associated with the resource. + AzureSubscription subscription = 5; + + // The Azure resource group associated with the resource. + AzureResourceGroup resource_group = 6; +} + +// Represents the path of resources leading up to the resource this finding is +// about. +message ResourcePath { + // The type of resource the node represents. + enum ResourcePathNodeType { + // Node type is unspecified. + RESOURCE_PATH_NODE_TYPE_UNSPECIFIED = 0; + + // The node represents a Google Cloud organization. + GCP_ORGANIZATION = 1; + + // The node represents a Google Cloud folder. + GCP_FOLDER = 2; + + // The node represents a Google Cloud project. + GCP_PROJECT = 3; + + // The node represents an AWS organization. + AWS_ORGANIZATION = 4; + + // The node represents an AWS organizational unit. + AWS_ORGANIZATIONAL_UNIT = 5; + + // The node represents an AWS account. + AWS_ACCOUNT = 6; + + // The node represents an Azure management group. + AZURE_MANAGEMENT_GROUP = 7; + + // The node represents an Azure subscription. + AZURE_SUBSCRIPTION = 8; + + // The node represents an Azure resource group. + AZURE_RESOURCE_GROUP = 9; + } + + // A node within the resource path. Each node represents a resource within the + // resource hierarchy. + message ResourcePathNode { + // The type of resource this node represents. + ResourcePathNodeType node_type = 1; + + // The ID of the resource this node represents. + string id = 2; + + // The display name of the resource this node represents. + string display_name = 3; + } + + // The list of nodes that make the up resource path, ordered from lowest + // level to highest level. + repeated ResourcePathNode nodes = 1; } diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/resource_value_config.proto b/third_party/googleapis/google/cloud/securitycenter/v1/resource_value_config.proto new file mode 100644 index 000000000..acf6681bd --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/resource_value_config.proto @@ -0,0 +1,123 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/securitycenter/v1/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ResourceValueConfigProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// A resource value configuration (RVC) is a mapping configuration of user's +// resources to resource values. Used in Attack path simulations. +message ResourceValueConfig { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/ResourceValueConfig" + pattern: "organizations/{organization}/resourceValueConfigs/{resource_value_config}" + plural: "resourceValueConfigs" + singular: "resourceValueConfig" + }; + + // Resource value mapping for Sensitive Data Protection findings. + // If any of these mappings have a resource value that is not unspecified, + // the resource_value field will be ignored when reading this configuration. + message SensitiveDataProtectionMapping { + // Resource value mapping for high-sensitivity Sensitive Data Protection + // findings + ResourceValue high_sensitivity_mapping = 1; + + // Resource value mapping for medium-sensitivity Sensitive Data Protection + // findings + ResourceValue medium_sensitivity_mapping = 2; + } + + // Name for the resource value configuration + string name = 1; + + // Required. Resource value level this expression represents + ResourceValue resource_value = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Tag values combined with `AND` to check against. + // Values in the form "tagValues/123" + // Example: `[ "tagValues/123", "tagValues/456", "tagValues/789" ]` + // https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing + repeated string tag_values = 3 [(google.api.field_behavior) = REQUIRED]; + + // Apply resource_value only to resources that match resource_type. + // resource_type will be checked with `AND` of other resources. + // For example, "storage.googleapis.com/Bucket" with resource_value "HIGH" + // will apply "HIGH" value only to "storage.googleapis.com/Bucket" resources. + string resource_type = 4; + + // Project or folder to scope this configuration to. + // For example, "project/456" would apply this configuration only to resources + // in "project/456" scope will be checked with `AND` of other + // resources. + string scope = 5; + + // List of resource labels to search for, evaluated with `AND`. + // For example, `"resource_labels_selector": {"key": "value", "env": "prod"}` + // will match resources with labels "key": "value" `AND` "env": + // "prod" + // https://cloud.google.com/resource-manager/docs/creating-managing-labels + map resource_labels_selector = 6; + + // Description of the resource value configuration. + string description = 7; + + // Output only. Timestamp this resource value configuration was created. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp this resource value configuration was last updated. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Cloud provider this configuration applies to + CloudProvider cloud_provider = 10; + + // A mapping of the sensitivity on Sensitive Data Protection finding to + // resource values. This mapping can only be used in combination with a + // resource_type that is related to BigQuery, e.g. + // "bigquery.googleapis.com/Dataset". + SensitiveDataProtectionMapping sensitive_data_protection_mapping = 11; +} + +// Value enum to map to a resource +enum ResourceValue { + // Unspecific value + RESOURCE_VALUE_UNSPECIFIED = 0; + + // High resource value + HIGH = 1; + + // Medium resource value + MEDIUM = 2; + + // Low resource value + LOW = 3; + + // No resource value, e.g. ignore these resources + NONE = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/run_asset_discovery_response.proto b/third_party/googleapis/google/cloud/securitycenter/v1/run_asset_discovery_response.proto index f331fb9ec..e4f3039f3 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/run_asset_discovery_response.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/run_asset_discovery_response.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_config.proto b/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_config.proto index 337f0a3bb..aafcad385 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_config.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_module.proto b/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_module.proto index 7e7343d06..e8a6e0eea 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_module.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/security_health_analytics_custom_module.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/security_marks.proto b/third_party/googleapis/google/cloud/securitycenter/v1/security_marks.proto index 74c641dea..9131cd84a 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/security_marks.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/security_marks.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/security_posture.proto b/third_party/googleapis/google/cloud/securitycenter/v1/security_posture.proto new file mode 100644 index 000000000..5367b1e90 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/security_posture.proto @@ -0,0 +1,76 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SecurityPostureProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents a posture that is deployed on Google Cloud by the +// Security Command Center Posture Management service. +// A posture contains one or more policy sets. A policy set is a +// group of policies that enforce a set of security rules on Google +// Cloud. +message SecurityPosture { + // The policy field that violates the deployed posture and its expected and + // detected values. + message PolicyDriftDetails { + // The name of the updated field, for example + // constraint.implementation.policy_rules[0].enforce + string field = 1; + + // The value of this field that was configured in a posture, for example, + // `true` or `allowed_values={"projects/29831892"}`. + string expected_value = 2; + + // The detected value that violates the deployed posture, for example, + // `false` or `allowed_values={"projects/22831892"}`. + string detected_value = 3; + } + + // Name of the posture, for example, `CIS-Posture`. + string name = 1; + + // The version of the posture, for example, `c7cfa2a8`. + string revision_id = 2; + + // The project, folder, or organization on which the posture is deployed, + // for example, `projects/{project_number}`. + string posture_deployment_resource = 3; + + // The name of the posture deployment, for example, + // `organizations/{org_id}/posturedeployments/{posture_deployment_id}`. + string posture_deployment = 4; + + // The name of the updated policy, for example, + // `projects/{project_id}/policies/{constraint_name}`. + string changed_policy = 5; + + // The name of the updated policyset, for example, `cis-policyset`. + string policy_set = 6; + + // The ID of the updated policy, for example, `compute-policy-1`. + string policy = 7; + + // The details about a change in an updated policy that violates the deployed + // posture. + repeated PolicyDriftDetails policy_drift_details = 8; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_service.proto b/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_service.proto index 11ae0a281..696875bae 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_service.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,19 +21,27 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/securitycenter/v1/asset.proto"; +import "google/cloud/securitycenter/v1/attack_path.proto"; import "google/cloud/securitycenter/v1/bigquery_export.proto"; +import "google/cloud/securitycenter/v1/effective_event_threat_detection_custom_module.proto"; import "google/cloud/securitycenter/v1/effective_security_health_analytics_custom_module.proto"; +import "google/cloud/securitycenter/v1/event_threat_detection_custom_module.proto"; +import "google/cloud/securitycenter/v1/event_threat_detection_custom_module_validation_errors.proto"; import "google/cloud/securitycenter/v1/external_system.proto"; import "google/cloud/securitycenter/v1/finding.proto"; import "google/cloud/securitycenter/v1/folder.proto"; import "google/cloud/securitycenter/v1/mute_config.proto"; import "google/cloud/securitycenter/v1/notification_config.proto"; import "google/cloud/securitycenter/v1/organization_settings.proto"; +import "google/cloud/securitycenter/v1/resource.proto"; +import "google/cloud/securitycenter/v1/resource_value_config.proto"; import "google/cloud/securitycenter/v1/run_asset_discovery_response.proto"; import "google/cloud/securitycenter/v1/security_health_analytics_custom_config.proto"; import "google/cloud/securitycenter/v1/security_health_analytics_custom_module.proto"; import "google/cloud/securitycenter/v1/security_marks.proto"; +import "google/cloud/securitycenter/v1/simulation.proto"; import "google/cloud/securitycenter/v1/source.proto"; +import "google/cloud/securitycenter/v1/valued_resource.proto"; import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/longrunning/operations.proto"; @@ -50,6 +58,24 @@ option java_multiple_files = true; option java_package = "com.google.cloud.securitycenter.v1"; option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; option ruby_package = "Google::Cloud::SecurityCenter::V1"; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/OrganizationLocation" + pattern: "organizations/{organization}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/FolderLocation" + pattern: "folders/{folder}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/OrganizationSimulation" + pattern: "organizations/{organization}/simulations/{simulation}" +}; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/EventThreatDetectionSettings" + pattern: "organizations/{organization}/eventThreatDetectionSettings" + pattern: "folders/{folder}/eventThreatDetectionSettings" + pattern: "projects/{project}/eventThreatDetectionSettings" +}; // V1 APIs for Security Center service. service SecurityCenter { @@ -128,14 +154,26 @@ service SecurityCenter { option (google.api.http) = { post: "/v1/{parent=organizations/*}/muteConfigs" body: "mute_config" + additional_bindings { + post: "/v1/{parent=organizations/*/locations/*}/muteConfigs" + body: "mute_config" + } additional_bindings { post: "/v1/{parent=folders/*}/muteConfigs" body: "mute_config" } + additional_bindings { + post: "/v1/{parent=folders/*/locations/*}/muteConfigs" + body: "mute_config" + } additional_bindings { post: "/v1/{parent=projects/*}/muteConfigs" body: "mute_config" } + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/muteConfigs" + body: "mute_config" + } }; option (google.api.method_signature) = "parent,mute_config"; option (google.api.method_signature) = "parent,mute_config,mute_config_id"; @@ -168,6 +206,15 @@ service SecurityCenter { delete: "/v1/{name=organizations/*/muteConfigs/*}" additional_bindings { delete: "/v1/{name=folders/*/muteConfigs/*}" } additional_bindings { delete: "/v1/{name=projects/*/muteConfigs/*}" } + additional_bindings { + delete: "/v1/{name=organizations/*/locations/*/muteConfigs/*}" + } + additional_bindings { + delete: "/v1/{name=folders/*/locations/*/muteConfigs/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/muteConfigs/*}" + } }; option (google.api.method_signature) = "name"; } @@ -205,6 +252,23 @@ service SecurityCenter { option (google.api.method_signature) = "name"; } + // Get the simulation by name or the latest simulation for the given + // organization. + rpc GetSimulation(GetSimulationRequest) returns (Simulation) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/simulations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Get the valued resource by name + rpc GetValuedResource(GetValuedResourceRequest) returns (ValuedResource) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/simulations/*/valuedResources/*}" + }; + option (google.api.method_signature) = "name"; + } + // Gets a BigQuery export. rpc GetBigQueryExport(GetBigQueryExportRequest) returns (BigQueryExport) { option (google.api.http) = { @@ -231,6 +295,15 @@ service SecurityCenter { get: "/v1/{name=organizations/*/muteConfigs/*}" additional_bindings { get: "/v1/{name=folders/*/muteConfigs/*}" } additional_bindings { get: "/v1/{name=projects/*/muteConfigs/*}" } + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/muteConfigs/*}" + } + additional_bindings { + get: "/v1/{name=folders/*/locations/*/muteConfigs/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/locations/*/muteConfigs/*}" + } }; option (google.api.method_signature) = "name"; } @@ -382,6 +455,15 @@ service SecurityCenter { get: "/v1/{parent=organizations/*}/muteConfigs" additional_bindings { get: "/v1/{parent=folders/*}/muteConfigs" } additional_bindings { get: "/v1/{parent=projects/*}/muteConfigs" } + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*/muteConfigs}" + } + additional_bindings { + get: "/v1/{parent=folders/*/locations/*/muteConfigs}" + } + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/muteConfigs}" + } }; option (google.api.method_signature) = "parent"; } @@ -585,6 +667,18 @@ service SecurityCenter { patch: "/v1/{mute_config.name=projects/*/muteConfigs/*}" body: "mute_config" } + additional_bindings { + patch: "/v1/{mute_config.name=organizations/*/locations/*/muteConfigs/*}" + body: "mute_config" + } + additional_bindings { + patch: "/v1/{mute_config.name=folders/*/locations/*/muteConfigs/*}" + body: "mute_config" + } + additional_bindings { + patch: "/v1/{mute_config.name=projects/*/locations/*/muteConfigs/*}" + body: "mute_config" + } }; option (google.api.method_signature) = "mute_config,update_mask"; } @@ -744,6 +838,251 @@ service SecurityCenter { }; option (google.api.method_signature) = "parent"; } + + // Creates a resident Event Threat Detection custom module at the scope of the + // given Resource Manager parent, and also creates inherited custom modules + // for all descendants of the given parent. These modules are enabled by + // default. + rpc CreateEventThreatDetectionCustomModule( + CreateEventThreatDetectionCustomModuleRequest) + returns (EventThreatDetectionCustomModule) { + option (google.api.http) = { + post: "/v1/{parent=organizations/*/eventThreatDetectionSettings}/customModules" + body: "event_threat_detection_custom_module" + additional_bindings { + post: "/v1/{parent=folders/*/eventThreatDetectionSettings}/customModules" + body: "event_threat_detection_custom_module" + } + additional_bindings { + post: "/v1/{parent=projects/*/eventThreatDetectionSettings}/customModules" + body: "event_threat_detection_custom_module" + } + }; + option (google.api.method_signature) = + "parent,event_threat_detection_custom_module"; + } + + // Deletes the specified Event Threat Detection custom module and all of its + // descendants in the Resource Manager hierarchy. This method is only + // supported for resident custom modules. + rpc DeleteEventThreatDetectionCustomModule( + DeleteEventThreatDetectionCustomModuleRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=organizations/*/eventThreatDetectionSettings/customModules/*}" + additional_bindings { + delete: "/v1/{name=folders/*/eventThreatDetectionSettings/customModules/*}" + } + additional_bindings { + delete: "/v1/{name=projects/*/eventThreatDetectionSettings/customModules/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets an Event Threat Detection custom module. + rpc GetEventThreatDetectionCustomModule( + GetEventThreatDetectionCustomModuleRequest) + returns (EventThreatDetectionCustomModule) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/eventThreatDetectionSettings/customModules/*}" + additional_bindings { + get: "/v1/{name=folders/*/eventThreatDetectionSettings/customModules/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/eventThreatDetectionSettings/customModules/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all resident Event Threat Detection custom modules under the + // given Resource Manager parent and its descendants. + rpc ListDescendantEventThreatDetectionCustomModules( + ListDescendantEventThreatDetectionCustomModulesRequest) + returns (ListDescendantEventThreatDetectionCustomModulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/eventThreatDetectionSettings}/customModules:listDescendant" + additional_bindings { + get: "/v1/{parent=folders/*/eventThreatDetectionSettings}/customModules:listDescendant" + } + additional_bindings { + get: "/v1/{parent=projects/*/eventThreatDetectionSettings}/customModules:listDescendant" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all Event Threat Detection custom modules for the given + // Resource Manager parent. This includes resident modules defined at the + // scope of the parent along with modules inherited from ancestors. + rpc ListEventThreatDetectionCustomModules( + ListEventThreatDetectionCustomModulesRequest) + returns (ListEventThreatDetectionCustomModulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/eventThreatDetectionSettings}/customModules" + additional_bindings { + get: "/v1/{parent=folders/*/eventThreatDetectionSettings}/customModules" + } + additional_bindings { + get: "/v1/{parent=projects/*/eventThreatDetectionSettings}/customModules" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates the Event Threat Detection custom module with the given name based + // on the given update mask. Updating the enablement state is supported for + // both resident and inherited modules (though resident modules cannot have an + // enablement state of "inherited"). Updating the display name or + // configuration of a module is supported for resident modules only. The type + // of a module cannot be changed. + rpc UpdateEventThreatDetectionCustomModule( + UpdateEventThreatDetectionCustomModuleRequest) + returns (EventThreatDetectionCustomModule) { + option (google.api.http) = { + patch: "/v1/{event_threat_detection_custom_module.name=organizations/*/eventThreatDetectionSettings/customModules/*}" + body: "event_threat_detection_custom_module" + additional_bindings { + patch: "/v1/{event_threat_detection_custom_module.name=folders/*/eventThreatDetectionSettings/customModules/*}" + body: "event_threat_detection_custom_module" + } + additional_bindings { + patch: "/v1/{event_threat_detection_custom_module.name=projects/*/eventThreatDetectionSettings/customModules/*}" + body: "event_threat_detection_custom_module" + } + }; + option (google.api.method_signature) = + "event_threat_detection_custom_module,update_mask"; + } + + // Validates the given Event Threat Detection custom module. + rpc ValidateEventThreatDetectionCustomModule( + ValidateEventThreatDetectionCustomModuleRequest) + returns (ValidateEventThreatDetectionCustomModuleResponse) { + option (google.api.http) = { + post: "/v1/{parent=organizations/*/eventThreatDetectionSettings}:validateCustomModule" + body: "*" + additional_bindings { + post: "/v1/{parent=folders/*/eventThreatDetectionSettings}:validateCustomModule" + body: "*" + } + additional_bindings { + post: "/v1/{parent=projects/*/eventThreatDetectionSettings}:validateCustomModule" + body: "*" + } + }; + } + + // Gets an effective Event Threat Detection custom module at the given level. + rpc GetEffectiveEventThreatDetectionCustomModule( + GetEffectiveEventThreatDetectionCustomModuleRequest) + returns (EffectiveEventThreatDetectionCustomModule) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/eventThreatDetectionSettings/effectiveCustomModules/*}" + additional_bindings { + get: "/v1/{name=folders/*/eventThreatDetectionSettings/effectiveCustomModules/*}" + } + additional_bindings { + get: "/v1/{name=projects/*/eventThreatDetectionSettings/effectiveCustomModules/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists all effective Event Threat Detection custom modules for the + // given parent. This includes resident modules defined at the scope of the + // parent along with modules inherited from its ancestors. + rpc ListEffectiveEventThreatDetectionCustomModules( + ListEffectiveEventThreatDetectionCustomModulesRequest) + returns (ListEffectiveEventThreatDetectionCustomModulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/eventThreatDetectionSettings}/effectiveCustomModules" + additional_bindings { + get: "/v1/{parent=folders/*/eventThreatDetectionSettings}/effectiveCustomModules" + } + additional_bindings { + get: "/v1/{parent=projects/*/eventThreatDetectionSettings}/effectiveCustomModules" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a ResourceValueConfig for an organization. Maps user's tags to + // difference resource values for use by the attack path simulation. + rpc BatchCreateResourceValueConfigs(BatchCreateResourceValueConfigsRequest) + returns (BatchCreateResourceValueConfigsResponse) { + option (google.api.http) = { + post: "/v1/{parent=organizations/*}/resourceValueConfigs:batchCreate" + body: "*" + }; + option (google.api.method_signature) = "parent,requests"; + } + + // Deletes a ResourceValueConfig. + rpc DeleteResourceValueConfig(DeleteResourceValueConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=organizations/*/resourceValueConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a ResourceValueConfig. + rpc GetResourceValueConfig(GetResourceValueConfigRequest) + returns (ResourceValueConfig) { + option (google.api.http) = { + get: "/v1/{name=organizations/*/resourceValueConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all ResourceValueConfigs. + rpc ListResourceValueConfigs(ListResourceValueConfigsRequest) + returns (ListResourceValueConfigsResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*}/resourceValueConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates an existing ResourceValueConfigs with new rules. + rpc UpdateResourceValueConfig(UpdateResourceValueConfigRequest) + returns (ResourceValueConfig) { + option (google.api.http) = { + patch: "/v1/{resource_value_config.name=organizations/*/resourceValueConfigs/*}" + body: "resource_value_config" + }; + option (google.api.method_signature) = "resource_value_config,update_mask"; + } + + // Lists the valued resources for a set of simulation results and filter. + rpc ListValuedResources(ListValuedResourcesRequest) + returns (ListValuedResourcesResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/simulations/*}/valuedResources" + additional_bindings { + get: "/v1/{parent=organizations/*/simulations/*/attackExposureResults/*}/valuedResources" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the attack paths for a set of simulation results or valued resources + // and filter. + rpc ListAttackPaths(ListAttackPathsRequest) + returns (ListAttackPathsResponse) { + option (google.api.http) = { + get: "/v1/{parent=organizations/*/simulations/*}/attackPaths" + additional_bindings { + get: "/v1/{parent=organizations/*/simulations/*/valuedResources/*}/attackPaths" + } + additional_bindings { + get: "/v1/{parent=organizations/*/simulations/*/attackExposureResults/*}/attackPaths" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for bulk findings update. @@ -754,8 +1093,8 @@ service SecurityCenter { // 2. Once a bulk operation is started, there is no way to stop it. message BulkMuteFindingsRequest { // Required. The parent, at which bulk action needs to be applied. Its format - // is "organizations/[organization_id]", "folders/[folder_id]", - // "projects/[project_id]". + // is `organizations/[organization_id]`, `folders/[folder_id]`, + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "*" } @@ -794,7 +1133,7 @@ message BulkMuteFindingsResponse {} // Request message for creating a finding. message CreateFindingRequest { // Required. Resource name of the new finding's parent. Its format should be - // "organizations/[organization_id]/sources/[source_id]". + // `organizations/[organization_id]/sources/[source_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -815,8 +1154,8 @@ message CreateFindingRequest { // Request message for creating a mute config. message CreateMuteConfigRequest { // Required. Resource name of the new mute configs's parent. Its format is - // "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -834,11 +1173,122 @@ message CreateMuteConfigRequest { string mute_config_id = 3 [(google.api.field_behavior) = REQUIRED]; } +// Request message to create single resource value config +message CreateResourceValueConfigRequest { + // Required. Resource name of the new ResourceValueConfig's parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; + + // Required. The resource value config being created. + ResourceValueConfig resource_value_config = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message to create multiple resource value configs +message BatchCreateResourceValueConfigsRequest { + // Required. Resource name of the new ResourceValueConfig's parent. + // The parent field in the CreateResourceValueConfigRequest + // messages must either be empty or match this field. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; + + // Required. The resource value configs to be created. + repeated CreateResourceValueConfigRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for BatchCreateResourceValueConfigs +message BatchCreateResourceValueConfigsResponse { + // The resource value configs created + repeated ResourceValueConfig resource_value_configs = 1; +} + +// Request message to delete resource value config +message DeleteResourceValueConfigRequest { + // Required. Name of the ResourceValueConfig to delete + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; +} + +// Request message to get resource value config +message GetResourceValueConfigRequest { + // Required. Name of the resource value config to retrieve. Its format is + // `organizations/{organization}/resourceValueConfigs/{config_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; +} + +// Request message to list resource value configs of a parent +message ListResourceValueConfigsRequest { + // Required. The parent, which owns the collection of resource value configs. + // Its format is + // `organizations/[organization_id]` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; + + // The number of results to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListResourceValueConfigs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListResourceValueConfigs` must match the call that provided the + // page token. + // + // page_size can be specified, and the new page_size will be used. + string page_token = 3; +} + +// Response message to list resource value configs +message ListResourceValueConfigsResponse { + // The resource value configs from the specified parent. + repeated ResourceValueConfig resource_value_configs = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is empty, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message to update resource value config +message UpdateResourceValueConfigRequest { + // Required. The resource value config being updated. + ResourceValueConfig resource_value_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} + // Request message for creating a notification config. message CreateNotificationConfigRequest { // Required. Resource name of the new notification config's parent. Its format - // is "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // is `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -862,9 +1312,9 @@ message CreateNotificationConfigRequest { // Request message for creating Security Health Analytics custom modules. message CreateSecurityHealthAnalyticsCustomModuleRequest { // Required. Resource name of the new custom module's parent. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings", - // "folders/{folder}/securityHealthAnalyticsSettings", or - // "projects/{project}/securityHealthAnalyticsSettings" + // `organizations/{organization}/securityHealthAnalyticsSettings`, + // `folders/{folder}/securityHealthAnalyticsSettings`, or + // `projects/{project}/securityHealthAnalyticsSettings` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -882,7 +1332,7 @@ message CreateSecurityHealthAnalyticsCustomModuleRequest { // Request message for creating a source. message CreateSourceRequest { // Required. Resource name of the new source's parent. Its format should be - // "organizations/[organization_id]". + // `organizations/[organization_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -898,9 +1348,12 @@ message CreateSourceRequest { // Request message for deleting a mute config. message DeleteMuteConfigRequest { // Required. Name of the mute config to delete. Its format is - // organizations/{organization}/muteConfigs/{config_id}, - // folders/{folder}/muteConfigs/{config_id}, or - // projects/{project}/muteConfigs/{config_id} + // `organizations/{organization}/muteConfigs/{config_id}`, + // `folders/{folder}/muteConfigs/{config_id}`, + // `projects/{project}/muteConfigs/{config_id}`, + // `organizations/{organization}/locations/global/muteConfigs/{config_id}`, + // `folders/{folder}/locations/global/muteConfigs/{config_id}`, or + // `projects/{project}/locations/global/muteConfigs/{config_id}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -912,9 +1365,9 @@ message DeleteMuteConfigRequest { // Request message for deleting a notification config. message DeleteNotificationConfigRequest { // Required. Name of the notification config to delete. Its format is - // "organizations/[organization_id]/notificationConfigs/[config_id]", - // "folders/[folder_id]/notificationConfigs/[config_id]", - // or "projects/[project_id]/notificationConfigs/[config_id]". + // `organizations/[organization_id]/notificationConfigs/[config_id]`, + // `folders/[folder_id]/notificationConfigs/[config_id]`, + // or `projects/[project_id]/notificationConfigs/[config_id]`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -926,10 +1379,10 @@ message DeleteNotificationConfigRequest { // Request message for deleting Security Health Analytics custom modules. message DeleteSecurityHealthAnalyticsCustomModuleRequest { // Required. Name of the custom module to delete. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}", - // "folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}", + // `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, + // `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, // or - // "projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}" + // `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -941,9 +1394,9 @@ message DeleteSecurityHealthAnalyticsCustomModuleRequest { // Request message for retrieving a BigQuery export. message GetBigQueryExportRequest { // Required. Name of the BigQuery export to retrieve. Its format is - // organizations/{organization}/bigQueryExports/{export_id}, - // folders/{folder}/bigQueryExports/{export_id}, or - // projects/{project}/bigQueryExports/{export_id} + // `organizations/{organization}/bigQueryExports/{export_id}`, + // `folders/{folder}/bigQueryExports/{export_id}`, or + // `projects/{project}/bigQueryExports/{export_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -955,9 +1408,12 @@ message GetBigQueryExportRequest { // Request message for retrieving a mute config. message GetMuteConfigRequest { // Required. Name of the mute config to retrieve. Its format is - // organizations/{organization}/muteConfigs/{config_id}, - // folders/{folder}/muteConfigs/{config_id}, or - // projects/{project}/muteConfigs/{config_id} + // `organizations/{organization}/muteConfigs/{config_id}`, + // `folders/{folder}/muteConfigs/{config_id}`, + // `projects/{project}/muteConfigs/{config_id}`, + // `organizations/{organization}/locations/global/muteConfigs/{config_id}`, + // `folders/{folder}/locations/global/muteConfigs/{config_id}`, or + // `projects/{project}/locations/global/muteConfigs/{config_id}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -969,9 +1425,9 @@ message GetMuteConfigRequest { // Request message for getting a notification config. message GetNotificationConfigRequest { // Required. Name of the notification config to get. Its format is - // "organizations/[organization_id]/notificationConfigs/[config_id]", - // "folders/[folder_id]/notificationConfigs/[config_id]", - // or "projects/[project_id]/notificationConfigs/[config_id]". + // `organizations/[organization_id]/notificationConfigs/[config_id]`, + // `folders/[folder_id]/notificationConfigs/[config_id]`, + // or `projects/[project_id]/notificationConfigs/[config_id]`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -983,7 +1439,7 @@ message GetNotificationConfigRequest { // Request message for getting organization settings. message GetOrganizationSettingsRequest { // Required. Name of the organization to get organization settings for. Its - // format is "organizations/[organization_id]/organizationSettings". + // format is `organizations/[organization_id]/organizationSettings`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -996,10 +1452,10 @@ message GetOrganizationSettingsRequest { // modules. message GetEffectiveSecurityHealthAnalyticsCustomModuleRequest { // Required. Name of the effective custom module to get. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}", - // "folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}", + // `organizations/{organization}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, + // `folders/{folder}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}`, // or - // "projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}" + // `projects/{project}/securityHealthAnalyticsSettings/effectiveCustomModules/{customModule}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1011,10 +1467,10 @@ message GetEffectiveSecurityHealthAnalyticsCustomModuleRequest { // Request message for getting Security Health Analytics custom modules. message GetSecurityHealthAnalyticsCustomModuleRequest { // Required. Name of the custom module to get. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}", - // "folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}", + // `organizations/{organization}/securityHealthAnalyticsSettings/customModules/{customModule}`, + // `folders/{folder}/securityHealthAnalyticsSettings/customModules/{customModule}`, // or - // "projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}" + // `projects/{project}/securityHealthAnalyticsSettings/customModules/{customModule}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1026,7 +1482,7 @@ message GetSecurityHealthAnalyticsCustomModuleRequest { // Request message for getting a source. message GetSourceRequest { // Required. Relative resource name of the source. Its format is - // "organizations/[organization_id]/source/[source_id]". + // `organizations/[organization_id]/source/[source_id]`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1038,8 +1494,8 @@ message GetSourceRequest { // Request message for grouping by assets. message GroupAssetsRequest { // Required. The name of the parent to group the assets by. Its format is - // "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1197,12 +1653,12 @@ message GroupAssetsResponse { // Request message for grouping by findings. message GroupFindingsRequest { // Required. Name of the source to groupBy. Its format is - // "organizations/[organization_id]/sources/[source_id]", - // folders/[folder_id]/sources/[source_id], or - // projects/[project_id]/sources/[source_id]. To groupBy across all sources + // `organizations/[organization_id]/sources/[source_id]`, + // `folders/[folder_id]/sources/[source_id]`, or + // `projects/[project_id]/sources/[source_id]`. To groupBy across all sources // provide a source_id of `-`. For example: - // organizations/{organization_id}/sources/-, folders/{folder_id}/sources/-, - // or projects/{project_id}/sources/- + // `organizations/{organization_id}/sources/-, folders/{folder_id}/sources/-`, + // or `projects/{project_id}/sources/-` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1275,14 +1731,6 @@ message GroupFindingsRequest { // (including `state_change`). The string value should follow SQL syntax: // comma separated list of fields. For example: "parent,resource_name". // - // The following fields are supported: - // - // * resource_name - // * category - // * state - // * parent - // * severity - // // The following fields are supported when compare_duration is set: // // * state_change @@ -1369,9 +1817,9 @@ message GroupResult { // modules. message ListDescendantSecurityHealthAnalyticsCustomModulesRequest { // Required. Name of parent to list descendant custom modules. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings", - // "folders/{folder}/securityHealthAnalyticsSettings", or - // "projects/{project}/securityHealthAnalyticsSettings" + // `organizations/{organization}/securityHealthAnalyticsSettings`, + // `folders/{folder}/securityHealthAnalyticsSettings`, or + // `projects/{project}/securityHealthAnalyticsSettings` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1399,12 +1847,154 @@ message ListDescendantSecurityHealthAnalyticsCustomModulesResponse { string next_page_token = 2; } +// Request message for listing the valued resources for a given simulation. +message ListValuedResourcesRequest { + // Required. Name of parent to list valued resources. + // + // Valid formats: + // `organizations/{organization}`, + // `organizations/{organization}/simulations/{simulation}` + // `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ValuedResource" + } + ]; + + // The filter expression that filters the valued resources in the response. + // Supported fields: + // + // * `resource_value` supports = + // * `resource_type` supports = + string filter = 2; + + // The value returned by the last `ListValuedResourcesResponse`; indicates + // that this is a continuation of a prior `ListValuedResources` call, and + // that the system should return the next page of data. + string page_token = 3; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 4; + + // Optional. The fields by which to order the valued resources response. + // + // Supported fields: + // + // * `exposed_score` + // + // * `resource_value` + // + // * `resource_type` + // + // * `resource` + // + // * `display_name` + // + // Values should be a comma separated list of fields. For example: + // `exposed_score,resource_value`. + // + // The default sorting order is descending. To specify ascending or descending + // order for a field, append a ` ASC` or a ` DESC` suffix, respectively; for + // example: `exposed_score DESC`. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for listing the valued resources for a given simulation. +message ListValuedResourcesResponse { + // The valued resources that the attack path simulation identified. + repeated ValuedResource valued_resources = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 2; + + // The estimated total number of results matching the query. + int32 total_size = 3; +} + +// Request message for listing the attack paths for a given simulation or valued +// resource. +message ListAttackPathsRequest { + // Required. Name of parent to list attack paths. + // + // Valid formats: + // `organizations/{organization}`, + // `organizations/{organization}/simulations/{simulation}` + // `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` + // `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/AttackPath" + } + ]; + + // The filter expression that filters the attack path in the response. + // Supported fields: + // + // * `valued_resources` supports = + string filter = 2; + + // The value returned by the last `ListAttackPathsResponse`; indicates + // that this is a continuation of a prior `ListAttackPaths` call, and + // that the system should return the next page of data. + string page_token = 3; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 4; +} + +// Response message for listing the attack paths for a given simulation or +// valued resource. +message ListAttackPathsResponse { + // The attack paths that the attack path simulation identified. + repeated AttackPath attack_paths = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 2; +} + +// Request message for getting simulation. +// Simulation name can include "latest" to retrieve the latest simulation +// For example, "organizations/123/simulations/latest" +message GetSimulationRequest { + // Required. The organization name or simulation name of this simulation + // + // Valid format: + // `organizations/{organization}/simulations/latest` + // `organizations/{organization}/simulations/{simulation}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Simulation" + } + ]; +} + +// Request message for getting a valued resource. +message GetValuedResourceRequest { + // Required. The name of this valued resource + // + // Valid format: + // `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/ValuedResource" + } + ]; +} + // Request message for listing mute configs at a given scope e.g. organization, // folder or project. message ListMuteConfigsRequest { // Required. The parent, which owns the collection of mute configs. Its format - // is "organizations/[organization_id]", "folders/[folder_id]", - // "projects/[project_id]". + // is `organizations/[organization_id]`, `folders/[folder_id]`, + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1472,9 +2062,9 @@ message ListNotificationConfigsResponse { // modules. message ListEffectiveSecurityHealthAnalyticsCustomModulesRequest { // Required. Name of parent to list effective custom modules. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings", - // "folders/{folder}/securityHealthAnalyticsSettings", or - // "projects/{project}/securityHealthAnalyticsSettings" + // `organizations/{organization}/securityHealthAnalyticsSettings`, + // `folders/{folder}/securityHealthAnalyticsSettings`, or + // `projects/{project}/securityHealthAnalyticsSettings` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1505,9 +2095,9 @@ message ListEffectiveSecurityHealthAnalyticsCustomModulesResponse { // Request message for listing Security Health Analytics custom modules. message ListSecurityHealthAnalyticsCustomModulesRequest { // Required. Name of parent to list custom modules. Its format is - // "organizations/{organization}/securityHealthAnalyticsSettings", - // "folders/{folder}/securityHealthAnalyticsSettings", or - // "projects/{project}/securityHealthAnalyticsSettings" + // `organizations/{organization}/securityHealthAnalyticsSettings`, + // `folders/{folder}/securityHealthAnalyticsSettings`, or + // `projects/{project}/securityHealthAnalyticsSettings` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1537,8 +2127,8 @@ message ListSecurityHealthAnalyticsCustomModulesResponse { // Request message for listing sources. message ListSourcesRequest { // Required. Resource name of the parent of sources to list. Its format should - // be "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // be `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1571,8 +2161,8 @@ message ListAssetsRequest { // Required. The name of the parent resource that contains the assets. The // value that you can specify on parent depends on the method in which you // specify parent. You can specify one of the following values: - // "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1762,12 +2352,12 @@ message ListAssetsResponse { // Request message for listing findings. message ListFindingsRequest { // Required. Name of the source the findings belong to. Its format is - // "organizations/[organization_id]/sources/[source_id], - // folders/[folder_id]/sources/[source_id], or - // projects/[project_id]/sources/[source_id]". To list across all sources + // `organizations/[organization_id]/sources/[source_id]`, + // `folders/[folder_id]/sources/[source_id]`, or + // `projects/[project_id]/sources/[source_id]`. To list across all sources // provide a source_id of `-`. For example: - // organizations/{organization_id}/sources/-, folders/{folder_id}/sources/- or - // projects/{projects_id}/sources/- + // `organizations/{organization_id}/sources/-`, + // `folders/{folder_id}/sources/-` or `projects/{projects_id}/sources/-` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1971,6 +2561,41 @@ message ListFindingsResponse { // The first folder is the deepest nested folder, and the last folder is // the folder directly under the Organization. repeated Folder folders = 7; + + // Indicates which cloud provider the finding is from. + CloudProvider cloud_provider = 9; + + // Indicates which organization / tenant the finding is for. + string organization = 10; + + // The service or resource provider associated with the resource. + string service = 11; + + // The region or location of the service (if applicable). + string location = 12; + + oneof cloud_provider_metadata { + // The AWS metadata associated with the finding. + AwsMetadata aws_metadata = 16; + + // The Azure metadata associated with the finding. + AzureMetadata azure_metadata = 17; + } + + // Provides the path to the resource within the resource hierarchy. + ResourcePath resource_path = 18; + + // A string representation of the resource path. + // For Google Cloud, it has the format of + // `org/{organization_id}/folder/{folder_id}/folder/{folder_id}/project/{project_id}` + // where there can be any number of folders. + // For AWS, it has the format of + // `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` + // where there can be any number of organizational units. + // For Azure, it has the format of + // `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` + // where there can be any number of management groups. + string resource_path_string = 19; } // Finding matching the search request. @@ -2002,9 +2627,9 @@ message SetFindingStateRequest { // Required. The [relative resource // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) // of the finding. Example: - // "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}", - // "folders/{folder_id}/sources/{source_id}/findings/{finding_id}", - // "projects/{project_id}/sources/{source_id}/findings/{finding_id}". + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, + // `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, + // `projects/{project_id}/sources/{source_id}/findings/{finding_id}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2025,9 +2650,9 @@ message SetMuteRequest { // Required. The [relative resource // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) // of the finding. Example: - // "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}", - // "folders/{folder_id}/sources/{source_id}/findings/{finding_id}", - // "projects/{project_id}/sources/{source_id}/findings/{finding_id}". + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, + // `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, + // `projects/{project_id}/sources/{source_id}/findings/{finding_id}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2042,7 +2667,7 @@ message SetMuteRequest { // Request message for running asset discovery for an organization. message RunAssetDiscoveryRequest { // Required. Name of the organization to run asset discovery for. Its format - // is "organizations/[organization_id]". + // is `organizations/[organization_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2179,7 +2804,9 @@ message UpdateSecurityHealthAnalyticsCustomModuleRequest { SecurityHealthAnalyticsCustomModule security_health_analytics_custom_module = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to update. + // The list of fields to be updated. The only fields that can be updated are + // `enablement_state` and `custom_config`. If empty or set to the wildcard + // value `*`, both `enablement_state` and `custom_config` are updated. google.protobuf.FieldMask update_mask = 2; } @@ -2216,8 +2843,8 @@ message UpdateSecurityMarksRequest { // Request message for creating a BigQuery export. message CreateBigQueryExportRequest { // Required. The name of the parent resource of the new BigQuery export. Its - // format is "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // format is `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2249,8 +2876,8 @@ message UpdateBigQueryExportRequest { // organization, folder or project. message ListBigQueryExportsRequest { // Required. The parent, which owns the collection of BigQuery exports. Its - // format is "organizations/[organization_id]", "folders/[folder_id]", - // "projects/[project_id]". + // format is `organizations/[organization_id]`, `folders/[folder_id]`, + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2284,9 +2911,9 @@ message ListBigQueryExportsResponse { // Request message for deleting a BigQuery export. message DeleteBigQueryExportRequest { // Required. The name of the BigQuery export to delete. Its format is - // organizations/{organization}/bigQueryExports/{export_id}, - // folders/{folder}/bigQueryExports/{export_id}, or - // projects/{project}/bigQueryExports/{export_id} + // `organizations/{organization}/bigQueryExports/{export_id}`, + // `folders/{folder}/bigQueryExports/{export_id}`, or + // `projects/{project}/bigQueryExports/{export_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -2294,3 +2921,251 @@ message DeleteBigQueryExportRequest { } ]; } + +// Request to create an Event Threat Detection custom module. +message CreateEventThreatDetectionCustomModuleRequest { + // Required. The new custom module's parent. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings`. + // * `folders/{folder}/eventThreatDetectionSettings`. + // * `projects/{project}/eventThreatDetectionSettings`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; + + // Required. The module to create. The + // event_threat_detection_custom_module.name will be ignored and server + // generated. + EventThreatDetectionCustomModule event_threat_detection_custom_module = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request to validate an Event Threat Detection custom module. +message ValidateEventThreatDetectionCustomModuleRequest { + // Required. Resource name of the parent to validate the Custom Module under. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings`. + // * `folders/{folder}/eventThreatDetectionSettings`. + // * `projects/{project}/eventThreatDetectionSettings`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; + + // Required. The raw text of the module's contents. Used to generate error + // messages. + string raw_text = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the module (e.g. CONFIGURABLE_BAD_IP). + string type = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Response to validating an Event Threat Detection custom module. +message ValidateEventThreatDetectionCustomModuleResponse { + // A list of errors returned by the validator. If the list is empty, there + // were no errors. + CustomModuleValidationErrors errors = 2; +} + +// Request to delete an Event Threat Detection custom module. +message DeleteEventThreatDetectionCustomModuleRequest { + // Required. Name of the custom module to delete. + // + // Its format is: + // + // * "organizations/{organization}/eventThreatDetectionSettings/customModules/{module}". + // * "folders/{folder}/eventThreatDetectionSettings/customModules/{module}". + // * "projects/{project}/eventThreatDetectionSettings/customModules/{module}". + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; +} + +// Request to get an Event Threat Detection custom module. +message GetEventThreatDetectionCustomModuleRequest { + // Required. Name of the custom module to get. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. + // * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. + // * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; +} + +// Request to list current and descendant resident Event Threat Detection custom +// modules. +message ListDescendantEventThreatDetectionCustomModulesRequest { + // Required. Name of the parent to list custom modules under. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings`. + // * `folders/{folder}/eventThreatDetectionSettings`. + // * `projects/{project}/eventThreatDetectionSettings`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; + + // A page token, received from a previous + // `ListDescendantEventThreatDetectionCustomModules` call. Provide this to + // retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListDescendantEventThreatDetectionCustomModules` must match the call that + // provided the page token. + string page_token = 2; + + // The maximum number of modules to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 3; +} + +// Response for listing current and descendant resident +// Event Threat Detection custom modules. +message ListDescendantEventThreatDetectionCustomModulesResponse { + // Custom modules belonging to the requested parent. + repeated EventThreatDetectionCustomModule + event_threat_detection_custom_modules = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request to list Event Threat Detection custom modules. +message ListEventThreatDetectionCustomModulesRequest { + // Required. Name of the parent to list custom modules under. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings`. + // * `folders/{folder}/eventThreatDetectionSettings`. + // * `projects/{project}/eventThreatDetectionSettings`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/EventThreatDetectionCustomModule" + } + ]; + + // A page token, received from a previous + // `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the + // subsequent page. + // + // When paginating, all other parameters provided to + // `ListEventThreatDetectionCustomModules` must match the call that provided + // the page token. + string page_token = 2; + + // The maximum number of modules to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 3; +} + +// Response for listing Event Threat Detection custom modules. +message ListEventThreatDetectionCustomModulesResponse { + // Custom modules belonging to the requested parent. + repeated EventThreatDetectionCustomModule + event_threat_detection_custom_modules = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request to update an Event Threat Detection custom module. +message UpdateEventThreatDetectionCustomModuleRequest { + // Required. The module being updated. + EventThreatDetectionCustomModule event_threat_detection_custom_module = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request to get an EffectiveEventThreatDetectionCustomModule. +message GetEffectiveEventThreatDetectionCustomModuleRequest { + // Required. The resource name of the effective Event Threat Detection custom + // module. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. + // * `folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. + // * `projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/EffectiveEventThreatDetectionCustomModule" + } + ]; +} + +// Request to list effective Event Threat Detection custom modules. +message ListEffectiveEventThreatDetectionCustomModulesRequest { + // Required. Name of the parent to list custom modules for. + // + // Its format is: + // + // * `organizations/{organization}/eventThreatDetectionSettings`. + // * `folders/{folder}/eventThreatDetectionSettings`. + // * `projects/{project}/eventThreatDetectionSettings`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/EffectiveEventThreatDetectionCustomModule" + } + ]; + + // A page token, received from a previous + // `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to + // retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListEffectiveEventThreatDetectionCustomModules` must match the call that + // provided the page token. + string page_token = 2; + + // The maximum number of modules to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 3; +} + +// Response for listing EffectiveEventThreatDetectionCustomModules. +message ListEffectiveEventThreatDetectionCustomModulesResponse { + // Effective custom modules belonging to the requested parent. + repeated EffectiveEventThreatDetectionCustomModule + effective_event_threat_detection_custom_modules = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_v1.yaml b/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_v1.yaml index a58023366..f45eb5207 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_v1.yaml +++ b/third_party/googleapis/google/cloud/securitycenter/v1/securitycenter_v1.yaml @@ -15,6 +15,7 @@ types: - name: google.cloud.securitycenter.v1.MuteConfig - name: google.cloud.securitycenter.v1.NotificationMessage - name: google.cloud.securitycenter.v1.Resource +- name: google.cloud.securitycenter.v1.ResourceValueConfig - name: google.cloud.securitycenter.v1.RunAssetDiscoveryResponse - name: google.cloud.securitycenter.v1.SecurityHealthAnalyticsCustomModule @@ -23,13 +24,6 @@ documentation: Security Command Center API provides access to temporal views of assets and findings within an organization. -backend: - rules: - - selector: 'google.cloud.securitycenter.v1.SecurityCenter.*' - deadline: 480.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - http: rules: - selector: google.longrunning.Operations.CancelOperation @@ -51,3 +45,12 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=709980&template=1322867 + documentation_uri: https://cloud.google.com/security-command-center/docs/reference/rest + api_short_name: securitycenter + github_label: 'api: securitycenter' + doc_tag_prefix: securitycenter + organization: CLOUD + proto_reference_documentation_uri: https://cloud.google.com/security-command-center/docs/reference/rest diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/simulation.proto b/third_party/googleapis/google/cloud/securitycenter/v1/simulation.proto new file mode 100644 index 000000000..d8f8e9724 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/simulation.proto @@ -0,0 +1,56 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/securitycenter/v1/resource.proto"; +import "google/cloud/securitycenter/v1/valued_resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SimulationProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Attack path simulation +message Simulation { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/Simulation" + pattern: "organizations/{organization}/simulations/{simulation}" + plural: "simulations" + singular: "simulation" + }; + + // Full resource name of the Simulation: + // `organizations/123/simulations/456` + string name = 1; + + // Output only. Time simulation was created + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Resource value configurations' metadata used in this simulation. Maximum of + // 100. + repeated ResourceValueConfigMetadata resource_value_configs_metadata = 3; + + // Indicates which cloud provider was used in this simulation. + CloudProvider cloud_provider = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/source.proto b/third_party/googleapis/google/cloud/securitycenter/v1/source.proto index a74fe2d1f..32d2293a3 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/source.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/toxic_combination.proto b/third_party/googleapis/google/cloud/securitycenter/v1/toxic_combination.proto new file mode 100644 index 000000000..46e765ab1 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/toxic_combination.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ToxicCombinationProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Contains details about a group of security issues that, when the issues +// occur together, represent a greater risk than when the issues occur +// independently. A group of such issues is referred to as a toxic combination. +message ToxicCombination { + // The + // [Attack exposure + // score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + double attack_exposure_score = 1; + + // List of resource names of findings associated with this toxic combination. + // For example, `organizations/123/sources/456/findings/789`. + repeated string related_findings = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/valued_resource.proto b/third_party/googleapis/google/cloud/securitycenter/v1/valued_resource.proto new file mode 100644 index 000000000..e78d98338 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v1/valued_resource.proto @@ -0,0 +1,88 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ValuedResourceProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// A resource that is determined to have value to a user's system +message ValuedResource { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/ValuedResource" + pattern: "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}" + plural: "valuedResources" + singular: "valuedResource" + }; + + // How valuable the resource is. + enum ResourceValue { + // The resource value isn't specified. + RESOURCE_VALUE_UNSPECIFIED = 0; + + // This is a low-value resource. + RESOURCE_VALUE_LOW = 1; + + // This is a medium-value resource. + RESOURCE_VALUE_MEDIUM = 2; + + // This is a high-value resource. + RESOURCE_VALUE_HIGH = 3; + } + + // Valued resource name, for example, + // e.g.: + // `organizations/123/simulations/456/valuedResources/789` + string name = 1; + + // The + // [full resource + // name](https://cloud.google.com/apis/design/resource_names#full_resource_name) + // of the valued resource. + string resource = 2; + + // The [resource + // type](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + // of the valued resource. + string resource_type = 3; + + // Human-readable name of the valued resource. + string display_name = 4; + + // How valuable this resource is. + ResourceValue resource_value = 5; + + // Exposed score for this valued resource. A value of 0 means no exposure was + // detected exposure. + double exposed_score = 6; + + // List of resource value configurations' metadata used to determine the value + // of this resource. Maximum of 100. + repeated ResourceValueConfigMetadata resource_value_configs_used = 7; +} + +// Metadata about a ResourceValueConfig. For example, id and name. +message ResourceValueConfigMetadata { + // Resource value config name + string name = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1/vulnerability.proto b/third_party/googleapis/google/cloud/securitycenter/v1/vulnerability.proto index 457e88c73..1464f757e 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1/vulnerability.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1/vulnerability.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.cloud.securitycenter.v1; +import "google/protobuf/timestamp.proto"; + option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; option java_multiple_files = true; @@ -29,11 +31,68 @@ message Vulnerability { // CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) Cve cve = 1; + + // The offending package is relevant to the finding. + Package offending_package = 2; + + // The fixed package is relevant to the finding. + Package fixed_package = 3; + + // The security bulletin is relevant to this finding. + SecurityBulletin security_bulletin = 4; } // CVE stands for Common Vulnerabilities and Exposures. -// More information: https://cve.mitre.org +// Information from the [CVE +// record](https://www.cve.org/ResourcesSupport/Glossary) that describes this +// vulnerability. message Cve { + // The possible values of impact of the vulnerability if it was to be + // exploited. + enum RiskRating { + // Invalid or empty value. + RISK_RATING_UNSPECIFIED = 0; + + // Exploitation would have little to no security impact. + LOW = 1; + + // Exploitation would enable attackers to perform activities, or could allow + // attackers to have a direct impact, but would require additional steps. + MEDIUM = 2; + + // Exploitation would enable attackers to have a notable direct impact + // without needing to overcome any major mitigating factors. + HIGH = 3; + + // Exploitation would fundamentally undermine the security of affected + // systems, enable actors to perform significant attacks with minimal + // effort, with little to no mitigating factors to overcome. + CRITICAL = 4; + } + + // The possible values of exploitation activity of the vulnerability in the + // wild. + enum ExploitationActivity { + // Invalid or empty value. + EXPLOITATION_ACTIVITY_UNSPECIFIED = 0; + + // Exploitation has been reported or confirmed to widely occur. + WIDE = 1; + + // Limited reported or confirmed exploitation activities. + CONFIRMED = 2; + + // Exploit is publicly available. + AVAILABLE = 3; + + // No known exploitation activity, but has a high potential for + // exploitation. + ANTICIPATED = 4; + + // No known exploitation activity. + NO_KNOWN = 5; + } + // The unique identifier for the vulnerability. e.g. CVE-2021-34527 string id = 1; @@ -47,6 +106,19 @@ message Cve { // Whether upstream fix is available for the CVE. bool upstream_fix_available = 4; + + // The potential impact of the vulnerability if it was to be exploited. + RiskRating impact = 5; + + // The exploitation activity of the vulnerability in the wild. + ExploitationActivity exploitation_activity = 6; + + // Whether or not the vulnerability has been observed in the wild. + bool observed_in_the_wild = 7; + + // Whether or not the vulnerability was zero day when the finding was + // published. + bool zero_day = 8; } // Additional Links @@ -214,3 +286,31 @@ message Cvssv3 { // component resulting from a successfully exploited vulnerability. Impact availability_impact = 12; } + +// Package is a generic definition of a package. +message Package { + // The name of the package where the vulnerability was detected. + string package_name = 1; + + // The CPE URI where the vulnerability was detected. + string cpe_uri = 2; + + // Type of package, for example, os, maven, or go. + string package_type = 3; + + // The version of the package. + string package_version = 4; +} + +// SecurityBulletin are notifications of vulnerabilities of Google products. +message SecurityBulletin { + // ID of the bulletin corresponding to the vulnerability. + string bulletin_id = 1; + + // Submission time of this Security Bulletin. + google.protobuf.Timestamp submission_time = 2; + + // This represents a version that the cluster receiving this notification + // should be upgraded to, based on its current version. For example, 1.15.0 + string suggested_upgrade_version = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/asset.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/asset.proto index 897925017..54922775e 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/asset.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/finding.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/finding.proto index 66609f3f2..3aca2c501 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/finding.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/organization_settings.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/organization_settings.proto index 3c9509ba9..dc8f3e526 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/organization_settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/organization_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto index dfda29a29..e78722fc5 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/security_marks.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/security_marks.proto index 5bae35479..98ffd6af1 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/security_marks.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/security_marks.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/securitycenter_service.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/securitycenter_service.proto index e45ac6df4..ac3a8a4fa 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/securitycenter_service.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/securitycenter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1beta1/source.proto b/third_party/googleapis/google/cloud/securitycenter/v1beta1/source.proto index d6fec9363..d20ba80c7 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1beta1/source.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1beta1/source.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/asset.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/asset.proto index df4a093f1..75be84054 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/asset.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/finding.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/finding.proto index f88034bb5..4d993ee8b 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/finding.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/folder.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/folder.proto index c94f2da69..d129f3642 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/folder.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/folder.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_config.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_config.proto index 87f2dbbc6..7c7fa5c11 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_config.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_config.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_message.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_message.proto index eb1c43a57..95f348348 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_message.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/notification_message.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/organization_settings.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/organization_settings.proto index b4d26c907..c4ca11bb8 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/organization_settings.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/organization_settings.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/resource.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/resource.proto index fd1ef2e26..1c3a6ec64 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/resource.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto index 96c4f1d14..c74d5f977 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/security_marks.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/security_marks.proto index 52762b5be..7885b5f7d 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/security_marks.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/security_marks.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/securitycenter_service.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/securitycenter_service.proto index b2fae10ee..e9a940db4 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/securitycenter_service.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/securitycenter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/source.proto b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/source.proto index bcbc5e62a..5e760e743 100644 --- a/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/source.proto +++ b/third_party/googleapis/google/cloud/securitycenter/v1p1beta1/source.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/BUILD.bazel b/third_party/googleapis/google/cloud/securitycenter/v2/BUILD.bazel new file mode 100644 index 000000000..ea708652d --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/BUILD.bazel @@ -0,0 +1,448 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "securitycenter_proto", + srcs = [ + "access.proto", + "application.proto", + "attack_exposure.proto", + "attack_path.proto", + "backup_disaster_recovery.proto", + "bigquery_export.proto", + "cloud_armor.proto", + "cloud_dlp_data_profile.proto", + "cloud_dlp_inspection.proto", + "compliance.proto", + "connection.proto", + "contact_details.proto", + "container.proto", + "database.proto", + "exfiltration.proto", + "external_system.proto", + "file.proto", + "finding.proto", + "folder.proto", + "group_membership.proto", + "iam_binding.proto", + "indicator.proto", + "kernel_rootkit.proto", + "kubernetes.proto", + "label.proto", + "load_balancer.proto", + "log_entry.proto", + "mitre_attack.proto", + "mute_config.proto", + "notebook.proto", + "notification_config.proto", + "notification_message.proto", + "org_policy.proto", + "process.proto", + "resource.proto", + "resource_value_config.proto", + "security_marks.proto", + "security_posture.proto", + "securitycenter_service.proto", + "simulation.proto", + "source.proto", + "toxic_combination.proto", + "valued_resource.proto", + "vulnerability.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/api:routing_proto", + "//google/iam/v1:iam_policy_proto", + "//google/iam/v1:policy_proto", + "//google/longrunning:operations_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:struct_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "securitycenter_proto_with_info", + deps = [ + ":securitycenter_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "securitycenter_java_proto", + deps = [":securitycenter_proto"], +) + +java_grpc_library( + name = "securitycenter_java_grpc", + srcs = [":securitycenter_proto"], + deps = [":securitycenter_java_proto"], +) + +java_gapic_library( + name = "securitycenter_java_gapic", + srcs = [":securitycenter_proto_with_info"], + gapic_yaml = None, + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + test_deps = [ + ":securitycenter_java_grpc", + "//google/iam/v1:iam_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":securitycenter_java_proto", + "//google/api:api_java_proto", + "//google/iam/v1:iam_java_proto", + ], +) + +java_gapic_test( + name = "securitycenter_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.securitycenter.v2.SecurityCenterClientHttpJsonTest", + "com.google.cloud.securitycenter.v2.SecurityCenterClientTest", + ], + runtime_deps = [":securitycenter_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-securitycenter-v2-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":securitycenter_java_gapic", + ":securitycenter_java_grpc", + ":securitycenter_java_proto", + ":securitycenter_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "securitycenter_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb", + protos = [":securitycenter_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "securitycenter_go_gapic", + srcs = [":securitycenter_proto_with_info"], + grpc_service_config = None, + importpath = "cloud.google.com/go/securitycenter/apiv2;securitycenter", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + transport = "grpc+rest", + deps = [ + ":securitycenter_go_proto", + "//google/iam/v1:iam_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + "@io_bazel_rules_go//proto/wkt:struct_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-securitycenter-v2-go", + deps = [ + ":securitycenter_go_gapic", + ":securitycenter_go_gapic_srcjar-metadata.srcjar", + ":securitycenter_go_gapic_srcjar-snippets.srcjar", + ":securitycenter_go_gapic_srcjar-test.srcjar", + ":securitycenter_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "securitycenter_py_gapic", + srcs = [":securitycenter_proto"], + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + transport = "grpc+rest", + deps = [ + "//google/iam/v1:iam_policy_py_proto", + ], +) + +py_test( + name = "securitycenter_py_gapic_test", + srcs = [ + "securitycenter_py_gapic_pytest.py", + "securitycenter_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":securitycenter_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "securitycenter-v2-py", + deps = [ + ":securitycenter_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "securitycenter_php_proto", + deps = [":securitycenter_proto"], +) + +php_gapic_library( + name = "securitycenter_php_gapic", + srcs = [":securitycenter_proto_with_info"], + grpc_service_config = None, + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + transport = "grpc+rest", + deps = [ + ":securitycenter_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-securitycenter-v2-php", + deps = [ + ":securitycenter_php_gapic", + ":securitycenter_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "securitycenter_nodejs_gapic", + package_name = "@google-cloud/securitycenter", + src = ":securitycenter_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = None, + package = "google.cloud.securitycenter.v2", + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "securitycenter-v2-nodejs", + deps = [ + ":securitycenter_nodejs_gapic", + ":securitycenter_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "securitycenter_ruby_proto", + deps = [":securitycenter_proto"], +) + +ruby_grpc_library( + name = "securitycenter_ruby_grpc", + srcs = [":securitycenter_proto"], + deps = [":securitycenter_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "securitycenter_ruby_gapic", + srcs = [":securitycenter_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-api-id=securitycenter.googleapis.com", + "ruby-cloud-api-shortname=securitycenter", + "ruby-cloud-env-prefix=SECURITY_CENTER", + "ruby-cloud-gem-name=google-cloud-security_center-v2", + "ruby-cloud-product-url=https://cloud.google.com/security-command-center", + ], + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + transport = "grpc+rest", + deps = [ + ":securitycenter_ruby_grpc", + ":securitycenter_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-securitycenter-v2-ruby", + deps = [ + ":securitycenter_ruby_gapic", + ":securitycenter_ruby_grpc", + ":securitycenter_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "securitycenter_csharp_proto", + deps = [":securitycenter_proto"], +) + +csharp_grpc_library( + name = "securitycenter_csharp_grpc", + srcs = [":securitycenter_proto"], + deps = [":securitycenter_csharp_proto"], +) + +csharp_gapic_library( + name = "securitycenter_csharp_gapic", + srcs = [":securitycenter_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = None, + rest_numeric_enums = True, + service_yaml = "securitycenter_v2.yaml", + transport = "grpc+rest", + deps = [ + ":securitycenter_csharp_grpc", + ":securitycenter_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-securitycenter-v2-csharp", + deps = [ + ":securitycenter_csharp_gapic", + ":securitycenter_csharp_grpc", + ":securitycenter_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "securitycenter_cc_proto", + deps = [":securitycenter_proto"], +) + +cc_grpc_library( + name = "securitycenter_cc_grpc", + srcs = [":securitycenter_proto"], + grpc_only = True, + deps = [":securitycenter_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/access.proto b/third_party/googleapis/google/cloud/securitycenter/v2/access.proto new file mode 100644 index 000000000..82ccb3e41 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/access.proto @@ -0,0 +1,111 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AccessProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents an access event. +message Access { + // Associated email, such as "foo@google.com". + // + // The email address of the authenticated user or a service account acting on + // behalf of a third party principal making the request. For third party + // identity callers, the `principal_subject` field is populated instead of + // this field. For privacy reasons, the principal email address is sometimes + // redacted. For more information, see [Caller identities in audit + // logs](https://cloud.google.com/logging/docs/audit#user-id). + string principal_email = 1; + + // Caller's IP address, such as "1.1.1.1". + string caller_ip = 2; + + // The caller IP's geolocation, which identifies where the call came from. + Geolocation caller_ip_geo = 3; + + // Type of user agent associated with the finding. For example, an operating + // system shell or an embedded or standalone application. + string user_agent_family = 4; + + // The caller's user agent string associated with the finding. + string user_agent = 5; + + // This is the API service that the service account made a call to, e.g. + // "iam.googleapis.com" + string service_name = 6; + + // The method that the service account called, e.g. "SetIamPolicy". + string method_name = 7; + + // A string that represents the principal_subject that is associated with the + // identity. Unlike `principal_email`, `principal_subject` supports principals + // that aren't associated with email addresses, such as third party + // principals. For most identities, the format is + // `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`. + // Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD, + // still use the legacy format `serviceAccount:{identity pool + // name}[{subject}]`. + string principal_subject = 8; + + // The name of the service account key that was used to create or exchange + // credentials when authenticating the service account that made the request. + // This is a scheme-less URI full resource name. For example: + // + // "//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}". + // + string service_account_key_name = 9; + + // The identity delegation history of an authenticated service account that + // made the request. The `serviceAccountDelegationInfo[]` object contains + // information about the real authorities that try to access Google Cloud + // resources by delegating on a service account. When multiple authorities are + // present, they are guaranteed to be sorted based on the original ordering of + // the identity delegation events. + repeated ServiceAccountDelegationInfo service_account_delegation_info = 10; + + // A string that represents a username. The username provided depends on the + // type of the finding and is likely not an IAM principal. For example, this + // can be a system username if the finding is related to a virtual machine, or + // it can be an application login username. + string user_name = 11; +} + +// Identity delegation history of an authenticated service account. +message ServiceAccountDelegationInfo { + // The email address of a Google account. + string principal_email = 1; + + // A string representing the principal_subject associated with the identity. + // As compared to `principal_email`, supports principals that aren't + // associated with email addresses, such as third party principals. For most + // identities, the format will be `principal://iam.googleapis.com/{identity + // pool name}/subjects/{subject}` except for some GKE identities + // (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy + // format `serviceAccount:{identity pool name}[{subject}]` + string principal_subject = 2; +} + +// Represents a geographical location for a given access. +message Geolocation { + // A CLDR. + string region_code = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/application.proto b/third_party/googleapis/google/cloud/securitycenter/v2/application.proto new file mode 100644 index 000000000..b687b6c74 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/application.proto @@ -0,0 +1,36 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ApplicationProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents an application associated with a finding. +message Application { + // The base URI that identifies the network location of the application in + // which the vulnerability was detected. For example, `http://example.com`. + string base_uri = 1; + + // The full URI with payload that could be used to reproduce the + // vulnerability. For example, `http://example.com?p=aMmYgI6H`. + string full_uri = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/attack_exposure.proto b/third_party/googleapis/google/cloud/securitycenter/v2/attack_exposure.proto new file mode 100644 index 000000000..8e39ee703 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/attack_exposure.proto @@ -0,0 +1,72 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AttackExposureProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// An attack exposure contains the results of an attack path simulation run. +message AttackExposure { + // This enum defines the various states an AttackExposure can be in. + enum State { + // The state is not specified. + STATE_UNSPECIFIED = 0; + + // The attack exposure has been calculated. + CALCULATED = 1; + + // The attack exposure has not been calculated. + NOT_CALCULATED = 2; + } + + // A number between 0 (inclusive) and infinity that represents how important + // this finding is to remediate. The higher the score, the more important it + // is to remediate. + double score = 1; + + // The most recent time the attack exposure was updated on this finding. + google.protobuf.Timestamp latest_calculation_time = 2; + + // The resource name of the attack path simulation result that contains the + // details regarding this attack exposure score. + // Example: organizations/123/simulations/456/attackExposureResults/789 + string attack_exposure_result = 3; + + // Output only. What state this AttackExposure is in. This captures whether or + // not an attack exposure has been calculated or not. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The number of high value resources that are exposed as a result of this + // finding. + int32 exposed_high_value_resources_count = 5; + + // The number of medium value resources that are exposed as a result of this + // finding. + int32 exposed_medium_value_resources_count = 6; + + // The number of high value resources that are exposed as a result of this + // finding. + int32 exposed_low_value_resources_count = 7; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/attack_path.proto b/third_party/googleapis/google/cloud/securitycenter/v2/attack_path.proto new file mode 100644 index 000000000..b41641b0e --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/attack_path.proto @@ -0,0 +1,132 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AttackPathProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// A path that an attacker could take to reach an exposed resource. +message AttackPath { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/AttackPath" + pattern: "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}/attackPaths/{attack_path}" + pattern: "organizations/{organization}/locations/{location}/simulations/{simulation}/valuedResources/{valued_resource}/attackPaths/{attack_path}" + plural: "attackPaths" + singular: "attackPath" + }; + + // Represents one point that an attacker passes through in this attack path. + message AttackPathNode { + // A finding that is associated with this node in the attack path. + message PathNodeAssociatedFinding { + // Canonical name of the associated findings. Example: + // organizations/123/sources/456/findings/789 + string canonical_finding = 1; + + // The additional taxonomy group within findings from a given source. + string finding_category = 2; + + // Full resource name of the finding. + string name = 3; + } + + // The type of the incoming attack step node. + enum NodeType { + // Type not specified + NODE_TYPE_UNSPECIFIED = 0; + + // Incoming edge joined with AND + NODE_TYPE_AND = 1; + + // Incoming edge joined with OR + NODE_TYPE_OR = 2; + + // Incoming edge is defense + NODE_TYPE_DEFENSE = 3; + + // Incoming edge is attacker + NODE_TYPE_ATTACKER = 4; + } + + // Detailed steps the attack can take between path nodes. + message AttackStepNode { + // Unique ID for one Node + string uuid = 1; + + // Attack step type. Can be either AND, OR or DEFENSE + NodeType type = 2; + + // User friendly name of the attack step + string display_name = 3; + + // Attack step labels for metadata + map labels = 4; + + // Attack step description + string description = 5; + } + + // The name of the resource at this point in the attack path. + // The format of the name follows the Cloud Asset Inventory [resource + // name + // format]("https://cloud.google.com/asset-inventory/docs/resource-name-format") + string resource = 1; + + // The [supported resource + // type](https://cloud.google.com/asset-inventory/docs/supported-asset-types") + string resource_type = 2; + + // Human-readable name of this resource. + string display_name = 3; + + // The findings associated with this node in the attack path. + repeated PathNodeAssociatedFinding associated_findings = 4; + + // Unique id of the attack path node. + string uuid = 5; + + // A list of attack step nodes that exist in this attack path node. + repeated AttackStepNode attack_steps = 6; + } + + // Represents a connection between a source node and a destination node in + // this attack path. + message AttackPathEdge { + // The attack node uuid of the source node. + string source = 1; + + // The attack node uuid of the destination node. + string destination = 2; + } + + // The attack path name, for example, + // `organizations/12/simulations/34/valuedResources/56/attackPaths/78` + string name = 1; + + // A list of nodes that exist in this attack path. + repeated AttackPathNode path_nodes = 2; + + // A list of the edges between nodes in this attack path. + repeated AttackPathEdge edges = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/backup_disaster_recovery.proto b/third_party/googleapis/google/cloud/securitycenter/v2/backup_disaster_recovery.proto new file mode 100644 index 000000000..d239b68b3 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/backup_disaster_recovery.proto @@ -0,0 +1,88 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupDisasterRecoveryProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Information related to Google Cloud Backup and DR Service findings. +message BackupDisasterRecovery { + // The name of a Backup and DR template which comprises one or more backup + // policies. See the [Backup and DR + // documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) + // for more information. For example, `snap-ov`. + string backup_template = 1; + + // The names of Backup and DR policies that are associated with a template + // and that define when to run a backup, how frequently to run a backup, and + // how long to retain the backup image. For example, `onvaults`. + repeated string policies = 2; + + // The name of a Backup and DR host, which is managed by the backup and + // recovery appliance and known to the management console. The host can be of + // type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file + // system, etc.), vCenter, or an ESX server. See the [Backup and DR + // documentation on + // hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) + // for more information. For example, `centos7-01`. + string host = 3; + + // The names of Backup and DR applications. An application is a VM, database, + // or file system on a managed host monitored by a backup and recovery + // appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, + // `centos7-01-vol02`. + repeated string applications = 4; + + // The name of the Backup and DR storage pool that the backup and recovery + // appliance is storing data in. The storage pool could be of type Cloud, + // Primary, Snapshot, or OnVault. See the [Backup and DR documentation on + // storage + // pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). + // For example, `DiskPoolOne`. + string storage_pool = 5; + + // The names of Backup and DR advanced policy options of a policy applying to + // an application. See the [Backup and DR documentation on policy + // options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). + // For example, `skipofflineappsincongrp, nounmap`. + repeated string policy_options = 6; + + // The name of the Backup and DR resource profile that specifies the storage + // media for backups of application and VM data. See the [Backup and DR + // documentation on + // profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). + // For example, `GCP`. + string profile = 7; + + // The name of the Backup and DR appliance that captures, moves, and manages + // the lifecycle of backup data. For example, `backup-server-57137`. + string appliance = 8; + + // The backup type of the Backup and DR image. + // For example, `Snapshot`, `Remote Snapshot`, `OnVault`. + string backup_type = 9; + + // The timestamp at which the Backup and DR backup was created. + google.protobuf.Timestamp backup_create_time = 10; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/bigquery_export.proto b/third_party/googleapis/google/cloud/securitycenter/v2/bigquery_export.proto new file mode 100644 index 000000000..961d5ead3 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/bigquery_export.proto @@ -0,0 +1,107 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "BigQueryExportProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Configures how to deliver Findings to BigQuery Instance. +message BigQueryExport { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/BigQueryExport" + pattern: "organizations/{organization}/locations/{location}/bigQueryExports/{export}" + pattern: "folders/{folder}/locations/{location}/bigQueryExports/{export}" + pattern: "projects/{project}/locations/{location}/bigQueryExports/{export}" + plural: "bigQueryExports" + singular: "bigQueryExport" + }; + + // The relative resource name of this export. See: + // https://cloud.google.com/apis/design/resource_names#relative_resource_name. + // The following list shows some examples: + // + // + + // `organizations/{organization_id}/locations/{location_id}/bigQueryExports/{export_id}` + // + `folders/{folder_id}/locations/{location_id}/bigQueryExports/{export_id}` + // + + // `projects/{project_id}/locations/{location_id}/bigQueryExports/{export_id}` + // + // This field is provided in responses, and is ignored when provided in create + // requests. + string name = 1; + + // The description of the export (max of 1024 characters). + string description = 2; + + // Expression that defines the filter to apply across create/update events + // of findings. The expression is a list of zero or more restrictions combined + // via logical operators `AND` and `OR`. Parentheses are supported, and `OR` + // has higher precedence than `AND`. + // + // Restrictions have the form ` ` and may have a + // `-` character in front of them to indicate negation. The fields map to + // those defined in the corresponding resource. + // + // The supported operators are: + // + // * `=` for all value types. + // * `>`, `<`, `>=`, `<=` for integer values. + // * `:`, meaning substring matching, for strings. + // + // The supported value types are: + // + // * string literals in quotes. + // * integer literals without quotes. + // * boolean literals `true` and `false` without quotes. + string filter = 3; + + // The dataset to write findings' updates to. Its format is + // "projects/[project_id]/datasets/[bigquery_dataset_id]". + // BigQuery Dataset unique ID must contain only letters (a-z, A-Z), numbers + // (0-9), or underscores (_). + string dataset = 4; + + // Output only. The time at which the BigQuery export was created. + // This field is set by the server and will be ignored if provided on export + // on creation. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time at which the BigQuery export was updated. + // This field is set by the server and will be ignored if provided on export + // creation or update. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the user who last edited the BigQuery export. + // This field is set by the server and will be ignored if provided on export + // creation or update. + string most_recent_editor = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The service account that needs permission to create table and + // upload data to the BigQuery dataset. + string principal = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/cloud_armor.proto b/third_party/googleapis/google/cloud/securitycenter/v2/cloud_armor.proto new file mode 100644 index 000000000..19c6b66c1 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/cloud_armor.proto @@ -0,0 +1,114 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/protobuf/duration.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "CloudArmorProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Fields related to Google Cloud Armor findings. +message CloudArmor { + // Information about the [Google Cloud Armor security + // policy](https://cloud.google.com/armor/docs/security-policy-overview) + // relevant to the finding. + SecurityPolicy security_policy = 1; + + // Information about incoming requests evaluated by [Google Cloud Armor + // security + // policies](https://cloud.google.com/armor/docs/security-policy-overview). + Requests requests = 2; + + // Information about potential Layer 7 DDoS attacks identified by [Google + // Cloud Armor Adaptive + // Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview). + AdaptiveProtection adaptive_protection = 3; + + // Information about DDoS attack volume and classification. + Attack attack = 4; + + // Distinguish between volumetric & protocol DDoS attack and + // application layer attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS + // attacks, or "L_7" for Layer 7 DDoS attacks. + string threat_vector = 5; + + // Duration of attack from the start until the current moment (updated every 5 + // minutes). + google.protobuf.Duration duration = 6; +} + +// Information about the [Google Cloud Armor security +// policy](https://cloud.google.com/armor/docs/security-policy-overview) +// relevant to the finding. +message SecurityPolicy { + // The name of the Google Cloud Armor security policy, for example, + // "my-security-policy". + string name = 1; + + // The type of Google Cloud Armor security policy for example, 'backend + // security policy', 'edge security policy', 'network edge security policy', + // or 'always-on DDoS protection'. + string type = 2; + + // Whether or not the associated rule or policy is in preview mode. + bool preview = 3; +} + +// Information about the requests relevant to the finding. +message Requests { + // For 'Increasing deny ratio', the ratio is the denied traffic divided by the + // allowed traffic. For 'Allowed traffic spike', the ratio is the allowed + // traffic in the short term divided by allowed traffic in the long term. + double ratio = 1; + + // Allowed RPS (requests per second) in the short term. + int32 short_term_allowed = 2; + + // Allowed RPS (requests per second) over the long term. + int32 long_term_allowed = 3; + + // Denied RPS (requests per second) over the long term. + int32 long_term_denied = 4; +} + +// Information about [Google Cloud Armor Adaptive +// Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection). +message AdaptiveProtection { + // A score of 0 means that there is low confidence that the detected event is + // an actual attack. A score of 1 means that there is high confidence that the + // detected event is an attack. See the [Adaptive Protection + // documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) + // for further explanation. + double confidence = 1; +} + +// Information about DDoS attack volume and classification. +message Attack { + // Total PPS (packets per second) volume of attack. + int32 volume_pps = 1; + + // Total BPS (bytes per second) volume of attack. + int32 volume_bps = 2; + + // Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'. + string classification = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/cloud_dlp_data_profile.proto b/third_party/googleapis/google/cloud/securitycenter/v2/cloud_dlp_data_profile.proto new file mode 100644 index 000000000..2d5919ace --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/cloud_dlp_data_profile.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "CloudDlpDataProfileProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; +option (google.api.resource_definition) = { + type: "dlp.googleapis.com/TableDataProfile" + pattern: "projects/{project}/tableProfiles/{table_profile}" + pattern: "projects/{project}/locations/{location}/tableProfiles/{table_profile}" +}; + +// The [data profile](https://cloud.google.com/dlp/docs/data-profiles) +// associated with the finding. +message CloudDlpDataProfile { + // Parents for configurations that produce data profile findings. + enum ParentType { + // Unspecified parent type. + PARENT_TYPE_UNSPECIFIED = 0; + + // Organization-level configurations. + ORGANIZATION = 1; + + // Project-level configurations. + PROJECT = 2; + } + + // Name of the data profile, for example, + // `projects/123/locations/europe/tableProfiles/8383929`. + string data_profile = 1 [(google.api.resource_reference) = { + type: "dlp.googleapis.com/TableDataProfile" + }]; + + // The resource hierarchy level at which the data profile was generated. + ParentType parent_type = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/cloud_dlp_inspection.proto b/third_party/googleapis/google/cloud/securitycenter/v2/cloud_dlp_inspection.proto new file mode 100644 index 000000000..00a88ee1b --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/cloud_dlp_inspection.proto @@ -0,0 +1,54 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "CloudDlpInspectionProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; +option (google.api.resource_definition) = { + type: "dlp.googleapis.com/DlpJob" + pattern: "projects/{project}/dlpJobs/{dlp_job}" + pattern: "projects/{project}/locations/{location}/dlpJobs/{dlp_job}" +}; + +// Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection +// job](https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced +// the finding. +message CloudDlpInspection { + // Name of the inspection job, for example, + // `projects/123/locations/europe/dlpJobs/i-8383929`. + string inspect_job = 1 + [(google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }]; + + // The type of information (or + // *[infoType](https://cloud.google.com/dlp/docs/infotypes-reference)*) found, + // for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`. + string info_type = 2; + + // The number of times Cloud DLP found this infoType within this job + // and resource. + int64 info_type_count = 3; + + // Whether Cloud DLP scanned the complete resource or a sampled subset. + bool full_scan = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/compliance.proto b/third_party/googleapis/google/cloud/securitycenter/v2/compliance.proto new file mode 100644 index 000000000..3e0703692 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/compliance.proto @@ -0,0 +1,39 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ComplianceProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Contains compliance information about a security standard indicating unmet +// recommendations. +message Compliance { + // Industry-wide compliance standards or benchmarks, such as CIS, PCI, and + // OWASP. + string standard = 1; + + // Version of the standard or benchmark, for example, 1.1 + string version = 2; + + // Policies within the standard or benchmark, for example, A.12.4.1 + repeated string ids = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/connection.proto b/third_party/googleapis/google/cloud/securitycenter/v2/connection.proto new file mode 100644 index 000000000..ce2ab6a30 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/connection.proto @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ConnectionProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Contains information about the IP connection associated with the finding. +message Connection { + // IANA Internet Protocol Number such as TCP(6) and UDP(17). + enum Protocol { + // Unspecified protocol (not HOPOPT). + PROTOCOL_UNSPECIFIED = 0; + + // Internet Control Message Protocol. + ICMP = 1; + + // Transmission Control Protocol. + TCP = 6; + + // User Datagram Protocol. + UDP = 17; + + // Generic Routing Encapsulation. + GRE = 47; + + // Encap Security Payload. + ESP = 50; + } + + // Destination IP address. Not present for sockets that are listening and not + // connected. + string destination_ip = 1; + + // Destination port. Not present for sockets that are listening and not + // connected. + int32 destination_port = 2; + + // Source IP address. + string source_ip = 3; + + // Source port. + int32 source_port = 4; + + // IANA Internet Protocol Number such as TCP(6) and UDP(17). + Protocol protocol = 5; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/contact_details.proto b/third_party/googleapis/google/cloud/securitycenter/v2/contact_details.proto new file mode 100644 index 000000000..5ca1a4a04 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/contact_details.proto @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ContactDetailsProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Details about specific contacts +message ContactDetails { + // A list of contacts + repeated Contact contacts = 1; +} + +// The email address of a contact. +message Contact { + // An email address. For example, "`person123@company.com`". + string email = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/container.proto b/third_party/googleapis/google/cloud/securitycenter/v2/container.proto new file mode 100644 index 000000000..faa047abd --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/container.proto @@ -0,0 +1,48 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/cloud/securitycenter/v2/label.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ContainerProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Container associated with the finding. +message Container { + // Name of the container. + string name = 1; + + // Container image URI provided when configuring a pod or container. This + // string can identify a container image version using mutable tags. + string uri = 2; + + // Optional container image ID, if provided by the container runtime. Uniquely + // identifies the container image launched using a container image digest. + string image_id = 3; + + // Container labels, as provided by the container runtime. + repeated Label labels = 4; + + // The time that the container was created. + google.protobuf.Timestamp create_time = 5; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/database.proto b/third_party/googleapis/google/cloud/securitycenter/v2/database.proto new file mode 100644 index 000000000..e2034bec6 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/database.proto @@ -0,0 +1,63 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "DatabaseProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents database access information, such as queries. A database may be a +// sub-resource of an instance (as in the case of Cloud SQL instances or Cloud +// Spanner instances), or the database instance itself. Some database resources +// might not have the [full resource +// name](https://google.aip.dev/122#full-resource-names) populated because these +// resource types, such as Cloud SQL databases, are not yet supported by Cloud +// Asset Inventory. In these cases only the display name is provided. +message Database { + // Some database resources may not have the [full resource + // name](https://google.aip.dev/122#full-resource-names) populated because + // these resource types are not yet supported by Cloud Asset Inventory (e.g. + // Cloud SQL databases). In these cases only the display name will be + // provided. + // The [full resource name](https://google.aip.dev/122#full-resource-names) of + // the database that the user connected to, if it is supported by Cloud Asset + // Inventory. + string name = 1; + + // The human-readable name of the database that the user connected to. + string display_name = 2; + + // The username used to connect to the database. The username might not be an + // IAM principal and does not have a set format. + string user_name = 3; + + // The SQL statement that is associated with the database access. + string query = 4; + + // The target usernames, roles, or groups of an SQL privilege grant, which is + // not an IAM policy change. + repeated string grantees = 5; + + // The version of the database, for example, POSTGRES_14. + // See [the complete + // list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion). + string version = 6; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/exfiltration.proto b/third_party/googleapis/google/cloud/securitycenter/v2/exfiltration.proto new file mode 100644 index 000000000..08cff11ab --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/exfiltration.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ExfiltrationProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Exfiltration represents a data exfiltration attempt from one or more sources +// to one or more targets. The `sources` attribute lists the sources of the +// exfiltrated data. The `targets` attribute lists the destinations the data was +// copied to. +message Exfiltration { + // If there are multiple sources, then the data is considered "joined" between + // them. For instance, BigQuery can join multiple tables, and each + // table would be considered a source. + repeated ExfilResource sources = 1; + + // If there are multiple targets, each target would get a complete copy of the + // "joined" source data. + repeated ExfilResource targets = 2; + + // Total exfiltrated bytes processed for the entire job. + int64 total_exfiltrated_bytes = 3; +} + +// Resource where data was exfiltrated from or exfiltrated to. +message ExfilResource { + // The resource's [full resource + // name](https://cloud.google.com/apis/design/resource_names#full_resource_name). + string name = 1; + + // Subcomponents of the asset that was exfiltrated, like URIs used during + // exfiltration, table names, databases, and filenames. For example, multiple + // tables might have been exfiltrated from the same Cloud SQL instance, or + // multiple files might have been exfiltrated from the same Cloud Storage + // bucket. + repeated string components = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/external_system.proto b/third_party/googleapis/google/cloud/securitycenter/v2/external_system.proto new file mode 100644 index 000000000..e021730d3 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/external_system.proto @@ -0,0 +1,112 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ExternalSystemProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Representation of third party SIEM/SOAR fields within SCC. +message ExternalSystem { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/ExternalSystem" + pattern: "organizations/{organization}/sources/{source}/findings/{finding}/externalSystems/{externalsystem}" + pattern: "organizations/{organization}/sources/{source}/locations/{location}/findings/{finding}/externalSystems/{externalsystem}" + pattern: "folders/{folder}/sources/{source}/findings/{finding}/externalSystems/{externalsystem}" + pattern: "folders/{folder}/sources/{source}/locations/{location}/findings/{finding}/externalSystems/{externalsystem}" + pattern: "projects/{project}/sources/{source}/findings/{finding}/externalSystems/{externalsystem}" + pattern: "projects/{project}/sources/{source}/locations/{location}/findings/{finding}/externalSystems/{externalsystem}" + }; + + // Information about the ticket, if any, that is being used to track the + // resolution of the issue that is identified by this finding. + message TicketInfo { + // The identifier of the ticket in the ticket system. + string id = 1; + + // The assignee of the ticket in the ticket system. + string assignee = 2; + + // The description of the ticket in the ticket system. + string description = 3; + + // The link to the ticket in the ticket system. + string uri = 4; + + // The latest status of the ticket, as reported by the ticket system. + string status = 5; + + // The time when the ticket was last updated, as reported by the ticket + // system. + google.protobuf.Timestamp update_time = 6; + } + + // Full resource name of the external system. The following list + // shows some examples: + // + // + `organizations/1234/sources/5678/findings/123456/externalSystems/jira` + // + + // `organizations/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + // + `folders/1234/sources/5678/findings/123456/externalSystems/jira` + // + + // `folders/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + // + `projects/1234/sources/5678/findings/123456/externalSystems/jira` + // + + // `projects/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + string name = 1; + + // References primary/secondary etc assignees in the external system. + repeated string assignees = 2; + + // The identifier that's used to track the finding's corresponding case in the + // external system. + string external_uid = 3; + + // The most recent status of the finding's corresponding case, as reported by + // the external system. + string status = 4; + + // The time when the case was last updated, as reported by the external + // system. + google.protobuf.Timestamp external_system_update_time = 5; + + // The link to the finding's corresponding case in the external system. + string case_uri = 6; + + // The priority of the finding's corresponding case in the external system. + string case_priority = 7; + + // The SLA of the finding's corresponding case in the external system. + google.protobuf.Timestamp case_sla = 9; + + // The time when the case was created, as reported by the external system. + google.protobuf.Timestamp case_create_time = 10; + + // The time when the case was closed, as reported by the external system. + google.protobuf.Timestamp case_close_time = 11; + + // Information about the ticket, if any, that is being used to track the + // resolution of the issue that is identified by this finding. + TicketInfo ticket_info = 8; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/file.proto b/third_party/googleapis/google/cloud/securitycenter/v2/file.proto new file mode 100644 index 000000000..07cc4ad54 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/file.proto @@ -0,0 +1,65 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "FileProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// File information about the related binary/library used by an executable, or +// the script used by a script interpreter +message File { + // Path of the file in terms of underlying disk/partition identifiers. + message DiskPath { + // UUID of the partition (format + // https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid) + string partition_uuid = 1; + + // Relative path of the file in the partition as a JSON encoded string. + // Example: /home/user1/executable_file.sh + string relative_path = 2; + } + + // Absolute path of the file as a JSON encoded string. + string path = 1; + + // Size of the file in bytes. + int64 size = 2; + + // SHA256 hash of the first hashed_size bytes of the file encoded as a + // hex string. If hashed_size == size, sha256 represents the SHA256 hash + // of the entire file. + string sha256 = 3; + + // The length in bytes of the file prefix that was hashed. If + // hashed_size == size, any hashes reported represent the entire + // file. + int64 hashed_size = 4; + + // True when the hash covers only a prefix of the file. + bool partially_hashed = 5; + + // Prefix of the file contents as a JSON-encoded string. + string contents = 6; + + // Path of the file in terms of underlying disk/partition identifiers. + DiskPath disk_path = 7; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/finding.proto b/third_party/googleapis/google/cloud/securitycenter/v2/finding.proto new file mode 100644 index 000000000..ee5ca55c7 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/finding.proto @@ -0,0 +1,453 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/securitycenter/v2/access.proto"; +import "google/cloud/securitycenter/v2/application.proto"; +import "google/cloud/securitycenter/v2/attack_exposure.proto"; +import "google/cloud/securitycenter/v2/backup_disaster_recovery.proto"; +import "google/cloud/securitycenter/v2/cloud_armor.proto"; +import "google/cloud/securitycenter/v2/cloud_dlp_data_profile.proto"; +import "google/cloud/securitycenter/v2/cloud_dlp_inspection.proto"; +import "google/cloud/securitycenter/v2/compliance.proto"; +import "google/cloud/securitycenter/v2/connection.proto"; +import "google/cloud/securitycenter/v2/contact_details.proto"; +import "google/cloud/securitycenter/v2/container.proto"; +import "google/cloud/securitycenter/v2/database.proto"; +import "google/cloud/securitycenter/v2/exfiltration.proto"; +import "google/cloud/securitycenter/v2/external_system.proto"; +import "google/cloud/securitycenter/v2/file.proto"; +import "google/cloud/securitycenter/v2/group_membership.proto"; +import "google/cloud/securitycenter/v2/iam_binding.proto"; +import "google/cloud/securitycenter/v2/indicator.proto"; +import "google/cloud/securitycenter/v2/kernel_rootkit.proto"; +import "google/cloud/securitycenter/v2/kubernetes.proto"; +import "google/cloud/securitycenter/v2/load_balancer.proto"; +import "google/cloud/securitycenter/v2/log_entry.proto"; +import "google/cloud/securitycenter/v2/mitre_attack.proto"; +import "google/cloud/securitycenter/v2/notebook.proto"; +import "google/cloud/securitycenter/v2/org_policy.proto"; +import "google/cloud/securitycenter/v2/process.proto"; +import "google/cloud/securitycenter/v2/security_marks.proto"; +import "google/cloud/securitycenter/v2/security_posture.proto"; +import "google/cloud/securitycenter/v2/toxic_combination.proto"; +import "google/cloud/securitycenter/v2/vulnerability.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "FindingProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Security Command Center finding. +// +// A finding is a record of assessment data like security, risk, health, or +// privacy, that is ingested into Security Command Center for presentation, +// notification, analysis, policy testing, and enforcement. For example, a +// cross-site scripting (XSS) vulnerability in an App Engine application is a +// finding. +message Finding { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/Finding" + pattern: "organizations/{organization}/sources/{source}/findings/{finding}" + pattern: "organizations/{organization}/sources/{source}/locations/{location}/findings/{finding}" + pattern: "folders/{folder}/sources/{source}/findings/{finding}" + pattern: "folders/{folder}/sources/{source}/locations/{location}/findings/{finding}" + pattern: "projects/{project}/sources/{source}/findings/{finding}" + pattern: "projects/{project}/sources/{source}/locations/{location}/findings/{finding}" + plural: "findings" + singular: "finding" + }; + + // The state of the finding. + enum State { + // Unspecified state. + STATE_UNSPECIFIED = 0; + + // The finding requires attention and has not been addressed yet. + ACTIVE = 1; + + // The finding has been fixed, triaged as a non-issue or otherwise addressed + // and is no longer active. + INACTIVE = 2; + } + + // The severity of the finding. + enum Severity { + // This value is used for findings when a source doesn't write a severity + // value. + SEVERITY_UNSPECIFIED = 0; + + // Vulnerability: + // A critical vulnerability is easily discoverable by an external actor, + // exploitable, and results in the direct ability to execute arbitrary code, + // exfiltrate data, and otherwise gain additional access and privileges to + // cloud resources and workloads. Examples include publicly accessible + // unprotected user data and public SSH access with weak or no + // passwords. + // + // Threat: + // Indicates a threat that is able to access, modify, or delete data or + // execute unauthorized code within existing resources. + CRITICAL = 1; + + // Vulnerability: + // A high risk vulnerability can be easily discovered and exploited in + // combination with other vulnerabilities in order to gain direct access and + // the ability to execute arbitrary code, exfiltrate data, and otherwise + // gain additional access and privileges to cloud resources and workloads. + // An example is a database with weak or no passwords that is only + // accessible internally. This database could easily be compromised by an + // actor that had access to the internal network. + // + // Threat: + // Indicates a threat that is able to create new computational resources in + // an environment but not able to access data or execute code in existing + // resources. + HIGH = 2; + + // Vulnerability: + // A medium risk vulnerability could be used by an actor to gain access to + // resources or privileges that enable them to eventually (through multiple + // steps or a complex exploit) gain access and the ability to execute + // arbitrary code or exfiltrate data. An example is a service account with + // access to more projects than it should have. If an actor gains access to + // the service account, they could potentially use that access to manipulate + // a project the service account was not intended to. + // + // Threat: + // Indicates a threat that is able to cause operational impact but may not + // access data or execute unauthorized code. + MEDIUM = 3; + + // Vulnerability: + // A low risk vulnerability hampers a security organization's ability to + // detect vulnerabilities or active threats in their deployment, or prevents + // the root cause investigation of security issues. An example is monitoring + // and logs being disabled for resource configurations and access. + // + // Threat: + // Indicates a threat that has obtained minimal access to an environment but + // is not able to access data, execute code, or create resources. + LOW = 4; + } + + // Mute state a finding can be in. + enum Mute { + // Unspecified. + MUTE_UNSPECIFIED = 0; + + // Finding has been muted. + MUTED = 1; + + // Finding has been unmuted. + UNMUTED = 2; + + // Finding has never been muted/unmuted. + UNDEFINED = 3; + } + + // Represents what kind of Finding it is. + enum FindingClass { + // Unspecified finding class. + FINDING_CLASS_UNSPECIFIED = 0; + + // Describes unwanted or malicious activity. + THREAT = 1; + + // Describes a potential weakness in software that increases risk to + // Confidentiality & Integrity & Availability. + VULNERABILITY = 2; + + // Describes a potential weakness in cloud resource/asset configuration that + // increases risk. + MISCONFIGURATION = 3; + + // Describes a security observation that is for informational purposes. + OBSERVATION = 4; + + // Describes an error that prevents some SCC functionality. + SCC_ERROR = 5; + + // Describes a potential security risk due to a change in the security + // posture. + POSTURE_VIOLATION = 6; + + // Describes a combination of security issues that represent a more severe + // security problem when taken together. + TOXIC_COMBINATION = 7; + } + + // The [relative resource + // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) + // of the finding. The following list shows some examples: + // + // + + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + // + + // `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + // + + // `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + string name = 1; + + // Output only. The canonical name of the finding. The following list shows + // some examples: + // + // + + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + // + + // `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + // + + // `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + // The prefix is the closest CRM ancestor of the resource associated with the + // finding. + string canonical_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The relative resource name of the source and location the finding belongs + // to. See: + // https://cloud.google.com/apis/design/resource_names#relative_resource_name + // This field is immutable after creation time. The following list shows some + // examples: + // + // + `organizations/{organization_id}/sources/{source_id}` + // + `folders/{folders_id}/sources/{source_id}` + // + `projects/{projects_id}/sources/{source_id}` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location_id}` + // + `folders/{folders_id}/sources/{source_id}/locations/{location_id}` + // + `projects/{projects_id}/sources/{source_id}/locations/{location_id}` + string parent = 3; + + // Immutable. For findings on Google Cloud resources, the full resource + // name of the Google Cloud resource this finding is for. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + // When the finding is for a non-Google Cloud resource, the resourceName can + // be a customer or partner defined string. + string resource_name = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The state of the finding. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The additional taxonomy group within findings from a given + // source. Example: "XSS_FLASH_INJECTION" + string category = 7 [(google.api.field_behavior) = IMMUTABLE]; + + // The URI that, if available, points to a web page outside of Security + // Command Center where additional information about the finding can be found. + // This field is guaranteed to be either empty or a well formed URL. + string external_uri = 8; + + // Source specific properties. These properties are managed by the source + // that writes the finding. The key names in the source_properties map must be + // between 1 and 255 characters, and must start with a letter and contain + // alphanumeric characters or underscores only. + map source_properties = 9; + + // Output only. User specified security marks. These marks are entirely + // managed by the user and come from the SecurityMarks resource that belongs + // to the finding. + SecurityMarks security_marks = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The time the finding was first detected. If an existing finding is updated, + // then this is the time the update occurred. + // For example, if the finding represents an open firewall, this property + // captures the time the detector believes the firewall became open. The + // accuracy is determined by the detector. If the finding is later resolved, + // then this time reflects when the finding was resolved. This must not + // be set to a value greater than the current timestamp. + google.protobuf.Timestamp event_time = 11; + + // Output only. The time at which the finding was created in Security Command + // Center. + google.protobuf.Timestamp create_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The severity of the finding. This field is managed by the source that + // writes the finding. + Severity severity = 14; + + // Indicates the mute state of a finding (either muted, unmuted + // or undefined). Unlike other attributes of a finding, a finding provider + // shouldn't set the value of mute. + Mute mute = 15; + + // The class of the finding. + FindingClass finding_class = 16; + + // Represents what's commonly known as an *indicator of compromise* (IoC) in + // computer forensics. This is an artifact observed on a network or in an + // operating system that, with high confidence, indicates a computer + // intrusion. For more information, see [Indicator of + // compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise). + Indicator indicator = 17; + + // Represents vulnerability-specific fields like CVE and CVSS scores. + // CVE stands for Common Vulnerabilities and Exposures + // (https://cve.mitre.org/about/) + Vulnerability vulnerability = 18; + + // Output only. The most recent time this finding was muted or unmuted. + google.protobuf.Timestamp mute_update_time = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Third party SIEM/SOAR fields within SCC, contains external + // system information and external system finding fields. + map external_systems = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // MITRE ATT&CK tactics and techniques related to this finding. + // See: https://attack.mitre.org + MitreAttack mitre_attack = 21; + + // Access details associated with the finding, such as more information on the + // caller, which method was accessed, and from where. + Access access = 22; + + // Contains information about the IP connection associated with the finding. + repeated Connection connections = 23; + + // Records additional information about the mute operation, for example, the + // [mute + // configuration](https://cloud.google.com/security-command-center/docs/how-to-mute-findings) + // that muted the finding and the user who muted the finding. + string mute_initiator = 24; + + // Represents operating system processes associated with the Finding. + repeated Process processes = 25; + + // Output only. Map containing the points of contact for the given finding. + // The key represents the type of contact, while the value contains a list of + // all the contacts that pertain. Please refer to: + // https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories + // + // { + // "security": { + // "contacts": [ + // { + // "email": "person1@company.com" + // }, + // { + // "email": "person2@company.com" + // } + // ] + // } + // } + map contacts = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Contains compliance information for security standards associated to the + // finding. + repeated Compliance compliances = 27; + + // Output only. The human readable display name of the finding source such as + // "Event Threat Detection" or "Security Health Analytics". + string parent_display_name = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Contains more details about the finding. + string description = 30; + + // Represents exfiltrations associated with the finding. + Exfiltration exfiltration = 31; + + // Represents IAM bindings associated with the finding. + repeated IamBinding iam_bindings = 32; + + // Steps to address the finding. + string next_steps = 33; + + // Unique identifier of the module which generated the finding. + // Example: + // folders/598186756061/securityHealthAnalyticsSettings/customModules/56799441161885 + string module_name = 34; + + // Containers associated with the finding. This field provides information for + // both Kubernetes and non-Kubernetes containers. + repeated Container containers = 35; + + // Kubernetes resources associated with the finding. + Kubernetes kubernetes = 36; + + // Database associated with the finding. + Database database = 37; + + // The results of an attack path simulation relevant to this finding. + AttackExposure attack_exposure = 38; + + // File associated with the finding. + repeated File files = 39; + + // Cloud Data Loss Prevention (Cloud DLP) inspection results that are + // associated with the finding. + CloudDlpInspection cloud_dlp_inspection = 40; + + // Cloud DLP data profile that is associated with the finding. + CloudDlpDataProfile cloud_dlp_data_profile = 41; + + // Signature of the kernel rootkit. + KernelRootkit kernel_rootkit = 42; + + // Contains information about the org policies associated with the finding. + repeated OrgPolicy org_policies = 43; + + // Represents an application associated with the finding. + Application application = 45; + + // Fields related to Backup and DR findings. + BackupDisasterRecovery backup_disaster_recovery = 47; + + // The security posture associated with the finding. + SecurityPosture security_posture = 48; + + // Log entries that are relevant to the finding. + repeated LogEntry log_entries = 49; + + // The load balancers associated with the finding. + repeated LoadBalancer load_balancers = 50; + + // Fields related to Cloud Armor findings. + CloudArmor cloud_armor = 51; + + // Notebook associated with the finding. + Notebook notebook = 55; + + // Contains details about a group of security issues that, when the issues + // occur together, represent a greater risk than when the issues occur + // independently. A group of such issues is referred to as a toxic + // combination. + // This field cannot be updated. Its value is ignored in all update requests. + ToxicCombination toxic_combination = 56; + + // Contains details about groups of which this finding is a member. A group is + // a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + repeated GroupMembership group_memberships = 57; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/folder.proto b/third_party/googleapis/google/cloud/securitycenter/v2/folder.proto new file mode 100644 index 000000000..d965797b0 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/folder.proto @@ -0,0 +1,36 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "FolderProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Message that contains the resource name and display name of a folder +// resource. +message Folder { + // Full resource name of this folder. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + string resource_folder = 1; + + // The user defined display name for this folder. + string resource_folder_display_name = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/group_membership.proto b/third_party/googleapis/google/cloud/securitycenter/v2/group_membership.proto new file mode 100644 index 000000000..4db02d2f2 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/group_membership.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "GroupMembershipProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Contains details about groups of which this finding is a member. A group is a +// collection of findings that are related in some way. +message GroupMembership { + // Possible types of groups. + enum GroupType { + // Default value. + GROUP_TYPE_UNSPECIFIED = 0; + + // Group represents a toxic combination. + GROUP_TYPE_TOXIC_COMBINATION = 1; + } + + // Type of group. + GroupType group_type = 1; + + // ID of the group. + string group_id = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/iam_binding.proto b/third_party/googleapis/google/cloud/securitycenter/v2/iam_binding.proto new file mode 100644 index 000000000..11b154956 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/iam_binding.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "IamBindingProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents a particular IAM binding, which captures a member's role addition, +// removal, or state. +message IamBinding { + // The type of action performed on a Binding in a policy. + enum Action { + // Unspecified. + ACTION_UNSPECIFIED = 0; + + // Addition of a Binding. + ADD = 1; + + // Removal of a Binding. + REMOVE = 2; + } + + // The action that was performed on a Binding. + Action action = 1; + + // Role that is assigned to "members". + // For example, "roles/viewer", "roles/editor", or "roles/owner". + string role = 2; + + // A single identity requesting access for a Cloud Platform resource, for + // example, "foo@google.com". + string member = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/indicator.proto b/third_party/googleapis/google/cloud/securitycenter/v2/indicator.proto new file mode 100644 index 000000000..ec6a202ae --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/indicator.proto @@ -0,0 +1,98 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "IndicatorProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents what's commonly known as an _indicator of compromise_ (IoC) in +// computer forensics. This is an artifact observed on a network or in an +// operating system that, with high confidence, indicates a computer intrusion. +// For more information, see [Indicator of +// compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise). +message Indicator { + // Indicates what signature matched this process. + message ProcessSignature { + // A signature corresponding to memory page hashes. + message MemoryHashSignature { + // Memory hash detection contributing to the binary family match. + message Detection { + // The name of the binary associated with the memory hash + // signature detection. + string binary = 2; + + // The percentage of memory page hashes in the signature + // that were matched. + double percent_pages_matched = 3; + } + + // The binary family. + string binary_family = 1; + + // The list of memory hash detections contributing to the binary family + // match. + repeated Detection detections = 4; + } + + // A signature corresponding to a YARA rule. + message YaraRuleSignature { + // The name of the YARA rule. + string yara_rule = 5; + } + + // Possible resource types to be associated with a signature. + enum SignatureType { + // The default signature type. + SIGNATURE_TYPE_UNSPECIFIED = 0; + + // Used for signatures concerning processes. + SIGNATURE_TYPE_PROCESS = 1; + + // Used for signatures concerning disks. + SIGNATURE_TYPE_FILE = 2; + } + + oneof signature { + // Signature indicating that a binary family was matched. + MemoryHashSignature memory_hash_signature = 6; + + // Signature indicating that a YARA rule was matched. + YaraRuleSignature yara_rule_signature = 7; + } + + // Describes the type of resource associated with the signature. + SignatureType signature_type = 8; + } + + // The list of IP addresses that are associated with the finding. + repeated string ip_addresses = 1; + + // List of domains associated to the Finding. + repeated string domains = 2; + + // The list of matched signatures indicating that the given + // process is present in the environment. + repeated ProcessSignature signatures = 3; + + // The list of URIs associated to the Findings. + repeated string uris = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/kernel_rootkit.proto b/third_party/googleapis/google/cloud/securitycenter/v2/kernel_rootkit.proto new file mode 100644 index 000000000..d8c125992 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/kernel_rootkit.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "KernelRootkitProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Kernel mode rootkit signatures. +message KernelRootkit { + // Rootkit name, when available. + string name = 1; + + // True if unexpected modifications of kernel code memory are present. + bool unexpected_code_modification = 2; + + // True if unexpected modifications of kernel read-only data memory are + // present. + bool unexpected_read_only_data_modification = 3; + + // True if `ftrace` points are present with callbacks pointing to regions + // that are not in the expected kernel or module code range. + bool unexpected_ftrace_handler = 4; + + // True if `kprobe` points are present with callbacks pointing to regions + // that are not in the expected kernel or module code range. + bool unexpected_kprobe_handler = 5; + + // True if kernel code pages that are not in the expected kernel or module + // code regions are present. + bool unexpected_kernel_code_pages = 6; + + // True if system call handlers that are are not in the expected kernel or + // module code regions are present. + bool unexpected_system_call_handler = 7; + + // True if interrupt handlers that are are not in the expected kernel or + // module code regions are present. + bool unexpected_interrupt_handler = 8; + + // True if unexpected processes in the scheduler run queue are present. Such + // processes are in the run queue, but not in the process task list. + bool unexpected_processes_in_runqueue = 9; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/kubernetes.proto b/third_party/googleapis/google/cloud/securitycenter/v2/kubernetes.proto new file mode 100644 index 000000000..c42a54aa2 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/kubernetes.proto @@ -0,0 +1,216 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/cloud/securitycenter/v2/container.proto"; +import "google/cloud/securitycenter/v2/label.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "KubernetesProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Kubernetes-related attributes. +message Kubernetes { + // A Kubernetes Pod. + message Pod { + // Kubernetes Pod namespace. + string ns = 1; + + // Kubernetes Pod name. + string name = 2; + + // Pod labels. For Kubernetes containers, these are applied to the + // container. + repeated Label labels = 3; + + // Pod containers associated with this finding, if any. + repeated Container containers = 4; + } + + // Kubernetes nodes associated with the finding. + message Node { + // [Full resource name](https://google.aip.dev/122#full-resource-names) of + // the Compute Engine VM running the cluster node. + string name = 1; + } + + // Provides GKE node pool information. + message NodePool { + // Kubernetes node pool name. + string name = 1; + + // Nodes associated with the finding. + repeated Node nodes = 2; + } + + // Kubernetes Role or ClusterRole. + message Role { + // Types of Kubernetes roles. + enum Kind { + // Role type is not specified. + KIND_UNSPECIFIED = 0; + + // Kubernetes Role. + ROLE = 1; + + // Kubernetes ClusterRole. + CLUSTER_ROLE = 2; + } + + // Role type. + Kind kind = 1; + + // Role namespace. + string ns = 2; + + // Role name. + string name = 3; + } + + // Represents a Kubernetes RoleBinding or ClusterRoleBinding. + message Binding { + // Namespace for the binding. + string ns = 1; + + // Name for the binding. + string name = 2; + + // The Role or ClusterRole referenced by the binding. + Role role = 3; + + // Represents one or more subjects that are bound to the role. Not always + // available for PATCH requests. + repeated Subject subjects = 4; + } + + // Represents a Kubernetes subject. + message Subject { + // Auth types that can be used for the subject's kind field. + enum AuthType { + // Authentication is not specified. + AUTH_TYPE_UNSPECIFIED = 0; + + // User with valid certificate. + USER = 1; + + // Users managed by Kubernetes API with credentials stored as secrets. + SERVICEACCOUNT = 2; + + // Collection of users. + GROUP = 3; + } + + // Authentication type for the subject. + AuthType kind = 1; + + // Namespace for the subject. + string ns = 2; + + // Name for the subject. + string name = 3; + } + + // Conveys information about a Kubernetes access review (such as one returned + // by a [`kubectl auth + // can-i`](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access) + // command) that was involved in a finding. + message AccessReview { + // The API group of the resource. "*" means all. + string group = 1; + + // Namespace of the action being requested. Currently, there is no + // distinction between no namespace and all namespaces. Both + // are represented by "" (empty). + string ns = 2; + + // The name of the resource being requested. Empty means all. + string name = 3; + + // The optional resource type requested. "*" means all. + string resource = 4; + + // The optional subresource type. + string subresource = 5; + + // A Kubernetes resource API verb, like get, list, watch, create, update, + // delete, proxy. "*" means all. + string verb = 6; + + // The API version of the resource. "*" means all. + string version = 7; + } + + // Kubernetes object related to the finding, uniquely identified by GKNN. + // Used if the object Kind is not one of Pod, Node, NodePool, Binding, or + // AccessReview. + message Object { + // Kubernetes object group, such as "policy.k8s.io/v1". + string group = 1; + + // Kubernetes object kind, such as "Namespace". + string kind = 2; + + // Kubernetes object namespace. Must be a valid DNS label. Named + // "ns" to avoid collision with C++ namespace keyword. For details see + // https://kubernetes.io/docs/tasks/administer-cluster/namespaces/. + string ns = 3; + + // Kubernetes object name. For details see + // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/. + string name = 4; + + // Pod containers associated with this finding, if any. + repeated Container containers = 5; + } + + // Kubernetes + // [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod) + // associated with the finding. This field contains Pod records for each + // container that is owned by a Pod. + repeated Pod pods = 1; + + // Provides Kubernetes + // [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) + // information. + repeated Node nodes = 2; + + // GKE [node + // pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) + // associated with the finding. This field contains node pool information for + // each node, when it is available. + repeated NodePool node_pools = 3; + + // Provides Kubernetes role information for findings that involve [Roles or + // ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control). + repeated Role roles = 4; + + // Provides Kubernetes role binding information for findings that involve + // [RoleBindings or + // ClusterRoleBindings](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control). + repeated Binding bindings = 5; + + // Provides information on any Kubernetes access reviews (privilege checks) + // relevant to the finding. + repeated AccessReview access_reviews = 6; + + // Kubernetes objects related to the finding. + repeated Object objects = 7; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/label.proto b/third_party/googleapis/google/cloud/securitycenter/v2/label.proto new file mode 100644 index 000000000..9cc43c17a --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/label.proto @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "LabelProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents a generic name-value label. A label has separate name and value +// fields to support filtering with the `contains()` function. For more +// information, see [Filtering on array-type +// fields](https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering). +message Label { + // Name of the label. + string name = 1; + + // Value that corresponds to the label's name. + string value = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/load_balancer.proto b/third_party/googleapis/google/cloud/securitycenter/v2/load_balancer.proto new file mode 100644 index 000000000..b7cfaad09 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/load_balancer.proto @@ -0,0 +1,32 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "LoadBalancerProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Contains information related to the load balancer associated with the +// finding. +message LoadBalancer { + // The name of the load balancer associated with the finding. + string name = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/log_entry.proto b/third_party/googleapis/google/cloud/securitycenter/v2/log_entry.proto new file mode 100644 index 000000000..d10bcb3c9 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/log_entry.proto @@ -0,0 +1,55 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "LogEntryProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// An individual entry in a log. +message LogEntry { + oneof log_entry { + // An individual entry in a log stored in Cloud Logging. + CloudLoggingEntry cloud_logging_entry = 1; + } +} + +// Metadata taken from a [Cloud Logging +// LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) +message CloudLoggingEntry { + // A unique identifier for the log entry. + string insert_id = 1; + + // The type of the log (part of `log_name`. `log_name` is the resource name of + // the log to which this log entry belongs). For example: + // `cloudresourcemanager.googleapis.com/activity` Note that this field is not + // URL-encoded, unlike in `LogEntry`. + string log_id = 2; + + // The organization, folder, or project of the monitored resource that + // produced this log entry. + string resource_container = 3; + + // The time the event described by the log entry occurred. + google.protobuf.Timestamp timestamp = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/mitre_attack.proto b/third_party/googleapis/google/cloud/securitycenter/v2/mitre_attack.proto new file mode 100644 index 000000000..7c2b56c04 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/mitre_attack.proto @@ -0,0 +1,293 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "MitreAttackProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// MITRE ATT&CK tactics and techniques related to this finding. +// See: https://attack.mitre.org +message MitreAttack { + // MITRE ATT&CK tactics that can be referenced by SCC findings. + // See: https://attack.mitre.org/tactics/enterprise/ + enum Tactic { + // Unspecified value. + TACTIC_UNSPECIFIED = 0; + + // TA0043 + RECONNAISSANCE = 1; + + // TA0042 + RESOURCE_DEVELOPMENT = 2; + + // TA0001 + INITIAL_ACCESS = 5; + + // TA0002 + EXECUTION = 3; + + // TA0003 + PERSISTENCE = 6; + + // TA0004 + PRIVILEGE_ESCALATION = 8; + + // TA0005 + DEFENSE_EVASION = 7; + + // TA0006 + CREDENTIAL_ACCESS = 9; + + // TA0007 + DISCOVERY = 10; + + // TA0008 + LATERAL_MOVEMENT = 11; + + // TA0009 + COLLECTION = 12; + + // TA0011 + COMMAND_AND_CONTROL = 4; + + // TA0010 + EXFILTRATION = 13; + + // TA0040 + IMPACT = 14; + } + + // MITRE ATT&CK techniques that can be referenced by SCC findings. + // See: https://attack.mitre.org/techniques/enterprise/ + // Next ID: 63 + enum Technique { + // Unspecified value. + TECHNIQUE_UNSPECIFIED = 0; + + // T1036 + MASQUERADING = 49; + + // T1036.005 + MATCH_LEGITIMATE_NAME_OR_LOCATION = 50; + + // T1037 + BOOT_OR_LOGON_INITIALIZATION_SCRIPTS = 37; + + // T1037.005 + STARTUP_ITEMS = 38; + + // T1046 + NETWORK_SERVICE_DISCOVERY = 32; + + // T1057 + PROCESS_DISCOVERY = 56; + + // T1059 + COMMAND_AND_SCRIPTING_INTERPRETER = 6; + + // T1059.004 + UNIX_SHELL = 7; + + // T1059.006 + PYTHON = 59; + + // T1069 + PERMISSION_GROUPS_DISCOVERY = 18; + + // T1069.003 + CLOUD_GROUPS = 19; + + // T1071 + APPLICATION_LAYER_PROTOCOL = 45; + + // T1071.004 + DNS = 46; + + // T1072 + SOFTWARE_DEPLOYMENT_TOOLS = 47; + + // T1078 + VALID_ACCOUNTS = 14; + + // T1078.001 + DEFAULT_ACCOUNTS = 35; + + // T1078.003 + LOCAL_ACCOUNTS = 15; + + // T1078.004 + CLOUD_ACCOUNTS = 16; + + // T1090 + PROXY = 9; + + // T1090.002 + EXTERNAL_PROXY = 10; + + // T1090.003 + MULTI_HOP_PROXY = 11; + + // T1098 + ACCOUNT_MANIPULATION = 22; + + // T1098.001 + ADDITIONAL_CLOUD_CREDENTIALS = 40; + + // T1098.004 + SSH_AUTHORIZED_KEYS = 23; + + // T1098.006 + ADDITIONAL_CONTAINER_CLUSTER_ROLES = 58; + + // T1105 + INGRESS_TOOL_TRANSFER = 3; + + // T1106 + NATIVE_API = 4; + + // T1110 + BRUTE_FORCE = 44; + + // T1129 + SHARED_MODULES = 5; + + // T1134 + ACCESS_TOKEN_MANIPULATION = 33; + + // T1134.001 + TOKEN_IMPERSONATION_OR_THEFT = 39; + + // T1190 + EXPLOIT_PUBLIC_FACING_APPLICATION = 27; + + // T1484 + DOMAIN_POLICY_MODIFICATION = 30; + + // T1485 + DATA_DESTRUCTION = 29; + + // T1489 + SERVICE_STOP = 52; + + // T1490 + INHIBIT_SYSTEM_RECOVERY = 36; + + // T1496 + RESOURCE_HIJACKING = 8; + + // T1498 + NETWORK_DENIAL_OF_SERVICE = 17; + + // T1526 + CLOUD_SERVICE_DISCOVERY = 48; + + // T1528 + STEAL_APPLICATION_ACCESS_TOKEN = 42; + + // T1531 + ACCOUNT_ACCESS_REMOVAL = 51; + + // T1539 + STEAL_WEB_SESSION_COOKIE = 25; + + // T1543 + CREATE_OR_MODIFY_SYSTEM_PROCESS = 24; + + // T1548 + ABUSE_ELEVATION_CONTROL_MECHANISM = 34; + + // T1552 + UNSECURED_CREDENTIALS = 13; + + // T1556 + MODIFY_AUTHENTICATION_PROCESS = 28; + + // T1562 + IMPAIR_DEFENSES = 31; + + // T1562.001 + DISABLE_OR_MODIFY_TOOLS = 55; + + // T1567 + EXFILTRATION_OVER_WEB_SERVICE = 20; + + // T1567.002 + EXFILTRATION_TO_CLOUD_STORAGE = 21; + + // T1568 + DYNAMIC_RESOLUTION = 12; + + // T1570 + LATERAL_TOOL_TRANSFER = 41; + + // T1578 + MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE = 26; + + // T1578.001 + CREATE_SNAPSHOT = 54; + + // T1580 + CLOUD_INFRASTRUCTURE_DISCOVERY = 53; + + // T1588 + OBTAIN_CAPABILITIES = 43; + + // T1595 + ACTIVE_SCANNING = 1; + + // T1595.001 + SCANNING_IP_BLOCKS = 2; + + // T1613 + CONTAINER_ADMINISTRATION_COMMAND = 60; + + // T1611 + ESCAPE_TO_HOST = 61; + + // T1613 + CONTAINER_AND_RESOURCE_DISCOVERY = 57; + + // T1649 + STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES = 62; + } + + // The MITRE ATT&CK tactic most closely represented by this finding, if any. + Tactic primary_tactic = 1; + + // The MITRE ATT&CK technique most closely represented by this finding, if + // any. primary_techniques is a repeated field because there are multiple + // levels of MITRE ATT&CK techniques. If the technique most closely + // represented by this finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), + // both the sub-technique and its parent technique(s) will be listed (e.g. + // `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`). + repeated Technique primary_techniques = 2; + + // Additional MITRE ATT&CK tactics related to this finding, if any. + repeated Tactic additional_tactics = 3; + + // Additional MITRE ATT&CK techniques related to this finding, if any, along + // with any of their respective parent techniques. + repeated Technique additional_techniques = 4; + + // The MITRE ATT&CK version referenced by the above fields. E.g. "8". + string version = 5; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/mute_config.proto b/third_party/googleapis/google/cloud/securitycenter/v2/mute_config.proto new file mode 100644 index 000000000..48cad505c --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/mute_config.proto @@ -0,0 +1,114 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "MuteConfigProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// A mute config is a Cloud SCC resource that contains the configuration +// to mute create/update events of findings. +message MuteConfig { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/MuteConfig" + pattern: "organizations/{organization}/muteConfigs/{mute_config}" + pattern: "organizations/{organization}/locations/{location}/muteConfigs/{mute_config}" + pattern: "folders/{folder}/muteConfigs/{mute_config}" + pattern: "folders/{folder}/locations/{location}/muteConfigs/{mute_config}" + pattern: "projects/{project}/muteConfigs/{mute_config}" + pattern: "projects/{project}/locations/{location}/muteConfigs/{mute_config}" + plural: "muteConfigs" + singular: "muteConfig" + }; + + // The type of MuteConfig. + enum MuteConfigType { + // Unused. + MUTE_CONFIG_TYPE_UNSPECIFIED = 0; + + // A static mute config, which sets the static mute state of future matching + // findings to muted. Once the static mute state has been set, finding or + // config modifications will not affect the state. + STATIC = 1; + } + + // This field will be ignored if provided on config creation. The following + // list shows some examples of the format: + // + // + `organizations/{organization}/muteConfigs/{mute_config}` + // + + // `organizations/{organization}locations/{location}//muteConfigs/{mute_config}` + // + `folders/{folder}/muteConfigs/{mute_config}` + // + `folders/{folder}/locations/{location}/muteConfigs/{mute_config}` + // + `projects/{project}/muteConfigs/{mute_config}` + // + `projects/{project}/locations/{location}/muteConfigs/{mute_config}` + string name = 1; + + // A description of the mute config. + string description = 2; + + // Required. An expression that defines the filter to apply across + // create/update events of findings. While creating a filter string, be + // mindful of the scope in which the mute configuration is being created. + // E.g., If a filter contains project = X but is created under the project = Y + // scope, it might not match any findings. + // + // The following field and operator combinations are supported: + // + // * severity: `=`, `:` + // * category: `=`, `:` + // * resource.name: `=`, `:` + // * resource.project_name: `=`, `:` + // * resource.project_display_name: `=`, `:` + // * resource.folders.resource_folder: `=`, `:` + // * resource.parent_name: `=`, `:` + // * resource.parent_display_name: `=`, `:` + // * resource.type: `=`, `:` + // * finding_class: `=`, `:` + // * indicator.ip_addresses: `=`, `:` + // * indicator.domains: `=`, `:` + string filter = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The time at which the mute config was created. + // This field is set by the server and will be ignored if provided on config + // creation. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The most recent time at which the mute config was updated. + // This field is set by the server and will be ignored if provided on config + // creation or update. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the user who last edited the mute config. + // This field is set by the server and will be ignored if provided on config + // creation or update. + string most_recent_editor = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of the mute config, which determines what type of mute + // state the config affects. Immutable after creation. + MuteConfigType type = 8 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/notebook.proto b/third_party/googleapis/google/cloud/securitycenter/v2/notebook.proto new file mode 100644 index 000000000..b2fd80474 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/notebook.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise +// notebook](https://cloud.google.com/colab/docs/introduction) file, that is +// associated with a finding. +message Notebook { + // The name of the notebook. + string name = 1; + + // The source notebook service, for example, "Colab Enterprise". + string service = 2; + + // The user ID of the latest author to modify the notebook. + string last_author = 3; + + // The most recent time the notebook was updated. + google.protobuf.Timestamp notebook_update_time = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/notification_config.proto b/third_party/googleapis/google/cloud/securitycenter/v2/notification_config.proto new file mode 100644 index 000000000..b94d4098e --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/notification_config.proto @@ -0,0 +1,104 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "NotificationConfigProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; +option (google.api.resource_definition) = { + type: "pubsub.googleapis.com/Topic" + pattern: "projects/{project}/topics/{topic}" +}; + +// Cloud Security Command Center (Cloud SCC) notification configs. +// +// A notification config is a Cloud SCC resource that contains the configuration +// to send notifications for create/update events of findings, assets and etc. +message NotificationConfig { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/NotificationConfig" + pattern: "organizations/{organization}/locations/{location}/notificationConfigs/{notification_config}" + pattern: "folders/{folder}/locations/{location}/notificationConfigs/{notification_config}" + pattern: "projects/{project}/locations/{location}/notificationConfigs/{notification_config}" + plural: "notificationConfigs" + singular: "notificationConfig" + }; + + // The config for streaming-based notifications, which send each event as soon + // as it is detected. + message StreamingConfig { + // Expression that defines the filter to apply across create/update events + // of assets or findings as specified by the event type. The expression is a + // list of zero or more restrictions combined via logical operators `AND` + // and `OR`. Parentheses are supported, and `OR` has higher precedence than + // `AND`. + // + // Restrictions have the form ` ` and may have a + // `-` character in front of them to indicate negation. The fields map to + // those defined in the corresponding resource. + // + // The supported operators are: + // + // * `=` for all value types. + // * `>`, `<`, `>=`, `<=` for integer values. + // * `:`, meaning substring matching, for strings. + // + // The supported value types are: + // + // * string literals in quotes. + // * integer literals without quotes. + // * boolean literals `true` and `false` without quotes. + string filter = 1; + } + + // The relative resource name of this notification config. See: + // https://cloud.google.com/apis/design/resource_names#relative_resource_name + // The following list shows some examples: + // + + // `organizations/{organization_id}/locations/{location_id}/notificationConfigs/notify_public_bucket` + // + + // `folders/{folder_id}/locations/{location_id}/notificationConfigs/notify_public_bucket` + // + + // `projects/{project_id}/locations/{location_id}/notificationConfigs/notify_public_bucket` + string name = 1; + + // The description of the notification config (max of 1024 characters). + string description = 2; + + // The Pub/Sub topic to send notifications to. Its format is + // "projects/[project_id]/topics/[topic]". + string pubsub_topic = 3 [ + (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } + ]; + + // Output only. The service account that needs "pubsub.topics.publish" + // permission to publish to the Pub/Sub topic. + string service_account = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The config for triggering notifications. + oneof notify_config { + // The config for triggering streaming-based notifications. + StreamingConfig streaming_config = 5; + } +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/notification_message.proto b/third_party/googleapis/google/cloud/securitycenter/v2/notification_message.proto new file mode 100644 index 000000000..adc6da044 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/notification_message.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/cloud/securitycenter/v2/finding.proto"; +import "google/cloud/securitycenter/v2/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "NotificationMessageProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Cloud SCC's Notification +message NotificationMessage { + // Name of the notification config that generated current notification. + string notification_config_name = 1; + + // Notification Event. + oneof event { + // If it's a Finding based notification config, this field will be + // populated. + Finding finding = 2; + } + + // The Cloud resource tied to this notification's Finding. + Resource resource = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/org_policy.proto b/third_party/googleapis/google/cloud/securitycenter/v2/org_policy.proto new file mode 100644 index 000000000..0b5255a0c --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/org_policy.proto @@ -0,0 +1,42 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "OrgPolicyProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Contains information about the org policies associated with the finding. +message OrgPolicy { + option (google.api.resource) = { + type: "orgpolicy.googleapis.com/Policy" + pattern: "organizations/{organization}/policies/{constraint_name}" + pattern: "folders/{folder}/policies/{constraint_name}" + pattern: "projects/{project}/policies/{constraint_name}" + }; + + // The resource name of the org policy. + // Example: + // "organizations/{organization_id}/policies/{constraint_name}" + string name = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/process.proto b/third_party/googleapis/google/cloud/securitycenter/v2/process.proto new file mode 100644 index 000000000..abc02e106 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/process.proto @@ -0,0 +1,74 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/cloud/securitycenter/v2/file.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ProcessProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents an operating system process. +message Process { + // The process name, as displayed in utilities like `top` and `ps`. This name + // can be accessed through `/proc/[pid]/comm` and changed with + // `prctl(PR_SET_NAME)`. + string name = 1; + + // File information for the process executable. + File binary = 2; + + // File information for libraries loaded by the process. + repeated File libraries = 3; + + // When the process represents the invocation of a script, `binary` provides + // information about the interpreter, while `script` provides information + // about the script file provided to the interpreter. + File script = 4; + + // Process arguments as JSON encoded strings. + repeated string args = 5; + + // True if `args` is incomplete. + bool arguments_truncated = 6; + + // Process environment variables. + repeated EnvironmentVariable env_variables = 7; + + // True if `env_variables` is incomplete. + bool env_variables_truncated = 8; + + // The process ID. + int64 pid = 9; + + // The parent process ID. + int64 parent_pid = 10; +} + +// A name-value pair representing an environment variable used in an operating +// system process. +message EnvironmentVariable { + // Environment variable name as a JSON encoded string. + string name = 1; + + // Environment variable value as a JSON encoded string. + string val = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/resource.proto b/third_party/googleapis/google/cloud/securitycenter/v2/resource.proto new file mode 100644 index 000000000..0bf07600b --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/resource.proto @@ -0,0 +1,257 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/cloud/securitycenter/v2/folder.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ResourceProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Information related to the Google Cloud resource. +message Resource { + // The full resource name of the resource. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + string name = 1; + + // The human readable name of the resource. + string display_name = 2; + + // The full resource type of the resource. + string type = 3; + + // Indicates which cloud provider the finding is from. + CloudProvider cloud_provider = 4; + + // The service or resource provider associated with the resource. + string service = 5; + + // The region or location of the service (if applicable). + string location = 6; + + oneof cloud_provider_metadata { + // The GCP metadata associated with the finding. + GcpMetadata gcp_metadata = 7; + + // The AWS metadata associated with the finding. + AwsMetadata aws_metadata = 8; + + // The Azure metadata associated with the finding. + AzureMetadata azure_metadata = 9; + } + + // Provides the path to the resource within the resource hierarchy. + ResourcePath resource_path = 10; + + // A string representation of the resource path. + // For Google Cloud, it has the format of + // organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} + // where there can be any number of folders. + // For AWS, it has the format of + // org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} + // where there can be any number of organizational units. + // For Azure, it has the format of + // mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} + // where there can be any number of management groups. + string resource_path_string = 11; +} + +// The cloud provider the finding pertains to. +enum CloudProvider { + // The cloud provider is unspecified. + CLOUD_PROVIDER_UNSPECIFIED = 0; + + // The cloud provider is Google Cloud Platform. + GOOGLE_CLOUD_PLATFORM = 1; + + // The cloud provider is Amazon Web Services. + AMAZON_WEB_SERVICES = 2; + + // The cloud provider is Microsoft Azure. + MICROSOFT_AZURE = 3; +} + +// GCP metadata associated with the resource, only applicable if the finding's +// cloud provider is Google Cloud Platform. +message GcpMetadata { + // The full resource name of project that the resource belongs to. + string project = 1; + + // The project ID that the resource belongs to. + string project_display_name = 2; + + // The full resource name of resource's parent. + string parent = 3; + + // The human readable name of resource's parent. + string parent_display_name = 4; + + // Output only. Contains a Folder message for each folder in the assets + // ancestry. The first folder is the deepest nested folder, and the last + // folder is the folder directly under the Organization. + repeated Folder folders = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the organization that the resource belongs to. + string organization = 6; +} + +// AWS metadata associated with the resource, only applicable if the finding's +// cloud provider is Amazon Web Services. +message AwsMetadata { + // An organization is a collection of accounts that are centrally managed + // together using consolidated billing, organized hierarchically with + // organizational units (OUs), and controlled with policies. + message AwsOrganization { + // The unique identifier (ID) for the organization. The regex pattern for an + // organization ID string requires "o-" followed by from 10 to 32 lowercase + // letters or digits. + string id = 1; + } + + // An Organizational Unit (OU) is a container of AWS accounts within a root of + // an organization. Policies that are attached to an OU apply to all accounts + // contained in that OU and in any child OUs. + message AwsOrganizationalUnit { + // The unique identifier (ID) associated with this OU. The regex pattern for + // an organizational unit ID string requires "ou-" followed by from 4 to 32 + // lowercase letters or digits (the ID of the root that contains the OU). + // This string is followed by a second "-" dash and from 8 to 32 additional + // lowercase letters or digits. For example, "ou-ab12-cd34ef56". + string id = 1; + + // The friendly name of the OU. + string name = 2; + } + + // An AWS account that is a member of an organization. + message AwsAccount { + // The unique identifier (ID) of the account, containing exactly 12 digits. + string id = 1; + + // The friendly name of this account. + string name = 2; + } + + // The AWS organization associated with the resource. + AwsOrganization organization = 1; + + // A list of AWS organizational units associated with the resource, ordered + // from lowest level (closest to the account) to highest level. + repeated AwsOrganizationalUnit organizational_units = 2; + + // The AWS account associated with the resource. + AwsAccount account = 3; +} + +// Azure metadata associated with the resource, only applicable if the finding's +// cloud provider is Microsoft Azure. +message AzureMetadata { + // Represents an Azure management group. + message AzureManagementGroup { + // The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + string id = 1; + + // The display name of the Azure management group. + string display_name = 2; + } + + // Represents an Azure subscription. + message AzureSubscription { + // The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + string id = 1; + + // The display name of the Azure subscription. + string display_name = 2; + } + + // Represents an Azure resource group. + message AzureResourceGroup { + // The name of the Azure resource group. This is not a UUID. + string name = 1; + } + + // A list of Azure management groups associated with the resource, ordered + // from lowest level (closest to the subscription) to highest level. + repeated AzureManagementGroup management_groups = 1; + + // The Azure subscription associated with the resource. + AzureSubscription subscription = 2; + + // The Azure resource group associated with the resource. + AzureResourceGroup resource_group = 3; +} + +// Represents the path of resources leading up to the resource this finding is +// about. +message ResourcePath { + // The type of resource the node represents. + enum ResourcePathNodeType { + // Node type is unspecified. + RESOURCE_PATH_NODE_TYPE_UNSPECIFIED = 0; + + // The node represents a Google Cloud organization. + GCP_ORGANIZATION = 1; + + // The node represents a Google Cloud folder. + GCP_FOLDER = 2; + + // The node represents a Google Cloud project. + GCP_PROJECT = 3; + + // The node represents an AWS organization. + AWS_ORGANIZATION = 4; + + // The node represents an AWS organizational unit. + AWS_ORGANIZATIONAL_UNIT = 5; + + // The node represents an AWS account. + AWS_ACCOUNT = 6; + + // The node represents an Azure management group. + AZURE_MANAGEMENT_GROUP = 7; + + // The node represents an Azure subscription. + AZURE_SUBSCRIPTION = 8; + + // The node represents an Azure resource group. + AZURE_RESOURCE_GROUP = 9; + } + + // A node within the resource path. Each node represents a resource within the + // resource hierarchy. + message ResourcePathNode { + // The type of resource this node represents. + ResourcePathNodeType node_type = 1; + + // The ID of the resource this node represents. + string id = 2; + + // The display name of the resource this node represents. + string display_name = 3; + } + + // The list of nodes that make the up resource path, ordered from lowest + // level to highest level. + repeated ResourcePathNode nodes = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/resource_value_config.proto b/third_party/googleapis/google/cloud/securitycenter/v2/resource_value_config.proto new file mode 100644 index 000000000..683fb1345 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/resource_value_config.proto @@ -0,0 +1,125 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/securitycenter/v2/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ResourceValueConfigProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// A resource value configuration (RVC) is a mapping configuration of user's +// resources to resource values. Used in Attack path simulations. +message ResourceValueConfig { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/ResourceValueConfig" + pattern: "organizations/{organization}/resourceValueConfigs/{resource_value_config}" + pattern: "organizations/{organization}/locations/{location}/resourceValueConfigs/{resource_value_config}" + plural: "resourceValueConfigs" + singular: "resourceValueConfig" + }; + + // Resource value mapping for Sensitive Data Protection findings + // If any of these mappings have a resource value that is not unspecified, + // the resource_value field will be ignored when reading this configuration. + message SensitiveDataProtectionMapping { + // Resource value mapping for high-sensitivity Sensitive Data Protection + // findings + ResourceValue high_sensitivity_mapping = 1; + + // Resource value mapping for medium-sensitivity Sensitive Data Protection + // findings + ResourceValue medium_sensitivity_mapping = 2; + } + + // Name for the resource value configuration + string name = 1; + + // Resource value level this expression represents + // Only required when there is no SDP mapping in the request + ResourceValue resource_value = 2; + + // Required. Tag values combined with AND to check against. + // Values in the form "tagValues/123" + // Example: [ "tagValues/123", "tagValues/456", "tagValues/789" ] + // https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing + repeated string tag_values = 3 [(google.api.field_behavior) = REQUIRED]; + + // Apply resource_value only to resources that match resource_type. + // resource_type will be checked with AND of other resources. + // For example, "storage.googleapis.com/Bucket" with resource_value "HIGH" + // will apply "HIGH" value only to "storage.googleapis.com/Bucket" resources. + string resource_type = 4; + + // Project or folder to scope this configuration to. + // For example, "project/456" would apply this configuration only to resources + // in "project/456" scope will be checked with AND of other + // resources. + string scope = 5; + + // List of resource labels to search for, evaluated with AND. + // For example, "resource_labels_selector": {"key": "value", "env": "prod"} + // will match resources with labels "key": "value" AND "env": + // "prod" + // https://cloud.google.com/resource-manager/docs/creating-managing-labels + map resource_labels_selector = 6; + + // Description of the resource value configuration. + string description = 7; + + // Output only. Timestamp this resource value configuration was created. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp this resource value configuration was last updated. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Cloud provider this configuration applies to + CloudProvider cloud_provider = 10; + + // A mapping of the sensitivity on Sensitive Data Protection finding to + // resource values. This mapping can only be used in combination with a + // resource_type that is related to BigQuery, e.g. + // "bigquery.googleapis.com/Dataset". + SensitiveDataProtectionMapping sensitive_data_protection_mapping = 11; +} + +// Value enum to map to a resource +enum ResourceValue { + // Unspecific value + RESOURCE_VALUE_UNSPECIFIED = 0; + + // High resource value + HIGH = 1; + + // Medium resource value + MEDIUM = 2; + + // Low resource value + LOW = 3; + + // No resource value, e.g. ignore these resources + NONE = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/security_marks.proto b/third_party/googleapis/google/cloud/securitycenter/v2/security_marks.proto new file mode 100644 index 000000000..4b0a08cfb --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/security_marks.proto @@ -0,0 +1,86 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SecurityMarksProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// User specified security marks that are attached to the parent Security +// Command Center resource. Security marks are scoped within a Security Command +// Center organization -- they can be modified and viewed by all users who have +// proper permissions on the organization. +message SecurityMarks { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/SecurityMarks" + pattern: "organizations/{organization}/assets/{asset}/securityMarks" + pattern: "organizations/{organization}/sources/{source}/findings/{finding}/securityMarks" + pattern: "organizations/{organization}/sources/{source}/locations/{location}/findings/{finding}/securityMarks" + pattern: "folders/{folder}/assets/{asset}/securityMarks" + pattern: "folders/{folder}/sources/{source}/findings/{finding}/securityMarks" + pattern: "folders/{folder}/sources/{source}/locations/{location}/findings/{finding}/securityMarks" + pattern: "projects/{project}/assets/{asset}/securityMarks" + pattern: "projects/{project}/sources/{source}/findings/{finding}/securityMarks" + pattern: "projects/{project}/sources/{source}/locations/{location}/findings/{finding}/securityMarks" + }; + + // The relative resource name of the SecurityMarks. See: + // https://cloud.google.com/apis/design/resource_names#relative_resource_name + // The following list shows some examples: + // + // + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + // + + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + string name = 1; + + // Mutable user specified security marks belonging to the parent resource. + // Constraints are as follows: + // + // * Keys and values are treated as case insensitive + // * Keys must be between 1 - 256 characters (inclusive) + // * Keys must be letters, numbers, underscores, or dashes + // * Values have leading and trailing whitespace trimmed, remaining + // characters must be between 1 - 4096 characters (inclusive) + map marks = 2; + + // The canonical name of the marks. The following list shows some examples: + // + // + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + // + + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + // + `folders/{folder_id}/assets/{asset_id}/securityMarks` + // + + // `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + // + + // `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + // + `projects/{project_number}/assets/{asset_id}/securityMarks` + // + + // `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks` + // + + // `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + string canonical_name = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/security_posture.proto b/third_party/googleapis/google/cloud/securitycenter/v2/security_posture.proto new file mode 100644 index 000000000..090ff4cf9 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/security_posture.proto @@ -0,0 +1,76 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SecurityPostureProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents a posture that is deployed on Google Cloud by the +// Security Command Center Posture Management service. +// A posture contains one or more policy sets. A policy set is a +// group of policies that enforce a set of security rules on Google +// Cloud. +message SecurityPosture { + // The policy field that violates the deployed posture and its expected and + // detected values. + message PolicyDriftDetails { + // The name of the updated field, for example + // constraint.implementation.policy_rules[0].enforce + string field = 1; + + // The value of this field that was configured in a posture, for example, + // `true` or `allowed_values={"projects/29831892"}`. + string expected_value = 2; + + // The detected value that violates the deployed posture, for example, + // `false` or `allowed_values={"projects/22831892"}`. + string detected_value = 3; + } + + // Name of the posture, for example, `CIS-Posture`. + string name = 1; + + // The version of the posture, for example, `c7cfa2a8`. + string revision_id = 2; + + // The project, folder, or organization on which the posture is deployed, + // for example, `projects/{project_number}`. + string posture_deployment_resource = 3; + + // The name of the posture deployment, for example, + // `organizations/{org_id}/posturedeployments/{posture_deployment_id}`. + string posture_deployment = 4; + + // The name of the updated policy, for example, + // `projects/{project_id}/policies/{constraint_name}`. + string changed_policy = 5; + + // The name of the updated policy set, for example, `cis-policyset`. + string policy_set = 6; + + // The ID of the updated policy, for example, `compute-policy-1`. + string policy = 7; + + // The details about a change in an updated policy that violates the deployed + // posture. + repeated PolicyDriftDetails policy_drift_details = 8; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/securitycenter_service.proto b/third_party/googleapis/google/cloud/securitycenter/v2/securitycenter_service.proto new file mode 100644 index 000000000..f14bfaa8e --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/securitycenter_service.proto @@ -0,0 +1,2029 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/api/routing.proto"; +import "google/cloud/securitycenter/v2/attack_path.proto"; +import "google/cloud/securitycenter/v2/bigquery_export.proto"; +import "google/cloud/securitycenter/v2/external_system.proto"; +import "google/cloud/securitycenter/v2/finding.proto"; +import "google/cloud/securitycenter/v2/mute_config.proto"; +import "google/cloud/securitycenter/v2/notification_config.proto"; +import "google/cloud/securitycenter/v2/resource.proto"; +import "google/cloud/securitycenter/v2/resource_value_config.proto"; +import "google/cloud/securitycenter/v2/security_marks.proto"; +import "google/cloud/securitycenter/v2/simulation.proto"; +import "google/cloud/securitycenter/v2/source.proto"; +import "google/cloud/securitycenter/v2/valued_resource.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SecuritycenterServiceProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/OrganizationLocation" + pattern: "organizations/{organization}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/FolderLocation" + pattern: "folders/{folder}/locations/{location}" +}; +option (google.api.resource_definition) = { + type: "securitycenter.googleapis.com/OrganizationValuedResource" + pattern: "organizations/{organization}/locations/{location}/simulations/{simulation}/valuedResources/{valued_resource}" +}; + +// V2 APIs for Security Center service. +service SecurityCenter { + option (google.api.default_host) = "securitycenter.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a ResourceValueConfig for an organization. Maps user's tags to + // difference resource values for use by the attack path simulation. + rpc BatchCreateResourceValueConfigs(BatchCreateResourceValueConfigsRequest) + returns (BatchCreateResourceValueConfigsResponse) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*}/resourceValueConfigs:batchCreate" + body: "*" + additional_bindings { + post: "/v2/{parent=organizations/*/locations/*}/resourceValueConfigs:batchCreate" + body: "*" + } + }; + option (google.api.method_signature) = "parent,requests"; + } + + // Kicks off an LRO to bulk mute findings for a parent based on a filter. If + // no location is specified, findings are muted in global. The parent + // can be either an organization, folder, or project. The findings matched by + // the filter will be muted after the LRO is done. + rpc BulkMuteFindings(BulkMuteFindingsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*}/findings:bulkMute" + body: "*" + additional_bindings { + post: "/v2/{parent=organizations/*/locations/*}/findings:bulkMute" + body: "*" + } + additional_bindings { + post: "/v2/{parent=folders/*}/findings:bulkMute" + body: "*" + } + additional_bindings { + post: "/v2/{parent=folders/*/locations/*}/findings:bulkMute" + body: "*" + } + additional_bindings { + post: "/v2/{parent=projects/*}/findings:bulkMute" + body: "*" + } + additional_bindings { + post: "/v2/{parent=projects/*/locations/*}/findings:bulkMute" + body: "*" + } + }; + option (google.api.method_signature) = "parent"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.securitycenter.v2.BulkMuteFindingsResponse" + metadata_type: "google.protobuf.Empty" + }; + } + + // Creates a BigQuery export. + rpc CreateBigQueryExport(CreateBigQueryExportRequest) + returns (BigQueryExport) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*/locations/*}/bigQueryExports" + body: "big_query_export" + additional_bindings { + post: "/v2/{parent=folders/*/locations/*}/bigQueryExports" + body: "big_query_export" + } + additional_bindings { + post: "/v2/{parent=projects/*/locations/*}/bigQueryExports" + body: "big_query_export" + } + }; + option (google.api.method_signature) = + "parent,big_query_export,big_query_export_id"; + } + + // Creates a finding in a location. The corresponding source must exist for + // finding creation to succeed. + rpc CreateFinding(CreateFindingRequest) returns (Finding) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*/sources/*/locations/*}/findings" + body: "finding" + additional_bindings { + post: "/v2/{parent=organizations/*/sources/*}/findings" + body: "finding" + } + }; + option (google.api.method_signature) = "parent,finding,finding_id"; + } + + // Creates a mute config. + rpc CreateMuteConfig(CreateMuteConfigRequest) returns (MuteConfig) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*/locations/*}/muteConfigs" + body: "mute_config" + additional_bindings { + post: "/v2/{parent=folders/*/locations/*}/muteConfigs" + body: "mute_config" + } + additional_bindings { + post: "/v2/{parent=projects/*/locations/*}/muteConfigs" + body: "mute_config" + } + additional_bindings { + post: "/v2/{parent=organizations/*}/muteConfigs" + body: "mute_config" + } + additional_bindings { + post: "/v2/{parent=folders/*}/muteConfigs" + body: "mute_config" + } + additional_bindings { + post: "/v2/{parent=projects/*}/muteConfigs" + body: "mute_config" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + routing_parameters { + field: "parent" + path_template: "organizations/*/locations/{location=*}" + } + routing_parameters { + field: "parent" + path_template: "folders/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent,mute_config,mute_config_id"; + } + + // Creates a notification config. + rpc CreateNotificationConfig(CreateNotificationConfigRequest) + returns (NotificationConfig) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*/locations/*}/notificationConfigs" + body: "notification_config" + additional_bindings { + post: "/v2/{parent=folders/*/locations/*}/notificationConfigs" + body: "notification_config" + } + additional_bindings { + post: "/v2/{parent=projects/*/locations/*}/notificationConfigs" + body: "notification_config" + } + }; + option (google.api.method_signature) = + "parent,notification_config,config_id"; + } + + // Creates a source. + rpc CreateSource(CreateSourceRequest) returns (Source) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*}/sources" + body: "source" + }; + option (google.api.method_signature) = "parent,source"; + } + + // Deletes an existing BigQuery export. + rpc DeleteBigQueryExport(DeleteBigQueryExportRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=organizations/*/locations/*/bigQueryExports/*}" + additional_bindings { + delete: "/v2/{name=folders/*/locations/*/bigQueryExports/*}" + } + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/bigQueryExports/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Deletes an existing mute config. If no location is specified, default is + // global. + rpc DeleteMuteConfig(DeleteMuteConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=organizations/*/muteConfigs/*}" + additional_bindings { + delete: "/v2/{name=organizations/*/locations/*/muteConfigs/*}" + } + additional_bindings { delete: "/v2/{name=folders/*/muteConfigs/*}" } + additional_bindings { + delete: "/v2/{name=folders/*/locations/*/muteConfigs/*}" + } + additional_bindings { delete: "/v2/{name=projects/*/muteConfigs/*}" } + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/muteConfigs/*}" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/muteConfigs/*" + } + routing_parameters { + field: "name" + path_template: "organizations/*/locations/{location=*}/muteConfigs/*" + } + routing_parameters { + field: "name" + path_template: "folders/*/locations/{location=*}/muteConfigs/*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a notification config. + rpc DeleteNotificationConfig(DeleteNotificationConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=organizations/*/locations/*/notificationConfigs/*}" + additional_bindings { + delete: "/v2/{name=folders/*/locations/*/notificationConfigs/*}" + } + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/notificationConfigs/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a ResourceValueConfig. + rpc DeleteResourceValueConfig(DeleteResourceValueConfigRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=organizations/*/resourceValueConfigs/*}" + additional_bindings { + delete: "/v2/{name=organizations/*/locations/*/resourceValueConfigs/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a BigQuery export. + rpc GetBigQueryExport(GetBigQueryExportRequest) returns (BigQueryExport) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/locations/*/bigQueryExports/*}" + additional_bindings { + get: "/v2/{name=folders/*/locations/*/bigQueryExports/*}" + } + additional_bindings { + get: "/v2/{name=projects/*/locations/*/bigQueryExports/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Get the simulation by name or the latest simulation for the given + // organization. + rpc GetSimulation(GetSimulationRequest) returns (Simulation) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/simulations/*}" + additional_bindings { + get: "/v2/{name=organizations/*/locations/*/simulations/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Get the valued resource by name + rpc GetValuedResource(GetValuedResourceRequest) returns (ValuedResource) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/simulations/*/valuedResources/*}" + additional_bindings { + get: "/v2/{name=organizations/*/locations/*/simulations/*/valuedResources/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets the access control policy on the specified Source. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v2/{resource=organizations/*/sources/*}:getIamPolicy" + body: "*" + }; + option (google.api.method_signature) = "resource"; + } + + // Gets a mute config. If no location is specified, default is + // global. + rpc GetMuteConfig(GetMuteConfigRequest) returns (MuteConfig) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/muteConfigs/*}" + additional_bindings { + get: "/v2/{name=organizations/*/locations/*/muteConfigs/*}" + } + additional_bindings { get: "/v2/{name=folders/*/muteConfigs/*}" } + additional_bindings { + get: "/v2/{name=folders/*/locations/*/muteConfigs/*}" + } + additional_bindings { get: "/v2/{name=projects/*/muteConfigs/*}" } + additional_bindings { + get: "/v2/{name=projects/*/locations/*/muteConfigs/*}" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/muteConfigs/*" + } + routing_parameters { + field: "name" + path_template: "organizations/*/locations/{location=*}/muteConfigs/*" + } + routing_parameters { + field: "name" + path_template: "folders/*/locations/{location=*}/muteConfigs/*" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a notification config. + rpc GetNotificationConfig(GetNotificationConfigRequest) + returns (NotificationConfig) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/locations/*/notificationConfigs/*}" + additional_bindings { + get: "/v2/{name=folders/*/locations/*/notificationConfigs/*}" + } + additional_bindings { + get: "/v2/{name=projects/*/locations/*/notificationConfigs/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a ResourceValueConfig. + rpc GetResourceValueConfig(GetResourceValueConfigRequest) + returns (ResourceValueConfig) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/resourceValueConfigs/*}" + additional_bindings { + get: "/v2/{name=organizations/*/locations/*/resourceValueConfigs/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a source. + rpc GetSource(GetSourceRequest) returns (Source) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/sources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Filters an organization or source's findings and groups them by their + // specified properties in a location. If no location is specified, findings + // are assumed to be in global + // + // To group across all sources provide a `-` as the source id. + // The following list shows some examples: + // + // + `/v2/organizations/{organization_id}/sources/-/findings` + // + + // `/v2/organizations/{organization_id}/sources/-/locations/{location_id}/findings` + // + `/v2/folders/{folder_id}/sources/-/findings` + // + `/v2/folders/{folder_id}/sources/-/locations/{location_id}/findings` + // + `/v2/projects/{project_id}/sources/-/findings` + // + `/v2/projects/{project_id}/sources/-/locations/{location_id}/findings` + rpc GroupFindings(GroupFindingsRequest) returns (GroupFindingsResponse) { + option (google.api.http) = { + post: "/v2/{parent=organizations/*/sources/*}/findings:group" + body: "*" + additional_bindings { + post: "/v2/{parent=organizations/*/sources/*/locations/*}/findings:group" + body: "*" + } + additional_bindings { + post: "/v2/{parent=folders/*/sources/*}/findings:group" + body: "*" + } + additional_bindings { + post: "/v2/{parent=folders/*/sources/*/locations/*}/findings:group" + body: "*" + } + additional_bindings { + post: "/v2/{parent=projects/*/sources/*}/findings:group" + body: "*" + } + additional_bindings { + post: "/v2/{parent=projects/*/sources/*/locations/*}/findings:group" + body: "*" + } + }; + option (google.api.method_signature) = "parent,group_by"; + } + + // Lists the attack paths for a set of simulation results or valued resources + // and filter. + rpc ListAttackPaths(ListAttackPathsRequest) + returns (ListAttackPathsResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/simulations/*}/attackPaths" + additional_bindings { + get: "/v2/{parent=organizations/*/simulations/*/valuedResources/*}/attackPaths" + } + additional_bindings { + get: "/v2/{parent=organizations/*/locations/*/simulations/*/valuedResources/*}/attackPaths" + } + additional_bindings { + get: "/v2/{parent=organizations/*/simulations/*/attackExposureResults/*}/attackPaths" + } + additional_bindings { + get: "/v2/{parent=organizations/*/locations/*/simulations/*/attackExposureResults/*}/attackPaths" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists BigQuery exports. Note that when requesting BigQuery exports at a + // given level all exports under that level are also returned e.g. if + // requesting BigQuery exports under a folder, then all BigQuery exports + // immediately under the folder plus the ones created under the projects + // within the folder are returned. + rpc ListBigQueryExports(ListBigQueryExportsRequest) + returns (ListBigQueryExportsResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/locations/*}/bigQueryExports" + additional_bindings { + get: "/v2/{parent=folders/*/locations/*}/bigQueryExports" + } + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/bigQueryExports" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists an organization or source's findings. + // + // To list across all sources for a given location provide a `-` as the source + // id. If no location is specified, finding are assumed to be in global. + // The following list shows some examples: + // + // + `/v2/organizations/{organization_id}/sources/-/findings` + // + + // `/v2/organizations/{organization_id}/sources/-/locations/{location_id}/findings` + rpc ListFindings(ListFindingsRequest) returns (ListFindingsResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/sources/*}/findings" + additional_bindings { + get: "/v2/{parent=organizations/*/sources/*/locations/*}/findings" + } + additional_bindings { get: "/v2/{parent=folders/*/sources/*}/findings" } + additional_bindings { + get: "/v2/{parent=folders/*/sources/*/locations/*}/findings" + } + additional_bindings { get: "/v2/{parent=projects/*/sources/*}/findings" } + additional_bindings { + get: "/v2/{parent=projects/*/sources/*/locations/*}/findings" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists mute configs. If no location is specified, default is + // global. + rpc ListMuteConfigs(ListMuteConfigsRequest) + returns (ListMuteConfigsResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*}/muteConfigs" + additional_bindings { + get: "/v2/{parent=organizations/*/locations/*}/muteConfigs" + } + additional_bindings { get: "/v2/{parent=folders/*}/muteConfigs" } + additional_bindings { + get: "/v2/{parent=folders/*/locations/*}/muteConfigs" + } + additional_bindings { get: "/v2/{parent=projects/*}/muteConfigs" } + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/muteConfigs" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}/muteConfigs" + } + routing_parameters { + field: "parent" + path_template: "organizations/*/locations/{location=*}/muteConfigs" + } + routing_parameters { + field: "parent" + path_template: "folders/*/locations/{location=*}/muteConfigs" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists notification configs. + rpc ListNotificationConfigs(ListNotificationConfigsRequest) + returns (ListNotificationConfigsResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/locations/*}/notificationConfigs" + additional_bindings { + get: "/v2/{parent=folders/*/locations/*}/notificationConfigs" + } + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/notificationConfigs" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all ResourceValueConfigs. + rpc ListResourceValueConfigs(ListResourceValueConfigsRequest) + returns (ListResourceValueConfigsResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*}/resourceValueConfigs" + additional_bindings { + get: "/v2/{parent=organizations/*/locations/*}/resourceValueConfigs" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all sources belonging to an organization. + rpc ListSources(ListSourcesRequest) returns (ListSourcesResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*}/sources" + additional_bindings { get: "/v2/{parent=folders/*}/sources" } + additional_bindings { get: "/v2/{parent=projects/*}/sources" } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the valued resources for a set of simulation results and filter. + rpc ListValuedResources(ListValuedResourcesRequest) + returns (ListValuedResourcesResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/simulations/*}/valuedResources" + additional_bindings { + get: "/v2/{parent=organizations/*/simulations/*/attackExposureResults/*}/valuedResources" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates the state of a finding. If no location is specified, finding is + // assumed to be in global + rpc SetFindingState(SetFindingStateRequest) returns (Finding) { + option (google.api.http) = { + post: "/v2/{name=organizations/*/sources/*/findings/*}:setState" + body: "*" + additional_bindings { + post: "/v2/{name=organizations/*/sources/*/locations/*/findings/*}:setState" + body: "*" + } + additional_bindings { + post: "/v2/{name=folders/*/sources/*/findings/*}:setState" + body: "*" + } + additional_bindings { + post: "/v2/{name=folders/*/sources/*/locations/*/findings/*}:setState" + body: "*" + } + additional_bindings { + post: "/v2/{name=projects/*/sources/*/findings/*}:setState" + body: "*" + } + additional_bindings { + post: "/v2/{name=projects/*/sources/*/locations/*/findings/*}:setState" + body: "*" + } + }; + option (google.api.method_signature) = "name,state"; + } + + // Sets the access control policy on the specified Source. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v2/{resource=organizations/*/sources/*}:setIamPolicy" + body: "*" + }; + option (google.api.method_signature) = "resource,policy"; + } + + // Updates the mute state of a finding. If no location is specified, finding + // is assumed to be in global + rpc SetMute(SetMuteRequest) returns (Finding) { + option (google.api.http) = { + post: "/v2/{name=organizations/*/sources/*/findings/*}:setMute" + body: "*" + additional_bindings { + post: "/v2/{name=organizations/*/sources/*/locations/*/findings/*}:setMute" + body: "*" + } + additional_bindings { + post: "/v2/{name=folders/*/sources/*/findings/*}:setMute" + body: "*" + } + additional_bindings { + post: "/v2/{name=folders/*/sources/*/locations/*/findings/*}:setMute" + body: "*" + } + additional_bindings { + post: "/v2/{name=projects/*/sources/*/findings/*}:setMute" + body: "*" + } + additional_bindings { + post: "/v2/{name=projects/*/sources/*/locations/*/findings/*}:setMute" + body: "*" + } + }; + option (google.api.method_signature) = "name,mute"; + } + + // Returns the permissions that a caller has on the specified source. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v2/{resource=organizations/*/sources/*}:testIamPermissions" + body: "*" + }; + option (google.api.method_signature) = "resource,permissions"; + } + + // Updates a BigQuery export. + rpc UpdateBigQueryExport(UpdateBigQueryExportRequest) + returns (BigQueryExport) { + option (google.api.http) = { + patch: "/v2/{big_query_export.name=organizations/*/locations/*/bigQueryExports/*}" + body: "big_query_export" + additional_bindings { + patch: "/v2/{big_query_export.name=folders/*/locations/*/bigQueryExports/*}" + body: "big_query_export" + } + additional_bindings { + patch: "/v2/{big_query_export.name=projects/*/locations/*/bigQueryExports/*}" + body: "big_query_export" + } + }; + option (google.api.method_signature) = "big_query_export,update_mask"; + } + + // Updates external system. This is for a given finding. If no location is + // specified, finding is assumed to be in global + rpc UpdateExternalSystem(UpdateExternalSystemRequest) + returns (ExternalSystem) { + option (google.api.http) = { + patch: "/v2/{external_system.name=organizations/*/sources/*/findings/*/externalSystems/*}" + body: "external_system" + additional_bindings { + patch: "/v2/{external_system.name=organizations/*/sources/*/locations/*/findings/*/externalSystems/*}" + body: "external_system" + } + additional_bindings { + patch: "/v2/{external_system.name=folders/*/sources/*/findings/*/externalSystems/*}" + body: "external_system" + } + additional_bindings { + patch: "/v2/{external_system.name=folders/*/sources/*/locations/*/findings/*/externalSystems/*}" + body: "external_system" + } + additional_bindings { + patch: "/v2/{external_system.name=projects/*/sources/*/findings/*/externalSystems/*}" + body: "external_system" + } + additional_bindings { + patch: "/v2/{external_system.name=projects/*/sources/*/locations/*/findings/*/externalSystems/*}" + body: "external_system" + } + }; + option (google.api.method_signature) = "external_system,update_mask"; + } + + // Creates or updates a finding. If no location is specified, finding is + // assumed to be in global. The corresponding source must exist for a finding + // creation to succeed. + rpc UpdateFinding(UpdateFindingRequest) returns (Finding) { + option (google.api.http) = { + patch: "/v2/{finding.name=organizations/*/sources/*/findings/*}" + body: "finding" + additional_bindings { + patch: "/v2/{finding.name=organizations/*/sources/*/locations/*/findings/*}" + body: "finding" + } + additional_bindings { + patch: "/v2/{finding.name=folders/*/sources/*/findings/*}" + body: "finding" + } + additional_bindings { + patch: "/v2/{finding.name=folders/*/sources/*/locations/*/findings/*}" + body: "finding" + } + additional_bindings { + patch: "/v2/{finding.name=projects/*/sources/*/findings/*}" + body: "finding" + } + additional_bindings { + patch: "/v2/{finding.name=projects/*/sources/*/locations/*/findings/*}" + body: "finding" + } + }; + option (google.api.method_signature) = "finding,update_mask"; + } + + // Updates a mute config. If no location is specified, default is + // global. + rpc UpdateMuteConfig(UpdateMuteConfigRequest) returns (MuteConfig) { + option (google.api.http) = { + patch: "/v2/{mute_config.name=organizations/*/muteConfigs/*}" + body: "mute_config" + additional_bindings { + patch: "/v2/{mute_config.name=organizations/*/locations/*/muteConfigs/*}" + body: "mute_config" + } + additional_bindings { + patch: "/v2/{mute_config.name=folders/*/muteConfigs/*}" + body: "mute_config" + } + additional_bindings { + patch: "/v2/{mute_config.name=folders/*/locations/*/muteConfigs/*}" + body: "mute_config" + } + additional_bindings { + patch: "/v2/{mute_config.name=projects/*/muteConfigs/*}" + body: "mute_config" + } + additional_bindings { + patch: "/v2/{mute_config.name=projects/*/locations/*/muteConfigs/*}" + body: "mute_config" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "mute_config.name" + path_template: "projects/*/locations/{location=*}/muteConfigs/*" + } + routing_parameters { + field: "mute_config.name" + path_template: "organizations/*/locations/{location=*}/muteConfigs/*" + } + routing_parameters { + field: "mute_config.name" + path_template: "folders/*/locations/{location=*}/muteConfigs/*" + } + }; + option (google.api.method_signature) = "mute_config,update_mask"; + } + + // Updates a notification config. The following update + // fields are allowed: description, pubsub_topic, streaming_config.filter + rpc UpdateNotificationConfig(UpdateNotificationConfigRequest) + returns (NotificationConfig) { + option (google.api.http) = { + patch: "/v2/{notification_config.name=organizations/*/locations/*/notificationConfigs/*}" + body: "notification_config" + additional_bindings { + patch: "/v2/{notification_config.name=folders/*/locations/*/notificationConfigs/*}" + body: "notification_config" + } + additional_bindings { + patch: "/v2/{notification_config.name=projects/*/locations/*/notificationConfigs/*}" + body: "notification_config" + } + }; + option (google.api.method_signature) = "notification_config,update_mask"; + } + + // Updates an existing ResourceValueConfigs with new rules. + rpc UpdateResourceValueConfig(UpdateResourceValueConfigRequest) + returns (ResourceValueConfig) { + option (google.api.http) = { + patch: "/v2/{resource_value_config.name=organizations/*/resourceValueConfigs/*}" + body: "resource_value_config" + additional_bindings { + patch: "/v2/{resource_value_config.name=organizations/*/locations/*/resourceValueConfigs/*}" + body: "resource_value_config" + } + }; + option (google.api.method_signature) = "resource_value_config,update_mask"; + } + + // Updates security marks. For Finding Security marks, if no location is + // specified, finding is assumed to be in global. Assets Security Marks can + // only be accessed through global endpoint. + rpc UpdateSecurityMarks(UpdateSecurityMarksRequest) returns (SecurityMarks) { + option (google.api.http) = { + patch: "/v2/{security_marks.name=organizations/*/sources/*/findings/*/securityMarks}" + body: "security_marks" + additional_bindings { + patch: "/v2/{security_marks.name=organizations/*/assets/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=organizations/*/sources/*/locations/*/findings/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=folders/*/sources/*/findings/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=folders/*/assets/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=folders/*/sources/*/locations/*/findings/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=projects/*/sources/*/findings/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=projects/*/assets/*/securityMarks}" + body: "security_marks" + } + additional_bindings { + patch: "/v2/{security_marks.name=projects/*/sources/*/locations/*/findings/*/securityMarks}" + body: "security_marks" + } + }; + option (google.api.method_signature) = "security_marks,update_mask"; + } + + // Updates a source. + rpc UpdateSource(UpdateSourceRequest) returns (Source) { + option (google.api.http) = { + patch: "/v2/{source.name=organizations/*/sources/*}" + body: "source" + }; + option (google.api.method_signature) = "source,update_mask"; + } +} + +// Request message to create multiple resource value configs +message BatchCreateResourceValueConfigsRequest { + // Required. Resource name of the new ResourceValueConfig's parent. + // The parent field in the CreateResourceValueConfigRequest + // messages must either be empty or match this field. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; + + // Required. The resource value configs to be created. + repeated CreateResourceValueConfigRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for BatchCreateResourceValueConfigs +message BatchCreateResourceValueConfigsResponse { + // The resource value configs created + repeated ResourceValueConfig resource_value_configs = 1; +} + +// Request message for bulk findings update. +// +// Note: +// 1. If multiple bulk update requests match the same resource, the order in +// which they get executed is not defined. +// 2. Once a bulk operation is started, there is no way to stop it. +message BulkMuteFindingsRequest { + // Required. The parent, at which bulk action needs to be applied. If no + // location is specified, findings are updated in global. The following list + // shows some examples: + // + // + `organizations/[organization_id]` + // + `organizations/[organization_id]/locations/[location_id]` + // + `folders/[folder_id]` + // + `folders/[folder_id]/locations/[location_id]` + // + `projects/[project_id]` + // + `projects/[project_id]/locations/[location_id]` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "*" } + ]; + + // Expression that identifies findings that should be updated. + // The expression is a list of zero or more restrictions combined + // via logical operators `AND` and `OR`. Parentheses are supported, and `OR` + // has higher precedence than `AND`. + // + // Restrictions have the form ` ` and may have a + // `-` character in front of them to indicate negation. The fields map to + // those defined in the corresponding resource. + // + // The supported operators are: + // + // * `=` for all value types. + // * `>`, `<`, `>=`, `<=` for integer values. + // * `:`, meaning substring matching, for strings. + // + // The supported value types are: + // + // * string literals in quotes. + // * integer literals without quotes. + // * boolean literals `true` and `false` without quotes. + string filter = 2; +} + +// The response to a BulkMute request. Contains the LRO information. +message BulkMuteFindingsResponse {} + +// Request message for creating a BigQuery export. +message CreateBigQueryExportRequest { + // Required. The name of the parent resource of the new BigQuery export. Its + // format is "organizations/[organization_id]/locations/[location_id]", + // "folders/[folder_id]/locations/[location_id]", or + // "projects/[project_id]/locations/[location_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/BigQueryExport" + } + ]; + + // Required. The BigQuery export being created. + BigQueryExport big_query_export = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Unique identifier provided by the client within the parent scope. + // It must consist of only lowercase letters, numbers, and hyphens, must start + // with a letter, must end with either a letter or a number, and must be 63 + // characters or less. + string big_query_export_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for creating a finding. +message CreateFindingRequest { + // Required. Resource name of the new finding's parent. The following list + // shows some examples of the format: + // + + // `organizations/[organization_id]/sources/[source_id]` + // + + // `organizations/[organization_id]/sources/[source_id]/locations/[location_id]` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Source" + } + ]; + + // Required. Unique identifier provided by the client within the parent scope. + // It must be alphanumeric and less than or equal to 32 characters and + // greater than 0 characters in length. + string finding_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Finding being created. The name and security_marks will be + // ignored as they are both output only fields on this resource. + Finding finding = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for creating a mute config. +message CreateMuteConfigRequest { + // Required. Resource name of the new mute configs's parent. Its format is + // "organizations/[organization_id]/locations/[location_id]", + // "folders/[folder_id]/locations/[location_id]", or + // "projects/[project_id]/locations/[location_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/MuteConfig" + } + ]; + + // Required. The mute config being created. + MuteConfig mute_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Unique identifier provided by the client within the parent scope. + // It must consist of only lowercase letters, numbers, and hyphens, must start + // with a letter, must end with either a letter or a number, and must be 63 + // characters or less. + string mute_config_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for creating a notification config. +message CreateNotificationConfigRequest { + // Required. Resource name of the new notification config's parent. Its format + // is "organizations/[organization_id]/locations/[location_id]", + // "folders/[folder_id]/locations/[location_id]", or + // "projects/[project_id]/locations/[location_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/NotificationConfig" + } + ]; + + // Required. + // Unique identifier provided by the client within the parent scope. + // It must be between 1 and 128 characters and contain alphanumeric + // characters, underscores, or hyphens only. + string config_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The notification config being created. The name and the service + // account will be ignored as they are both output only fields on this + // resource. + NotificationConfig notification_config = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message to create single resource value config +message CreateResourceValueConfigRequest { + // Required. Resource name of the new ResourceValueConfig's parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; + + // Required. The resource value config being created. + ResourceValueConfig resource_value_config = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for creating a source. +message CreateSourceRequest { + // Required. Resource name of the new source's parent. Its format should be + // "organizations/[organization_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Organization" + } + ]; + + // Required. The Source being created, only the display_name and description + // will be used. All other fields will be ignored. + Source source = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for deleting a BigQuery export. +message DeleteBigQueryExportRequest { + // Required. The name of the BigQuery export to delete. The following list + // shows some examples of the format: + // + // + + // `organizations/{organization}/locations/{location}/bigQueryExports/{export_id}` + // + `folders/{folder}/locations/{location}/bigQueryExports/{export_id}` + // + `projects/{project}/locations/{location}/bigQueryExports/{export_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/BigQueryExport" + } + ]; +} + +// Request message for deleting a mute config. If no location is specified, +// default is global. +message DeleteMuteConfigRequest { + // Required. Name of the mute config to delete. The following list shows some + // examples of the format: + // + // + `organizations/{organization}/muteConfigs/{config_id}` + // + + // `organizations/{organization}/locations/{location}/muteConfigs/{config_id}` + // + `folders/{folder}/muteConfigs/{config_id}` + // + `folders/{folder}/locations/{location}/muteConfigs/{config_id}` + // + `projects/{project}/muteConfigs/{config_id}` + // + `projects/{project}/locations/{location}/muteConfigs/{config_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/MuteConfig" + } + ]; +} + +// Request message for deleting a notification config. +message DeleteNotificationConfigRequest { + // Required. Name of the notification config to delete. The following list + // shows some examples of the format: + // + // + + // `organizations/[organization_id]/locations/[location_id]/notificationConfigs/[config_id]` + // + + // `folders/[folder_id]/locations/[location_id]notificationConfigs/[config_id]` + // + + // `projects/[project_id]/locations/[location_id]notificationConfigs/[config_id]` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/NotificationConfig" + } + ]; +} + +// Request message to delete resource value config +message DeleteResourceValueConfigRequest { + // Required. Name of the ResourceValueConfig to delete + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; +} + +// Request message for retrieving a BigQuery export. +message GetBigQueryExportRequest { + // Required. Name of the BigQuery export to retrieve. The following list shows + // some examples of the format: + // + // + + // `organizations/{organization}/locations/{location}/bigQueryExports/{export_id}` + // + `folders/{folder}/locations/{location}/bigQueryExports/{export_id}` + // + `projects/{project}locations/{location}//bigQueryExports/{export_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/BigQueryExport" + } + ]; +} + +// Request message for retrieving a mute config. If no location is specified, +// default is global. +message GetMuteConfigRequest { + // Required. Name of the mute config to retrieve. The following list shows + // some examples of the format: + // + // + `organizations/{organization}/muteConfigs/{config_id}` + // + + // `organizations/{organization}/locations/{location}/muteConfigs/{config_id}` + // + `folders/{folder}/muteConfigs/{config_id}` + // + `folders/{folder}/locations/{location}/muteConfigs/{config_id}` + // + `projects/{project}/muteConfigs/{config_id}` + // + `projects/{project}/locations/{location}/muteConfigs/{config_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/MuteConfig" + } + ]; +} + +// Request message for getting a notification config. +message GetNotificationConfigRequest { + // Required. Name of the notification config to get. The following list shows + // some examples of the format: + // + // + + // `organizations/[organization_id]/locations/[location_id]/notificationConfigs/[config_id]` + // + + // `folders/[folder_id]/locations/[location_id]/notificationConfigs/[config_id]` + // + + // `projects/[project_id]/locations/[location_id]/notificationConfigs/[config_id]` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/NotificationConfig" + } + ]; +} + +// Request message to get resource value config +message GetResourceValueConfigRequest { + // Required. Name of the resource value config to retrieve. Its format is + // organizations/{organization}/resourceValueConfigs/{config_id}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; +} + +// Request message for getting a source. +message GetSourceRequest { + // Required. Relative resource name of the source. Its format is + // "organizations/[organization_id]/source/[source_id]". + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Source" + } + ]; +} + +// Request message for grouping by findings. +message GroupFindingsRequest { + // Required. Name of the source to groupBy. If no location is specified, + // finding is assumed to be in global. + // The following list shows some examples: + // + // + `organizations/[organization_id]/sources/[source_id]` + // + + // `organizations/[organization_id]/sources/[source_id]/locations/[location_id]` + // + `folders/[folder_id]/sources/[source_id]` + // + `folders/[folder_id]/sources/[source_id]/locations/[location_id]` + // + `projects/[project_id]/sources/[source_id]` + // + `projects/[project_id]/sources/[source_id]/locations/[location_id]` + // + // To groupBy across all sources provide a source_id of `-`. The following + // list shows some examples: + // + // + `organizations/{organization_id}/sources/-` + // + `organizations/{organization_id}/sources/-/locations/[location_id]` + // + `folders/{folder_id}/sources/-` + // + `folders/{folder_id}/sources/-/locations/[location_id]` + // + `projects/{project_id}/sources/-` + // + `projects/{project_id}/sources/-/locations/[location_id]` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Source" + } + ]; + + // Expression that defines the filter to apply across findings. + // The expression is a list of one or more restrictions combined via logical + // operators `AND` and `OR`. + // Parentheses are supported, and `OR` has higher precedence than `AND`. + // + // Restrictions have the form ` ` and may have a `-` + // character in front of them to indicate negation. Examples include: + // + // * name + // * security_marks.marks.marka + // + // The supported operators are: + // + // * `=` for all value types. + // * `>`, `<`, `>=`, `<=` for integer values. + // * `:`, meaning substring matching, for strings. + // + // The supported value types are: + // + // * string literals in quotes. + // * integer literals without quotes. + // * boolean literals `true` and `false` without quotes. + // + // The following field and operator combinations are supported: + // + // * name: `=` + // * parent: `=`, `:` + // * resource_name: `=`, `:` + // * state: `=`, `:` + // * category: `=`, `:` + // * external_uri: `=`, `:` + // * event_time: `=`, `>`, `<`, `>=`, `<=` + // + // Usage: This should be milliseconds since epoch or an RFC3339 string. + // Examples: + // `event_time = "2019-06-10T16:07:18-07:00"` + // `event_time = 1560208038000` + // + // * severity: `=`, `:` + // * security_marks.marks: `=`, `:` + // * resource: + // * resource.name: `=`, `:` + // * resource.parent_name: `=`, `:` + // * resource.parent_display_name: `=`, `:` + // * resource.project_name: `=`, `:` + // * resource.project_display_name: `=`, `:` + // * resource.type: `=`, `:` + string filter = 2; + + // Required. Expression that defines what assets fields to use for grouping. + // The string value should follow SQL syntax: comma separated list of fields. + // For example: "parent,resource_name". + string group_by = 3 [(google.api.field_behavior) = REQUIRED]; + + // The value returned by the last `GroupFindingsResponse`; indicates + // that this is a continuation of a prior `GroupFindings` call, and + // that the system should return the next page of data. + string page_token = 7; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 8; +} + +// Response message for group by findings. +message GroupFindingsResponse { + // Group results. There exists an element for each existing unique + // combination of property/values. The element contains a count for the number + // of times those specific property/values appear. + repeated GroupResult group_by_results = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 3; + + // The total number of results matching the query. + int32 total_size = 4; +} + +// Result containing the properties and count of a groupBy request. +message GroupResult { + // Properties matching the groupBy fields in the request. + map properties = 1; + + // Total count of resources for the given properties. + int64 count = 2; +} + +// Request message for listing the attack paths for a given simulation or valued +// resource. +message ListAttackPathsRequest { + // Required. Name of parent to list attack paths. + // + // Valid formats: + // "organizations/{organization}", + // "organizations/{organization}/simulations/{simulation}" + // "organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}" + // "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/AttackPath" + } + ]; + + // The filter expression that filters the attack path in the response. + // Supported fields: + // + // * `valued_resources` supports = + string filter = 2; + + // The value returned by the last `ListAttackPathsResponse`; indicates + // that this is a continuation of a prior `ListAttackPaths` call, and + // that the system should return the next page of data. + string page_token = 3; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 4; +} + +// Response message for listing the attack paths for a given simulation or +// valued resource. +message ListAttackPathsResponse { + // The attack paths that the attack path simulation identified. + repeated AttackPath attack_paths = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 2; +} + +// Request message for getting simulation. +// Simulation name can include "latest" to retrieve the latest simulation +// For example, "organizations/123/simulations/latest" +message GetSimulationRequest { + // Required. The organization name or simulation name of this simulation + // + // Valid format: + // "organizations/{organization}/simulations/latest" + // "organizations/{organization}/simulations/{simulation}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Simulation" + } + ]; +} + +// Request message for getting a valued resource. +message GetValuedResourceRequest { + // Required. The name of this valued resource + // + // Valid format: + // "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/ValuedResource" + } + ]; +} + +// Request message for listing BigQuery exports at a given scope e.g. +// organization, folder or project. +message ListBigQueryExportsRequest { + // Required. The parent, which owns the collection of BigQuery exports. Its + // format is "organizations/[organization_id]/locations/[location_id]", + // "folders/[folder_id]/locations/[location_id]", or + // "projects/[project_id]/locations/[location_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/BigQueryExport" + } + ]; + + // The maximum number of configs to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListBigQueryExports` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListBigQueryExports` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for listing BigQuery exports. +message ListBigQueryExportsResponse { + // The BigQuery exports from the specified parent. + repeated BigQueryExport big_query_exports = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for listing findings. +message ListFindingsRequest { + // Required. Name of the source the findings belong to. If no location is + // specified, the default is global. The following list shows some examples: + // + // + `organizations/[organization_id]/sources/[source_id]` + // + + // `organizations/[organization_id]/sources/[source_id]/locations/[location_id]` + // + `folders/[folder_id]/sources/[source_id]` + // + `folders/[folder_id]/sources/[source_id]/locations/[location_id]` + // + `projects/[project_id]/sources/[source_id]` + // + `projects/[project_id]/sources/[source_id]/locations/[location_id]` + // + // To list across all sources provide a source_id of `-`. The following + // list shows some examples: + // + // + `organizations/{organization_id}/sources/-` + // + `organizations/{organization_id}/sources/-/locations/{location_id}` + // + `folders/{folder_id}/sources/-` + // + `folders/{folder_id}/sources/-locations/{location_id}` + // + `projects/{projects_id}/sources/-` + // + `projects/{projects_id}/sources/-/locations/{location_id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Source" + } + ]; + + // Expression that defines the filter to apply across findings. + // The expression is a list of one or more restrictions combined via logical + // operators `AND` and `OR`. + // Parentheses are supported, and `OR` has higher precedence than `AND`. + // + // Restrictions have the form ` ` and may have a `-` + // character in front of them to indicate negation. Examples include: + // + // * name + // * security_marks.marks.marka + // + // The supported operators are: + // + // * `=` for all value types. + // * `>`, `<`, `>=`, `<=` for integer values. + // * `:`, meaning substring matching, for strings. + // + // The supported value types are: + // + // * string literals in quotes. + // * integer literals without quotes. + // * boolean literals `true` and `false` without quotes. + // + // The following field and operator combinations are supported: + // + // * name: `=` + // * parent: `=`, `:` + // * resource_name: `=`, `:` + // * state: `=`, `:` + // * category: `=`, `:` + // * external_uri: `=`, `:` + // * event_time: `=`, `>`, `<`, `>=`, `<=` + // + // Usage: This should be milliseconds since epoch or an RFC3339 string. + // Examples: + // `event_time = "2019-06-10T16:07:18-07:00"` + // `event_time = 1560208038000` + // + // * severity: `=`, `:` + // * security_marks.marks: `=`, `:` + // * resource: + // * resource.name: `=`, `:` + // * resource.parent_name: `=`, `:` + // * resource.parent_display_name: `=`, `:` + // * resource.project_name: `=`, `:` + // * resource.project_display_name: `=`, `:` + // * resource.type: `=`, `:` + // * resource.folders.resource_folder: `=`, `:` + // * resource.display_name: `=`, `:` + string filter = 2; + + // Expression that defines what fields and order to use for sorting. The + // string value should follow SQL syntax: comma separated list of fields. For + // example: "name,parent". The default sorting order + // is ascending. To specify descending order for a field, a suffix " desc" + // should be appended to the field name. For example: "name + // desc,parent". Redundant space characters in the + // syntax are insignificant. "name desc,parent" and " + // name desc , parent " are equivalent. + // + // The following fields are supported: + // name + // parent + // state + // category + // resource_name + // event_time + // security_marks.marks + string order_by = 3; + + // A field mask to specify the Finding fields to be listed in the response. + // An empty field mask will list all fields. + google.protobuf.FieldMask field_mask = 7; + + // The value returned by the last `ListFindingsResponse`; indicates + // that this is a continuation of a prior `ListFindings` call, and + // that the system should return the next page of data. + string page_token = 8; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 9; +} + +// Response message for listing findings. +message ListFindingsResponse { + // Result containing the Finding. + message ListFindingsResult { + // Information related to the Google Cloud resource that is + // associated with this finding. + message Resource { + // The full resource name of the resource. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + string name = 1; + + // The human readable name of the resource. + string display_name = 2; + + // The full resource type of the resource. + string type = 3; + + // Indicates which cloud provider the finding is from. + CloudProvider cloud_provider = 4; + + // The service or resource provider associated with the resource. + string service = 5; + + // The region or location of the service (if applicable). + string location = 6; + + oneof cloud_provider_metadata { + // The GCP metadata associated with the finding. + GcpMetadata gcp_metadata = 7; + + // The AWS metadata associated with the finding. + AwsMetadata aws_metadata = 8; + + // The Azure metadata associated with the finding. + AzureMetadata azure_metadata = 9; + } + + // Provides the path to the resource within the resource hierarchy. + ResourcePath resource_path = 10; + + // A string representation of the resource path. + // For Google Cloud, it has the format of + // organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} + // where there can be any number of folders. + // For AWS, it has the format of + // org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} + // where there can be any number of organizational units. + // For Azure, it has the format of + // mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} + // where there can be any number of management groups. + string resource_path_string = 11; + } + + // Finding matching the search request. + Finding finding = 1; + + // Output only. Resource that is associated with this finding. + Resource resource = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Findings matching the list request. + repeated ListFindingsResult list_findings_results = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 3; + + // The total number of findings matching the query. + int32 total_size = 4; +} + +// Request message for listing mute configs at a given scope e.g. organization, +// folder or project. If no location is specified, default is +// global. +message ListMuteConfigsRequest { + // Required. The parent, which owns the collection of mute configs. Its format + // is "organizations/[organization_id]", "folders/[folder_id]", + // "projects/[project_id]", + // "organizations/[organization_id]/locations/[location_id]", + // "folders/[folder_id]/locations/[location_id]", + // "projects/[project_id]/locations/[location_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/MuteConfig" + } + ]; + + // The maximum number of configs to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListMuteConfigs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListMuteConfigs` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for listing mute configs. +message ListMuteConfigsResponse { + // The mute configs from the specified parent. + repeated MuteConfig mute_configs = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for listing notification configs. +message ListNotificationConfigsRequest { + // Required. The name of the parent in which to list the notification + // configurations. Its format is + // "organizations/[organization_id]/locations/[location_id]", + // "folders/[folder_id]/locations/[location_id]", or + // "projects/[project_id]/locations/[location_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/NotificationConfig" + } + ]; + + // The value returned by the last `ListNotificationConfigsResponse`; indicates + // that this is a continuation of a prior `ListNotificationConfigs` call, and + // that the system should return the next page of data. + string page_token = 2; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 3; +} + +// Response message for listing notification configs. +message ListNotificationConfigsResponse { + // Notification configs belonging to the requested parent. + repeated NotificationConfig notification_configs = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 2; +} + +// Request message to list resource value configs of a parent +message ListResourceValueConfigsRequest { + // Required. The parent, which owns the collection of resource value configs. + // Its format is + // "organizations/[organization_id]" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ResourceValueConfig" + } + ]; + + // The maximum number of configs to return. The service may return fewer than + // this value. + // If unspecified, at most 10 configs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListResourceValueConfigs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListResourceValueConfigs` must match the call that provided the + // page token. + // + // page_size can be specified, and the new page_size will be used. + string page_token = 3; +} + +// Response message to list resource value configs +message ListResourceValueConfigsResponse { + // The resource value configs from the specified parent. + repeated ResourceValueConfig resource_value_configs = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is empty, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for listing sources. +message ListSourcesRequest { + // Required. Resource name of the parent of sources to list. Its format should + // be "organizations/[organization_id]", "folders/[folder_id]", or + // "projects/[project_id]". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/Source" + } + ]; + + // The value returned by the last `ListSourcesResponse`; indicates + // that this is a continuation of a prior `ListSources` call, and + // that the system should return the next page of data. + string page_token = 2; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 7; +} + +// Response message for listing sources. +message ListSourcesResponse { + // Sources belonging to the requested parent. + repeated Source sources = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 2; +} + +// Request message for listing the valued resources for a given simulation. +message ListValuedResourcesRequest { + // Required. Name of parent to list exposed resources. + // + // Valid formats: + // "organizations/{organization}", + // "organizations/{organization}/simulations/{simulation}" + // "organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycenter.googleapis.com/ValuedResource" + } + ]; + + // The filter expression that filters the valued resources in the response. + // Supported fields: + // + // * `resource_value` supports = + // * `resource_type` supports = + string filter = 2; + + // The value returned by the last `ListValuedResourcesResponse`; indicates + // that this is a continuation of a prior `ListValuedResources` call, and + // that the system should return the next page of data. + string page_token = 3; + + // The maximum number of results to return in a single response. Default is + // 10, minimum is 1, maximum is 1000. + int32 page_size = 4; + + // Optional. The fields by which to order the valued resources response. + // + // Supported fields: + // + // * `exposed_score` + // + // * `resource_value` + // + // * `resource_type` + // + // Values should be a comma separated list of fields. For example: + // `exposed_score,resource_value`. + // + // The default sorting order is descending. To specify ascending or descending + // order for a field, append a " ASC" or a " DESC" suffix, respectively; for + // example: `exposed_score DESC`. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for listing the valued resources for a given simulation. +message ListValuedResourcesResponse { + // The valued resources that the attack path simulation identified. + repeated ValuedResource valued_resources = 1; + + // Token to retrieve the next page of results, or empty if there are no more + // results. + string next_page_token = 2; + + // The estimated total number of results matching the query. + int32 total_size = 3; +} + +// Request message for updating a finding's state. +message SetFindingStateRequest { + // Required. The [relative resource + // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) + // of the finding. If no location is specified, finding is assumed to be in + // global. The following list shows some examples: + // + // + + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + // + + // `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + // + + // `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Finding" + } + ]; + + // Required. The desired State of the finding. + Finding.State state = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for updating a finding's mute status. +message SetMuteRequest { + // Required. The [relative resource + // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) + // of the finding. If no location is specified, finding is assumed to be in + // global. The following list shows some examples: + // + // + + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + // + + // `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + // + + // `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + // + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + // + + // `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycenter.googleapis.com/Finding" + } + ]; + + // Required. The desired state of the Mute. + Finding.Mute mute = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for updating a BigQuery export. +message UpdateBigQueryExportRequest { + // Required. The BigQuery export being updated. + BigQueryExport big_query_export = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for updating a ExternalSystem resource. +message UpdateExternalSystemRequest { + // Required. The external system resource to update. + ExternalSystem external_system = 1 [(google.api.field_behavior) = REQUIRED]; + + // The FieldMask to use when updating the external system resource. + // + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for updating or creating a finding. +message UpdateFindingRequest { + // Required. The finding resource to update or create if it does not already + // exist. parent, security_marks, and update_time will be ignored. + // + // In the case of creation, the finding id portion of the name must be + // alphanumeric and less than or equal to 32 characters and greater than 0 + // characters in length. + Finding finding = 1 [(google.api.field_behavior) = REQUIRED]; + + // The FieldMask to use when updating the finding resource. This field should + // not be specified when creating a finding. + // + // When updating a finding, an empty mask is treated as updating all mutable + // fields and replacing source_properties. Individual source_properties can + // be added/updated by using "source_properties." in the field + // mask. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for updating a mute config. +message UpdateMuteConfigRequest { + // Required. The mute config being updated. + MuteConfig mute_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for updating a notification config. +message UpdateNotificationConfigRequest { + // Required. The notification config to update. + NotificationConfig notification_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The FieldMask to use when updating the notification config. + // + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message to update resource value config +message UpdateResourceValueConfigRequest { + // Required. The resource value config being updated. + ResourceValueConfig resource_value_config = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + // If empty all mutable fields will be updated. + // + // To update nested fields, include the top level field in the mask + // For example, to update gcp_metadata.resource_type, include the + // "gcp_metadata" field mask + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for updating a SecurityMarks resource. +message UpdateSecurityMarksRequest { + // Required. The security marks resource to update. + SecurityMarks security_marks = 1 [(google.api.field_behavior) = REQUIRED]; + + // The FieldMask to use when updating the security marks resource. + // + // The field mask must not contain duplicate fields. + // If empty or set to "marks", all marks will be replaced. Individual + // marks can be updated using "marks.". + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for updating a source. +message UpdateSourceRequest { + // Required. The source resource to update. + Source source = 1 [(google.api.field_behavior) = REQUIRED]; + + // The FieldMask to use when updating the source resource. + // + // If empty all mutable fields will be updated. + google.protobuf.FieldMask update_mask = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/securitycenter_v2.yaml b/third_party/googleapis/google/cloud/securitycenter/v2/securitycenter_v2.yaml new file mode 100644 index 000000000..64d680469 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/securitycenter_v2.yaml @@ -0,0 +1,88 @@ +type: google.api.Service +config_version: 3 +name: securitycenter.googleapis.com +title: Security Command Center API + +apis: +- name: google.cloud.securitycenter.v2.SecurityCenter +- name: google.longrunning.Operations + +types: +- name: google.cloud.securitycenter.v2.BigQueryExport +- name: google.cloud.securitycenter.v2.BulkMuteFindingsResponse +- name: google.cloud.securitycenter.v2.ExternalSystem +- name: google.cloud.securitycenter.v2.MuteConfig +- name: google.cloud.securitycenter.v2.NotificationMessage +- name: google.cloud.securitycenter.v2.Resource +- name: google.cloud.securitycenter.v2.ResourceValueConfig + +documentation: + summary: |- + Security Command Center API provides access to temporal views of assets and + findings within an organization. + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v2/{name=organizations/*/operations/*}:cancel' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v2/{name=organizations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v2/{name=organizations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v2/{name=organizations/*/operations}' + +authentication: + rules: + - selector: 'google.cloud.securitycenter.v2.SecurityCenter.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=709980&template=1322867 + documentation_uri: https://cloud.google.com/security-command-center/docs/reference/rest + api_short_name: securitycenter + github_label: 'api: securitycenter' + doc_tag_prefix: securitycenter + organization: CLOUD + library_settings: + - version: google.cloud.securitycenter.v2 + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/security-command-center/docs/reference/rest diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/simulation.proto b/third_party/googleapis/google/cloud/securitycenter/v2/simulation.proto new file mode 100644 index 000000000..d682d7cbf --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/simulation.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/securitycenter/v2/resource.proto"; +import "google/cloud/securitycenter/v2/valued_resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SimulationProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Attack path simulation +message Simulation { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/Simulation" + pattern: "organizations/{organization}/simulations/{simulation}" + pattern: "organizations/{organization}/locations/{location}/simulations/{simluation}" + plural: "simulations" + singular: "simulation" + }; + + // Full resource name of the Simulation: + // organizations/123/simulations/456 + string name = 1; + + // Output only. Time simulation was created + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Resource value configurations' metadata used in this simulation. Maximum of + // 100. + repeated ResourceValueConfigMetadata resource_value_configs_metadata = 3; + + // Indicates which cloud provider was used in this simulation. + CloudProvider cloud_provider = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/source.proto b/third_party/googleapis/google/cloud/securitycenter/v2/source.proto new file mode 100644 index 000000000..b16fe3c2b --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/source.proto @@ -0,0 +1,70 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "SourceProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Security Command Center finding source. A finding source +// is an entity or a mechanism that can produce a finding. A source is like a +// container of findings that come from the same scanner, logger, monitor, and +// other tools. +message Source { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/Source" + pattern: "organizations/{organization}/sources/{source}" + pattern: "folders/{folder}/sources/{source}" + pattern: "projects/{project}/sources/{source}" + }; + + // The relative resource name of this source. See: + // https://cloud.google.com/apis/design/resource_names#relative_resource_name + // Example: + // "organizations/{organization_id}/sources/{source_id}" + string name = 1; + + // The source's display name. + // A source's display name must be unique amongst its siblings, for example, + // two sources with the same parent can't share the same display name. + // The display name must have a length between 1 and 64 characters + // (inclusive). + string display_name = 2; + + // The description of the source (max of 1024 characters). + // Example: + // "Web Security Scanner is a web security scanner for common + // vulnerabilities in App Engine applications. It can automatically + // scan and detect four common vulnerabilities, including cross-site-scripting + // (XSS), Flash injection, mixed content (HTTP in HTTPS), and + // outdated or insecure libraries." + string description = 3; + + // The canonical name of the finding source. It's either + // "organizations/{organization_id}/sources/{source_id}", + // "folders/{folder_id}/sources/{source_id}", or + // "projects/{project_number}/sources/{source_id}", + // depending on the closest CRM ancestor of the resource associated with the + // finding. + string canonical_name = 4; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/toxic_combination.proto b/third_party/googleapis/google/cloud/securitycenter/v2/toxic_combination.proto new file mode 100644 index 000000000..bef08e015 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/toxic_combination.proto @@ -0,0 +1,42 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ToxicCombinationProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Contains details about a group of security issues that, when the issues +// occur together, represent a greater risk than when the issues occur +// independently. A group of such issues is referred to as a toxic +// combination. +message ToxicCombination { + // The + // [Attack exposure + // score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + double attack_exposure_score = 1; + + // List of resource names of findings associated with this toxic combination. + // For example, `organizations/123/sources/456/findings/789`. + repeated string related_findings = 2; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/valued_resource.proto b/third_party/googleapis/google/cloud/securitycenter/v2/valued_resource.proto new file mode 100644 index 000000000..994918b58 --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/valued_resource.proto @@ -0,0 +1,89 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ValuedResourceProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// A resource that is determined to have value to a user's system +message ValuedResource { + option (google.api.resource) = { + type: "securitycenter.googleapis.com/ValuedResource" + pattern: "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}" + pattern: "organizations/{organization}/locations/{location}/simulations/{simluation}/valuedResources/{valued_resource}" + plural: "valuedResources" + singular: "valuedResource" + }; + + // How valuable the resource is. + enum ResourceValue { + // The resource value isn't specified. + RESOURCE_VALUE_UNSPECIFIED = 0; + + // This is a low-value resource. + RESOURCE_VALUE_LOW = 1; + + // This is a medium-value resource. + RESOURCE_VALUE_MEDIUM = 2; + + // This is a high-value resource. + RESOURCE_VALUE_HIGH = 3; + } + + // Valued resource name, for example, + // e.g.: + // `organizations/123/simulations/456/valuedResources/789` + string name = 1; + + // The + // [full resource + // name](https://cloud.google.com/apis/design/resource_names#full_resource_name) + // of the valued resource. + string resource = 2; + + // The [resource + // type](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + // of the valued resource. + string resource_type = 3; + + // Human-readable name of the valued resource. + string display_name = 4; + + // How valuable this resource is. + ResourceValue resource_value = 5; + + // Exposed score for this valued resource. A value of 0 means no exposure was + // detected exposure. + double exposed_score = 6; + + // List of resource value configurations' metadata used to determine the value + // of this resource. Maximum of 100. + repeated ResourceValueConfigMetadata resource_value_configs_used = 7; +} + +// Metadata about a ResourceValueConfig. For example, id and name. +message ResourceValueConfigMetadata { + // Resource value config name + string name = 1; +} diff --git a/third_party/googleapis/google/cloud/securitycenter/v2/vulnerability.proto b/third_party/googleapis/google/cloud/securitycenter/v2/vulnerability.proto new file mode 100644 index 000000000..211fd9fcd --- /dev/null +++ b/third_party/googleapis/google/cloud/securitycenter/v2/vulnerability.proto @@ -0,0 +1,316 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "VulnerabilityProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Refers to common vulnerability fields e.g. cve, cvss, cwe etc. +message Vulnerability { + // CVE stands for Common Vulnerabilities and Exposures + // (https://cve.mitre.org/about/) + Cve cve = 1; + + // The offending package is relevant to the finding. + Package offending_package = 2; + + // The fixed package is relevant to the finding. + Package fixed_package = 3; + + // The security bulletin is relevant to this finding. + SecurityBulletin security_bulletin = 4; +} + +// CVE stands for Common Vulnerabilities and Exposures. +// Information from the [CVE +// record](https://www.cve.org/ResourcesSupport/Glossary) that describes this +// vulnerability. +message Cve { + // The possible values of impact of the vulnerability if it was to be + // exploited. + enum RiskRating { + // Invalid or empty value. + RISK_RATING_UNSPECIFIED = 0; + + // Exploitation would have little to no security impact. + LOW = 1; + + // Exploitation would enable attackers to perform activities, or could allow + // attackers to have a direct impact, but would require additional steps. + MEDIUM = 2; + + // Exploitation would enable attackers to have a notable direct impact + // without needing to overcome any major mitigating factors. + HIGH = 3; + + // Exploitation would fundamentally undermine the security of affected + // systems, enable actors to perform significant attacks with minimal + // effort, with little to no mitigating factors to overcome. + CRITICAL = 4; + } + + // The possible values of exploitation activity of the vulnerability in the + // wild. + enum ExploitationActivity { + // Invalid or empty value. + EXPLOITATION_ACTIVITY_UNSPECIFIED = 0; + + // Exploitation has been reported or confirmed to widely occur. + WIDE = 1; + + // Limited reported or confirmed exploitation activities. + CONFIRMED = 2; + + // Exploit is publicly available. + AVAILABLE = 3; + + // No known exploitation activity, but has a high potential for + // exploitation. + ANTICIPATED = 4; + + // No known exploitation activity. + NO_KNOWN = 5; + } + + // The unique identifier for the vulnerability. e.g. CVE-2021-34527 + string id = 1; + + // Additional information about the CVE. + // e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527 + repeated Reference references = 2; + + // Describe Common Vulnerability Scoring System specified at + // https://www.first.org/cvss/v3.1/specification-document + Cvssv3 cvssv3 = 3; + + // Whether upstream fix is available for the CVE. + bool upstream_fix_available = 4; + + // The potential impact of the vulnerability if it was to be exploited. + RiskRating impact = 5; + + // The exploitation activity of the vulnerability in the wild. + ExploitationActivity exploitation_activity = 6; + + // Whether or not the vulnerability has been observed in the wild. + bool observed_in_the_wild = 7; + + // Whether or not the vulnerability was zero day when the finding was + // published. + bool zero_day = 8; +} + +// Additional Links +message Reference { + // Source of the reference e.g. NVD + string source = 1; + + // Uri for the mentioned source e.g. + // https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527. + string uri = 2; +} + +// Common Vulnerability Scoring System version 3. +message Cvssv3 { + // This metric reflects the context by which vulnerability exploitation is + // possible. + enum AttackVector { + // Invalid value. + ATTACK_VECTOR_UNSPECIFIED = 0; + + // The vulnerable component is bound to the network stack and the set of + // possible attackers extends beyond the other options listed below, up to + // and including the entire Internet. + ATTACK_VECTOR_NETWORK = 1; + + // The vulnerable component is bound to the network stack, but the attack is + // limited at the protocol level to a logically adjacent topology. + ATTACK_VECTOR_ADJACENT = 2; + + // The vulnerable component is not bound to the network stack and the + // attacker's path is via read/write/execute capabilities. + ATTACK_VECTOR_LOCAL = 3; + + // The attack requires the attacker to physically touch or manipulate the + // vulnerable component. + ATTACK_VECTOR_PHYSICAL = 4; + } + + // This metric describes the conditions beyond the attacker's control that + // must exist in order to exploit the vulnerability. + enum AttackComplexity { + // Invalid value. + ATTACK_COMPLEXITY_UNSPECIFIED = 0; + + // Specialized access conditions or extenuating circumstances do not exist. + // An attacker can expect repeatable success when attacking the vulnerable + // component. + ATTACK_COMPLEXITY_LOW = 1; + + // A successful attack depends on conditions beyond the attacker's control. + // That is, a successful attack cannot be accomplished at will, but requires + // the attacker to invest in some measurable amount of effort in preparation + // or execution against the vulnerable component before a successful attack + // can be expected. + ATTACK_COMPLEXITY_HIGH = 2; + } + + // This metric describes the level of privileges an attacker must possess + // before successfully exploiting the vulnerability. + enum PrivilegesRequired { + // Invalid value. + PRIVILEGES_REQUIRED_UNSPECIFIED = 0; + + // The attacker is unauthorized prior to attack, and therefore does not + // require any access to settings or files of the vulnerable system to + // carry out an attack. + PRIVILEGES_REQUIRED_NONE = 1; + + // The attacker requires privileges that provide basic user capabilities + // that could normally affect only settings and files owned by a user. + // Alternatively, an attacker with Low privileges has the ability to access + // only non-sensitive resources. + PRIVILEGES_REQUIRED_LOW = 2; + + // The attacker requires privileges that provide significant (e.g., + // administrative) control over the vulnerable component allowing access to + // component-wide settings and files. + PRIVILEGES_REQUIRED_HIGH = 3; + } + + // This metric captures the requirement for a human user, other than the + // attacker, to participate in the successful compromise of the vulnerable + // component. + enum UserInteraction { + // Invalid value. + USER_INTERACTION_UNSPECIFIED = 0; + + // The vulnerable system can be exploited without interaction from any user. + USER_INTERACTION_NONE = 1; + + // Successful exploitation of this vulnerability requires a user to take + // some action before the vulnerability can be exploited. + USER_INTERACTION_REQUIRED = 2; + } + + // The Scope metric captures whether a vulnerability in one vulnerable + // component impacts resources in components beyond its security scope. + enum Scope { + // Invalid value. + SCOPE_UNSPECIFIED = 0; + + // An exploited vulnerability can only affect resources managed by the same + // security authority. + SCOPE_UNCHANGED = 1; + + // An exploited vulnerability can affect resources beyond the security scope + // managed by the security authority of the vulnerable component. + SCOPE_CHANGED = 2; + } + + // The Impact metrics capture the effects of a successfully exploited + // vulnerability on the component that suffers the worst outcome that is most + // directly and predictably associated with the attack. + enum Impact { + // Invalid value. + IMPACT_UNSPECIFIED = 0; + + // High impact. + IMPACT_HIGH = 1; + + // Low impact. + IMPACT_LOW = 2; + + // No impact. + IMPACT_NONE = 3; + } + + // The base score is a function of the base metric scores. + double base_score = 1; + + // Base Metrics + // Represents the intrinsic characteristics of a vulnerability that are + // constant over time and across user environments. + // This metric reflects the context by which vulnerability exploitation is + // possible. + AttackVector attack_vector = 2; + + // This metric describes the conditions beyond the attacker's control that + // must exist in order to exploit the vulnerability. + AttackComplexity attack_complexity = 3; + + // This metric describes the level of privileges an attacker must possess + // before successfully exploiting the vulnerability. + PrivilegesRequired privileges_required = 4; + + // This metric captures the requirement for a human user, other than the + // attacker, to participate in the successful compromise of the vulnerable + // component. + UserInteraction user_interaction = 5; + + // The Scope metric captures whether a vulnerability in one vulnerable + // component impacts resources in components beyond its security scope. + Scope scope = 6; + + // This metric measures the impact to the confidentiality of the information + // resources managed by a software component due to a successfully exploited + // vulnerability. + Impact confidentiality_impact = 7; + + // This metric measures the impact to integrity of a successfully exploited + // vulnerability. + Impact integrity_impact = 8; + + // This metric measures the impact to the availability of the impacted + // component resulting from a successfully exploited vulnerability. + Impact availability_impact = 9; +} + +// Package is a generic definition of a package. +message Package { + // The name of the package where the vulnerability was detected. + string package_name = 1; + + // The CPE URI where the vulnerability was detected. + string cpe_uri = 2; + + // Type of package, for example, os, maven, or go. + string package_type = 3; + + // The version of the package. + string package_version = 4; +} + +// SecurityBulletin are notifications of vulnerabilities of Google products. +message SecurityBulletin { + // ID of the bulletin corresponding to the vulnerability. + string bulletin_id = 1; + + // Submission time of this Security Bulletin. + google.protobuf.Timestamp submission_time = 2; + + // This represents a version that the cluster receiving this notification + // should be upgraded to, based on its current version. For example, 1.15.0 + string suggested_upgrade_version = 3; +} diff --git a/third_party/googleapis/google/cloud/securitycentermanagement/v1/BUILD.bazel b/third_party/googleapis/google/cloud/securitycentermanagement/v1/BUILD.bazel index c2130ca9d..4301929f7 100644 --- a/third_party/googleapis/google/cloud/securitycentermanagement/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/securitycentermanagement/v1/BUILD.bazel @@ -142,7 +142,7 @@ go_gapic_library( grpc_service_config = "securitycentermanagement_v1_grpc_service_config.json", importpath = "cloud.google.com/go/securitycentermanagement/apiv1;securitycentermanagement", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "securitycentermanagement_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/securitycentermanagement/v1/security_center_management.proto b/third_party/googleapis/google/cloud/securitycentermanagement/v1/security_center_management.proto index 64dfbd619..dca152b5b 100644 --- a/third_party/googleapis/google/cloud/securitycentermanagement/v1/security_center_management.proto +++ b/third_party/googleapis/google/cloud/securitycentermanagement/v1/security_center_management.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -394,6 +394,159 @@ service SecurityCenterManagement { } }; } + + // Gets service settings for the specified Security Command Center service. + rpc GetSecurityCenterService(GetSecurityCenterServiceRequest) + returns (SecurityCenterService) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/securityCenterServices/*}" + additional_bindings { + get: "/v1/{name=folders/*/locations/*/securityCenterServices/*}" + } + additional_bindings { + get: "/v1/{name=organizations/*/locations/*/securityCenterServices/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of all Security Command Center services for the given + // parent. + rpc ListSecurityCenterServices(ListSecurityCenterServicesRequest) + returns (ListSecurityCenterServicesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/securityCenterServices" + additional_bindings { + get: "/v1/{parent=folders/*/locations/*}/securityCenterServices" + } + additional_bindings { + get: "/v1/{parent=organizations/*/locations/*}/securityCenterServices" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a Security Command Center service using the given update mask. + rpc UpdateSecurityCenterService(UpdateSecurityCenterServiceRequest) + returns (SecurityCenterService) { + option (google.api.http) = { + patch: "/v1/{security_center_service.name=projects/*/locations/*/securityCenterServices/*}" + body: "security_center_service" + additional_bindings { + patch: "/v1/{security_center_service.name=folders/*/locations/*/securityCenterServices/*}" + body: "security_center_service" + } + additional_bindings { + patch: "/v1/{security_center_service.name=organizations/*/locations/*/securityCenterServices/*}" + body: "security_center_service" + } + }; + option (google.api.method_signature) = + "security_center_service,update_mask"; + } +} + +// Represents a particular Security Command Center service. This includes +// settings information such as top-level enablement in addition to individual +// module settings. Service settings can be configured at the organization, +// folder, or project level. Service settings at the organization or folder +// level are inherited by those in child folders and projects. +message SecurityCenterService { + option (google.api.resource) = { + type: "securitycentermanagement.googleapis.com/SecurityCenterService" + pattern: "projects/{project}/locations/{location}/securityCenterServices/{service}" + pattern: "folders/{folder}/locations/{location}/securityCenterServices/{service}" + pattern: "organizations/{organization}/locations/{location}/securityCenterServices/{service}" + plural: "securityCenterServices" + singular: "securityCenterService" + }; + + // The settings for individual modules. + message ModuleSettings { + // Optional. The intended state of enablement for the module at its level of + // the resource hierarchy. + EnablementState intended_enablement_state = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The effective enablement state for the module at its level + // of the resource hierarchy. If the intended state is set to INHERITED, the + // effective state will be inherited from the enablement state of an + // ancestor. This state may + // differ from the intended enablement state due to billing eligibility or + // onboarding status. + EnablementState effective_enablement_state = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Represents the possible intended states of enablement for a service or + // module. + enum EnablementState { + // Default value. This value is unused. + ENABLEMENT_STATE_UNSPECIFIED = 0; + + // State is inherited from the parent resource. Not a valid effective + // enablement state. + INHERITED = 1; + + // State is enabled. + ENABLED = 2; + + // State is disabled. + DISABLED = 3; + + // SCC is configured to ingest findings from this service but not enable + // this service. Not a valid intended_enablement_state (that is, this is a + // readonly state). + INGEST_ONLY = 4; + } + + // Identifier. The name of the service. + // + // Its format is: + // + // * organizations/{organization}/locations/{location}/securityCenterServices/{service} + // * folders/{folder}/locations/{location}/securityCenterServices/{service} + // * projects/{project}/locations/{location}/securityCenterServices/{service} + // + // The possible values for id {service} are: + // + // * container-threat-detection + // * event-threat-detection + // * security-health-analytics + // * vm-threat-detection + // * web-security-scanner + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The intended state of enablement for the service at its level of + // the resource hierarchy. A DISABLED state will override all module + // enablement_states to DISABLED. + EnablementState intended_enablement_state = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The effective enablement state for the service at its level of + // the resource hierarchy. If the intended state is set to INHERITED, the + // effective state will be inherited from the enablement state of an ancestor. + // This state may differ from the intended enablement state due to billing + // eligibility or onboarding status. + EnablementState effective_enablement_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The configurations including the state of enablement for the + // service's different modules. The absence of a module in the map implies its + // configuration is inherited from its parents. + map modules = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time the service was last updated. This could be due to an + // explicit user update or due to a side effect of another system change such + // as billing subscription expiry. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Additional service specific configuration. Not all services will + // utilize this field. + google.protobuf.Struct service_config = 6 + [(google.api.field_behavior) = OPTIONAL]; } // An EffectiveSecurityHealthAnalyticsCustomModule is the representation of @@ -427,14 +580,13 @@ message EffectiveSecurityHealthAnalyticsCustomModule { DISABLED = 2; } - // Output only. The resource name of the custom module. - // Its format is - // "organizations/{organization}/locations/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}", - // or - // "folders/{folder}/locations/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}", - // or - // "projects/{project}/locations/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}" - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Identifier. The full resource name of the custom module, specified in one + // of the following formats: + // + // * `organizations/organization/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}` + // * `folders/folder/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}` + // * `projects/project/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Output only. The user-specified configuration for the module. CustomConfig custom_config = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -453,11 +605,12 @@ message EffectiveSecurityHealthAnalyticsCustomModule { // Request message for listing effective Security Health Analytics custom // modules. message ListEffectiveSecurityHealthAnalyticsCustomModulesRequest { - // Required. Name of parent to list effective custom modules. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", + // Required. Name of parent to list effective custom modules. specified in one + // of the following formats: + // * `organizations/{organization}/locations/{location}` + // * `folders/{folder}/locations/{location}` // or - // "projects/{project}/locations/{location}" + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -486,13 +639,12 @@ message ListEffectiveSecurityHealthAnalyticsCustomModulesResponse { // Message for getting a EffectiveSecurityHealthAnalyticsCustomModule message GetEffectiveSecurityHealthAnalyticsCustomModuleRequest { - // Required. The resource name of the SHA custom module. + // Required. The full resource name of the custom module, specified in one of + // the following formats: // - // Its format is: - // - // * "organizations/{organization}/locations/{location}/effectiveSecurityHealthAnalyticsCustomModules/{module_id}". - // * "folders/{folder}/locations/{location}/effectiveSecurityHealthAnalyticsCustomModules/{module_id}". - // * "projects/{project}/locations/{location}/effectiveSecurityHealthAnalyticsCustomModules/{module_id}". + // * `organizations/organization/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}` + // * `folders/folder/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}` + // * `projects/project/{location}/effectiveSecurityHealthAnalyticsCustomModules/{effective_security_health_analytics_custom_module}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -535,17 +687,12 @@ message SecurityHealthAnalyticsCustomModule { INHERITED = 3; } - // Immutable. The resource name of the custom module. - // Its format is - // "organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}", - // or - // "folders/{folder}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}", - // or - // "projects/{project}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}" - // - // The id {customModule} is server-generated and is not user settable. - // It will be a numeric id containing 1-20 digits. - string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + // Identifier. The full resource name of the custom module, specified in one + // of the following formats: + // * `organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}` + // * `folders/{folder}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}` + // * `projects/{project}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Optional. The display name of the Security Health Analytics custom module. // This display name becomes the finding category for all findings that are @@ -660,11 +807,12 @@ message CustomConfig { // Request message for listing Security Health Analytics custom modules. message ListSecurityHealthAnalyticsCustomModulesRequest { - // Required. Name of parent to list custom modules. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", - // or - // "projects/{project}/locations/{location}" + // Required. Name of parent organization, folder, or project in which to list + // custom modules, specified in one of the following formats: + // + // * `organizations/{organization}/locations/{location}` + // * `folders/{folder}/locations/{location}` + // * `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -693,11 +841,12 @@ message ListSecurityHealthAnalyticsCustomModulesResponse { // Request message for listing descendant Security Health Analytics custom // modules. message ListDescendantSecurityHealthAnalyticsCustomModulesRequest { - // Required. Name of parent to list custom modules. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", - // or - // "projects/{project}/locations/{location}" + // Required. Name of the parent organization, folder, or project in which to + // list custom modules, specified in one of the following formats: + // + // * `organizations/{organization}/locations/{location}` + // * `folders/{folder}/locations/{location}` + // * `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -737,11 +886,12 @@ message GetSecurityHealthAnalyticsCustomModuleRequest { // Message for creating a SecurityHealthAnalyticsCustomModule message CreateSecurityHealthAnalyticsCustomModuleRequest { - // Required. Name of the parent for the module. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", - // or - // "projects/{project}/locations/{location}" + // Required. Name of the parent organization, folder, or project of the + // module, specified in one of the following formats: + // + // * `organizations/{organization}/locations/{location}` + // * `folders/{folder}/locations/{location}` + // * `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -793,9 +943,9 @@ message DeleteSecurityHealthAnalyticsCustomModuleRequest { // // Its format is: // - // * "organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}". - // * "folders/{folder}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}". - // * "projects/{project}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}". + // * `organizations/{organization}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}`. + // * `folders/{folder}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}`. + // * `projects/{project}/locations/{location}/securityHealthAnalyticsCustomModules/{security_health_analytics_custom_module}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -958,21 +1108,25 @@ message SimulatedFinding { // Describes a potential security risk due to a change in the security // posture. POSTURE_VIOLATION = 6; + + // Describes a combination of security issues that represent a more severe + // security problem when taken together. + TOXIC_COMBINATION = 7; } // Identifier. The [relative resource // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) // of the finding. Example: - // "organizations/{organization_id}/sources/{source_id}/findings/{finding_id}", - // "folders/{folder_id}/sources/{source_id}/findings/{finding_id}", - // "projects/{project_id}/sources/{source_id}/findings/{finding_id}". + // `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}`, + // `folders/{folder_id}/sources/{source_id}/findings/{finding_id}`, + // `projects/{project_id}/sources/{source_id}/findings/{finding_id}`. string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The relative resource name of the source the finding belongs to. See: // https://cloud.google.com/apis/design/resource_names#relative_resource_name // This field is immutable after creation time. // For example: - // "organizations/{organization_id}/sources/{source_id}" + // `organizations/{organization_id}/sources/{source_id}` string parent = 2; // For findings on Google Cloud resources, the full resource @@ -1065,14 +1219,14 @@ message EffectiveEventThreatDetectionCustomModule { DISABLED = 2; } - // Immutable. The resource name of the ETD custom module. + // Identifier. The resource name of the ETD custom module. // // Its format is: // - // * "organizations/{organization}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}". - // * "folders/{folder}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}". - // * "projects/{project}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}". - string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + // * `organizations/{organization}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}`. + // * `folders/{folder}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}`. + // * `projects/{project}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Output only. Config for the effective module. google.protobuf.Struct config = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -1096,10 +1250,10 @@ message EffectiveEventThreatDetectionCustomModule { // modules. message ListEffectiveEventThreatDetectionCustomModulesRequest { // Required. Name of parent to list effective custom modules. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", + // `organizations/{organization}/locations/{location}`, + // `folders/{folder}/locations/{location}`, // or - // "projects/{project}/locations/{location}" + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1132,9 +1286,9 @@ message GetEffectiveEventThreatDetectionCustomModuleRequest { // // Its format is: // - // * "organizations/{organization}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}". - // * "folders/{folder}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}". - // * "projects/{project}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}". + // * `organizations/{organization}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}`. + // * `folders/{folder}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}`. + // * `projects/{project}/locations/{location}/effectiveEventThreatDetectionCustomModules/{effective_event_threat_detection_custom_module}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1175,14 +1329,14 @@ message EventThreatDetectionCustomModule { INHERITED = 3; } - // Immutable. The resource name of the ETD custom module. + // Identifier. The resource name of the ETD custom module. // // Its format is: // - // * "organizations/{organization}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - // * "folders/{folder}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - // * "projects/{project}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + // * `organizations/{organization}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + // * `folders/{folder}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + // * `projects/{project}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Optional. Config for the module. For the resident module, its config value // is defined at this level. For the inherited module, its config value is @@ -1224,10 +1378,10 @@ message EventThreatDetectionCustomModule { // Request message for listing Event Threat Detection custom modules. message ListEventThreatDetectionCustomModulesRequest { // Required. Name of parent to list custom modules. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", + // `organizations/{organization}/locations/{location}`, + // `folders/{folder}/locations/{location}`, // or - // "projects/{project}/locations/{location}" + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1264,10 +1418,10 @@ message ListEventThreatDetectionCustomModulesResponse { // modules. message ListDescendantEventThreatDetectionCustomModulesRequest { // Required. Name of parent to list custom modules. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", + // `organizations/{organization}/locations/{location}`, + // `folders/{folder}/locations/{location}`, // or - // "projects/{project}/locations/{location}" + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1301,9 +1455,9 @@ message GetEventThreatDetectionCustomModuleRequest { // // Its format is: // - // * "organizations/{organization}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - // * "folders/{folder}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - // * "projects/{project}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". + // * `organizations/{organization}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + // * `folders/{folder}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + // * `projects/{project}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1315,10 +1469,10 @@ message GetEventThreatDetectionCustomModuleRequest { // Message for creating a EventThreatDetectionCustomModule message CreateEventThreatDetectionCustomModuleRequest { // Required. Name of parent for the module. Its format is - // "organizations/{organization}/locations/{location}", - // "folders/{folder}/locations/{location}", + // `organizations/{organization}/locations/{location}`, + // `folders/{folder}/locations/{location}`, // or - // "projects/{project}/locations/{location}" + // `projects/{project}/locations/{location}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1372,9 +1526,9 @@ message DeleteEventThreatDetectionCustomModuleRequest { // // Its format is: // - // * "organizations/{organization}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - // * "folders/{folder}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". - // * "projects/{project}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}". + // * `organizations/{organization}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + // * `folders/{folder}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. + // * `projects/{project}/locations/{location}/eventThreatDetectionCustomModules/{event_threat_detection_custom_module}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1398,7 +1552,7 @@ message ValidateEventThreatDetectionCustomModuleRequest { // // Its format is: // - // * "organizations/{organization}/locations/{location}". + // * `organizations/{organization}/locations/{location}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1450,3 +1604,92 @@ message ValidateEventThreatDetectionCustomModuleResponse { // were no errors. repeated CustomModuleValidationError errors = 2; } + +// Request message for getting a Security Command Center service. +message GetSecurityCenterServiceRequest { + // Required. The Security Command Center service to retrieve. + // + // Formats: + // + // * organizations/{organization}/locations/{location}/securityCenterServices/{service} + // * folders/{folder}/locations/{location}/securityCenterServices/{service} + // * projects/{project}/locations/{location}/securityCenterServices/{service} + // + // The possible values for id {service} are: + // + // * container-threat-detection + // * event-threat-detection + // * security-health-analytics + // * vm-threat-detection + // * web-security-scanner + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securitycentermanagement.googleapis.com/SecurityCenterService" + } + ]; + + // Flag that, when set, will be used to filter the ModuleSettings that are + // in scope. The default setting is that all modules will be shown. + bool show_eligible_modules_only = 2; +} + +// Request message for listing Security Command Center services. +message ListSecurityCenterServicesRequest { + // Required. The name of the parent to list Security Command Center services. + // + // Formats: + // + // * organizations/{organization}/locations/{location} + // * folders/{folder}/locations/{location} + // * projects/{project}/locations/{location} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securitycentermanagement.googleapis.com/SecurityCenterService" + } + ]; + + // Optional. The maximum number of results to return in a single response. + // Default is 10, minimum is 1, maximum is 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value returned by the last call indicating a continuation. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Flag that, when set, will be used to filter the ModuleSettings that are + // in scope. The default setting is that all modules will be shown. + bool show_eligible_modules_only = 4; +} + +// Response message for listing Security Command Center services. +message ListSecurityCenterServicesResponse { + // The list of services. + repeated SecurityCenterService security_center_services = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// Request message for updating a Security Command Center service. +message UpdateSecurityCenterServiceRequest { + // Required. The updated service. + SecurityCenterService security_center_service = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to be updated. Possible values: + // + // * "intended_enablement_state" + // * "modules" + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. When set to true, only validations (including IAM checks) will be + // done for the request (service will not be updated). An OK response + // indicates that the request is valid, while an error response indicates that + // the request is invalid. Note that a subsequent request to actually update + // the service could still fail for one of the following reasons: + // - The state could have changed (e.g. IAM permission lost). + // - A failure occurred while trying to delete the module. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/securitycentermanagement/v1/securitycentermanagement_v1.yaml b/third_party/googleapis/google/cloud/securitycentermanagement/v1/securitycentermanagement_v1.yaml index cbe9c41a0..fb11321e2 100644 --- a/third_party/googleapis/google/cloud/securitycentermanagement/v1/securitycentermanagement_v1.yaml +++ b/third_party/googleapis/google/cloud/securitycentermanagement/v1/securitycentermanagement_v1.yaml @@ -43,7 +43,7 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=709980 - documentation_uri: https://cloud.google.com/securitycentermanagement/docs/overview + documentation_uri: https://cloud.google.com/security-command-center/docs/reference/security-center-management/rest api_short_name: securitycentermanagement github_label: 'api: securitycentermanagement' doc_tag_prefix: securitycentermanagement diff --git a/third_party/googleapis/google/cloud/securityposture/v1/org_policy_config.proto b/third_party/googleapis/google/cloud/securityposture/v1/org_policy_config.proto index ff30f600d..27dfc3110 100644 --- a/third_party/googleapis/google/cloud/securityposture/v1/org_policy_config.proto +++ b/third_party/googleapis/google/cloud/securityposture/v1/org_policy_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securityposture/v1/org_policy_constraints.proto b/third_party/googleapis/google/cloud/securityposture/v1/org_policy_constraints.proto index 9a2ee3a9f..56e3f0f22 100644 --- a/third_party/googleapis/google/cloud/securityposture/v1/org_policy_constraints.proto +++ b/third_party/googleapis/google/cloud/securityposture/v1/org_policy_constraints.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securityposture/v1/securityposture.proto b/third_party/googleapis/google/cloud/securityposture/v1/securityposture.proto index ba96fe84a..81a1db650 100644 --- a/third_party/googleapis/google/cloud/securityposture/v1/securityposture.proto +++ b/third_party/googleapis/google/cloud/securityposture/v1/securityposture.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securityposture/v1/sha_constraints.proto b/third_party/googleapis/google/cloud/securityposture/v1/sha_constraints.proto index 513c19905..3441d981e 100644 --- a/third_party/googleapis/google/cloud/securityposture/v1/sha_constraints.proto +++ b/third_party/googleapis/google/cloud/securityposture/v1/sha_constraints.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/securityposture/v1/sha_custom_config.proto b/third_party/googleapis/google/cloud/securityposture/v1/sha_custom_config.proto index 1685dc61b..c0df55396 100644 --- a/third_party/googleapis/google/cloud/securityposture/v1/sha_custom_config.proto +++ b/third_party/googleapis/google/cloud/securityposture/v1/sha_custom_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto b/third_party/googleapis/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto index 1e7ec1e82..fee0d9081 100644 --- a/third_party/googleapis/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto +++ b/third_party/googleapis/google/cloud/sensitiveaction/logging/v1/sensitive_action_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1/endpoint.proto b/third_party/googleapis/google/cloud/servicedirectory/v1/endpoint.proto index ab5ac1ac6..25c3d37ae 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1/endpoint.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1/lookup_service.proto b/third_party/googleapis/google/cloud/servicedirectory/v1/lookup_service.proto index 95979a849..a67567528 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1/lookup_service.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1/lookup_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1/namespace.proto b/third_party/googleapis/google/cloud/servicedirectory/v1/namespace.proto index 683dc6c82..f738f31f9 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1/namespace.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1/namespace.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1/registration_service.proto b/third_party/googleapis/google/cloud/servicedirectory/v1/registration_service.proto index c17320c2b..a5b1ab447 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1/registration_service.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1/registration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1/service.proto b/third_party/googleapis/google/cloud/servicedirectory/v1/service.proto index c4c76392b..c16a24f85 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1/service.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/endpoint.proto b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/endpoint.proto index 50b34dc92..f8a24b3ff 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/endpoint.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/lookup_service.proto b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/lookup_service.proto index 29ce2cb8a..448339594 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/lookup_service.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/lookup_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/namespace.proto b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/namespace.proto index b9210b5a0..2d3b53154 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/namespace.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/namespace.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/registration_service.proto b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/registration_service.proto index 806b1d6b6..b80e5172f 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/registration_service.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/registration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -275,7 +275,7 @@ message ListNamespacesRequest { } ]; - // Optional. The maximum number of items to return. + // Optional. The maximum number of items to return. The default value is 100. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The next_page_token value returned from a previous List request, @@ -409,7 +409,7 @@ message ListServicesRequest { } ]; - // Optional. The maximum number of items to return. + // Optional. The maximum number of items to return. The default value is 100. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The next_page_token value returned from a previous List request, @@ -548,7 +548,7 @@ message ListEndpointsRequest { } ]; - // Optional. The maximum number of items to return. + // Optional. The maximum number of items to return. The default value is 100. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The next_page_token value returned from a previous List request, diff --git a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/service.proto b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/service.proto index 22ef43f40..b8268fe32 100644 --- a/third_party/googleapis/google/cloud/servicedirectory/v1beta1/service.proto +++ b/third_party/googleapis/google/cloud/servicedirectory/v1beta1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicehealth/logging/v1/event_log.proto b/third_party/googleapis/google/cloud/servicehealth/logging/v1/event_log.proto index b8a6dc573..61022601b 100644 --- a/third_party/googleapis/google/cloud/servicehealth/logging/v1/event_log.proto +++ b/third_party/googleapis/google/cloud/servicehealth/logging/v1/event_log.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicehealth/v1/BUILD.bazel b/third_party/googleapis/google/cloud/servicehealth/v1/BUILD.bazel index 3455c5922..9c834fcd0 100644 --- a/third_party/googleapis/google/cloud/servicehealth/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/servicehealth/v1/BUILD.bazel @@ -132,7 +132,7 @@ go_gapic_library( grpc_service_config = "servicehealth_v1_grpc_service_config.json", importpath = "cloud.google.com/go/servicehealth/apiv1;servicehealth", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "servicehealth_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/servicehealth/v1/event_resources.proto b/third_party/googleapis/google/cloud/servicehealth/v1/event_resources.proto index 33fad0c33..2c045b23d 100644 --- a/third_party/googleapis/google/cloud/servicehealth/v1/event_resources.proto +++ b/third_party/googleapis/google/cloud/servicehealth/v1/event_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/servicehealth/v1/event_service.proto b/third_party/googleapis/google/cloud/servicehealth/v1/event_service.proto index 8670c83a1..36ea7a1fc 100644 --- a/third_party/googleapis/google/cloud/servicehealth/v1/event_service.proto +++ b/third_party/googleapis/google/cloud/servicehealth/v1/event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/shell/v1/cloudshell.proto b/third_party/googleapis/google/cloud/shell/v1/cloudshell.proto index 6d78582de..09857dd7f 100644 --- a/third_party/googleapis/google/cloud/shell/v1/cloudshell.proto +++ b/third_party/googleapis/google/cloud/shell/v1/cloudshell.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1/cloud_speech.proto b/third_party/googleapis/google/cloud/speech/v1/cloud_speech.proto index 7a74e6a32..efb89871b 100644 --- a/third_party/googleapis/google/cloud/speech/v1/cloud_speech.proto +++ b/third_party/googleapis/google/cloud/speech/v1/cloud_speech.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1/cloud_speech_adaptation.proto b/third_party/googleapis/google/cloud/speech/v1/cloud_speech_adaptation.proto index 3153e7c9a..db5f39b4c 100644 --- a/third_party/googleapis/google/cloud/speech/v1/cloud_speech_adaptation.proto +++ b/third_party/googleapis/google/cloud/speech/v1/cloud_speech_adaptation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1/resource.proto b/third_party/googleapis/google/cloud/speech/v1/resource.proto index d37c11baa..b9096d4c1 100644 --- a/third_party/googleapis/google/cloud/speech/v1/resource.proto +++ b/third_party/googleapis/google/cloud/speech/v1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/README.md b/third_party/googleapis/google/cloud/speech/v1/samples/README.md deleted file mode 100644 index 6c27a5f88..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/README.md +++ /dev/null @@ -1,88 +0,0 @@ -Google Cloud Platform logo - -# Google Cloud Speech v1 – Library Samples - -Code Sample Configurations for Cloud Client Libraries for Cloud Speech - -> These code samples are published @ [cloud.google.com/speech/docs](https://cloud.google.com/speech-to-text/docs/) - -## Performing Speech Recognition - -### Transcribing short audio files [📚](https://cloud.google.com/speech-to-text/docs/sync-recognize) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_sync` | Transcribe a local audio file. Synchronous: immediate result. | -| `speech_transcribe_sync_gcs` | Transcribe an audio file in Cloud Storage. | - -### Transcribing long audio files [📚](https://cloud.google.com/speech-to-text/docs/async-recognize) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_async` | Start a long running operation to transcribe a local file. Async: wait for results. | -| `speech_transcribe_async_gcs` | Start a long running operation to transcribe a file in Cloud Storage. | - -## Configuring recognition requests - -### Transcribing audio with multiple channels [📚](https://cloud.google.com/speech-to-text/docs/multi-channel) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_multichannel` | Specify channels to transcribe and print result per channel (from local file) | -| `speech_transcribe_multichannel_gcs` | Specify channels to transcribe and print result per channel (from GCS) | - -### Selecting a transcription model [📚](https://cloud.google.com/speech-to-text/docs/transcription-model) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_model_selection` | Specify a model to use for transcribing provided audio (from local file) | -| `speech_transcribe_model_selection_gcs` | Specify a model to use for transcribing provided audio (from GCS) | - -### Using enhanced models [📚](https://cloud.google.com/speech-to-text/docs/enhanced-models) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_enhanced_model` | Specify an enhanced model, e.g. phone_call (available if opted-into data logging) | - -### Getting word timestamps [📚](https://cloud.google.com/speech-to-text/docs/async-time-offsets) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_async_word_time_offsets_gcs` | Output the start and end time of each word that was spoken. | - -## Resources - -Example files used by code samples and tests. - -All of these files are publicly available in the cloud-samples-data Cloud Storage bucket: - - - `gs://cloud-samples-data/speech/[filename]` - -> All files are formatted PCM signed 16-bit little-endian - -### Tips: - - - Passing `sample_rate_hertz` and `encoding` is optional for `WAV` and `FLAC` files - - Passing multi-channel audio files without setting `audio_channel_count` returns an error - -| Audio file | Sample Rate | Channels | Speakers | Language(s) | Transcript (excerpt) | -|--------------------------|-------------|----------|----------|------------------|----------------------| -| [brooklyn_bridge.raw][] | 16000 Hz | 1 | 1 | English | _"How old is the Brooklyn Bridge?"_ | -| [brooklyn_bridge.flac][] | 44100 Hz | 1 | 1 | English | _"How old is the Brooklyn Bridge?"_ | -| [brooklyn_bridge.wav][] | 16000 Hz | 2 * | 1 | English | _"How old is the Brooklyn Bridge?"_ | -| [hello.raw][] | 16000 Hz | 1 | 1 | English | _"Hello"_ | -| [hello.wav][] | 16000 Hz | 1 | 1 | English | _"Hello"_ | -| [multi.wav][] | 44100 Hz | 2 | 2 | English, Spanish | _"How are you doing?" "Estoy bien, y tu?"_ | -| [multi.flac][] | 44100 Hz | 1 | 2 | English, Spanish | _"How are you doing?" "Estoy bien, y tu?"_ | -| [commercial_mono.wav][] | 8000 Hz | 1 | 2 | English | _"I'd like to buy a Chromecast"_ | - -> \* _brooklyn_bridge.wav is formatted with 2 channels but only contains one channel of data_ - -[brooklyn_bridge.raw]: https://storage.googleapis.com/cloud-samples-data/speech/brooklyn_bridge.raw -[brooklyn_bridge.flac]: https://storage.googleapis.com/cloud-samples-data/speech/brooklyn_bridge.flac -[brooklyn_bridge.wav]: https://storage.googleapis.com/cloud-samples-data/speech/brooklyn_bridge.wav -[hello.raw]: https://storage.googleapis.com/cloud-samples-data/speech/hello.raw -[hello.wav]: https://storage.googleapis.com/cloud-samples-data/speech/hello.wav -[multi.wav]: https://storage.googleapis.com/cloud-samples-data/speech/multi.wav -[multi.flac]: https://storage.googleapis.com/cloud-samples-data/speech/multi.flac -[commercial_mono.wav]: https://storage.googleapis.com/cloud-samples-data/speech/commercial_mono.wav diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async.yaml deleted file mode 100644 index f798bb46a..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async.yaml +++ /dev/null @@ -1,36 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_async - title: Transcribe Audio File using Long Running Operation (Local File) (LRO) - description: Transcribe a long audio file using asynchronous speech recognition - rpc: LongRunningRecognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.content - value: "resources/brooklyn_bridge.raw" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.sample_rate_hertz - value: 16000 - comment: Sample rate in Hertz of the audio data sent - - field: config.encoding - value: LINEAR16 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async_gcs.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async_gcs.yaml deleted file mode 100644 index cb39d7b3c..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async_gcs.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_async_gcs - title: Transcript Audio File using Long Running Operation (Cloud Storage) (LRO) - description: Transcribe long audio file from Cloud Storage using asynchronous speech recognition - rpc: LongRunningRecognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/brooklyn_bridge.raw" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.sample_rate_hertz - value: 16000 - comment: Sample rate in Hertz of the audio data sent - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.encoding - value: LINEAR16 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async_word_time_offsets_gcs.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async_word_time_offsets_gcs.yaml deleted file mode 100644 index 33695b069..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_async_word_time_offsets_gcs.yaml +++ /dev/null @@ -1,48 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_async_word_time_offsets_gcs - title: Getting word timestamps (Cloud Storage) (LRO) - description: Print start and end time of each word spoken in audio file from Cloud Storage - rpc: LongRunningRecognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/brooklyn_bridge.flac" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.enable_word_time_offsets - value: true - comment: | - When enabled, the first result returned by the API will include a list - of words and the start and end time offsets (timestamps) for those words. - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - comment: - - The first result includes start and end time word offsets - - define: result = $resp.results[0] - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript - - comment: - - Print the start and end time of each word - - loop: - collection: alternative.words - variable: word - body: - - print: - - "Word: %s" - - word.word - - print: - - "Start time: %s seconds %s nanos" - - word.start_time.seconds - - word.start_time.nanos - - print: - - "End time: %s seconds %s nanos" - - word.end_time.seconds - - word.end_time.nanos diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_enhanced_model.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_enhanced_model.yaml deleted file mode 100644 index fa051b1c8..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_enhanced_model.yaml +++ /dev/null @@ -1,38 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_enhanced_model - title: Using Enhanced Models (Local File) - description: Transcribe a short audio file using an enhanced model - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.content - value: "resources/hello.wav" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.model - value: "phone_call" - comment: | - The enhanced model to use, e.g. phone_call - - field: config.use_enhanced - value: true - comment: | - Use an enhanced model for speech recognition (when set to true). - Project must be eligible for requesting enhanced models. - Enhanced speech models require that you opt-in to data logging. - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_model_selection.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_model_selection.yaml deleted file mode 100644 index b206f8bfb..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_model_selection.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_model_selection - title: Selecting a Transcription Model (Local File) - description: Transcribe a short audio file using a specified transcription model - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.content - value: "resources/hello.wav" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.model - value: "phone_call" - input_parameter: model - comment: | - The transcription model to use, e.g. video, phone_call, default - For a list of available transcription models, see: - https://cloud.google.com/speech-to-text/docs/transcription-model#transcription_models - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_model_selection_gcs.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_model_selection_gcs.yaml deleted file mode 100644 index a6e3bde67..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_model_selection_gcs.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_model_selection_gcs - title: Selecting a Transcription Model (Cloud Storage) - description: | - Transcribe a short audio file from Cloud Storage using a specified transcription model - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/hello.wav" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.model - value: "phone_call" - input_parameter: model - comment: | - The transcription model to use, e.g. video, phone_call, default - For a list of available transcription models, see: - https://cloud.google.com/speech-to-text/docs/transcription-model#transcription_models - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_multichannel.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_multichannel.yaml deleted file mode 100644 index 6de5ce075..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_multichannel.yaml +++ /dev/null @@ -1,43 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_multichannel - title: Multi-Channel Audio Transcription (Local File) - description: Transcribe a short audio file with multiple channels - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.content - value: "resources/multi.wav" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.audio_channel_count - value: 2 - comment: The number of channels in the input audio file (optional) - - field: config.enable_separate_recognition_per_channel - value: true - comment: | - When set to true, each audio channel will be recognized separately. - The recognition result will contain a channel_tag field to state which - channel that result belongs to - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - "%s to recognize which audio channel this result is for" - - channel_tag - - print: - - "Channel tag: %s" - - result.channel_tag - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_multichannel_gcs.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_multichannel_gcs.yaml deleted file mode 100644 index dc0d7c58b..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_multichannel_gcs.yaml +++ /dev/null @@ -1,42 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_multichannel_gcs - title: Multi-Channel Audio Transcription (Cloud Storage) - description: Transcribe a short audio file from Cloud Storage with multiple channels - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/multi.wav" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.audio_channel_count - value: 2 - comment: The number of channels in the input audio file (optional) - - field: config.enable_separate_recognition_per_channel - value: true - comment: | - When set to true, each audio channel will be recognized separately. - The recognition result will contain a channel_tag field to state which - channel that result belongs to - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - "%s to recognize which audio channel this result is for" - - channel_tag - - print: - - "Channel tag: %s" - - result.channel_tag - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_sync.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_sync.yaml deleted file mode 100644 index 9b53ba4f4..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_sync.yaml +++ /dev/null @@ -1,36 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_sync - title: Transcribe Audio File (Local File) - description: Transcribe a short audio file using synchronous speech recognition - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.content - value: "resources/brooklyn_bridge.raw" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.sample_rate_hertz - value: 16000 - comment: Sample rate in Hertz of the audio data sent - - field: config.encoding - value: LINEAR16 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_sync_gcs.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_sync_gcs.yaml deleted file mode 100644 index fc571b154..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/speech_transcribe_sync_gcs.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_sync_gcs - title: Transcript Audio File (Cloud Storage) - description: Transcribe short audio file from Cloud Storage using synchronous speech recognition - rpc: Recognize - service: google.cloud.speech.v1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/brooklyn_bridge.raw" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.sample_rate_hertz - value: 16000 - comment: Sample rate in Hertz of the audio data sent - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.encoding - value: LINEAR16 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async.test.yaml deleted file mode 100644 index f26cfbabc..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async.test.yaml +++ /dev/null @@ -1,28 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Transcribe Audio File using Long Running Operation (Local File) (LRO) - cases: - - # This sample should default to using brooklyn_bridge.raw - # with explicitly configured sample_rate_hertz and encoding - - name: speech_transcribe_async (no arguments) - spec: - - call: - sample: speech_transcribe_async - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - # Confirm that another file can be transcribed (use another .raw PCM file) - - name: speech_transcribe_async (--local_file_path) - spec: - - call: - sample: speech_transcribe_async - params: - local_file_path: - literal: "resources/hello.raw" - - assert_contains: - - literal: "hello" - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async_gcs.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async_gcs.test.yaml deleted file mode 100644 index d3d83133e..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async_gcs.test.yaml +++ /dev/null @@ -1,28 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Transcript Audio File using Long Running Operation (Cloud Storage) (LRO) - cases: - - # This sample should default to using gs://cloud-samples-data/brooklyn_bridge.raw - # with explicitly configured sample_rate_hertz and encoding - - name: speech_transcribe_async_gcs (no arguments) - spec: - - call: - sample: speech_transcribe_async_gcs - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - # Confirm that another file can be transcribed (use another .raw PCM file) - - name: speech_transcribe_async_gcs (--storage_uri) - spec: - - call: - sample: speech_transcribe_async_gcs - params: - storage_uri: - literal: "gs://cloud-samples-data/speech/hello.raw" - - assert_contains: - - literal: "hello" - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async_word_time_offsets_gcs.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async_word_time_offsets_gcs.test.yaml deleted file mode 100644 index 11784726d..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_async_word_time_offsets_gcs.test.yaml +++ /dev/null @@ -1,37 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Getting word timestamps (Cloud Storage) (LRO) - cases: - - # This sample should default to using gs://cloud-samples-data/speech/brooklyn_bridge.flac - - name: speech_transcribe_async_word_time_offsets_gcs (no arguments) - spec: - - call: - sample: speech_transcribe_async_word_time_offsets_gcs - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - literal: "Word: how" - - literal: "Word: old" - - literal: "Word: is" - - literal: "Start time: 0 seconds" - - literal: "End time: 1 seconds" - - # Confirm that another file can be transcribed (use another file) - - name: speech_transcribe_async_word_time_offsets_gcs (--storage_uri) - spec: - - call: - sample: speech_transcribe_async_word_time_offsets_gcs - params: - storage_uri: - literal: "gs://cloud-samples-data/speech/multi.flac" - - assert_contains: - - literal: "how are you doing" - - literal: "Word: how" - - literal: "Word: are" - - literal: "Word: you" - - literal: "Start time: 0 seconds" - - literal: "End time: 1 seconds" - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_enhanced_model.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_enhanced_model.test.yaml deleted file mode 100644 index 6eab33b52..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_enhanced_model.test.yaml +++ /dev/null @@ -1,29 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Using Enhanced Models (Local File) - cases: - - # This sample should default to using hello.wav - # and the phone_call model (only currently available enhanced model) - # - # Note: if the project used to run these tests isn't eligible for - # enhanced models, you will receive an error. - - name: speech_transcribe_enhanced_model (no arguments) - spec: - - call: - sample: speech_transcribe_enhanced_model - - assert_contains: - - literal: "hello" - - # Confirm that another file can be transcribed (use another .wav file) - - name: speech_transcribe_enhanced_model (--local_file_path) - spec: - - call: - sample: speech_transcribe_enhanced_model - params: - local_file_path: - literal: "resources/commercial_mono.wav" - - assert_contains: - - literal: "Chrome" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_model_selection.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_model_selection.test.yaml deleted file mode 100644 index b5ec2d902..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_model_selection.test.yaml +++ /dev/null @@ -1,52 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Selecting a Transcription Model (Local File) - cases: - - # This sample should default to using hello.wav - # and the phone_call model - - name: speech_transcribe_model_selection (no arguments) - spec: - - call: - sample: speech_transcribe_model_selection - - assert_contains: - - literal: "Hello" - - # Confirm that another file can be transcribed (use another .wav file) - - name: speech_transcribe_model_selection (--local_file_path) - spec: - - call: - sample: speech_transcribe_model_selection - params: - local_file_path: - literal: "resources/commercial_mono.wav" - - assert_contains: - - literal: "Chrome" - - # Confirm that --model can be specified and the sample does not blow up - # - # Note: we are not using example audio files which result in deterministically - # different results when using different models. so we simply test - # that regular transcription continues to work. - - name: speech_transcribe_model_selection (--model) - spec: - - call: - sample: speech_transcribe_model_selection - params: - model: - literal: video - - assert_contains: - - literal: "hello" - - # Confirm that --model is being passed through by providing an invalid model - - name: speech_transcribe_model_selection (invalid --model) - spec: - - call_may_fail: - sample: speech_transcribe_model_selection - params: - model: - literal: I_DONT_EXIST - - assert_contains: - - literal: "Incorrect model specified" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_model_selection_gcs.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_model_selection_gcs.test.yaml deleted file mode 100644 index 60c45c975..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_model_selection_gcs.test.yaml +++ /dev/null @@ -1,52 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Selecting a Transcription Model (Cloud Storage) - cases: - - # This sample should default to using gs://cloud-samples-data/speech/hello.wav - # and the phone_call model - - name: speech_transcribe_model_selection_gcs (no arguments) - spec: - - call: - sample: speech_transcribe_model_selection_gcs - - assert_contains: - - literal: "Hello" - - # Confirm that another file can be transcribed (use another .wav file) - - name: speech_transcribe_model_selection_gcs (--local_file_path) - spec: - - call: - sample: speech_transcribe_model_selection_gcs - params: - storage_uri: - literal: "gs://cloud-samples-data/speech/commercial_mono.wav" - - assert_contains: - - literal: "Chrome" - - # Confirm that --model can be specified and the sample does not blow up - # - # Note: we are not using example audio files which result in deterministically - # different results when using different models. so we simply test - # that regular transcription continues to work. - - name: speech_transcribe_model_selection_gcs (--model) - spec: - - call: - sample: speech_transcribe_model_selection_gcs - params: - model: - literal: video - - assert_contains: - - literal: "hello" - - # Confirm that --model is being passed through by providing an invalid model - - name: speech_transcribe_model_selection_gcs (invalid --model) - spec: - - call_may_fail: - sample: speech_transcribe_model_selection_gcs - params: - model: - literal: I_DONT_EXIST - - assert_contains: - - literal: "Incorrect model specified" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_multichannel.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_multichannel.test.yaml deleted file mode 100644 index 9d5379dc9..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_multichannel.test.yaml +++ /dev/null @@ -1,31 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Multi-Channel Audio Transcription (Local File) - cases: - - # This sample should default to using multi.wav (2 channels) - - name: speech_transcribe_multichannel (no arguments) - spec: - - call: - sample: speech_transcribe_multichannel - - assert_contains: - - literal: "Channel tag: 1" - - literal: "Channel tag: 2" - - literal: "how are you doing" - - # Confirm that another file can be transcribed (use another 2 channel .wav file) - - name: speech_transcribe_multichannel (--local_file_path) - spec: - - call: - sample: speech_transcribe_multichannel - params: - local_file_path: - literal: "resources/brooklyn_bridge.wav" - - assert_contains: - # Only one channel of data is present in brooklyn_bridge.wav - - literal: "Channel tag:" - - literal: "how old is the Brooklyn Bridge" - - assert_not_contains: - - literal: "how are you doing" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_multichannel_gcs.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_multichannel_gcs.test.yaml deleted file mode 100644 index 64c9340ce..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_multichannel_gcs.test.yaml +++ /dev/null @@ -1,32 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Multi-Channel Audio Transcription (Cloud Storage) - cases: - - # This sample should default to using gs://cloud-samples-data/speech/multi.wav - # with 2 audio channels of data - - name: speech_transcribe_multichannel_gcs (no arguments) - spec: - - call: - sample: speech_transcribe_multichannel_gcs - - assert_contains: - - literal: "Channel tag: 1" - - literal: "Channel tag: 2" - - literal: "how are you doing" - - # Confirm that another file can be transcribed (use another 2 channel .wav file) - - name: speech_transcribe_multichannel_gcs (--storage_uri) - spec: - - call: - sample: speech_transcribe_multichannel_gcs - params: - storage_uri: - literal: "gs://cloud-samples-data/speech/brooklyn_bridge.wav" - - assert_contains: - # Only one channel of data is present in brooklyn_bridge.wav - - literal: "Channel tag:" - - literal: "how old is the Brooklyn Bridge" - - assert_not_contains: - - literal: "how are you doing" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_sync.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_sync.test.yaml deleted file mode 100644 index 47cc8c1a4..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_sync.test.yaml +++ /dev/null @@ -1,28 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Transcribe Audio File (Local File) - cases: - - # This sample should default to using brooklyn_bridge.raw - # with explicitly configured sample_rate_hertz and encoding - - name: speech_transcribe_sync (no arguments) - spec: - - call: - sample: speech_transcribe_sync - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - # Confirm that another file can be transcribed (use another .raw PCM file) - - name: speech_transcribe_sync (--local_file_path) - spec: - - call: - sample: speech_transcribe_sync - params: - local_file_path: - literal: "resources/hello.raw" - - assert_contains: - - literal: "hello" - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_sync_gcs.test.yaml b/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_sync_gcs.test.yaml deleted file mode 100644 index 3defdf289..000000000 --- a/third_party/googleapis/google/cloud/speech/v1/samples/test/speech_transcribe_sync_gcs.test.yaml +++ /dev/null @@ -1,28 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Transcript Audio File (Cloud Storage) - cases: - - # This sample should default to using gs://cloud-samples-data/speech/brooklyn_bridge.raw - # with explicitly configured sample_rate_hertz and encoding - - name: speech_transcribe_sync_gcs (no arguments) - spec: - - call: - sample: speech_transcribe_sync_gcs - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - # Confirm that another file can be transcribed (use another .raw PCM file) - - name: speech_transcribe_sync_gcs (--storage_uri) - spec: - - call: - sample: speech_transcribe_sync_gcs - params: - storage_uri: - literal: "gs://cloud-samples-data/speech/hello.raw" - - assert_contains: - - literal: "hello" - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech.proto b/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech.proto index cc2e1192b..4a68b1660 100644 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech.proto +++ b/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto b/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto index 8a381e0a3..f563dbd3b 100644 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto +++ b/third_party/googleapis/google/cloud/speech/v1p1beta1/cloud_speech_adaptation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/resource.proto b/third_party/googleapis/google/cloud/speech/v1p1beta1/resource.proto index 6deb314b8..66138f257 100644 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/resource.proto +++ b/third_party/googleapis/google/cloud/speech/v1p1beta1/resource.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/README.md b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/README.md deleted file mode 100644 index e550e816c..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Google Cloud Speech v1p1beta1 – Library Samples - -Code Sample Configurations for Cloud Client Libraries for Cloud Speech - -> These code samples are published @ [cloud.google.com/speech/docs](https://cloud.google.com/speech-to-text/docs/) - -## Configuring recognition requests - -### 🔬 Beta – Enabling word-level confidence [📚](https://cloud.google.com/speech-to-text/docs/word-confidence) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_word_level_confidence_beta` | Enable option for getting confidence per word and print confidence for each word | - -### 🔬 Beta – Separating different speakers [📚](https://cloud.google.com/speech-to-text/docs/multiple-voices) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_diarization_beta` | Enable option for diarization and print transcript with "who said what" | - -### 🔬 Beta – Detecting language spoken automatically [📚](https://cloud.google.com/speech-to-text/docs/multiple-languages) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_multilanguage_beta` | Provide list of alternative languages along with audio to be transcribed. | - -### 🔬 Beta – Adding recognition metadata [📚](https://cloud.google.com/speech-to-text/docs/recognition-metadata) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_recognition_metadata_beta` | Provide metadata about the audio to transcribe for improved results. | - -### 🔬 Beta – Getting punctuation [📚](https://cloud.google.com/speech-to-text/docs/automatic-punctuation) - -| Region Tag | Description | -|------------|-------------| -| `speech_transcribe_auto_punctuation_beta` | Enable option for transcription results with punctuation. | - -## Resources - -Example files used by code samples and tests. - -All of these files are publicly available in the cloud-samples-data Cloud Storage bucket: - - - `gs://cloud-samples-data/speech/[filename]` - -> All files are formatted PCM signed 16-bit little-endian - -### Tips: - - - Passing `sample_rate_hertz` and `encoding` is optional for `WAV` and `FLAC` files - - Passing multi-channel audio files without setting `audio_channel_count` returns an error - -| Audio file | Sample Rate | Channels | Speakers | Language(s) | Transcript (excerpt) | -|--------------------------|-------------|----------|----------|------------------|----------------------| -| [brooklyn_bridge.flac][] | 44100 Hz | 1 | 1 | English | _"How old is the Brooklyn Bridge?"_ | -| [multi.flac][] | 44100 Hz | 1 | 2 | English, Spanish | _"How are you doing?" "Estoy bien, y tu?"_ | -| [commercial_mono.wav][] | 8000 Hz | 1 | 2 | English | _"I'd like to buy a Chromecast"_ | - -[brooklyn_bridge.flac]: https://storage.googleapis.com/cloud-samples-data/speech/brooklyn_bridge.flac -[multi.flac]: https://storage.googleapis.com/cloud-samples-data/speech/multi.flac -[commercial_mono.wav]: https://storage.googleapis.com/cloud-samples-data/speech/commercial_mono.wav diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_adaptation_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_adaptation_beta.yaml deleted file mode 100644 index b687bd592..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_adaptation_beta.yaml +++ /dev/null @@ -1,49 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_adaptation_beta - title: Speech Adaptation (Cloud Storage) - description: Transcribe a short audio file with speech adaptation. - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/brooklyn_bridge.mp3" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.speech_contexts[0].phrases[0] - value: "Brooklyn Bridge" - input_parameter: phrase - comment: | - Phrase "hints" help recognize the specified phrases from your audio. - - field: config.speech_contexts[0].boost - value: 20.0 - comment: | - Hint Boost. This value increases the probability that a specific - phrase will be recognized over other similar sounding phrases. - The higher the boost, the higher the chance of false positive - recognition as well. Can accept wide range of positive values. - Most use cases are best served with values between 0 and 20. - Using a binary search happroach may help you find the optimal value. - - field: config.sample_rate_hertz - value: 44100 - comment: Sample rate in Hertz of the audio data sent - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.encoding - value: MP3 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_contexts_classes_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_contexts_classes_beta.yaml deleted file mode 100644 index 1103f362b..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_contexts_classes_beta.yaml +++ /dev/null @@ -1,43 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_contexts_classes_beta - title: Using Context Classes (Cloud Storage) - description: Transcribe a short audio file with static context classes. - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/time.mp3" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.speech_contexts[0].phrases[0] - value: "$TIME" - input_parameter: phrase - comment: | - Phrase "hints" help recognize the specified phrases from your audio. - In this sample we are using a static class phrase ($TIME). - Classes represent groups of words that represent common concepts - that occur in natural language. - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.sample_rate_hertz - value: 24000 - comment: Sample rate in Hertz of the audio data sent - - field: config.encoding - value: MP3 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_quickstart_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_quickstart_beta.yaml deleted file mode 100644 index 44aff9cf8..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_quickstart_beta.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_quickstart_beta - title: Quickstart Beta - description: Performs synchronous speech recognition on an audio file - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.uri - value: "gs://cloud-samples-data/speech/brooklyn_bridge.mp3" - input_parameter: storage_uri - comment: URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE] - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - - field: config.sample_rate_hertz - value: 44100 - comment: Sample rate in Hertz of the audio data sent - - field: config.encoding - value: MP3 - comment: | - Encoding of audio data sent. This sample sets this explicitly. - This field is optional for FLAC and WAV audio formats. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_auto_punctuation_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_auto_punctuation_beta.yaml deleted file mode 100644 index 636d61cac..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_auto_punctuation_beta.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_auto_punctuation_beta - title: Getting punctuation in results (Local File) (Beta) - description: Transcribe a short audio file with punctuation - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.content - value: "resources/commercial_mono.wav" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.enable_automatic_punctuation - value: true - comment: | - When enabled, trascription results may include punctuation - (available for select languages). - - field: config.language_code - value: "en-US" - comment: | - The language of the supplied audio. Even though additional languages are - provided by alternative_language_codes, a primary language is still required. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_diarization_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_diarization_beta.yaml deleted file mode 100644 index 55c150336..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_diarization_beta.yaml +++ /dev/null @@ -1,51 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_diarization_beta - title: Separating different speakers (Local File) (LRO) (Beta) - description: | - Print confidence level for individual words in a transcription of a short audio file - Separating different speakers in an audio file recording - rpc: LongRunningRecognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.content - value: "resources/commercial_mono.wav" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.enable_speaker_diarization - value: true - comment: | - If enabled, each word in the first alternative of each result will be - tagged with a speaker tag to identify the speaker. - - field: config.diarization_speaker_count - value: 2 - comment: Optional. Specifies the estimated number of speakers in the conversation. - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - loop: - collection: $resp.results - variable: result - body: - - comment: - - First alternative has words tagged with speakers - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript - - comment: - - Print the %s of each word - - speaker_tag - - loop: - collection: alternative.words - variable: word - body: - - print: - - 'Word: %s' - - word.word - - print: - - 'Speaker tag: %s' - - word.speaker_tag diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_multilanguage_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_multilanguage_beta.yaml deleted file mode 100644 index 3cbf84914..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_multilanguage_beta.yaml +++ /dev/null @@ -1,44 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_multilanguage_beta - title: Detecting language spoken automatically (Local File) (Beta) - description: | - Transcribe a short audio file with language detected from a list of possible languages - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.content - value: resources/brooklyn_bridge.flac - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.language_code - value: "fr" - comment: | - The language of the supplied audio. Even though additional languages are - provided by alternative_language_codes, a primary language is still required. - - field: config.alternative_language_codes[0] - value: "es" - comment: | - Specify up to 3 additional languages as possible alternative languages - of the supplied audio. - - field: config.alternative_language_codes[1] - value: "en" - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - The %s which was detected as the most likely being spoken in the audio - - language_code - - print: - - "Detected language: %s" - - result.language_code - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_recognition_metadata_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_recognition_metadata_beta.yaml deleted file mode 100644 index 9517f6460..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_recognition_metadata_beta.yaml +++ /dev/null @@ -1,41 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_recognition_metadata_beta - title: Adding recognition metadata (Local File) (Beta) - description: Adds additional details short audio file included in this recognition request - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.content - value: "resources/commercial_mono.wav" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.metadata.interaction_type - value: VOICE_SEARCH - comment: The use case of the audio, e.g. PHONE_CALL, DISCUSSION, PRESENTATION, et al. - - field: config.metadata.recording_device_type - value: SMARTPHONE - comment: The kind of device used to capture the audio - - field: config.metadata.recording_device_name - value: "Pixel 3" - comment: | - The device used to make the recording. - Arbitrary string, e.g. 'Pixel XL', 'VoIP', 'Cardioid Microphone', or other value. - - field: config.language_code - value: "en-US" - comment: | - The language of the supplied audio. Even though additional languages are - provided by alternative_language_codes, a primary language is still required. - response: - - loop: - variable: result - collection: $resp.results - body: - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_word_level_confidence_beta.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_word_level_confidence_beta.yaml deleted file mode 100644 index bc085b3a6..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/speech_transcribe_word_level_confidence_beta.yaml +++ /dev/null @@ -1,45 +0,0 @@ -type: com.google.api.codegen.samplegen.v1p2.SampleConfigProto -schema_version: 1.2.0 -samples: -- region_tag: speech_transcribe_word_level_confidence_beta - title: Enabling word-level confidence (Local File) (Beta) - description: | - Print confidence level for individual words in a transcription of a short audio file. - rpc: Recognize - service: google.cloud.speech.v1p1beta1.Speech - request: - - field: audio.content - value: "resources/brooklyn_bridge.flac" - input_parameter: local_file_path - comment: Path to local audio file, e.g. /path/audio.wav - value_is_file: true - - field: config.enable_word_confidence - value: true - comment: | - When enabled, the first result returned by the API will include a list - of words and the confidence level for each of those words. - - field: config.language_code - value: "en-US" - comment: The language of the supplied audio - response: - - comment: - - The first result includes confidence levels per word - - define: result = $resp.results[0] - - comment: - - First alternative is the most probable result - - define: alternative = result.alternatives[0] - - print: - - "Transcript: %s" - - alternative.transcript - - comment: - - Print the confidence level of each word - - loop: - collection: alternative.words - variable: word - body: - - print: - - "Word: %s" - - word.word - - print: - - "Confidence: %s" - - word.confidence diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_adaptation_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_adaptation_beta.test.yaml deleted file mode 100644 index 4efe8e83f..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_adaptation_beta.test.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Speech-to-Text Sample Tests For Speech Adaptation - cases: - - name: speech_adaptation_beta - spec: - - call: {sample: speech_adaptation_beta} - - assert_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_contexts_classes_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_contexts_classes_beta.test.yaml deleted file mode 100644 index b6dccfc71..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_contexts_classes_beta.test.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Speech-to-Text Sample Tests For Speech Contexts Static Classes - cases: - - name: speech_contexts_classes_beta - spec: - - call: {sample: speech_contexts_classes_beta} - - assert_contains: - - literal: "the time is 5:45 p.m." diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_quickstart_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_quickstart_beta.test.yaml deleted file mode 100644 index bd5bf6700..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_quickstart_beta.test.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Speech-to-Text Sample Tests For Quickstart - cases: - - name: speech_quickstart_beta - spec: - - call: {sample: speech_quickstart_beta} - - assert_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_auto_punctuation_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_auto_punctuation_beta.test.yaml deleted file mode 100644 index 1ab5f79a0..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_auto_punctuation_beta.test.yaml +++ /dev/null @@ -1,28 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Getting punctuation in results (Local File) (Beta) - cases: - - # This sample should default to using commercial_mono.wav - - name: speech_transcribe_auto_punctuation_beta (no arguments) - spec: - - call: - sample: speech_transcribe_auto_punctuation_beta - - assert_contains: - # Simply assert that actual punctuation is present from commercial_mono.wav - - literal: "?" - - literal: "," - - literal: "" - - # Confirm that another file can be transcribed (use another file) - - name: speech_transcribe_auto_punctuation_beta (--local_file_path) - spec: - - call: - sample: speech_transcribe_auto_punctuation_beta - params: - local_file_path: - literal: "resources/brooklyn_bridge.flac" - - assert_contains: - - literal: "How old is the Brooklyn Bridge?" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_diarization_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_diarization_beta.test.yaml deleted file mode 100644 index 409e4b54b..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_diarization_beta.test.yaml +++ /dev/null @@ -1,40 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Separating different speakers (Local File) (LRO) (Beta) - cases: - - # This sample should default to using commercial_mono.wav - - name: speech_transcribe_diarization_beta (no arguments) - spec: - - call: - sample: speech_transcribe_diarization_beta - - assert_contains: - - literal: "Word: Chrome" - # The identifier given to each speaker is non-deterministic. - # For two speakers, it can be 0 and 1, 0 and 2, or other variations. - # - # The example audio file has two speakers, but this test is - # not verifying that greater than one speaker is detected. - - literal: "Speaker tag:" - - # Confirm that another file can be transcribed (use another .flac file) - - name: speech_transcribe_diarization_beta (--local_file_path) - spec: - - call: - sample: speech_transcribe_diarization_beta - params: - local_file_path: - literal: "resources/multi.flac" - - assert_contains: - - literal: "how are you doing" - - literal: "Word: doing" - # The identifier given to each speaker is non-deterministic. - # For two speakers, it can be 0 and 1, 0 and 2, or other variations. - # - # The example audio file has two speakers, but this test is - # not verifying that greater than one speaker is detected. - - literal: "Speaker tag:" - - assert_not_contains: - - literal: "Chrome" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_multilanguage_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_multilanguage_beta.test.yaml deleted file mode 100644 index d9f2d7109..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_multilanguage_beta.test.yaml +++ /dev/null @@ -1,33 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Detecting language spoken automatically (Local File) (Beta) - cases: - - # This sample should default to using brooklyn_bridge.flac - - name: speech_transcribe_multilanguage_beta (no arguments) - spec: - - call: - sample: speech_transcribe_multilanguage_beta - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - # Note: the primary language_code given was not English, but - # English was provided in the list of alternative_language_codes - - literal: "Detected language: en-us" - - # Confirm that another file can be transcribed (use another .flac file) - - name: speech_transcribe_multilanguage_beta (--local_file_path) - spec: - - call: - sample: speech_transcribe_multilanguage_beta - params: - local_file_path: - literal: "resources/multi.flac" - - assert_contains: - - literal: "how are you doing" - # Note: the primary language_code given was not English, but - # English was provided in the list of alternative_language_codes - - literal: "Detected language: en-us" - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_recognition_metadata_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_recognition_metadata_beta.test.yaml deleted file mode 100644 index 57cf24a1d..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_recognition_metadata_beta.test.yaml +++ /dev/null @@ -1,27 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Adding recognition metadata (Local File) (Beta) - cases: - - # This sample should default to using commercial_mono.wav - - name: speech_transcribe_recognition_metadata_beta (no arguments) - spec: - - call: - sample: speech_transcribe_recognition_metadata_beta - - assert_contains: - - literal: "Chrome" - - # Confirm that another file can be transcribed (use another file) - - name: speech_transcribe_recognition_metadata_beta (--local_file_path) - spec: - - call: - sample: speech_transcribe_recognition_metadata_beta - params: - local_file_path: - literal: "resources/brooklyn_bridge.flac" - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - assert_not_contains: - - literal: "Chrome" diff --git a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_word_level_confidence_beta.test.yaml b/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_word_level_confidence_beta.test.yaml deleted file mode 100644 index 0d7d60570..000000000 --- a/third_party/googleapis/google/cloud/speech/v1p1beta1/samples/test/speech_transcribe_word_level_confidence_beta.test.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: test/samples -schema_version: 1 -test: - suites: - - name: Enabling word-level confidence (Local File) (Beta) - cases: - - # This sample should default to using brooklyn_bridge.flac - - name: speech_transcribe_word_level_confidence_beta (no arguments) - spec: - - call: - sample: speech_transcribe_word_level_confidence_beta - - assert_contains: - - literal: "how old is the Brooklyn Bridge" - - literal: "Word: how" - - literal: "Word: old" - - literal: "Word: is" - - literal: "Confidence: 0." - - # Confirm that another file can be transcribed (use another .flac file) - - name: speech_transcribe_word_level_confidence_beta (--local_file_path) - spec: - - call: - sample: speech_transcribe_word_level_confidence_beta - params: - local_file_path: - literal: "resources/multi.flac" - - assert_contains: - - literal: "how are you doing" - - literal: "Word: how" - - literal: "Word: are" - - literal: "Word: you" - - literal: "Confidence: 0." - - assert_not_contains: - - literal: "how old is the Brooklyn Bridge" diff --git a/third_party/googleapis/google/cloud/speech/v2/cloud_speech.proto b/third_party/googleapis/google/cloud/speech/v2/cloud_speech.proto index a8f23239e..50d2757c6 100644 --- a/third_party/googleapis/google/cloud/speech/v2/cloud_speech.proto +++ b/third_party/googleapis/google/cloud/speech/v2/cloud_speech.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -865,6 +865,13 @@ message TranscriptNormalization { repeated Entry entries = 1; } +// Translation configuration. Use to translate the given audio into text for the +// desired language. +message TranslationConfig { + // Required. The language code to translate to. + string target_language = 1 [(google.api.field_behavior) = REQUIRED]; +} + // Provides "hints" to the speech recognizer to favor specific words and phrases // in the results. PhraseSets can be specified as an inline resource, or a // reference to an existing PhraseSet resource. @@ -943,6 +950,11 @@ message RecognitionConfig { // and final transcripts. TranscriptNormalization transcript_normalization = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional configuration used to automatically run translation on + // the given audio to the desired language for supported models. + TranslationConfig translation_config = 15 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for the diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_available_database_versions.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_available_database_versions.proto index aeae9febc..fe2d507bc 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_available_database_versions.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_available_database_versions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_backup_runs.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_backup_runs.proto index 8f46a2491..53e4ff19d 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_backup_runs.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_backup_runs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_connect.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_connect.proto index 716f3b8d5..590e1cc8e 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_connect.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_connect.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_databases.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_databases.proto index 4a29b5d4c..4f1c1eb75 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_databases.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_databases.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_events.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_events.proto index 6695f2738..2a098a049 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_events.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_events.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_flags.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_flags.proto index f03358b7f..d4f7989eb 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_flags.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_flags.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_iam_policies.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_iam_policies.proto index dd2e434f1..681628d1f 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_iam_policies.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_iam_policies.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instance_names.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instance_names.proto index 180d6d216..2648c1673 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instance_names.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instance_names.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instances.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instances.proto index b731e9d91..d80a1367a 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instances.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_instances.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -165,7 +165,8 @@ service SqlInstancesService { }; } - // Promotes the read replica instance to be a stand-alone Cloud SQL instance. + // Promotes the read replica instance to be an independent Cloud SQL + // primary instance. // Using this operation might cause your instance to restart. rpc PromoteReplica(SqlInstancesPromoteReplicaRequest) returns (Operation) { option (google.api.http) = { @@ -173,7 +174,8 @@ service SqlInstancesService { }; } - // Switches over from the primary instance to the replica instance. + // Switches over from the primary instance to the designated DR replica + // instance. rpc Switchover(SqlInstancesSwitchoverRequest) returns (Operation) { option (google.api.http) = { post: "/v1/projects/{project}/instances/{instance}/switchover" @@ -317,6 +319,23 @@ service SqlInstancesService { get: "/v1/projects/{project}/instances/{instance}/getLatestRecoveryTime" }; } + + // Acquire a lease for the setup of SQL Server Reporting Services (SSRS). + rpc AcquireSsrsLease(SqlInstancesAcquireSsrsLeaseRequest) + returns (SqlInstancesAcquireSsrsLeaseResponse) { + option (google.api.http) = { + post: "/v1/projects/{project}/instances/{instance}/acquireSsrsLease" + body: "body" + }; + } + + // Release a lease for the setup of SQL Server Reporting Services (SSRS). + rpc ReleaseSsrsLease(SqlInstancesReleaseSsrsLeaseRequest) + returns (SqlInstancesReleaseSsrsLeaseResponse) { + option (google.api.http) = { + post: "/v1/projects/{project}/instances/{instance}/releaseSsrsLease" + }; + } } // Instance add server CA request. @@ -478,9 +497,13 @@ message SqlInstancesPromoteReplicaRequest { // ID of the project that contains the read replica. string project = 2; - // Set to true if the promote operation should attempt to re-add the original - // primary as a replica when it comes back online. Otherwise, if this value is - // false or not set, the original primary will be a standalone instance. + // Set to true to invoke a replica failover to the designated DR + // replica. As part of replica failover, the promote operation attempts + // to add the original primary instance as a replica of the promoted + // DR replica when the original primary instance comes back online. + // If set to false or not specified, then the original primary + // instance becomes an independent Cloud SQL primary instance. + // Only applicable to MySQL. bool failover = 3; } @@ -680,6 +703,19 @@ message SqlInstancesVerifyExternalSyncSettingsRequest { OFFLINE = 2; } + // MigrationType determines whether the migration is a physical file-based + // migration or a logical dump file-based migration. + enum MigrationType { + // Default value is a logical dump file-based migration + MIGRATION_TYPE_UNSPECIFIED = 0; + + // Logical dump file-based migration + LOGICAL = 1; + + // Physical file-based migration + PHYSICAL = 2; + } + // Cloud SQL instance ID. This does not include the project ID. string instance = 1; @@ -700,6 +736,16 @@ message SqlInstancesVerifyExternalSyncSettingsRequest { MySqlSyncConfig mysql_sync_config = 6 [(google.api.field_behavior) = OPTIONAL]; } + + // Optional. MigrationType configures the migration to use physical files or + // logical dump files. If not set, then the logical dump file configuration is + // used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + MigrationType migration_type = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Parallel level for initial data sync. Only applicable for + // PostgreSQL. + ExternalSyncParallelLevel sync_parallel_level = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Instance start external sync request. @@ -725,6 +771,12 @@ message SqlInstancesStartExternalSyncRequest { // for MySQL. ExternalSyncParallelLevel sync_parallel_level = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. MigrationType configures the migration to use physical files or + // logical dump files. If not set, then the logical dump file configuration is + // used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType migration_type = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Instance reset replica size request. @@ -838,6 +890,12 @@ message InstancesTruncateLogRequest { TruncateLogContext truncate_log_context = 1; } +// Request to acquire a lease for SSRS. +message InstancesAcquireSsrsLeaseRequest { + // Contains details about the acquire SSRS lease operation. + AcquireSsrsLeaseContext acquire_ssrs_lease_context = 1; +} + // Instance verify external sync settings response. message SqlInstancesVerifyExternalSyncSettingsResponse { // This is always `sql#migrationSettingErrorList`. @@ -913,9 +971,9 @@ message CloneContext { // instance. Clone all databases if empty. repeated string database_names = 9; - // Optional. (Point-in-time recovery for PostgreSQL only) Clone to an instance - // in the specified zone. If no zone is specified, clone to the same zone as - // the source instance. + // Optional. Copy clone and point-in-time recovery clone of an instance to the + // specified zone. If no zone is specified, clone to the same primary zone as + // the source instance. This field applies to all DB types. optional string preferred_zone = 10 [(google.api.field_behavior) = OPTIONAL]; } @@ -1115,13 +1173,14 @@ message DatabaseInstance { // Name of the Cloud SQL instance. This does not include the project ID. string name = 23; - // The geographical region. Can be: - // * `us-central` (`FIRST_GEN` instances only) - // * `us-central1` (`SECOND_GEN` instances only) - // * `asia-east1` or `europe-west1`. + // The geographical region of the Cloud SQL instance. // - // Defaults to `us-central` or `us-central1` depending on the instance - // type. The region cannot be changed after instance creation. + // It can be one of the + // [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) + // where Cloud SQL operates: + // + // For example, `asia-east1`, `europe-west1`, and `us-central1`. + // The default value is `us-central1`. string region = 24; // The Compute Engine zone that the instance is currently serving from. This @@ -1149,8 +1208,9 @@ message DatabaseInstance { // The start time of any upcoming scheduled maintenance for this instance. SqlScheduledMaintenance scheduled_maintenance = 30; - // The status indicating if instance satisfiesPzs. - // Reserved for future use. + // This status indicates whether the instance satisfies PZS. + // + // The status is reserved for future use. google.protobuf.BoolValue satisfies_pzs = 35; // Output only. Stores the current database version running on the instance @@ -1179,6 +1239,10 @@ message DatabaseInstance { // The current software version on the instance. string maintenance_version = 42; + // Output only. All database versions that are available for upgrade. + repeated AvailableDatabaseVersion upgradable_database_versions = 45 + [(google.api.field_behavior) = OUTPUT_ONLY]; + optional SqlNetworkArchitecture sql_network_architecture = 47; // Output only. The link to service attachment of PSC instance. @@ -1195,6 +1259,82 @@ message DatabaseInstance { // Output only. The dns name of the primary instance in a replication group. optional string write_endpoint = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A primary instance and disaster recovery (DR) replica pair. + // A DR replica is a cross-region replica that you designate + // for failover in the event that the primary instance + // experiences regional failure. Only applicable to MySQL. + ReplicationCluster replication_cluster = 54 + [(google.api.field_behavior) = OPTIONAL]; + + // Gemini instance configuration. + optional GeminiInstanceConfig gemini_config = 55; +} + +// Gemini instance configuration. +message GeminiInstanceConfig { + // Output only. Whether Gemini is enabled. + optional bool entitled = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the vacuum management is enabled. + optional bool google_vacuum_mgmt_enabled = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether canceling the out-of-memory (OOM) session is enabled. + optional bool oom_session_cancel_enabled = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the active query is enabled. + optional bool active_query_enabled = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the index advisor is enabled. + optional bool index_advisor_enabled = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the flag recommender is enabled. + optional bool flag_recommender_enabled = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A primary instance and disaster recovery (DR) replica pair. +// A DR replica is a cross-region replica that you designate for failover in +// the event that the primary instance experiences regional failure. +// Only applicable to MySQL. +message ReplicationCluster { + // Output only. If set, it indicates this instance has a private service + // access (PSA) dns endpoint that is pointing to the primary instance of the + // cluster. If this instance is the primary, the dns should be pointing to + // this instance. After Switchover or Replica failover, this DNS endpoint + // points to the promoted instance. This is a read-only field, returned to the + // user as information. This field can exist even if a standalone instance + // does not yet have a replica, or had a DR replica that was deleted. + string psa_write_endpoint = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If the instance is a primary instance, then this field identifies + // the disaster recovery (DR) replica. A DR replica is an optional + // configuration for Enterprise Plus edition instances. If the instance is a + // read replica, then the field is not set. Set this field to a replica name + // to designate a DR replica for a primary instance. Remove the replica name + // to remove the DR replica designation. + string failover_dr_replica_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Read-only field that indicates whether the replica is a DR + // replica. This field is not set if the instance is a primary instance. + bool dr_replica = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// An available database version. It can be a major or a minor version. +message AvailableDatabaseVersion { + // The version's major version name. + optional string major_version = 3; + + // The database version name. For MySQL 8.0, this string provides the database + // major and minor version. + optional string name = 8; + + // The database version's display name. + optional string display_name = 9; } // Reschedule options for maintenance windows. @@ -1443,6 +1583,40 @@ message SqlExternalSyncSettingError { // If a time out occurs while the subscription counts are calculated, then // this value is set to 1. Otherwise, this value is set to 2. SUBSCRIPTION_CALCULATION_STATUS = 40; + + // Count of subscriptions needed to sync source data for PostgreSQL + // database. + PG_SUBSCRIPTION_COUNT = 41; + + // Final parallel level that is used to do migration. + PG_SYNC_PARALLEL_LEVEL = 42; + + // The disk size of the replica instance is smaller than the data size of + // the source instance. + INSUFFICIENT_DISK_SIZE = 43; + + // The data size of the source instance is greater than 1 TB, the number of + // cores of the replica instance is less than 8, and the memory of the + // replica is less than 32 GB. + INSUFFICIENT_MACHINE_TIER = 44; + + // The warning message indicates the unsupported extensions will not be + // migrated to the destination. + UNSUPPORTED_EXTENSIONS_NOT_MIGRATED = 45; + + // The warning message indicates the pg_cron extension and settings will not + // be migrated to the destination. + EXTENSIONS_NOT_MIGRATED = 46; + + // The error message indicates that pg_cron flags are enabled on the + // destination which is not supported during the migration. + PG_CRON_FLAG_ENABLED_IN_REPLICA = 47; + + // This error message indicates that the specified extensions are not + // enabled on destination instance. For example, before you can migrate + // data to the destination instance, you must enable the PGAudit extension + // on the instance. + EXTENSIONS_NOT_ENABLED_IN_REPLICA = 48; } // Can be `sql#externalSyncSettingError` or @@ -1514,6 +1688,47 @@ message ReplicaConfiguration { [(google.api.field_behavior) = OPTIONAL]; } +// Request to acquire a lease for SSRS. +message SqlInstancesAcquireSsrsLeaseRequest { + // Required. Cloud SQL instance ID. This doesn't include the project ID. It's + // composed of lowercase letters, numbers, and hyphens, and it must start with + // a letter. The total length must be 98 characters or less (Example: + // instance-id). + string instance = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Project ID of the project that contains the instance (Example: + // project-id). + string project = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The request body. + InstancesAcquireSsrsLeaseRequest body = 100 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response for the acquire SSRS lease request. +message SqlInstancesAcquireSsrsLeaseResponse { + // The unique identifier for this operation. + string operation_id = 1; +} + +// Request to release a lease for SSRS. +message SqlInstancesReleaseSsrsLeaseRequest { + // Required. The Cloud SQL instance ID. This doesn't include the project ID. + // The instance ID contains lowercase letters, numbers, and hyphens, and it + // must start with a letter. This ID can have a maximum length of 98 + // characters. + string instance = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The project ID that contains the instance. + string project = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for the release SSRS lease request. +message SqlInstancesReleaseSsrsLeaseResponse { + // The unique identifier for this operation. + string operation_id = 1; +} + enum SqlInstanceType { // This is an unknown Cloud SQL instance type. SQL_INSTANCE_TYPE_UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_operations.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_operations.proto index 167eaa491..44ff87605 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_operations.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_operations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_regions.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_regions.proto index 9e89ab6e5..f91dc8431 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_regions.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_regions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_resources.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_resources.proto index d87409144..ef549457b 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_resources.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -99,6 +99,31 @@ message BackupRetentionSettings { // Database instance backup configuration. message BackupConfiguration { + // This value contains the storage location of the transactional logs + // used to perform point-in-time recovery (PITR) for the database. + enum TransactionalLogStorageState { + // Unspecified. + TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED = 0; + + // The transaction logs used for PITR for the instance are stored + // on a data disk. + DISK = 1; + + // The transaction logs used for PITR for the instance are switching from + // being stored on a data disk to being stored in Cloud Storage. + // Only applicable to MySQL. + SWITCHING_TO_CLOUD_STORAGE = 2; + + // The transaction logs used for PITR for the instance are now stored + // in Cloud Storage. Previously, they were stored on a data disk. + // Only applicable to MySQL. + SWITCHED_TO_CLOUD_STORAGE = 3; + + // The transaction logs used for PITR for the instance are stored in + // Cloud Storage. Only applicable to MySQL and PostgreSQL. + CLOUD_STORAGE = 4; + } + // Start time for the daily backup configuration in UTC timezone in the 24 // hour format - `HH:MM`. string start_time = 1; @@ -128,6 +153,11 @@ message BackupConfiguration { // The number of days of transaction logs we retain for point in time // restore, from 1-7. google.protobuf.Int32Value transaction_log_retention_days = 9; + + // Output only. This value contains the storage location of transactional logs + // used to perform point-in-time recovery (PITR) for the database. + optional TransactionalLogStorageState transactional_log_storage_state = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Perform disk shrink context. @@ -402,6 +432,16 @@ message ExportContext { // Database instance import context. message ImportContext { + message SqlImportOptions { + // Optional. The number of threads to use for parallel import. + google.protobuf.Int32Value threads = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether or not the import should be parallel. + google.protobuf.BoolValue parallel = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + message SqlCsvImportOptions { // The table to which CSV data is imported. string table = 1; @@ -502,6 +542,10 @@ message ImportContext { // Import parameters specific to SQL Server .BAK files SqlBakImportOptions bak_import_options = 7; + + // Optional. Options for importing data from SQL statements. + SqlImportOptions sql_import_options = 8 + [(google.api.field_behavior) = OPTIONAL]; } enum BakType { @@ -525,21 +569,36 @@ message IpConfiguration { // The SSL mode is unknown. SSL_MODE_UNSPECIFIED = 0; - // Allow non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, - // the client certificate won't be verified. + // Allow non-SSL/non-TLS and SSL/TLS connections. + // For SSL connections to MySQL and PostgreSQL, the client certificate + // isn't verified. + // // When this value is used, the legacy `require_ssl` flag must be false or - // cleared to avoid the conflict between values of two flags. + // cleared to avoid a conflict between the values of the two flags. ALLOW_UNENCRYPTED_AND_ENCRYPTED = 1; // Only allow connections encrypted with SSL/TLS. + // For SSL connections to MySQL and PostgreSQL, the client certificate + // isn't verified. + // // When this value is used, the legacy `require_ssl` flag must be false or - // cleared to avoid the conflict between values of two flags. + // cleared to avoid a conflict between the values of the two flags. ENCRYPTED_ONLY = 2; // Only allow connections encrypted with SSL/TLS and with valid // client certificates. + // // When this value is used, the legacy `require_ssl` flag must be true or // cleared to avoid the conflict between values of two flags. + // PostgreSQL clients or users that connect using IAM database + // authentication must use either the + // [Cloud SQL Auth + // Proxy](https://cloud.google.com/sql/docs/postgres/connect-auth-proxy) or + // [Cloud SQL + // Connectors](https://cloud.google.com/sql/docs/postgres/connect-connectors) + // to enforce client identity verification. + // + // Only applicable to MySQL and PostgreSQL. Not applicable to SQL Server. TRUSTED_CLIENT_CERTIFICATE_REQUIRED = 3; } @@ -552,7 +611,7 @@ message IpConfiguration { // be updated, but it cannot be removed after it is set. string private_network = 2; - // Use `ssl_mode` instead for MySQL and PostgreSQL. SQL Server uses this flag. + // Use `ssl_mode` instead. // // Whether SSL/TLS connections over IP are enforced. // If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. @@ -580,23 +639,28 @@ message IpConfiguration { // such as BigQuery. google.protobuf.BoolValue enable_private_path_for_google_cloud_services = 7; - // Specify how SSL/TLS is enforced in database connections. MySQL and - // PostgreSQL use the `ssl_mode` flag. If you must use the `require_ssl` flag - // for backward compatibility, then only the following value pairs are valid: + // Specify how SSL/TLS is enforced in database connections. If you must use + // the `require_ssl` flag for backward compatibility, then only the following + // value pairs are valid: + // + // For PostgreSQL and MySQL: // // * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` // * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` // * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` // - // The value of `ssl_mode` gets priority over the value of `require_ssl`. For - // example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, - // the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the - // `require_ssl=false` means accept both non-SSL and SSL connections. MySQL - // and PostgreSQL databases respect `ssl_mode` in this case and accept only - // SSL connections. + // For SQL Server: // - // SQL Server uses the `require_ssl` flag. You can set the value for this flag - // to `true` or `false`. + // * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` + // * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` + // + // The value of `ssl_mode` has priority over the value of `require_ssl`. + // + // For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and + // `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means accept only SSL + // connections, while `require_ssl=false` means accept both non-SSL + // and SSL connections. In this case, MySQL and PostgreSQL databases respect + // `ssl_mode` and accepts only SSL connections. SslMode ssl_mode = 8; // PSC settings for this instance. @@ -903,8 +967,38 @@ message Operation { // Re-encrypts CMEK instances with latest key version. REENCRYPT = 38; - // Switches over to replica instance from primary. + // Switches the roles of the primary and replica pair. The target instance + // should be the replica. SWITCHOVER = 39; + + // Acquire a lease for the setup of SQL Server Reporting Services (SSRS). + ACQUIRE_SSRS_LEASE = 42; + + // Release a lease for the setup of SQL Server Reporting Services (SSRS). + RELEASE_SSRS_LEASE = 43; + + // Reconfigures old primary after a promote replica operation. Effect of a + // promote operation to the old primary is executed in this operation, + // asynchronously from the promote replica operation executed to the + // replica. + RECONFIGURE_OLD_PRIMARY = 44; + + // Indicates that the instance, its read replicas, and its cascading + // replicas are in maintenance. Maintenance typically gets initiated on + // groups of replicas first, followed by the primary instance. For each + // instance, maintenance typically causes the instance to be unavailable for + // 1-3 minutes. + CLUSTER_MAINTENANCE = 45; + + // Indicates that the instance (and any of its replicas) are currently in + // maintenance. This is initiated as a self-service request by using SSM. + // Maintenance typically causes the instance to be unavailable for 1-3 + // minutes. + SELF_SERVICE_MAINTENANCE = 46; + + // Switches a primary instance to a replica. This operation runs as part of + // a switchover operation to the original primary instance. + SWITCHOVER_TO_REPLICA = 47; } // The status of an operation. @@ -992,6 +1086,9 @@ message Operation { // The project ID of the target instance related to this operation. string target_project = 15; + + // The context for acquire SSRS lease operation, if applicable. + AcquireSsrsLeaseContext acquire_ssrs_lease_context = 20; } // Database instance operation error. @@ -1235,12 +1332,25 @@ message Settings { // Server timezone, relevant only for Cloud SQL for SQL Server. string time_zone = 34; - // Specifies advance machine configuration for the instance - // relevant only for SQL Server. + // Specifies advanced machine configuration for the instances relevant only + // for SQL Server. AdvancedMachineFeatures advanced_machine_features = 35; // Configuration for data cache. DataCacheConfig data_cache_config = 37; + + // Optional. When this parameter is set to true, Cloud SQL instances can + // connect to Vertex AI to pass requests for real-time predictions and + // insights to the AI. The default value is false. This applies only to Cloud + // SQL for PostgreSQL instances. + google.protobuf.BoolValue enable_google_ml_integration = 40 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. By default, Cloud SQL instances have schema extraction disabled + // for Dataplex. When this parameter is set to true, schema extraction for + // Dataplex on Cloud SQL instances is activated. + google.protobuf.BoolValue enable_dataplex_integration = 41 + [(google.api.field_behavior) = OPTIONAL]; } // Specifies options for controlling advanced machine features. @@ -1404,6 +1514,9 @@ enum SqlDatabaseVersion { // The database version is PostgreSQL 15. POSTGRES_15 = 172; + // The database version is PostgreSQL 16. + POSTGRES_16 = 272; + // The database version is MySQL 8. MYSQL_8_0 = 20; @@ -1443,6 +1556,24 @@ enum SqlDatabaseVersion { // The database major version is MySQL 8.0 and the minor version is 36. MYSQL_8_0_36 = 241; + // The database major version is MySQL 8.0 and the minor version is 37. + MYSQL_8_0_37 = 355; + + // The database major version is MySQL 8.0 and the minor version is 38. + MYSQL_8_0_38 = 356; + + // The database major version is MySQL 8.0 and the minor version is 39. + MYSQL_8_0_39 = 357; + + // The database major version is MySQL 8.0 and the minor version is 40. + MYSQL_8_0_40 = 358; + + // The database version is MySQL 8.4. + MYSQL_8_4 = 398; + + // The database version is MySQL 8.4 and the patch version is 0. + MYSQL_8_4_0 = 399; + // The database version is SQL Server 2019 Standard. SQLSERVER_2019_STANDARD = 26; @@ -1543,3 +1674,20 @@ enum SqlUpdateTrack { // notification. week5 = 3; } + +// Acquire SSRS lease context. +message AcquireSsrsLeaseContext { + // The username to be used as the setup login to connect to the database + // server for SSRS setup. + optional string setup_login = 1; + + // The username to be used as the service login to connect to the report + // database for SSRS setup. + optional string service_login = 2; + + // The report database to be used for SSRS setup. + optional string report_database = 3; + + // Lease duration needed for SSRS setup. + optional google.protobuf.Duration duration = 4; +} diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_ssl_certs.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_ssl_certs.proto index aa707bc89..7d7ea6bc1 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_ssl_certs.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_ssl_certs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_tiers.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_tiers.proto index b0d1351d7..23957de9d 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_tiers.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_tiers.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_users.proto b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_users.proto index 0dc3fee6d..2e7b81f3a 100644 --- a/third_party/googleapis/google/cloud/sql/v1/cloud_sql_users.proto +++ b/third_party/googleapis/google/cloud/sql/v1/cloud_sql_users.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql.proto b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql.proto index fba50d08c..2534ed9a4 100644 --- a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql.proto +++ b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -274,7 +274,8 @@ service SqlInstancesService { }; } - // Promotes the read replica instance to be a stand-alone Cloud SQL instance. + // Promotes the read replica instance to be an independent Cloud SQL + // primary instance. // Using this operation might cause your instance to restart. rpc PromoteReplica(SqlInstancesPromoteReplicaRequest) returns (Operation) { option (google.api.http) = { @@ -282,7 +283,8 @@ service SqlInstancesService { }; } - // Switches over from the primary instance to a replica instance. + // Switches over from the primary instance to the designated DR replica + // instance. rpc Switchover(SqlInstancesSwitchoverRequest) returns (Operation) { option (google.api.http) = { post: "/sql/v1beta4/projects/{project}/instances/{instance}/switchover" @@ -426,6 +428,23 @@ service SqlInstancesService { get: "/sql/v1beta4/projects/{project}/instances/{instance}/getLatestRecoveryTime" }; } + + // Acquire a lease for the setup of SQL Server Reporting Services (SSRS). + rpc AcquireSsrsLease(SqlInstancesAcquireSsrsLeaseRequest) + returns (SqlInstancesAcquireSsrsLeaseResponse) { + option (google.api.http) = { + post: "/sql/v1beta4/projects/{project}/instances/{instance}/acquireSsrsLease" + body: "body" + }; + } + + // Release a lease for the setup of SQL Server Reporting Services (SSRS). + rpc ReleaseSsrsLease(SqlInstancesReleaseSsrsLeaseRequest) + returns (SqlInstancesReleaseSsrsLeaseResponse) { + option (google.api.http) = { + post: "/sql/v1beta4/projects/{project}/instances/{instance}/releaseSsrsLease" + }; + } } service SqlOperationsService { @@ -753,9 +772,13 @@ message SqlInstancesPromoteReplicaRequest { // ID of the project that contains the read replica. string project = 2; - // Set to true if the promote operation should attempt to re-add the original - // primary as a replica when it comes back online. Otherwise, if this value is - // false or not set, the original primary will be a standalone instance. + // Set to true to invoke a replica failover to the designated DR replica. + // As part of replica failover, the promote operation attempts + // to add the original primary instance as a replica of the promoted + // DR replica when the original primary instance comes back online. + // If set to false or not specified, then the original primary + // instance becomes an independent Cloud SQL primary instance. + // Only applicable to MySQL. bool failover = 3; } @@ -936,6 +959,19 @@ message SqlInstancesVerifyExternalSyncSettingsRequest { OFFLINE = 2; } + // MigrationType determines whether the migration is a physical file-based + // migration or a logical dump file-based migration. + enum MigrationType { + // Default value is a logical dump file-based migration + MIGRATION_TYPE_UNSPECIFIED = 0; + + // Logical dump file-based migration + LOGICAL = 1; + + // Physical file-based migration + PHYSICAL = 2; + } + // Cloud SQL instance ID. This does not include the project ID. string instance = 1; @@ -956,6 +992,16 @@ message SqlInstancesVerifyExternalSyncSettingsRequest { MySqlSyncConfig mysql_sync_config = 6 [(google.api.field_behavior) = OPTIONAL]; } + + // Optional. MigrationType configures the migration to use physical files or + // logical dump files. If not set, then the logical dump file configuration is + // used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + MigrationType migration_type = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Parallel level for initial data sync. Only applicable for + // PostgreSQL. + ExternalSyncParallelLevel sync_parallel_level = 8 + [(google.api.field_behavior) = OPTIONAL]; } message SqlInstancesStartExternalSyncRequest { @@ -980,6 +1026,12 @@ message SqlInstancesStartExternalSyncRequest { // for MySQL. ExternalSyncParallelLevel sync_parallel_level = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. MigrationType configures the migration to use physical files or + // logical dump files. If not set, then the logical dump file configuration is + // used. Valid values are `LOGICAL` or `PHYSICAL`. Only applicable to MySQL. + SqlInstancesVerifyExternalSyncSettingsRequest.MigrationType migration_type = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Instance reset replica size request. @@ -1099,3 +1151,44 @@ message SqlInstancesGetLatestRecoveryTimeResponse { // Timestamp, identifies the latest recovery time of the source instance. google.protobuf.Timestamp latest_recovery_time = 2; } + +// Request to release a lease for SSRS. +message SqlInstancesReleaseSsrsLeaseRequest { + // Required. The Cloud SQL instance ID. This doesn't include the project ID. + // It's composed of lowercase letters, numbers, and hyphens, and it must start + // with a letter. The total length must be 98 characters or less (Example: + // instance-id). + string instance = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID of the project that contains the instance (Example: + // project-id). + string project = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The response for the release of the SSRS lease. +message SqlInstancesReleaseSsrsLeaseResponse { + // The operation ID. + string operation_id = 1; +} + +// Request to acquire a lease for SSRS. +message SqlInstancesAcquireSsrsLeaseRequest { + // Required. Cloud SQL instance ID. This doesn't include the project ID. It's + // composed of lowercase letters, numbers, and hyphens, and it must start with + // a letter. The total length must be 98 characters or less (Example: + // instance-id). + string instance = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. ID of the project that contains the instance (Example: + // project-id). + string project = 2 [(google.api.field_behavior) = REQUIRED]; + + // The body for request to acquire an SSRS lease. + InstancesAcquireSsrsLeaseRequest body = 100; +} + +// Acquire SSRS lease response. +message SqlInstancesAcquireSsrsLeaseResponse { + // The unique identifier for this operation. + optional string operation_id = 1; +} diff --git a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_connect.proto b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_connect.proto index 13c857715..6cc21b7c0 100644 --- a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_connect.proto +++ b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_connect.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto index 44a2b9206..08f3ffc21 100644 --- a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto +++ b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_iam_policies.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_resources.proto b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_resources.proto index a6c1618ab..f26b0a6f4 100644 --- a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_resources.proto +++ b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -99,6 +99,31 @@ message BackupRetentionSettings { // Database instance backup configuration. message BackupConfiguration { + // This value contains the storage location of the transactional logs + // used to perform point-in-time recovery (PITR) for the database. + enum TransactionalLogStorageState { + // Unspecified. + TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED = 0; + + // The transaction logs used for PITR for the instance are stored + // on a data disk. + DISK = 1; + + // The transaction logs used for PITR for the instance are switching from + // being stored on a data disk to being stored in Cloud Storage. + // Only applicable to MySQL. + SWITCHING_TO_CLOUD_STORAGE = 2; + + // The transaction logs used for PITR for the instance are now stored + // in Cloud Storage. Previously, they were stored on a data disk. + // Only applicable to MySQL. + SWITCHED_TO_CLOUD_STORAGE = 3; + + // The transaction logs used for PITR for the instance are stored in + // Cloud Storage. Only applicable to MySQL and PostgreSQL. + CLOUD_STORAGE = 4; + } + // Start time for the daily backup configuration in UTC timezone in the 24 // hour format - `HH:MM`. string start_time = 1; @@ -128,6 +153,11 @@ message BackupConfiguration { // Backup retention settings. BackupRetentionSettings backup_retention_settings = 10; + + // Output only. This value contains the storage location of transactional logs + // for the database for point-in-time recovery. + optional TransactionalLogStorageState transactional_log_storage_state = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A BackupRun resource. @@ -264,10 +294,17 @@ message CloneContext { // instance. Clone all databases if empty. repeated string database_names = 9; - // Optional. (Point-in-time recovery for PostgreSQL only) Clone to an instance - // in the specified zone. If no zone is specified, clone to the same zone as + // Optional. Copy clone and point-in-time recovery clone of an instance to the + // specified zone. If no zone is specified, clone to the same primary zone as // the source instance. optional string preferred_zone = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Copy clone and point-in-time recovery clone of a regional + // instance in the specified zones. If not specified, clone to the same + // secondary zone as the source instance. This value cannot be the same as the + // preferred_zone field. + optional string preferred_secondary_zone = 11 + [(google.api.field_behavior) = OPTIONAL]; } // Represents a SQL database on the Cloud SQL instance. @@ -537,13 +574,14 @@ message DatabaseInstance { // Name of the Cloud SQL instance. This does not include the project ID. string name = 23; - // The geographical region. Can be: - // * `us-central` (`FIRST_GEN` instances only) - // * `us-central1` (`SECOND_GEN` instances only) - // * `asia-east1` or `europe-west1`. + // The geographical region of the Cloud SQL instance. + // + // It can be one of the + // [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) + // where Cloud SQL operates: // - // Defaults to `us-central` or `us-central1` depending on the instance - // type. The region cannot be changed after instance creation. + // For example, `asia-east1`, `europe-west1`, and `us-central1`. + // The default value is `us-central1`. string region = 24; // The Compute Engine zone that the instance is currently serving from. This @@ -571,8 +609,9 @@ message DatabaseInstance { // The start time of any upcoming scheduled maintenance for this instance. SqlScheduledMaintenance scheduled_maintenance = 30; - // The status indicating if instance satisfiesPzs. - // Reserved for future use. + // This status indicates whether the instance satisfies PZS. + // + // The status is reserved for future use. google.protobuf.BoolValue satisfies_pzs = 35; // Output only. Stores the current database version running on the instance @@ -601,6 +640,10 @@ message DatabaseInstance { // The current software version on the instance. string maintenance_version = 42; + // Output only. All database versions that are available for upgrade. + repeated AvailableDatabaseVersion upgradable_database_versions = 45 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // The SQL network architecture for the instance. optional SqlNetworkArchitecture sql_network_architecture = 47; @@ -618,6 +661,83 @@ message DatabaseInstance { // Output only. The dns name of the primary instance in a replication group. optional string write_endpoint = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A primary instance and disaster recovery (DR) replica pair. + // A DR replica is a cross-region replica that you designate + // for failover in the event that the primary instance + // experiences regional failure. Only applicable to MySQL. + optional ReplicationCluster replication_cluster = 54; + + // Gemini instance configuration. + optional GeminiInstanceConfig gemini_config = 55; +} + +// Gemini instance configuration. +message GeminiInstanceConfig { + // Output only. Whether Gemini is enabled. + optional bool entitled = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the vacuum management is enabled. + optional bool google_vacuum_mgmt_enabled = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether canceling the out-of-memory (OOM) session is enabled. + optional bool oom_session_cancel_enabled = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the active query is enabled. + optional bool active_query_enabled = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the index advisor is enabled. + optional bool index_advisor_enabled = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the flag recommender is enabled. + optional bool flag_recommender_enabled = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A primary instance and disaster recovery (DR) replica pair. +// A DR replica is a cross-region replica that you designate for failover +// in the event that the primary instance has regional failure. +// Only applicable to MySQL. +message ReplicationCluster { + // Output only. If set, it indicates this instance has a private service + // access (PSA) dns endpoint that is pointing to the primary instance of the + // cluster. If this instance is the primary, the dns should be pointing to + // this instance. After Switchover or Replica failover, this DNS endpoint + // points to the promoted instance. This is a read-only field, returned to the + // user as information. This field can exist even if a standalone instance + // does not yet have a replica, or had a DR replica that was deleted. + optional string psa_write_endpoint = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If the instance is a primary instance, then this field identifies + // the disaster recovery (DR) replica. A DR replica is an optional + // configuration for Enterprise Plus edition instances. If the instance is a + // read replica, then the field is not set. Set this field to a replica name + // to designate a DR replica for a primary instance. Remove the replica name + // to remove the DR replica designation. + optional string failover_dr_replica_name = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Read-only field that indicates whether the replica is a DR + // replica. This field is not set if the instance is a primary instance. + optional bool dr_replica = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// An available database version. It can be a major or a minor version. +message AvailableDatabaseVersion { + // The version's major version name. + optional string major_version = 3; + + // The database version name. For MySQL 8.0, this string provides the database + // major and minor version. + optional string name = 8; + + // The database version's display name. + optional string display_name = 9; } // Database list response. @@ -901,6 +1021,16 @@ message FlagsListResponse { // Database instance import context. message ImportContext { + message SqlImportOptions { + // Optional. The number of threads to use for parallel import. + google.protobuf.Int32Value threads = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether or not the import should be parallel. + google.protobuf.BoolValue parallel = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + message SqlCsvImportOptions { // The table to which CSV data is imported. string table = 1; @@ -1003,6 +1133,10 @@ message ImportContext { // Import parameters specific to SQL Server .BAK files SqlBakImportOptions bak_import_options = 7; + + // Optional. Options for importing data from SQL statements. + SqlImportOptions sql_import_options = 8 + [(google.api.field_behavior) = OPTIONAL]; } enum BakType { @@ -1108,6 +1242,12 @@ message InstancesTruncateLogRequest { TruncateLogContext truncate_log_context = 1; } +// Request to acquire an SSRS lease for an instance. +message InstancesAcquireSsrsLeaseRequest { + // Contains details about the acquire SSRS lease operation. + AcquireSsrsLeaseContext acquire_ssrs_lease_context = 1; +} + // Perform disk shrink context. message PerformDiskShrinkContext { // The target disk shrink size in GigaBytes. @@ -1268,6 +1408,40 @@ message SqlExternalSyncSettingError { // If a time out occurs while the subscription counts are calculated, then // this value is set to 1. Otherwise, this value is set to 2. SUBSCRIPTION_CALCULATION_STATUS = 40; + + // Count of subscriptions needed to sync source data for PostgreSQL + // database. + PG_SUBSCRIPTION_COUNT = 41; + + // Final parallel level that is used to do migration. + PG_SYNC_PARALLEL_LEVEL = 42; + + // The disk size of the replica instance is smaller than the data size of + // the source instance. + INSUFFICIENT_DISK_SIZE = 43; + + // The data size of the source instance is greater than 1 TB, the number of + // cores of the replica instance is less than 8, and the memory of the + // replica is less than 32 GB. + INSUFFICIENT_MACHINE_TIER = 44; + + // The warning message indicates the unsupported extensions will not be + // migrated to the destination. + UNSUPPORTED_EXTENSIONS_NOT_MIGRATED = 45; + + // The warning message indicates the pg_cron extension and settings will not + // be migrated to the destination. + EXTENSIONS_NOT_MIGRATED = 46; + + // The error message indicates that pg_cron flags are enabled on the + // destination which is not supported during the migration. + PG_CRON_FLAG_ENABLED_IN_REPLICA = 47; + + // This error message indicates that the specified extensions are not + // enabled on destination instance. For example, before you can migrate + // data to the destination instance, you must enable the PGAudit extension + // on the instance. + EXTENSIONS_NOT_ENABLED_IN_REPLICA = 48; } // Can be `sql#externalSyncSettingError` or @@ -1288,21 +1462,36 @@ message IpConfiguration { // The SSL mode is unknown. SSL_MODE_UNSPECIFIED = 0; - // Allow non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, - // the client certificate won't be verified. + // Allow non-SSL/non-TLS and SSL/TLS connections. + // For SSL connections to MySQL and PostgreSQL, the client certificate + // isn't verified. + // // When this value is used, the legacy `require_ssl` flag must be false or - // cleared to avoid the conflict between values of two flags. + // cleared to avoid a conflict between the values of the two flags. ALLOW_UNENCRYPTED_AND_ENCRYPTED = 1; // Only allow connections encrypted with SSL/TLS. + // For SSL connections to MySQL and PostgreSQL, the client certificate + // isn't verified. + // // When this value is used, the legacy `require_ssl` flag must be false or - // cleared to avoid the conflict between values of two flags. + // cleared to avoid a conflict between the values of the two flags. ENCRYPTED_ONLY = 2; // Only allow connections encrypted with SSL/TLS and with valid // client certificates. + // // When this value is used, the legacy `require_ssl` flag must be true or // cleared to avoid the conflict between values of two flags. + // PostgreSQL clients or users that connect using IAM database + // authentication must use either the + // [Cloud SQL Auth + // Proxy](https://cloud.google.com/sql/docs/postgres/connect-auth-proxy) or + // [Cloud SQL + // Connectors](https://cloud.google.com/sql/docs/postgres/connect-connectors) + // to enforce client identity verification. + // + // Only applicable to MySQL and PostgreSQL. Not applicable to SQL Server. TRUSTED_CLIENT_CERTIFICATE_REQUIRED = 3; } @@ -1315,7 +1504,7 @@ message IpConfiguration { // be updated, but it cannot be removed after it is set. string private_network = 2; - // Use `ssl_mode` instead for MySQL and PostgreSQL. SQL Server uses this flag. + // Use `ssl_mode` instead. // // Whether SSL/TLS connections over IP are enforced. // If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. @@ -1343,23 +1532,28 @@ message IpConfiguration { // such as BigQuery. google.protobuf.BoolValue enable_private_path_for_google_cloud_services = 7; - // Specify how SSL/TLS is enforced in database connections. MySQL and - // PostgreSQL use the `ssl_mode` flag. If you must use the `require_ssl` flag - // for backward compatibility, then only the following value pairs are valid: + // Specify how SSL/TLS is enforced in database connections. If you must use + // the `require_ssl` flag for backward compatibility, then only the following + // value pairs are valid: + // + // For PostgreSQL and MySQL: // // * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` // * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` // * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` // - // The value of `ssl_mode` gets priority over the value of `require_ssl`. For - // example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, - // the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the - // `require_ssl=false` means accept both non-SSL and SSL connections. MySQL - // and PostgreSQL databases respect `ssl_mode` in this case and accept only - // SSL connections. + // For SQL Server: + // + // * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` + // * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` + // + // The value of `ssl_mode` has priority over the value of `require_ssl`. // - // SQL Server uses the `require_ssl` flag. You can set the value for this flag - // to `true` or `false`. + // For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and + // `require_ssl=false`, `ssl_mode=ENCRYPTED_ONLY` means accept only SSL + // connections, while `require_ssl=false` means accept both non-SSL + // and SSL connections. In this case, MySQL and PostgreSQL databases respect + // `ssl_mode` and accepts only SSL connections. SslMode ssl_mode = 8; // PSC settings for this instance. @@ -1697,8 +1891,38 @@ message Operation { // Re-encrypts CMEK instances with latest key version. REENCRYPT = 38; - // Switches over to replica instance from primary. + // Switches the roles of the primary and replica pair. The target instance + // should be the replica. SWITCHOVER = 39; + + // Acquire a lease for the setup of SQL Server Reporting Services (SSRS). + ACQUIRE_SSRS_LEASE = 42; + + // Release a lease for the setup of SQL Server Reporting Services (SSRS). + RELEASE_SSRS_LEASE = 43; + + // Reconfigures old primary after a promote replica operation. Effect of a + // promote operation to the old primary is executed in this operation, + // asynchronously from the promote replica operation executed to the + // replica. + RECONFIGURE_OLD_PRIMARY = 44; + + // Indicates that the instance, its read replicas, and its cascading + // replicas are in maintenance. Maintenance typically gets initiated on + // groups of replicas first, followed by the primary instance. For each + // instance, maintenance typically causes the instance to be unavailable for + // 1-3 minutes. + CLUSTER_MAINTENANCE = 45; + + // Indicates that the instance (and any of its replicas) are currently in + // maintenance. This is initiated as a self-service request by using SSM. + // Maintenance typically causes the instance to be unavailable for 1-3 + // minutes. + SELF_SERVICE_MAINTENANCE = 46; + + // Switches a primary instance to a replica. This operation runs as part of + // a switchover operation to the original primary instance. + SWITCHOVER_TO_REPLICA = 47; } // The status of an operation. @@ -1786,6 +2010,9 @@ message Operation { // The project ID of the target instance related to this operation. string target_project = 15; + + // The context for acquire SSRS lease operation, if applicable. + AcquireSsrsLeaseContext acquire_ssrs_lease_context = 20; } // Database instance operation error. @@ -2095,12 +2322,25 @@ message Settings { // Server timezone, relevant only for Cloud SQL for SQL Server. string time_zone = 34; - // Specifies advance machine configuration for the instance - // relevant only for SQL Server. + // Specifies advanced machine configuration for the instances relevant only + // for SQL Server. AdvancedMachineFeatures advanced_machine_features = 35; // Configuration for data cache. DataCacheConfig data_cache_config = 37; + + // Optional. When this parameter is set to true, Cloud SQL instances can + // connect to Vertex AI to pass requests for real-time predictions and + // insights to the AI. The default value is false. This applies only to Cloud + // SQL for PostgreSQL instances. + google.protobuf.BoolValue enable_google_ml_integration = 40 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. By default, Cloud SQL instances have schema extraction disabled + // for Dataplex. When this parameter is set to true, schema extraction for + // Dataplex on Cloud SQL instances is activated. + google.protobuf.BoolValue enable_dataplex_integration = 41 + [(google.api.field_behavior) = OPTIONAL]; } // Specifies options for controlling advanced machine features. @@ -2423,6 +2663,9 @@ enum SqlDatabaseVersion { // The database version is PostgreSQL 15. POSTGRES_15 = 172; + // The database version is PostgreSQL 16. + POSTGRES_16 = 272; + // The database version is MySQL 8. MYSQL_8_0 = 20; @@ -2462,6 +2705,24 @@ enum SqlDatabaseVersion { // The database major version is MySQL 8.0 and the minor version is 36. MYSQL_8_0_36 = 241; + // The database major version is MySQL 8.0 and the minor version is 37. + MYSQL_8_0_37 = 355; + + // The database major version is MySQL 8.0 and the minor version is 38. + MYSQL_8_0_38 = 356; + + // The database major version is MySQL 8.0 and the minor version is 39. + MYSQL_8_0_39 = 357; + + // The database major version is MySQL 8.0 and the minor version is 40. + MYSQL_8_0_40 = 358; + + // The database version is MySQL 8.4. + MYSQL_8_4 = 398; + + // The database version is MySQL 8.4 and the patch version is 0. + MYSQL_8_4_0 = 399; + // The database version is SQL Server 2019 Standard. SQLSERVER_2019_STANDARD = 26; @@ -2584,6 +2845,23 @@ enum SqlUpdateTrack { week5 = 3; } +// Acquire SSRS lease context. +message AcquireSsrsLeaseContext { + // The username to be used as the setup login to connect to the database + // server for SSRS setup. + optional string setup_login = 1; + + // The username to be used as the service login to connect to the report + // database for SSRS setup. + optional string service_login = 2; + + // The report database to be used for the SSRS setup. + optional string report_database = 3; + + // Lease duration needed for the SSRS setup. + optional google.protobuf.Duration duration = 4; +} + enum SqlFlagType { // This is an unknown flag type. SQL_FLAG_TYPE_UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_tiers.proto b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_tiers.proto index 4f04897ad..1178f9065 100644 --- a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_tiers.proto +++ b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_tiers.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_users.proto b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_users.proto index 153e60f14..450205eb2 100644 --- a/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_users.proto +++ b/third_party/googleapis/google/cloud/sql/v1beta4/cloud_sql_users.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/storageinsights/v1/BUILD.bazel b/third_party/googleapis/google/cloud/storageinsights/v1/BUILD.bazel index 1d1816b08..842b6fbad 100644 --- a/third_party/googleapis/google/cloud/storageinsights/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/storageinsights/v1/BUILD.bazel @@ -224,7 +224,7 @@ php_gapic_library( name = "storageinsights_php_gapic", srcs = [":storageinsights_proto_with_info"], grpc_service_config = "storageinsights_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "storageinsights_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/storageinsights/v1/storageinsights.proto b/third_party/googleapis/google/cloud/storageinsights/v1/storageinsights.proto index 68dce54c3..baed7528a 100644 --- a/third_party/googleapis/google/cloud/storageinsights/v1/storageinsights.proto +++ b/third_party/googleapis/google/cloud/storageinsights/v1/storageinsights.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/stream/logging/v1/logging.proto b/third_party/googleapis/google/cloud/stream/logging/v1/logging.proto index 319c4b6f8..9a07956bd 100644 --- a/third_party/googleapis/google/cloud/stream/logging/v1/logging.proto +++ b/third_party/googleapis/google/cloud/stream/logging/v1/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/actor.proto b/third_party/googleapis/google/cloud/support/v2/actor.proto index a15127835..b08c037df 100644 --- a/third_party/googleapis/google/cloud/support/v2/actor.proto +++ b/third_party/googleapis/google/cloud/support/v2/actor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/attachment.proto b/third_party/googleapis/google/cloud/support/v2/attachment.proto index f5894dc4b..2e3f78128 100644 --- a/third_party/googleapis/google/cloud/support/v2/attachment.proto +++ b/third_party/googleapis/google/cloud/support/v2/attachment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/attachment_service.proto b/third_party/googleapis/google/cloud/support/v2/attachment_service.proto index fd62619da..4a4a93d8c 100644 --- a/third_party/googleapis/google/cloud/support/v2/attachment_service.proto +++ b/third_party/googleapis/google/cloud/support/v2/attachment_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/case.proto b/third_party/googleapis/google/cloud/support/v2/case.proto index 4d608a6e4..b065a3398 100644 --- a/third_party/googleapis/google/cloud/support/v2/case.proto +++ b/third_party/googleapis/google/cloud/support/v2/case.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/case_service.proto b/third_party/googleapis/google/cloud/support/v2/case_service.proto index 8a9a75664..d46bb188e 100644 --- a/third_party/googleapis/google/cloud/support/v2/case_service.proto +++ b/third_party/googleapis/google/cloud/support/v2/case_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/comment.proto b/third_party/googleapis/google/cloud/support/v2/comment.proto index 158279e77..cb0eaca42 100644 --- a/third_party/googleapis/google/cloud/support/v2/comment.proto +++ b/third_party/googleapis/google/cloud/support/v2/comment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/comment_service.proto b/third_party/googleapis/google/cloud/support/v2/comment_service.proto index 17846cfea..f0fcbae9d 100644 --- a/third_party/googleapis/google/cloud/support/v2/comment_service.proto +++ b/third_party/googleapis/google/cloud/support/v2/comment_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/support/v2/escalation.proto b/third_party/googleapis/google/cloud/support/v2/escalation.proto index 1972df311..ebd6bd3c1 100644 --- a/third_party/googleapis/google/cloud/support/v2/escalation.proto +++ b/third_party/googleapis/google/cloud/support/v2/escalation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/common.proto b/third_party/googleapis/google/cloud/talent/v4/common.proto index 9eedc1682..4676c94c8 100644 --- a/third_party/googleapis/google/cloud/talent/v4/common.proto +++ b/third_party/googleapis/google/cloud/talent/v4/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/company.proto b/third_party/googleapis/google/cloud/talent/v4/company.proto index 7c07a44b9..034672c35 100644 --- a/third_party/googleapis/google/cloud/talent/v4/company.proto +++ b/third_party/googleapis/google/cloud/talent/v4/company.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/company_service.proto b/third_party/googleapis/google/cloud/talent/v4/company_service.proto index 2a0b85bd2..43a4d2fe2 100644 --- a/third_party/googleapis/google/cloud/talent/v4/company_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4/company_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/completion_service.proto b/third_party/googleapis/google/cloud/talent/v4/completion_service.proto index 5447895cb..26cdce647 100644 --- a/third_party/googleapis/google/cloud/talent/v4/completion_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/event.proto b/third_party/googleapis/google/cloud/talent/v4/event.proto index b894046ae..be6e63271 100644 --- a/third_party/googleapis/google/cloud/talent/v4/event.proto +++ b/third_party/googleapis/google/cloud/talent/v4/event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/event_service.proto b/third_party/googleapis/google/cloud/talent/v4/event_service.proto index a20c1b986..bc87f7290 100644 --- a/third_party/googleapis/google/cloud/talent/v4/event_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4/event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/filters.proto b/third_party/googleapis/google/cloud/talent/v4/filters.proto index a1a27cbc3..170632a0e 100644 --- a/third_party/googleapis/google/cloud/talent/v4/filters.proto +++ b/third_party/googleapis/google/cloud/talent/v4/filters.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/histogram.proto b/third_party/googleapis/google/cloud/talent/v4/histogram.proto index 37c9be2b2..0759fcffa 100644 --- a/third_party/googleapis/google/cloud/talent/v4/histogram.proto +++ b/third_party/googleapis/google/cloud/talent/v4/histogram.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/job.proto b/third_party/googleapis/google/cloud/talent/v4/job.proto index 6fed2ab0a..2c5ede77f 100644 --- a/third_party/googleapis/google/cloud/talent/v4/job.proto +++ b/third_party/googleapis/google/cloud/talent/v4/job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/job_service.proto b/third_party/googleapis/google/cloud/talent/v4/job_service.proto index 71d8117a3..765921856 100644 --- a/third_party/googleapis/google/cloud/talent/v4/job_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/tenant.proto b/third_party/googleapis/google/cloud/talent/v4/tenant.proto index dfba9dea4..8308d84dc 100644 --- a/third_party/googleapis/google/cloud/talent/v4/tenant.proto +++ b/third_party/googleapis/google/cloud/talent/v4/tenant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4/tenant_service.proto b/third_party/googleapis/google/cloud/talent/v4/tenant_service.proto index 2e6ec21c3..36cc53b4e 100644 --- a/third_party/googleapis/google/cloud/talent/v4/tenant_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4/tenant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/batch.proto b/third_party/googleapis/google/cloud/talent/v4beta1/batch.proto index f513e1900..6ab3977c3 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/batch.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/batch.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/common.proto b/third_party/googleapis/google/cloud/talent/v4beta1/common.proto index 310a5196a..9babd1ccf 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/common.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/company.proto b/third_party/googleapis/google/cloud/talent/v4beta1/company.proto index 662a574cc..3c1719552 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/company.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/company.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/company_service.proto b/third_party/googleapis/google/cloud/talent/v4beta1/company_service.proto index bfbbbfe8c..f383a1081 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/company_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/company_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/completion_service.proto b/third_party/googleapis/google/cloud/talent/v4beta1/completion_service.proto index 27ada9453..f499d180f 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/completion_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/completion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/event.proto b/third_party/googleapis/google/cloud/talent/v4beta1/event.proto index 2a89b46d3..6b3061c53 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/event.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/event_service.proto b/third_party/googleapis/google/cloud/talent/v4beta1/event_service.proto index 58333990c..178d3f205 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/event_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/event_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/filters.proto b/third_party/googleapis/google/cloud/talent/v4beta1/filters.proto index 63b553bcb..66e09292e 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/filters.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/filters.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/histogram.proto b/third_party/googleapis/google/cloud/talent/v4beta1/histogram.proto index 2c02e0f77..2ca86a91a 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/histogram.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/histogram.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/job.proto b/third_party/googleapis/google/cloud/talent/v4beta1/job.proto index 917f75a77..d46643a98 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/job.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/job_service.proto b/third_party/googleapis/google/cloud/talent/v4beta1/job_service.proto index e6ea986ee..14468e5d3 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/job_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/tenant.proto b/third_party/googleapis/google/cloud/talent/v4beta1/tenant.proto index a71bf8ffb..05809098f 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/tenant.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/tenant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/talent/v4beta1/tenant_service.proto b/third_party/googleapis/google/cloud/talent/v4beta1/tenant_service.proto index fe3f5f3d0..0b7b5d859 100644 --- a/third_party/googleapis/google/cloud/talent/v4beta1/tenant_service.proto +++ b/third_party/googleapis/google/cloud/talent/v4beta1/tenant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2/cloudtasks.proto b/third_party/googleapis/google/cloud/tasks/v2/cloudtasks.proto index 6973d356d..b10d3272a 100644 --- a/third_party/googleapis/google/cloud/tasks/v2/cloudtasks.proto +++ b/third_party/googleapis/google/cloud/tasks/v2/cloudtasks.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2/queue.proto b/third_party/googleapis/google/cloud/tasks/v2/queue.proto index 9c7b06230..32a230afd 100644 --- a/third_party/googleapis/google/cloud/tasks/v2/queue.proto +++ b/third_party/googleapis/google/cloud/tasks/v2/queue.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2/target.proto b/third_party/googleapis/google/cloud/tasks/v2/target.proto index 2440e9a87..0bf95ee41 100644 --- a/third_party/googleapis/google/cloud/tasks/v2/target.proto +++ b/third_party/googleapis/google/cloud/tasks/v2/target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2/task.proto b/third_party/googleapis/google/cloud/tasks/v2/task.proto index bd3da8842..9c3de7d70 100644 --- a/third_party/googleapis/google/cloud/tasks/v2/task.proto +++ b/third_party/googleapis/google/cloud/tasks/v2/task.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta2/cloudtasks.proto b/third_party/googleapis/google/cloud/tasks/v2beta2/cloudtasks.proto index b33a8fcbc..3a996871b 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta2/cloudtasks.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta2/cloudtasks.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta2/old_target.proto b/third_party/googleapis/google/cloud/tasks/v2beta2/old_target.proto index 17179fa29..28d985880 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta2/old_target.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta2/old_target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta2/queue.proto b/third_party/googleapis/google/cloud/tasks/v2beta2/queue.proto index 587ecb1eb..0149117d3 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta2/queue.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta2/queue.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta2/target.proto b/third_party/googleapis/google/cloud/tasks/v2beta2/target.proto index 584f5b061..6b047b1a7 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta2/target.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta2/target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta2/task.proto b/third_party/googleapis/google/cloud/tasks/v2beta2/task.proto index 467ee1031..45effd981 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta2/task.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta2/task.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta3/cloudtasks.proto b/third_party/googleapis/google/cloud/tasks/v2beta3/cloudtasks.proto index 232d9e9bd..769344fdd 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta3/cloudtasks.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta3/cloudtasks.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta3/queue.proto b/third_party/googleapis/google/cloud/tasks/v2beta3/queue.proto index f56a080b4..8cfc48399 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta3/queue.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta3/queue.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta3/target.proto b/third_party/googleapis/google/cloud/tasks/v2beta3/target.proto index f68a116cf..1f0d8a376 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta3/target.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta3/target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tasks/v2beta3/task.proto b/third_party/googleapis/google/cloud/tasks/v2beta3/task.proto index eb8df59f2..ab04be8d6 100644 --- a/third_party/googleapis/google/cloud/tasks/v2beta3/task.proto +++ b/third_party/googleapis/google/cloud/tasks/v2beta3/task.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/telcoautomation/v1/BUILD.bazel b/third_party/googleapis/google/cloud/telcoautomation/v1/BUILD.bazel index 01d837429..72cf0cb77 100644 --- a/third_party/googleapis/google/cloud/telcoautomation/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/telcoautomation/v1/BUILD.bazel @@ -135,7 +135,7 @@ go_gapic_library( grpc_service_config = "telcoautomation_v1_grpc_service_config.json", importpath = "cloud.google.com/go/telcoautomation/apiv1;telcoautomation", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "telcoautomation_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/telcoautomation/v1/telcoautomation.proto b/third_party/googleapis/google/cloud/telcoautomation/v1/telcoautomation.proto index 9d915a602..10a77164a 100644 --- a/third_party/googleapis/google/cloud/telcoautomation/v1/telcoautomation.proto +++ b/third_party/googleapis/google/cloud/telcoautomation/v1/telcoautomation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/telcoautomation/v1alpha1/telcoautomation.proto b/third_party/googleapis/google/cloud/telcoautomation/v1alpha1/telcoautomation.proto index 80f94a3b1..ff1513b37 100644 --- a/third_party/googleapis/google/cloud/telcoautomation/v1alpha1/telcoautomation.proto +++ b/third_party/googleapis/google/cloud/telcoautomation/v1alpha1/telcoautomation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts.proto b/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts.proto index 9ab65b1b7..ae9c11213 100644 --- a/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts.proto +++ b/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts_lrs.proto b/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts_lrs.proto index 67bc4bd86..c8e6a7c54 100644 --- a/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts_lrs.proto +++ b/third_party/googleapis/google/cloud/texttospeech/v1/cloud_tts_lrs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts.proto b/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts.proto index 8a3d29a16..566c2bb39 100644 --- a/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts.proto +++ b/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto b/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto index f159ae4f4..d6fa1b3df 100644 --- a/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto +++ b/third_party/googleapis/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/timeseriesinsights/v1/BUILD.bazel b/third_party/googleapis/google/cloud/timeseriesinsights/v1/BUILD.bazel index 1eea314f6..1c4a5fe9f 100644 --- a/third_party/googleapis/google/cloud/timeseriesinsights/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/timeseriesinsights/v1/BUILD.bazel @@ -310,48 +310,51 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", -) - -csharp_proto_library( - name = "timeseriesinsights_csharp_proto", - deps = [":timeseriesinsights_proto"], -) - -csharp_grpc_library( - name = "timeseriesinsights_csharp_grpc", - srcs = [":timeseriesinsights_proto"], - deps = [":timeseriesinsights_csharp_proto"], -) - -csharp_gapic_library( - name = "timeseriesinsights_csharp_gapic", - srcs = [":timeseriesinsights_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "timeseries_insights_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "timeseriesinsights_v1.yaml", - transport = "grpc+rest", - deps = [ - ":timeseriesinsights_csharp_grpc", - ":timeseriesinsights_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-timeseriesinsights-v1-csharp", - deps = [ - ":timeseriesinsights_csharp_gapic", - ":timeseriesinsights_csharp_grpc", - ":timeseriesinsights_csharp_proto", - ], -) +# C# generation is currently commented out as the protos don't contain all the +# required comments, and we want to be able to validate comments in the C# +# generator. See b/336699966. +# load( +# "@com_google_googleapis_imports//:imports.bzl", +# "csharp_gapic_assembly_pkg", +# "csharp_gapic_library", +# "csharp_grpc_library", +# "csharp_proto_library", +# ) +# +# csharp_proto_library( +# name = "timeseriesinsights_csharp_proto", +# deps = [":timeseriesinsights_proto"], +# ) +# +# csharp_grpc_library( +# name = "timeseriesinsights_csharp_grpc", +# srcs = [":timeseriesinsights_proto"], +# deps = [":timeseriesinsights_csharp_proto"], +# ) +# +# csharp_gapic_library( +# name = "timeseriesinsights_csharp_gapic", +# srcs = [":timeseriesinsights_proto_with_info"], +# common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", +# grpc_service_config = "timeseries_insights_grpc_service_config.json", +# rest_numeric_enums = True, +# service_yaml = "timeseriesinsights_v1.yaml", +# transport = "grpc+rest", +# deps = [ +# ":timeseriesinsights_csharp_grpc", +# ":timeseriesinsights_csharp_proto", +# ], +# ) +# +# # Open Source Packages +# csharp_gapic_assembly_pkg( +# name = "google-cloud-timeseriesinsights-v1-csharp", +# deps = [ +# ":timeseriesinsights_csharp_gapic", +# ":timeseriesinsights_csharp_grpc", +# ":timeseriesinsights_csharp_proto", +# ], +# ) ############################################################################## # C++ diff --git a/third_party/googleapis/google/cloud/timeseriesinsights/v1/timeseries_insights.proto b/third_party/googleapis/google/cloud/timeseriesinsights/v1/timeseries_insights.proto index 55893588f..aa17a7101 100644 --- a/third_party/googleapis/google/cloud/timeseriesinsights/v1/timeseries_insights.proto +++ b/third_party/googleapis/google/cloud/timeseriesinsights/v1/timeseries_insights.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tpu/v1/cloud_tpu.proto b/third_party/googleapis/google/cloud/tpu/v1/cloud_tpu.proto index 69ffd5481..3ad0bb109 100644 --- a/third_party/googleapis/google/cloud/tpu/v1/cloud_tpu.proto +++ b/third_party/googleapis/google/cloud/tpu/v1/cloud_tpu.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tpu/v2/cloud_tpu.proto b/third_party/googleapis/google/cloud/tpu/v2/cloud_tpu.proto index 0a72e2341..f95203c97 100644 --- a/third_party/googleapis/google/cloud/tpu/v2/cloud_tpu.proto +++ b/third_party/googleapis/google/cloud/tpu/v2/cloud_tpu.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/tpu/v2alpha1/cloud_tpu.proto b/third_party/googleapis/google/cloud/tpu/v2alpha1/cloud_tpu.proto index 574806b45..7bddd747f 100644 --- a/third_party/googleapis/google/cloud/tpu/v2alpha1/cloud_tpu.proto +++ b/third_party/googleapis/google/cloud/tpu/v2alpha1/cloud_tpu.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/translate/v3/adaptive_mt.proto b/third_party/googleapis/google/cloud/translate/v3/adaptive_mt.proto index 341fb3820..fdcbc29a4 100644 --- a/third_party/googleapis/google/cloud/translate/v3/adaptive_mt.proto +++ b/third_party/googleapis/google/cloud/translate/v3/adaptive_mt.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/translate/v3/common.proto b/third_party/googleapis/google/cloud/translate/v3/common.proto index d254d911f..de8a44d30 100644 --- a/third_party/googleapis/google/cloud/translate/v3/common.proto +++ b/third_party/googleapis/google/cloud/translate/v3/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/translate/v3/translation_service.proto b/third_party/googleapis/google/cloud/translate/v3/translation_service.proto index dde410d63..aa921dbff 100644 --- a/third_party/googleapis/google/cloud/translate/v3/translation_service.proto +++ b/third_party/googleapis/google/cloud/translate/v3/translation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/translate/v3beta1/translation_service.proto b/third_party/googleapis/google/cloud/translate/v3beta1/translation_service.proto index bc7435f72..756fc0489 100644 --- a/third_party/googleapis/google/cloud/translate/v3beta1/translation_service.proto +++ b/third_party/googleapis/google/cloud/translate/v3beta1/translation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/video/livestream/logging/v1/logs.proto b/third_party/googleapis/google/cloud/video/livestream/logging/v1/logs.proto index 7fba97a40..9a70ddb8a 100644 --- a/third_party/googleapis/google/cloud/video/livestream/logging/v1/logs.proto +++ b/third_party/googleapis/google/cloud/video/livestream/logging/v1/logs.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -45,6 +45,12 @@ message ChannelActivity { // An input stream disconnects. InputDisconnect input_disconnect = 6; + + // An event state changes. + EventStateChange event_state_change = 7; + + // A SCTE35 command is received. + Scte35Command scte35_command_received = 8; } } @@ -153,3 +159,103 @@ message InputDisconnect { // The user-defined key for the input attachment. string input_attachment = 2; } + +// EventStateChange records when an Event state changes. +message EventStateChange { + // Resource name of the event. + string event_id = 1; + + // New state of the event. + google.cloud.video.livestream.v1.Event.State new_state = 2; + + // Previous state of the event. + google.cloud.video.livestream.v1.Event.State previous_state = 3; +} + +// Scte35Command includes details of a received SCTE35 command. +message Scte35Command { + // SpliceTime contains information about the execution time of the splice + // insert. + message SpliceTime { + // If true, the execution time of the splice insert is specified. + bool time_specified_flag = 1; + + // The time of the splice insert. + int64 pts_time = 2; + } + + // BreakDuration contains information about the duration of the splice + // insert. + message BreakDuration { + // If true, the splice insert will automatically return upon finishing. + bool auto_return = 1; + + // Duration of the splice insert. + int64 duration = 2; + } + + // Fine grained control on the scte command insertion for a specific + // elementary stream. This is ignored if program_splice_flag is true. + message Component { + // Elementary stream PID that the scte command should be inserted into. + int32 component_tag = 1; + + // The time of the insert. + SpliceTime splice_time = 2; + } + + // SpliceInsert contains information about the splice insert. + message SpliceInsert { + // Event ID of the scte command. + int32 splice_event_id = 1; + + // Whether this scte command is to cancel another scheduled scte command. + bool splice_event_cancel_indicator = 2; + + // Whether this scte command is cueing out the current program. + bool out_of_network_indicator = 3; + + // If true, send splice insert to all streams. + bool program_splice_flag = 4; + + // If true, the duration of the event is specified. + bool duration_flag = 5; + + // If true, the event should be executed immediately. + bool splice_immediate_flag = 6; + + // Information about the execution time of the splice insert. + SpliceTime splice_time = 7; + + // Information about the duration of the splice insert. + BreakDuration break_duration = 8; + + // Unique ID for a viewing event. + int32 unique_program_id = 9; + + // ID for an avail within one unique_program_id. + int32 avail_num = 10; + + // The number of avails within the current viewing event. + int32 avails_expected = 11; + + // Number of components. + int32 component_count = 12; + + // Components of the program. + repeated Component components = 13; + } + + // SpliceInfoSection contains information about the splice insert. + message SpliceInfoSection { + // Overflow of pts_time, when pts_time doesn't have enough bits + // to represent the time. + int64 pts_adjustment = 1; + + // Information about the splice insert. + SpliceInsert splice_insert = 2; + } + + // Information about the splice insert. + SpliceInfoSection splice_info_section = 1; +} diff --git a/third_party/googleapis/google/cloud/video/livestream/v1/BUILD.bazel b/third_party/googleapis/google/cloud/video/livestream/v1/BUILD.bazel index fb6dc4ee4..39bc89bf6 100644 --- a/third_party/googleapis/google/cloud/video/livestream/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/video/livestream/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "livestream_proto", @@ -29,6 +32,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -52,6 +56,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -116,6 +121,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -171,6 +177,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -215,6 +222,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -231,11 +239,13 @@ php_gapic_library( name = "livestream_php_gapic", srcs = [":livestream_proto_with_info"], grpc_service_config = "livestream_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "livestream_v1.yaml", transport = "grpc+rest", - deps = [":livestream_php_proto"], + deps = [ + ":livestream_php_proto", + ], ) # Open Source Packages @@ -250,6 +260,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -280,6 +291,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -333,6 +345,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -343,6 +356,7 @@ load( csharp_proto_library( name = "livestream_csharp_proto", + extra_opts = [], deps = [":livestream_proto"], ) @@ -379,6 +393,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/video/livestream/v1/livestream_v1.yaml b/third_party/googleapis/google/cloud/video/livestream/v1/livestream_v1.yaml index b5c1b65a7..94c88fb4a 100644 --- a/third_party/googleapis/google/cloud/video/livestream/v1/livestream_v1.yaml +++ b/third_party/googleapis/google/cloud/video/livestream/v1/livestream_v1.yaml @@ -20,17 +20,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.location.Locations.GetLocation - deadline: 60.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 60.0 - - selector: 'google.cloud.video.livestream.v1.LivestreamService.*' - deadline: 60.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/third_party/googleapis/google/cloud/video/livestream/v1/outputs.proto b/third_party/googleapis/google/cloud/video/livestream/v1/outputs.proto index 21a9e9bdc..0ba04fc89 100644 --- a/third_party/googleapis/google/cloud/video/livestream/v1/outputs.proto +++ b/third_party/googleapis/google/cloud/video/livestream/v1/outputs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,7 +32,9 @@ option ruby_package = "Google::Cloud::Video::LiveStream::V1"; // Elementary streams must be packaged before mapping and sharing between // different output formats. message ElementaryStream { - // A unique key for this elementary stream. + // A unique key for this elementary 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. string key = 4; // Required. Encoding of an audio, video, or text track. @@ -50,7 +52,9 @@ message ElementaryStream { // Multiplexing settings for output stream. message MuxStream { - // A unique key for this multiplexed stream. + // A unique key for this multiplexed 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. string key = 1; // The container format. The default is `fmp4`. @@ -122,6 +126,12 @@ message Manifest { // errors while accessing segments which are listed in the manifest that the // player has, but were already deleted from the output Google Cloud Storage // bucket. Default value is `60s`. + // + // If both segment_keep_duration and + // [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration] + // are set, + // [RetentionConfig.retention_window_duration][google.cloud.video.livestream.v1.RetentionConfig.retention_window_duration] + // is used and segment_keep_duration is ignored. google.protobuf.Duration segment_keep_duration = 5; // Whether to use the timecode, as specified in timecode config, when setting: @@ -132,6 +142,9 @@ message Manifest { // If false, ignore the input timecode and use the time from system clock // when the manifest is first generated. This is the default behavior. bool use_timecode_as_timeline = 6; + + // Optional. A unique key for this manifest. + string key = 7 [(google.api.field_behavior) = OPTIONAL]; } // Sprite sheet configuration. diff --git a/third_party/googleapis/google/cloud/video/livestream/v1/resources.proto b/third_party/googleapis/google/cloud/video/livestream/v1/resources.proto index 019e34530..4fb3ceeea 100644 --- a/third_party/googleapis/google/cloud/video/livestream/v1/resources.proto +++ b/third_party/googleapis/google/cloud/video/livestream/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -238,6 +238,64 @@ message Channel { // The configuration for input sources defined in // [input_attachments][google.cloud.video.livestream.v1.Channel.input_attachments]. InputConfig input_config = 25; + + // Optional. Configuration for retention of output files for this channel. + RetentionConfig retention_config = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of static overlay images. Those images display over the + // output content for the whole duration of the live stream. + repeated StaticOverlay static_overlays = 27 + [(google.api.field_behavior) = OPTIONAL]; +} + +// 2D normalized coordinates. +message NormalizedCoordinate { + // Optional. Normalized x coordinate. Valid range is [0.0, 1.0]. Default is 0. + double x = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Normalized y coordinate. Valid range is [0.0, 1.0]. Default is 0. + double y = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Normalized resolution. +message NormalizedResolution { + // Optional. Normalized width. Valid range is [0.0, 1.0]. Default is 0. + double w = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Normalized height. Valid range is [0.0, 1.0]. Default is 0. + double h = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for the static overlay. +message StaticOverlay { + // Required. Asset to use for the overlaid image. + // The asset must be represented in the form of: + // `projects/{project}/locations/{location}/assets/{assetId}`. + // The asset's resource type must be image. + string asset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "livestream.googleapis.com/Asset" + } + ]; + + // Optional. Normalized image resolution, based on output video resolution. + // Valid values are [0.0, 1.0]. To respect the original image aspect ratio, + // set either `w` or `h` to 0. To use the original image resolution, set both + // `w` and `h` to 0. The default is {0, 0}. + NormalizedResolution resolution = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Position of the image in terms of normalized coordinates of the + // upper-left corner of the image, based on output video resolution. For + // example, use the x and y coordinates {0, 0} to position the top-left corner + // of the overlay animation in the top-left corner of the output video. + NormalizedCoordinate position = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Target image opacity. Valid values are from `1.0` (solid, + // default) to `0.0` (transparent), exclusive. Set this to a value greater + // than `0.0`. + double opacity = 4 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for the input sources of a channel. @@ -303,6 +361,28 @@ message LogConfig { LogSeverity log_severity = 1; } +// Configuration for retention of output files. +message RetentionConfig { + // The minimum duration for which the output files from the channel will + // remain in the output bucket. After this duration, output files are + // deleted asynchronously. + // + // When the channel is deleted, all output files are deleted from the output + // bucket asynchronously. + // + // If omitted or set to zero, output files will remain in the output bucket + // based on + // [Manifest.segment_keep_duration][google.cloud.video.livestream.v1.Manifest.segment_keep_duration], + // which defaults to 60s. + // + // If both retention_window_duration and + // [Manifest.segment_keep_duration][google.cloud.video.livestream.v1.Manifest.segment_keep_duration] + // are set, retention_window_duration is used and + // [Manifest.segment_keep_duration][google.cloud.video.livestream.v1.Manifest.segment_keep_duration] + // is ignored. + google.protobuf.Duration retention_window_duration = 1; +} + // Properties of the input stream. message InputStreamProperty { // The time that the current input stream is accepted and the connection is @@ -372,7 +452,9 @@ message InputAttachment { repeated string input_keys = 1; } - // A unique key for this input attachment. + // A unique key for this input attachment. 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. string key = 1; // The resource name of an existing input, in the form of: @@ -414,7 +496,7 @@ message Event { google.protobuf.Duration duration = 1; // Slate asset to use for the duration. If its duration is less than the - // duration of the SlateTask, then it will be looped. The slate must be + // duration of the SlateTask, then the slate loops. The slate must be // represented in the form of: // `projects/{project}/locations/{location}/assets/{assetId}`. string asset = 2 [(google.api.resource_reference) = { @@ -433,8 +515,7 @@ message Event { google.protobuf.Duration duration = 1; } - // Unmutes the stream. The task will fail if the stream is not - // currently muted. + // Unmutes the stream. The task fails if the stream is not currently muted. message UnmuteTask {} // State of the event @@ -521,6 +602,121 @@ message Event { google.rpc.Status error = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Clip is a sub-resource under channel. Each clip represents a clipping +// operation that generates a VOD playlist from its channel given a set of +// timestamp ranges. +message Clip { + option (google.api.resource) = { + type: "livestream.googleapis.com/Clip" + pattern: "projects/{project}/locations/{location}/channels/{channel}/clips/{clip}" + }; + + // State of clipping operation. + enum State { + // State is not specified. + STATE_UNSPECIFIED = 0; + + // The operation is pending to be picked up by the server. + PENDING = 1; + + // The server admitted this create clip request, and + // outputs are under processing. + CREATING = 2; + + // Outputs are available in the specified Cloud Storage bucket. For + // additional information, see the `outputs` field. + SUCCEEDED = 3; + + // The operation has failed. For additional information, see the `error` + // field. + FAILED = 4; + } + + // TimeSlice represents a tuple of Unix epoch timestamps that specifies a time + // range. + message TimeSlice { + // The mark-in Unix epoch time in the original live stream manifest. + google.protobuf.Timestamp markin_time = 1; + + // The mark-out Unix epoch time in the original live stream manifest. + google.protobuf.Timestamp markout_time = 2; + } + + // Slice represents a slice of the requested clip. + message Slice { + // The allowlist forms of a slice. + oneof kind { + // A slice in form of a tuple of Unix epoch time. + TimeSlice time_slice = 1; + } + } + + // ClipManifest identifies a source manifest for the generated clip manifest. + message ClipManifest { + // Required. A unique key that identifies a manifest config in the parent + // channel. This key is the same as `channel.manifests.key` for the selected + // manifest. + string manifest_key = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The output URI of the generated clip manifest. This field + // will be populated when the CreateClip request is accepted. Current output + // format is provided below but may change in the future. Please read this + // field to get the uri to the generated clip manifest. Format: + // {clip.output_uri}/{channel.manifest.fileName} Example: + // gs://my-bucket/clip-outputs/main.m3u8 + string output_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The resource name of the clip, in the following format: + // `projects/{project}/locations/{location}/channels/{c}/clips/{clipId}`. + // `{clipId}` is a user-specified resource id that conforms to the following + // criteria: + // + // 1. 1 character minimum, 63 characters maximum + // 2. Only contains letters, digits, underscores, and hyphens + string name = 1; + + // Output only. The creation timestamp of the clip resource. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the clip request starts to be processed. + google.protobuf.Timestamp start_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The update timestamp of the clip resource. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels associated with this resource. Each label is a key-value pair. + map labels = 5; + + // Output only. The state of the clip. + State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Specify the `output_uri` to determine where to place the clip segments and + // clip manifest files in Cloud Storage. The manifests specified in + // `clip_manifests` fields will be placed under this URI. The exact URI of the + // generated manifests will be provided in `clip_manifests.output_uri` for + // each manifest. + // Example: + // "output_uri": "gs://my-bucket/clip-outputs" + // "clip_manifests.output_uri": "gs://my-bucket/clip-outputs/main.m3u8" + string output_uri = 7; + + // Output only. An error object that describes the reason for the failure. + // This property only presents when `state` is `FAILED`. + google.rpc.Status error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The specified ranges of segments to generate a clip. + repeated Slice slices = 10; + + // Required. A list of clip manifests. Currently only one clip manifest is + // allowed. + repeated ClipManifest clip_manifests = 12 + [(google.api.field_behavior) = REQUIRED]; +} + // An asset represents a video or an image. message Asset { option (google.api.resource) = { @@ -536,7 +732,7 @@ message Asset { string uri = 1; } - // Image represents an image. The supported format is JPEG. + // Image represents an image. The supported formats are JPEG, PNG. message ImageAsset { // Cloud Storage URI of the image. The format is `gs://my-bucket/my-object`. string uri = 1; @@ -590,10 +786,12 @@ message Asset { // resource](https://cloud.google.com/storage/docs/json_api/v1/objects). // If crc32c is omitted or left empty when the asset is created, this field is // filled by the crc32c checksum of the Cloud Storage object indicated by - // [VideoAsset.uri] or [ImageAsset.uri]. - // If crc32c is set, the asset can't be created if the crc32c value does not + // [VideoAsset.uri][google.cloud.video.livestream.v1.Asset.VideoAsset.uri] or + // [ImageAsset.uri][google.cloud.video.livestream.v1.Asset.ImageAsset.uri]. If + // crc32c is set, the asset can't be created if the crc32c value does not // match with the crc32c checksum of the Cloud Storage object indicated by - // [VideoAsset.uri] or [ImageAsset.uri]. + // [VideoAsset.uri][google.cloud.video.livestream.v1.Asset.VideoAsset.uri] or + // [ImageAsset.uri][google.cloud.video.livestream.v1.Asset.ImageAsset.uri]. string crc32c = 7; // Output only. The state of the asset resource. @@ -660,7 +858,10 @@ message Encryption { string scheme = 1 [(google.api.field_behavior) = REQUIRED]; } - // Required. Identifier for this set of encryption options. + // Required. Identifier for this set of encryption options. The ID must be + // 1-63 characters in length. The ID must begin and end with a letter + // (regardless of case) or a number, but can contain dashes or underscores in + // between. string id = 1 [(google.api.field_behavior) = REQUIRED]; // Defines where content keys are stored. diff --git a/third_party/googleapis/google/cloud/video/livestream/v1/service.proto b/third_party/googleapis/google/cloud/video/livestream/v1/service.proto index 49c590c38..f888549d8 100644 --- a/third_party/googleapis/google/cloud/video/livestream/v1/service.proto +++ b/third_party/googleapis/google/cloud/video/livestream/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package google.cloud.video.livestream.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/cloud/video/livestream/v1/resources.proto"; import "google/longrunning/operations.proto"; @@ -225,6 +226,48 @@ service LivestreamService { option (google.api.method_signature) = "name"; } + // Returns a list of all clips in the specified channel. + rpc ListClips(ListClipsRequest) returns (ListClipsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/channels/*}/clips" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified clip. + rpc GetClip(GetClipRequest) returns (Clip) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/channels/*/clips/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a clip with the provided clip ID in the specified channel. + rpc CreateClip(CreateClipRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/channels/*}/clips" + body: "clip" + }; + option (google.api.method_signature) = "parent,clip,clip_id"; + option (google.longrunning.operation_info) = { + response_type: "Clip" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the specified clip job resource. This method only deletes the clip + // job and does not delete the VOD clip stored in the GCS. + rpc DeleteClip(DeleteClipRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/channels/*/clips/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + // Creates a Asset with the provided unique ID in the specified // region. rpc CreateAsset(CreateAssetRequest) returns (google.longrunning.Operation) { @@ -889,6 +932,116 @@ message DeleteEventRequest { // Response message for Start/Stop Channel long-running operations. message ChannelOperationResponse {} +// Request message for "LivestreamService.ListClips". +message ListClipsRequest { + // Required. Parent value for ListClipsRequest + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "livestream.googleapis.com/Clip" + } + ]; + + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + int32 page_size = 2; + + // A token identifying a page of results the server should return. + string page_token = 3; + + // Filtering results + string filter = 4; + + // Hint for how to order the results + string order_by = 5; +} + +// Response message for "LivestreamService.ListClips". +message ListClipsResponse { + // The list of Clip + repeated Clip clips = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for "LivestreamService.GetClip". +message GetClipRequest { + // Required. Name of the resource, in the following form: + // `projects/{project}/locations/{location}/channels/{channel}/clips/{clip}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "livestream.googleapis.com/Clip" } + ]; +} + +// Request message for "LivestreamService.CreateClip". +message CreateClipRequest { + // Required. The parent resource name, in the following form: + // `projects/{project}/locations/{location}/channels/{channel}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "livestream.googleapis.com/Clip" + } + ]; + + // Required. Id of the requesting object in the following form: + // + // 1. 1 character minimum, 63 characters maximum + // 2. Only contains letters, digits, underscores, and hyphens + string clip_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + Clip clip = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for "LivestreamService.DeleteClip". +message DeleteClipRequest { + // Required. The name of the clip resource, in the form of: + // `projects/{project}/locations/{location}/channels/{channelId}/clips/{clipId}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "livestream.googleapis.com/Clip" } + ]; + + // 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)`. + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // Output only. The time the operation was created. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel b/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel index 860ebcbca..6b56dc5ec 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "stitcher_proto", @@ -25,11 +28,13 @@ proto_library( "cdn_keys.proto", "companions.proto", "events.proto", + "fetch_options.proto", "live_configs.proto", "sessions.proto", "slates.proto", "stitch_details.proto", "video_stitcher_service.proto", + "vod_configs.proto", ], deps = [ "//google/api:annotations_proto", @@ -56,6 +61,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -117,6 +123,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -170,6 +177,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -209,6 +217,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -225,11 +234,13 @@ php_gapic_library( name = "stitcher_php_gapic", srcs = [":stitcher_proto_with_info"], grpc_service_config = "videostitcher_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "videostitcher_v1.yaml", transport = "grpc+rest", - deps = [":stitcher_php_proto"], + deps = [ + ":stitcher_php_proto", + ], ) # Open Source Packages @@ -244,6 +255,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -274,6 +286,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -327,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -337,6 +351,7 @@ load( csharp_proto_library( name = "stitcher_csharp_proto", + extra_opts = [], deps = [":stitcher_proto"], ) @@ -373,6 +388,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto index ef5b4697d..f710dd0d0 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,7 +25,9 @@ option java_multiple_files = true; option java_outer_classname = "AdTagDetailsProto"; option java_package = "com.google.cloud.video.stitcher.v1"; -// Container for a live session's ad tag detail. +// Information related to the details for one ad tag. This resource is only +// available for live sessions that do not implement Google Ad Manager ad +// insertion. message LiveAdTagDetail { option (google.api.resource) = { type: "videostitcher.googleapis.com/LiveAdTagDetail" diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto index 1513c3da0..4533ec9a9 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -71,9 +71,26 @@ message AkamaiCdnKey { // Configuration for a Media CDN key. message MediaCdnKey { + // Configuration for a Media CDN token. + message TokenConfig { + // Optional. The query parameter in which to find the token. + // + // The name must be 1-64 characters long and match + // the regular expression `[a-zA-Z]([a-zA-Z0-9_-])*` which means the + // first character must be a letter, and all following characters + // must be a dash, underscore, letter or digit. + // + // Defaults to `edge-cache-token`. + string query_parameter = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Input only. 64-byte ed25519 private key for this Media CDN key. bytes private_key = 1 [(google.api.field_behavior) = INPUT_ONLY]; // The keyset name of the Media CDN key. string key_name = 2; + + // Optional. If set, the URL will be signed using the Media CDN token. + // Otherwise, the URL would be signed using the standard Media CDN signature. + TokenConfig token_config = 3 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto index a089ed150..d18e7652e 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto index 6a538ebc6..ca28b1bff 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/fetch_options.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/fetch_options.proto new file mode 100644 index 000000000..febf89d38 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/fetch_options.proto @@ -0,0 +1,31 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +option go_package = "cloud.google.com/go/video/stitcher/apiv1/stitcherpb;stitcherpb"; +option java_multiple_files = true; +option java_outer_classname = "FetchOptionsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Options on how fetches should be made. +message FetchOptions { + // Custom headers to pass into fetch request. + // Headers must have a maximum of 3 key value pairs. + // Each key value pair must have a maximum of 256 characters per key and 256 + // characters per value. + map headers = 1; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/live_configs.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/live_configs.proto index 1b0192ab3..f63886a64 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/live_configs.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/live_configs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.cloud.video.stitcher.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/video/stitcher/v1/fetch_options.proto"; import "google/protobuf/duration.proto"; option go_package = "cloud.google.com/go/video/stitcher/apiv1/stitcherpb;stitcherpb"; @@ -92,9 +93,7 @@ message LiveConfig { // Output only. State of the live config. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Determines how the ads are tracked. If - // [gam_live_config][google.cloud.video.stitcher.v1.LiveConfig.gam_live_config] - // is set, the value must be `CLIENT` because the IMA SDK handles ad tracking. + // Required. Determines how the ads are tracked. AdTracking ad_tracking = 6 [(google.api.field_behavior) = REQUIRED]; // This must refer to a slate in the same @@ -111,6 +110,9 @@ message LiveConfig { // The configuration for prefetching ads. PrefetchConfig prefetch_config = 10; + + // Options for fetching source manifests and segments. + FetchOptions source_fetch_options = 16; } // The configuration for prefetch ads. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto index 72eeb899a..3bff646c2 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -55,24 +55,29 @@ message VodSession { // Output only. The playback URI of the stitched content. string play_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. URI of the media to stitch. - string source_uri = 5 [(google.api.field_behavior) = REQUIRED]; + // URI of the media to stitch. For most use cases, you should create a + // [VodConfig][google.cloud.video.stitcher.v1.VodConfig] with this information + // rather than setting this field directly. + string source_uri = 5; - // Required. Ad tag URI. - string ad_tag_uri = 6 [(google.api.field_behavior) = REQUIRED]; + // Ad tag URI. For most use cases, you should create a + // [VodConfig][google.cloud.video.stitcher.v1.VodConfig] with this information + // rather than setting this field directly. + string ad_tag_uri = 6; - // Key value pairs for ad tag macro replacement. If the - // specified ad tag URI has macros, this field provides the mapping - // to the value that will replace the macro in the ad tag URI. - // Macros are designated by square brackets. - // For example: + // Key value pairs for ad tag macro replacement, only available for VOD + // sessions that do not implement Google Ad manager ad insertion. If the + // specified ad tag URI has macros, this field provides the mapping to the + // value that will replace the macro in the ad tag URI. + // + // Macros are designated by square brackets, for example: // // Ad tag URI: `"https://doubleclick.google.com/ad/1?geo_id=[geoId]"` // // Ad tag macro map: `{"geoId": "123"}` // // Fully qualified ad tag: - // `"`https://doubleclick.google.com/ad/1?geo_id=123"` + // `"https://doubleclick.google.com/ad/1?geo_id=123"` map ad_tag_macro_map = 7; // Additional options that affect the output of the manifest. @@ -87,6 +92,12 @@ message VodSession { // This field should be set with appropriate values if GAM is being used for // ads. GamSettings gam_settings = 13; + + // The resource name of the VOD config for this session, in the form of + // `projects/{project}/locations/{location}/vodConfigs/{id}`. + string vod_config = 14 [(google.api.resource_reference) = { + type: "videostitcher.googleapis.com/VodConfig" + }]; } // Describes what was stitched into a VOD session's manifest. @@ -144,11 +155,17 @@ message LiveSession { pattern: "projects/{project}/locations/{location}/liveSessions/{live_session}" }; - // Defines fields related to Google Ad Manager (GAM). This should be set if - // GAM is being used for ads. + // Defines fields related to Google Ad Manager (GAM). message GamSettings { - // Required. The stream ID generated by Ad Manager. + // Required. The stream ID generated by Ad Manager. This must be set if GAM + // is being used for ads and the session uses client-side ad tracking. string stream_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // [Targeting + // parameters](https://support.google.com/admanager/answer/7320899) to send + // to Ad Manager to generate a stream ID. This should only be set if the + // session uses server-side ad tracking. + map targeting_parameters = 4; } // Output only. The name of the live session, in the form of @@ -158,12 +175,12 @@ message LiveSession { // Output only. The URI to play the live session's ad-stitched stream. string play_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Key value pairs for ad tag macro replacement. If the - // specified ad tag URI has macros, this field provides the mapping - // to the value that will replace the macro in the ad tag URI. - // Macros are designated by square brackets. + // Key value pairs for ad tag macro replacement, only available for live + // sessions that do not implement Google Ad manager ad insertion. If the + // specified ad tag URI has macros, this field provides the mapping to the + // value that will replace the macro in the ad tag URI. // - // For example: + // Macros are designated by square brackets, for example: // // Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]" // @@ -188,6 +205,10 @@ message LiveSession { type: "videostitcher.googleapis.com/LiveConfig" } ]; + + // Determines how the ad should be tracked. This overrides the value set in + // the live config for this session. + AdTracking ad_tracking = 17; } // Options for manifest generation. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto index 902a444ef..f4566cff8 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto index b7f85944d..71edf60f9 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,9 +26,9 @@ option java_multiple_files = true; option java_outer_classname = "StitchDetailsProto"; option java_package = "com.google.cloud.video.stitcher.v1"; -// Detailed information related to the interstitial of a VOD session. This -// resource is only available for VOD sessions that do not implement Google Ad -// Manager ad insertion. +// Information related to the interstitial of a VOD session. This resource is +// only available for VOD sessions that do not implement Google Ad Manager ad +// insertion. message VodStitchDetail { option (google.api.resource) = { type: "videostitcher.googleapis.com/VodStitchDetail" diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto index f84aa09b2..d5b1841f7 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import "google/cloud/video/stitcher/v1/live_configs.proto"; import "google/cloud/video/stitcher/v1/sessions.proto"; import "google/cloud/video/stitcher/v1/slates.proto"; import "google/cloud/video/stitcher/v1/stitch_details.proto"; +import "google/cloud/video/stitcher/v1/vod_configs.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -289,6 +290,82 @@ service VideoStitcherService { metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" }; } + + // Updates the specified LiveConfig. Only update fields specified + // in the call method body. + rpc UpdateLiveConfig(UpdateLiveConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{live_config.name=projects/*/locations/*/liveConfigs/*}" + body: "live_config" + }; + option (google.api.method_signature) = "live_config,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.video.stitcher.v1.LiveConfig" + metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" + }; + } + + // Registers the VOD config with the provided unique ID in + // the specified region. + rpc CreateVodConfig(CreateVodConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/vodConfigs" + body: "vod_config" + }; + option (google.api.method_signature) = "parent,vod_config,vod_config_id"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.video.stitcher.v1.VodConfig" + metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" + }; + } + + // Lists all VOD configs managed by the Video Stitcher API that + // belong to the specified project and region. + rpc ListVodConfigs(ListVodConfigsRequest) returns (ListVodConfigsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/vodConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the specified VOD config managed by the Video + // Stitcher API service. + rpc GetVodConfig(GetVodConfigRequest) returns (VodConfig) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/vodConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes the specified VOD config. + rpc DeleteVodConfig(DeleteVodConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/vodConfigs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" + }; + } + + // Updates the specified VOD config. Only update fields specified + // in the call method body. + rpc UpdateVodConfig(UpdateVodConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{vod_config.name=projects/*/locations/*/vodConfigs/*}" + body: "vod_config" + }; + option (google.api.method_signature) = "vod_config,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.video.stitcher.v1.VodConfig" + metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" + }; + } } // Request message for VideoStitcherService.createCdnKey. @@ -764,6 +841,129 @@ message DeleteLiveConfigRequest { ]; } +// Request message for VideoStitcherService.updateLiveConfig. +message UpdateLiveConfigRequest { + // Required. The LiveConfig resource which replaces the resource on the + // server. + LiveConfig live_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.createVodConfig +message CreateVodConfigRequest { + // Required. The project in which the VOD config should be created, in + // the form of `projects/{project_number}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/VodConfig" + } + ]; + + // Required. The unique identifier ID to use for the VOD config. + string vod_config_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The VOD config resource to create. + VodConfig vod_config = 3 [(google.api.field_behavior) = REQUIRED]; + + // 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)`. + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for VideoStitcherService.listVodConfig. +message ListVodConfigsRequest { + // Required. The project that contains the list of VOD configs, in the + // form of `projects/{project_number}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "videostitcher.googleapis.com/VodConfig" + } + ]; + + // Optional. The maximum number of items to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The next_page_token value returned from a previous List request, + // if any. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The filter to apply to list results (see + // [Filtering](https://google.aip.dev/160)). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the ordering of results following + // [Cloud API + // syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order). + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for VideoStitcher.ListVodConfig. +message ListVodConfigsResponse { + // List of VOD configs. + repeated VodConfig vod_configs = 1; + + // The pagination token. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for VideoStitcherService.getVodConfig. +message GetVodConfigRequest { + // Required. The name of the VOD config to be retrieved, in the form + // of `projects/{project_number}/locations/{location}/vodConfigs/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/VodConfig" + } + ]; +} + +// Request message for VideoStitcherService.deleteVodConfig. +message DeleteVodConfigRequest { + // Required. The name of the VOD config to be deleted, in the form of + // `projects/{project_number}/locations/{location}/vodConfigs/{id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "videostitcher.googleapis.com/VodConfig" + } + ]; +} + +// Request message for VideoStitcherService.updateVodConfig. +message UpdateVodConfigRequest { + // Required. The VOD config resource which replaces the resource on the + // server. + VodConfig vod_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see + // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // The time the operation was created. diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml b/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml index 2e3ca6ccc..27b77f3fa 100644 --- a/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml @@ -10,13 +10,6 @@ apis: types: - name: google.cloud.video.stitcher.v1.OperationMetadata -backend: - rules: - - selector: 'google.cloud.video.stitcher.v1.VideoStitcherService.*' - deadline: 30.0 - - selector: 'google.longrunning.Operations.*' - deadline: 30.0 - http: rules: - selector: google.longrunning.Operations.CancelOperation diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/vod_configs.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/vod_configs.proto new file mode 100644 index 000000000..17a47d47f --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/vod_configs.proto @@ -0,0 +1,74 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/video/stitcher/v1/fetch_options.proto"; + +option go_package = "cloud.google.com/go/video/stitcher/apiv1/stitcherpb;stitcherpb"; +option java_multiple_files = true; +option java_outer_classname = "VodConfigsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Metadata used to register VOD configs. +message VodConfig { + option (google.api.resource) = { + type: "videostitcher.googleapis.com/VodConfig" + pattern: "projects/{project}/locations/{location}/vodConfigs/{vod_config}" + }; + + // State of the VOD config. + enum State { + // State is not specified. + STATE_UNSPECIFIED = 0; + + // VOD config is being created. + CREATING = 1; + + // VOD config is ready for use. + READY = 2; + + // VOD config is queued up for deletion. + DELETING = 3; + } + + // Output only. The resource name of the VOD config, in the form of + // `projects/{project}/locations/{location}/vodConfigs/{id}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Source URI for the VOD stream manifest. + string source_uri = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The default ad tag associated with this VOD config. + string ad_tag_uri = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Google Ad Manager (GAM) metadata. + GamVodConfig gam_vod_config = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. State of the VOD config. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Options for fetching source manifests and segments. + FetchOptions source_fetch_options = 8; +} + +// Metadata used for GAM ad decisioning. +message GamVodConfig { + // Required. Ad Manager network code to associate with the VOD config. + string network_code = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/cloud/video/transcoder/v1/BUILD.bazel b/third_party/googleapis/google/cloud/video/transcoder/v1/BUILD.bazel index 1cef2dffb..6260ec45d 100644 --- a/third_party/googleapis/google/cloud/video/transcoder/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/video/transcoder/v1/BUILD.bazel @@ -209,7 +209,7 @@ php_gapic_library( name = "transcoder_php_gapic", srcs = [":transcoder_proto_with_info"], grpc_service_config = "transcoder_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "transcoder_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/video/transcoder/v1/resources.proto b/third_party/googleapis/google/cloud/video/transcoder/v1/resources.proto index 23e091475..80bb8daa1 100644 --- a/third_party/googleapis/google/cloud/video/transcoder/v1/resources.proto +++ b/third_party/googleapis/google/cloud/video/transcoder/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/video/transcoder/v1/services.proto b/third_party/googleapis/google/cloud/video/transcoder/v1/services.proto index 48cfe013f..d46f8e3b6 100644 --- a/third_party/googleapis/google/cloud/video/transcoder/v1/services.proto +++ b/third_party/googleapis/google/cloud/video/transcoder/v1/services.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/videointelligence/v1/BUILD.bazel b/third_party/googleapis/google/cloud/videointelligence/v1/BUILD.bazel index b5eaebb16..17c798e28 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/videointelligence/v1/BUILD.bazel @@ -201,8 +201,8 @@ php_proto_library( php_gapic_library( name = "videointelligence_php_gapic", srcs = [":videointelligence_proto_with_info"], - # Do not change this to the videointelligence_gapic.yaml, see tracking bug. - gapic_yaml = "videointelligence_gapic.legacy.yaml", + gapic_yaml = "videointelligence_gapic.yaml", + grpc_service_config = "videointelligence_grpc_service_config.json", migration_mode = "MIGRATING", rest_numeric_enums = True, service_yaml = "videointelligence_v1.yaml", diff --git a/third_party/googleapis/google/cloud/videointelligence/v1/video_intelligence.proto b/third_party/googleapis/google/cloud/videointelligence/v1/video_intelligence.proto index 013f022ef..6069ad6b2 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1/video_intelligence.proto +++ b/third_party/googleapis/google/cloud/videointelligence/v1/video_intelligence.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/videointelligence/v1/videointelligence_gapic.legacy.yaml b/third_party/googleapis/google/cloud/videointelligence/v1/videointelligence_gapic.legacy.yaml deleted file mode 100644 index 20843a355..000000000 --- a/third_party/googleapis/google/cloud/videointelligence/v1/videointelligence_gapic.legacy.yaml +++ /dev/null @@ -1,63 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 1.0.0 -language_settings: - java: - package_name: com.google.cloud.videointelligence.v1 - python: - package_name: google.cloud.videointelligence_v1.gapic - go: - package_name: cloud.google.com/go/videointelligence/apiv1 - csharp: - package_name: Google.Cloud.VideoIntelligence.V1 - ruby: - package_name: Google::Cloud::VideoIntelligence::V1 - release_level: GA - php: - package_name: Google\Cloud\VideoIntelligence\V1 - nodejs: - package_name: video-intelligence.v1 - domain_layer_location: google-cloud -interfaces: -- name: google.cloud.videointelligence.v1.VideoIntelligenceService - smoke_test: - method: AnnotateVideo - init_fields: - - input_uri=gs://cloud-samples-data/video/cat.mp4 - - features[0]=LABEL_DETECTION - collections: [] - retry_codes_def: - - name: idempotent - retry_codes: - - UNAVAILABLE - - DEADLINE_EXCEEDED - - name: non_idempotent - retry_codes: [] - retry_params_def: - - name: default - initial_retry_delay_millis: 1000 - retry_delay_multiplier: 2.5 - max_retry_delay_millis: 120000 - initial_rpc_timeout_millis: 120000 - rpc_timeout_multiplier: 1 - max_rpc_timeout_millis: 120000 - total_timeout_millis: 600000 - methods: - - name: AnnotateVideo - flattening: - groups: - - parameters: - - input_uri - - features - long_running: - return_type: google.cloud.videointelligence.v1.AnnotateVideoResponse - metadata_type: google.cloud.videointelligence.v1.AnnotateVideoProgress - initial_poll_delay_millis: 20000 - poll_delay_multiplier: 1.5 - max_poll_delay_millis: 45000 - total_poll_timeout_millis: 86400000 - retry_codes_name: idempotent - retry_params_name: default - timeout_millis: 60000 - sample_code_init_fields: - - input_uri=gs://cloud-samples-data/video/cat.mp4 - - features[0]=LABEL_DETECTION diff --git a/third_party/googleapis/google/cloud/videointelligence/v1beta1/videointelligence_grpc_service_config.json b/third_party/googleapis/google/cloud/videointelligence/v1beta1/videointelligence_grpc_service_config.json deleted file mode 100755 index d41c56e6a..000000000 --- a/third_party/googleapis/google/cloud/videointelligence/v1beta1/videointelligence_grpc_service_config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.cloud.videointelligence.v1beta1.VideoIntelligenceService", - "method": "AnnotateVideo" - } - ], - "timeout": "600s", - "retryPolicy": { - "initialBackoff": "1s", - "maxBackoff": "120s", - "backoffMultiplier": 2.5, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - } - ] -} diff --git a/third_party/googleapis/google/cloud/videointelligence/v1beta2/BUILD.bazel b/third_party/googleapis/google/cloud/videointelligence/v1beta2/BUILD.bazel index b755a12ee..28d03b218 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1beta2/BUILD.bazel +++ b/third_party/googleapis/google/cloud/videointelligence/v1beta2/BUILD.bazel @@ -62,7 +62,7 @@ java_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", test_deps = [ ":videointelligence_java_grpc", ], @@ -125,7 +125,7 @@ go_gapic_library( metadata = True, release_level = "beta", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", transport = "grpc+rest", deps = [ ":videointelligence_go_proto", @@ -162,7 +162,7 @@ py_gapic_library( srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", transport = "grpc+rest", ) @@ -203,7 +203,7 @@ php_gapic_library( srcs = [":videointelligence_proto_with_info"], gapic_yaml = "videointelligence_gapic.yaml", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", transport = "grpc+rest", deps = [":videointelligence_php_proto"], ) @@ -235,7 +235,7 @@ nodejs_gapic_library( main_service = "videointelligence", package = "google.cloud.videointelligence.v1beta2", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", transport = "grpc+rest", deps = [], ) @@ -284,7 +284,7 @@ ruby_cloud_gapic_library( rest_numeric_enums = True, ruby_cloud_description = "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", ruby_cloud_title = "Cloud Video Intelligence V1beta2", - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", transport = "grpc+rest", deps = [ ":videointelligence_ruby_grpc", @@ -330,7 +330,7 @@ csharp_gapic_library( common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1beta2.yaml", + service_yaml = "videointelligence_v1beta2.yaml", transport = "grpc+rest", deps = [ ":videointelligence_csharp_grpc", diff --git a/third_party/googleapis/google/cloud/videointelligence/v1beta2/video_intelligence.proto b/third_party/googleapis/google/cloud/videointelligence/v1beta2/video_intelligence.proto index c2d4ec86e..811d93c84 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1beta2/video_intelligence.proto +++ b/third_party/googleapis/google/cloud/videointelligence/v1beta2/video_intelligence.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/videointelligence/v1beta2/videointelligence_gapic.legacy.yaml b/third_party/googleapis/google/cloud/videointelligence/v1beta2/videointelligence_gapic.legacy.yaml deleted file mode 100644 index 8f4de6e6d..000000000 --- a/third_party/googleapis/google/cloud/videointelligence/v1beta2/videointelligence_gapic.legacy.yaml +++ /dev/null @@ -1,58 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 1.0.0 -language_settings: - java: - package_name: com.google.cloud.videointelligence.v1beta2 - python: - package_name: google.cloud.videointelligence_v1beta2.gapic - go: - package_name: cloud.google.com/go/videointelligence/apiv1beta2 - csharp: - package_name: Google.Cloud.VideoIntelligence.V1Beta2 - ruby: - package_name: Google::Cloud::VideoIntelligence::V1beta2 - release_level: GA - php: - package_name: Google\Cloud\VideoIntelligence\V1beta2 - nodejs: - package_name: video-intelligence.v1beta2 - domain_layer_location: google-cloud -interfaces: -- name: google.cloud.videointelligence.v1beta2.VideoIntelligenceService - collections: [] - retry_codes_def: - - name: idempotent - retry_codes: - - UNAVAILABLE - - DEADLINE_EXCEEDED - - name: non_idempotent - retry_codes: [] - retry_params_def: - - name: default - initial_retry_delay_millis: 1000 - retry_delay_multiplier: 2.5 - max_retry_delay_millis: 120000 - initial_rpc_timeout_millis: 120000 - rpc_timeout_multiplier: 1 - max_rpc_timeout_millis: 120000 - total_timeout_millis: 600000 - methods: - - name: AnnotateVideo - flattening: - groups: - - parameters: - - input_uri - - features - long_running: - return_type: google.cloud.videointelligence.v1beta2.AnnotateVideoResponse - metadata_type: google.cloud.videointelligence.v1beta2.AnnotateVideoProgress - initial_poll_delay_millis: 20000 - poll_delay_multiplier: 1.5 - max_poll_delay_millis: 45000 - total_poll_timeout_millis: 86400000 - retry_codes_name: idempotent - retry_params_name: default - timeout_millis: 60000 - sample_code_init_fields: - - input_uri=gs://cloud-samples-data/video/cat.mp4 - - features[0]=LABEL_DETECTION diff --git a/third_party/googleapis/google/cloud/videointelligence/videointelligence_v1beta2.yaml b/third_party/googleapis/google/cloud/videointelligence/v1beta2/videointelligence_v1beta2.yaml similarity index 100% rename from third_party/googleapis/google/cloud/videointelligence/videointelligence_v1beta2.yaml rename to third_party/googleapis/google/cloud/videointelligence/v1beta2/videointelligence_v1beta2.yaml diff --git a/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/BUILD.bazel b/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/BUILD.bazel index bfede5607..350bc9135 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/BUILD.bazel @@ -62,7 +62,7 @@ java_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", test_deps = [ ":videointelligence_java_grpc", ], @@ -125,7 +125,7 @@ go_gapic_library( metadata = True, release_level = "beta", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_go_proto", @@ -162,7 +162,7 @@ py_gapic_library( srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", transport = "grpc+rest", ) @@ -204,7 +204,7 @@ php_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", transport = "grpc+rest", deps = [":videointelligence_php_proto"], ) @@ -236,7 +236,7 @@ nodejs_gapic_library( main_service = "videointelligence", package = "google.cloud.videointelligence.v1p1beta1", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", transport = "grpc+rest", deps = [], ) @@ -285,7 +285,7 @@ ruby_cloud_gapic_library( rest_numeric_enums = True, ruby_cloud_description = "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", ruby_cloud_title = "Cloud Video Intelligence V1p1beta1", - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_ruby_grpc", @@ -331,7 +331,7 @@ csharp_gapic_library( common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p1beta1.yaml", + service_yaml = "videointelligence_v1p1beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_csharp_grpc", diff --git a/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/video_intelligence.proto b/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/video_intelligence.proto index 23e6524bd..4f2f39bf0 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/video_intelligence.proto +++ b/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/video_intelligence.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p1beta1.yaml b/third_party/googleapis/google/cloud/videointelligence/v1p1beta1/videointelligence_v1p1beta1.yaml similarity index 100% rename from third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p1beta1.yaml rename to third_party/googleapis/google/cloud/videointelligence/v1p1beta1/videointelligence_v1p1beta1.yaml diff --git a/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/BUILD.bazel b/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/BUILD.bazel index 952a1bac0..777e6432d 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/BUILD.bazel @@ -62,7 +62,7 @@ java_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", test_deps = [ ":videointelligence_java_grpc", ], @@ -125,7 +125,7 @@ go_gapic_library( metadata = True, release_level = "beta", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_go_proto", @@ -162,7 +162,7 @@ py_gapic_library( srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", transport = "grpc+rest", ) @@ -204,7 +204,7 @@ php_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", transport = "grpc+rest", deps = [":videointelligence_php_proto"], ) @@ -236,7 +236,7 @@ nodejs_gapic_library( main_service = "videointelligence", package = "google.cloud.videointelligence.v1p2beta1", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", transport = "grpc+rest", deps = [], ) @@ -285,7 +285,7 @@ ruby_cloud_gapic_library( rest_numeric_enums = True, ruby_cloud_description = "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", ruby_cloud_title = "Cloud Video Intelligence V1p2beta1", - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_ruby_grpc", @@ -331,7 +331,7 @@ csharp_gapic_library( common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p2beta1.yaml", + service_yaml = "videointelligence_v1p2beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_csharp_grpc", diff --git a/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto b/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto index 6f22c92c6..a6749d8d8 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto +++ b/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/video_intelligence.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p2beta1.yaml b/third_party/googleapis/google/cloud/videointelligence/v1p2beta1/videointelligence_v1p2beta1.yaml similarity index 100% rename from third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p2beta1.yaml rename to third_party/googleapis/google/cloud/videointelligence/v1p2beta1/videointelligence_v1p2beta1.yaml diff --git a/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/BUILD.bazel b/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/BUILD.bazel index 0af0a33db..d8fdb20a4 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/BUILD.bazel @@ -62,7 +62,7 @@ java_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", test_deps = [ ":videointelligence_java_grpc", ], @@ -126,7 +126,7 @@ go_gapic_library( metadata = True, release_level = "beta", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_go_proto", @@ -163,7 +163,7 @@ py_gapic_library( srcs = [":videointelligence_proto"], grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", transport = "grpc", ) @@ -205,7 +205,7 @@ php_gapic_library( gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", transport = "grpc+rest", deps = [":videointelligence_php_proto"], ) @@ -237,7 +237,7 @@ nodejs_gapic_library( main_service = "videointelligence", package = "google.cloud.videointelligence.v1p3beta1", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", transport = "grpc+rest", deps = [], ) @@ -286,7 +286,7 @@ ruby_cloud_gapic_library( rest_numeric_enums = True, ruby_cloud_description = "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", ruby_cloud_title = "Cloud Video Intelligence V1p3beta1", - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_ruby_grpc", @@ -332,7 +332,7 @@ csharp_gapic_library( common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "videointelligence_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "//google/cloud/videointelligence:videointelligence_v1p3beta1.yaml", + service_yaml = "videointelligence_v1p3beta1.yaml", transport = "grpc+rest", deps = [ ":videointelligence_csharp_grpc", diff --git a/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/video_intelligence.proto b/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/video_intelligence.proto index 9326d84b0..adb3668ba 100644 --- a/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/video_intelligence.proto +++ b/third_party/googleapis/google/cloud/videointelligence/v1p3beta1/video_intelligence.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p3beta1.yaml b/third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p3beta1.yaml deleted file mode 100644 index 145d0fbd2..000000000 --- a/third_party/googleapis/google/cloud/videointelligence/videointelligence_v1p3beta1.yaml +++ /dev/null @@ -1,63 +0,0 @@ -type: google.api.Service -config_version: 3 -name: videointelligence.googleapis.com -title: Cloud Video Intelligence API - -apis: -- name: google.cloud.videointelligence.v1p3beta1.VideoIntelligenceService -- name: google.cloud.videointelligence.v1p3beta1.StreamingVideoIntelligenceService - -types: -- name: google.cloud.videointelligence.v1p3beta1.AnnotateVideoProgress -- name: google.cloud.videointelligence.v1p3beta1.AnnotateVideoResponse -- name: google.cloud.videointelligence.v1p3beta1.VideoSegment -- name: google.rpc.Status - -documentation: - summary: |- - Detects objects, explicit content, and scene changes in videos. It also - specifies the region for annotation and transcribes speech to text. - Supports both asynchronous API and streaming API. - -backend: - rules: - - selector: google.longrunning.Operations.ListOperations - deadline: 600.0 - - selector: google.longrunning.Operations.GetOperation - deadline: 600.0 - - selector: google.longrunning.Operations.DeleteOperation - deadline: 600.0 - - selector: google.longrunning.Operations.CancelOperation - deadline: 600.0 - - selector: google.cloud.videointelligence.v1p3beta1.VideoIntelligenceService.AnnotateVideo - deadline: 600.0 - - selector: google.cloud.videointelligence.v1p3beta1.StreamingVideoIntelligenceService.AnnotateVideo - deadline: 900.0 - -http: - rules: - - selector: google.longrunning.Operations.ListOperations - get: '/v1p3beta1/{name=projects/*/locations/*}/operations' - - - selector: google.longrunning.Operations.GetOperation - get: '/v1p3beta1/{name=projects/*/locations/*/operations/*}' - additional_bindings: - - get: '/v1p3beta1/operations/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v1p3beta1/{name=projects/*/locations/*/operations/*}' - additional_bindings: - - delete: '/v1p3beta1/operations/{name=projects/*/locations/*/operations/*}' - - - selector: google.longrunning.Operations.CancelOperation - post: '/v1p3beta1/{name=projects/*/locations/*/operations/*}:cancel' - body: '*' - additional_bindings: - - post: '/v1p3beta1/operations/{name=projects/*/locations/*/operations/*}:cancel' - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform diff --git a/third_party/googleapis/google/cloud/vision/v1/geometry.proto b/third_party/googleapis/google/cloud/vision/v1/geometry.proto index 78349df6c..5ed429986 100644 --- a/third_party/googleapis/google/cloud/vision/v1/geometry.proto +++ b/third_party/googleapis/google/cloud/vision/v1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1/image_annotator.proto b/third_party/googleapis/google/cloud/vision/v1/image_annotator.proto index 79e2df340..6c2d7bfe2 100644 --- a/third_party/googleapis/google/cloud/vision/v1/image_annotator.proto +++ b/third_party/googleapis/google/cloud/vision/v1/image_annotator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1/product_search.proto b/third_party/googleapis/google/cloud/vision/v1/product_search.proto index ed58f0137..8029a3205 100644 --- a/third_party/googleapis/google/cloud/vision/v1/product_search.proto +++ b/third_party/googleapis/google/cloud/vision/v1/product_search.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1/product_search_service.proto b/third_party/googleapis/google/cloud/vision/v1/product_search_service.proto index 58e55c010..321d953ff 100644 --- a/third_party/googleapis/google/cloud/vision/v1/product_search_service.proto +++ b/third_party/googleapis/google/cloud/vision/v1/product_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1/samples/vision_async_batch_annotate_images_test.yaml b/third_party/googleapis/google/cloud/vision/v1/samples/vision_async_batch_annotate_images_test.yaml deleted file mode 100644 index 1f07c86b4..000000000 --- a/third_party/googleapis/google/cloud/vision/v1/samples/vision_async_batch_annotate_images_test.yaml +++ /dev/null @@ -1,18 +0,0 @@ -test: - suites: - - name: Vision V1 Sample Tests - cases: - - name: vision_async_batch_annotate_images - spec: - - env: - name: GCS_BUCKET - variable: gcs_bucket - - call: - sample: vision_async_batch_annotate_images - params: - input_image_uri: - literal: gs://cloud-samples-data/vision/label/wakeupcat.jpg - output_uri: - variable: gcs_bucket - - assert_contains: - - variable: gcs_bucket diff --git a/third_party/googleapis/google/cloud/vision/v1/samples/vision_batch_annotate_files_gcs_test.yaml b/third_party/googleapis/google/cloud/vision/v1/samples/vision_batch_annotate_files_gcs_test.yaml deleted file mode 100644 index 61e27fc3a..000000000 --- a/third_party/googleapis/google/cloud/vision/v1/samples/vision_batch_annotate_files_gcs_test.yaml +++ /dev/null @@ -1,41 +0,0 @@ -test: - suites: - - name: Vision V1 Sample Tests - cases: - - name: vision_batch_annotate_files_gcs - spec: - - call: - sample: vision_batch_annotate_files_gcs - params: - storage_uri: - literal: gs://cloud-samples-data/vision/document_understanding/kafka.pdf - # Page 1 - - assert_contains_any: - - literal: "Gregor Samsa woke" - - literal: "he found himself transformed in his bed" - - literal: "What’s happened to me?" - - literal: "Gregor then turned to look out the window" - - literal: "Drops of rain could be heard " - - # Page 2 - - assert_contains_any: - - literal: "Getting up early" - - literal: "He must have tried it a hundred times" - - literal: "look at the floundering legs" - - literal: "travelling salesmen live a life" - - literal: "the best thing for me" - - # The pages not included in the API request should not - # be included in the results (Page 3 texts) - - assert_not_contains: - - literal: "the boss is hard of hearing" - - literal: "even if he did catch the train" - - literal: "fifteen years of service" - - # Page 9 (The last page, -1) - - assert_contains_any: - - literal: "There was a loud thump" - - literal: "Gregor tried to imagine" - - literal: "please open up this door" - - literal: "The lad only ever thinks about the business" - - literal: "Good morning, Mr. Samsa" diff --git a/third_party/googleapis/google/cloud/vision/v1/samples/vision_batch_annotate_files_test.yaml b/third_party/googleapis/google/cloud/vision/v1/samples/vision_batch_annotate_files_test.yaml deleted file mode 100644 index 7a8724677..000000000 --- a/third_party/googleapis/google/cloud/vision/v1/samples/vision_batch_annotate_files_test.yaml +++ /dev/null @@ -1,41 +0,0 @@ -test: - suites: - - name: Vision V1 Sample Tests - cases: - - name: vision_batch_annotate_files - spec: - - call: - sample: vision_batch_annotate_files - params: - file_path: - literal: resources/kafka.pdf - # Page 1 - - assert_contains_any: - - literal: "Gregor Samsa woke" - - literal: "he found himself transformed in his bed" - - literal: "What’s happened to me?" - - literal: "Gregor then turned to look out the window" - - literal: "Drops of rain could be heard " - - # Page 2 - - assert_contains_any: - - literal: "Getting up early" - - literal: "He must have tried it a hundred times" - - literal: "look at the floundering legs" - - literal: "travelling salesmen live a life" - - literal: "the best thing for me" - - # The pages not included in the API request should not - # be included in the results (Page 3 texts) - - assert_not_contains: - - literal: "the boss is hard of hearing" - - literal: "even if he did catch the train" - - literal: "fifteen years of service" - - # Page 9 (The last page, -1) - - assert_contains_any: - - literal: "There was a loud thump" - - literal: "Gregor tried to imagine" - - literal: "please open up this door" - - literal: "The lad only ever thinks about the business" - - literal: "Good morning, Mr. Samsa" diff --git a/third_party/googleapis/google/cloud/vision/v1/text_annotation.proto b/third_party/googleapis/google/cloud/vision/v1/text_annotation.proto index bc1c799e8..0b2e7ebd1 100644 --- a/third_party/googleapis/google/cloud/vision/v1/text_annotation.proto +++ b/third_party/googleapis/google/cloud/vision/v1/text_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1/web_detection.proto b/third_party/googleapis/google/cloud/vision/v1/web_detection.proto index 71dc333bc..daccbe7d1 100644 --- a/third_party/googleapis/google/cloud/vision/v1/web_detection.proto +++ b/third_party/googleapis/google/cloud/vision/v1/web_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p1beta1/geometry.proto b/third_party/googleapis/google/cloud/vision/v1p1beta1/geometry.proto index 14febb0d4..589f74f0f 100644 --- a/third_party/googleapis/google/cloud/vision/v1p1beta1/geometry.proto +++ b/third_party/googleapis/google/cloud/vision/v1p1beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p1beta1/image_annotator.proto b/third_party/googleapis/google/cloud/vision/v1p1beta1/image_annotator.proto index ac535380b..ac46435a5 100644 --- a/third_party/googleapis/google/cloud/vision/v1p1beta1/image_annotator.proto +++ b/third_party/googleapis/google/cloud/vision/v1p1beta1/image_annotator.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p1beta1/text_annotation.proto b/third_party/googleapis/google/cloud/vision/v1p1beta1/text_annotation.proto index 53488bfe4..81567fd23 100644 --- a/third_party/googleapis/google/cloud/vision/v1p1beta1/text_annotation.proto +++ b/third_party/googleapis/google/cloud/vision/v1p1beta1/text_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p1beta1/web_detection.proto b/third_party/googleapis/google/cloud/vision/v1p1beta1/web_detection.proto index ebff5a191..67fd5f19b 100644 --- a/third_party/googleapis/google/cloud/vision/v1p1beta1/web_detection.proto +++ b/third_party/googleapis/google/cloud/vision/v1p1beta1/web_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p2beta1/geometry.proto b/third_party/googleapis/google/cloud/vision/v1p2beta1/geometry.proto index 3b15ba867..831a45db4 100644 --- a/third_party/googleapis/google/cloud/vision/v1p2beta1/geometry.proto +++ b/third_party/googleapis/google/cloud/vision/v1p2beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p2beta1/image_annotator.proto b/third_party/googleapis/google/cloud/vision/v1p2beta1/image_annotator.proto index 727c0b091..803bae507 100644 --- a/third_party/googleapis/google/cloud/vision/v1p2beta1/image_annotator.proto +++ b/third_party/googleapis/google/cloud/vision/v1p2beta1/image_annotator.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p2beta1/text_annotation.proto b/third_party/googleapis/google/cloud/vision/v1p2beta1/text_annotation.proto index dd6e21f5f..4f3507561 100644 --- a/third_party/googleapis/google/cloud/vision/v1p2beta1/text_annotation.proto +++ b/third_party/googleapis/google/cloud/vision/v1p2beta1/text_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p2beta1/web_detection.proto b/third_party/googleapis/google/cloud/vision/v1p2beta1/web_detection.proto index aa0902d18..10ed4298b 100644 --- a/third_party/googleapis/google/cloud/vision/v1p2beta1/web_detection.proto +++ b/third_party/googleapis/google/cloud/vision/v1p2beta1/web_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p3beta1/geometry.proto b/third_party/googleapis/google/cloud/vision/v1p3beta1/geometry.proto index c3941687e..08fb233d3 100644 --- a/third_party/googleapis/google/cloud/vision/v1p3beta1/geometry.proto +++ b/third_party/googleapis/google/cloud/vision/v1p3beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p3beta1/image_annotator.proto b/third_party/googleapis/google/cloud/vision/v1p3beta1/image_annotator.proto index 16a99afe4..734bbb309 100644 --- a/third_party/googleapis/google/cloud/vision/v1p3beta1/image_annotator.proto +++ b/third_party/googleapis/google/cloud/vision/v1p3beta1/image_annotator.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search.proto b/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search.proto index 7f311bee6..33ff79ed1 100644 --- a/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search.proto +++ b/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search_service.proto b/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search_service.proto index f0ede6426..51dc1cc8e 100644 --- a/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search_service.proto +++ b/third_party/googleapis/google/cloud/vision/v1p3beta1/product_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p3beta1/text_annotation.proto b/third_party/googleapis/google/cloud/vision/v1p3beta1/text_annotation.proto index 67fa6eb26..5ffda1348 100644 --- a/third_party/googleapis/google/cloud/vision/v1p3beta1/text_annotation.proto +++ b/third_party/googleapis/google/cloud/vision/v1p3beta1/text_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p3beta1/web_detection.proto b/third_party/googleapis/google/cloud/vision/v1p3beta1/web_detection.proto index 4438893cd..66f4843e7 100644 --- a/third_party/googleapis/google/cloud/vision/v1p3beta1/web_detection.proto +++ b/third_party/googleapis/google/cloud/vision/v1p3beta1/web_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/face.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/face.proto index 334ef5d65..ec32b155f 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/face.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/face.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/geometry.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/geometry.proto index d03db990b..6760b7cdb 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/geometry.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/image_annotator.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/image_annotator.proto index 3a37ce128..e3a3dc3b7 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/image_annotator.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/image_annotator.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search.proto index 060fd2a84..936ed407d 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search_service.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search_service.proto index 5e50202fc..712b8342e 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search_service.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/product_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/text_annotation.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/text_annotation.proto index 7e6afb1ee..16001e30f 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/text_annotation.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/text_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vision/v1p4beta1/web_detection.proto b/third_party/googleapis/google/cloud/vision/v1p4beta1/web_detection.proto index 713474e38..7a4999b70 100644 --- a/third_party/googleapis/google/cloud/vision/v1p4beta1/web_detection.proto +++ b/third_party/googleapis/google/cloud/vision/v1p4beta1/web_detection.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/annotations.proto b/third_party/googleapis/google/cloud/visionai/v1/annotations.proto index b5259a879..0d967ea40 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/annotations.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/annotations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/common.proto b/third_party/googleapis/google/cloud/visionai/v1/common.proto index 296a8ebcb..997424548 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/common.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/health_service.proto b/third_party/googleapis/google/cloud/visionai/v1/health_service.proto index 94880e709..f1cdee240 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/health_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/health_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/lva.proto b/third_party/googleapis/google/cloud/visionai/v1/lva.proto index ebedd4206..c991b08e5 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/lva.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/lva.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/lva_resources.proto b/third_party/googleapis/google/cloud/visionai/v1/lva_resources.proto index c2a686860..5125cadfc 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/lva_resources.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/lva_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/lva_service.proto b/third_party/googleapis/google/cloud/visionai/v1/lva_service.proto index 1db6bbfb2..b99f5a12d 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/lva_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/lva_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/platform.proto b/third_party/googleapis/google/cloud/visionai/v1/platform.proto index de6f5e142..8760b4574 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/platform.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/platform.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/prediction.proto b/third_party/googleapis/google/cloud/visionai/v1/prediction.proto index f590ca66b..88a91dec5 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/prediction.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/prediction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/streaming_resources.proto b/third_party/googleapis/google/cloud/visionai/v1/streaming_resources.proto index dd8e103b2..dd37b1bf9 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/streaming_resources.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/streaming_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/streaming_service.proto b/third_party/googleapis/google/cloud/visionai/v1/streaming_service.proto index daeffbf81..fb16312fd 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/streaming_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/streaming_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/streams_resources.proto b/third_party/googleapis/google/cloud/visionai/v1/streams_resources.proto index 506cd52a4..d6e0654eb 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/streams_resources.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/streams_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/streams_service.proto b/third_party/googleapis/google/cloud/visionai/v1/streams_service.proto index 83bb82830..79b44e3db 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/streams_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/streams_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1/visionai_v1.yaml b/third_party/googleapis/google/cloud/visionai/v1/visionai_v1.yaml index f21eb9e4a..34630178d 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/visionai_v1.yaml +++ b/third_party/googleapis/google/cloud/visionai/v1/visionai_v1.yaml @@ -189,6 +189,14 @@ publishing: library_settings: - version: google.cloud.visionai.v1 launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER go_settings: common: destinations: diff --git a/third_party/googleapis/google/cloud/visionai/v1/warehouse.proto b/third_party/googleapis/google/cloud/visionai/v1/warehouse.proto index f6e87a353..020c101fc 100644 --- a/third_party/googleapis/google/cloud/visionai/v1/warehouse.proto +++ b/third_party/googleapis/google/cloud/visionai/v1/warehouse.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -1786,6 +1786,73 @@ message DataSchemaDetails { // The search strategy for annotations value of the `key`. message SearchStrategy { + // Filter on the confidence score. Only adds to index if the confidence + // score is higher than the threshold. + // Example data schema: + // key: "name-confidence-pair" + // type: CUSTOMIZED_STRUCT + // granularity: GRANULARITY_PARTITION_LEVEL + // customized_struct_config { + // field_schemas { + // key: "name" + // type: STRING + // granularity: GRANULARITY_PARTITION_LEVEL + // search_strategy { + // search_strategy_type: SMART_SEARCH + // confidence_score_index_config { + // field_path: "name-confidence-pair.score" + // threshold: 0.6 + // } + // } + // } + // field_schemas { + // key: "score" + // type: FLOAT + // granularity: GRANULARITY_PARTITION_LEVEL + // } + // } + // This means only "name" with score > 0.6 will be indexed. + message ConfidenceScoreIndexConfig { + // Required. The path to the confidence score field. It is a string that + // concatenates all the data schema keys along the path. See the example + // above. If the data schema contains LIST, use '_ENTRIES' to concatenate. + // Example data schema contains a list: + // "key": "list-name-score", + // "schemaDetails": { + // "type": "LIST", + // "granularity": "GRANULARITY_PARTITION_LEVEL", + // "listConfig": { + // "valueSchema": { + // "type": "CUSTOMIZED_STRUCT", + // "granularity": "GRANULARITY_PARTITION_LEVEL", + // "customizedStructConfig": { + // "fieldSchemas": { + // "name": { + // "type": "STRING", + // "granularity": "GRANULARITY_PARTITION_LEVEL", + // "searchStrategy": { + // "searchStrategyType": "SMART_SEARCH" + // "confidence_score_index_config": { + // "field_path": "list-name-score._ENTRIES.score", + // "threshold": "0.9", + // } + // } + // }, + // "score": { + // "type": "FLOAT", + // "granularity": "GRANULARITY_PARTITION_LEVEL", + // } + // } + // } + // } + // } + // } + string field_path = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The threshold. + float threshold = 2 [(google.api.field_behavior) = REQUIRED]; + } + // The types of search strategies to be applied on the annotation key. enum SearchStrategyType { // Annotatation values of the `key` above will not be searchable. @@ -1805,7 +1872,14 @@ message DataSchemaDetails { // which is documented in the DataSchemaDetails.DataType. Specifying // unsupported `search_strategy_type` for data types will result in // INVALID_ARGUMENT error. - SearchStrategyType search_strategy_type = 1; + optional SearchStrategyType search_strategy_type = 1; + + // Optional. Configs the path to the confidence score, and the threshold. + // Only if the score is greater than the threshold, current field will be + // built into the index. Only applies to leaf nodes using EXACT_SEARCH or + // SMART_SEARCH. + ConfidenceScoreIndexConfig confidence_score_index_config = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Data type of the annotation. @@ -1916,7 +1990,7 @@ message DataSchemaDetails { } // Type of the annotation. - DataType type = 1; + optional DataType type = 1; // Config for protobuf any type. ProtoAnyConfig proto_any_config = 6; @@ -1928,7 +2002,7 @@ message DataSchemaDetails { CustomizedStructConfig customized_struct_config = 9; // The granularity associated with this DataSchema. - Granularity granularity = 5; + optional Granularity granularity = 5; // The search strategy to be applied on the `key` above. SearchStrategy search_strategy = 7; @@ -2140,8 +2214,12 @@ message ListAnnotationsRequest { // The filter applied to the returned list. // We only support filtering for the following fields: + // For corpus of STREAM_VIDEO type: // `partition.temporal_partition.start_time`, // `partition.temporal_partition.end_time`, and `key`. + // For corpus of VIDEO_ON_DEMAND type, + // `partition.relative_temporal_partition.start_offset`, + // `partition.relative_temporal_partition.end_offset`, and `key`. // For corpus of IMAGE type, only `key` is supported. // Timestamps are specified in the RFC-3339 format, and only one restriction // may be applied per field, joined by conjunctions. @@ -2726,11 +2804,11 @@ message SearchHypernym { // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}` string name = 1; - // The hypernym. - string hypernym = 2; + // Optional. The hypernym. + string hypernym = 2 [(google.api.field_behavior) = OPTIONAL]; - // Hyponyms that the hypernym is mapped to. - repeated string hyponyms = 3; + // Optional. Hyponyms that the hypernym is mapped to. + repeated string hyponyms = 3 [(google.api.field_behavior) = OPTIONAL]; } // Request message for creating SearchHypernym. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/annotations.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/annotations.proto index a1c23f272..9d9e58ed1 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/annotations.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/annotations.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/common.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/common.proto index 83c33e062..8eb046e7f 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/common.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/lva.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/lva.proto index f8ba0e242..b2af6c814 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/lva.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/lva.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_resources.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_resources.proto index eaeb4ddd3..68e0ba1c3 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_resources.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_service.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_service.proto index dbfbd2c78..8855cb63e 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/lva_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/platform.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/platform.proto index eaf9a7e64..f9c7c8dfc 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/platform.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/platform.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_resources.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_resources.proto index 450cbc98e..736b6f6c2 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_resources.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_service.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_service.proto index af5e00dbf..df200f3ee 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/streaming_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_resources.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_resources.proto index 73fa81bd9..b275cca69 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_resources.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_service.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_service.proto index 7b0bdc1a9..214337de8 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_service.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/streams_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/visionai/v1alpha1/warehouse.proto b/third_party/googleapis/google/cloud/visionai/v1alpha1/warehouse.proto index ee10f7e7c..006391bfe 100644 --- a/third_party/googleapis/google/cloud/visionai/v1alpha1/warehouse.proto +++ b/third_party/googleapis/google/cloud/visionai/v1alpha1/warehouse.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vmmigration/v1/BUILD.bazel b/third_party/googleapis/google/cloud/vmmigration/v1/BUILD.bazel index feebeea5a..e5b726362 100644 --- a/third_party/googleapis/google/cloud/vmmigration/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/vmmigration/v1/BUILD.bazel @@ -230,7 +230,7 @@ php_gapic_library( name = "vmmigration_php_gapic", srcs = [":vmmigration_proto_with_info"], grpc_service_config = "vmmigration_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "vmmigration_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/vmmigration/v1/vmmigration.proto b/third_party/googleapis/google/cloud/vmmigration/v1/vmmigration.proto index 35c6f36d0..0efefe3af 100644 --- a/third_party/googleapis/google/cloud/vmmigration/v1/vmmigration.proto +++ b/third_party/googleapis/google/cloud/vmmigration/v1/vmmigration.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vmwareengine/v1/BUILD.bazel b/third_party/googleapis/google/cloud/vmwareengine/v1/BUILD.bazel index 6b583f699..a9f5fd441 100644 --- a/third_party/googleapis/google/cloud/vmwareengine/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/vmwareengine/v1/BUILD.bazel @@ -225,7 +225,7 @@ php_gapic_library( name = "vmwareengine_php_gapic", srcs = [":vmwareengine_proto_with_info"], grpc_service_config = "vmwareengine_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "vmwareengine_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine.proto b/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine.proto index b724f6854..d77ac7c26 100644 --- a/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine.proto +++ b/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine_resources.proto b/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine_resources.proto index 229db7792..b773c00c9 100644 --- a/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine_resources.proto +++ b/third_party/googleapis/google/cloud/vmwareengine/v1/vmwareengine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/vpcaccess/v1/vpc_access.proto b/third_party/googleapis/google/cloud/vpcaccess/v1/vpc_access.proto index 21bf77757..23682dad2 100644 --- a/third_party/googleapis/google/cloud/vpcaccess/v1/vpc_access.proto +++ b/third_party/googleapis/google/cloud/vpcaccess/v1/vpc_access.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/webrisk/v1/webrisk.proto b/third_party/googleapis/google/cloud/webrisk/v1/webrisk.proto index 5c5f63929..d9464e925 100644 --- a/third_party/googleapis/google/cloud/webrisk/v1/webrisk.proto +++ b/third_party/googleapis/google/cloud/webrisk/v1/webrisk.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/webrisk/v1beta1/webrisk.proto b/third_party/googleapis/google/cloud/webrisk/v1beta1/webrisk.proto index 6fcdb3aec..7ef44777d 100644 --- a/third_party/googleapis/google/cloud/webrisk/v1beta1/webrisk.proto +++ b/third_party/googleapis/google/cloud/webrisk/v1beta1/webrisk.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/crawled_url.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/crawled_url.proto index 6b8f8df3b..11c8af0a9 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/crawled_url.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/crawled_url.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/finding.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/finding.proto index 0226bbf54..65f6d741b 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/finding.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_addon.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_addon.proto index 409a7db54..f537ee50d 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_addon.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_addon.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_type_stats.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_type_stats.proto index 94a5e7ea6..2b70b6142 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_type_stats.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/finding_type_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config.proto index 12f3ece58..538b011e1 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config_error.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config_error.proto index 96fe523b6..cd974c28a 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config_error.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_config_error.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run.proto index 70f5b4523..24158bcf8 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto index 8f906a57f..d039dc20c 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_error_trace.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_log.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_log.proto index c1692674d..406f47393 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_log.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_log.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto index db9d93300..17d01adbf 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1/web_security_scanner.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1/web_security_scanner.proto index 141f432c1..3e16f438b 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1/web_security_scanner.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1/web_security_scanner.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/crawled_url.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/crawled_url.proto index 57d53c9ef..49b653db0 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/crawled_url.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/crawled_url.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding.proto index 55987fe09..1306675e1 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_addon.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_addon.proto index f16b53ccf..8b6d316f8 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_addon.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_addon.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto index 4b8545a75..5b0940d04 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_config.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_config.proto index e2cd7fe71..7063b8182 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_config.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_config.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_run.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_run.proto index 72d281a7d..639c42d45 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_run.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/scan_run.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto index 13ed469e7..cc223afdf 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/crawled_url.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/crawled_url.proto index 235f81264..cdf0f8acf 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/crawled_url.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/crawled_url.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding.proto index ca07cafd9..b63669ad9 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_addon.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_addon.proto index a64fbf8e1..f726460f0 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_addon.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_addon.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_type_stats.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_type_stats.proto index 842a9f359..41f1c8b8f 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_type_stats.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/finding_type_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config.proto index 550e2e736..d302dfc2a 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config_error.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config_error.proto index 3030f9f26..d765b0cb0 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config_error.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_config_error.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run.proto index da45e0a68..dd5b2ba4a 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto index 5eedd1150..22132bbfd 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto index 0786e94d1..6fa528f2b 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/web_security_scanner.proto b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/web_security_scanner.proto index 211affc4c..6ece7926b 100644 --- a/third_party/googleapis/google/cloud/websecurityscanner/v1beta/web_security_scanner.proto +++ b/third_party/googleapis/google/cloud/websecurityscanner/v1beta/web_security_scanner.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workflows/executions/v1/executions.proto b/third_party/googleapis/google/cloud/workflows/executions/v1/executions.proto index 0c6bc12cb..d69c7e217 100644 --- a/third_party/googleapis/google/cloud/workflows/executions/v1/executions.proto +++ b/third_party/googleapis/google/cloud/workflows/executions/v1/executions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workflows/executions/v1beta/executions.proto b/third_party/googleapis/google/cloud/workflows/executions/v1beta/executions.proto index dd37f3b88..c75746b81 100644 --- a/third_party/googleapis/google/cloud/workflows/executions/v1beta/executions.proto +++ b/third_party/googleapis/google/cloud/workflows/executions/v1beta/executions.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workflows/type/engine_call.proto b/third_party/googleapis/google/cloud/workflows/type/engine_call.proto index af3e48f7a..c773a6061 100644 --- a/third_party/googleapis/google/cloud/workflows/type/engine_call.proto +++ b/third_party/googleapis/google/cloud/workflows/type/engine_call.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workflows/type/executions_system.proto b/third_party/googleapis/google/cloud/workflows/type/executions_system.proto index a2959769f..6ca2299f5 100644 --- a/third_party/googleapis/google/cloud/workflows/type/executions_system.proto +++ b/third_party/googleapis/google/cloud/workflows/type/executions_system.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workflows/v1/workflows.proto b/third_party/googleapis/google/cloud/workflows/v1/workflows.proto index 772ca6537..69d52a732 100644 --- a/third_party/googleapis/google/cloud/workflows/v1/workflows.proto +++ b/third_party/googleapis/google/cloud/workflows/v1/workflows.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workflows/v1beta/workflows.proto b/third_party/googleapis/google/cloud/workflows/v1beta/workflows.proto index d929f2006..8047c963a 100644 --- a/third_party/googleapis/google/cloud/workflows/v1beta/workflows.proto +++ b/third_party/googleapis/google/cloud/workflows/v1beta/workflows.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workstations/logging/v1/platform_logs.proto b/third_party/googleapis/google/cloud/workstations/logging/v1/platform_logs.proto index 64290f06e..ef1e2b4d5 100644 --- a/third_party/googleapis/google/cloud/workstations/logging/v1/platform_logs.proto +++ b/third_party/googleapis/google/cloud/workstations/logging/v1/platform_logs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workstations/v1/BUILD.bazel b/third_party/googleapis/google/cloud/workstations/v1/BUILD.bazel index 806754bd9..b783a8aa1 100644 --- a/third_party/googleapis/google/cloud/workstations/v1/BUILD.bazel +++ b/third_party/googleapis/google/cloud/workstations/v1/BUILD.bazel @@ -140,7 +140,7 @@ go_gapic_library( grpc_service_config = "workstations_grpc_service_config.json", importpath = "cloud.google.com/go/workstations/apiv1;workstations", metadata = True, - release_level = "beta", + release_level = "ga", rest_numeric_enums = True, service_yaml = "workstations_v1.yaml", transport = "grpc+rest", @@ -302,6 +302,7 @@ ruby_cloud_gapic_library( grpc_service_config = "workstations_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "workstations_v1.yaml", + transport = "grpc+rest", deps = [ ":workstations_ruby_grpc", ":workstations_ruby_proto", diff --git a/third_party/googleapis/google/cloud/workstations/v1/workstations.proto b/third_party/googleapis/google/cloud/workstations/v1/workstations.proto index 7bc9b5241..f1ba4e52e 100644 --- a/third_party/googleapis/google/cloud/workstations/v1/workstations.proto +++ b/third_party/googleapis/google/cloud/workstations/v1/workstations.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/cloud/workstations/v1beta/workstations.proto b/third_party/googleapis/google/cloud/workstations/v1beta/workstations.proto index afbce3f94..2ce235218 100644 --- a/third_party/googleapis/google/cloud/workstations/v1beta/workstations.proto +++ b/third_party/googleapis/google/cloud/workstations/v1beta/workstations.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/compute/logging/dr/v1/disaster_recovery_event.proto b/third_party/googleapis/google/compute/logging/dr/v1/disaster_recovery_event.proto index 7611b89fd..0c17f1938 100644 --- a/third_party/googleapis/google/compute/logging/dr/v1/disaster_recovery_event.proto +++ b/third_party/googleapis/google/compute/logging/dr/v1/disaster_recovery_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/compute/logging/gdnsusage/v1/gdns_vm_usage.proto b/third_party/googleapis/google/compute/logging/gdnsusage/v1/gdns_vm_usage.proto index bf70aa39b..6413c5023 100644 --- a/third_party/googleapis/google/compute/logging/gdnsusage/v1/gdns_vm_usage.proto +++ b/third_party/googleapis/google/compute/logging/gdnsusage/v1/gdns_vm_usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/container/v1/BUILD.bazel b/third_party/googleapis/google/container/v1/BUILD.bazel index ff48d30ad..3db240810 100644 --- a/third_party/googleapis/google/container/v1/BUILD.bazel +++ b/third_party/googleapis/google/container/v1/BUILD.bazel @@ -9,43 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + ############################################################################## # Common ############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") load("@rules_proto//proto:defs.bzl", "proto_library") -load( - "@com_google_googleapis_imports//:imports.bzl", - "cc_grpc_library", - "cc_proto_library", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", - "java_grpc_library", - "java_proto_library", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", - "proto_library_with_info", - "py_gapic_assembly_pkg", - "py_gapic_library", - "py_test", - "ruby_cloud_gapic_library", - "ruby_gapic_assembly_pkg", - "ruby_grpc_library", - "ruby_proto_library", -) - -# This is an API workspace, having public visibility by default makes perfect sense. -package(default_visibility = ["//visibility:public"]) proto_library( name = "container_proto", @@ -74,6 +48,19 @@ proto_library_with_info( ], ) +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + java_proto_library( name = "container_java_proto", deps = [":container_proto"], @@ -95,7 +82,7 @@ java_gapic_library( test_deps = [ ":container_java_grpc", ], - transport = "grpc", + transport = "grpc+rest", deps = [ ":container_java_proto", "//google/api:api_java_proto", @@ -105,6 +92,7 @@ java_gapic_library( java_gapic_test( name = "container_java_gapic_test_suite", test_classes = [ + "com.google.cloud.container.v1.ClusterManagerClientHttpJsonTest", "com.google.cloud.container.v1.ClusterManagerClientTest", ], runtime_deps = [":container_java_gapic_test"], @@ -114,7 +102,7 @@ java_gapic_test( java_gapic_assembly_gradle_pkg( name = "google-cloud-container-v1-java", include_samples = True, - transport = "grpc", + transport = "grpc+rest", deps = [ ":container_java_gapic", ":container_java_grpc", @@ -123,6 +111,17 @@ java_gapic_assembly_gradle_pkg( ], ) +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + go_proto_library( name = "container_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -144,9 +143,10 @@ go_gapic_library( release_level = "ga", rest_numeric_enums = True, service_yaml = "container_v1.yaml", - transport = "grpc", + transport = "grpc+rest", deps = [ ":container_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -162,6 +162,17 @@ go_gapic_assembly_pkg( ], ) +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + py_gapic_library( name = "container_py_gapic", srcs = [":container_proto"], @@ -172,7 +183,9 @@ py_gapic_library( ], rest_numeric_enums = True, service_yaml = "container_v1.yaml", - transport = "grpc", + transport = "grpc+rest", + deps = [ + ], ) py_test( @@ -193,6 +206,17 @@ py_gapic_assembly_pkg( ], ) +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + php_proto_library( name = "container_php_proto", deps = [":container_proto"], @@ -206,7 +230,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "container_v1.yaml", transport = "grpc+rest", - deps = [":container_php_proto"], + deps = [ + ":container_php_proto", + ], ) # Open Source Packages @@ -218,6 +244,16 @@ php_gapic_assembly_pkg( ], ) +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + nodejs_gapic_library( name = "container_nodejs_gapic", package_name = "@google-cloud/container", @@ -227,7 +263,7 @@ nodejs_gapic_library( package = "google.container.v1", rest_numeric_enums = True, service_yaml = "container_v1.yaml", - transport = "grpc", + transport = "grpc+rest", deps = [], ) @@ -239,6 +275,18 @@ nodejs_gapic_assembly_pkg( ], ) +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + ruby_proto_library( name = "container_ruby_proto", deps = [":container_proto"], @@ -265,7 +313,7 @@ ruby_cloud_gapic_library( ruby_cloud_description = "Builds and manages container-based applications, powered by the open source Kubernetes technology.", ruby_cloud_title = "Kubernetes Engine V1", service_yaml = "container_v1.yaml", - transport = "grpc", + transport = "grpc+rest", deps = [ ":container_ruby_grpc", ":container_ruby_proto", @@ -282,6 +330,18 @@ ruby_gapic_assembly_pkg( ], ) +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + csharp_proto_library( name = "container_csharp_proto", deps = [":container_proto"], @@ -300,7 +360,7 @@ csharp_gapic_library( grpc_service_config = "container_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "container_v1.yaml", - transport = "grpc", + transport = "grpc+rest", deps = [ ":container_csharp_grpc", ":container_csharp_proto", @@ -317,6 +377,16 @@ csharp_gapic_assembly_pkg( ], ) +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + cc_proto_library( name = "container_cc_proto", deps = [":container_proto"], diff --git a/third_party/googleapis/google/container/v1/cluster_service.proto b/third_party/googleapis/google/container/v1/cluster_service.proto index 5459cc51a..bbceb38ab 100644 --- a/third_party/googleapis/google/container/v1/cluster_service.proto +++ b/third_party/googleapis/google/container/v1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -258,6 +258,7 @@ service ClusterManager { } }; option (google.api.method_signature) = "project_id,zone"; + option (google.api.method_signature) = "parent"; } // Gets the specified operation. @@ -531,6 +532,15 @@ message LinuxNodeConfig { CGROUP_MODE_V2 = 2; } + // Hugepages amount in both 2m and 1g size + message HugepagesConfig { + // Optional. Amount of 2M hugepages + optional int32 hugepage_size2m = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Amount of 1G hugepages + optional int32 hugepage_size1g = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // The Linux kernel parameters to be applied to the nodes and all pods running // on the nodes. // @@ -551,6 +561,10 @@ message LinuxNodeConfig { // cgroup_mode specifies the cgroup mode to be used on the node. CgroupMode cgroup_mode = 2; + + // Optional. Amounts for 2M and 1G hugepages + optional HugepagesConfig hugepages = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Parameters that can be configured on Windows nodes. @@ -830,12 +844,22 @@ message NodeConfig { // Parameters for node pools to be backed by shared sole tenant node groups. SoleTenantConfig sole_tenant_config = 42; + // Parameters for containerd customization. + ContainerdConfig containerd_config = 43; + // A map of resource manager tag keys and values to be attached to the nodes. ResourceManagerTags resource_manager_tags = 45; // Optional. Reserved for future use. bool enable_confidential_storage = 46 [(google.api.field_behavior) = OPTIONAL]; + + // List of secondary boot disks attached to the nodes. + repeated SecondaryBootDisk secondary_boot_disks = 48; + + // Secondary boot disk update strategy. + optional SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = + 50; } // Specifies options for controlling advanced machine features. @@ -844,6 +868,9 @@ message AdvancedMachineFeatures { // multithreading (SMT) set this to 1. If unset, the maximum number of threads // supported per core by the underlying processor is assumed. optional int64 threads_per_core = 1; + + // Whether or not to enable nested virtualization (defaults to false). + optional bool enable_nested_virtualization = 2; } // Parameters for node pool-level network config. @@ -1072,6 +1099,53 @@ message SoleTenantConfig { repeated NodeAffinity node_affinities = 1; } +// ContainerdConfig contains configuration to customize containerd. +message ContainerdConfig { + // PrivateRegistryAccessConfig contains access configuration for + // private container registries. + message PrivateRegistryAccessConfig { + // CertificateAuthorityDomainConfig configures one or more fully qualified + // domain names (FQDN) to a specific certificate. + message CertificateAuthorityDomainConfig { + // GCPSecretManagerCertificateConfig configures a secret from + // [Google Secret Manager](https://cloud.google.com/secret-manager). + message GCPSecretManagerCertificateConfig { + // Secret URI, in the form + // "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION". + // Version can be fixed (e.g. "2") or "latest" + string secret_uri = 1; + } + + // List of fully qualified domain names (FQDN). + // Specifying port is supported. + // Wilcards are NOT supported. + // Examples: + // - my.customdomain.com + // - 10.0.1.2:5000 + repeated string fqdns = 1; + + // Certificate access config. The following are supported: + // - GCPSecretManagerCertificateConfig + oneof certificate_config { + // Google Secret Manager (GCP) certificate configuration. + GCPSecretManagerCertificateConfig + gcp_secret_manager_certificate_config = 2; + } + } + + // Private registry access is enabled. + bool enabled = 1; + + // Private registry access configuration. + repeated CertificateAuthorityDomainConfig + certificate_authority_domain_config = 2; + } + + // PrivateRegistryAccessConfig is used to configure access configuration + // for private container registries. + PrivateRegistryAccessConfig private_registry_access_config = 1; +} + // Kubernetes taint is composed of three fields: key, value, and effect. Effect // can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. // @@ -1990,6 +2064,12 @@ message Cluster { // GKE Enterprise Configuration. EnterpriseConfig enterprise_config = 149; + + // Output only. Reserved for future use. + optional bool satisfies_pzs = 152 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + optional bool satisfies_pzi = 153 [(google.api.field_behavior) = OUTPUT_ONLY]; } // K8sBetaAPIConfig , configuration for beta APIs @@ -2011,6 +2091,9 @@ message SecurityPostureConfig { // Applies Security Posture features on the cluster. BASIC = 2; + + // Applies the Security Posture off cluster Enterprise level features. + ENTERPRISE = 3; } // VulnerabilityMode defines enablement mode for vulnerability scanning. @@ -2048,6 +2131,11 @@ message NodePoolAutoConfig { // Resource manager tag keys and values to be attached to the nodes // for managing Compute Engine firewalls using Network Firewall Policies. ResourceManagerTags resource_manager_tags = 2; + + // NodeKubeletConfig controls the defaults for autoprovisioned node-pools. + // + // Currently only `insecure_kubelet_readonly_port_enabled` can be set here. + NodeKubeletConfig node_kubelet_config = 3; } // Subset of Nodepool message that has defaults. @@ -2063,6 +2151,14 @@ message NodeConfigDefaults { // Logging configuration for node pools. NodePoolLoggingConfig logging_config = 3; + + // Parameters for containerd customization. + ContainerdConfig containerd_config = 4; + + // NodeKubeletConfig controls the defaults for new node-pools. + // + // Currently only `insecure_kubelet_readonly_port_enabled` can be set here. + NodeKubeletConfig node_kubelet_config = 6; } // ClusterUpdate describes an update to the cluster. Exactly one update can @@ -2171,7 +2267,12 @@ message ClusterUpdate { // Cluster-level Vertical Pod Autoscaling configuration. VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22; - // The desired private cluster configuration. + // The desired private cluster configuration. master_global_access_config is + // the only field that can be changed via this field. + // See also + // [ClusterUpdate.desired_enable_private_endpoint][google.container.v1.ClusterUpdate.desired_enable_private_endpoint] + // for modifying other fields within + // [PrivateClusterConfig][google.container.v1.PrivateClusterConfig]. PrivateClusterConfig desired_private_cluster_config = 25; // The desired config of Intra-node visibility. @@ -2280,12 +2381,28 @@ message ClusterUpdate { // Desired Beta APIs to be enabled for cluster. K8sBetaAPIConfig desired_k8s_beta_apis = 131; + // The desired containerd config for the cluster. + ContainerdConfig desired_containerd_config = 134; + + // Enable/Disable Multi-Networking for the cluster + optional bool desired_enable_multi_networking = 135; + // The desired resource manager tags that apply to all auto-provisioned node // pools in autopilot clusters and node auto-provisioning enabled clusters. ResourceManagerTags desired_node_pool_auto_config_resource_manager_tags = 136; // Specify the details of in-transit encryption. optional InTransitEncryptionConfig desired_in_transit_encryption_config = 137; + + // Enable/Disable Cilium Clusterwide Network Policy for the cluster. + optional bool desired_enable_cilium_clusterwide_network_policy = 138; + + // The desired node kubelet config for the cluster. + NodeKubeletConfig desired_node_kubelet_config = 141; + + // The desired node kubelet config for all auto-provisioned node pools + // in autopilot clusters and node auto-provisioning enabled clusters. + NodeKubeletConfig desired_node_pool_auto_config_kubelet_config = 142; } // AdditionalPodRangesConfig is the configuration for additional pod secondary @@ -2745,6 +2862,11 @@ message UpdateNodePoolRequest { // Parameters that can be configured on Windows nodes. WindowsNodeConfig windows_node_config = 34; + // A list of hardware accelerators to be attached to each node. + // See https://cloud.google.com/compute/docs/gpus for more information about + // support for GPUs. + repeated AcceleratorConfig accelerators = 35; + // Optional. The desired [Google Compute Engine machine // type](https://cloud.google.com/compute/docs/machine-types) for nodes in the // node pool. Initiates an upgrade operation that migrates the nodes in the @@ -2768,6 +2890,11 @@ message UpdateNodePoolRequest { // Existing tags will be replaced with new values. ResourceManagerTags resource_manager_tags = 39; + // The desired containerd config for nodes in the node pool. + // Initiates an upgrade operation that recreates the nodes with the new + // config. + ContainerdConfig containerd_config = 40; + // Specifies the configuration of queued provisioning. NodePool.QueuedProvisioning queued_provisioning = 42; } @@ -4173,6 +4300,9 @@ message GPUSharingConfig { // GPUs are time-shared between containers. TIME_SHARING = 1; + + // GPUs are shared between containers with NVIDIA MPS. + MPS = 2; } // The max number of containers that can share a physical GPU. @@ -4392,7 +4522,11 @@ message NetworkConfig { optional bool enable_fqdn_network_policy = 19; // Specify the details of in-transit encryption. + // Now named inter-node transparent encryption. optional InTransitEncryptionConfig in_transit_encryption_config = 20; + + // Whether CiliumClusterwideNetworkPolicy is enabled on this cluster. + optional bool enable_cilium_clusterwide_network_policy = 21; } // GatewayAPIConfig contains the desired config of Gateway API on this cluster. @@ -4406,8 +4540,9 @@ message GatewayAPIConfig { // Gateway API support is disabled CHANNEL_DISABLED = 1; + // Deprecated: use CHANNEL_STANDARD instead. // Gateway API support is enabled, experimental CRDs are installed - CHANNEL_EXPERIMENTAL = 3; + CHANNEL_EXPERIMENTAL = 3 [deprecated = true]; // Gateway API support is enabled, standard CRDs are installed CHANNEL_STANDARD = 4; @@ -4652,6 +4787,10 @@ message DNSConfig { // cluster_dns_domain is the suffix used for all cluster service records. string cluster_dns_domain = 3; + + // Optional. The domain used in Additive VPC scope. + string additive_vpc_scope_dns_domain = 5 + [(google.api.field_behavior) = OPTIONAL]; } // Constraints applied to pods. @@ -4703,12 +4842,68 @@ message DatabaseEncryption { DECRYPTED = 2; } + // Current State of etcd encryption. + enum CurrentState { + // Should never be set + CURRENT_STATE_UNSPECIFIED = 0; + + // Secrets in etcd are encrypted. + CURRENT_STATE_ENCRYPTED = 7; + + // Secrets in etcd are stored in plain text (at etcd level) - this is + // unrelated to Compute Engine level full disk encryption. + CURRENT_STATE_DECRYPTED = 2; + + // Encryption (or re-encryption with a different CloudKMS key) + // of Secrets is in progress. + CURRENT_STATE_ENCRYPTION_PENDING = 3; + + // Encryption (or re-encryption with a different CloudKMS key) of Secrets in + // etcd encountered an error. + CURRENT_STATE_ENCRYPTION_ERROR = 4; + + // De-crypting Secrets to plain text in etcd is in progress. + CURRENT_STATE_DECRYPTION_PENDING = 5; + + // De-crypting Secrets to plain text in etcd encountered an error. + CURRENT_STATE_DECRYPTION_ERROR = 6; + } + + // OperationError records errors seen from CloudKMS keys + // encountered during updates to DatabaseEncryption configuration. + message OperationError { + // CloudKMS key resource that had the error. + string key_name = 1; + + // Description of the error seen during the operation. + string error_message = 2; + + // Time when the CloudKMS error was seen. + google.protobuf.Timestamp timestamp = 3; + } + // Name of CloudKMS key to use for the encryption of secrets in etcd. // Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key string key_name = 1; // The desired state of etcd encryption. State state = 2; + + // Output only. The current state of etcd encryption. + optional CurrentState current_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Keys in use by the cluster for decrypting + // existing objects, in addition to the key in `key_name`. + // + // Each item is a CloudKMS key resource. + repeated string decryption_keys = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Records errors seen during DatabaseEncryption update + // operations. + repeated OperationError last_operation_errors = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // ListUsableSubnetworksRequest requests the list of usable subnetworks @@ -5186,6 +5381,15 @@ message MonitoringComponentConfig { // Statefulset STATEFULSET = 12; + + // CADVISOR + CADVISOR = 13; + + // KUBELET + KUBELET = 14; + + // NVIDIA Data Center GPU Manager (DCGM) + DCGM = 15; } // Select components to collect metrics. An empty set would disable all @@ -5350,6 +5554,27 @@ message EnterpriseConfig { ClusterTier cluster_tier = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// SecondaryBootDisk represents a persistent disk attached to a node +// with special configurations based on its mode. +message SecondaryBootDisk { + // Mode specifies how the secondary boot disk will be used. + // This triggers mode-specified logic in the control plane. + enum Mode { + // MODE_UNSPECIFIED is when mode is not set. + MODE_UNSPECIFIED = 0; + + // CONTAINER_IMAGE_CACHE is for using the secondary boot disk as + // a container image cache. + CONTAINER_IMAGE_CACHE = 1; + } + + // Disk mode (container image cache, etc.) + Mode mode = 1; + + // Fully-qualified resource ID for an existing disk image. + string disk_image = 2; +} + // Options for in-transit encryption. enum InTransitEncryptionConfig { // Unspecified, will be inferred as default - @@ -5362,3 +5587,7 @@ enum InTransitEncryptionConfig { // Data in-transit is encrypted using inter-node transparent encryption. IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT = 2; } + +// SecondaryBootDiskUpdateStrategy is a placeholder which will be extended +// in the future to define different options for updating secondary boot disks. +message SecondaryBootDiskUpdateStrategy {} diff --git a/third_party/googleapis/google/container/v1alpha1/cluster_service.proto b/third_party/googleapis/google/container/v1alpha1/cluster_service.proto index 46c91445f..651439894 100644 --- a/third_party/googleapis/google/container/v1alpha1/cluster_service.proto +++ b/third_party/googleapis/google/container/v1alpha1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/container/v1beta1/cluster_service.proto b/third_party/googleapis/google/container/v1beta1/cluster_service.proto index 48231f393..841fe8007 100644 --- a/third_party/googleapis/google/container/v1beta1/cluster_service.proto +++ b/third_party/googleapis/google/container/v1beta1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -522,6 +522,15 @@ message LinuxNodeConfig { CGROUP_MODE_V2 = 2; } + // Hugepages amount in both 2m and 1g size + message HugepagesConfig { + // Optional. Amount of 2M hugepages + optional int32 hugepage_size2m = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Amount of 1G hugepages + optional int32 hugepage_size1g = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // The Linux kernel parameters to be applied to the nodes and all pods running // on the nodes. // @@ -542,6 +551,10 @@ message LinuxNodeConfig { // cgroup_mode specifies the cgroup mode to be used on the node. CgroupMode cgroup_mode = 2; + + // Optional. Amounts for 2M and 1G hugepages + optional HugepagesConfig hugepages = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Parameters that can be configured on Windows nodes. @@ -827,6 +840,9 @@ message NodeConfig { // Parameters for node pools to be backed by shared sole tenant node groups. SoleTenantConfig sole_tenant_config = 42; + // Parameters for containerd customization. + ContainerdConfig containerd_config = 43; + // HostMaintenancePolicy contains the desired maintenance policy for the // Google Compute Engine hosts. HostMaintenancePolicy host_maintenance_policy = 44; @@ -840,6 +856,10 @@ message NodeConfig { // List of secondary boot disks attached to the nodes. repeated SecondaryBootDisk secondary_boot_disks = 48; + + // Secondary boot disk update strategy. + optional SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = + 50; } // Specifies options for controlling advanced machine features. @@ -848,6 +868,9 @@ message AdvancedMachineFeatures { // multithreading (SMT) set this to 1. If unset, the maximum number of threads // supported per core by the underlying processor is assumed. optional int64 threads_per_core = 1; + + // Whether or not to enable nested virtualization (defaults to false). + optional bool enable_nested_virtualization = 2; } // Parameters for node pool-level network config. @@ -1151,6 +1174,53 @@ message SoleTenantConfig { repeated NodeAffinity node_affinities = 1; } +// ContainerdConfig contains configuration to customize containerd. +message ContainerdConfig { + // PrivateRegistryAccessConfig contains access configuration for + // private container registries. + message PrivateRegistryAccessConfig { + // CertificateAuthorityDomainConfig configures one or more fully qualified + // domain names (FQDN) to a specific certificate. + message CertificateAuthorityDomainConfig { + // GCPSecretManagerCertificateConfig configures a secret from + // [Google Secret Manager](https://cloud.google.com/secret-manager). + message GCPSecretManagerCertificateConfig { + // Secret URI, in the form + // "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION". + // Version can be fixed (e.g. "2") or "latest" + string secret_uri = 1; + } + + // List of fully qualified domain names (FQDN). + // Specifying port is supported. + // Wilcards are NOT supported. + // Examples: + // - my.customdomain.com + // - 10.0.1.2:5000 + repeated string fqdns = 1; + + // Certificate access config. The following are supported: + // - GCPSecretManagerCertificateConfig + oneof certificate_config { + // Google Secret Manager (GCP) certificate configuration. + GCPSecretManagerCertificateConfig + gcp_secret_manager_certificate_config = 2; + } + } + + // Private registry access is enabled. + bool enabled = 1; + + // Private registry access configuration. + repeated CertificateAuthorityDomainConfig + certificate_authority_domain_config = 2; + } + + // PrivateRegistryAccessConfig is used to configure access configuration + // for private container registries. + PrivateRegistryAccessConfig private_registry_access_config = 1; +} + // HostMaintenancePolicy contains the maintenance policy for the hosts on which // the GKE VMs run on. message HostMaintenancePolicy { @@ -1823,8 +1893,8 @@ message BinaryAuthorization { // Binauthz policy that applies to this cluster. message PolicyBinding { - // The relative resource name of the binauthz platform policy to audit. GKE - // platform policies have the following format: + // The relative resource name of the binauthz platform policy to evaluate. + // GKE platform policies have the following format: // `projects/{project_number}/platforms/gke/policies/{policy_id}`. optional string name = 1; } @@ -2284,6 +2354,46 @@ message Cluster { // GKE Enterprise Configuration. EnterpriseConfig enterprise_config = 149; + + // Secret CSI driver configuration. + SecretManagerConfig secret_manager_config = 150; + + // Enable/Disable Compliance Posture features for the cluster. + CompliancePostureConfig compliance_posture_config = 151; + + // Output only. Reserved for future use. + optional bool satisfies_pzs = 152 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + optional bool satisfies_pzi = 153 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// CompliancePostureConfig defines the settings needed to enable/disable +// features for the Compliance Posture. +message CompliancePostureConfig { + // Mode defines enablement mode for Compliance Posture. + enum Mode { + // Default value not specified. + MODE_UNSPECIFIED = 0; + + // Disables Compliance Posture features on the cluster. + DISABLED = 1; + + // Enables Compliance Posture features on the cluster. + ENABLED = 2; + } + + // Defines the details of a compliance standard. + message ComplianceStandard { + // Name of the compliance standard. + optional string standard = 1; + } + + // Defines the enablement mode for Compliance Posture. + optional Mode mode = 1; + + // List of enabled compliance standards. + repeated ComplianceStandard compliance_standards = 2; } // Kubernetes open source beta apis enabled on the cluster. @@ -2356,6 +2466,9 @@ message SecurityPostureConfig { // Applies Security Posture features on the cluster. BASIC = 2; + + // Applies the Security Posture off cluster Enterprise level features. + ENTERPRISE = 3; } // VulnerabilityMode defines enablement mode for vulnerability scanning. @@ -2395,9 +2508,17 @@ message NodeConfigDefaults { // Logging configuration for node pools. NodePoolLoggingConfig logging_config = 3; + // Parameters for containerd customization. + ContainerdConfig containerd_config = 4; + // HostMaintenancePolicy contains the desired maintenance policy for the // Google Compute Engine hosts. HostMaintenancePolicy host_maintenance_policy = 5; + + // NodeKubeletConfig controls the defaults for new node-pools. + // + // Currently only `insecure_kubelet_readonly_port_enabled` can be set here. + NodeKubeletConfig node_kubelet_config = 6; } // node pool configs that apply to all auto-provisioned node pools @@ -2412,6 +2533,11 @@ message NodePoolAutoConfig { // Resource manager tag keys and values to be attached to the nodes // for managing Compute Engine firewalls using Network Firewall Policies. ResourceManagerTags resource_manager_tags = 2; + + // NodeKubeletConfig controls the defaults for autoprovisioned node-pools. + // + // Currently only `insecure_kubelet_readonly_port_enabled` can be set here. + NodeKubeletConfig node_kubelet_config = 3; } // ClusterUpdate describes an update to the cluster. Exactly one update can @@ -2504,7 +2630,12 @@ message ClusterUpdate { // Cluster-level Vertical Pod Autoscaling configuration. VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22; - // The desired private cluster configuration. + // The desired private cluster configuration. master_global_access_config is + // the only field that can be changed via this field. + // See also + // [ClusterUpdate.desired_enable_private_endpoint][google.container.v1beta1.ClusterUpdate.desired_enable_private_endpoint] + // for modifying other fields within + // [PrivateClusterConfig][google.container.v1beta1.PrivateClusterConfig]. PrivateClusterConfig desired_private_cluster_config = 25; // The desired config of Intra-node visibility. @@ -2519,6 +2650,11 @@ message ClusterUpdate { // The desired release channel configuration. ReleaseChannel desired_release_channel = 31; + // The desired private cluster configuration. Has no effect. Use + // [desired_private_cluster_config][google.container.v1beta1.ClusterUpdate.desired_private_cluster_config] + // instead. + PrivateClusterConfig private_cluster_config = 37 [deprecated = true]; + // The desired Cloud TPU configuration. TpuConfig desired_tpu_config = 38; @@ -2658,12 +2794,32 @@ message ClusterUpdate { // Google Compute Engine hosts. HostMaintenancePolicy desired_host_maintenance_policy = 132; + // The desired containerd config for the cluster. + ContainerdConfig desired_containerd_config = 134; + + // Enable/Disable Multi-Networking for the cluster + optional bool desired_enable_multi_networking = 135; + // The desired resource manager tags that apply to all auto-provisioned node // pools in autopilot clusters and node auto-provisioning enabled clusters. ResourceManagerTags desired_node_pool_auto_config_resource_manager_tags = 136; // Specify the details of in-transit encryption. + // Now named inter-node transparent encryption. optional InTransitEncryptionConfig desired_in_transit_encryption_config = 137; + + // Enable/Disable Cilium Clusterwide Network Policy for the cluster. + optional bool desired_enable_cilium_clusterwide_network_policy = 138; + + // Enable/Disable Secret Manager Config. + optional SecretManagerConfig desired_secret_manager_config = 139; + + // The desired node kubelet config for the cluster. + NodeKubeletConfig desired_node_kubelet_config = 141; + + // The desired node kubelet config for all auto-provisioned node pools + // in autopilot clusters and node auto-provisioning enabled clusters. + NodeKubeletConfig desired_node_pool_auto_config_kubelet_config = 142; } // AdditionalPodRangesConfig is the configuration for additional pod secondary @@ -3132,6 +3288,11 @@ message UpdateNodePoolRequest { // Parameters that can be configured on Windows nodes. WindowsNodeConfig windows_node_config = 34; + // A list of hardware accelerators to be attached to each node. + // See https://cloud.google.com/compute/docs/gpus for more information about + // support for GPUs. + repeated AcceleratorConfig accelerators = 35; + // Optional. The desired machine type for nodes in the node pool. // Initiates an upgrade operation that migrates the nodes in the // node pool to the specified machine type. @@ -3152,6 +3313,11 @@ message UpdateNodePoolRequest { // Existing tags will be replaced with new values. ResourceManagerTags resource_manager_tags = 39; + // The desired containerd config for nodes in the node pool. + // Initiates an upgrade operation that recreates the nodes with the new + // config. + ContainerdConfig containerd_config = 40; + // Specifies the configuration of queued provisioning. NodePool.QueuedProvisioning queued_provisioning = 42; } @@ -4669,6 +4835,9 @@ message GPUSharingConfig { // GPUs are time-shared between containers. TIME_SHARING = 1; + + // GPUs are shared between containers with NVIDIA MPS. + MPS = 2; } // The max number of containers that can share a physical GPU. @@ -4979,6 +5148,9 @@ message NetworkConfig { // Specify the details of in-transit encryption. optional InTransitEncryptionConfig in_transit_encryption_config = 20; + + // Whether CiliumClusterWideNetworkPolicy is enabled on this cluster. + optional bool enable_cilium_clusterwide_network_policy = 21; } // GatewayAPIConfig contains the desired config of Gateway API on this cluster. @@ -4992,8 +5164,9 @@ message GatewayAPIConfig { // Gateway API support is disabled CHANNEL_DISABLED = 1; + // Deprecated: use CHANNEL_STANDARD instead. // Gateway API support is enabled, experimental CRDs are installed - CHANNEL_EXPERIMENTAL = 3; + CHANNEL_EXPERIMENTAL = 3 [deprecated = true]; // Gateway API support is enabled, standard CRDs are installed CHANNEL_STANDARD = 4; @@ -5171,6 +5344,10 @@ message DNSConfig { // cluster_dns_domain is the suffix used for all cluster service records. string cluster_dns_domain = 3; + + // Optional. The domain used in Additive VPC scope. + string additive_vpc_scope_dns_domain = 5 + [(google.api.field_behavior) = OPTIONAL]; } // Constraints applied to pods. @@ -5246,12 +5423,68 @@ message DatabaseEncryption { DECRYPTED = 2; } + // Current State of etcd encryption. + enum CurrentState { + // Should never be set + CURRENT_STATE_UNSPECIFIED = 0; + + // Secrets in etcd are encrypted. + CURRENT_STATE_ENCRYPTED = 7; + + // Secrets in etcd are stored in plain text (at etcd level) - this is + // unrelated to Compute Engine level full disk encryption. + CURRENT_STATE_DECRYPTED = 2; + + // Encryption (or re-encryption with a different CloudKMS key) + // of Secrets is in progress. + CURRENT_STATE_ENCRYPTION_PENDING = 3; + + // Encryption (or re-encryption with a different CloudKMS key) of Secrets in + // etcd encountered an error. + CURRENT_STATE_ENCRYPTION_ERROR = 4; + + // De-crypting Secrets to plain text in etcd is in progress. + CURRENT_STATE_DECRYPTION_PENDING = 5; + + // De-crypting Secrets to plain text in etcd encountered an error. + CURRENT_STATE_DECRYPTION_ERROR = 6; + } + + // OperationError records errors seen from CloudKMS keys + // encountered during updates to DatabaseEncryption configuration. + message OperationError { + // CloudKMS key resource that had the error. + string key_name = 1; + + // Description of the error seen during the operation. + string error_message = 2; + + // Time when the CloudKMS error was seen. + google.protobuf.Timestamp timestamp = 3; + } + // Name of CloudKMS key to use for the encryption of secrets in etcd. // Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key string key_name = 1; // The desired state of etcd encryption. State state = 2; + + // Output only. The current state of etcd encryption. + optional CurrentState current_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Keys in use by the cluster for decrypting + // existing objects, in addition to the key in `key_name`. + // + // Each item is a CloudKMS key resource. + repeated string decryption_keys = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Records errors seen during DatabaseEncryption update + // operations. + repeated OperationError last_operation_errors = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Configuration for exporting cluster resource usages. @@ -5857,6 +6090,15 @@ message MonitoringComponentConfig { // Statefulset STATEFULSET = 12; + + // CADVISOR + CADVISOR = 13; + + // KUBELET + KUBELET = 14; + + // NVIDIA Data Center GPU Manager (DCGM) + DCGM = 15; } // Select components to collect metrics. An empty set would disable all @@ -5942,6 +6184,12 @@ message EnterpriseConfig { ClusterTier cluster_tier = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// SecretManagerConfig is config for secret manager enablement. +message SecretManagerConfig { + // Whether the cluster is configured to use secret manager CSI component. + optional bool enabled = 1; +} + // SecondaryBootDisk represents a persistent disk attached to a node // with special configurations based on its mode. message SecondaryBootDisk { @@ -5975,3 +6223,7 @@ enum InTransitEncryptionConfig { // Data in-transit is encrypted using inter-node transparent encryption. IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT = 2; } + +// SecondaryBootDiskUpdateStrategy is a placeholder which will be extended +// in the future to define different options for updating secondary boot disks. +message SecondaryBootDiskUpdateStrategy {} diff --git a/third_party/googleapis/google/dataflow/v1beta3/environment.proto b/third_party/googleapis/google/dataflow/v1beta3/environment.proto index e243c5e79..5f8ba49e1 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/environment.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/environment.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/dataflow/v1beta3/jobs.proto b/third_party/googleapis/google/dataflow/v1beta3/jobs.proto index f961e1c3c..5b2cb3c5a 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/jobs.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/jobs.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/dataflow/v1beta3/messages.proto b/third_party/googleapis/google/dataflow/v1beta3/messages.proto index 9fe098887..76d15bc3e 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/messages.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/messages.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/dataflow/v1beta3/metrics.proto b/third_party/googleapis/google/dataflow/v1beta3/metrics.proto index 554af43fe..7734c8639 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/metrics.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto b/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto index 5335fec66..36a7fea70 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/dataflow/v1beta3/streaming.proto b/third_party/googleapis/google/dataflow/v1beta3/streaming.proto index 17fb84a11..c32745082 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/streaming.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/streaming.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/dataflow/v1beta3/templates.proto b/third_party/googleapis/google/dataflow/v1beta3/templates.proto index 7de72626a..f3bbfbdc3 100644 --- a/third_party/googleapis/google/dataflow/v1beta3/templates.proto +++ b/third_party/googleapis/google/dataflow/v1beta3/templates.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/datastore/admin/v1/datastore_admin.proto b/third_party/googleapis/google/datastore/admin/v1/datastore_admin.proto index 79ca3df68..a8b3f9986 100644 --- a/third_party/googleapis/google/datastore/admin/v1/datastore_admin.proto +++ b/third_party/googleapis/google/datastore/admin/v1/datastore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/datastore/admin/v1/index.proto b/third_party/googleapis/google/datastore/admin/v1/index.proto index 60bb5af5f..6a1d12227 100644 --- a/third_party/googleapis/google/datastore/admin/v1/index.proto +++ b/third_party/googleapis/google/datastore/admin/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/datastore/admin/v1/migration.proto b/third_party/googleapis/google/datastore/admin/v1/migration.proto index e5f7477da..813de87dd 100644 --- a/third_party/googleapis/google/datastore/admin/v1/migration.proto +++ b/third_party/googleapis/google/datastore/admin/v1/migration.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/datastore/admin/v1beta1/datastore_admin.proto b/third_party/googleapis/google/datastore/admin/v1beta1/datastore_admin.proto index 67753dcec..811c2ac5f 100644 --- a/third_party/googleapis/google/datastore/admin/v1beta1/datastore_admin.proto +++ b/third_party/googleapis/google/datastore/admin/v1beta1/datastore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Datastore.Admin.V1Beta1"; -option go_package = "google.golang.org/genproto/googleapis/datastore/admin/v1beta1;admin"; +option go_package = "cloud.google.com/go/datastore/admin/apiv1beta1/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "DatastoreAdminProto"; option java_package = "com.google.datastore.admin.v1beta1"; diff --git a/third_party/googleapis/google/datastore/v1/BUILD.bazel b/third_party/googleapis/google/datastore/v1/BUILD.bazel index 4866d04b6..543d8912d 100644 --- a/third_party/googleapis/google/datastore/v1/BUILD.bazel +++ b/third_party/googleapis/google/datastore/v1/BUILD.bazel @@ -25,6 +25,7 @@ proto_library( "datastore.proto", "entity.proto", "query.proto", + "query_profile.proto", ], deps = [ "//google/api:annotations_proto", @@ -32,6 +33,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:routing_proto", "//google/type:latlng_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:wrappers_proto", @@ -121,7 +123,7 @@ load( go_proto_library( name = "datastore_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/datastore/v1", + importpath = "cloud.google.com/go/datastore/apiv1/datastorepb", protos = [":datastore_proto"], deps = [ "//google/api:annotations_go_proto", diff --git a/third_party/googleapis/google/datastore/v1/aggregation_result.proto b/third_party/googleapis/google/datastore/v1/aggregation_result.proto index 91c521716..e31052c0d 100644 --- a/third_party/googleapis/google/datastore/v1/aggregation_result.proto +++ b/third_party/googleapis/google/datastore/v1/aggregation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import "google/datastore/v1/query.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "AggregationResultProto"; option java_package = "com.google.datastore.v1"; diff --git a/third_party/googleapis/google/datastore/v1/datastore.proto b/third_party/googleapis/google/datastore/v1/datastore.proto index 533988d77..9c44501af 100644 --- a/third_party/googleapis/google/datastore/v1/datastore.proto +++ b/third_party/googleapis/google/datastore/v1/datastore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,10 +23,11 @@ import "google/api/routing.proto"; import "google/datastore/v1/aggregation_result.proto"; import "google/datastore/v1/entity.proto"; import "google/datastore/v1/query.proto"; +import "google/datastore/v1/query_profile.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "DatastoreProto"; option java_package = "com.google.datastore.v1"; @@ -172,6 +173,14 @@ message LookupRequest { // Required. Keys of entities to look up. repeated Key keys = 3 [(google.api.field_behavior) = REQUIRED]; + + // The properties to return. Defaults to returning all properties. + // + // If this field is set and an entity has a property not referenced in the + // mask, it will be absent from [LookupResponse.found.entity.properties][]. + // + // The entity's key is always returned. + PropertyMask property_mask = 5; } // The response for [Datastore.Lookup][google.datastore.v1.Datastore.Lookup]. @@ -232,6 +241,17 @@ message RunQueryRequest { // The GQL query to run. This query must be a non-aggregation query. GqlQuery gql_query = 7; } + + // The properties to return. + // This field must not be set for a projection query. + // + // See + // [LookupRequest.property_mask][google.datastore.v1.LookupRequest.property_mask]. + PropertyMask property_mask = 10; + + // Optional. Explain options for the query. If set, additional query + // statistics will be returned. If not, only query results will be returned. + ExplainOptions explain_options = 12 [(google.api.field_behavior) = OPTIONAL]; } // The response for @@ -251,6 +271,11 @@ message RunQueryResponse { // was set in // [RunQueryRequest.read_options][google.datastore.v1.RunQueryRequest.read_options]. bytes transaction = 5; + + // Query explain metrics. This is only present when the + // [RunQueryRequest.explain_options][google.datastore.v1.RunQueryRequest.explain_options] + // is provided, and it is sent only once with the last response in the stream. + ExplainMetrics explain_metrics = 9; } // The request for @@ -282,6 +307,10 @@ message RunAggregationQueryRequest { // The GQL query to run. This query must be an aggregation query. GqlQuery gql_query = 7; } + + // Optional. Explain options for the query. If set, additional query + // statistics will be returned. If not, only query results will be returned. + ExplainOptions explain_options = 11 [(google.api.field_behavior) = OPTIONAL]; } // The response for @@ -301,6 +330,11 @@ message RunAggregationQueryResponse { // was set in // [RunAggregationQueryRequest.read_options][google.datastore.v1.RunAggregationQueryRequest.read_options]. bytes transaction = 5; + + // Query explain metrics. This is only present when the + // [RunAggregationQueryRequest.explain_options][google.datastore.v1.RunAggregationQueryRequest.explain_options] + // is provided, and it is sent only once with the last response in the stream. + ExplainMetrics explain_metrics = 9; } // The request for @@ -507,6 +541,16 @@ message Mutation { // mutation conflicts. google.protobuf.Timestamp update_time = 11; } + + // The properties to write in this mutation. + // None of the properties in the mask may have a reserved name, except for + // `__key__`. + // This field is ignored for `delete`. + // + // If the entity already exists, only properties referenced in the mask are + // updated, others are left untouched. + // Properties referenced in the mask but not in the entity are deleted. + PropertyMask property_mask = 9; } // The result of applying a mutation. @@ -536,6 +580,23 @@ message MutationResult { bool conflict_detected = 5; } +// The set of arbitrarily nested property paths used to restrict an operation to +// only a subset of properties in an entity. +message PropertyMask { + // The paths to the properties covered by this mask. + // + // A path is a list of property names separated by dots (`.`), for example + // `foo.bar` means the property `bar` inside the entity property `foo` inside + // the entity associated with this path. + // + // If a property name contains a dot `.` or a backslash `\`, then that + // name must be escaped. + // + // A path must not be empty, and may not reference a value inside an + // [array value][google.datastore.v1.Value.array_value]. + repeated string paths = 1; +} + // The options shared by read requests. message ReadOptions { // The possible values for read consistencies. diff --git a/third_party/googleapis/google/datastore/v1/entity.proto b/third_party/googleapis/google/datastore/v1/entity.proto index d80dd9093..d9742d68d 100644 --- a/third_party/googleapis/google/datastore/v1/entity.proto +++ b/third_party/googleapis/google/datastore/v1/entity.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "EntityProto"; option java_package = "com.google.datastore.v1"; diff --git a/third_party/googleapis/google/datastore/v1/query.proto b/third_party/googleapis/google/datastore/v1/query.proto index d1f0f8d07..5ec0eea61 100644 --- a/third_party/googleapis/google/datastore/v1/query.proto +++ b/third_party/googleapis/google/datastore/v1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "QueryProto"; option java_package = "com.google.datastore.v1"; diff --git a/third_party/googleapis/google/datastore/v1/query_profile.proto b/third_party/googleapis/google/datastore/v1/query_profile.proto new file mode 100644 index 000000000..e00a28e3c --- /dev/null +++ b/third_party/googleapis/google/datastore/v1/query_profile.proto @@ -0,0 +1,91 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.datastore.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.Datastore.V1"; +option go_package = "cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb"; +option java_multiple_files = true; +option java_outer_classname = "QueryProfileProto"; +option java_package = "com.google.datastore.v1"; +option php_namespace = "Google\\Cloud\\Datastore\\V1"; +option ruby_package = "Google::Cloud::Datastore::V1"; + +// Specification of the Datastore Query Profile fields. + +// Explain options for the query. +message ExplainOptions { + // Optional. Whether to execute this query. + // + // When false (the default), the query will be planned, returning only + // metrics from the planning stages. + // + // When true, the query will be planned and executed, returning the full + // query results along with both planning and execution stage metrics. + bool analyze = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Explain metrics for the query. +message ExplainMetrics { + // Planning phase information for the query. + PlanSummary plan_summary = 1; + + // Aggregated stats from the execution of the query. Only present when + // [ExplainOptions.analyze][google.datastore.v1.ExplainOptions.analyze] is set + // to true. + ExecutionStats execution_stats = 2; +} + +// Planning phase information for the query. +message PlanSummary { + // The indexes selected for the query. For example: + // [ + // {"query_scope": "Collection", "properties": "(foo ASC, __name__ ASC)"}, + // {"query_scope": "Collection", "properties": "(bar ASC, __name__ ASC)"} + // ] + repeated google.protobuf.Struct indexes_used = 1; +} + +// Execution statistics for the query. +message ExecutionStats { + // Total number of results returned, including documents, projections, + // aggregation results, keys. + int64 results_returned = 1; + + // Total time to execute the query in the backend. + google.protobuf.Duration execution_duration = 3; + + // Total billable read operations. + int64 read_operations = 4; + + // Debugging statistics from the execution of the query. Note that the + // debugging stats are subject to change as Firestore evolves. It could + // include: + // { + // "indexes_entries_scanned": "1000", + // "documents_scanned": "20", + // "billing_details" : { + // "documents_billable": "20", + // "index_entries_billable": "1000", + // "min_query_cost": "0" + // } + // } + google.protobuf.Struct debug_stats = 5; +} diff --git a/third_party/googleapis/google/datastore/v1beta3/datastore.proto b/third_party/googleapis/google/datastore/v1beta3/datastore.proto index 1dadfda56..377a055e6 100644 --- a/third_party/googleapis/google/datastore/v1beta3/datastore.proto +++ b/third_party/googleapis/google/datastore/v1beta3/datastore.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import "google/datastore/v1beta3/entity.proto"; import "google/datastore/v1beta3/query.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1Beta3"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1beta3;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1beta3/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "DatastoreProto"; option java_package = "com.google.datastore.v1beta3"; diff --git a/third_party/googleapis/google/datastore/v1beta3/entity.proto b/third_party/googleapis/google/datastore/v1beta3/entity.proto index 5d2fca2fc..cc8452a5b 100644 --- a/third_party/googleapis/google/datastore/v1beta3/entity.proto +++ b/third_party/googleapis/google/datastore/v1beta3/entity.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1Beta3"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1beta3;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1beta3/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "EntityProto"; option java_package = "com.google.datastore.v1beta3"; diff --git a/third_party/googleapis/google/datastore/v1beta3/query.proto b/third_party/googleapis/google/datastore/v1beta3/query.proto index 4a7c5b6d4..74b291553 100644 --- a/third_party/googleapis/google/datastore/v1beta3/query.proto +++ b/third_party/googleapis/google/datastore/v1beta3/query.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; option csharp_namespace = "Google.Cloud.Datastore.V1Beta3"; -option go_package = "google.golang.org/genproto/googleapis/datastore/v1beta3;datastore"; +option go_package = "cloud.google.com/go/datastore/apiv1beta3/datastorepb;datastorepb"; option java_multiple_files = true; option java_outer_classname = "QueryProto"; option java_package = "com.google.datastore.v1beta3"; diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/apt_artifact.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/apt_artifact.proto index 003a2b516..04c36d0b2 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/apt_artifact.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/apt_artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/artifact.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/artifact.proto index 7955f5f8d..9f5f61cec 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/artifact.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/file.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/file.proto index 695442751..de9258884 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/file.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/file.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/package.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/package.proto index 1a604e399..d6ec4b440 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/package.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/package.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/repository.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/repository.proto index d8b4558a3..33ae7de45 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/repository.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/repository.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/service.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/service.proto index 574f509d3..882b8c714 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/service.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/settings.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/settings.proto index 41b8d873a..e37bfc98b 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/settings.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/settings.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/tag.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/tag.proto index bd4be6b14..e4a59826f 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/tag.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/tag.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/version.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/version.proto index 684c1e4dc..13f22dcf3 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/version.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/version.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/vpcsc_config.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/vpcsc_config.proto index 16cbe5f37..00e2aa714 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/vpcsc_config.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/vpcsc_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1/yum_artifact.proto b/third_party/googleapis/google/devtools/artifactregistry/v1/yum_artifact.proto index 015696b6a..5af58030b 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1/yum_artifact.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1/yum_artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/apt_artifact.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/apt_artifact.proto index 4ac8f8f43..d3fb3f7ec 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/apt_artifact.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/apt_artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/file.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/file.proto index 645ee7ebb..d6fc7d33f 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/file.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/file.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/package.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/package.proto index 0209490ff..96102ca28 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/package.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/package.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/repository.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/repository.proto index 903ef0290..0d48ac150 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/repository.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/repository.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/service.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/service.proto index 976bd6700..d8ab4707b 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/service.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/settings.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/settings.proto index 111556f11..41ceb53cf 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/settings.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/settings.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/tag.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/tag.proto index c969fee44..6b4debf16 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/tag.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/tag.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/version.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/version.proto index a9635c7f4..e261b880f 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/version.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/version.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/yum_artifact.proto b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/yum_artifact.proto index a4467411d..5ac405cb6 100644 --- a/third_party/googleapis/google/devtools/artifactregistry/v1beta2/yum_artifact.proto +++ b/third_party/googleapis/google/devtools/artifactregistry/v1beta2/yum_artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/build/v1/build_events.proto b/third_party/googleapis/google/devtools/build/v1/build_events.proto index 6e144f23c..43cf5e275 100644 --- a/third_party/googleapis/google/devtools/build/v1/build_events.proto +++ b/third_party/googleapis/google/devtools/build/v1/build_events.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/build/v1/build_status.proto b/third_party/googleapis/google/devtools/build/v1/build_status.proto index 012424282..93a525f13 100644 --- a/third_party/googleapis/google/devtools/build/v1/build_status.proto +++ b/third_party/googleapis/google/devtools/build/v1/build_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/build/v1/publish_build_event.proto b/third_party/googleapis/google/devtools/build/v1/publish_build_event.proto index b9e32f817..641ba5af2 100644 --- a/third_party/googleapis/google/devtools/build/v1/publish_build_event.proto +++ b/third_party/googleapis/google/devtools/build/v1/publish_build_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudbuild/BUILD.bazel b/third_party/googleapis/google/devtools/cloudbuild/BUILD.bazel index 4591cc4ba..f21a7bdab 100644 --- a/third_party/googleapis/google/devtools/cloudbuild/BUILD.bazel +++ b/third_party/googleapis/google/devtools/cloudbuild/BUILD.bazel @@ -23,7 +23,7 @@ ruby_cloud_gapic_library( "ruby-cloud-gem-name=google-cloud-build", "ruby-cloud-env-prefix=CLOUD_BUILD", "ruby-cloud-wrapper-of=v1:0.26", - "ruby-cloud-product-url=https://cloud.google.com/cloud-build", + "ruby-cloud-product-url=https://cloud.google.com/build/docs", "ruby-cloud-api-id=cloudbuild.googleapis.com", "ruby-cloud-api-shortname=cloudbuild", ], diff --git a/third_party/googleapis/google/devtools/cloudbuild/v1/BUILD.bazel b/third_party/googleapis/google/devtools/cloudbuild/v1/BUILD.bazel index b20aae9aa..d9fcb36f4 100644 --- a/third_party/googleapis/google/devtools/cloudbuild/v1/BUILD.bazel +++ b/third_party/googleapis/google/devtools/cloudbuild/v1/BUILD.bazel @@ -301,7 +301,7 @@ ruby_cloud_gapic_library( "ruby-cloud-api-shortname=cloudbuild", "ruby-cloud-env-prefix=CLOUD_BUILD", "ruby-cloud-gem-name=google-cloud-build-v1", - "ruby-cloud-product-url=https://cloud.google.com/cloud-build", + "ruby-cloud-product-url=https://cloud.google.com/build/docs", ], grpc_service_config = "cloudbuild_grpc_service_config.json", rest_numeric_enums = True, diff --git a/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto b/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto index b4064bd15..c671471ac 100644 --- a/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto +++ b/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudbuild/v2/BUILD.bazel b/third_party/googleapis/google/devtools/cloudbuild/v2/BUILD.bazel index a26a30884..70f49ec5f 100644 --- a/third_party/googleapis/google/devtools/cloudbuild/v2/BUILD.bazel +++ b/third_party/googleapis/google/devtools/cloudbuild/v2/BUILD.bazel @@ -231,7 +231,7 @@ php_gapic_library( name = "cloudbuild_php_gapic", srcs = [":cloudbuild_proto_with_info"], grpc_service_config = "cloudbuild_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudbuild_v2.yaml", transport = "grpc+rest", @@ -305,7 +305,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-build-v2", "ruby-cloud-env-prefix=CLOUD_BUILD", - "ruby-cloud-product-url=https://cloud.google.com/cloud-build", + "ruby-cloud-product-url=https://cloud.google.com/build/docs", "ruby-cloud-api-id=cloudbuild.googleapis.com", "ruby-cloud-api-shortname=cloudbuild", ], diff --git a/third_party/googleapis/google/devtools/cloudbuild/v2/cloudbuild.proto b/third_party/googleapis/google/devtools/cloudbuild/v2/cloudbuild.proto index 8a2fb350d..8a5c2093a 100644 --- a/third_party/googleapis/google/devtools/cloudbuild/v2/cloudbuild.proto +++ b/third_party/googleapis/google/devtools/cloudbuild/v2/cloudbuild.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudbuild/v2/repositories.proto b/third_party/googleapis/google/devtools/cloudbuild/v2/repositories.proto index 41583e70d..d8e4a4e31 100644 --- a/third_party/googleapis/google/devtools/cloudbuild/v2/repositories.proto +++ b/third_party/googleapis/google/devtools/cloudbuild/v2/repositories.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; import "google/api/resource.proto"; +import "google/devtools/cloudbuild/v2/cloudbuild.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -198,8 +199,8 @@ service RepositoryManager { } } -// A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Server or -// GitLab. +// A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Data Center, +// Bitbucket Cloud or GitLab. message Connection { option (google.api.resource) = { type: "cloudbuild.googleapis.com/Connection" @@ -232,6 +233,12 @@ message Connection { // Configuration for connections to gitlab.com or an instance of GitLab // Enterprise. GitLabConfig gitlab_config = 7; + + // Configuration for connections to Bitbucket Data Center. + BitbucketDataCenterConfig bitbucket_data_center_config = 8; + + // Configuration for connections to Bitbucket Cloud. + BitbucketCloudConfig bitbucket_cloud_config = 9; } // Output only. Installation state of the Connection. @@ -414,6 +421,76 @@ message GitLabConfig { string server_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Configuration for connections to Bitbucket Data Center. +message BitbucketDataCenterConfig { + // Required. The URI of the Bitbucket Data Center instance or cluster this + // connection is for. + string host_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. SecretManager resource containing the webhook secret + // used to verify webhook events, formatted as + // `projects/*/secrets/*/versions/*`. + string webhook_secret_secret_version = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Required. A http access token with the `REPO_READ` access. + UserCredential read_authorizer_credential = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A http access token with the `REPO_ADMIN` scope access. + UserCredential authorizer_credential = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Configuration for using Service Directory to privately connect to + // a Bitbucket Data Center. This should only be set if the Bitbucket Data + // Center is hosted on-premises and not reachable by public internet. If this + // field is left empty, calls to the Bitbucket Data Center will be made over + // the public internet. + ServiceDirectoryConfig service_directory_config = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SSL certificate to use for requests to the Bitbucket Data Center. + string ssl_ca = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Version of the Bitbucket Data Center running on the + // `host_uri`. + string server_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Configuration for connections to Bitbucket Cloud. +message BitbucketCloudConfig { + // Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud + // Platform. + string workspace = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. SecretManager resource containing the webhook secret used to + // verify webhook events, formatted as `projects/*/secrets/*/versions/*`. + string webhook_secret_secret_version = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + + // Required. An access token with the `repository` access. It can be either a + // workspace, project or repository access token. It's recommended to use a + // system account to generate the credentials. + UserCredential read_authorizer_credential = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. An access token with the `webhook`, `repository`, + // `repository:admin` and `pullrequest` scope access. It can be either a + // workspace, project or repository access token. It's recommended to use a + // system account to generate these credentials. + UserCredential authorizer_credential = 4 + [(google.api.field_behavior) = REQUIRED]; +} + // ServiceDirectoryConfig represents Service Directory configuration for a // connection. message ServiceDirectoryConfig { diff --git a/third_party/googleapis/google/devtools/clouddebugger/v2/controller.proto b/third_party/googleapis/google/devtools/clouddebugger/v2/controller.proto index 47c3bfc0d..213774be4 100644 --- a/third_party/googleapis/google/devtools/clouddebugger/v2/controller.proto +++ b/third_party/googleapis/google/devtools/clouddebugger/v2/controller.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/clouddebugger/v2/data.proto b/third_party/googleapis/google/devtools/clouddebugger/v2/data.proto index 9ab7368c9..29414ec19 100644 --- a/third_party/googleapis/google/devtools/clouddebugger/v2/data.proto +++ b/third_party/googleapis/google/devtools/clouddebugger/v2/data.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/clouddebugger/v2/debugger.proto b/third_party/googleapis/google/devtools/clouddebugger/v2/debugger.proto index 47759ed87..fff259811 100644 --- a/third_party/googleapis/google/devtools/clouddebugger/v2/debugger.proto +++ b/third_party/googleapis/google/devtools/clouddebugger/v2/debugger.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/common.proto b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/common.proto index 70280825a..711abfc97 100644 --- a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/common.proto +++ b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto index c071a1a45..b37cdc106 100644 --- a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto +++ b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto index e34d677b1..016e05bfd 100644 --- a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto +++ b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto index f7ecb7ff9..7e3d5f4e1 100644 --- a/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto +++ b/third_party/googleapis/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudprofiler/BUILD.bazel b/third_party/googleapis/google/devtools/cloudprofiler/BUILD.bazel index 6f89aebfb..fd8553a8a 100644 --- a/third_party/googleapis/google/devtools/cloudprofiler/BUILD.bazel +++ b/third_party/googleapis/google/devtools/cloudprofiler/BUILD.bazel @@ -23,7 +23,7 @@ ruby_cloud_gapic_library( "ruby-cloud-gem-name=google-cloud-profiler", "ruby-cloud-env-prefix=PROFILER", "ruby-cloud-wrapper-of=v2:0.9", - "ruby-cloud-product-url=https://cloud.google.com/profiler/", + "ruby-cloud-product-url=https://cloud.google.com/profiler/docs", "ruby-cloud-api-id=cloudprofiler.googleapis.com", "ruby-cloud-api-shortname=cloudprofiler", ], diff --git a/third_party/googleapis/google/devtools/cloudprofiler/v2/BUILD.bazel b/third_party/googleapis/google/devtools/cloudprofiler/v2/BUILD.bazel index a401763e1..52bac4bae 100644 --- a/third_party/googleapis/google/devtools/cloudprofiler/v2/BUILD.bazel +++ b/third_party/googleapis/google/devtools/cloudprofiler/v2/BUILD.bazel @@ -299,7 +299,7 @@ ruby_cloud_gapic_library( "ruby-cloud-api-shortname=cloudprofiler", "ruby-cloud-env-prefix=PROFILER", "ruby-cloud-gem-name=google-cloud-profiler-v2", - "ruby-cloud-product-url=https://cloud.google.com/profiler/", + "ruby-cloud-product-url=https://cloud.google.com/profiler/docs", ], grpc_service_config = "cloudprofiler_grpc_service_config.json", rest_numeric_enums = True, diff --git a/third_party/googleapis/google/devtools/cloudprofiler/v2/profiler.proto b/third_party/googleapis/google/devtools/cloudprofiler/v2/profiler.proto index 8e905f6d8..2885a215f 100644 --- a/third_party/googleapis/google/devtools/cloudprofiler/v2/profiler.proto +++ b/third_party/googleapis/google/devtools/cloudprofiler/v2/profiler.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudtrace/v1/trace.proto b/third_party/googleapis/google/devtools/cloudtrace/v1/trace.proto index 9437c57b5..d7f4f52d5 100644 --- a/third_party/googleapis/google/devtools/cloudtrace/v1/trace.proto +++ b/third_party/googleapis/google/devtools/cloudtrace/v1/trace.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudtrace/v2/trace.proto b/third_party/googleapis/google/devtools/cloudtrace/v2/trace.proto index ba56539fc..03edc0c41 100644 --- a/third_party/googleapis/google/devtools/cloudtrace/v2/trace.proto +++ b/third_party/googleapis/google/devtools/cloudtrace/v2/trace.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/cloudtrace/v2/tracing.proto b/third_party/googleapis/google/devtools/cloudtrace/v2/tracing.proto index c9dafc0d2..65f72724b 100644 --- a/third_party/googleapis/google/devtools/cloudtrace/v2/tracing.proto +++ b/third_party/googleapis/google/devtools/cloudtrace/v2/tracing.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/containeranalysis/v1/BUILD.bazel b/third_party/googleapis/google/devtools/containeranalysis/v1/BUILD.bazel index 2d0788ec3..735d0ceee 100644 --- a/third_party/googleapis/google/devtools/containeranalysis/v1/BUILD.bazel +++ b/third_party/googleapis/google/devtools/containeranalysis/v1/BUILD.bazel @@ -21,6 +21,8 @@ load( "csharp_gapic_library", "csharp_grpc_library", "csharp_proto_library", + "go_gapic_assembly_pkg", + "go_gapic_library", "go_proto_library", "java_gapic_assembly_gradle_pkg", "java_gapic_library", @@ -138,7 +140,7 @@ java_gapic_assembly_gradle_pkg( go_proto_library( name = "containeranalysis_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1", + importpath = "cloud.google.com/go/containeranalysis/apiv1/containeranalysispb", protos = [":containeranalysis_proto"], deps = [ "//google/api:annotations_go_proto", @@ -147,31 +149,31 @@ go_proto_library( ], ) -# go_gapic_library( -# name = "containeranalysis_go_gapic", -# srcs = [":containeranalysis_proto_with_info"], -# grpc_service_config = "containeranalysis_grpc_service_config.json", -# importpath = "cloud.google.com/go/devtools/containeranalysis/apiv1;containeranalysis", -# metadata = True, -# service_yaml = "containeranalysis_v1.yaml", -# deps = [ -# ":containeranalysis_go_proto", -# "//google/iam/v1:iam_go_proto", -# "//grafeas/v1:common_go_proto", -# ], -# ) - -# # Open Source Packages -# go_gapic_assembly_pkg( -# name = "gapi-cloud-devtools-containeranalysis-v1-go", -# deps = [ -# ":containeranalysis_go_gapic", -# ":containeranalysis_go_gapic_srcjar-metadata.srcjar", -# ":containeranalysis_go_gapic_srcjar-snippets.srcjar", -# ":containeranalysis_go_gapic_srcjar-test.srcjar", -# ":containeranalysis_go_proto", -# ], -# ) +go_gapic_library( + name = "containeranalysis_go_gapic", + srcs = [":containeranalysis_proto_with_info"], + grpc_service_config = "containeranalysis_grpc_service_config.json", + importpath = "cloud.google.com/go/containeranalysis/apiv1;containeranalysis", + metadata = True, + service_yaml = "containeranalysis_v1.yaml", + deps = [ + ":containeranalysis_go_proto", + "//google/iam/v1:iam_go_proto", + "//grafeas/v1:common_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-devtools-containeranalysis-v1-go", + deps = [ + ":containeranalysis_go_gapic", + ":containeranalysis_go_gapic_srcjar-metadata.srcjar", + ":containeranalysis_go_gapic_srcjar-snippets.srcjar", + ":containeranalysis_go_gapic_srcjar-test.srcjar", + ":containeranalysis_go_proto", + ], +) py_gapic_library( name = "containeranalysis_py_gapic", @@ -218,7 +220,7 @@ php_gapic_library( name = "containeranalysis_php_gapic", srcs = [":containeranalysis_proto_with_info"], grpc_service_config = "containeranalysis_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "containeranalysis_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/devtools/containeranalysis/v1/containeranalysis.proto b/third_party/googleapis/google/devtools/containeranalysis/v1/containeranalysis.proto index c1bda557c..21ce24a1e 100644 --- a/third_party/googleapis/google/devtools/containeranalysis/v1/containeranalysis.proto +++ b/third_party/googleapis/google/devtools/containeranalysis/v1/containeranalysis.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ import "google/iam/v1/policy.proto"; import "grafeas/v1/severity.proto"; option csharp_namespace = "Google.Cloud.DevTools.ContainerAnalysis.V1"; -option go_package = "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1;containeranalysis"; +option go_package = "cloud.google.com/go/containeranalysis/apiv1/containeranalysispb;containeranalysispb"; option java_multiple_files = true; option java_package = "com.google.containeranalysis.v1"; option objc_class_prefix = "GCA"; diff --git a/third_party/googleapis/google/devtools/containeranalysis/v1beta1/containeranalysis.proto b/third_party/googleapis/google/devtools/containeranalysis/v1beta1/containeranalysis.proto index 4d6d45b0c..a86ce021f 100644 --- a/third_party/googleapis/google/devtools/containeranalysis/v1beta1/containeranalysis.proto +++ b/third_party/googleapis/google/devtools/containeranalysis/v1beta1/containeranalysis.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/remoteworkers/v1test2/bots.proto b/third_party/googleapis/google/devtools/remoteworkers/v1test2/bots.proto index fc5024bcd..feff8ccfe 100644 --- a/third_party/googleapis/google/devtools/remoteworkers/v1test2/bots.proto +++ b/third_party/googleapis/google/devtools/remoteworkers/v1test2/bots.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/remoteworkers/v1test2/command.proto b/third_party/googleapis/google/devtools/remoteworkers/v1test2/command.proto index 16d5ae8e8..26766df50 100644 --- a/third_party/googleapis/google/devtools/remoteworkers/v1test2/command.proto +++ b/third_party/googleapis/google/devtools/remoteworkers/v1test2/command.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/remoteworkers/v1test2/worker.proto b/third_party/googleapis/google/devtools/remoteworkers/v1test2/worker.proto index cb433fc41..f52c4a401 100644 --- a/third_party/googleapis/google/devtools/remoteworkers/v1test2/worker.proto +++ b/third_party/googleapis/google/devtools/remoteworkers/v1test2/worker.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/action.proto b/third_party/googleapis/google/devtools/resultstore/v2/action.proto index acdb61596..19a4a710d 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/action.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/action.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/common.proto b/third_party/googleapis/google/devtools/resultstore/v2/common.proto index f5ba98833..af989ae93 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/common.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/configuration.proto b/third_party/googleapis/google/devtools/resultstore/v2/configuration.proto index 11912f4d9..8d67cf680 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/configuration.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/configuration.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/configured_target.proto b/third_party/googleapis/google/devtools/resultstore/v2/configured_target.proto index c034dc134..4746c45c6 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/configured_target.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/configured_target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/coverage.proto b/third_party/googleapis/google/devtools/resultstore/v2/coverage.proto index 085eaaba9..3816ee6cf 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/coverage.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/coverage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/coverage_summary.proto b/third_party/googleapis/google/devtools/resultstore/v2/coverage_summary.proto index 9e88321c4..8d3cf6dd1 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/coverage_summary.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/coverage_summary.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/download_metadata.proto b/third_party/googleapis/google/devtools/resultstore/v2/download_metadata.proto index ce1cae38a..069e5216c 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/download_metadata.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/download_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/file.proto b/third_party/googleapis/google/devtools/resultstore/v2/file.proto index f0a36deab..f30994f8b 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/file.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/file.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/file_processing_error.proto b/third_party/googleapis/google/devtools/resultstore/v2/file_processing_error.proto index f4ecbd3d7..431b257cd 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/file_processing_error.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/file_processing_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/file_set.proto b/third_party/googleapis/google/devtools/resultstore/v2/file_set.proto index bee4e4fc5..c664d8187 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/file_set.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/file_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/invocation.proto b/third_party/googleapis/google/devtools/resultstore/v2/invocation.proto index e577ad96b..cd8b777d3 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/invocation.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/invocation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/resultstore_download.proto b/third_party/googleapis/google/devtools/resultstore/v2/resultstore_download.proto index 5271dd6b7..fc5d554dd 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/resultstore_download.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/resultstore_download.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/resultstore_file_download.proto b/third_party/googleapis/google/devtools/resultstore/v2/resultstore_file_download.proto index 15d8321b2..b20115e9c 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/resultstore_file_download.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/resultstore_file_download.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/resultstore_upload.proto b/third_party/googleapis/google/devtools/resultstore/v2/resultstore_upload.proto index 87c45d6e3..52c5375cc 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/resultstore_upload.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/resultstore_upload.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/target.proto b/third_party/googleapis/google/devtools/resultstore/v2/target.proto index f00d562d9..539404ad5 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/target.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/test_suite.proto b/third_party/googleapis/google/devtools/resultstore/v2/test_suite.proto index ef2e167ad..b01247468 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/test_suite.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/test_suite.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/resultstore/v2/upload_metadata.proto b/third_party/googleapis/google/devtools/resultstore/v2/upload_metadata.proto index f526df64f..c5946fa3e 100644 --- a/third_party/googleapis/google/devtools/resultstore/v2/upload_metadata.proto +++ b/third_party/googleapis/google/devtools/resultstore/v2/upload_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/source/v1/source_context.proto b/third_party/googleapis/google/devtools/source/v1/source_context.proto index 48e01de10..57c3c4ebd 100644 --- a/third_party/googleapis/google/devtools/source/v1/source_context.proto +++ b/third_party/googleapis/google/devtools/source/v1/source_context.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto b/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto index 3d4e1678c..3cb7d00a0 100644 --- a/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto +++ b/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/testing/v1/adb_service.proto b/third_party/googleapis/google/devtools/testing/v1/adb_service.proto index 5608d0ce8..d546250a0 100644 --- a/third_party/googleapis/google/devtools/testing/v1/adb_service.proto +++ b/third_party/googleapis/google/devtools/testing/v1/adb_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/testing/v1/application_details.proto b/third_party/googleapis/google/devtools/testing/v1/application_details.proto index 3a7223ae1..72aedc02a 100644 --- a/third_party/googleapis/google/devtools/testing/v1/application_details.proto +++ b/third_party/googleapis/google/devtools/testing/v1/application_details.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/devtools/testing/v1/direct_access_service.proto b/third_party/googleapis/google/devtools/testing/v1/direct_access_service.proto index 8fb12da7e..d3975c3f0 100644 --- a/third_party/googleapis/google/devtools/testing/v1/direct_access_service.proto +++ b/third_party/googleapis/google/devtools/testing/v1/direct_access_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -273,7 +273,7 @@ message DeviceSession { oneof expiration { // Optional. The amount of time that a device will be initially allocated // for. This can eventually be extended with the UpdateDeviceSession RPC. - // Default: 30 minutes. + // Default: 15 minutes. google.protobuf.Duration ttl = 13 [(google.api.field_behavior) = OPTIONAL]; // Optional. If the device is still in use at this time, any connections diff --git a/third_party/googleapis/google/devtools/testing/v1/test_environment_discovery.proto b/third_party/googleapis/google/devtools/testing/v1/test_environment_discovery.proto index 7de1b2142..490d1bc86 100644 --- a/third_party/googleapis/google/devtools/testing/v1/test_environment_discovery.proto +++ b/third_party/googleapis/google/devtools/testing/v1/test_environment_discovery.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -273,6 +273,11 @@ message PerAndroidVersionInfo { // The number of online devices for an Android version. DeviceCapacity device_capacity = 2; + // Output only. The estimated wait time for a single interactive device + // session using Direct Access. + google.protobuf.Duration interactive_device_availability_estimate = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Identifies supported clients for DirectAccess for this Android // version. DirectAccessVersionInfo direct_access_version_info = 4 diff --git a/third_party/googleapis/google/devtools/testing/v1/test_execution.proto b/third_party/googleapis/google/devtools/testing/v1/test_execution.proto index 34ed19ea7..4e48d61b0 100644 --- a/third_party/googleapis/google/devtools/testing/v1/test_execution.proto +++ b/third_party/googleapis/google/devtools/testing/v1/test_execution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/example/endpointsapis/BUILD.bazel b/third_party/googleapis/google/example/endpointsapis/BUILD.bazel deleted file mode 100644 index a87c57fec..000000000 --- a/third_party/googleapis/google/example/endpointsapis/BUILD.bazel +++ /dev/null @@ -1 +0,0 @@ -exports_files(glob(["*.yaml"])) diff --git a/third_party/googleapis/google/example/endpointsapis/README.md b/third_party/googleapis/google/example/endpointsapis/README.md deleted file mode 100644 index 6ea695980..000000000 --- a/third_party/googleapis/google/example/endpointsapis/README.md +++ /dev/null @@ -1,161 +0,0 @@ -# Service Infrastructure Codelab - -This is an example API that demonstrates how to design a networked API following -[API Design Guide](https://cloud.google.com/apis/design), implement the API -as an [App Engine](https://cloud.google.com/app-engine) app, -and integrate the API with Google Cloud's -[Service Infrastructure](https://cloud.google.com/service-infrastructure). -It is intended for service providers who want to build services using -Google Cloud. - -NOTE: This API is also used for Service Infrastructure reference documentation. - -## Glossary - -For terminology used in this example, see -[API Glossary](https://cloud.google.com/apis/design/glossary). - -## Installation - -You need to install [`gcloud`](https://cloud.google.com/sdk/docs), -[`go`](https://golang.org/doc/install), -[`protoc`](https://grpc.io/docs/protoc-installation/), -and [`oauth2l`](https://github.com/google/oauth2l) tools on your local machine -in order to build this example. - -Run the following commands to install additional Go packages that will be used -in this example API: - -```shell -go get golang.org/x/oauth2/google -go get google.golang.org/api/servicecontrol/v2 -``` - -## Introduction - -This API uses a proto file to define the API surface, and a YAML file to -configure the API service. The API backend is built as an App Engine app -written in Go, and uses the -[Service Control API](https://cloud.google.com/service-control) for -deeper integration with Service Infrastructure and Google Cloud. - -This example API uses project id `endpointsapis` and service name -`endpointsapis.appspot.com`. The name `endpointsapis` has no special meaning. -If you want to build this example API by yourself, you must use your own -project id and service name. For how to create a project, see -[Getting Started](https://cloud.google.com/apis/docs/getting-started#creating_a_google_project). - -WARNING: Some features used in this example are private, and you need to join -private preview programs to use such features. - -### Design - -This example API design follows Google's -[API Design Guide](https://cloud.google.com/apis/design). It uses a proto -file, `./v1/workspace.proto`, to define the gRPC API surface, and uses -[`google.api.http`](https://aip.dev/127) annotation to define the REST -API mapping. - -For more information, see the proto definition and -[API Design Guide](https://cloud.google.com/apis/design). - -### Configuration - -To build a networked API and expose it to consumers, you need to configure it -as an API service. The configuration includes the API title, the network -addresses, the authentication requirements, and many other aspects. - -If you create an API service using Google Cloud's Service Infrastructure, -you need to create a servie configuration using the -[`google.api.Service`](../../api/service.proto) schema. The service -configuration is the yaml representation of `google.api.Service`, -see `./endpointsapis.yaml`. - -```yaml -type: google.api.Service # The schema to use; always "google.api.Service". -name: endpointsapis.appspot.com -title: Endpoints APIs -producer_project_id: endpointsapis -apis: # The supported API interfaces. -- name: google.example.endpointsapis.v1.Workspaces -``` - -After you have created your API definition and service configuration, you need -to push them to the Service Management API, which will distribute the -information to Google Cloud infrastructure backends. - -Run the following commands to generate proto descriptor and push the -descriptor and service configuration to the Service Management API. - -```shell -# Generate proto descriptors from the proto files. -protoc --include_source_info --include_imports --descriptor_set_out=service.descriptors v1/workspace.proto - -# Push the proto descriptors and yaml files to the Service Management API. -gcloud endpoints services deploy service.descriptors endpointsapis.yaml -``` - -For more information, see -[Manage Service Configurations](https://cloud.google.com/service-infrastructure/docs/manage-config). - -### Implementation - -Create an App Engine app that implements your API and deploy the app, see -[Building a Go App on App Engine](https://cloud.google.com/appengine/docs/standard/go/building-app). -The implementation of this code is in `goapp/main.go`. Run the following -command to deploy the code: - -```shell -gcloud app deploy -``` - -### Integration - -The Service Control API is the frontend of System Infrastructure control plane. -It provides admission control and telemetry reporting functionality to any -service that is integrated with Service Infrastructure, specifically: - -* For each request, the service calls the `Check` method for admission - control. -* For each response, the service calls the `Report` method for telemetry - reporting. - -For more information, see -[Admission Control](https://cloud.google.com/service-infrastructure/docs/admission-control) -and -[Telemetry Reporting](https://cloud.google.com/service-infrastructure/docs/telemetry-reporting). - -In this example API, the app calls the Service Control API v2 for each request -and response, see `goapp/main.go`. You need to make sure the App Engine -service account has the necessary permissions to run the service. -For more information, see -[Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control). - -NOTE: The telemetry reporting feature is not yet available as of July 2020. - -### Verification - -Follow [Getting Started](https://cloud.google.com/apis/getting-started) to set -up a client project for calling your API service. If you want to run your -test locally, you need to create an application credential in your client -project and download it to your local machine. The credential can be either -an OAuth client or a service account key in JSON format. - -Use [`oauth2l`](https://github.com/google/oauth2l) to send a test request to -your App Engine app using your application credentials. `oauth2l` supports -different credential types in different environments. - -```shell -curl -H "$(oauth2l header --credentials creds.json --scope cloud-platform,userinfo.email)" https://endpointsapis.uc.r.appspot.com/v1/projects/1020789478714/locations/1/workspaces -``` - -You should see the admission control results in the HTTP response -and the telemetry reporting results in Google Cloud Console. The producer -metrics are shown on the Endpoints page. The consumer metrics are shown on -the APIs & Services page. - -## Summary - -This example shows how to build a simple API service using Google Cloud -infrastructure. If you have any suggestions, please send us -[pull requests](https://github.com/googleapis/googleapis/pulls) directly. diff --git a/third_party/googleapis/google/example/endpointsapis/endpointsapis.yaml b/third_party/googleapis/google/example/endpointsapis/endpointsapis.yaml deleted file mode 100644 index 9f7665f38..000000000 --- a/third_party/googleapis/google/example/endpointsapis/endpointsapis.yaml +++ /dev/null @@ -1,88 +0,0 @@ -type: google.api.Service -config_version: 3 -name: endpointsapis.appspot.com -title: Endpoints APIs -producer_project_id: endpointsapis - -apis: -- name: google.example.endpointsapis.v1.Workspaces - -control: - environment: servicecontrol.googleapis.com - -resources: -- type: endpointsapis.appspot.com/Workspace - plural: workspaces - singular: workspace - name_descriptor: - - pattern: projects/{project}/locations/{location}/workspaces/{workspace} - parent_type: cloudresourcemanager.googleapis.com/Project - parent_name_extractor: projects/{project} - -iam: - launch_stage: ALPHA - resources: - - type: endpointsapis.appspot.com/Workspace - internal: - # This is the internal resource 'type' in the IAM service file in the format of - # "_", and the 'PolicyName.type' must use this value when - # making CheckPolicy calls. - name_for_resource: endpointsapis_workspaces - permissions: - - name: endpointsapis.appspot.com/workspaces.get - display_name: Get workspaces - type: DATA_READ - scope: USER_SCOPE - - name: endpointsapis.appspot.com/workspaces.list - display_name: List all workspaces under a project - type: DATA_READ - scope: USER_SCOPE - parent_only: true - - name: endpointsapis.appspot.com/workspaces.create - display_name: Create new workspaces - type: DATA_WRITE - scope: ADMIN_SCOPE - parent_only: true - - name: endpointsapis.appspot.com/workspaces.update - display_name: Update existing workspaces - type: DATA_WRITE - scope: ADMIN_SCOPE - - name: endpointsapis.appspot.com/workspaces.delete - display_name: Delete workspaces - type: DATA_WRITE - scope: ADMIN_SCOPE - roles: - # Viewer role: only includes get/list permissions - - name: endpointsapis.appspot.com/viewer - display_name: Workspace Viewer - description: This role can list and view all workspaces. - permissions: - # These are recommended for all roles that could be granted to a user at or above the - # project level - - cloudresourcemanager.googleapis.com/projects.get - - cloudresourcemanager.googleapis.com/projects.list - # Additional permissions for read access - - endpointsapis.appspot.com/workspaces.get - - endpointsapis.appspot.com/workspaces.list - - # Editor role: Includes all permission from viewer role, and workspaces edit permissions - - name: endpointsapis.appspot.com/editor - display_name: Workspace Editor - description: This role can list, view, and update all workspaces. - permissions: - # These are recommended for all roles that could be granted to a user at or above the - # project level - - cloudresourcemanager.googleapis.com/projects.get - - cloudresourcemanager.googleapis.com/projects.list - # Viewer permissions + additional edit permissions - - endpointsapis.appspot.com/workspaces.get - - endpointsapis.appspot.com/workspaces.list - - endpointsapis.appspot.com/workspaces.create - - endpointsapis.appspot.com/workspaces.update - - endpointsapis.appspot.com/workspaces.delete - - # This setting means the service will use Service Control API v2 for admission control. - reader: group:servicecontrol - - # This setting is **unused** for services using Service Control API v2 for admission control. - environment: PROD diff --git a/third_party/googleapis/google/example/endpointsapis/goapp/app.yaml b/third_party/googleapis/google/example/endpointsapis/goapp/app.yaml deleted file mode 100644 index 471bba25d..000000000 --- a/third_party/googleapis/google/example/endpointsapis/goapp/app.yaml +++ /dev/null @@ -1 +0,0 @@ -runtime: go113 diff --git a/third_party/googleapis/google/example/endpointsapis/goapp/main.go b/third_party/googleapis/google/example/endpointsapis/goapp/main.go deleted file mode 100644 index a64ad62fd..000000000 --- a/third_party/googleapis/google/example/endpointsapis/goapp/main.go +++ /dev/null @@ -1,197 +0,0 @@ -// The goapp command implements a simple App Engine app to demonstrate how to -// use the Service Control API v2 for admission control. For more information, -// see https://cloud.google.com/service-infrastructure/docs/admission-control. -package main - -import ( - "errors" - "fmt" - "log" - "net/http" - "os" - "strings" - "time" - - // WARNING:`go get google.golang.org/api/servicecontrol/v2" may take - // 30 minutes or longer, depending on your network speed. - "google.golang.org/api/servicecontrol/v2" -) - -// Check calls Service Control API v2 for admission control. -// Name specifies the target resource name. Permission specifies -// the required permission on the target resource. Received -// specifies the timestamp when the request is received. -func check(w http.ResponseWriter, r *http.Request, name string, permission string, received time.Time, client *servicecontrol.Service) (string, error) { - // Construct CheckRequest from the incoming HTTP request. - // The code assumes the incoming request processed by App Engine ingress. - req := &servicecontrol.CheckRequest{ - ServiceConfigId: "latest", - Attributes: &servicecontrol.AttributeContext{ - Origin: &servicecontrol.Peer{ - Ip: r.Header.Get("x-appengine-user-ip"), - }, - Api: &servicecontrol.Api{ - Service: "endpointsapis.appspot.com", - Operation: "google.example.endpointsapis.v1.Workspaces.GetWorkspace", - Version: "v1", - Protocol: r.Header.Get("x-forwarded-proto"), - }, - Request: &servicecontrol.Request{ - Id: r.Header.Get("x-appengine-request-log-id"), - Time: received.UTC().Format(time.RFC3339), - Method: r.Method, - Scheme: r.Header.Get("x-forwarded-proto"), - Host: r.Host, - Path: r.URL.Path, - Headers: map[string]string{ - "authorization": r.Header.Get("authorization"), - "user-agent": r.Header.Get("user-agent"), - "origin": r.Header.Get("origin"), - "referer": r.Header.Get("referer"), - }, - }, - Resource: &servicecontrol.Resource{ - Name: name, - }, - }, - Resources: []*servicecontrol.ResourceInfo{ - { - Name: name, - Type: "endpointsapis.appspot.com/Workspace", - Permission: permission, - }, - }, - } - resp, err := client.Services.Check("endpointsapis.appspot.com", req).Do() - if err != nil { - return "", err - } - json, err := resp.MarshalJSON() - if err != nil { - return "", err - } - return string(json), nil -} - -// Report calls Service Control API v2 for telemetry reporting. -// Name specifies the target resource name. ResponseCode specifies -// the response code returned to user. Received specifies the -// timestamp when the request is received. -func report(w http.ResponseWriter, r *http.Request, name string, responseCode int64, received time.Time, client *servicecontrol.Service) (string, error) { - // Construct ReportRequest from the incoming HTTP request. - // The code assumes the incoming request processed by App Engine ingress. - req := &servicecontrol.ReportRequest{ - ServiceConfigId: "latest", - Operations: []*servicecontrol.AttributeContext{ - { - Api: &servicecontrol.Api{ - Service: "endpointsapis.appspot.com", - Operation: "google.example.endpointsapis.v1.Workspaces.GetWorkspace", - Version: "v1", - Protocol: r.Header.Get("x-forwarded-proto"), - }, - Request: &servicecontrol.Request{ - Size: r.ContentLength, - Time: received.UTC().Format(time.RFC3339), - }, - Response: &servicecontrol.Response{ - Time: time.Now().UTC().Format(time.RFC3339), - Code: responseCode, - BackendLatency: "0.007s", - }, - Destination: &servicecontrol.Peer{ - RegionCode: "us-central1", - }, - Resource: &servicecontrol.Resource{ - Name: name, - }, - }, - }, - } - _, err := client.Services.Report("endpointsapis.appspot.com", req).Do() - if err != nil { - return "", err - } - return "{}", nil -} - -// Parse processes the request path and extract the resource name and -// permissions. -func parse(r *http.Request) (string, string, error) { - // Split the request path. - segments := strings.Split(r.URL.Path, "/") - - // The request path must match "/v1/projects/*/locations/*/workspaces/*" or - // "/v1/projects/*/locations/*/workspaces". They correspond to the - // GetWorkspace() and ListWorkspaces() methods defined in ../v1/workspace.proto. - if segments[0] != "" || segments[1] != "v1" || segments[2] != "projects" || segments[4] != "locations" || segments[6] != "workspaces" || len(segments) > 8 { - return "", "", errors.New("Resource '" + r.URL.Path + "' not found.") - } - - // Skip prefix "/v1/". - resource := r.URL.Path[4:] - permission := "endpointsapis.appspot.com/workspaces.list" - if len(segments) == 8 { - permission = "endpointsapis.appspot.com/workspaces.get" - } - return resource, permission, nil -} - -func indexHandler(w http.ResponseWriter, r *http.Request) { - received := time.Now() - - // Create a client for Service Control API v2. - client, err := servicecontrol.NewService(r.Context()) - if err != nil { - fmt.Fprintln(w, "Error:") - fmt.Fprintln(w, err.Error()) - return - } - - resource, permission, err := parse(r) - if err != nil { - fmt.Fprintln(w, "Error:") - fmt.Fprintln(w, err.Error()) - return - } - - // Perform admission control. - result, err := check(w, r, resource, permission, received, client) - - var responseCode int64 = 200 - // Print the admission control result. - if err != nil { - fmt.Fprintln(w, "Error:") - fmt.Fprintln(w, err.Error()) - responseCode = 403 - } else { - fmt.Fprintln(w, "CheckResponse:") - fmt.Fprintln(w, result) - } - - // Print all environment variables. - fmt.Fprintln(w, "Environments:") - fmt.Fprintln(w, strings.Join(os.Environ(), "\n")) - - // Print all request headers. - fmt.Fprintln(w, "Headers:") - for key, values := range r.Header { - for _, value := range values { - fmt.Fprintf(w, "%v: %v\n", key, value) - } - } - - // Perform telemetry report. - report(w, r, resource, responseCode, received, client) -} - -func main() { - http.HandleFunc("/", indexHandler) - - port := os.Getenv("PORT") - - log.Printf("Listen and serve on port %s", port) - if err := http.ListenAndServe(":"+port, nil); err != nil { - log.Fatal(err) - } -} diff --git a/third_party/googleapis/google/example/endpointsapis/prod.yaml b/third_party/googleapis/google/example/endpointsapis/prod.yaml deleted file mode 100644 index c4ad3476d..000000000 --- a/third_party/googleapis/google/example/endpointsapis/prod.yaml +++ /dev/null @@ -1,2 +0,0 @@ -type: google.api.Service -config_version: 3 diff --git a/third_party/googleapis/google/example/endpointsapis/staging.yaml b/third_party/googleapis/google/example/endpointsapis/staging.yaml deleted file mode 100644 index c4ad3476d..000000000 --- a/third_party/googleapis/google/example/endpointsapis/staging.yaml +++ /dev/null @@ -1,2 +0,0 @@ -type: google.api.Service -config_version: 3 diff --git a/third_party/googleapis/google/example/endpointsapis/v1/workspace.proto b/third_party/googleapis/google/example/endpointsapis/v1/workspace.proto deleted file mode 100644 index b508e0487..000000000 --- a/third_party/googleapis/google/example/endpointsapis/v1/workspace.proto +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.example.endpointsapis.v1; - -import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; - -option java_multiple_files = true; -option java_package = "com.google.example.endpointsapis.v1"; -option java_outer_classname = "WorkspaceProto"; - -// Manages workspaces. -service Workspaces { - // List workspaces. - rpc ListWorkspaces(ListWorkspacesRequest) returns (ListWorkspacesResponse) { - option (google.api.http) = { - get: "/v1/{parent=projects/*/locations/*}/workspaces" - }; - } - - // Get information about a Workspace. - rpc GetWorkspace(GetWorkspaceRequest) returns (Workspace) { - option (google.api.http) = { - get: "/v1/{name=projects/*/locations/*/workspaces/*}" - }; - } - - // Create a Workspace. - rpc CreateWorkspace(CreateWorkspaceRequest) returns (Workspace) { - option (google.api.http) = { - post: "/v1/{parent=projects/*/locations/*}/workspaces" - body: "workspace" - }; - } - - // Updates a Workspace. - rpc UpdateWorkspace(UpdateWorkspaceRequest) returns (Workspace) { - option (google.api.http) = { - patch: "/v1/{name=projects/*/locations/*/Workspaces/*}" - body: "workspace" - }; - } - - // Deletes a Workspace. - rpc DeleteWorkspace(DeleteWorkspaceRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1/{name=projects/*/locations/*/workspaces/*}" - }; - } -} - -// Presents a workspace -message Workspace { - // The Workspace name in the format of "projects/*/locations/*/workspaces/*". - string name = 1; -} - -// Request message for listing Workspaces. -message ListWorkspacesRequest { - // The parent used for listing. It should have the format of - // `projects/{number}/locations/{location}`. - string parent = 1; - // The page size for list pagination. - int32 page_size = 2; - // The page token for list pagination. - string page_token = 3; -} - -// A list of workspaces. -message ListWorkspacesResponse { - // The list of workspaces. - repeated Workspace items = 1; - // The next page token for list pagination. - string next_page_token = 2; -} - -// Request message for retrieving a Workspace. -message GetWorkspaceRequest { - // The name of the Workspace to retrieve. - string name = 1; -} - -// Request message for creating a Workspace. -message CreateWorkspaceRequest { - // The namespace in which the Workspace should be created. - string parent = 1; - - // The Workspace instance to create. - Workspace workspace = 2; -} - -// Request message for replacing a Workspace. -message UpdateWorkspaceRequest { - // The name of the Workspace being replaced. - string name = 1; - - // The Workspace object being replaced. - Workspace workspace = 2; -} - -// Request message for deleting a Workspace. -message DeleteWorkspaceRequest { - // The name of the Workspace to delete. - string name = 1; -} diff --git a/third_party/googleapis/google/example/library/v1/library.proto b/third_party/googleapis/google/example/library/v1/library.proto index 4e2a374bd..764284a10 100644 --- a/third_party/googleapis/google/example/library/v1/library.proto +++ b/third_party/googleapis/google/example/library/v1/library.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firebase/fcm/connection/v1alpha1/connection_api.proto b/third_party/googleapis/google/firebase/fcm/connection/v1alpha1/connection_api.proto index 7a95a578c..82414fa05 100644 --- a/third_party/googleapis/google/firebase/fcm/connection/v1alpha1/connection_api.proto +++ b/third_party/googleapis/google/firebase/fcm/connection/v1alpha1/connection_api.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1/BUILD.bazel b/third_party/googleapis/google/firestore/admin/v1/BUILD.bazel index f27d9d40f..f36aae517 100644 --- a/third_party/googleapis/google/firestore/admin/v1/BUILD.bazel +++ b/third_party/googleapis/google/firestore/admin/v1/BUILD.bazel @@ -9,24 +9,29 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "admin_proto", srcs = [ + "backup.proto", "database.proto", "field.proto", "firestore_admin.proto", "index.proto", "location.proto", "operation.proto", + "schedule.proto", ], deps = [ "//google/api:annotations_proto", @@ -34,6 +39,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:dayofweek_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -53,6 +59,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -117,6 +124,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -132,6 +140,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:dayofweek_go_proto", ], ) @@ -151,6 +160,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -169,6 +179,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -212,6 +223,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -232,7 +244,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "firestore_v1.yaml", transport = "grpc+rest", - deps = [":admin_php_proto"], + deps = [ + ":admin_php_proto", + ], ) # Open Source Packages @@ -247,6 +261,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -277,6 +292,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -331,6 +347,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -377,6 +394,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/firestore/admin/v1/backup.proto b/third_party/googleapis/google/firestore/admin/v1/backup.proto new file mode 100644 index 000000000..45f3adc8e --- /dev/null +++ b/third_party/googleapis/google/firestore/admin/v1/backup.proto @@ -0,0 +1,107 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.firestore.admin.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; +option go_package = "cloud.google.com/go/firestore/apiv1/admin/adminpb;adminpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupProto"; +option java_package = "com.google.firestore.admin.v1"; +option objc_class_prefix = "GCFS"; +option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1"; +option ruby_package = "Google::Cloud::Firestore::Admin::V1"; + +// A Backup of a Cloud Firestore Database. +// +// The backup contains all documents and index configurations for the given +// database at a specific point in time. +message Backup { + option (google.api.resource) = { + type: "firestore.googleapis.com/Backup" + pattern: "projects/{project}/locations/{location}/backups/{backup}" + }; + + // Backup specific statistics. + message Stats { + // Output only. Summation of the size of all documents and index entries in + // the backup, measured in bytes. + int64 size_bytes = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total number of documents contained in the backup. + int64 document_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total number of index entries contained in the backup. + int64 index_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Indicate the current state of the backup. + enum State { + // The state is unspecified. + STATE_UNSPECIFIED = 0; + + // The pending backup is still being created. Operations on the + // backup will be rejected in this state. + CREATING = 1; + + // The backup is complete and ready to use. + READY = 2; + + // The backup is not available at this moment. + NOT_AVAILABLE = 3; + } + + // Output only. The unique resource name of the Backup. + // + // Format is `projects/{project}/locations/{location}/backups/{backup}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the Firestore database that the backup is from. + // + // Format is `projects/{project}/databases/{database}`. + string database = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Database" + } + ]; + + // Output only. The system-generated UUID4 for the Firestore database that the + // backup is from. + string database_uid = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The backup contains an externally consistent copy of the + // database at this time. + google.protobuf.Timestamp snapshot_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp at which this backup expires. + google.protobuf.Timestamp expire_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics about the backup. + // + // This data only becomes available after the backup is fully materialized to + // secondary storage. This field will be empty till then. + Stats stats = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the backup. + State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/firestore/admin/v1/database.proto b/third_party/googleapis/google/firestore/admin/v1/database.proto index fbf4bd754..67c8371df 100644 --- a/third_party/googleapis/google/firestore/admin/v1/database.proto +++ b/third_party/googleapis/google/firestore/admin/v1/database.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1/field.proto b/third_party/googleapis/google/firestore/admin/v1/field.proto index 5cd1cd481..eefee763c 100644 --- a/third_party/googleapis/google/firestore/admin/v1/field.proto +++ b/third_party/googleapis/google/firestore/admin/v1/field.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -49,8 +49,8 @@ message Field { // When false, the `Field`'s index configuration is defined explicitly. bool uses_ancestor_config = 2; - // Output only. Specifies the resource name of the `Field` from which this field's - // index configuration is set (when `uses_ancestor_config` is true), + // Output only. Specifies the resource name of the `Field` from which this + // field's index configuration is set (when `uses_ancestor_config` is true), // or from which it *would* be set if this field had no index configuration // (when `uses_ancestor_config` is false). string ancestor_field = 3; @@ -65,9 +65,12 @@ message Field { // The TTL (time-to-live) configuration for documents that have this `Field` // set. + // // Storing a timestamp value into a TTL-enabled field will be treated as - // the document's absolute expiration time. Using any other data type or - // leaving the field absent will disable the TTL for the individual document. + // the document's absolute expiration time. Timestamp values in the past + // indicate that the document is eligible for immediate expiration. Using any + // other data type or leaving the field absent will disable expiration for the + // individual document. message TtlConfig { // The state of applying the TTL configuration to all documents. enum State { @@ -95,26 +98,24 @@ message Field { State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } - // Required. A field name of the form + // Required. A field name of the form: // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` // - // A field path may be a simple field name, e.g. `address` or a path to fields - // within map_value , e.g. `address.city`, + // A field path can be a simple field name, e.g. `address` or a path to fields + // within `map_value` , e.g. `address.city`, // or a special field path. The only valid special field is `*`, which // represents any field. // - // Field paths may be quoted using ` (backtick). The only character that needs - // to be escaped within a quoted field path is the backtick character itself, - // escaped using a backslash. Special characters in field paths that + // Field paths can be quoted using `` ` `` (backtick). The only character that + // must be escaped within a quoted field path is the backtick character + // itself, escaped using a backslash. Special characters in field paths that // must be quoted include: `*`, `.`, - // ``` (backtick), `[`, `]`, as well as any ascii symbolic characters. + // `` ` `` (backtick), `[`, `]`, as well as any ascii symbolic characters. // // Examples: - // (Note: Comments here are written in markdown syntax, so there is an - // additional layer of backticks to represent a code block) - // `\`address.city\`` represents a field named `address.city`, not the map key - // `city` in the field `address`. - // `\`*\`` represents a field named `*`, not any field. + // `` `address.city` `` represents a field named `address.city`, not the map + // key `city` in the field `address`. `` `*` `` represents a field named `*`, + // not any field. // // A special `Field` contains the default indexing settings for all fields. // This field's resource name is: diff --git a/third_party/googleapis/google/firestore/admin/v1/firestore_admin.proto b/third_party/googleapis/google/firestore/admin/v1/firestore_admin.proto index 07cc764b5..dd95c2ce7 100644 --- a/third_party/googleapis/google/firestore/admin/v1/firestore_admin.proto +++ b/third_party/googleapis/google/firestore/admin/v1/firestore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,10 +20,12 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/firestore/admin/v1/backup.proto"; import "google/firestore/admin/v1/database.proto"; import "google/firestore/admin/v1/field.proto"; import "google/firestore/admin/v1/index.proto"; import "google/firestore/admin/v1/operation.proto"; +import "google/firestore/admin/v1/schedule.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -215,6 +217,27 @@ service FirestoreAdmin { }; } + // Bulk deletes a subset of documents from Google Cloud Firestore. + // Documents created or updated after the underlying system starts to process + // the request will not be deleted. The bulk delete occurs in the background + // and its progress can be monitored and managed via the Operation resource + // that is created. + // + // For more details on bulk delete behavior, refer to: + // https://cloud.google.com/firestore/docs/manage-data/bulk-delete + rpc BulkDeleteDocuments(BulkDeleteDocumentsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/databases/*}:bulkDeleteDocuments" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "BulkDeleteDocumentsResponse" + metadata_type: "BulkDeleteDocumentsMetadata" + }; + } + // Create a database. rpc CreateDatabase(CreateDatabaseRequest) returns (google.longrunning.Operation) { @@ -271,6 +294,107 @@ service FirestoreAdmin { metadata_type: "DeleteDatabaseMetadata" }; } + + // Gets information about a backup. + rpc GetBackup(GetBackupRequest) returns (Backup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all the backups. + rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backups" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a backup. + rpc DeleteBackup(DeleteBackupRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new database by restoring from an existing backup. + // + // The new database must be in the same cloud region or multi-region location + // as the existing backup. This behaves similar to + // [FirestoreAdmin.CreateDatabase][google.firestore.admin.v1.FirestoreAdmin.CreateDatabase] + // except instead of creating a new empty database, a new database is created + // with the database type, index configuration, and documents from an existing + // backup. + // + // The [long-running operation][google.longrunning.Operation] can be used to + // track the progress of the restore, with the Operation's + // [metadata][google.longrunning.Operation.metadata] field type being the + // [RestoreDatabaseMetadata][google.firestore.admin.v1.RestoreDatabaseMetadata]. + // The [response][google.longrunning.Operation.response] type is the + // [Database][google.firestore.admin.v1.Database] if the restore was + // successful. The new database is not readable or writeable until the LRO has + // completed. + rpc RestoreDatabase(RestoreDatabaseRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/databases:restore" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Database" + metadata_type: "RestoreDatabaseMetadata" + }; + } + + // Creates a backup schedule on a database. + // At most two backup schedules can be configured on a database, one daily + // backup schedule and one weekly backup schedule. + rpc CreateBackupSchedule(CreateBackupScheduleRequest) + returns (BackupSchedule) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/databases/*}/backupSchedules" + body: "backup_schedule" + }; + option (google.api.method_signature) = "parent,backup_schedule"; + } + + // Gets information about a backup schedule. + rpc GetBackupSchedule(GetBackupScheduleRequest) returns (BackupSchedule) { + option (google.api.http) = { + get: "/v1/{name=projects/*/databases/*/backupSchedules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List backup schedules. + rpc ListBackupSchedules(ListBackupSchedulesRequest) + returns (ListBackupSchedulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/databases/*}/backupSchedules" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a backup schedule. + rpc UpdateBackupSchedule(UpdateBackupScheduleRequest) + returns (BackupSchedule) { + option (google.api.http) = { + patch: "/v1/{backup_schedule.name=projects/*/databases/*/backupSchedules/*}" + body: "backup_schedule" + }; + option (google.api.method_signature) = "backup_schedule,update_mask"; + } + + // Deletes a backup schedule. + rpc DeleteBackupSchedule(DeleteBackupScheduleRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/databases/*/backupSchedules/*}" + }; + option (google.api.method_signature) = "name"; + } } // A request to list the Firestore Databases in all locations for a project. @@ -283,6 +407,9 @@ message ListDatabasesRequest { child_type: "firestore.googleapis.com/Database" } ]; + + // If true, also returns deleted resources. + bool show_deleted = 4; } // The request for @@ -378,6 +505,83 @@ message DeleteDatabaseRequest { // Metadata related to the delete database operation. message DeleteDatabaseMetadata {} +// The request for +// [FirestoreAdmin.CreateBackupSchedule][google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule]. +message CreateBackupScheduleRequest { + // Required. The parent database. + // + // Format `projects/{project}/databases/{database}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Database" + } + ]; + + // Required. The backup schedule to create. + BackupSchedule backup_schedule = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for +// [FirestoreAdmin.GetBackupSchedule][google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule]. +message GetBackupScheduleRequest { + // Required. The name of the backup schedule. + // + // Format + // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/BackupSchedule" + } + ]; +} + +// The request for +// [FirestoreAdmin.UpdateBackupSchedule][google.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule]. +message UpdateBackupScheduleRequest { + // Required. The backup schedule to update. + BackupSchedule backup_schedule = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// The request for +// [FirestoreAdmin.ListBackupSchedules][google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules]. +message ListBackupSchedulesRequest { + // Required. The parent database. + // + // Format is `projects/{project}/databases/{database}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Database" + } + ]; +} + +// The response for +// [FirestoreAdmin.ListBackupSchedules][google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules]. +message ListBackupSchedulesResponse { + // List of all backup schedules. + repeated BackupSchedule backup_schedules = 1; +} + +// The request for [FirestoreAdmin.DeleteBackupSchedules][]. +message DeleteBackupScheduleRequest { + // Required. The name of the backup schedule. + // + // Format + // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/BackupSchedule" + } + ]; +} + // The request for // [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex]. message CreateIndexRequest { @@ -490,7 +694,8 @@ message ListFieldsRequest { // only supports listing fields that have been explicitly overridden. To issue // this query, call // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] - // with a filter that includes `indexConfig.usesAncestorConfig:false` . + // with a filter that includes `indexConfig.usesAncestorConfig:false` or + // `ttlConfig:*`. string filter = 2; // The number of results to return. @@ -525,7 +730,8 @@ message ExportDocumentsRequest { } ]; - // Which collection ids to export. Unspecified means all collections. + // Which collection ids to export. Unspecified means all collections. Each + // collection id in this list must be unique. repeated string collection_ids = 2; // The output URI. Currently only supports Google Cloud Storage URIs of the @@ -569,7 +775,7 @@ message ImportDocumentsRequest { ]; // Which collection ids to import. Unspecified means all collections included - // in the import. + // in the import. Each collection id in this list must be unique. repeated string collection_ids = 2; // Location of the exported files. @@ -587,3 +793,141 @@ message ImportDocumentsRequest { // to include them. Each namespace in this list must be unique. repeated string namespace_ids = 4; } + +// The request for +// [FirestoreAdmin.BulkDeleteDocuments][google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments]. +// +// When both collection_ids and namespace_ids are set, only documents satisfying +// both conditions will be deleted. +// +// Requests with namespace_ids and collection_ids both empty will be rejected. +// Please use +// [FirestoreAdmin.DeleteDatabase][google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase] +// instead. +message BulkDeleteDocumentsRequest { + // Required. Database to operate. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Database" + } + ]; + + // Optional. IDs of the collection groups to delete. Unspecified means all + // collection groups. + // + // Each collection group in this list must be unique. + repeated string collection_ids = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Namespaces to delete. + // + // An empty list means all namespaces. This is the recommended + // usage for databases that don't use namespaces. + // + // An empty string element represents the default namespace. This should be + // used if the database has data in non-default namespaces, but doesn't want + // to delete from them. + // + // Each namespace in this list must be unique. + repeated string namespace_ids = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for +// [FirestoreAdmin.BulkDeleteDocuments][google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments]. +message BulkDeleteDocumentsResponse {} + +// The request for +// [FirestoreAdmin.GetBackup][google.firestore.admin.v1.FirestoreAdmin.GetBackup]. +message GetBackupRequest { + // Required. Name of the backup to fetch. + // + // Format is `projects/{project}/locations/{location}/backups/{backup}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Backup" + } + ]; +} + +// The request for +// [FirestoreAdmin.ListBackups][google.firestore.admin.v1.FirestoreAdmin.ListBackups]. +message ListBackupsRequest { + // Required. The location to list backups from. + // + // Format is `projects/{project}/locations/{location}`. + // Use `{location} = '-'` to list backups from all locations for the given + // project. This allows listing backups from a single location or from all + // locations. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Location" + } + ]; +} + +// The response for +// [FirestoreAdmin.ListBackups][google.firestore.admin.v1.FirestoreAdmin.ListBackups]. +message ListBackupsResponse { + // List of all backups for the project. + repeated Backup backups = 1; + + // List of locations that existing backups were not able to be fetched from. + // + // Instead of failing the entire requests when a single location is + // unreachable, this response returns a partial result set and list of + // locations unable to be reached here. The request can be retried against a + // single location to get a concrete error. + repeated string unreachable = 3; +} + +// The request for +// [FirestoreAdmin.DeleteBackup][google.firestore.admin.v1.FirestoreAdmin.DeleteBackup]. +message DeleteBackupRequest { + // Required. Name of the backup to delete. + // + // format is `projects/{project}/locations/{location}/backups/{backup}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Backup" + } + ]; +} + +// The request message for +// [FirestoreAdmin.RestoreDatabase][google.firestore.admin.v1.RestoreDatabase]. +message RestoreDatabaseRequest { + // Required. The project to restore the database in. Format is + // `projects/{project_id}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "firestore.googleapis.com/Database" + } + ]; + + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This database id must not be + // associated with an existing database. + // + // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ + // with first character a letter and the last a letter or a number. Must not + // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // + // "(default)" database id is also valid. + string database_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Backup to restore from. Must be from the same project as the + // parent. + // + // Format is: `projects/{project_id}/locations/{location}/backups/{backup}` + string backup = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "firestore.googleapis.com/Backup" + } + ]; +} diff --git a/third_party/googleapis/google/firestore/admin/v1/firestore_admin_grpc_service_config.json b/third_party/googleapis/google/firestore/admin/v1/firestore_admin_grpc_service_config.json index 1460a8b7c..660a4587e 100755 --- a/third_party/googleapis/google/firestore/admin/v1/firestore_admin_grpc_service_config.json +++ b/third_party/googleapis/google/firestore/admin/v1/firestore_admin_grpc_service_config.json @@ -53,6 +53,10 @@ { "service": "google.firestore.admin.v1.FirestoreAdmin", "method": "UpdateField" + }, + { + "service": "google.firestore.admin.v1.FirestoreAdmin", + "method": "BulkDeleteDocuments" } ], "timeout": "60s" diff --git a/third_party/googleapis/google/firestore/admin/v1/firestore_v1.yaml b/third_party/googleapis/google/firestore/admin/v1/firestore_v1.yaml index f743bbdca..91f066d6b 100644 --- a/third_party/googleapis/google/firestore/admin/v1/firestore_v1.yaml +++ b/third_party/googleapis/google/firestore/admin/v1/firestore_v1.yaml @@ -9,6 +9,7 @@ apis: - name: google.longrunning.Operations types: +- name: google.firestore.admin.v1.BulkDeleteDocumentsMetadata - name: google.firestore.admin.v1.CreateDatabaseMetadata - name: google.firestore.admin.v1.DeleteDatabaseMetadata - name: google.firestore.admin.v1.ExportDocumentsMetadata @@ -17,6 +18,7 @@ types: - name: google.firestore.admin.v1.ImportDocumentsMetadata - name: google.firestore.admin.v1.IndexOperationMetadata - name: google.firestore.admin.v1.LocationMetadata +- name: google.firestore.admin.v1.RestoreDatabaseMetadata - name: google.firestore.admin.v1.UpdateDatabaseMetadata documentation: @@ -30,17 +32,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.location.Locations.GetLocation - deadline: 295.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 295.0 - - selector: 'google.firestore.admin.v1.FirestoreAdmin.*' - deadline: 295.0 - - selector: 'google.longrunning.Operations.*' - deadline: 295.0 - http: rules: - selector: google.longrunning.Operations.CancelOperation diff --git a/third_party/googleapis/google/firestore/admin/v1/index.proto b/third_party/googleapis/google/firestore/admin/v1/index.proto index 2567da650..f2a3cc373 100644 --- a/third_party/googleapis/google/firestore/admin/v1/index.proto +++ b/third_party/googleapis/google/firestore/admin/v1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.firestore.admin.v1; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; @@ -92,6 +93,25 @@ message Index { CONTAINS = 1; } + // The index configuration to support vector search operations + message VectorConfig { + // An index that stores vectors in a flat data structure, and supports + // exhaustive search. + message FlatIndex {} + + // Required. The vector dimension this configuration applies to. + // + // The resulting index will only include vectors of this dimension, and + // can be used for vector search with the same dimension. + int32 dimension = 1 [(google.api.field_behavior) = REQUIRED]; + + // The type of index used. + oneof type { + // Indicates the vector index is a flat index. + FlatIndex flat = 2; + } + } + // Can be __name__. // For single field indexes, this must match the name of the field or may // be omitted. @@ -105,6 +125,10 @@ message Index { // Indicates that this field supports operations on `array_value`s. ArrayConfig array_config = 3; + + // Indicates that this field supports nearest neighbor and distance + // operations on vector. + VectorConfig vector_config = 4; } } diff --git a/third_party/googleapis/google/firestore/admin/v1/location.proto b/third_party/googleapis/google/firestore/admin/v1/location.proto index 71f4247ae..4a1154f8c 100644 --- a/third_party/googleapis/google/firestore/admin/v1/location.proto +++ b/third_party/googleapis/google/firestore/admin/v1/location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1/operation.proto b/third_party/googleapis/google/firestore/admin/v1/operation.proto index 31f63af37..80b133764 100644 --- a/third_party/googleapis/google/firestore/admin/v1/operation.proto +++ b/third_party/googleapis/google/firestore/admin/v1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -191,6 +191,39 @@ message ImportDocumentsMetadata { repeated string namespace_ids = 8; } +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] +// results from +// [FirestoreAdmin.BulkDeleteDocuments][google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments]. +message BulkDeleteDocumentsMetadata { + // The time this operation started. + google.protobuf.Timestamp start_time = 1; + + // The time this operation completed. Will be unset if operation still in + // progress. + google.protobuf.Timestamp end_time = 2; + + // The state of the operation. + OperationState operation_state = 3; + + // The progress, in documents, of this operation. + Progress progress_documents = 4; + + // The progress, in bytes, of this operation. + Progress progress_bytes = 5; + + // The ids of the collection groups that are being deleted. + repeated string collection_ids = 6; + + // Which namespace ids are being deleted. + repeated string namespace_ids = 7; + + // The timestamp that corresponds to the version of the database that is being + // read to get the list of documents to delete. This time can also be used as + // the timestamp of PITR in case of disaster recovery (subject to PITR window + // limit). + google.protobuf.Timestamp snapshot_time = 8; +} + // Returned in the [google.longrunning.Operation][google.longrunning.Operation] // response field. message ExportDocumentsResponse { @@ -200,6 +233,43 @@ message ExportDocumentsResponse { string output_uri_prefix = 1; } +// Metadata for the [long-running operation][google.longrunning.Operation] from +// the [RestoreDatabase][google.firestore.admin.v1.RestoreDatabase] request. +message RestoreDatabaseMetadata { + // The time the restore was started. + google.protobuf.Timestamp start_time = 1; + + // The time the restore finished, unset for ongoing restores. + google.protobuf.Timestamp end_time = 2; + + // The operation state of the restore. + OperationState operation_state = 3; + + // The name of the database being restored to. + string database = 4 [(google.api.resource_reference) = { + type: "firestore.googleapis.com/Database" + }]; + + // The name of the backup restoring from. + string backup = 5 [(google.api.resource_reference) = { + type: "firestore.googleapis.com/Backup" + }]; + + // How far along the restore is as an estimated percentage of remaining time. + Progress progress_percentage = 8; +} + +// Describes the progress of the operation. +// Unit of work is generic and must be interpreted based on where +// [Progress][google.firestore.admin.v1.Progress] is used. +message Progress { + // The amount of work estimated. + int64 estimated_work = 1; + + // The amount of work completed. + int64 completed_work = 2; +} + // Describes the state of the operation. enum OperationState { // Unspecified. @@ -228,14 +298,3 @@ enum OperationState { // google.longrunning.Operations.CancelOperation. CANCELLED = 7; } - -// Describes the progress of the operation. -// Unit of work is generic and must be interpreted based on where -// [Progress][google.firestore.admin.v1.Progress] is used. -message Progress { - // The amount of work estimated. - int64 estimated_work = 1; - - // The amount of work completed. - int64 completed_work = 2; -} diff --git a/third_party/googleapis/google/firestore/admin/v1/schedule.proto b/third_party/googleapis/google/firestore/admin/v1/schedule.proto new file mode 100644 index 000000000..52200e8e5 --- /dev/null +++ b/third_party/googleapis/google/firestore/admin/v1/schedule.proto @@ -0,0 +1,93 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.firestore.admin.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/dayofweek.proto"; + +option csharp_namespace = "Google.Cloud.Firestore.Admin.V1"; +option go_package = "cloud.google.com/go/firestore/apiv1/admin/adminpb;adminpb"; +option java_multiple_files = true; +option java_outer_classname = "ScheduleProto"; +option java_package = "com.google.firestore.admin.v1"; +option objc_class_prefix = "GCFS"; +option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1"; +option ruby_package = "Google::Cloud::Firestore::Admin::V1"; + +// A backup schedule for a Cloud Firestore Database. +// +// This resource is owned by the database it is backing up, and is deleted along +// with the database. The actual backups are not though. +message BackupSchedule { + option (google.api.resource) = { + type: "firestore.googleapis.com/BackupSchedule" + pattern: "projects/{project}/databases/{database}/backupSchedules/{backup_schedule}" + }; + + // Output only. The unique backup schedule identifier across all locations and + // databases for the given project. + // + // This will be auto-assigned. + // + // Format is + // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp at which this backup schedule was created and + // effective since. + // + // No backups will be created for this schedule before this time. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp at which this backup schedule was most recently + // updated. When a backup schedule is first created, this is the same as + // create_time. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // At what relative time in the future, compared to its creation time, + // the backup should be deleted, e.g. keep backups for 7 days. + google.protobuf.Duration retention = 6; + + // A oneof field to represent when backups will be taken. + oneof recurrence { + // For a schedule that runs daily. + DailyRecurrence daily_recurrence = 7; + + // For a schedule that runs weekly on a specific day. + WeeklyRecurrence weekly_recurrence = 8; + } +} + +// Represents a recurring schedule that runs at a specific time every day. +// +// The time zone is UTC. +message DailyRecurrence {} + +// Represents a recurring schedule that runs on a specified day of the week. +// +// The time zone is UTC. +message WeeklyRecurrence { + // The day of week to run. + // + // DAY_OF_WEEK_UNSPECIFIED is not allowed. + google.type.DayOfWeek day = 2; +} diff --git a/third_party/googleapis/google/firestore/admin/v1beta1/firestore_admin.proto b/third_party/googleapis/google/firestore/admin/v1beta1/firestore_admin.proto index e9e1b5691..58df06a2c 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta1/firestore_admin.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta1/firestore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1beta1/index.proto b/third_party/googleapis/google/firestore/admin/v1beta1/index.proto index cdc106b7e..a1fd6361e 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta1/index.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta1/index.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1beta1/location.proto b/third_party/googleapis/google/firestore/admin/v1beta1/location.proto index 5a3a23e2a..0716bf1a9 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta1/location.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta1/location.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1beta2/field.proto b/third_party/googleapis/google/firestore/admin/v1beta2/field.proto index ff7143ee2..e27dc3f37 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta2/field.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta2/field.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1beta2/firestore_admin.proto b/third_party/googleapis/google/firestore/admin/v1beta2/firestore_admin.proto index 478722d66..fc9ef5a7e 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta2/firestore_admin.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta2/firestore_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1beta2/index.proto b/third_party/googleapis/google/firestore/admin/v1beta2/index.proto index 02205349a..fd8a34f0e 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta2/index.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta2/index.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/admin/v1beta2/operation.proto b/third_party/googleapis/google/firestore/admin/v1beta2/operation.proto index a58dfbc47..266d87fd6 100644 --- a/third_party/googleapis/google/firestore/admin/v1beta2/operation.proto +++ b/third_party/googleapis/google/firestore/admin/v1beta2/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/bundle/bundle.proto b/third_party/googleapis/google/firestore/bundle/bundle.proto index be4e9238e..4f9cb7e34 100644 --- a/third_party/googleapis/google/firestore/bundle/bundle.proto +++ b/third_party/googleapis/google/firestore/bundle/bundle.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1/BUILD.bazel b/third_party/googleapis/google/firestore/v1/BUILD.bazel index 5f0d3091d..2a50e74ce 100644 --- a/third_party/googleapis/google/firestore/v1/BUILD.bazel +++ b/third_party/googleapis/google/firestore/v1/BUILD.bazel @@ -27,6 +27,7 @@ proto_library( "document.proto", "firestore.proto", "query.proto", + "query_profile.proto", "write.proto", ], deps = [ @@ -35,6 +36,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/rpc:status_proto", "//google/type:latlng_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:struct_proto", "@com_google_protobuf//:timestamp_proto", diff --git a/third_party/googleapis/google/firestore/v1/aggregation_result.proto b/third_party/googleapis/google/firestore/v1/aggregation_result.proto index 05fea5da9..25e5d2e2e 100644 --- a/third_party/googleapis/google/firestore/v1/aggregation_result.proto +++ b/third_party/googleapis/google/firestore/v1/aggregation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1/bloom_filter.proto b/third_party/googleapis/google/firestore/v1/bloom_filter.proto index c00bb9c17..1b9eb376f 100644 --- a/third_party/googleapis/google/firestore/v1/bloom_filter.proto +++ b/third_party/googleapis/google/firestore/v1/bloom_filter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1/common.proto b/third_party/googleapis/google/firestore/v1/common.proto index 2a562aa6e..fcb0f49fb 100644 --- a/third_party/googleapis/google/firestore/v1/common.proto +++ b/third_party/googleapis/google/firestore/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1/document.proto b/third_party/googleapis/google/firestore/v1/document.proto index a8764a1a2..5ad6752aa 100644 --- a/third_party/googleapis/google/firestore/v1/document.proto +++ b/third_party/googleapis/google/firestore/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1/firestore.proto b/third_party/googleapis/google/firestore/v1/firestore.proto index 3b843eed5..2ed6bf070 100644 --- a/third_party/googleapis/google/firestore/v1/firestore.proto +++ b/third_party/googleapis/google/firestore/v1/firestore.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import "google/firestore/v1/aggregation_result.proto"; import "google/firestore/v1/common.proto"; import "google/firestore/v1/document.proto"; import "google/firestore/v1/query.proto"; +import "google/firestore/v1/query_profile.proto"; import "google/firestore/v1/write.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; @@ -576,6 +577,10 @@ message RunQueryRequest { // minute timestamp within the past 7 days. google.protobuf.Timestamp read_time = 7; } + + // Optional. Explain options for the query. If set, additional query + // statistics will be returned. If not, only query results will be returned. + ExplainOptions explain_options = 10 [(google.api.field_behavior) = OPTIONAL]; } // The response for @@ -612,6 +617,11 @@ message RunQueryResponse { // documents will be returned. bool done = 6; } + + // Query explain metrics. This is only present when the + // [RunQueryRequest.explain_options][google.firestore.v1.RunQueryRequest.explain_options] + // is provided, and it is sent only once with the last response in the stream. + ExplainMetrics explain_metrics = 11; } // The request for @@ -651,6 +661,10 @@ message RunAggregationQueryRequest { // minute timestamp within the past 7 days. google.protobuf.Timestamp read_time = 6; } + + // Optional. Explain options for the query. If set, additional query + // statistics will be returned. If not, only query results will be returned. + ExplainOptions explain_options = 8 [(google.api.field_behavior) = OPTIONAL]; } // The response for @@ -676,6 +690,11 @@ message RunAggregationQueryResponse { // `result` will be sent, and this represents the time at which the query // was run. google.protobuf.Timestamp read_time = 3; + + // Query explain metrics. This is only present when the + // [RunAggregationQueryRequest.explain_options][google.firestore.v1.RunAggregationQueryRequest.explain_options] + // is provided, and it is sent only once with the last response in the stream. + ExplainMetrics explain_metrics = 10; } // The request for diff --git a/third_party/googleapis/google/firestore/v1/query.proto b/third_party/googleapis/google/firestore/v1/query.proto index 09eefa241..f0fda1832 100644 --- a/third_party/googleapis/google/firestore/v1/query.proto +++ b/third_party/googleapis/google/firestore/v1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -263,6 +263,51 @@ message StructuredQuery { repeated FieldReference fields = 2; } + // Nearest Neighbors search config. + message FindNearest { + // The distance measure to use when comparing vectors. + enum DistanceMeasure { + // Should not be set. + DISTANCE_MEASURE_UNSPECIFIED = 0; + + // Measures the EUCLIDEAN distance between the vectors. See + // [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn + // more + EUCLIDEAN = 1; + + // Compares vectors based on the angle between them, which allows you to + // measure similarity that isn't based on the vectors magnitude. + // We recommend using DOT_PRODUCT with unit normalized vectors instead of + // COSINE distance, which is mathematically equivalent with better + // performance. See [Cosine + // Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn + // more. + COSINE = 2; + + // Similar to cosine but is affected by the magnitude of the vectors. See + // [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more. + DOT_PRODUCT = 3; + } + + // Required. An indexed vector field to search upon. Only documents which + // contain vectors whose dimensionality match the query_vector can be + // returned. + FieldReference vector_field = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The query vector that we are searching on. Must be a vector of + // no more than 2048 dimensions. + Value query_vector = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Distance Measure to use, required. + DistanceMeasure distance_measure = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The number of nearest neighbors to return. Must be a positive + // integer of no more than 1000. + google.protobuf.Int32Value limit = 4 + [(google.api.field_behavior) = REQUIRED]; + } + // Optional sub-set of the fields to return. // // This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the @@ -360,6 +405,13 @@ message StructuredQuery { // // * The value must be greater than or equal to zero if specified. google.protobuf.Int32Value limit = 5; + + // Optional. A potential Nearest Neighbors Search. + // + // Applies after all other filters and ordering. + // + // Finds the closest vector embeddings to the given query vector. + FindNearest find_nearest = 9 [(google.api.field_behavior) = OPTIONAL]; } // Firestore query for running an aggregation over a diff --git a/third_party/googleapis/google/firestore/v1/query_profile.proto b/third_party/googleapis/google/firestore/v1/query_profile.proto new file mode 100644 index 000000000..de27144a0 --- /dev/null +++ b/third_party/googleapis/google/firestore/v1/query_profile.proto @@ -0,0 +1,92 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.firestore.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.Firestore.V1"; +option go_package = "cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb"; +option java_multiple_files = true; +option java_outer_classname = "QueryProfileProto"; +option java_package = "com.google.firestore.v1"; +option objc_class_prefix = "GCFS"; +option php_namespace = "Google\\Cloud\\Firestore\\V1"; +option ruby_package = "Google::Cloud::Firestore::V1"; + +// Specification of the Firestore Query Profile fields. + +// Explain options for the query. +message ExplainOptions { + // Optional. Whether to execute this query. + // + // When false (the default), the query will be planned, returning only + // metrics from the planning stages. + // + // When true, the query will be planned and executed, returning the full + // query results along with both planning and execution stage metrics. + bool analyze = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Explain metrics for the query. +message ExplainMetrics { + // Planning phase information for the query. + PlanSummary plan_summary = 1; + + // Aggregated stats from the execution of the query. Only present when + // [ExplainOptions.analyze][google.firestore.v1.ExplainOptions.analyze] is set + // to true. + ExecutionStats execution_stats = 2; +} + +// Planning phase information for the query. +message PlanSummary { + // The indexes selected for the query. For example: + // [ + // {"query_scope": "Collection", "properties": "(foo ASC, __name__ ASC)"}, + // {"query_scope": "Collection", "properties": "(bar ASC, __name__ ASC)"} + // ] + repeated google.protobuf.Struct indexes_used = 1; +} + +// Execution statistics for the query. +message ExecutionStats { + // Total number of results returned, including documents, projections, + // aggregation results, keys. + int64 results_returned = 1; + + // Total time to execute the query in the backend. + google.protobuf.Duration execution_duration = 3; + + // Total billable read operations. + int64 read_operations = 4; + + // Debugging statistics from the execution of the query. Note that the + // debugging stats are subject to change as Firestore evolves. It could + // include: + // { + // "indexes_entries_scanned": "1000", + // "documents_scanned": "20", + // "billing_details" : { + // "documents_billable": "20", + // "index_entries_billable": "1000", + // "min_query_cost": "0" + // } + // } + google.protobuf.Struct debug_stats = 5; +} diff --git a/third_party/googleapis/google/firestore/v1/write.proto b/third_party/googleapis/google/firestore/v1/write.proto index 4b46595ce..fca7fab8a 100644 --- a/third_party/googleapis/google/firestore/v1/write.proto +++ b/third_party/googleapis/google/firestore/v1/write.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1beta1/common.proto b/third_party/googleapis/google/firestore/v1beta1/common.proto index 1a18c41bc..0418e82d9 100644 --- a/third_party/googleapis/google/firestore/v1beta1/common.proto +++ b/third_party/googleapis/google/firestore/v1beta1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1beta1/document.proto b/third_party/googleapis/google/firestore/v1beta1/document.proto index de192806d..962d95c53 100644 --- a/third_party/googleapis/google/firestore/v1beta1/document.proto +++ b/third_party/googleapis/google/firestore/v1beta1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1beta1/firestore.proto b/third_party/googleapis/google/firestore/v1beta1/firestore.proto index 047f029e4..674193913 100644 --- a/third_party/googleapis/google/firestore/v1beta1/firestore.proto +++ b/third_party/googleapis/google/firestore/v1beta1/firestore.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1beta1/query.proto b/third_party/googleapis/google/firestore/v1beta1/query.proto index 7d7ef11ce..868c8ef2a 100644 --- a/third_party/googleapis/google/firestore/v1beta1/query.proto +++ b/third_party/googleapis/google/firestore/v1beta1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1beta1/undeliverable_first_gen_event.proto b/third_party/googleapis/google/firestore/v1beta1/undeliverable_first_gen_event.proto index fd3bf1f49..e0e9b17e0 100644 --- a/third_party/googleapis/google/firestore/v1beta1/undeliverable_first_gen_event.proto +++ b/third_party/googleapis/google/firestore/v1beta1/undeliverable_first_gen_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/firestore/v1beta1/write.proto b/third_party/googleapis/google/firestore/v1beta1/write.proto index 124526a59..00ba29a90 100644 --- a/third_party/googleapis/google/firestore/v1beta1/write.proto +++ b/third_party/googleapis/google/firestore/v1beta1/write.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/annotations.proto b/third_party/googleapis/google/genomics/v1/annotations.proto index dea540649..8cebf91dd 100644 --- a/third_party/googleapis/google/genomics/v1/annotations.proto +++ b/third_party/googleapis/google/genomics/v1/annotations.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/cigar.proto b/third_party/googleapis/google/genomics/v1/cigar.proto index 29f9fa536..a8ee3780d 100644 --- a/third_party/googleapis/google/genomics/v1/cigar.proto +++ b/third_party/googleapis/google/genomics/v1/cigar.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/datasets.proto b/third_party/googleapis/google/genomics/v1/datasets.proto index 065942fc8..f4d47fb37 100644 --- a/third_party/googleapis/google/genomics/v1/datasets.proto +++ b/third_party/googleapis/google/genomics/v1/datasets.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/operations.proto b/third_party/googleapis/google/genomics/v1/operations.proto index 19423b7d8..feaacb398 100644 --- a/third_party/googleapis/google/genomics/v1/operations.proto +++ b/third_party/googleapis/google/genomics/v1/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/position.proto b/third_party/googleapis/google/genomics/v1/position.proto index 5017fae88..ad1c0751b 100644 --- a/third_party/googleapis/google/genomics/v1/position.proto +++ b/third_party/googleapis/google/genomics/v1/position.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/range.proto b/third_party/googleapis/google/genomics/v1/range.proto index c4a685683..457606f74 100644 --- a/third_party/googleapis/google/genomics/v1/range.proto +++ b/third_party/googleapis/google/genomics/v1/range.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/readalignment.proto b/third_party/googleapis/google/genomics/v1/readalignment.proto index 1eb464034..3ca5088a1 100644 --- a/third_party/googleapis/google/genomics/v1/readalignment.proto +++ b/third_party/googleapis/google/genomics/v1/readalignment.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/readgroup.proto b/third_party/googleapis/google/genomics/v1/readgroup.proto index a72a78001..0a269d455 100644 --- a/third_party/googleapis/google/genomics/v1/readgroup.proto +++ b/third_party/googleapis/google/genomics/v1/readgroup.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/readgroupset.proto b/third_party/googleapis/google/genomics/v1/readgroupset.proto index b40d90042..61a8a8bdc 100644 --- a/third_party/googleapis/google/genomics/v1/readgroupset.proto +++ b/third_party/googleapis/google/genomics/v1/readgroupset.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/reads.proto b/third_party/googleapis/google/genomics/v1/reads.proto index 316dec73b..2fa7961be 100644 --- a/third_party/googleapis/google/genomics/v1/reads.proto +++ b/third_party/googleapis/google/genomics/v1/reads.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/references.proto b/third_party/googleapis/google/genomics/v1/references.proto index fb9dc4e63..27cbcd318 100644 --- a/third_party/googleapis/google/genomics/v1/references.proto +++ b/third_party/googleapis/google/genomics/v1/references.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1/variants.proto b/third_party/googleapis/google/genomics/v1/variants.proto index 472a06f5f..73a1c28e4 100644 --- a/third_party/googleapis/google/genomics/v1/variants.proto +++ b/third_party/googleapis/google/genomics/v1/variants.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/genomics/v1alpha2/pipelines.proto b/third_party/googleapis/google/genomics/v1alpha2/pipelines.proto index 51b92ce46..c5b455e8d 100644 --- a/third_party/googleapis/google/genomics/v1alpha2/pipelines.proto +++ b/third_party/googleapis/google/genomics/v1alpha2/pipelines.proto @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/geo/type/BUILD.bazel b/third_party/googleapis/google/geo/type/BUILD.bazel index 4e587a694..1fcd2eb5e 100644 --- a/third_party/googleapis/google/geo/type/BUILD.bazel +++ b/third_party/googleapis/google/geo/type/BUILD.bazel @@ -80,6 +80,28 @@ py_gapic_assembly_pkg( ], ) +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_proto_library", +) + +php_proto_library( + name = "viewport_php_proto", + deps = [":viewport_proto"], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "viewport-php", + deps = [ + ":viewport_php_proto", + ], +) + ############################################################################## # C++ ############################################################################## diff --git a/third_party/googleapis/google/geo/type/viewport.proto b/third_party/googleapis/google/geo/type/viewport.proto index ad5029f83..df68a3240 100644 --- a/third_party/googleapis/google/geo/type/viewport.proto +++ b/third_party/googleapis/google/geo/type/viewport.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/home/enterprise/sdm/v1/device.proto b/third_party/googleapis/google/home/enterprise/sdm/v1/device.proto index b67184b74..8b443c710 100644 --- a/third_party/googleapis/google/home/enterprise/sdm/v1/device.proto +++ b/third_party/googleapis/google/home/enterprise/sdm/v1/device.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/home/enterprise/sdm/v1/site.proto b/third_party/googleapis/google/home/enterprise/sdm/v1/site.proto index f3a5fb641..a4a98cf15 100644 --- a/third_party/googleapis/google/home/enterprise/sdm/v1/site.proto +++ b/third_party/googleapis/google/home/enterprise/sdm/v1/site.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/home/enterprise/sdm/v1/smart_device_management_service.proto b/third_party/googleapis/google/home/enterprise/sdm/v1/smart_device_management_service.proto index 831d8f38f..422ac8331 100644 --- a/third_party/googleapis/google/home/enterprise/sdm/v1/smart_device_management_service.proto +++ b/third_party/googleapis/google/home/enterprise/sdm/v1/smart_device_management_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/home/graph/v1/device.proto b/third_party/googleapis/google/home/graph/v1/device.proto index 2617de976..3c005d676 100644 --- a/third_party/googleapis/google/home/graph/v1/device.proto +++ b/third_party/googleapis/google/home/graph/v1/device.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/home/graph/v1/homegraph.proto b/third_party/googleapis/google/home/graph/v1/homegraph.proto index 4dfc34cf0..ab313e22e 100644 --- a/third_party/googleapis/google/home/graph/v1/homegraph.proto +++ b/third_party/googleapis/google/home/graph/v1/homegraph.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/admin/v1/BUILD.bazel b/third_party/googleapis/google/iam/admin/v1/BUILD.bazel index aefef33e2..178cf4e39 100644 --- a/third_party/googleapis/google/iam/admin/v1/BUILD.bazel +++ b/third_party/googleapis/google/iam/admin/v1/BUILD.bazel @@ -141,6 +141,7 @@ go_gapic_library( grpc_service_config = "iam_grpc_service_config.json", importpath = "cloud.google.com/go/iam/admin/apiv1;admin", metadata = True, + release_level = "ga", rest_numeric_enums = True, service_yaml = "iam.yaml", transport = "grpc", @@ -182,6 +183,11 @@ py_gapic_library( deps = [ "//google/iam/v1:iam_policy_py_proto", ], + opt_args = [ + "python-gapic-name=iam_admin", + "python-gapic-namespace=google.cloud", + "warehouse-package-name=google-cloud-iam", + ], ) py_test( diff --git a/third_party/googleapis/google/iam/admin/v1/audit_data.proto b/third_party/googleapis/google/iam/admin/v1/audit_data.proto index 066c12dee..8f3508725 100644 --- a/third_party/googleapis/google/iam/admin/v1/audit_data.proto +++ b/third_party/googleapis/google/iam/admin/v1/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/admin/v1/iam.proto b/third_party/googleapis/google/iam/admin/v1/iam.proto index 5608c01a6..8d3fe5cda 100644 --- a/third_party/googleapis/google/iam/admin/v1/iam.proto +++ b/third_party/googleapis/google/iam/admin/v1/iam.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/credentials/v1/common.proto b/third_party/googleapis/google/iam/credentials/v1/common.proto index 5f2d0fdc7..d25982dac 100644 --- a/third_party/googleapis/google/iam/credentials/v1/common.proto +++ b/third_party/googleapis/google/iam/credentials/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/credentials/v1/iamcredentials.proto b/third_party/googleapis/google/iam/credentials/v1/iamcredentials.proto index 4bbd1a16f..3f5d70568 100644 --- a/third_party/googleapis/google/iam/credentials/v1/iamcredentials.proto +++ b/third_party/googleapis/google/iam/credentials/v1/iamcredentials.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v1/iam_policy.proto b/third_party/googleapis/google/iam/v1/iam_policy.proto index 10c65f968..12580e9cd 100644 --- a/third_party/googleapis/google/iam/v1/iam_policy.proto +++ b/third_party/googleapis/google/iam/v1/iam_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v1/logging/BUILD.bazel b/third_party/googleapis/google/iam/v1/logging/BUILD.bazel index 690d26911..6ad375a55 100644 --- a/third_party/googleapis/google/iam/v1/logging/BUILD.bazel +++ b/third_party/googleapis/google/iam/v1/logging/BUILD.bazel @@ -27,13 +27,20 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## -load("@com_google_googleapis_imports//:imports.bzl", "java_proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "java_proto_library", "java_gapic_assembly_gradle_pkg") java_proto_library( name = "logging_java_proto", deps = [":audit_data_proto"], ) +java_gapic_assembly_gradle_pkg( + name = "google-iam-logging-v1-java", + deps = [ + ":logging_java_proto", + ], +) + ############################################################################## # Go ############################################################################## diff --git a/third_party/googleapis/google/iam/v1/logging/audit_data.proto b/third_party/googleapis/google/iam/v1/logging/audit_data.proto index ee5550c74..ccafe0487 100644 --- a/third_party/googleapis/google/iam/v1/logging/audit_data.proto +++ b/third_party/googleapis/google/iam/v1/logging/audit_data.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v1/options.proto b/third_party/googleapis/google/iam/v1/options.proto index 84e9c4736..5334962a1 100644 --- a/third_party/googleapis/google/iam/v1/options.proto +++ b/third_party/googleapis/google/iam/v1/options.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v1/policy.proto b/third_party/googleapis/google/iam/v1/policy.proto index 2386563b3..9bff39ac7 100644 --- a/third_party/googleapis/google/iam/v1/policy.proto +++ b/third_party/googleapis/google/iam/v1/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v1beta/workload_identity_pool.proto b/third_party/googleapis/google/iam/v1beta/workload_identity_pool.proto index f1b7f44c8..5a4a97a0e 100644 --- a/third_party/googleapis/google/iam/v1beta/workload_identity_pool.proto +++ b/third_party/googleapis/google/iam/v1beta/workload_identity_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v2/deny.proto b/third_party/googleapis/google/iam/v2/deny.proto index a3c8ff14e..2f402872c 100644 --- a/third_party/googleapis/google/iam/v2/deny.proto +++ b/third_party/googleapis/google/iam/v2/deny.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v2/policy.proto b/third_party/googleapis/google/iam/v2/policy.proto index 56f73da08..e732fa24b 100644 --- a/third_party/googleapis/google/iam/v2/policy.proto +++ b/third_party/googleapis/google/iam/v2/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v2beta/deny.proto b/third_party/googleapis/google/iam/v2beta/deny.proto index 4d6c27744..56dd64fc9 100644 --- a/third_party/googleapis/google/iam/v2beta/deny.proto +++ b/third_party/googleapis/google/iam/v2beta/deny.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/iam/v2beta/policy.proto b/third_party/googleapis/google/iam/v2beta/policy.proto index 9363573b1..f96e4b508 100644 --- a/third_party/googleapis/google/iam/v2beta/policy.proto +++ b/third_party/googleapis/google/iam/v2beta/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/identity/accesscontextmanager/type/device_resources.proto b/third_party/googleapis/google/identity/accesscontextmanager/type/device_resources.proto index a3f000cf8..c442283b3 100644 --- a/third_party/googleapis/google/identity/accesscontextmanager/type/device_resources.proto +++ b/third_party/googleapis/google/identity/accesscontextmanager/type/device_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/identity/accesscontextmanager/v1/access_context_manager.proto b/third_party/googleapis/google/identity/accesscontextmanager/v1/access_context_manager.proto index c2ea6103b..7563f09a0 100644 --- a/third_party/googleapis/google/identity/accesscontextmanager/v1/access_context_manager.proto +++ b/third_party/googleapis/google/identity/accesscontextmanager/v1/access_context_manager.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/identity/accesscontextmanager/v1/access_level.proto b/third_party/googleapis/google/identity/accesscontextmanager/v1/access_level.proto index 9c2db6c74..204b74a82 100644 --- a/third_party/googleapis/google/identity/accesscontextmanager/v1/access_level.proto +++ b/third_party/googleapis/google/identity/accesscontextmanager/v1/access_level.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/identity/accesscontextmanager/v1/access_policy.proto b/third_party/googleapis/google/identity/accesscontextmanager/v1/access_policy.proto index 86d6541af..65b574d93 100644 --- a/third_party/googleapis/google/identity/accesscontextmanager/v1/access_policy.proto +++ b/third_party/googleapis/google/identity/accesscontextmanager/v1/access_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto b/third_party/googleapis/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto index 4a296d572..ced18e9f9 100644 --- a/third_party/googleapis/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto +++ b/third_party/googleapis/google/identity/accesscontextmanager/v1/gcp_user_access_binding.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/identity/accesscontextmanager/v1/service_perimeter.proto b/third_party/googleapis/google/identity/accesscontextmanager/v1/service_perimeter.proto index 03c324dbf..d135380e7 100644 --- a/third_party/googleapis/google/identity/accesscontextmanager/v1/service_perimeter.proto +++ b/third_party/googleapis/google/identity/accesscontextmanager/v1/service_perimeter.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/logging/type/http_request.proto b/third_party/googleapis/google/logging/type/http_request.proto index 425a09d6e..fa2dd64e8 100644 --- a/third_party/googleapis/google/logging/type/http_request.proto +++ b/third_party/googleapis/google/logging/type/http_request.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/logging/type/log_severity.proto b/third_party/googleapis/google/logging/type/log_severity.proto index 674012581..96ff87468 100644 --- a/third_party/googleapis/google/logging/type/log_severity.proto +++ b/third_party/googleapis/google/logging/type/log_severity.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/logging/v2/log_entry.proto b/third_party/googleapis/google/logging/v2/log_entry.proto index 94c5cdff8..2404219f6 100644 --- a/third_party/googleapis/google/logging/v2/log_entry.proto +++ b/third_party/googleapis/google/logging/v2/log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/logging/v2/logging.proto b/third_party/googleapis/google/logging/v2/logging.proto index 92d481eac..cd686e9ff 100644 --- a/third_party/googleapis/google/logging/v2/logging.proto +++ b/third_party/googleapis/google/logging/v2/logging.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/logging/v2/logging_config.proto b/third_party/googleapis/google/logging/v2/logging_config.proto index cc7677b12..d914df1ba 100644 --- a/third_party/googleapis/google/logging/v2/logging_config.proto +++ b/third_party/googleapis/google/logging/v2/logging_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/logging/v2/logging_metrics.proto b/third_party/googleapis/google/logging/v2/logging_metrics.proto index 852ba14ce..a387ef2b4 100644 --- a/third_party/googleapis/google/logging/v2/logging_metrics.proto +++ b/third_party/googleapis/google/logging/v2/logging_metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/longrunning/BUILD.bazel b/third_party/googleapis/google/longrunning/BUILD.bazel index 9295b7cd5..a2c6bf459 100644 --- a/third_party/googleapis/google/longrunning/BUILD.bazel +++ b/third_party/googleapis/google/longrunning/BUILD.bazel @@ -193,6 +193,7 @@ php_gapic_library( name = "longrunning_php_gapic", srcs = [":longrunning_proto_with_info"], grpc_service_config = "longrunning_grpc_service_config.json", + migration_mode = "MIGRATING", rest_numeric_enums = False, service_yaml = "longrunning.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/longrunning/longrunning_gapic.yaml b/third_party/googleapis/google/longrunning/longrunning_gapic.yaml index ce7fbf4aa..d6502cfbf 100644 --- a/third_party/googleapis/google/longrunning/longrunning_gapic.yaml +++ b/third_party/googleapis/google/longrunning/longrunning_gapic.yaml @@ -13,7 +13,7 @@ language_settings: ruby: package_name: Google::Longrunning php: - package_name: Google\ApiCore\LongRunning + package_name: Google\LongRunning nodejs: package_name: longrunning interfaces: diff --git a/third_party/googleapis/google/longrunning/operations.proto b/third_party/googleapis/google/longrunning/operations.proto index c8fda207e..be8880b3f 100644 --- a/third_party/googleapis/google/longrunning/operations.proto +++ b/third_party/googleapis/google/longrunning/operations.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/addressvalidation/v1/address.proto b/third_party/googleapis/google/maps/addressvalidation/v1/address.proto index 031361178..810e9d621 100644 --- a/third_party/googleapis/google/maps/addressvalidation/v1/address.proto +++ b/third_party/googleapis/google/maps/addressvalidation/v1/address.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/addressvalidation/v1/address_validation_service.proto b/third_party/googleapis/google/maps/addressvalidation/v1/address_validation_service.proto index 134b27577..4fa6ddcec 100644 --- a/third_party/googleapis/google/maps/addressvalidation/v1/address_validation_service.proto +++ b/third_party/googleapis/google/maps/addressvalidation/v1/address_validation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/addressvalidation/v1/geocode.proto b/third_party/googleapis/google/maps/addressvalidation/v1/geocode.proto index 2caa88a4c..0a00fa0cb 100644 --- a/third_party/googleapis/google/maps/addressvalidation/v1/geocode.proto +++ b/third_party/googleapis/google/maps/addressvalidation/v1/geocode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/addressvalidation/v1/metadata.proto b/third_party/googleapis/google/maps/addressvalidation/v1/metadata.proto index b65b49841..f58950566 100644 --- a/third_party/googleapis/google/maps/addressvalidation/v1/metadata.proto +++ b/third_party/googleapis/google/maps/addressvalidation/v1/metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/addressvalidation/v1/usps_data.proto b/third_party/googleapis/google/maps/addressvalidation/v1/usps_data.proto index a6d85fb3f..c8370d4c5 100644 --- a/third_party/googleapis/google/maps/addressvalidation/v1/usps_data.proto +++ b/third_party/googleapis/google/maps/addressvalidation/v1/usps_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/aerialview/v1/aerial_view.proto b/third_party/googleapis/google/maps/aerialview/v1/aerial_view.proto index ac952f1f6..1a0c3ae26 100644 --- a/third_party/googleapis/google/maps/aerialview/v1/aerial_view.proto +++ b/third_party/googleapis/google/maps/aerialview/v1/aerial_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/fleetengine/BUILD.bazel b/third_party/googleapis/google/maps/fleetengine/BUILD.bazel new file mode 100644 index 000000000..4fca86402 --- /dev/null +++ b/third_party/googleapis/google/maps/fleetengine/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-maps-fleet_engine. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for fleet engine. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "fleetengine_ruby_wrapper", + srcs = ["//google/maps/fleetengine/v1:fleetengine_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-maps-fleet_engine", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/maps/fleetengine/v1:fleetengine_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-maps-fleet_engine-ruby", + deps = [ + ":fleetengine_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/BUILD.bazel b/third_party/googleapis/google/maps/fleetengine/delivery/BUILD.bazel new file mode 100644 index 000000000..2e7263098 --- /dev/null +++ b/third_party/googleapis/google/maps/fleetengine/delivery/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-maps-fleet_engine-delivery. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for fleet engine delivery. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( + name = "delivery_ruby_wrapper", + srcs = ["//google/maps/fleetengine/delivery/v1:delivery_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-maps-fleet_engine-delivery", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/maps/fleetengine/delivery/v1:fleetengine_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-maps-fleet_engine-delivery-ruby", + deps = [ + ":delivery_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/BUILD.bazel b/third_party/googleapis/google/maps/fleetengine/delivery/v1/BUILD.bazel index 0c554ae17..454411bef 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/BUILD.bazel +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/BUILD.bazel @@ -219,6 +219,7 @@ php_gapic_library( name = "delivery_php_gapic", srcs = [":delivery_proto_with_info"], grpc_service_config = "fleetengine_delivery_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "fleetengine_v1.yaml", transport = "grpc+rest", @@ -271,7 +272,8 @@ ruby_cloud_gapic_library( name = "delivery_ruby_gapic", srcs = [":delivery_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-maps-fleetengine-delivery-v1", + "ruby-cloud-gem-name=google-maps-fleet_engine-delivery-v1", + "ruby-cloud-extra-dependencies=google-geo-type=>0.0+<2.a", ], grpc_service_config = "fleetengine_delivery_grpc_service_config.json", rest_numeric_enums = True, diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/common.proto b/third_party/googleapis/google/maps/fleetengine/delivery/v1/common.proto index 53911eb95..494a98f12 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/common.proto +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,6 +27,8 @@ option java_multiple_files = true; option java_outer_classname = "Common"; option java_package = "google.maps.fleetengine.delivery.v1"; option objc_class_prefix = "CFED"; +option php_namespace = "Google\\Maps\\FleetEngine\\Delivery\\V1"; +option ruby_package = "Google::Maps::FleetEngine::Delivery::V1"; // Describes a vehicle attribute as a key-value pair. The "key:value" string // length cannot exceed 256 characters. diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_api.proto b/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_api.proto index 469ed3e78..4b3116622 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_api.proto +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_api.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,6 +34,8 @@ option java_multiple_files = true; option java_outer_classname = "DeliveryApi"; option java_package = "google.maps.fleetengine.delivery.v1"; option objc_class_prefix = "CFED"; +option php_namespace = "Google\\Maps\\FleetEngine\\Delivery\\V1"; +option ruby_package = "Google::Maps::FleetEngine::Delivery::V1"; option (google.api.resource_definition) = { type: "fleetengine.googleapis.com/Provider" pattern: "providers/{provider}" @@ -78,9 +80,9 @@ service DeliveryService { // Writes updated `DeliveryVehicle` data to Fleet Engine, and assigns // `Tasks` to the `DeliveryVehicle`. You cannot update the name of the - // `DeliveryVehicle`. You *can* update `remaining_vehicle_journey_segments` - // though, but it must contain all of the `VehicleJourneySegment`s currently - // on the `DeliveryVehicle`. The `task_id`s are retrieved from + // `DeliveryVehicle`. You *can* update `remaining_vehicle_journey_segments`, + // but it must contain all of the `VehicleJourneySegment`s to be persisted on + // the `DeliveryVehicle`. The `task_id`s are retrieved from // `remaining_vehicle_journey_segments`, and their corresponding `Tasks` are // assigned to the `DeliveryVehicle` if they have not yet been assigned. rpc UpdateDeliveryVehicle(UpdateDeliveryVehicleRequest) @@ -142,21 +144,6 @@ service DeliveryService { option (google.api.method_signature) = "name"; } - // Deprecated: Use `GetTaskTrackingInfo` instead. - rpc SearchTasks(SearchTasksRequest) returns (SearchTasksResponse) { - option deprecated = true; - option (google.api.http) = { - get: "/v1/{parent=providers/*}/tasks:search" - }; - option (google.api.routing) = { - routing_parameters { - field: "parent" - path_template: "{provider_id=providers/*}" - } - }; - option (google.api.method_signature) = "parent"; - } - // Updates `Task` data. rpc UpdateTask(UpdateTaskRequest) returns (Task) { option (google.api.http) = { @@ -439,59 +426,6 @@ message GetTaskRequest { ]; } -// Deprecated: Issue `GetTaskTrackingInfoRequest`s to `GetTaskTrackingInfo` -// instead. -message SearchTasksRequest { - option deprecated = true; - - // Optional. The standard Delivery API request header. - DeliveryRequestHeader header = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Must be in the format `providers/{provider}`. - // The provider must be the Google Cloud Project ID. For example, - // `sample-cloud-project`. - string parent = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The identifier of the set of related Tasks being requested. - // Tracking IDs are subject to the following restrictions: - // - // * Must be a valid Unicode string. - // * Limited to a maximum length of 64 characters. - // * Normalized according to [Unicode Normalization Form C] - // (http://www.unicode.org/reports/tr15/). - // * May not contain any of the following ASCII characters: '/', ':', '?', - // ',', or '#'. - string tracking_id = 4 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The maximum number of Tasks to return. The service may return - // fewer than this value. If you don't specify this value, then the server - // determines the number of results to return. - int32 page_size = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `SearchTasks` call. You - // must provide this value to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `SearchTasks` must match - // the call that provided the page token. - string page_token = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// The `SearchTasks` response. It contains the set of Tasks that meet the search -// criteria in the `SearchTasksRequest`. -message SearchTasksResponse { - option deprecated = true; - - // The set of Tasks for the requested `tracking_id`. A successful response can - // also be empty. An empty response indicates that no Tasks are associated - // with the supplied `tracking_id`. - repeated Task tasks = 1; - - // Pass this token in the `SearchTasksRequest` to continue to - // list results. If all results have been returned, then this field is either - // an empty string, or it doesn't appear in the response. - string next_page_token = 2; -} - // The `UpdateTask` request message. message UpdateTaskRequest { // Optional. The standard Delivery API request header. @@ -554,8 +488,8 @@ message ListTasksRequest { // Optional. A filter query to apply when listing Tasks. See // http://aip.dev/160 for examples of filter syntax. If you don't specify a // value, or if you filter on an empty string, then all Tasks are returned. - // For information about the Task properties that you can filter on, see [Task - // list](/maps/documentation/transportation-logistics/last-mile-fleet-solution/fleet-performance/fleet-engine/deliveries_api#list_tasks). + // For information about the Task properties that you can filter on, see [List + // tasks](https://developers.google.com/maps/documentation/transportation-logistics/last-mile-fleet-solution/fleet-performance/fleet-engine/deliveries_api#list-tasks). string filter = 6 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto b/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto index 3b9a59e45..149f9f253 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/delivery_vehicles.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,6 +29,8 @@ option java_multiple_files = true; option java_outer_classname = "DeliveryVehicles"; option java_package = "google.maps.fleetengine.delivery.v1"; option objc_class_prefix = "CFED"; +option php_namespace = "Google\\Maps\\FleetEngine\\Delivery\\V1"; +option ruby_package = "Google::Maps::FleetEngine::Delivery::V1"; // The `DeliveryVehicle` message. A delivery vehicle transports shipments from a // depot to a delivery location, and from a pickup location to the depot. In @@ -215,9 +217,8 @@ message VehicleJourneySegment { message VehicleStop { // Additional information about the Task performed at this stop. message TaskInfo { - // The Task ID. This field won't be populated in the response of either a - // `GetTask`, or a `SearchTasks` call. Task IDs are subject to the following - // restrictions: + // The Task ID. This field won't be populated in the response of a `GetTask` + // call. Task IDs are subject to the following restrictions: // // * Must be a valid Unicode string. // * Limited to a maximum length of 64 characters. @@ -255,15 +256,14 @@ message VehicleStop { // Required. The location of the stop. Note that the locations in the `Task`s // might not exactly match this location, but will be within a short distance - // of it. This field won't be populated in the response of either a `GetTask`, - // or a `SearchTasks` call. + // of it. This field won't be populated in the response of a `GetTask` call. LocationInfo planned_location = 1 [(google.api.field_behavior) = REQUIRED]; // The list of `Task`s to be performed at this stop. This field won't be - // populated in the response of either a `GetTask` or `SearchTasks` call. + // populated in the response of a `GetTask` call. repeated TaskInfo tasks = 2; // The state of the `VehicleStop`. This field won't be populated in the - // response of either a `GetTask`, or a `SearchTasks` call. + // response of a `GetTask` call. State state = 3; } diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/header.proto b/third_party/googleapis/google/maps/fleetengine/delivery/v1/header.proto index 716c896ac..4bbc9766c 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/header.proto +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/header.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,6 +24,8 @@ option java_multiple_files = true; option java_outer_classname = "Headers"; option java_package = "google.maps.fleetengine.delivery.v1"; option objc_class_prefix = "CFED"; +option php_namespace = "Google\\Maps\\FleetEngine\\Delivery\\V1"; +option ruby_package = "Google::Maps::FleetEngine::Delivery::V1"; // A RequestHeader contains fields common to all Delivery RPC requests. message DeliveryRequestHeader { diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/task_tracking_info.proto b/third_party/googleapis/google/maps/fleetengine/delivery/v1/task_tracking_info.proto index 41c4fecf7..c241eaca6 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/task_tracking_info.proto +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/task_tracking_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,6 +31,8 @@ option java_multiple_files = true; option java_outer_classname = "TaskTrackingInfoProto"; option java_package = "google.maps.fleetengine.delivery.v1"; option objc_class_prefix = "CFED"; +option php_namespace = "Google\\Maps\\FleetEngine\\Delivery\\V1"; +option ruby_package = "Google::Maps::FleetEngine::Delivery::V1"; // The `TaskTrackingInfo` message. The message contains task tracking // information which will be used for display. If a tracking ID is associated diff --git a/third_party/googleapis/google/maps/fleetengine/delivery/v1/tasks.proto b/third_party/googleapis/google/maps/fleetengine/delivery/v1/tasks.proto index 5bb5b2730..5ddbf7453 100644 --- a/third_party/googleapis/google/maps/fleetengine/delivery/v1/tasks.proto +++ b/third_party/googleapis/google/maps/fleetengine/delivery/v1/tasks.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,6 +29,8 @@ option java_multiple_files = true; option java_outer_classname = "Tasks"; option java_package = "google.maps.fleetengine.delivery.v1"; option objc_class_prefix = "CFED"; +option php_namespace = "Google\\Maps\\FleetEngine\\Delivery\\V1"; +option ruby_package = "Google::Maps::FleetEngine::Delivery::V1"; // A Task in the Delivery API represents a single action to track. In general, // there is a distinction between shipment-related Tasks and break Tasks. A diff --git a/third_party/googleapis/google/maps/fleetengine/v1/BUILD.bazel b/third_party/googleapis/google/maps/fleetengine/v1/BUILD.bazel index 74058590f..5985338f0 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/BUILD.bazel +++ b/third_party/googleapis/google/maps/fleetengine/v1/BUILD.bazel @@ -220,6 +220,7 @@ php_gapic_library( name = "fleetengine_php_gapic", srcs = [":fleetengine_proto_with_info"], grpc_service_config = "fleetengine_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "fleetengine_v1.yaml", transport = "grpc+rest", @@ -271,7 +272,10 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "fleetengine_ruby_gapic", srcs = [":fleetengine_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-maps-fleetengine-v1"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-maps-fleet_engine-v1", + "ruby-cloud-extra-dependencies=google-geo-type=>0.0+<2.a", + ], grpc_service_config = "fleetengine_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "fleetengine_v1.yaml", diff --git a/third_party/googleapis/google/maps/fleetengine/v1/fleetengine.proto b/third_party/googleapis/google/maps/fleetengine/v1/fleetengine.proto index 36a5905ac..fcad8f088 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/fleetengine.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/fleetengine.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,9 +29,14 @@ option java_multiple_files = true; option java_outer_classname = "FleetEngine"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; -// Identifies a terminal point. +// Deprecated: TerminalPoints are no longer supported in Fleet Engine. Use +// `TerminalLocation.point` instead. message TerminalPointId { + option deprecated = true; + // Deprecated. oneof Id { // Deprecated. @@ -41,8 +46,8 @@ message TerminalPointId { string generated_id = 3 [deprecated = true]; } - // Unique ID of the terminal point. - string value = 4; + // Deprecated. + string value = 4 [deprecated = true]; } // Describes the location of a waypoint. @@ -50,10 +55,10 @@ message TerminalLocation { // Required. Denotes the location of a trip waypoint. google.type.LatLng point = 1 [(google.api.field_behavior) = REQUIRED]; - // ID of the terminal point. - TerminalPointId terminal_point_id = 2; + // Deprecated: Specify the `point` field instead. + TerminalPointId terminal_point_id = 2 [deprecated = true]; - // Deprecated. + // Deprecated: Specify the `point` field instead. string access_point_id = 3 [deprecated = true]; // Deprecated. diff --git a/third_party/googleapis/google/maps/fleetengine/v1/header.proto b/third_party/googleapis/google/maps/fleetengine/v1/header.proto index c6a08f39a..3d81e1020 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/header.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/header.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,6 +24,8 @@ option java_multiple_files = true; option java_outer_classname = "Headers"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; // A RequestHeader contains fields common to all Fleet Engine RPC requests. message RequestHeader { diff --git a/third_party/googleapis/google/maps/fleetengine/v1/traffic.proto b/third_party/googleapis/google/maps/fleetengine/v1/traffic.proto index b2821b2aa..6244b74d7 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/traffic.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/traffic.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,6 +22,8 @@ option java_multiple_files = true; option java_outer_classname = "TrafficProto"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; // Traffic density indicator on a contiguous segment of a path. Given a path // with points P_0, P_1, ... , P_N (zero-based index), the SpeedReadingInterval diff --git a/third_party/googleapis/google/maps/fleetengine/v1/trip_api.proto b/third_party/googleapis/google/maps/fleetengine/v1/trip_api.proto index 470008098..194ab253b 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/trip_api.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/trip_api.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,6 +35,8 @@ option java_multiple_files = true; option java_outer_classname = "TripApi"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; // Trip management service. service TripService { diff --git a/third_party/googleapis/google/maps/fleetengine/v1/trips.proto b/third_party/googleapis/google/maps/fleetengine/v1/trips.proto index c21aeb3a4..a60363a46 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/trips.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/trips.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,6 +31,8 @@ option java_multiple_files = true; option java_outer_classname = "Trips"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; // Trip metadata. message Trip { diff --git a/third_party/googleapis/google/maps/fleetengine/v1/vehicle_api.proto b/third_party/googleapis/google/maps/fleetengine/v1/vehicle_api.proto index efc310f2e..34274f54c 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/vehicle_api.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/vehicle_api.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,6 +37,8 @@ option java_multiple_files = true; option java_outer_classname = "VehicleApi"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; // Vehicle management service. service VehicleService { @@ -128,23 +130,6 @@ service VehicleService { }; } - // Deprecated: Use the `UpdateVehicle` method instead. - // UpdateVehicleLocation updates the location of the vehicle. - rpc UpdateVehicleLocation(UpdateVehicleLocationRequest) - returns (VehicleLocation) { - option deprecated = true; - option (google.api.http) = { - put: "/v1/{name=providers/*/vehicles/*}:updateLocation" - body: "*" - }; - option (google.api.routing) = { - routing_parameters { - field: "name" - path_template: "{provider_id=providers/*}" - } - }; - } - // Partially updates a vehicle's attributes. // Only the attributes mentioned in the request will be updated, other // attributes will NOT be altered. Note: this is different in `UpdateVehicle`, @@ -191,22 +176,6 @@ service VehicleService { } }; } - - // Deprecated: Use `SearchVehicles` instead. - rpc SearchFuzzedVehicles(SearchVehiclesRequest) - returns (SearchVehiclesResponse) { - option deprecated = true; - option (google.api.http) = { - post: "/v1/{parent=providers/*}/vehicles:searchFuzzed" - body: "*" - }; - option (google.api.routing) = { - routing_parameters { - field: "parent" - path_template: "{provider_id=providers/*}" - } - }; - } } // `CreateVehicle` request message. @@ -327,29 +296,6 @@ message UpdateVehicleRequest { [(google.api.field_behavior) = REQUIRED]; } -// `UpdateVehicleLocation` request message. -message UpdateVehicleLocationRequest { - option deprecated = true; - - // The standard Fleet Engine request header. - RequestHeader header = 1; - - // Required. Must be in the format - // `providers/{provider}/vehicles/{vehicle}`. - // The {provider} must be the Project ID (for example, `sample-cloud-project`) - // of the Google Cloud Project of which the service account making - // this call is a member. - string name = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The vehicle's most recent location. The `location` and - // `update_time` subfields are required. - VehicleLocation current_location = 4 [(google.api.field_behavior) = REQUIRED]; - - // Set the vehicle's state to either `ONLINE` or `OFFLINE`. - // If set to `UNKNOWN_VEHICLE_STATE`, the vehicle's state will not be altered. - VehicleState current_state = 5; -} - // `UpdateVehicleAttributes` request message. message UpdateVehicleAttributesRequest { // The standard Fleet Engine request header. diff --git a/third_party/googleapis/google/maps/fleetengine/v1/vehicles.proto b/third_party/googleapis/google/maps/fleetengine/v1/vehicles.proto index 002dd4609..882ac22c8 100644 --- a/third_party/googleapis/google/maps/fleetengine/v1/vehicles.proto +++ b/third_party/googleapis/google/maps/fleetengine/v1/vehicles.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,6 +28,8 @@ option java_multiple_files = true; option java_outer_classname = "Vehicles"; option java_package = "google.maps.fleetengine.v1"; option objc_class_prefix = "CFE"; +option php_namespace = "Google\\Maps\\FleetEngine\\V1"; +option ruby_package = "Google::Maps::FleetEngine::V1"; // Vehicle metadata. message Vehicle { diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/BUILD.bazel b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/BUILD.bazel index 494b1a4f1..4a132e9c3 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/BUILD.bazel +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "mapsplatformdatasets_proto", @@ -31,6 +34,7 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", + "//google/rpc:status_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -48,6 +52,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -110,6 +115,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -124,6 +130,7 @@ go_proto_library( protos = [":mapsplatformdatasets_proto"], deps = [ "//google/api:annotations_go_proto", + "//google/rpc:status_go_proto", ], ) @@ -157,6 +164,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -196,6 +204,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -233,6 +242,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -263,6 +273,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -285,9 +296,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "mapsplatformdatasets_ruby_gapic", srcs = [":mapsplatformdatasets_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-maps-mapsplatformdatasets-v1", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-maps-mapsplatformdatasets-v1"], grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "mapsplatformdatasets_v1.yaml", @@ -311,6 +320,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -338,6 +348,7 @@ csharp_gapic_library( grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "mapsplatformdatasets_v1.yaml", + transport = "grpc+rest", deps = [ ":mapsplatformdatasets_csharp_grpc", ":mapsplatformdatasets_csharp_proto", @@ -357,6 +368,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/data_source.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/data_source.proto index fc92a0c83..597d6822e 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/data_source.proto +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/data_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,9 @@ syntax = "proto3"; package google.maps.mapsplatformdatasets.v1; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + option csharp_namespace = "Google.Maps.MapsPlatformDatasets.V1"; option go_package = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1/mapsplatformdatasetspb;mapsplatformdatasetspb"; option java_multiple_files = true; diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/dataset.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/dataset.proto index 0c9bda178..e280b1235 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/dataset.proto +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,21 +29,23 @@ option java_package = "com.google.maps.mapsplatformdatasets.v1"; option objc_class_prefix = "MDV1"; option php_namespace = "Google\\Maps\\MapsPlatformDatasets\\V1"; -// A representation of a Maps Dataset resource. +// A representation of a dataset resource. message Dataset { option (google.api.resource) = { type: "mapsplatformdatasets.googleapis.com/Dataset" pattern: "projects/{project}/datasets/{dataset}" }; - // Resource name, - // projects/{project}/datasets/{dataset_id} + // Resource name. + // Format: projects/{project}/datasets/{dataset_id} string name = 1; - // Human readable name, shown in the console UI . + // Human readable name, shown in the console UI. + // + // Must be unique within a project. string display_name = 2; - // A description of this dataset . + // A description of this dataset. string description = 3; // The version ID of the dataset. @@ -72,7 +74,7 @@ message Dataset { google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Time when the data was uploaded. + // Output only. Time when this version was created. google.protobuf.Timestamp version_create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -118,12 +120,12 @@ message Status { // progress. STATE_PUBLISHING = 9; - // The publishing failed states. This state represents that the - // publishing failed. Publishing may be retried. + // The publishing failed states. This state represents that the publishing + // failed. Publishing may be retried. STATE_PUBLISHING_FAILED = 10; - // The completed state. This state represents the dataset being - // available for its specific usage. + // The completed state. This state represents the dataset being available + // for its specific usage. STATE_COMPLETED = 11; } diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets.proto index 4202decb0..1ca5317f2 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets.proto +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,9 +18,9 @@ package google.maps.mapsplatformdatasets.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/maps/mapsplatformdatasets/v1/data_source.proto"; import "google/maps/mapsplatformdatasets/v1/dataset.proto"; import "google/protobuf/field_mask.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Maps.MapsPlatformDatasets.V1"; option go_package = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1/mapsplatformdatasetspb;mapsplatformdatasetspb"; @@ -33,7 +33,7 @@ option php_namespace = "Google\\Maps\\MapsPlatformDatasets\\V1"; // Request to create a maps dataset. message CreateDatasetRequest { // Required. Parent project that will own the dataset. - // Format: projects/{$project} + // Format: projects/{project} string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -47,19 +47,27 @@ message CreateDatasetRequest { // Request to update the metadata fields of the dataset. message UpdateDatasetMetadataRequest { - // Required. The dataset to update. The dataset's name is used to identify the - // dataset to be updated. The name has the format: - // projects/{project}/datasets/{dataset_id} + // Required. Resource name of the dataset to update. + // Format: projects/{project}/datasets/{dataset_id} Dataset dataset = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to be updated. Support the value "*" for full - // replacement. + // The list of fields to be updated. + // + // The value "*" is used for full replacement (default). google.protobuf.FieldMask update_mask = 2; } // Request to get the specified dataset. message GetDatasetRequest { - // Required. Resource name. projects/{project}/datasets/{dataset_id} + // Required. Resource name. + // Format: projects/{project}/datasets/{dataset_id} + // + // + // Can also fetch some special versions by appending "@" and a tag. + // Format: projects/{project}/datasets/{dataset_id}@{tag} + // + // Tag "active": The info of the latest completed version will be included, + // and NOT_FOUND if the dataset does not have one. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -71,6 +79,7 @@ message GetDatasetRequest { // Request to list datasets for the project. message ListDatasetsRequest { // Required. The name of the project to list all the datasets for. + // Format: projects/{project} string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -78,30 +87,76 @@ message ListDatasetsRequest { } ]; - // The maximum number of versions to return per page. + // The maximum number of datasets to return per page. + // // If unspecified (or zero), all datasets will be returned. int32 page_size = 2; // The page token, received from a previous ListDatasets call. // Provide this to retrieve the subsequent page. string page_token = 3; + + // The tag that specifies the desired version for each dataset. + // + // Note that when pagination is also specified, some filtering can happen + // after pagination, which may cause the response to contain fewer datasets + // than the page size, even if it's not the last page. + // + // Tag "active": Each dataset in the response will include the info of its + // latest completed version, and the dataset will be skipped if it does not + // have one. + string tag = 4; } -// Response to list datasets for the project. +// Response object of ListDatasets. message ListDatasetsResponse { // All the datasets for the project. repeated Dataset datasets = 1; // A token that can be sent as `page_token` to retrieve the next page. + // + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request to list detailed errors belonging to a dataset. +message FetchDatasetErrorsRequest { + // Required. The name of the dataset to list all the errors for. + // Format: projects/{project}/datasets/{dataset_id} + string dataset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "mapsplatformdatasets.googleapis.com/Dataset" + } + ]; + + // The maximum number of errors to return per page. + // + // The maximum value is 500; values above 500 will be capped to 500. + // + // If unspecified, at most 50 errors will be returned. + int32 page_size = 2; + + // The page token, received from a previous ListDatasetErrors call. + // Provide this to retrieve the subsequent page. + string page_token = 3; +} + +// Response object of FetchDatasetErrors. +message FetchDatasetErrorsResponse { + // A token that can be sent as `page_token` to retrieve the next page. + // // If this field is omitted, there are no subsequent pages. string next_page_token = 2; + + // The errors associated with a dataset. + repeated google.rpc.Status errors = 3; } // Request to delete a dataset. -// -// The dataset to be deleted. message DeleteDatasetRequest { - // Required. Format: projects/${project}/datasets/{dataset_id} + // Required. The name of the dataset to delete. + // Format: projects/{project}/datasets/{dataset_id} string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets_service.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets_service.proto index 1ae92a7c4..4b52ed681 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets_service.proto +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/maps_platform_datasets_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ service MapsPlatformDatasets { option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - // Create a new dataset for the specified project. + // Creates a new dataset for the specified project. rpc CreateDataset(CreateDatasetRequest) returns (Dataset) { option (google.api.http) = { post: "/v1/{parent=projects/*}/datasets" @@ -46,7 +46,7 @@ service MapsPlatformDatasets { option (google.api.method_signature) = "parent,dataset"; } - // Update the metadata for the dataset. + // Updates the metadata for the dataset. rpc UpdateDatasetMetadata(UpdateDatasetMetadataRequest) returns (Dataset) { option (google.api.http) = { patch: "/v1/{dataset.name=projects/*/datasets/*}" @@ -55,7 +55,7 @@ service MapsPlatformDatasets { option (google.api.method_signature) = "dataset,update_mask"; } - // Get the dataset. + // Gets the dataset. rpc GetDataset(GetDatasetRequest) returns (Dataset) { option (google.api.http) = { get: "/v1/{name=projects/*/datasets/*}" @@ -63,7 +63,16 @@ service MapsPlatformDatasets { option (google.api.method_signature) = "name"; } - // List all the datasets for the specified project. + // Gets all the errors of a dataset. + rpc FetchDatasetErrors(FetchDatasetErrorsRequest) + returns (FetchDatasetErrorsResponse) { + option (google.api.http) = { + get: "/v1/{dataset=projects/*/datasets/*}:fetchDatasetErrors" + }; + option (google.api.method_signature) = "dataset"; + } + + // Lists all the datasets for the specified project. rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*}/datasets" @@ -71,7 +80,7 @@ service MapsPlatformDatasets { option (google.api.method_signature) = "parent"; } - // Delete the specified dataset . + // Deletes the specified dataset. rpc DeleteDataset(DeleteDatasetRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/{name=projects/*/datasets/*}" diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_grpc_service_config.json b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_grpc_service_config.json index c820e42a7..7f9111694 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_grpc_service_config.json +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_grpc_service_config.json @@ -37,7 +37,7 @@ }, { "service": "google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets", - "method": "ListDatasetVersions" + "method": "FetchDatasetErrors" } ], "timeout": "60s", diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_v1.yaml b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_v1.yaml index 77635395f..a40ce9e28 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_v1.yaml +++ b/third_party/googleapis/google/maps/mapsplatformdatasets/v1/mapsplatformdatasets_v1.yaml @@ -9,14 +9,28 @@ apis: documentation: summary: mapsplatformdatasets.googleapis.com API. -backend: - rules: - - selector: 'google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.*' - deadline: 10.0 - authentication: rules: - selector: 'google.maps.mapsplatformdatasets.v1.MapsPlatformDatasets.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1356770 + documentation_uri: https://developers.google.com/maps/documentation/datasets + api_short_name: mapsplatformdatasets + github_label: 'api: mapsplatformdatasets' + doc_tag_prefix: mapsplatformdatasets + organization: GEO + library_settings: + - version: google.maps.mapsplatformdatasets.v1 + launch_stage: GA + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/data_source.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/data_source.proto deleted file mode 100644 index f69079241..000000000 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/data_source.proto +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.maps.mapsplatformdatasets.v1alpha; - -option csharp_namespace = "Google.Maps.MapsPlatformDatasets.V1Alpha"; -option go_package = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha/mapsplatformdatasetspb;mapsplatformdatasetspb"; -option java_multiple_files = true; -option java_outer_classname = "DataSourceProto"; -option java_package = "com.google.maps.mapsplatformdatasets.v1alpha"; -option php_namespace = "Google\\Maps\\MapsPlatformDatasets\\V1alpha"; - -// The details about the data source when it is a local file. -message LocalFileSource { - // The file name and extension of the uploaded file. - string filename = 1; - - // The format of the file that is being uploaded. - FileFormat file_format = 2; -} - -// The details about the data source when it is in Google Cloud Storage. -message GcsSource { - // Source data URI. For example, `gs://my_bucket/my_object`. - string input_uri = 1; - - // The file format of the Google Cloud Storage object. This is used mainly for - // validation. - FileFormat file_format = 2; -} - -// The format of the file being uploaded. -enum FileFormat { - // Unspecified file format. - FILE_FORMAT_UNSPECIFIED = 0; - - // GeoJson file. - FILE_FORMAT_GEOJSON = 1; - - // KML file. - FILE_FORMAT_KML = 2; - - // CSV file. - FILE_FORMAT_CSV = 3; - - // Protobuf file. - FILE_FORMAT_PROTO = 4; - - // KMZ file. - FILE_FORMAT_KMZ = 5; -} diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/dataset.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/dataset.proto deleted file mode 100644 index b078deb55..000000000 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/dataset.proto +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.maps.mapsplatformdatasets.v1alpha; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/maps/mapsplatformdatasets/v1alpha/data_source.proto"; -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Maps.MapsPlatformDatasets.V1Alpha"; -option go_package = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha/mapsplatformdatasetspb;mapsplatformdatasetspb"; -option java_multiple_files = true; -option java_outer_classname = "DatasetProto"; -option java_package = "com.google.maps.mapsplatformdatasets.v1alpha"; -option php_namespace = "Google\\Maps\\MapsPlatformDatasets\\V1alpha"; - -// A representation of a maps platform dataset. -message Dataset { - option (google.api.resource) = { - type: "mapsplatformdatasets.googleapis.com/Dataset" - pattern: "projects/{project}/datasets/{dataset}" - }; - - // Resource name, - // projects/{project}/datasets/{dataset_id} - string name = 1; - - // Human readable name, shown in the console UI. Set by customer. - string display_name = 2; - - // A description of this dataset; set by the customer. - string description = 3; - - // The version of the dataset. - string version_id = 4; - - // Specified use case(s) for this dataset. - repeated Usage usage = 5; - - // Details about the source of the data for the dataset. - oneof data_source { - // A local file source for the dataset for a single upload. - LocalFileSource local_file_source = 6; - - // A Google Cloud Storage file source for the dataset for a single upload. - GcsSource gcs_source = 7; - } - - // The status of the import of the latest dataset version. - State status = 12; - - // Output only. Time when the dataset was first created. - google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the dataset metadata was last updated. - google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when this version of dataset was created. (It happened when importing - // data to the dataset) - google.protobuf.Timestamp version_create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The description for this version of dataset. It is provided when importing - // data to the dataset. - string version_description = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Usage specifies where the data is intended to be used to inform how to -// process the data. -enum Usage { - // The usage of this dataset is not set. - USAGE_UNSPECIFIED = 0; - - // This dataset will be used for data driven styling. - USAGE_DATA_DRIVEN_STYLING = 1; - - // This dataset will be used for area affordances in routing. - USAGE_AREA_AFFORDANCES = 2; - - // This dataset will be used for assisted driving in routing. - USAGE_ASSISTED_DRIVING = 3; -} - -// State specifies the status of the import of the latest dataset version. -enum State { - // The state of this dataset is not set. - STATE_UNSPECIFIED = 0; - - // The dataset version is getting imported. - STATE_IMPORTING = 1; - - // The dataset version succeeded in getting imported. - STATE_IMPORT_SUCCEEDED = 2; - - // The dataset version failed to get imported. - STATE_IMPORT_FAILED = 3; -} diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto deleted file mode 100644 index 0a03f5cc6..000000000 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.maps.mapsplatformdatasets.v1alpha; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/maps/mapsplatformdatasets/v1alpha/dataset.proto"; -import "google/protobuf/field_mask.proto"; - -option csharp_namespace = "Google.Maps.MapsPlatformDatasets.V1Alpha"; -option go_package = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha/mapsplatformdatasetspb;mapsplatformdatasetspb"; -option java_multiple_files = true; -option java_outer_classname = "MapsPlatformDatasetsProto"; -option java_package = "com.google.maps.mapsplatformdatasets.v1alpha"; -option php_namespace = "Google\\Maps\\MapsPlatformDatasets\\V1alpha"; - -// Request to create a maps dataset. -message CreateDatasetRequest { - // Required. Parent project that will own the dataset. - // Format: projects/{$project_number} - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; - - // Required. The dataset version to create. - Dataset dataset = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request to update the metadata fields of the dataset. -message UpdateDatasetMetadataRequest { - // Required. The dataset to update. The dataset's name is used to identify the dataset - // to be updated. The name has the format: - // projects/{project}/datasets/{dataset_id} - Dataset dataset = 1 [(google.api.field_behavior) = REQUIRED]; - - // The list of fields to be updated. Support the value "*" for full - // replacement. - google.protobuf.FieldMask update_mask = 2; -} - -// Request to get the specified dataset. -message GetDatasetRequest { - // Required. Resource name. Can also fetch a specified version - // projects/{project}/datasets/{dataset_id} - // projects/{project}/datasets/{dataset_id}@{version-id} - // - // In order to retrieve a previous version of the dataset, also provide - // the version ID. - // Example: projects/123/datasets/assisted-driving-preferences@c7cfa2a8 - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "mapsplatformdatasets.googleapis.com/Dataset" - } - ]; - - // If specified, will fetch the dataset details of the version published for - // the specified use case rather than the latest, if one exists. If a - // published version does not exist, will default to getting the dataset - // details of the latest version. - Usage published_usage = 2; -} - -// Request to list of all versions of the dataset. -message ListDatasetVersionsRequest { - // Required. The name of the dataset to list all the versions for. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "mapsplatformdatasets.googleapis.com/Dataset" - } - ]; - - // The maximum number of versions to return per page. - // If unspecified (or zero), at most 1000 versions will be returned. - // The maximum value is 1000; values above 1000 will be coerced to 1000. - int32 page_size = 2; - - // The page token, received from a previous GetDatasetVersions call. - // Provide this to retrieve the subsequent page. - string page_token = 3; -} - -// Response with list of all versions of the dataset. -message ListDatasetVersionsResponse { - // All the versions of the dataset. - repeated Dataset datasets = 1; - - // A token that can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - -// Request to list datasets for the project. -message ListDatasetsRequest { - // Required. The name of the project to list all the datasets for. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "cloudresourcemanager.googleapis.com/Project" - } - ]; - - // The maximum number of versions to return per page. - // If unspecified (or zero), at most 1000 datasets will be returned. - // The maximum value is 1000; values above 1000 will be coerced to 1000. - int32 page_size = 2; - - // The page token, received from a previous GetDatasetVersions call. - // Provide this to retrieve the subsequent page. - string page_token = 3; -} - -// Response to list datasets for the project. -message ListDatasetsResponse { - // All the datasets for the project. - repeated Dataset datasets = 1; - - // A token that can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - -// Request to delete a dataset. -// -// The dataset to be deleted. -message DeleteDatasetRequest { - // Required. Format: projects/${project}/datasets/{dataset_id} - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "mapsplatformdatasets.googleapis.com/Dataset" - } - ]; - - // If set to true, any dataset version for this dataset will also be deleted. - // (Otherwise, the request will only work if the dataset has no versions.) - bool force = 2; -} - -// Request to delete a version of a dataset. -message DeleteDatasetVersionRequest { - // Required. Format: projects/${project}/datasets/{dataset_id}@{version-id} - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "mapsplatformdatasets.googleapis.com/Dataset" - } - ]; -} diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto b/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto deleted file mode 100644 index 12478bedd..000000000 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets_alpha_service.proto +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.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. - -syntax = "proto3"; - -package google.maps.mapsplatformdatasets.v1alpha; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/maps/mapsplatformdatasets/v1alpha/dataset.proto"; -import "google/maps/mapsplatformdatasets/v1alpha/maps_platform_datasets.proto"; -import "google/protobuf/empty.proto"; - -option cc_enable_arenas = true; -option csharp_namespace = "Google.Maps.MapsPlatformDatasets.V1Alpha"; -option go_package = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha/mapsplatformdatasetspb;mapsplatformdatasetspb"; -option java_multiple_files = true; -option java_outer_classname = "MapsPlatformDatasetsV1AlphaServiceProto"; -option java_package = "com.google.maps.mapsplatformdatasets.v1alpha"; -option objc_class_prefix = "MDV1A"; -option php_namespace = "Google\\Maps\\MapsPlatformDatasets\\V1alpha"; - -// Service definition for the Maps Platform Datasets API. -service MapsPlatformDatasetsV1Alpha { - option (google.api.default_host) = "mapsplatformdatasets.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Create a new dataset for the specified project. - rpc CreateDataset(CreateDatasetRequest) returns (Dataset) { - option (google.api.http) = { - post: "/v1alpha/{parent=projects/*}/datasets" - body: "dataset" - }; - option (google.api.method_signature) = "parent,dataset"; - } - - // Update the metadata for the dataset. To update the data use: UploadDataset. - rpc UpdateDatasetMetadata(UpdateDatasetMetadataRequest) returns (Dataset) { - option (google.api.http) = { - patch: "/v1alpha/{dataset.name=projects/*/datasets/*}" - body: "dataset" - }; - option (google.api.method_signature) = "dataset,update_mask"; - } - - // Get the published or latest version of the dataset. - rpc GetDataset(GetDatasetRequest) returns (Dataset) { - option (google.api.http) = { - get: "/v1alpha/{name=projects/*/datasets/*}" - }; - option (google.api.method_signature) = "name"; - } - - // List all the versions of a dataset. - rpc ListDatasetVersions(ListDatasetVersionsRequest) returns (ListDatasetVersionsResponse) { - option (google.api.http) = { - get: "/v1alpha/{name=projects/*/datasets/*}:listVersions" - }; - option (google.api.method_signature) = "name"; - } - - // List all the datasets for the specified project. - rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { - option (google.api.http) = { - get: "/v1alpha/{parent=projects/*}/datasets" - }; - option (google.api.method_signature) = "parent"; - } - - // Delete the specified dataset and optionally all its corresponding - // versions. - rpc DeleteDataset(DeleteDatasetRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha/{name=projects/*/datasets/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Delete a specific version of the dataset. - rpc DeleteDatasetVersion(DeleteDatasetVersionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1alpha/{name=projects/*/datasets/*}:deleteVersion" - }; - option (google.api.method_signature) = "name"; - } -} diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json b/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json deleted file mode 100644 index 0c07307bf..000000000 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_grpc_service_config.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "CreateDataset" - }, - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "ImportDataset" - }, - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "UpdateDatasetMetadata" - }, - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "DeleteDataset" - } - ], - "timeout": "60s" - }, - { - "name": [ - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "DownloadDataset" - }, - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "GetDataset" - }, - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "ListDatasets" - }, - { - "service": "google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha", - "method": "ListDatasetVersions" - } - ], - "timeout": "60s", - "retryPolicy": { - "maxAttempts": 5, - "initialBackoff": "1s", - "maxBackoff": "10s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": ["UNAVAILABLE"] - } - } - ] -} diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml b/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml deleted file mode 100644 index 5d1c9c535..000000000 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/mapsplatformdatasets_v1alpha.yaml +++ /dev/null @@ -1,34 +0,0 @@ -type: google.api.Service -config_version: 3 -name: mapsplatformdatasets.googleapis.com -title: Maps Platform Datasets API - -apis: -- name: google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha - -documentation: - summary: - The Maps Platform Datasets API enables developers to ingest geospatially-tied datasets - that they can use to enrich their experience of Maps Platform solutions (e.g. styling, routing). - -backend: - rules: - - selector: 'google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.*' - deadline: 10.0 - -authentication: - rules: - - selector: 'google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1Alpha.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - -publishing: - organization: CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED - new_issue_uri: '' - documentation_uri: '' - api_short_name: '' - github_label: '' - doc_tag_prefix: '' - codeowner_github_teams: - library_settings: diff --git a/third_party/googleapis/google/maps/mobilitybilling/logs/v1/mobility_billing_cloud_logging.proto b/third_party/googleapis/google/maps/mobilitybilling/logs/v1/mobility_billing_cloud_logging.proto index 68e6c0d44..6198fd55f 100644 --- a/third_party/googleapis/google/maps/mobilitybilling/logs/v1/mobility_billing_cloud_logging.proto +++ b/third_party/googleapis/google/maps/mobilitybilling/logs/v1/mobility_billing_cloud_logging.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/places/v1/BUILD.bazel b/third_party/googleapis/google/maps/places/v1/BUILD.bazel index 97fc0165b..108c68915 100644 --- a/third_party/googleapis/google/maps/places/v1/BUILD.bazel +++ b/third_party/googleapis/google/maps/places/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", @@ -53,12 +56,15 @@ proto_library( name = "places_proto", srcs = [ "attribution.proto", + "content_block.proto", + "contextual_content.proto", "ev_charging.proto", "fuel_options.proto", "geometry.proto", "photo.proto", "place.proto", "places_service.proto", + "reference.proto", "review.proto", ], deps = [ @@ -93,6 +99,7 @@ py_import( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -155,6 +162,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -183,7 +191,8 @@ go_gapic_library( grpc_service_config = "places_grpc_service_config.json", importpath = "cloud.google.com/go/maps/places/apiv1;places", metadata = True, - release_level = "ga", + # Labeling beta so we get unstable notice in client. + release_level = "beta", rest_numeric_enums = True, service_yaml = "places_v1.yaml", transport = "grpc+rest", @@ -207,6 +216,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -223,7 +233,7 @@ py_gapic_library( service_yaml = "places_v1.yaml", transport = "grpc+rest", deps = [ - ":viewport" + ":viewport" ], ) @@ -248,6 +258,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -285,6 +296,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -316,6 +328,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -362,6 +375,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -409,6 +423,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/maps/places/v1/attribution.proto b/third_party/googleapis/google/maps/places/v1/attribution.proto index d982dd06d..481ce2024 100644 --- a/third_party/googleapis/google/maps/places/v1/attribution.proto +++ b/third_party/googleapis/google/maps/places/v1/attribution.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/places/v1/content_block.proto b/third_party/googleapis/google/maps/places/v1/content_block.proto new file mode 100644 index 000000000..1a2352f26 --- /dev/null +++ b/third_party/googleapis/google/maps/places/v1/content_block.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.maps.places.v1; + +import "google/maps/places/v1/reference.proto"; +import "google/type/localized_text.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "ContentBlockProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// A block of content that can be served individually. +message ContentBlock { + // The topic of the content, for example "overview" or "restaurant". + string topic = 1; + + // Content related to the topic. + google.type.LocalizedText content = 2; + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // References that are related to this block of content. + References references = 3; +} diff --git a/third_party/googleapis/google/maps/places/v1/contextual_content.proto b/third_party/googleapis/google/maps/places/v1/contextual_content.proto new file mode 100644 index 000000000..a732e91e3 --- /dev/null +++ b/third_party/googleapis/google/maps/places/v1/contextual_content.proto @@ -0,0 +1,120 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.maps.places.v1; + +import "google/maps/places/v1/photo.proto"; +import "google/maps/places/v1/review.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "ContextualContentProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// Experimental: See +// https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative +// for more details. +// +// Content that is contextual to the place query. +message ContextualContent { + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // Justifications for the place. Justifications answers the question of why a + // place could interest an end user. + message Justification { + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // User review justifications. This highlights a section of the user review + // that would interest an end user. For instance, if the search query is + // "firewood pizza", the review justification highlights the text relevant + // to the search query. + message ReviewJustification { + // The text highlighted by the justification. This is a subset of the + // review itself. The exact word to highlight is marked by the + // HighlightedTextRange. There could be several words in the text being + // highlighted. + message HighlightedText { + // The range of highlighted text. + message HighlightedTextRange { + int32 start_index = 1; + + int32 end_index = 2; + } + + string text = 1; + + // The list of the ranges of the highlighted text. + repeated HighlightedTextRange highlighted_text_ranges = 2; + } + + HighlightedText highlighted_text = 1; + + // The review that the highlighted text is generated from. + Review review = 2; + } + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // BusinessAvailabilityAttributes justifications. This shows some attributes + // a business has that could interest an end user. + message BusinessAvailabilityAttributesJustification { + // If a place provides takeout. + bool takeout = 1; + + // If a place provides delivery. + bool delivery = 2; + + // If a place provides dine-in. + bool dine_in = 3; + } + + oneof justification { + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + ReviewJustification review_justification = 1; + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + BusinessAvailabilityAttributesJustification + business_availability_attributes_justification = 2; + } + } + + // List of reviews about this place, contexual to the place query. + repeated Review reviews = 1; + + // Information (including references) about photos of this place, contexual to + // the place query. + repeated Photo photos = 2; + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // Justifications for the place. + repeated Justification justifications = 3; +} diff --git a/third_party/googleapis/google/maps/places/v1/ev_charging.proto b/third_party/googleapis/google/maps/places/v1/ev_charging.proto index a81ae499c..80db0cb76 100644 --- a/third_party/googleapis/google/maps/places/v1/ev_charging.proto +++ b/third_party/googleapis/google/maps/places/v1/ev_charging.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/places/v1/fuel_options.proto b/third_party/googleapis/google/maps/places/v1/fuel_options.proto index 4a38de538..c0e6e9900 100644 --- a/third_party/googleapis/google/maps/places/v1/fuel_options.proto +++ b/third_party/googleapis/google/maps/places/v1/fuel_options.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/places/v1/geometry.proto b/third_party/googleapis/google/maps/places/v1/geometry.proto index e5e53a57d..92ebd887a 100644 --- a/third_party/googleapis/google/maps/places/v1/geometry.proto +++ b/third_party/googleapis/google/maps/places/v1/geometry.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/places/v1/photo.proto b/third_party/googleapis/google/maps/places/v1/photo.proto index d2f3f999b..b340dce98 100644 --- a/third_party/googleapis/google/maps/places/v1/photo.proto +++ b/third_party/googleapis/google/maps/places/v1/photo.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/places/v1/place.proto b/third_party/googleapis/google/maps/places/v1/place.proto index d8886dd32..47e8206ac 100644 --- a/third_party/googleapis/google/maps/places/v1/place.proto +++ b/third_party/googleapis/google/maps/places/v1/place.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,9 +18,11 @@ package google.maps.places.v1; import "google/api/resource.proto"; import "google/geo/type/viewport.proto"; +import "google/maps/places/v1/content_block.proto"; import "google/maps/places/v1/ev_charging.proto"; import "google/maps/places/v1/fuel_options.proto"; import "google/maps/places/v1/photo.proto"; +import "google/maps/places/v1/reference.proto"; import "google/maps/places/v1/review.proto"; import "google/type/date.proto"; import "google/type/latlng.proto"; @@ -283,6 +285,33 @@ message Place { optional bool wheelchair_accessible_seating = 4; } + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // AI-generated summary of the place. + message GenerativeSummary { + // The overview of the place. + google.type.LocalizedText overview = 1; + + // The detailed description of the place. + google.type.LocalizedText description = 2; + + // References that are used to generate the summary description. + References references = 3; + } + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // AI-generated summary of the area that the place is in. + message AreaSummary { + // Content blocks that compose the area summary. Each block has a separate + // topic about the area. + repeated ContentBlock content_blocks = 4; + } + // This Place's resource name, in `places/{place_id}` format. Can be used to // look up the Place. string name = 1; @@ -295,8 +324,8 @@ message Place { google.type.LocalizedText display_name = 31; // A set of type tags for this result. For example, "political" and - // "locality". For the complete list of possible values, see Table A and - // Table B at + // "locality". For the complete list of possible values, see Table A and Table + // B at // https://developers.google.com/maps/documentation/places/web-service/place-types repeated string types = 5; @@ -308,8 +337,8 @@ message Place { string primary_type = 50; // The display name of the primary type, localized to the request language if - // applicable. For the complete list of possible values, see Table A and - // Table B at + // applicable. For the complete list of possible values, see Table A and Table + // B at // https://developers.google.com/maps/documentation/places/web-service/place-types google.type.LocalizedText primary_type_display_name = 32; @@ -362,7 +391,8 @@ message Place { // chain. string website_uri = 16; - // List of reviews about this place, sorted by relevance. + // List of reviews about this place, sorted by relevance. A maximum of 5 + // reviews can be returned. repeated Review reviews = 53; // The regular hours of operation. @@ -373,7 +403,8 @@ message Place { // fractions of an hour, e.g. X hours and 15 minutes. optional int32 utc_offset_minutes = 22; - // Information (including references) about photos of this place. + // Information (including references) about photos of this place. A maximum of + // 10 photos can be returned. repeated Photo photos = 54; // The place's address in adr microformat: http://microformats.org/wiki/adr. @@ -515,6 +546,20 @@ message Place { // Information of ev charging options. EVChargeOptions ev_charge_options = 79; + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // AI-generated summary of the place. + GenerativeSummary generative_summary = 80; + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // AI-generated summary of the area that the place is in. + AreaSummary area_summary = 81; } // Price level of the place. @@ -534,6 +579,6 @@ enum PriceLevel { // Place provides expensive services. PRICE_LEVEL_EXPENSIVE = 4; - // Place provides very expensive service s. + // Place provides very expensive services. PRICE_LEVEL_VERY_EXPENSIVE = 5; } diff --git a/third_party/googleapis/google/maps/places/v1/places_service.proto b/third_party/googleapis/google/maps/places/v1/places_service.proto index aec74fd87..ea9f82aa2 100644 --- a/third_party/googleapis/google/maps/places/v1/places_service.proto +++ b/third_party/googleapis/google/maps/places/v1/places_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/geo/type/viewport.proto"; +import "google/maps/places/v1/contextual_content.proto"; import "google/maps/places/v1/ev_charging.proto"; import "google/maps/places/v1/geometry.proto"; import "google/maps/places/v1/place.proto"; @@ -36,11 +37,10 @@ option objc_class_prefix = "GMPSV1"; option php_namespace = "Google\\Maps\\Places\\V1"; // Service definition for the Places API. -// Note: every request actually requires a field mask set outside of -// the request proto (all/'*', is not assumed). That can be set via either a -// side channel (SystemParameterContext) over RPC, or a header -// (X-Goog-FieldMask) over HTTP. See: -// https://cloud.google.com/apis/docs/system-parameters +// Note: every request (except for Autocomplete requests) requires a field mask +// set outside of the request proto (`all/*`, is not assumed). The field mask +// can be set via the HTTP header `X-Goog-FieldMask`. See: +// https://developers.google.com/maps/documentation/places/web-service/choose-fields service Places { option (google.api.default_host) = "places.googleapis.com"; @@ -238,7 +238,9 @@ message SearchNearbyResponse { message SearchTextRequest { // How results will be ranked in the response. enum RankPreference { - // RankPreference value not set. Will default to DISTANCE. + // For a categorical query such as "Restaurants in New York City", RELEVANCE + // is the default. For non-categorical queries such as "Mountain View, CA" + // we recommend that you leave rankPreference unset. RANK_PREFERENCE_UNSPECIFIED = 0; // Ranks results by distance. @@ -282,13 +284,13 @@ message SearchTextRequest { // Searchable EV options of a place search request. message EVOptions { - // Optional. Filtering places by minimum charging rate. Any places with - // charging a rate less than the minimum charging rate are filtered out. + // Optional. Minimum required charging rate in kilowatts. A place with a + // charging rate less than the specified rate is filtered out. double minimum_charging_rate_kw = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. The list of preferred EV connector types. A place that does not - // support any of the listed connector types are filter out. + // support any of the listed connector types is filtered out. repeated EVConnectorType connector_types = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -370,6 +372,19 @@ message SearchTextRequest { message SearchTextResponse { // A list of places that meet the user's text search criteria. repeated Place places = 1; + + // Experimental: See + // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative + // for more details. + // + // A list of contextual contents where each entry associates to the + // corresponding place in the same index in the places field. The contents + // that are relevant to the `text_query` in the request are preferred. If the + // contextual content is not available for one of the places, it will return + // non-contextual content. It will be empty only when the content is + // unavailable for this place. This list should have as many entries as the + // list of places if requested. + repeated ContextualContent contextual_contents = 3; } // Request for fetching a photo of a place using a photo resource name. @@ -465,21 +480,23 @@ message GetPlaceRequest { // Note that 3-digit region codes are not currently supported. string region_code = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. An arbitrary string which identifies an autocomplete session for - // billing purposes. Must be at most 36 characters in length. Otherwise an - // INVALID_ARGUMENT error is returned. + // Optional. A string which identifies an Autocomplete session for billing + // purposes. Must be a URL and filename safe base64 string with at most 36 + // ASCII characters in length. Otherwise an INVALID_ARGUMENT error is + // returned. // // The session begins when the user starts typing a query, and concludes when // they select a place and a call to Place Details or Address Validation is - // made. Each session can have multiple queries, followed by one Place - // selection. The credentials used for each request within a session must - // belong to the same Google Cloud Console project. Once a session has - // concluded, the token is no longer valid; your app must generate a fresh - // token for each session. If the `session_token` parameter is omitted, or if - // you reuse a session token, the session is charged as if no session token - // was provided (each request is billed separately). + // made. Each session can have multiple queries, followed by one Place Details + // or Address Validation request. The credentials used for each request within + // a session must belong to the same Google Cloud Console project. Once a + // session has concluded, the token is no longer valid; your app must generate + // a fresh token for each session. If the `session_token` parameter is + // omitted, or if you reuse a session token, the session is charged as if no + // session token was provided (each request is billed separately). // // We recommend the following guidelines: + // // * Use session tokens for all Place Autocomplete calls. // * Generate a fresh token for each session. Using a version 4 UUID is // recommended. @@ -538,12 +555,12 @@ message AutocompletePlacesRequest { LocationRestriction location_restriction = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Included primary Place type (e.g. "restaurant" or "gas_station") - // from - // https://developers.google.com/maps/documentation/places/web-service/place-types. - // A Place is only returned if its primary type is included in this list. Up - // to 5 values can be specified. If no types are specified, all Place types - // are returned. + // Optional. Included primary Place type (for example, "restaurant" or + // "gas_station") in Place Types + // (https://developers.google.com/maps/documentation/places/web-service/place-types), + // or only `(regions)`, or only `(cities)`. A Place is only returned if its + // primary type is included in this list. Up to 5 values can be specified. If + // no types are specified, all Place types are returned. repeated string included_primary_types = 4 [(google.api.field_behavior) = OPTIONAL]; @@ -582,21 +599,23 @@ message AutocompletePlacesRequest { // predictions. Otherwise the response will only return Place predictions. bool include_query_predictions = 10 [(google.api.field_behavior) = OPTIONAL]; - // Optional. An arbitrary string which identifies an autocomplete session for - // billing purposes. Must be at most 36 characters in length. Otherwise an - // INVALID_ARGUMENT error is returned. + // Optional. A string which identifies an Autocomplete session for billing + // purposes. Must be a URL and filename safe base64 string with at most 36 + // ASCII characters in length. Otherwise an INVALID_ARGUMENT error is + // returned. // // The session begins when the user starts typing a query, and concludes when // they select a place and a call to Place Details or Address Validation is - // made. Each session can have multiple queries, followed by one Place - // selection. The credentials used for each request within a session must - // belong to the same Google Cloud Console project. Once a session has - // concluded, the token is no longer valid; your app must generate a fresh - // token for each session. If the `session_token` parameter is omitted, or if - // you reuse a session token, the session is charged as if no session token - // was provided (each request is billed separately). + // made. Each session can have multiple queries, followed by one Place Details + // or Address Validation request. The credentials used for each request within + // a session must belong to the same Google Cloud Console project. Once a + // session has concluded, the token is no longer valid; your app must generate + // a fresh token for each session. If the `session_token` parameter is + // omitted, or if you reuse a session token, the session is charged as if no + // session token was provided (each request is billed separately). // // We recommend the following guidelines: + // // * Use session tokens for all Place Autocomplete calls. // * Generate a fresh token for each session. Using a version 4 UUID is // recommended. @@ -632,7 +651,7 @@ message AutocompletePlacesResponse { // A list of string ranges identifying where the input request matched in // `text`. The ranges can be used to format specific parts of `text`. The // substrings may not be exact matches of `input` if the matching was - // determined by criteria other than string matching (e.g. spell + // determined by criteria other than string matching (for example, spell // corrections or transliterations). // // These values are Unicode character offsets of `text`. The ranges are @@ -713,7 +732,8 @@ message AutocompletePlacesResponse { // Prediction results for a Query Autocomplete prediction. message QueryPrediction { // The predicted text. This text does not represent a Place, but rather a - // text query that could be used in a search endpoint (e.g. TextSearch). + // text query that could be used in a search endpoint (for example, + // Text Search). // // `text` is recommended for developers who wish to show a single UI // element. Developers who wish to show two separate, but related, UI diff --git a/third_party/googleapis/google/maps/places/v1/places_v1.yaml b/third_party/googleapis/google/maps/places/v1/places_v1.yaml index cadf26c50..e3ba79c49 100644 --- a/third_party/googleapis/google/maps/places/v1/places_v1.yaml +++ b/third_party/googleapis/google/maps/places/v1/places_v1.yaml @@ -20,7 +20,7 @@ publishing: doc_tag_prefix: places organization: GEO library_settings: - - version: google.maps.api.v1 + - version: google.maps.places.v1 launch_stage: GA java_settings: common: diff --git a/third_party/googleapis/google/maps/places/v1/reference.proto b/third_party/googleapis/google/maps/places/v1/reference.proto new file mode 100644 index 000000000..dc5947e75 --- /dev/null +++ b/third_party/googleapis/google/maps/places/v1/reference.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.maps.places.v1; + +import "google/api/resource.proto"; +import "google/maps/places/v1/review.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "ReferenceProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// Experimental: See +// https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative +// for more details. +// +// Reference that the generative content is related to. +message References { + // Reviews that serve as references. + repeated Review reviews = 1; + + // The list of resource names of the referenced places. This name can be used + // in other APIs that accept Place resource names. + repeated string places = 2 [ + (google.api.resource_reference) = { type: "places.googleapis.com/Place" } + ]; +} diff --git a/third_party/googleapis/google/maps/places/v1/review.proto b/third_party/googleapis/google/maps/places/v1/review.proto index bccc4c0bc..5aaca3ab8 100644 --- a/third_party/googleapis/google/maps/places/v1/review.proto +++ b/third_party/googleapis/google/maps/places/v1/review.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/playablelocations/v3/playablelocations.proto b/third_party/googleapis/google/maps/playablelocations/v3/playablelocations.proto index 980961d18..27706adc0 100644 --- a/third_party/googleapis/google/maps/playablelocations/v3/playablelocations.proto +++ b/third_party/googleapis/google/maps/playablelocations/v3/playablelocations.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/playablelocations/v3/resources.proto b/third_party/googleapis/google/maps/playablelocations/v3/resources.proto index f47ca9ced..83e7a5ceb 100644 --- a/third_party/googleapis/google/maps/playablelocations/v3/resources.proto +++ b/third_party/googleapis/google/maps/playablelocations/v3/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/playablelocations/v3/sample/resources.proto b/third_party/googleapis/google/maps/playablelocations/v3/sample/resources.proto index 91beef7a4..305da96a8 100644 --- a/third_party/googleapis/google/maps/playablelocations/v3/sample/resources.proto +++ b/third_party/googleapis/google/maps/playablelocations/v3/sample/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_identifier.proto b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_identifier.proto index 2369c4b86..8d188b0b7 100644 --- a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_identifier.proto +++ b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_identifier.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_lookup_service.proto b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_lookup_service.proto index 4ac839002..64610f46e 100644 --- a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_lookup_service.proto +++ b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_lookup_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_match.proto b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_match.proto index 4457d6f0e..3987d4e78 100644 --- a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_match.proto +++ b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_match.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_search_values.proto b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_search_values.proto index d4053397d..b857ed2c3 100644 --- a/third_party/googleapis/google/maps/regionlookup/v1alpha/region_search_values.proto +++ b/third_party/googleapis/google/maps/regionlookup/v1alpha/region_search_values.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/roads/v1op/roads.proto b/third_party/googleapis/google/maps/roads/v1op/roads.proto index 579fc7db3..d21adbc93 100644 --- a/third_party/googleapis/google/maps/roads/v1op/roads.proto +++ b/third_party/googleapis/google/maps/roads/v1op/roads.proto @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,7 +11,6 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -// syntax = "proto3"; @@ -26,6 +25,8 @@ option java_multiple_files = true; option java_outer_classname = "RoadsProto"; option java_package = "com.google.maps.roads.v1op"; +// The Roads API maps one or more GPS coordinates to the geometry of the road +// and determines the speed limit along road segments. service RoadsService { option (google.api.default_host) = "roads.googleapis.com"; diff --git a/third_party/googleapis/google/maps/roads/v1op/roads_v1op.yaml b/third_party/googleapis/google/maps/roads/v1op/roads_v1op.yaml index abd1ec1e3..bc8bb14b7 100644 --- a/third_party/googleapis/google/maps/roads/v1op/roads_v1op.yaml +++ b/third_party/googleapis/google/maps/roads/v1op/roads_v1op.yaml @@ -4,9 +4,9 @@ name: roads.googleapis.com title: Roads API apis: -- name: google.maps.roads.v1op.RoadsService # must stay as v1op +- name: google.maps.roads.v1op.RoadsService documentation: summary: |- - Snap GPS points to roads to identify the roads a vehicle was traveling - along, making up for GPS error. + Fetch Google roads using a viewport, road ID, or latitude/longitude + coordinates. diff --git a/third_party/googleapis/google/maps/routeoptimization/v1/BUILD.bazel b/third_party/googleapis/google/maps/routeoptimization/v1/BUILD.bazel new file mode 100644 index 000000000..9da7808fb --- /dev/null +++ b/third_party/googleapis/google/maps/routeoptimization/v1/BUILD.bazel @@ -0,0 +1,351 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") +proto_library( + name = "routeoptimization_proto", + srcs = [ + "route_optimization_service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/longrunning:operations_proto", + "//google/type:latlng_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) +proto_library_with_info( + name = "routeoptimization_proto_with_info", + deps = [ + ":routeoptimization_proto", + "//google/cloud:common_resources_proto", + ], +) +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) +java_proto_library( + name = "routeoptimization_java_proto", + deps = [":routeoptimization_proto"], +) +java_grpc_library( + name = "routeoptimization_java_grpc", + srcs = [":routeoptimization_proto"], + deps = [":routeoptimization_java_proto"], +) +java_gapic_library( + name = "routeoptimization_java_gapic", + srcs = [":routeoptimization_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "routeoptimization_v1.yaml", + test_deps = [ + ":routeoptimization_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":routeoptimization_java_proto", + "//google/api:api_java_proto", + ], +) +java_gapic_test( + name = "routeoptimization_java_gapic_test_suite", + test_classes = [ + "com.google.maps.routeoptimization.v1.RouteOptimizationClientHttpJsonTest", + "com.google.maps.routeoptimization.v1.RouteOptimizationClientTest", + ], + runtime_deps = [":routeoptimization_java_gapic_test"], +) +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-maps-routeoptimization-v1-java", + transport = "grpc+rest", + deps = [ + ":routeoptimization_java_gapic", + ":routeoptimization_java_grpc", + ":routeoptimization_java_proto", + ":routeoptimization_proto", + ], + include_samples = True, +) +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) +go_proto_library( + name = "routeoptimization_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/maps/routeoptimization/apiv1/routeoptimizationpb", + protos = [":routeoptimization_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:latlng_go_proto", + ], +) +go_gapic_library( + name = "routeoptimization_go_gapic", + srcs = [":routeoptimization_proto_with_info"], + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/maps/routeoptimization/apiv1;routeoptimization", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "routeoptimization_v1.yaml", + transport = "grpc+rest", + deps = [ + ":routeoptimization_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-maps-routeoptimization-v1-go", + deps = [ + ":routeoptimization_go_gapic", + ":routeoptimization_go_gapic_srcjar-test.srcjar", + ":routeoptimization_go_gapic_srcjar-metadata.srcjar", + ":routeoptimization_go_gapic_srcjar-snippets.srcjar", + ":routeoptimization_go_proto", + ], +) +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) +py_gapic_library( + name = "routeoptimization_py_gapic", + srcs = [":routeoptimization_proto"], + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "routeoptimization_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) +py_test( + name = "routeoptimization_py_gapic_test", + srcs = [ + "routeoptimization_py_gapic_pytest.py", + "routeoptimization_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":routeoptimization_py_gapic"], +) +# Open Source Packages +py_gapic_assembly_pkg( + name = "maps-routeoptimization-v1-py", + deps = [ + ":routeoptimization_py_gapic", + ], +) +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) +php_proto_library( + name = "routeoptimization_php_proto", + deps = [":routeoptimization_proto"], +) +php_gapic_library( + name = "routeoptimization_php_gapic", + srcs = [":routeoptimization_proto_with_info"], + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "routeoptimization_v1.yaml", + transport = "grpc+rest", + deps = [ + ":routeoptimization_php_proto", + ], +) +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-maps-routeoptimization-v1-php", + deps = [ + ":routeoptimization_php_gapic", + ":routeoptimization_php_proto", + ], +) +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) +nodejs_gapic_library( + name = "routeoptimization_nodejs_gapic", + package_name = "@googlemaps/routeoptimization", + src = ":routeoptimization_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + package = "google.maps.routeoptimization.v1", + rest_numeric_enums = True, + service_yaml = "routeoptimization_v1.yaml", + transport = "grpc+rest", + deps = [], +) +nodejs_gapic_assembly_pkg( + name = "maps-routeoptimization-v1-nodejs", + deps = [ + ":routeoptimization_nodejs_gapic", + ":routeoptimization_proto", + ], +) +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) +ruby_proto_library( + name = "routeoptimization_ruby_proto", + deps = [":routeoptimization_proto"], +) +ruby_grpc_library( + name = "routeoptimization_ruby_grpc", + srcs = [":routeoptimization_proto"], + deps = [":routeoptimization_ruby_proto"], +) +ruby_cloud_gapic_library( + name = "routeoptimization_ruby_gapic", + srcs = [":routeoptimization_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-maps-routeoptimization-v1", + ], + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "routeoptimization_v1.yaml", + transport = "grpc+rest", + deps = [ + ":routeoptimization_ruby_grpc", + ":routeoptimization_ruby_proto", + ], +) +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-maps-routeoptimization-v1-ruby", + deps = [ + ":routeoptimization_ruby_gapic", + ":routeoptimization_ruby_grpc", + ":routeoptimization_ruby_proto", + ], +) +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) +csharp_proto_library( + name = "routeoptimization_csharp_proto", + extra_opts = [], + deps = [":routeoptimization_proto"], +) +csharp_grpc_library( + name = "routeoptimization_csharp_grpc", + srcs = [":routeoptimization_proto"], + deps = [":routeoptimization_csharp_proto"], +) +csharp_gapic_library( + name = "routeoptimization_csharp_gapic", + srcs = [":routeoptimization_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "routeoptimization_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "routeoptimization_v1.yaml", + transport = "grpc+rest", + deps = [ + ":routeoptimization_csharp_grpc", + ":routeoptimization_csharp_proto", + ], +) +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-maps-routeoptimization-v1-csharp", + deps = [ + ":routeoptimization_csharp_gapic", + ":routeoptimization_csharp_grpc", + ":routeoptimization_csharp_proto", + ], +) +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) +cc_proto_library( + name = "routeoptimization_cc_proto", + deps = [":routeoptimization_proto"], +) +cc_grpc_library( + name = "routeoptimization_cc_grpc", + srcs = [":routeoptimization_proto"], + grpc_only = True, + deps = [":routeoptimization_cc_proto"], +) \ No newline at end of file diff --git a/third_party/googleapis/google/maps/routeoptimization/v1/route_optimization_service.proto b/third_party/googleapis/google/maps/routeoptimization/v1/route_optimization_service.proto new file mode 100644 index 000000000..26b51bd3c --- /dev/null +++ b/third_party/googleapis/google/maps/routeoptimization/v1/route_optimization_service.proto @@ -0,0 +1,2537 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.maps.routeoptimization.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/latlng.proto"; + +option csharp_namespace = "Google.Maps.RouteOptimization.V1"; +option go_package = "cloud.google.com/go/maps/routeoptimization/apiv1/routeoptimizationpb;routeoptimizationpb"; +option java_multiple_files = true; +option java_outer_classname = "RouteOptimizationServiceProto"; +option java_package = "com.google.maps.routeoptimization.v1"; +option php_namespace = "Google\\Maps\\RouteOptimization\\V1"; +option ruby_package = "Google::Maps::RouteOptimization::V1"; + +// A service for optimizing vehicle tours. +// +// Validity of certain types of fields: +// +// * `google.protobuf.Timestamp` +// * Times are in Unix time: seconds since 1970-01-01T00:00:00+00:00. +// * seconds must be in [0, 253402300799], +// i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]. +// * nanos must be unset or set to 0. +// * `google.protobuf.Duration` +// * seconds must be in [0, 253402300799], +// i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]. +// * nanos must be unset or set to 0. +// * `google.type.LatLng` +// * latitude must be in [-90.0, 90.0]. +// * longitude must be in [-180.0, 180.0]. +// * at least one of latitude and longitude must be non-zero. +// +service RouteOptimization { + option (google.api.default_host) = "routeoptimization.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Sends an `OptimizeToursRequest` containing a `ShipmentModel` and returns an + // `OptimizeToursResponse` containing `ShipmentRoute`s, which are a set of + // routes to be performed by vehicles minimizing the overall cost. + // + // A `ShipmentModel` model consists mainly of `Shipment`s that need to be + // carried out and `Vehicle`s that can be used to transport the `Shipment`s. + // The `ShipmentRoute`s assign `Shipment`s to `Vehicle`s. More specifically, + // they assign a series of `Visit`s to each vehicle, where a `Visit` + // corresponds to a `VisitRequest`, which is a pickup or delivery for a + // `Shipment`. + // + // The goal is to provide an assignment of `ShipmentRoute`s to `Vehicle`s that + // minimizes the total cost where cost has many components defined in the + // `ShipmentModel`. + rpc OptimizeTours(OptimizeToursRequest) returns (OptimizeToursResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}:optimizeTours" + body: "*" + additional_bindings { + post: "/v1/{parent=projects/*}:optimizeTours" + body: "*" + } + }; + } + + // Optimizes vehicle tours for one or more `OptimizeToursRequest` + // messages as a batch. + // + // This method is a Long Running Operation (LRO). The inputs for optimization + // (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse` + // messages) are read/written from/to Cloud Storage in user-specified + // format. Like the `OptimizeTours` method, each `OptimizeToursRequest` + // contains a `ShipmentModel` and returns an `OptimizeToursResponse` + // containing `ShipmentRoute`s, which are a set of routes to be performed by + // vehicles minimizing the overall cost. + rpc BatchOptimizeTours(BatchOptimizeToursRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}:batchOptimizeTours" + body: "*" + additional_bindings { + post: "/v1/{parent=projects/*}:batchOptimizeTours" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "BatchOptimizeToursResponse" + metadata_type: "BatchOptimizeToursMetadata" + }; + } +} + +// Request to batch optimize tours as an asynchronous operation. +// Each input file should contain one `OptimizeToursRequest`, and each output +// file will contain one `OptimizeToursResponse`. The request contains +// information to read/write and parse the files. All the input and output files +// should be under the same project. +message BatchOptimizeToursRequest { + // Information for solving one optimization model asynchronously. + message AsyncModelConfig { + // Optional. User defined model name, can be used as alias by users to keep + // track of models. + string display_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Information about the input model. + InputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The desired output location information. + OutputConfig output_config = 3 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Target project and location to make a call. + // + // Format: + // * `projects/{project-id}` + // * `projects/{project-id}/locations/{location-id}` + // + // If no location is specified, a region will be chosen automatically. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Input/Output information each purchase model, such as file paths + // and data formats. + repeated AsyncModelConfig model_configs = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response to a `BatchOptimizeToursRequest`. This is returned in +// the Long Running Operation after the operation is complete. +message BatchOptimizeToursResponse {} + +// Operation metadata for `BatchOptimizeToursRequest` calls. +message BatchOptimizeToursMetadata {} + +// Request to be given to a tour optimization solver which defines the +// shipment model to solve as well as optimization parameters. +message OptimizeToursRequest { + // Defines how the solver should handle the request. In all modes but + // `VALIDATE_ONLY`, if the request is invalid, you will receive an + // `INVALID_REQUEST` error. See + // [max_validation_errors][google.maps.routeoptimization.v1.OptimizeToursRequest.max_validation_errors] + // to cap the number of errors returned. + enum SolvingMode { + // Solve the model. + DEFAULT_SOLVE = 0; + + // Only validates the model without solving it: populates as many + // [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors] + // as possible. + VALIDATE_ONLY = 1; + + // Only populates + // [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors] + // or + // [OptimizeToursResponse.skipped_shipments][google.maps.routeoptimization.v1.OptimizeToursResponse.skipped_shipments], + // and doesn't actually solve the rest of the request (`status` and `routes` + // are unset in the response). + // If infeasibilities in `injected_solution_constraint` routes are detected + // they are populated in the + // [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors] + // field and + // [OptimizeToursResponse.skipped_shipments][google.maps.routeoptimization.v1.OptimizeToursResponse.skipped_shipments] + // is left empty. + // + // *IMPORTANT*: not all infeasible shipments are returned here, but only the + // ones that are detected as infeasible during preprocessing. + DETECT_SOME_INFEASIBLE_SHIPMENTS = 2; + } + + // Mode defining the behavior of the search, trading off latency versus + // solution quality. In all modes, the global request deadline is enforced. + enum SearchMode { + // Unspecified search mode, equivalent to `RETURN_FAST`. + SEARCH_MODE_UNSPECIFIED = 0; + + // Stop the search after finding the first good solution. + RETURN_FAST = 1; + + // Spend all the available time to search for better solutions. + CONSUME_ALL_AVAILABLE_TIME = 2; + } + + // Required. Target project or location to make a call. + // + // Format: + // * `projects/{project-id}` + // * `projects/{project-id}/locations/{location-id}` + // + // If no location is specified, a region will be chosen automatically. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // If this timeout is set, the server returns a response before the timeout + // period has elapsed or the server deadline for synchronous requests is + // reached, whichever is sooner. + // + // For asynchronous requests, the server will generate a solution (if + // possible) before the timeout has elapsed. + google.protobuf.Duration timeout = 2; + + // Shipment model to solve. + ShipmentModel model = 3; + + // By default, the solving mode is `DEFAULT_SOLVE` (0). + SolvingMode solving_mode = 4; + + // Search mode used to solve the request. + SearchMode search_mode = 6; + + // Guide the optimization algorithm in finding a first solution that is + // similar to a previous solution. + // + // The model is constrained when the first solution is built. + // Any shipments not performed on a route are implicitly skipped in the first + // solution, but they may be performed in successive solutions. + // + // The solution must satisfy some basic validity assumptions: + // + // * for all routes, `vehicle_index` must be in range and not be duplicated. + // * for all visits, `shipment_index` and `visit_request_index` must be + // in range. + // * a shipment may only be referenced on one route. + // * the pickup of a pickup-delivery shipment must be performed before + // the delivery. + // * no more than one pickup alternative or delivery alternative of + // a shipment may be performed. + // * for all routes, times are increasing (i.e., `vehicle_start_time + // <= visits[0].start_time <= visits[1].start_time ... + // <= vehicle_end_time`). + // * a shipment may only be performed on a vehicle that is allowed. A + // vehicle is allowed if + // [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices] + // is empty or its `vehicle_index` is included in + // [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices]. + // + // If the injected solution is not feasible, a validation error is not + // necessarily returned and an error indicating infeasibility may be returned + // instead. + repeated ShipmentRoute injected_first_solution_routes = 7; + + // Constrain the optimization algorithm to find a final solution that is + // similar to a previous solution. For example, this may be used to freeze + // portions of routes which have already been completed or which are to be + // completed but must not be modified. + // + // If the injected solution is not feasible, a validation error is not + // necessarily returned and an error indicating infeasibility may be returned + // instead. + InjectedSolutionConstraint injected_solution_constraint = 8; + + // If non-empty, the given routes will be refreshed, without modifying their + // underlying sequence of visits or travel times: only other details will be + // updated. This does not solve the model. + // + // As of 2020/11, this only populates the polylines of non-empty routes and + // requires that `populate_polylines` is true. + // + // The `route_polyline` fields of the passed-in routes may be inconsistent + // with route `transitions`. + // + // This field must not be used together with `injected_first_solution_routes` + // or `injected_solution_constraint`. + // + // `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior. + // Polylines are still populated between all visits in all non-empty routes + // regardless of whether the related shipments or vehicles are ignored. + repeated ShipmentRoute refresh_details_routes = 9; + + // If true: + // + // * uses + // [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label] + // instead of `vehicle_index` to + // match routes in an injected solution with vehicles in the request; + // reuses the mapping of original + // [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index] + // to new + // [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index] + // to update + // [ConstraintRelaxation.vehicle_indices][google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices] + // if non-empty, but the mapping must be unambiguous (i.e., multiple + // `ShipmentRoute`s must not share the same original `vehicle_index`). + // * uses + // [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label] + // instead of `shipment_index` + // to match visits in an injected solution with shipments in the request; + // * uses + // [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] + // instead of + // [SkippedShipment.index][google.maps.routeoptimization.v1.SkippedShipment.index] + // to + // match skipped shipments in the injected solution with request + // shipments. + // + // This interpretation applies to the `injected_first_solution_routes`, + // `injected_solution_constraint`, and `refresh_details_routes` fields. + // It can be used when shipment or vehicle indices in the request have + // changed since the solution was created, perhaps because shipments or + // vehicles have been removed from or added to the request. + // + // If true, labels in the following categories must appear at most once in + // their category: + // + // * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] in the + // request; + // * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label] in + // the request; + // * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label] in the injected solution; + // * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label] in + // the injected solution (except pickup/delivery visit pairs, whose + // `shipment_label` must appear twice). + // + // If a `vehicle_label` in the injected solution does not correspond to a + // request vehicle, the corresponding route is removed from the solution + // along with its visits. If a `shipment_label` in the injected solution does + // not correspond to a request shipment, the corresponding visit is removed + // from the solution. If a + // [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] + // in the injected solution does not correspond to a request shipment, the + // `SkippedShipment` is removed from the solution. + // + // Removing route visits or entire routes from an injected solution may + // have an effect on the implied constraints, which may lead to change in + // solution, validation errors, or infeasibility. + // + // NOTE: The caller must ensure that each + // [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] (resp. + // [Shipment.label][google.maps.routeoptimization.v1.Shipment.label]) uniquely + // identifies a vehicle (resp. shipment) entity used across the two relevant + // requests: the past request that produced the `OptimizeToursResponse` used + // in the injected solution and the current request that includes the injected + // solution. The uniqueness checks described above are not enough to guarantee + // this requirement. + bool interpret_injected_solutions_using_labels = 10; + + // Consider traffic estimation in calculating `ShipmentRoute` fields + // [Transition.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration], + // [Visit.start_time][google.maps.routeoptimization.v1.ShipmentRoute.Visit.start_time], + // and `vehicle_end_time`; in setting the + // [ShipmentRoute.has_traffic_infeasibilities][google.maps.routeoptimization.v1.ShipmentRoute.has_traffic_infeasibilities] + // field, and in calculating the + // [OptimizeToursResponse.total_cost][google.maps.routeoptimization.v1.OptimizeToursResponse.total_cost] + // field. + bool consider_road_traffic = 11; + + // If true, polylines will be populated in response `ShipmentRoute`s. + bool populate_polylines = 12; + + // If true, polylines will be populated in response + // [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]. + bool populate_transition_polylines = 13; + + // If this is set, then the request can have a deadline + // (see https://grpc.io/blog/deadlines) of up to 60 minutes. + // Otherwise, the maximum deadline is only 30 minutes. + // Note that long-lived requests have a significantly larger (but still small) + // risk of interruption. + bool allow_large_deadline_despite_interruption_risk = 14; + + // If true, travel distances will be computed using geodesic distances instead + // of Google Maps distances, and travel times will be computed using geodesic + // distances with a speed defined by `geodesic_meters_per_second`. + bool use_geodesic_distances = 15; + + // When `use_geodesic_distances` is true, this field must be set and defines + // the speed applied to compute travel times. Its value must be at least 1.0 + // meters/seconds. + optional double geodesic_meters_per_second = 16; + + // Truncates the number of validation errors returned. These errors are + // typically attached to an INVALID_ARGUMENT error payload as a BadRequest + // error detail (https://cloud.google.com/apis/design/errors#error_details), + // unless solving_mode=VALIDATE_ONLY: see the + // [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors] + // field. + // This defaults to 100 and is capped at 10,000. + optional int32 max_validation_errors = 5; + + // Label that may be used to identify this request, reported back in the + // [OptimizeToursResponse.request_label][google.maps.routeoptimization.v1.OptimizeToursResponse.request_label]. + string label = 17; +} + +// Response after solving a tour optimization problem containing the routes +// followed by each vehicle, the shipments which have been skipped and the +// overall cost of the solution. +message OptimizeToursResponse { + // Overall metrics, aggregated over all routes. + message Metrics { + // Aggregated over the routes. Each metric is the sum (or max, for loads) + // over all + // [ShipmentRoute.metrics][google.maps.routeoptimization.v1.ShipmentRoute.metrics] + // fields of the same name. + AggregatedMetrics aggregated_route_metrics = 1; + + // Number of mandatory shipments skipped. + int32 skipped_mandatory_shipment_count = 2; + + // Number of vehicles used. Note: if a vehicle route is empty and + // [Vehicle.used_if_route_is_empty][google.maps.routeoptimization.v1.Vehicle.used_if_route_is_empty] + // is true, the vehicle is considered used. + int32 used_vehicle_count = 3; + + // The earliest start time for a used vehicle, computed as the minimum over + // all used vehicles of + // [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time]. + google.protobuf.Timestamp earliest_vehicle_start_time = 4; + + // The latest end time for a used vehicle, computed as the maximum over all + // used vehicles of + // [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time]. + google.protobuf.Timestamp latest_vehicle_end_time = 5; + + // Cost of the solution, broken down by cost-related request fields. + // The keys are proto paths, relative to the input OptimizeToursRequest, + // e.g. "model.shipments.pickups.cost", and the values are the total cost + // generated by the corresponding cost field, aggregated over the whole + // solution. In other words, costs["model.shipments.pickups.cost"] is the + // sum of all pickup costs over the solution. All costs defined in the model + // are reported in detail here with the exception of costs related to + // TransitionAttributes that are only reported in an aggregated way as of + // 2022/01. + map costs = 10; + + // Total cost of the solution. The sum of all values in the costs map. + double total_cost = 6; + } + + // Routes computed for each vehicle; the i-th route corresponds to the i-th + // vehicle in the model. + repeated ShipmentRoute routes = 1; + + // Copy of the + // [OptimizeToursRequest.label][google.maps.routeoptimization.v1.OptimizeToursRequest.label], + // if a label was specified in the request. + string request_label = 3; + + // The list of all shipments skipped. + repeated SkippedShipment skipped_shipments = 4; + + // List of all the validation errors that we were able to detect + // independently. See the "MULTIPLE ERRORS" explanation for the + // [OptimizeToursValidationError][google.maps.routeoptimization.v1.OptimizeToursValidationError] + // message. + repeated OptimizeToursValidationError validation_errors = 5; + + // Duration, distance and usage metrics for this solution. + Metrics metrics = 6; +} + +// A shipment model contains a set of shipments which must be performed by a +// set of vehicles, while minimizing the overall cost, which is the sum of: +// +// * the cost of routing the vehicles (sum of cost per total time, cost per +// travel time, and fixed cost over all vehicles). +// * the unperformed shipment penalties. +// * the cost of the global duration of the shipments +message ShipmentModel { + // Specifies a duration and distance matrix from visit and vehicle start + // locations to visit and vehicle end locations. + message DurationDistanceMatrix { + // Specifies a row of the duration and distance matrix. + message Row { + // Duration values for a given row. It must have as many elements as + // [ShipmentModel.duration_distance_matrix_dst_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_dst_tags]. + repeated google.protobuf.Duration durations = 1; + + // Distance values for a given row. If no costs or constraints refer to + // distances in the model, this can be left empty; otherwise it must have + // as many elements as `durations`. + repeated double meters = 2; + } + + // Specifies the rows of the duration and distance matrix. It must have as + // many elements as + // [ShipmentModel.duration_distance_matrix_src_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_src_tags]. + repeated Row rows = 1; + + // Tag defining to which vehicles this duration and distance matrix applies. + // If empty, this applies to all vehicles, and there can only be a single + // matrix. + // + // Each vehicle start must match exactly one matrix, i.e. exactly one of + // their `start_tags` field must match the `vehicle_start_tag` of a matrix + // (and of that matrix only). + // + // All matrices must have a different `vehicle_start_tag`. + string vehicle_start_tag = 2; + } + + // A precedence rule between two events (each event is the pickup or the + // delivery of a shipment): the "second" event has to start at least + // `offset_duration` after "first" has started. + // + // Several precedences can refer to the same (or related) events, e.g., + // "pickup of B happens after delivery of A" and "pickup of C happens after + // pickup of B". + // + // Furthermore, precedences only apply when both shipments are performed and + // are otherwise ignored. + message PrecedenceRule { + // Shipment index of the "first" event. This field must be specified. + optional int32 first_index = 1; + + // Indicates if the "first" event is a delivery. + bool first_is_delivery = 3; + + // Shipment index of the "second" event. This field must be specified. + optional int32 second_index = 2; + + // Indicates if the "second" event is a delivery. + bool second_is_delivery = 4; + + // The offset between the "first" and "second" event. It can be negative. + google.protobuf.Duration offset_duration = 5; + } + + // Set of shipments which must be performed in the model. + repeated Shipment shipments = 1; + + // Set of vehicles which can be used to perform visits. + repeated Vehicle vehicles = 2; + + // Constrains the maximum number of active vehicles. A vehicle is active if + // its route performs at least one shipment. This can be used to limit the + // number of routes in the case where there are fewer drivers than + // vehicles and that the fleet of vehicles is heterogeneous. The optimization + // will then select the best subset of vehicles to use. + // Must be strictly positive. + optional int32 max_active_vehicles = 4; + + // Global start and end time of the model: no times outside of this range + // can be considered valid. + // + // The model's time span must be less than a year, i.e. the `global_end_time` + // and the `global_start_time` must be within 31536000 seconds of each other. + // + // When using `cost_per_*hour` fields, you might want to set this window to a + // smaller interval to increase performance (eg. if you model a single day, + // you should set the global time limits to that day). + // If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used + // as default. + google.protobuf.Timestamp global_start_time = 5; + + // If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0) + // is used as default. + google.protobuf.Timestamp global_end_time = 6; + + // The "global duration" of the overall plan is the difference between the + // earliest effective start time and the latest effective end time of + // all vehicles. Users can assign a cost per hour to that quantity to try + // and optimize for earliest job completion, for example. This cost must be in + // the same unit as + // [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost]. + double global_duration_cost_per_hour = 7; + + // Specifies duration and distance matrices used in the model. If this field + // is empty, Google Maps or geodesic distances will be used instead, depending + // on the value of the `use_geodesic_distances` field. If it is not empty, + // `use_geodesic_distances` cannot be true and neither + // `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags` + // can be empty. + // + // Usage examples: + // + // * There are two locations: locA and locB. + // * 1 vehicle starting its route at locA and ending it at locA. + // * 1 pickup visit request at locB. + // + // ``` + // model { + // vehicles { start_tags: "locA" end_tags: "locA" } + // shipments { pickups { tags: "locB" } } + // duration_distance_matrix_src_tags: "locA" + // duration_distance_matrix_src_tags: "locB" + // duration_distance_matrix_dst_tags: "locA" + // duration_distance_matrix_dst_tags: "locB" + // duration_distance_matrices { + // rows { # from: locA + // durations { seconds: 0 } meters: 0 # to: locA + // durations { seconds: 100 } meters: 1000 # to: locB + // } + // rows { # from: locB + // durations { seconds: 102 } meters: 990 # to: locA + // durations { seconds: 0 } meters: 0 # to: locB + // } + // } + // } + // ``` + // + // + // * There are three locations: locA, locB and locC. + // * 1 vehicle starting its route at locA and ending it at locB, using + // matrix "fast". + // * 1 vehicle starting its route at locB and ending it at locB, using + // matrix "slow". + // * 1 vehicle starting its route at locB and ending it at locB, using + // matrix "fast". + // * 1 pickup visit request at locC. + // + // ``` + // model { + // vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" } + // vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" } + // vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" } + // shipments { pickups { tags: "locC" } } + // duration_distance_matrix_src_tags: "locA" + // duration_distance_matrix_src_tags: "locB" + // duration_distance_matrix_src_tags: "locC" + // duration_distance_matrix_dst_tags: "locB" + // duration_distance_matrix_dst_tags: "locC" + // duration_distance_matrices { + // vehicle_start_tag: "fast" + // rows { # from: locA + // durations { seconds: 1000 } meters: 2000 # to: locB + // durations { seconds: 600 } meters: 1000 # to: locC + // } + // rows { # from: locB + // durations { seconds: 0 } meters: 0 # to: locB + // durations { seconds: 700 } meters: 1200 # to: locC + // } + // rows { # from: locC + // durations { seconds: 702 } meters: 1190 # to: locB + // durations { seconds: 0 } meters: 0 # to: locC + // } + // } + // duration_distance_matrices { + // vehicle_start_tag: "slow" + // rows { # from: locA + // durations { seconds: 1800 } meters: 2001 # to: locB + // durations { seconds: 900 } meters: 1002 # to: locC + // } + // rows { # from: locB + // durations { seconds: 0 } meters: 0 # to: locB + // durations { seconds: 1000 } meters: 1202 # to: locC + // } + // rows { # from: locC + // durations { seconds: 1001 } meters: 1195 # to: locB + // durations { seconds: 0 } meters: 0 # to: locC + // } + // } + // } + // ``` + repeated DurationDistanceMatrix duration_distance_matrices = 8; + + // Tags defining the sources of the duration and distance matrices; + // `duration_distance_matrices(i).rows(j)` defines durations and distances + // from visits with tag `duration_distance_matrix_src_tags(j)` to other visits + // in matrix i. + // + // Tags correspond to + // [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags] + // or + // [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags]. + // A given `VisitRequest` or `Vehicle` must match exactly one tag in this + // field. Note that a `Vehicle`'s source, destination and matrix tags may be + // the same; similarly a `VisitRequest`'s source and destination tags may be + // the same. All tags must be different and cannot be empty strings. If this + // field is not empty, then `duration_distance_matrices` must not be empty. + repeated string duration_distance_matrix_src_tags = 9; + + // Tags defining the destinations of the duration and distance matrices; + // `duration_distance_matrices(i).rows(j).durations(k)` (resp. + // `duration_distance_matrices(i).rows(j).meters(k))` defines the duration + // (resp. the distance) of the travel from visits with tag + // `duration_distance_matrix_src_tags(j)` to visits with tag + // `duration_distance_matrix_dst_tags(k)` in matrix i. + // + // Tags correspond to + // [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags] + // or + // [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags]. + // A given `VisitRequest` or `Vehicle` must match exactly one tag in this + // field. Note that a `Vehicle`'s source, destination and matrix tags may be + // the same; similarly a `VisitRequest`'s source and destination tags may be + // the same. All tags must be different and cannot be empty strings. If this + // field is not empty, then `duration_distance_matrices` must not be empty. + repeated string duration_distance_matrix_dst_tags = 10; + + // Transition attributes added to the model. + repeated TransitionAttributes transition_attributes = 11; + + // Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`). + repeated ShipmentTypeIncompatibility shipment_type_incompatibilities = 12; + + // Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`). + repeated ShipmentTypeRequirement shipment_type_requirements = 13; + + // Set of precedence rules which must be enforced in the model. + repeated PrecedenceRule precedence_rules = 14; +} + +// The shipment of a single item, from one of its pickups to one of its +// deliveries. For the shipment to be considered as performed, a unique vehicle +// must visit one of its pickup locations (and decrease its spare capacities +// accordingly), then visit one of its delivery locations later on (and +// therefore re-increase its spare capacities accordingly). +message Shipment { + // Request for a visit which can be done by a vehicle: it has a geo-location + // (or two, see below), opening and closing times represented by time windows, + // and a service duration time (time spent by the vehicle once it has arrived + // to pickup or drop off goods). + message VisitRequest { + // The geo-location where the vehicle arrives when performing this + // `VisitRequest`. If the shipment model has duration distance matrices, + // `arrival_location` must not be specified. + google.type.LatLng arrival_location = 1; + + // The waypoint where the vehicle arrives when performing this + // `VisitRequest`. If the shipment model has duration distance matrices, + // `arrival_waypoint` must not be specified. + Waypoint arrival_waypoint = 2; + + // The geo-location where the vehicle departs after completing this + // `VisitRequest`. Can be omitted if it is the same as `arrival_location`. + // If the shipment model has duration distance matrices, + // `departure_location` must not be specified. + google.type.LatLng departure_location = 3; + + // The waypoint where the vehicle departs after completing this + // `VisitRequest`. Can be omitted if it is the same as `arrival_waypoint`. + // If the shipment model has duration distance matrices, + // `departure_waypoint` must not be specified. + Waypoint departure_waypoint = 4; + + // Specifies tags attached to the visit request. + // Empty or duplicate strings are not allowed. + repeated string tags = 5; + + // Time windows which constrain the arrival time at a visit. + // Note that a vehicle may depart outside of the arrival time window, i.e. + // arrival time + duration do not need to be inside a time window. This can + // result in waiting time if the vehicle arrives before + // [TimeWindow.start_time][google.maps.routeoptimization.v1.TimeWindow.start_time]. + // + // The absence of `TimeWindow` means that the vehicle can perform this visit + // at any time. + // + // Time windows must be disjoint, i.e. no time window must overlap with or + // be adjacent to another, and they must be in increasing order. + // + // `cost_per_hour_after_soft_end_time` and `soft_end_time` can only + // be set if there is a single time window. + repeated TimeWindow time_windows = 6; + + // Duration of the visit, i.e. time spent by the vehicle between arrival + // and departure (to be added to the possible waiting time; see + // `time_windows`). + google.protobuf.Duration duration = 7; + + // Cost to service this visit request on a vehicle route. This can be used + // to pay different costs for each alternative pickup or delivery of a + // shipment. This cost must be in the same unit as `Shipment.penalty_cost` + // and must not be negative. + double cost = 8; + + // Load demands of this visit request. This is just like + // [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands] + // field, except that it only applies to this + // [VisitRequest][google.maps.routeoptimization.v1.Shipment.VisitRequest] + // instead of the whole + // [Shipment][google.maps.routeoptimization.v1.Shipment]. The demands listed + // here are added to the demands listed in + // [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]. + map load_demands = 12; + + // Specifies the types of the visit. This may be used to allocate additional + // time required for a vehicle to complete this visit (see + // [Vehicle.extra_visit_duration_for_visit_type][google.maps.routeoptimization.v1.Vehicle.extra_visit_duration_for_visit_type]). + // + // A type can only appear once. + repeated string visit_types = 10; + + // Specifies a label for this `VisitRequest`. This label is reported in the + // response as `visit_label` in the corresponding + // [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit]. + string label = 11; + } + + // When performing a visit, a predefined amount may be added to the vehicle + // load if it's a pickup, or subtracted if it's a delivery. This message + // defines such amount. See + // [load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]. + message Load { + // The amount by which the load of the vehicle performing the corresponding + // visit will vary. Since it is an integer, users are advised to choose an + // appropriate unit to avoid loss of precision. Must be ≥ 0. + int64 amount = 2; + } + + // The user-defined display name of the shipment. + // It can be up to 63 characters long and may use UTF-8 characters. + string display_name = 16; + + // Set of pickup alternatives associated to the shipment. If not specified, + // the vehicle only needs to visit a location corresponding to the deliveries. + repeated VisitRequest pickups = 1; + + // Set of delivery alternatives associated to the shipment. If not specified, + // the vehicle only needs to visit a location corresponding to the pickups. + repeated VisitRequest deliveries = 2; + + // Load demands of the shipment (for example weight, volume, number of + // pallets etc). The keys in the map should be identifiers describing the type + // of the corresponding load, ideally also including the units. + // For example: "weight_kg", "volume_gallons", "pallet_count", etc. + // If a given key does not appear in the map, the corresponding load is + // considered as null. + map load_demands = 14; + + // If the shipment is not completed, this penalty is added to the overall + // cost of the routes. A shipment is considered completed if one of its pickup + // and delivery alternatives is visited. The cost may be expressed in the + // same unit used for all other cost-related fields in the model and must be + // positive. + // + // *IMPORTANT*: If this penalty is not specified, it is considered infinite, + // i.e. the shipment must be completed. + optional double penalty_cost = 4; + + // The set of vehicles that may perform this shipment. If empty, all vehicles + // may perform it. Vehicles are given by their index in the `ShipmentModel`'s + // `vehicles` list. + repeated int32 allowed_vehicle_indices = 5; + + // Specifies the cost that is incurred when this shipment is delivered by each + // vehicle. If specified, it must have EITHER: + // + // * the same number of elements as `costs_per_vehicle_indices`. + // `costs_per_vehicle[i]` corresponds to vehicle + // `costs_per_vehicle_indices[i]` of the model. + // * the same number of elements as there are vehicles in the model. The + // i-th element corresponds to vehicle #i of the model. + // + // These costs must be in the same unit as `penalty_cost` and must not be + // negative. Leave this field empty, if there are no such costs. + repeated double costs_per_vehicle = 6; + + // Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty, + // it must have the same number of elements as `costs_per_vehicle`. A vehicle + // index may not be specified more than once. If a vehicle is excluded from + // `costs_per_vehicle_indices`, its cost is zero. + repeated int32 costs_per_vehicle_indices = 7; + + // Specifies the maximum relative detour time compared to the shortest path + // from pickup to delivery. If specified, it must be nonnegative, and the + // shipment must contain at least a pickup and a delivery. + // + // For example, let t be the shortest time taken to go from the selected + // pickup alternative directly to the selected delivery alternative. Then + // setting `pickup_to_delivery_relative_detour_limit` enforces: + // + // ``` + // start_time(delivery) - start_time(pickup) <= + // std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit)) + // ``` + // + // If both relative and absolute limits are specified on the same shipment, + // the more constraining limit is used for each possible pickup/delivery pair. + // As of 2017/10, detours are only supported when travel durations do not + // depend on vehicles. + optional double pickup_to_delivery_relative_detour_limit = 8; + + // Specifies the maximum absolute detour time compared to the shortest path + // from pickup to delivery. If specified, it must be nonnegative, and the + // shipment must contain at least a pickup and a delivery. + // + // For example, let t be the shortest time taken to go from the selected + // pickup alternative directly to the selected delivery alternative. Then + // setting `pickup_to_delivery_absolute_detour_limit` enforces: + // + // ``` + // start_time(delivery) - start_time(pickup) <= + // t + pickup_to_delivery_absolute_detour_limit + // ``` + // + // If both relative and absolute limits are specified on the same shipment, + // the more constraining limit is used for each possible pickup/delivery pair. + // As of 2017/10, detours are only supported when travel durations do not + // depend on vehicles. + google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9; + + // Specifies the maximum duration from start of pickup to start of delivery of + // a shipment. If specified, it must be nonnegative, and the shipment must + // contain at least a pickup and a delivery. This does not depend on which + // alternatives are selected for pickup and delivery, nor on vehicle speed. + // This can be specified alongside maximum detour constraints: the solution + // will respect both specifications. + google.protobuf.Duration pickup_to_delivery_time_limit = 10; + + // Non-empty string specifying a "type" for this shipment. + // This feature can be used to define incompatibilities or requirements + // between `shipment_types` (see `shipment_type_incompatibilities` and + // `shipment_type_requirements` in `ShipmentModel`). + // + // Differs from `visit_types` which is specified for a single visit: All + // pickup/deliveries belonging to the same shipment share the same + // `shipment_type`. + string shipment_type = 11; + + // Specifies a label for this shipment. This label is reported in the response + // in the `shipment_label` of the corresponding + // [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit]. + string label = 12; + + // If true, skip this shipment, but don't apply a `penalty_cost`. + // + // Ignoring a shipment results in a validation error when there are any + // `shipment_type_requirements` in the model. + // + // Ignoring a shipment that is performed in `injected_first_solution_routes` + // or `injected_solution_constraint` is permitted; the solver removes the + // related pickup/delivery visits from the performing route. + // `precedence_rules` that reference ignored shipments will also be ignored. + bool ignore = 13; +} + +// Specifies incompatibilties between shipments depending on their +// shipment_type. The appearance of incompatible shipments on the same route is +// restricted based on the incompatibility mode. +message ShipmentTypeIncompatibility { + // Modes defining how the appearance of incompatible shipments are restricted + // on the same route. + enum IncompatibilityMode { + // Unspecified incompatibility mode. This value should never be used. + INCOMPATIBILITY_MODE_UNSPECIFIED = 0; + + // In this mode, two shipments with incompatible types can never share the + // same vehicle. + NOT_PERFORMED_BY_SAME_VEHICLE = 1; + + // For two shipments with incompatible types with the + // `NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY` incompatibility mode: + // + // * If both are pickups only (no deliveries) or deliveries only (no + // pickups), they cannot share the same vehicle at all. + // * If one of the shipments has a delivery and the other a pickup, the two + // shipments can share the same vehicle iff the former shipment is + // delivered before the latter is picked up. + NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY = 2; + } + + // List of incompatible types. Two shipments having different `shipment_types` + // among those listed are "incompatible". + repeated string types = 1; + + // Mode applied to the incompatibility. + IncompatibilityMode incompatibility_mode = 2; +} + +// Specifies requirements between shipments based on their shipment_type. +// The specifics of the requirement are defined by the requirement mode. +message ShipmentTypeRequirement { + // Modes defining the appearance of dependent shipments on a route. + enum RequirementMode { + // Unspecified requirement mode. This value should never be used. + REQUIREMENT_MODE_UNSPECIFIED = 0; + + // In this mode, all "dependent" shipments must share the same vehicle as at + // least one of their "required" shipments. + PERFORMED_BY_SAME_VEHICLE = 1; + + // With the `IN_SAME_VEHICLE_AT_PICKUP_TIME` mode, all "dependent" + // shipments need to have at least one "required" shipment on their vehicle + // at the time of their pickup. + // + // A "dependent" shipment pickup must therefore have either: + // + // * A delivery-only "required" shipment delivered on the route after, or + // * A "required" shipment picked up on the route before it, and if the + // "required" shipment has a delivery, this delivery must be performed + // after the "dependent" shipment's pickup. + IN_SAME_VEHICLE_AT_PICKUP_TIME = 2; + + // Same as before, except the "dependent" shipments need to have a + // "required" shipment on their vehicle at the time of their *delivery*. + IN_SAME_VEHICLE_AT_DELIVERY_TIME = 3; + } + + // List of alternative shipment types required by the + // `dependent_shipment_types`. + repeated string required_shipment_type_alternatives = 1; + + // All shipments with a type in the `dependent_shipment_types` field require + // at least one shipment of type `required_shipment_type_alternatives` to be + // visited on the same route. + // + // NOTE: Chains of requirements such that a `shipment_type` depends on itself + // are not allowed. + repeated string dependent_shipment_types = 2; + + // Mode applied to the requirement. + RequirementMode requirement_mode = 3; +} + +// Models a vehicle in a shipment problem. Solving a shipment problem will +// build a route starting from `start_location` and ending at `end_location` +// for this vehicle. A route is a sequence of visits (see `ShipmentRoute`). +message Vehicle { + // Travel modes which can be used by vehicles. + // + // These should be a subset of the Google Maps Platform Routes Preferred API + // travel modes, see: + // https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode. + enum TravelMode { + // Unspecified travel mode, equivalent to `DRIVING`. + TRAVEL_MODE_UNSPECIFIED = 0; + + // Travel mode corresponding to driving directions (car, ...). + DRIVING = 1; + + // Travel mode corresponding to walking directions. + WALKING = 2; + } + + // Policy on how a vehicle can be unloaded. Applies only to shipments having + // both a pickup and a delivery. + // + // Other shipments are free to occur anywhere on the route independent of + // `unloading_policy`. + enum UnloadingPolicy { + // Unspecified unloading policy; deliveries must just occur after their + // corresponding pickups. + UNLOADING_POLICY_UNSPECIFIED = 0; + + // Deliveries must occur in reverse order of pickups + LAST_IN_FIRST_OUT = 1; + + // Deliveries must occur in the same order as pickups + FIRST_IN_FIRST_OUT = 2; + } + + // Defines a load limit applying to a vehicle, e.g. "this truck may only + // carry up to 3500 kg". See + // [load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits]. + message LoadLimit { + // Interval of acceptable load amounts. + message Interval { + // A minimum acceptable load. Must be ≥ 0. + // If they're both specified, + // [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min] + // must be ≤ + // [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max]. + int64 min = 1; + + // A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum + // load is unrestricted by this message. + // If they're both specified, + // [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min] + // must be ≤ + // [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max]. + optional int64 max = 2; + } + + // The maximum acceptable amount of load. + optional int64 max_load = 1; + + // A soft limit of the load. See + // [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. + int64 soft_max_load = 2; + + // If the load ever exceeds + // [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load] + // along this vehicle's route, the following cost penalty applies (only once + // per vehicle): (load - + // [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load]) + // * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. All costs + // add up and must be in the same unit as + // [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost]. + double cost_per_unit_above_soft_max = 3; + + // The acceptable load interval of the vehicle at the start of the route. + Interval start_load_interval = 4; + + // The acceptable load interval of the vehicle at the end of the route. + Interval end_load_interval = 5; + } + + // A limit defining a maximum duration of the route of a vehicle. It can be + // either hard or soft. + // + // When a soft limit field is defined, both the soft max threshold and its + // associated cost must be defined together. + message DurationLimit { + // A hard limit constraining the duration to be at most max_duration. + google.protobuf.Duration max_duration = 1; + + // A soft limit not enforcing a maximum duration limit, but when violated + // makes the route incur a cost. This cost adds up to other costs defined in + // the model, with the same unit. + // + // If defined, `soft_max_duration` must be nonnegative. If max_duration is + // also defined, `soft_max_duration` must be less than max_duration. + google.protobuf.Duration soft_max_duration = 2; + + // Cost per hour incurred if the `soft_max_duration` threshold is violated. + // The additional cost is 0 if the duration is under the threshold, + // otherwise the cost depends on the duration as follows: + // ``` + // cost_per_hour_after_soft_max * (duration - soft_max_duration) + // ``` + // The cost must be nonnegative. + optional double cost_per_hour_after_soft_max = 3; + + // A soft limit not enforcing a maximum duration limit, but when violated + // makes the route incur a cost, quadratic in the duration. This cost adds + // up to other costs defined in the model, with the same unit. + // + // If defined, `quadratic_soft_max_duration` must be nonnegative. If + // `max_duration` is also defined, `quadratic_soft_max_duration` must be + // less than `max_duration`, and the difference must be no larger than one + // day: + // + // `max_duration - quadratic_soft_max_duration <= 86400 seconds` + google.protobuf.Duration quadratic_soft_max_duration = 4; + + // Cost per square hour incurred if the + // `quadratic_soft_max_duration` threshold is violated. + // + // The additional cost is 0 if the duration is under the threshold, + // otherwise the cost depends on the duration as follows: + // + // ``` + // cost_per_square_hour_after_quadratic_soft_max * + // (duration - quadratic_soft_max_duration)^2 + // ``` + // + // The cost must be nonnegative. + optional double cost_per_square_hour_after_quadratic_soft_max = 5; + } + + // The user-defined display name of the vehicle. + // It can be up to 63 characters long and may use UTF-8 characters. + string display_name = 32; + + // The travel mode which affects the roads usable by the vehicle and its + // speed. See also `travel_duration_multiple`. + TravelMode travel_mode = 1; + + // Geographic location where the vehicle starts before picking up any + // shipments. If not specified, the vehicle starts at its first pickup. + // If the shipment model has duration and distance matrices, `start_location` + // must not be specified. + google.type.LatLng start_location = 3; + + // Waypoint representing a geographic location where the vehicle starts before + // picking up any shipments. If neither `start_waypoint` nor `start_location` + // is specified, the vehicle starts at its first pickup. + // If the shipment model has duration and distance matrices, `start_waypoint` + // must not be specified. + Waypoint start_waypoint = 4; + + // Geographic location where the vehicle ends after it has completed its last + // `VisitRequest`. If not specified the vehicle's `ShipmentRoute` ends + // immediately when it completes its last `VisitRequest`. + // If the shipment model has duration and distance matrices, `end_location` + // must not be specified. + google.type.LatLng end_location = 5; + + // Waypoint representing a geographic location where the vehicle ends after + // it has completed its last `VisitRequest`. If neither `end_waypoint` nor + // `end_location` is specified, the vehicle's `ShipmentRoute` ends immediately + // when it completes its last `VisitRequest`. + // If the shipment model has duration and distance matrices, `end_waypoint` + // must not be specified. + Waypoint end_waypoint = 6; + + // Specifies tags attached to the start of the vehicle's route. + // + // Empty or duplicate strings are not allowed. + repeated string start_tags = 7; + + // Specifies tags attached to the end of the vehicle's route. + // + // Empty or duplicate strings are not allowed. + repeated string end_tags = 8; + + // Time windows during which the vehicle may depart its start location. + // They must be within the global time limits (see + // [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time] + // fields). If unspecified, there is no limitation besides those global time + // limits. + // + // Time windows belonging to the same repeated field must be disjoint, i.e. no + // time window can overlap with or be adjacent to another, and they must be in + // chronological order. + // + // `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if + // there is a single time window. + repeated TimeWindow start_time_windows = 9; + + // Time windows during which the vehicle may arrive at its end location. + // They must be within the global time limits (see + // [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time] + // fields). If unspecified, there is no limitation besides those global time + // limits. + // + // Time windows belonging to the same repeated field must be disjoint, i.e. no + // time window can overlap with or be adjacent to another, and they must be in + // chronological order. + // + // `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if + // there is a single time window. + repeated TimeWindow end_time_windows = 10; + + // Specifies a multiplicative factor that can be used to increase or decrease + // travel times of this vehicle. For example, setting this to 2.0 means + // that this vehicle is slower and has travel times that are twice what they + // are for standard vehicles. This multiple does not affect visit durations. + // It does affect cost if `cost_per_hour` or `cost_per_traveled_hour` are + // specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle + // is standard, and this multiple is considered 1.0. + // + // WARNING: Travel times will be rounded to the nearest second after this + // multiple is applied but before performing any numerical operations, thus, + // a small multiple may result in a loss of precision. + // + // See also `extra_visit_duration_for_visit_type` below. + optional double travel_duration_multiple = 11; + + // Unloading policy enforced on the vehicle. + UnloadingPolicy unloading_policy = 12; + + // Capacities of the vehicle (weight, volume, # of pallets for example). + // The keys in the map are the identifiers of the type of load, consistent + // with the keys of the + // [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands] + // field. If a given key is absent from this map, the corresponding capacity + // is considered to be limitless. + map load_limits = 30; + + // Vehicle costs: all costs add up and must be in the same unit as + // [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost]. + // + // Cost per hour of the vehicle route. This cost is applied to the total time + // taken by the route, and includes travel time, waiting time, and visit time. + // Using `cost_per_hour` instead of just `cost_per_traveled_hour` may result + // in additional latency. + double cost_per_hour = 16; + + // Cost per traveled hour of the vehicle route. This cost is applied only to + // travel time taken by the route (i.e., that reported in + // [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]), + // and excludes waiting time and visit time. + double cost_per_traveled_hour = 17; + + // Cost per kilometer of the vehicle route. This cost is applied to the + // distance reported in the + // [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions] + // and does not apply to any distance implicitly traveled from the + // `arrival_location` to the `departure_location` of a single `VisitRequest`. + double cost_per_kilometer = 18; + + // Fixed cost applied if this vehicle is used to handle a shipment. + double fixed_cost = 19; + + // This field only applies to vehicles when their route does not serve any + // shipments. It indicates if the vehicle should be considered as used or not + // in this case. + // + // If true, the vehicle goes from its start to its end location even if it + // doesn't serve any shipments, and time and distance costs resulting from its + // start --> end travel are taken into account. + // + // Otherwise, it doesn't travel from its start to its end location, and no + // `break_rule` or delay (from `TransitionAttributes`) are scheduled for this + // vehicle. In this case, the vehicle's `ShipmentRoute` doesn't contain any + // information except for the vehicle index and label. + bool used_if_route_is_empty = 20; + + // Limit applied to the total duration of the vehicle's route. In a given + // `OptimizeToursResponse`, the route duration of a vehicle is the + // difference between its `vehicle_end_time` and `vehicle_start_time`. + DurationLimit route_duration_limit = 21; + + // Limit applied to the travel duration of the vehicle's route. In a given + // `OptimizeToursResponse`, the route travel duration is the sum of all its + // [transitions.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration]. + DurationLimit travel_duration_limit = 22; + + // Limit applied to the total distance of the vehicle's route. In a given + // `OptimizeToursResponse`, the route distance is the sum of all its + // [transitions.travel_distance_meters][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_distance_meters]. + DistanceLimit route_distance_limit = 23; + + // Specifies a map from visit_types strings to durations. The duration is time + // in addition to + // [VisitRequest.duration][google.maps.routeoptimization.v1.Shipment.VisitRequest.duration] + // to be taken at visits with the specified `visit_types`. This extra visit + // duration adds cost if `cost_per_hour` is specified. Keys (i.e. + // `visit_types`) cannot be empty strings. + // + // If a visit request has multiple types, a duration will be added for each + // type in the map. + map extra_visit_duration_for_visit_type = + 24; + + // Describes the break schedule to be enforced on this vehicle. + // If empty, no breaks will be scheduled for this vehicle. + BreakRule break_rule = 25; + + // Specifies a label for this vehicle. This label is reported in the response + // as the `vehicle_label` of the corresponding + // [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute]. + string label = 27; + + // If true, `used_if_route_is_empty` must be false, and this vehicle will + // remain unused. + // + // If a shipment is performed by an ignored vehicle in + // `injected_first_solution_routes`, it is skipped in the first solution but + // is free to be performed in the response. + // + // If a shipment is performed by an ignored vehicle in + // `injected_solution_constraint` and any related pickup/delivery is + // constrained to remain on the vehicle (i.e., not relaxed to level + // `RELAX_ALL_AFTER_THRESHOLD`), it is skipped in the response. + // If a shipment has a non-empty `allowed_vehicle_indices` field and all of + // the allowed vehicles are ignored, it is skipped in the response. + bool ignore = 28; +} + +// Time windows constrain the time of an event, such as the arrival time at a +// visit, or the start and end time of a vehicle. +// +// Hard time window bounds, `start_time` and `end_time`, enforce the earliest +// and latest time of the event, such that `start_time <= event_time <= +// end_time`. The soft time window lower bound, `soft_start_time`, expresses a +// preference for the event to happen at or after `soft_start_time` by incurring +// a cost proportional to how long before soft_start_time the event occurs. The +// soft time window upper bound, `soft_end_time`, expresses a preference for the +// event to happen at or before `soft_end_time` by incurring a cost proportional +// to how long after `soft_end_time` the event occurs. `start_time`, `end_time`, +// `soft_start_time` and `soft_end_time` should be within the global time limits +// (see +// [ShipmentModel.global_start_time][google.maps.routeoptimization.v1.ShipmentModel.global_start_time] +// and +// [ShipmentModel.global_end_time][google.maps.routeoptimization.v1.ShipmentModel.global_end_time]) +// and should respect: +// ``` +// 0 <= `start_time` <= `soft_start_time` <= `end_time` and +// 0 <= `start_time` <= `soft_end_time` <= `end_time`. +// ``` +message TimeWindow { + // The hard time window start time. If unspecified it will be set to + // `ShipmentModel.global_start_time`. + google.protobuf.Timestamp start_time = 1; + + // The hard time window end time. If unspecified it will be set to + // `ShipmentModel.global_end_time`. + google.protobuf.Timestamp end_time = 2; + + // The soft start time of the time window. + google.protobuf.Timestamp soft_start_time = 3; + + // The soft end time of the time window. + google.protobuf.Timestamp soft_end_time = 4; + + // A cost per hour added to other costs in the model if the event occurs + // before soft_start_time, computed as: + // + // ``` + // max(0, soft_start_time - t.seconds) + // * cost_per_hour_before_soft_start_time / 3600, + // t being the time of the event. + // ``` + // + // This cost must be positive, and the field can only be set if + // soft_start_time has been set. + optional double cost_per_hour_before_soft_start_time = 5; + + // A cost per hour added to other costs in the model if the event occurs after + // `soft_end_time`, computed as: + // + // ``` + // max(0, t.seconds - soft_end_time.seconds) + // * cost_per_hour_after_soft_end_time / 3600, + // t being the time of the event. + // ``` + // + // This cost must be positive, and the field can only be set if + // `soft_end_time` has been set. + optional double cost_per_hour_after_soft_end_time = 6; +} + +// A limit defining a maximum distance which can be traveled. It can be either +// hard or soft. +// +// If a soft limit is defined, both `soft_max_meters` and +// `cost_per_kilometer_above_soft_max` must be defined and be nonnegative. +message DistanceLimit { + // A hard limit constraining the distance to be at most max_meters. The limit + // must be nonnegative. + optional int64 max_meters = 1; + + // A soft limit not enforcing a maximum distance limit, but when violated + // results in a cost which adds up to other costs defined in the model, + // with the same unit. + // + // If defined soft_max_meters must be less than max_meters and must be + // nonnegative. + optional int64 soft_max_meters = 2; + + // Cost per kilometer incurred if distance is above `soft_max_meters` limit. + // The additional cost is 0 if the distance is under the limit, otherwise the + // formula used to compute the cost is the following: + // ``` + // (distance_meters - soft_max_meters) / 1000.0 * + // cost_per_kilometer_above_soft_max. + // ``` + // The cost must be nonnegative. + optional double cost_per_kilometer_above_soft_max = 3; +} + +// Specifies attributes of transitions between two consecutive visits on a +// route. Several `TransitionAttributes` may apply to the same transition: in +// that case, all extra costs add up and the strictest constraint or limit +// applies (following natural "AND" semantics). +message TransitionAttributes { + // Tags defining the set of (src->dst) transitions these attributes apply to. + // + // A source visit or vehicle start matches iff its + // [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags] + // or + // [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags] + // either contains `src_tag` or does not contain `excluded_src_tag` (depending + // on which of these two fields is non-empty). + string src_tag = 1; + + // See `src_tag`. Exactly one of `src_tag` and `excluded_src_tag` must be + // non-empty. + string excluded_src_tag = 2; + + // A destination visit or vehicle end matches iff its + // [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags] + // or [Vehicle.end_tags][google.maps.routeoptimization.v1.Vehicle.end_tags] + // either contains `dst_tag` or does not contain `excluded_dst_tag` (depending + // on which of these two fields is non-empty). + string dst_tag = 3; + + // See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be + // non-empty. + string excluded_dst_tag = 4; + + // Specifies a cost for performing this transition. This is in the same unit + // as all other costs in the model and must not be negative. It is applied on + // top of all other existing costs. + double cost = 5; + + // Specifies a cost per kilometer applied to the distance traveled while + // performing this transition. It adds up to any + // [Vehicle.cost_per_kilometer][google.maps.routeoptimization.v1.Vehicle.cost_per_kilometer] + // specified on vehicles. + double cost_per_kilometer = 6; + + // Specifies a limit on the distance traveled while performing this + // transition. + // + // As of 2021/06, only soft limits are supported. + DistanceLimit distance_limit = 7; + + // Specifies a delay incurred when performing this transition. + // + // This delay always occurs *after* finishing the source visit and *before* + // starting the destination visit. + google.protobuf.Duration delay = 8; +} + +// Encapsulates a waypoint. Waypoints mark arrival and departure locations of +// VisitRequests, and start and end locations of Vehicles. +message Waypoint { + // Different ways to represent a location. + oneof location_type { + // A point specified using geographic coordinates, including an optional + // heading. + Location location = 1; + + // The POI Place ID associated with the waypoint. + string place_id = 2; + } + + // Optional. Indicates that the location of this waypoint is meant to have a + // preference for the vehicle to stop at a particular side of road. When you + // set this value, the route will pass through the location so that the + // vehicle can stop at the side of road that the location is biased towards + // from the center of the road. This option doesn't work for the 'WALKING' + // travel mode. + bool side_of_road = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Encapsulates a location (a geographic point, and an optional heading). +message Location { + // The waypoint's geographic coordinates. + google.type.LatLng lat_lng = 1; + + // The compass heading associated with the direction of the flow of traffic. + // This value is used to specify the side of the road to use for pickup and + // drop-off. Heading values can be from 0 to 360, where 0 specifies a heading + // of due North, 90 specifies a heading of due East, etc. + optional int32 heading = 2; +} + +// Rules to generate time breaks for a vehicle (e.g. lunch breaks). A break +// is a contiguous period of time during which the vehicle remains idle at its +// current position and cannot perform any visit. A break may occur: +// +// * during the travel between two visits (which includes the time right +// before or right after a visit, but not in the middle of a visit), in +// which case it extends the corresponding transit time between the visits, +// * or before the vehicle start (the vehicle may not start in the middle of +// a break), in which case it does not affect the vehicle start time. +// * or after the vehicle end (ditto, with the vehicle end time). +message BreakRule { + // The sequence of breaks (i.e. their number and order) that apply to each + // vehicle must be known beforehand. The repeated `BreakRequest`s define + // that sequence, in the order in which they must occur. Their time windows + // (`earliest_start_time` / `latest_start_time`) may overlap, but they must + // be compatible with the order (this is checked). + message BreakRequest { + // Required. Lower bound (inclusive) on the start of the break. + google.protobuf.Timestamp earliest_start_time = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Upper bound (inclusive) on the start of the break. + google.protobuf.Timestamp latest_start_time = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Minimum duration of the break. Must be positive. + google.protobuf.Duration min_duration = 3 + [(google.api.field_behavior) = REQUIRED]; + } + + // One may further constrain the frequency and duration of the breaks + // specified above, by enforcing a minimum break frequency, such as + // "There must be a break of at least 1 hour every 12 hours". Assuming that + // this can be interpreted as "Within any sliding time window of 12h, there + // must be at least one break of at least one hour", that example would + // translate to the following `FrequencyConstraint`: + // ``` + // { + // min_break_duration { seconds: 3600 } # 1 hour. + // max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 11). + // } + // ``` + // + // The timing and duration of the breaks in the solution will respect all + // such constraints, in addition to the time windows and minimum durations + // already specified in the `BreakRequest`. + // + // A `FrequencyConstraint` may in practice apply to non-consecutive breaks. + // For example, the following schedule honors the "1h every 12h" example: + // ``` + // 04:00 vehicle start + // .. performing travel and visits .. + // 09:00 1 hour break + // 10:00 end of the break + // .. performing travel and visits .. + // 12:00 20-min lunch break + // 12:20 end of the break + // .. performing travel and visits .. + // 21:00 1 hour break + // 22:00 end of the break + // .. performing travel and visits .. + // 23:59 vehicle end + // ``` + message FrequencyConstraint { + // Required. Minimum break duration for this constraint. Nonnegative. + // See description of `FrequencyConstraint`. + google.protobuf.Duration min_break_duration = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Maximum allowed span of any interval of time in the route that + // does not include at least partially a break of `duration >= + // min_break_duration`. Must be positive. + google.protobuf.Duration max_inter_break_duration = 2 + [(google.api.field_behavior) = REQUIRED]; + } + + // Sequence of breaks. See the `BreakRequest` message. + repeated BreakRequest break_requests = 1; + + // Several `FrequencyConstraint` may apply. They must all be satisfied by + // the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`. + repeated FrequencyConstraint frequency_constraints = 2; +} + +// A vehicle's route can be decomposed, along the time axis, like this (we +// assume there are n visits): +// ``` +// | | | | | T[2], | | | +// | Transition | Visit #0 | | | V[2], | | | +// | #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] | +// | aka T[0] | V[0] | | | V[n-2],| | | +// | | | | | T[n-1] | | | +// ^ ^ ^ ^ ^ ^ ^ ^ +// vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle +// start (arrival) (departure) start end start end end +// ``` +// Note that we make a difference between: +// +// * "punctual events", such as the vehicle start and end and each visit's start +// and end (aka arrival and departure). They happen at a given second. +// * "time intervals", such as the visits themselves, and the transition between +// visits. Though time intervals can sometimes have zero duration, i.e. start +// and end at the same second, they often have a positive duration. +// +// Invariants: +// +// * If there are n visits, there are n+1 transitions. +// * A visit is always surrounded by a transition before it (same index) and a +// transition after it (index + 1). +// * The vehicle start is always followed by transition #0. +// * The vehicle end is always preceded by transition #n. +// +// Zooming in, here is what happens during a `Transition` and a `Visit`: +// ``` +// ---+-------------------------------------+-----------------------------+--> +// | TRANSITION[i] | VISIT[i] | +// | | | +// | * TRAVEL: the vehicle moves from | PERFORM the visit: | +// | VISIT[i-1].departure_location to | | +// | VISIT[i].arrival_location, which | * Spend some time: | +// | takes a given travel duration | the "visit duration". | +// | and distance | | +// | | * Load or unload | +// | * BREAKS: the driver may have | some quantities from the | +// | breaks (e.g. lunch break). | vehicle: the "demand". | +// | | | +// | * WAIT: the driver/vehicle does | | +// | nothing. This can happen for | | +// | many reasons, for example when | | +// | the vehicle reaches the next | | +// | event's destination before the | | +// | start of its time window | | +// | | | +// | * DELAY: *right before* the next | | +// | arrival. E.g. the vehicle and/or | | +// | driver spends time unloading. | | +// | | | +// ---+-------------------------------------+-----------------------------+--> +// ^ ^ ^ +// V[i-1].end V[i].start V[i].end +// ``` +// Lastly, here is how the TRAVEL, BREAKS, DELAY and WAIT can be arranged +// during a transition. +// +// * They don't overlap. +// * The DELAY is unique and *must* be a contiguous period of time right +// before the next visit (or vehicle end). Thus, it suffice to know the +// delay duration to know its start and end time. +// * The BREAKS are contiguous, non-overlapping periods of time. The +// response specifies the start time and duration of each break. +// * TRAVEL and WAIT are "preemptable": they can be interrupted several times +// during this transition. Clients can assume that travel happens "as soon as +// possible" and that "wait" fills the remaining time. +// +// A (complex) example: +// ``` +// TRANSITION[i] +// --++-----+-----------------------------------------------------------++--> +// || | | | | | | || +// || T | B | T | | B | | D || +// || r | r | r | W | r | W | e || +// || a | e | a | a | e | a | l || +// || v | a | v | i | a | i | a || +// || e | k | e | t | k | t | y || +// || l | | l | | | | || +// || | | | | | | || +// --++-----------------------------------------------------------------++--> +// ``` +message ShipmentRoute { + // A visit performed during a route. This visit corresponds to a pickup or a + // delivery of a `Shipment`. + message Visit { + // Index of the `shipments` field in the source + // [ShipmentModel][google.maps.routeoptimization.v1.ShipmentModel]. + int32 shipment_index = 1; + + // If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it + // corresponds to a delivery. + bool is_pickup = 2; + + // Index of `VisitRequest` in either the pickup or delivery field of the + // `Shipment` (see `is_pickup`). + int32 visit_request_index = 3; + + // Time at which the visit starts. Note that the vehicle may arrive earlier + // than this at the visit location. Times are consistent with the + // `ShipmentModel`. + google.protobuf.Timestamp start_time = 4; + + // Total visit load demand as the sum of the shipment and the visit request + // `load_demands`. The values are negative if the visit is a delivery. + // Demands are reported for the same types as the + // [Transition.loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition] + // (see this field). + map load_demands = 11; + + // Extra detour time due to the shipments visited on the route before the + // visit and to the potential waiting time induced by time windows. + // If the visit is a delivery, the detour is computed from the corresponding + // pickup visit and is equal to: + // ``` + // start_time(delivery) - start_time(pickup) + // - (duration(pickup) + travel duration from the pickup location + // to the delivery location). + // ``` + // Otherwise, it is computed from the vehicle `start_location` and is equal + // to: + // ``` + // start_time - vehicle_start_time - travel duration from + // the vehicle's `start_location` to the visit. + // ``` + google.protobuf.Duration detour = 6; + + // Copy of the corresponding `Shipment.label`, if specified in the + // `Shipment`. + string shipment_label = 7; + + // Copy of the corresponding + // [VisitRequest.label][google.maps.routeoptimization.v1.Shipment.VisitRequest.label], + // if specified in the `VisitRequest`. + string visit_label = 8; + } + + // Transition between two events on the route. See the description of + // [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute]. + // + // If the vehicle does not have a `start_location` and/or `end_location`, the + // corresponding travel metrics are 0. + message Transition { + // Travel duration during this transition. + google.protobuf.Duration travel_duration = 1; + + // Distance traveled during the transition. + double travel_distance_meters = 2; + + // When traffic is requested via + // [OptimizeToursRequest.consider_road_traffic] + // [google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic], + // and the traffic info couldn't be retrieved for a `Transition`, this + // boolean is set to true. This may be temporary (rare hiccup in the + // realtime traffic servers) or permanent (no data for this location). + bool traffic_info_unavailable = 3; + + // Sum of the delay durations applied to this transition. If any, the delay + // starts exactly `delay_duration` seconds before the next event (visit or + // vehicle end). See + // [TransitionAttributes.delay][google.maps.routeoptimization.v1.TransitionAttributes.delay]. + google.protobuf.Duration delay_duration = 4; + + // Sum of the duration of the breaks occurring during this transition, if + // any. Details about each break's start time and duration are stored in + // [ShipmentRoute.breaks][google.maps.routeoptimization.v1.ShipmentRoute.breaks]. + google.protobuf.Duration break_duration = 5; + + // Time spent waiting during this transition. Wait duration corresponds to + // idle time and does not include break time. Also note that this wait time + // may be split into several non-contiguous intervals. + google.protobuf.Duration wait_duration = 6; + + // Total duration of the transition, provided for convenience. It is equal + // to: + // + // * next visit `start_time` (or `vehicle_end_time` if this is the last + // transition) - this transition's `start_time`; + // * if `ShipmentRoute.has_traffic_infeasibilities` is false, the following + // additionally holds: `total_duration = travel_duration + delay_duration + // + break_duration + wait_duration`. + google.protobuf.Duration total_duration = 7; + + // Start time of this transition. + google.protobuf.Timestamp start_time = 8; + + // The encoded polyline representation of the route followed during the + // transition. + // This field is only populated if [populate_transition_polylines] + // [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines] + // is set to true. + EncodedPolyline route_polyline = 9; + + // Vehicle loads during this transition, for each type that either appears + // in this vehicle's + // [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits], + // or that have non-zero + // [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands] + // on some shipment performed on this route. + // + // The loads during the first transition are the starting loads of the + // vehicle route. Then, after each visit, the visit's `load_demands` are + // either added or subtracted to get the next transition's loads, depending + // on whether the visit was a pickup or a delivery. + map vehicle_loads = 11; + } + + // Reports the actual load of the vehicle at some point along the route, + // for a given type (see + // [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads]). + message VehicleLoad { + // The amount of load on the vehicle, for the given type. The unit of load + // is usually indicated by the type. See + // [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads]. + int64 amount = 1; + } + + // The encoded representation of a polyline. More information on polyline + // encoding can be found here: + // https://developers.google.com/maps/documentation/utilities/polylinealgorithm + // https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding. + message EncodedPolyline { + // String representing encoded points of the polyline. + string points = 1; + } + + // Data representing the execution of a break. + message Break { + // Start time of a break. + google.protobuf.Timestamp start_time = 1; + + // Duration of a break. + google.protobuf.Duration duration = 2; + } + + // Vehicle performing the route, identified by its index in the source + // `ShipmentModel`. + int32 vehicle_index = 1; + + // Label of the vehicle performing this route, equal to + // `ShipmentModel.vehicles(vehicle_index).label`, if specified. + string vehicle_label = 2; + + // Time at which the vehicle starts its route. + google.protobuf.Timestamp vehicle_start_time = 5; + + // Time at which the vehicle finishes its route. + google.protobuf.Timestamp vehicle_end_time = 6; + + // Ordered sequence of visits representing a route. + // visits[i] is the i-th visit in the route. + // If this field is empty, the vehicle is considered as unused. + repeated Visit visits = 7; + + // Ordered list of transitions for the route. + repeated Transition transitions = 8; + + // When + // [OptimizeToursRequest.consider_road_traffic][google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic], + // is set to true, this field indicates that inconsistencies in route timings + // are predicted using traffic-based travel duration estimates. There may be + // insufficient time to complete traffic-adjusted travel, delays, and breaks + // between visits, before the first visit, or after the last visit, while + // still satisfying the visit and vehicle time windows. For example, + // + // ``` + // start_time(previous_visit) + duration(previous_visit) + + // travel_duration(previous_visit, next_visit) > start_time(next_visit) + // ``` + // + // Arrival at next_visit will likely happen later than its current + // time window due the increased estimate of travel time + // `travel_duration(previous_visit, next_visit)` due to traffic. Also, a break + // may be forced to overlap with a visit due to an increase in travel time + // estimates and visit or break time window restrictions. + bool has_traffic_infeasibilities = 9; + + // The encoded polyline representation of the route. + // This field is only populated if + // [OptimizeToursRequest.populate_polylines][google.maps.routeoptimization.v1.OptimizeToursRequest.populate_polylines] + // is set to true. + EncodedPolyline route_polyline = 10; + + // Breaks scheduled for the vehicle performing this route. + // The `breaks` sequence represents time intervals, each starting at the + // corresponding `start_time` and lasting `duration` seconds. + repeated Break breaks = 11; + + // Duration, distance and load metrics for this route. The fields of + // [AggregatedMetrics][google.maps.routeoptimization.v1.AggregatedMetrics] are + // summed over all + // [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions] + // or + // [ShipmentRoute.visits][google.maps.routeoptimization.v1.ShipmentRoute.visits], + // depending on the context. + AggregatedMetrics metrics = 12; + + // Cost of the route, broken down by cost-related request fields. + // The keys are proto paths, relative to the input OptimizeToursRequest, e.g. + // "model.shipments.pickups.cost", and the values are the total cost + // generated by the corresponding cost field, aggregated over the whole route. + // In other words, costs["model.shipments.pickups.cost"] is the sum of all + // pickup costs over the route. All costs defined in the model are reported in + // detail here with the exception of costs related to TransitionAttributes + // that are only reported in an aggregated way as of 2022/01. + map route_costs = 17; + + // Total cost of the route. The sum of all costs in the cost map. + double route_total_cost = 18; +} + +// Specifies details of unperformed shipments in a solution. For trivial cases +// and/or if we are able to identify the cause for skipping, we report the +// reason here. +message SkippedShipment { + // If we can explain why the shipment was skipped, reasons will be listed + // here. If the reason is not the same for all vehicles, `reason` will have + // more than 1 element. A skipped shipment cannot have duplicate reasons, + // i.e. where all fields are the same except for `example_vehicle_index`. + // Example: + // ``` + // reasons { + // code: DEMAND_EXCEEDS_VEHICLE_CAPACITY + // example_vehicle_index: 1 + // example_exceeded_capacity_type: "Apples" + // } + // reasons { + // code: DEMAND_EXCEEDS_VEHICLE_CAPACITY + // example_vehicle_index: 3 + // example_exceeded_capacity_type: "Pears" + // } + // reasons { + // code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT + // example_vehicle_index: 1 + // } + // ``` + // The skipped shipment is incompatible with all vehicles. The reasons may + // be different for all vehicles but at least one vehicle's "Apples" + // capacity would be exceeded (including vehicle 1), at least one vehicle's + // "Pears" capacity would be exceeded (including vehicle 3) and at least one + // vehicle's distance limit would be exceeded (including vehicle 1). + message Reason { + // Code identifying the reason type. The order here is meaningless. In + // particular, it gives no indication of whether a given reason will + // appear before another in the solution, if both apply. + enum Code { + // This should never be used. If we are unable to understand why a + // shipment was skipped, we simply return an empty set of reasons. + CODE_UNSPECIFIED = 0; + + // There is no vehicle in the model making all shipments infeasible. + NO_VEHICLE = 1; + + // The demand of the shipment exceeds a vehicle's capacity for some + // capacity types, one of which is `example_exceeded_capacity_type`. + DEMAND_EXCEEDS_VEHICLE_CAPACITY = 2; + + // The minimum distance necessary to perform this shipment, i.e. from + // the vehicle's `start_location` to the shipment's pickup and/or delivery + // locations and to the vehicle's end location exceeds the vehicle's + // `route_distance_limit`. + // + // Note that for this computation we use the geodesic distances. + CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT = 3; + + // The minimum time necessary to perform this shipment, including travel + // time, wait time and service time exceeds the vehicle's + // `route_duration_limit`. + // + // Note: travel time is computed in the best-case scenario, namely as + // geodesic distance x 36 m/s (roughly 130 km/hour). + CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT = 4; + + // Same as above but we only compare minimum travel time and the + // vehicle's `travel_duration_limit`. + CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT = 5; + + // The vehicle cannot perform this shipment in the best-case scenario + // (see `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` for time + // computation) if it starts at its earliest start time: the total time + // would make the vehicle end after its latest end time. + CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS = 6; + + // The `allowed_vehicle_indices` field of the shipment is not empty and + // this vehicle does not belong to it. + VEHICLE_NOT_ALLOWED = 7; + } + + // Refer to the comments of Code. + Code code = 1; + + // If the reason is related to a shipment-vehicle incompatibility, this + // field provides the index of one relevant vehicle. + optional int32 example_vehicle_index = 2; + + // If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one + // capacity type that is exceeded. + string example_exceeded_capacity_type = 3; + } + + // The index corresponds to the index of the shipment in the source + // `ShipmentModel`. + int32 index = 1; + + // Copy of the corresponding + // [Shipment.label][google.maps.routeoptimization.v1.Shipment.label], if + // specified in the `Shipment`. + string label = 2; + + // A list of reasons that explain why the shipment was skipped. See comment + // above `Reason`. + repeated Reason reasons = 3; +} + +// Aggregated metrics for +// [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute] (resp. for +// [OptimizeToursResponse][google.maps.routeoptimization.v1.OptimizeToursResponse] +// over all +// [Transition][google.maps.routeoptimization.v1.ShipmentRoute.Transition] +// and/or [Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit] (resp. +// over all [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute]) +// elements. +message AggregatedMetrics { + // Number of shipments performed. Note that a pickup and delivery pair only + // counts once. + int32 performed_shipment_count = 1; + + // Total travel duration for a route or a solution. + google.protobuf.Duration travel_duration = 2; + + // Total wait duration for a route or a solution. + google.protobuf.Duration wait_duration = 3; + + // Total delay duration for a route or a solution. + google.protobuf.Duration delay_duration = 4; + + // Total break duration for a route or a solution. + google.protobuf.Duration break_duration = 5; + + // Total visit duration for a route or a solution. + google.protobuf.Duration visit_duration = 6; + + // The total duration should be equal to the sum of all durations above. + // For routes, it also corresponds to: + // ``` + // [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time] + // - + // [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time] + // ``` + google.protobuf.Duration total_duration = 7; + + // Total travel distance for a route or a solution. + double travel_distance_meters = 8; + + // Maximum load achieved over the entire route (resp. solution), for each of + // the quantities on this route (resp. solution), computed as the maximum over + // all + // [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads] + // (resp. + // [ShipmentRoute.metrics.max_loads][google.maps.routeoptimization.v1.AggregatedMetrics.max_loads]. + map max_loads = 9; +} + +// Solution injected in the request including information about which visits +// must be constrained and how they must be constrained. +message InjectedSolutionConstraint { + // For a group of vehicles, specifies at what threshold(s) constraints on + // visits will be relaxed and to which level. Shipments listed in + // the `skipped_shipment` field are constrained to be skipped; i.e., they + // cannot be performed. + message ConstraintRelaxation { + // If `relaxations` is empty, the start time and sequence of all visits + // on `routes` are fully constrained and no new visits may be inserted or + // added to those routes. Also, a vehicle's start and end time in + // `routes` is fully constrained, unless the vehicle is empty (i.e., has no + // visits and has `used_if_route_is_empty` set to false in the model). + // + // `relaxations(i).level` specifies the constraint relaxation level applied + // to a visit #j that satisfies: + // + // * `route.visits(j).start_time >= relaxations(i).threshold_time` AND + // * `j + 1 >= relaxations(i).threshold_visit_count` + // + // Similarly, the vehicle start is relaxed to `relaxations(i).level` if it + // satisfies: + // + // * `vehicle_start_time >= relaxations(i).threshold_time` AND + // * `relaxations(i).threshold_visit_count == 0` + // and the vehicle end is relaxed to `relaxations(i).level` if it satisfies: + // * `vehicle_end_time >= relaxations(i).threshold_time` AND + // * `route.visits_size() + 1 >= relaxations(i).threshold_visit_count` + // + // To apply a relaxation level if a visit meets the `threshold_visit_count` + // OR the `threshold_time` add two `relaxations` with the same `level`: + // one with only `threshold_visit_count` set and the other with only + // `threshold_time` set. If a visit satisfies the conditions of multiple + // `relaxations`, the most relaxed level applies. As a result, from the + // vehicle start through the route visits in order to the vehicle end, the + // relaxation level becomes more relaxed: i.e., the relaxation level is + // non-decreasing as the route progresses. + // + // The timing and sequence of route visits that do not satisfy the + // threshold conditions of any `relaxations` are fully constrained + // and no visits may be inserted into these sequences. Also, if a + // vehicle start or end does not satisfy the conditions of any + // relaxation the time is fixed, unless the vehicle is empty. + message Relaxation { + // Expresses the different constraint relaxation levels, which are + // applied for a visit and those that follow when it satisfies the + // threshold conditions. + // + // The enumeration below is in order of increasing relaxation. + enum Level { + // Implicit default relaxation level: no constraints are relaxed, + // i.e., all visits are fully constrained. + // + // This value must not be explicitly used in `level`. + LEVEL_UNSPECIFIED = 0; + + // Visit start times and vehicle start/end times will be relaxed, but + // each visit remains bound to the same vehicle and the visit sequence + // must be observed: no visit can be inserted between them or before + // them. + RELAX_VISIT_TIMES_AFTER_THRESHOLD = 1; + + // Same as `RELAX_VISIT_TIMES_AFTER_THRESHOLD`, but the visit sequence + // is also relaxed: visits remain simply bound to their vehicle. + RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = 2; + + // Same as `RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD`, but the + // vehicle is also relaxed: visits are completely free at or after the + // threshold time and can potentially become unperformed. + RELAX_ALL_AFTER_THRESHOLD = 3; + } + + // The constraint relaxation level that applies when the conditions + // at or after `threshold_time` AND at least `threshold_visit_count` are + // satisfied. + Level level = 1; + + // The time at or after which the relaxation `level` may be applied. + google.protobuf.Timestamp threshold_time = 2; + + // The number of visits at or after which the relaxation `level` may be + // applied. If `threshold_visit_count` is 0 (or unset), the `level` may be + // applied directly at the vehicle start. + // + // If it is `route.visits_size() + 1`, the `level` may only be applied to + // the vehicle end. If it is more than `route.visits_size() + 1`, + // `level` is not applied at all for that route. + int32 threshold_visit_count = 3; + } + + // All the visit constraint relaxations that will apply to visits on + // routes with vehicles in `vehicle_indices`. + repeated Relaxation relaxations = 1; + + // Specifies the vehicle indices to which the visit constraint + // `relaxations` apply. If empty, this is considered the default and the + // `relaxations` apply to all vehicles that are not specified in other + // `constraint_relaxations`. There can be at most one default, i.e., at + // most one constraint relaxation field is allowed empty + // `vehicle_indices`. A vehicle index can only be listed once, even within + // several `constraint_relaxations`. + // + // A vehicle index is mapped the same as + // [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index], + // if `interpret_injected_solutions_using_labels` is true (see `fields` + // comment). + repeated int32 vehicle_indices = 2; + } + + // Routes of the solution to inject. Some routes may be omitted from the + // original solution. The routes and skipped shipments must satisfy the basic + // validity assumptions listed for `injected_first_solution_routes`. + repeated ShipmentRoute routes = 1; + + // Skipped shipments of the solution to inject. Some may be omitted from the + // original solution. See the `routes` field. + repeated SkippedShipment skipped_shipments = 2; + + // For zero or more groups of vehicles, specifies when and how much to relax + // constraints. If this field is empty, all non-empty vehicle routes are + // fully constrained. + repeated ConstraintRelaxation constraint_relaxations = 3; +} + +// Describes an error encountered when validating an `OptimizeToursRequest`. +message OptimizeToursValidationError { + // Specifies a context for the validation error. A `FieldReference` always + // refers to a given field in this file and follows the same hierarchical + // structure. For example, we may specify element #2 of `start_time_windows` + // of vehicle #5 using: + // ``` + // name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 } + // ``` + // We however omit top-level entities such as `OptimizeToursRequest` or + // `ShipmentModel` to avoid crowding the message. + message FieldReference { + // Name of the field, e.g., "vehicles". + string name = 1; + + oneof index_or_key { + // Index of the field if repeated. + int32 index = 2; + + // Key if the field is a map. + string key = 4; + } + + // Recursively nested sub-field, if needed. + FieldReference sub_field = 3; + } + + // A validation error is defined by the pair (`code`, `display_name`) which + // are always present. + // + // Other fields (below) provide more context about the error. + // + // *MULTIPLE ERRORS*: + // When there are multiple errors, the validation process tries to output + // several of them. Much like a compiler, this is an imperfect process. Some + // validation errors will be "fatal", meaning that they stop the entire + // validation process. This is the case for `display_name="UNSPECIFIED"` + // errors, among others. Some may cause the validation process to skip other + // errors. + // + // *STABILITY*: + // `code` and `display_name` should be very stable. But new codes and + // display names may appear over time, which may cause a given (invalid) + // request to yield a different (`code`, `display_name`) pair because the new + // error hid the old one (see "MULTIPLE ERRORS"). + // + // *REFERENCE*: A list of all (code, name) pairs: + // + // * UNSPECIFIED = 0; + // * VALIDATION_TIMEOUT_ERROR = 10; Validation couldn't be completed within + // the deadline. + // + // * REQUEST_OPTIONS_ERROR = 12; + // * REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201; + // * REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203; + // * REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1204; + // * REQUEST_OPTIONS_GEODESIC_METERS_PER_SECOND_TOO_SMALL = 1205; + // * REQUEST_OPTIONS_MISSING_GEODESIC_METERS_PER_SECOND = 1206; + // * REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE + // = 1207; + // * REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208; + // * REQUEST_OPTIONS_TRAVEL_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211; + // * REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212; + // * REQUEST_OPTIONS_INVALID_TRAFFIC_FLAVOR = 1213; + // * REQUEST_OPTIONS_TRAFFIC_ENABLED_WITHOUT_GLOBAL_START_TIME = 1214; + // * REQUEST_OPTIONS_TRAFFIC_ENABLED_WITH_PRECEDENCES = 1215; + // * REQUEST_OPTIONS_TRAFFIC_PREFILL_MODE_INVALID = 1216; + // * REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217; + // * INJECTED_SOLUTION_ERROR = 20; + // * INJECTED_SOLUTION_MISSING_LABEL = 2000; + // * INJECTED_SOLUTION_DUPLICATE_LABEL = 2001; + // * INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002; + // * INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003; + // * INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004; + // * INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005; + // * INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006; + // * INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008; + // * INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010; + // * SHIPMENT_MODEL_ERROR = 22; + // * SHIPMENT_MODEL_TOO_LARGE = 2200; + // * SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201; + // * SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202; + // * SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203; + // * SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204; + // * SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205; + // * SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206; + // * SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207; + // * INDEX_ERROR = 24; + // * TAG_ERROR = 26; + // * TIME_WINDOW_ERROR = 28; + // * TIME_WINDOW_INVALID_START_TIME = 2800; + // * TIME_WINDOW_INVALID_END_TIME = 2801; + // * TIME_WINDOW_INVALID_SOFT_START_TIME = 2802; + // * TIME_WINDOW_INVALID_SOFT_END_TIME = 2803; + // * TIME_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804; + // * TIME_WINDOW_START_TIME_AFTER_END_TIME = 2805; + // * TIME_WINDOW_INVALID_COST_PER_HOUR_BEFORE_SOFT_START_TIME = 2806; + // * TIME_WINDOW_INVALID_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807; + // * TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME + // = 2808; + // * TIME_WINDOW_COST_AFTER_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809; + // * TIME_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME + // = 2810; + // * TIME_WINDOW_SOFT_END_TIME_WITHOUT_COST_AFTER_SOFT_END_TIME = 2811; + // * TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812; + // * TIME_WINDOW_START_TIME_AFTER_SOFT_START_TIME = 2813; + // * TIME_WINDOW_SOFT_START_TIME_AFTER_END_TIME = 2814; + // * TIME_WINDOW_START_TIME_AFTER_SOFT_END_TIME = 2815; + // * TIME_WINDOW_SOFT_END_TIME_AFTER_END_TIME = 2816; + // * TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS + // = 2817; + // * TIME_WINDOW_COST_AFTER_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818; + // * TRANSITION_ATTRIBUTES_ERROR = 30; + // * TRANSITION_ATTRIBUTES_INVALID_COST = 3000; + // * TRANSITION_ATTRIBUTES_INVALID_COST_PER_KILOMETER = 3001; + // * TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002; + // * TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_METERS_UNSUPPORTED = 3003; + // * TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004; + // * TRANSITION_ATTRIBUTES_CONFLICTING_SOURCE_TAGS_FIELDS = 3005; + // * TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006; + // * TRANSITION_ATTRIBUTES_CONFLICTING_DESTINATION_TAGS_FIELDS = 3007; + // * TRANSITION_ATTRIBUTES_DELAY_DURATION_NEGATIVE_OR_NAN = 3008; + // * TRANSITION_ATTRIBUTES_DELAY_DURATION_EXCEEDS_GLOBAL_DURATION = 3009; + // * AMOUNT_ERROR = 31; + // * AMOUNT_NEGATIVE_VALUE = 3100; + // * LOAD_LIMIT_ERROR = 33; + // * LOAD_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303; + // * LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304; + // * LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305; + // * LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306; + // * LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307; + // * LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308; + // * LOAD_LIMIT_SOFT_MAX_ABOVE_MAX = 3309; + // * INTERVAL_ERROR = 34; + // * INTERVAL_MIN_EXCEEDS_MAX = 3401; + // * INTERVAL_NEGATIVE_MIN = 3402; + // * INTERVAL_NEGATIVE_MAX = 3403; + // * INTERVAL_MIN_EXCEEDS_CAPACITY = 3404; + // * INTERVAL_MAX_EXCEEDS_CAPACITY = 3405; + // * DISTANCE_LIMIT_ERROR = 36; + // * DISTANCE_LIMIT_INVALID_COST_AFTER_SOFT_MAX = 3601; + // * DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3602; + // * DISTANCE_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3603; + // * DISTANCE_LIMIT_NEGATIVE_MAX = 3604; + // * DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605; + // * DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606; + // * DURATION_LIMIT_ERROR = 38; + // * DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800; + // * DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801; + // * DURATION_LIMIT_INVALID_COST_PER_HOUR_AFTER_SOFT_MAX = 3802; + // * DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3803; + // * DURATION_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3804; + // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805; + // * DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806; + // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR + // = 3807; + // * DURATION_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX + // = 3808; + // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809; + // * DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810; + // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811; + // * DURATION_LIMIT_DIFF_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE + // = 3812; + // * DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813; + // * DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814; + // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION + // = 3815; + // * SHIPMENT_ERROR = 40; + // * SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014; + // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000; + // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION + // = 4001; + // * SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015; + // * SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016; + // * SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002; + // * SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003; + // * SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004; + // * SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005; + // * SHIPMENT_INVALID_PENALTY_COST = 4006; + // * SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007; + // * SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008; + // * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009; + // * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010; + // * SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011; + // * SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012; + // * SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013; + // * VEHICLE_ERROR = 42; + // * VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200; + // * VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201; + // * VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202; + // * VEHICLE_EMPTY_START_TAG = 4203; + // * VEHICLE_DUPLICATE_START_TAG = 4204; + // * VEHICLE_EMPTY_END_TAG = 4205; + // * VEHICLE_DUPLICATE_END_TAG = 4206; + // * VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207; + // * VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208; + // * VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209; + // * VEHICLE_FIRST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210; + // * VEHICLE_FIRST_SHIPMENT_IGNORED = 4211; + // * VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212; + // * VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213; + // * VEHICLE_LAST_SHIPMENT_IGNORED = 4214; + // * VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215; + // * VEHICLE_IGNORED_WITH_USED_IF_ROUTE_IS_EMPTY = 4216; + // * VEHICLE_INVALID_COST_PER_KILOMETER = 4217; + // * VEHICLE_INVALID_COST_PER_HOUR = 4218; + // * VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219; + // * VEHICLE_INVALID_FIXED_COST = 4220; + // * VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221; + // * VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS + // = 4223; + // * VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224; + // * VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222; + // * VISIT_REQUEST_ERROR = 44; + // * VISIT_REQUEST_EMPTY_TAG = 4400; + // * VISIT_REQUEST_DUPLICATE_TAG = 4401; + // * VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404; + // * VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4405; + // * PRECEDENCE_ERROR = 46; + // * BREAK_ERROR = 48; + // * BREAK_RULE_EMPTY = 4800; + // * BREAK_REQUEST_UNSPECIFIED_DURATION = 4801; + // * BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802; + // * BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803; + // * BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804; = 4804; + // * BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805; + // * BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806; + // * BREAK_REQUEST_LATEST_END_TIME_AFTER_GLOBAL_END_TIME = 4807; + // * BREAK_REQUEST_NON_SCHEDULABLE = 4808; + // * BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809; + // * BREAK_FREQUENCY_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810; + // * BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811; + // * BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION + // = 4812; + // * BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813; + // * BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814; + // * BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815; + // * SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50; + // * SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001; + // * SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002; + // * SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003; + // * SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004; + // * SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005; + // * SHIPMENT_TYPE_REQUIREMENT_ERROR = 52; + // * SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001; + // * SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002; + // * SHIPMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003; + // * SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004; + // * SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005; + // * SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006; + // * SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007; + // * SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008; + // * SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009; + // * SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52010; + // * SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011; + // * VEHICLE_OPERATOR_ERROR = 54; + // * VEHICLE_OPERATOR_EMPTY_TYPE = 5400; + // * VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401; + // * VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402; + // * VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403; + // * VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404; + // * DURATION_SECONDS_MATRIX_ERROR = 56; + // * DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600; + // * DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601; + int32 code = 1; + + // The error display name. + string display_name = 2; + + // An error context may involve 0, 1 (most of the time) or more fields. For + // example, referring to vehicle #4 and shipment #2's first pickup can be + // done as follows: + // ``` + // fields { name: "vehicles" index: 4} + // fields { name: "shipments" index: 2 sub_field {name: "pickups" index: 0} } + // ``` + // Note, however, that the cardinality of `fields` should not change for a + // given error code. + repeated FieldReference fields = 3; + + // Human-readable string describing the error. There is a 1:1 mapping + // between `code` and `error_message` (when code != "UNSPECIFIED"). + // + // *STABILITY*: Not stable: the error message associated to a given `code` may + // change (hopefully to clarify it) over time. Please rely on the + // `display_name` and `code` instead. + string error_message = 4; + + // May contain the value(s) of the field(s). This is not always available. You + // should absolutely not rely on it and use it only for manual model + // debugging. + string offending_values = 5; +} + +// Specify an input for +// [BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours]. +message InputConfig { + // Required. + oneof source { + // A Google Cloud Storage location. This must be a single object (file). + GcsSource gcs_source = 1; + } + + // Required. The input data format. + DataFormat data_format = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Specify a destination for +// [BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] +// results. +message OutputConfig { + // Required. + oneof destination { + // The Google Cloud Storage location to write the output to. + GcsDestination gcs_destination = 1; + } + + // Required. The output data format. + DataFormat data_format = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The Google Cloud Storage location where the input file will be read from. +message GcsSource { + // Required. URI of a Google Cloud Storage object with the format + // `gs://bucket/path/to/object`. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The Google Cloud Storage location where the output file(s) will be written +// to. +message GcsDestination { + // Required. Google Cloud Storage URI. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Data formats for input and output files. +enum DataFormat { + // Invalid value, format must not be UNSPECIFIED. + DATA_FORMAT_UNSPECIFIED = 0; + + // JavaScript Object Notation. + JSON = 1; + + // Protocol Buffers text format. See + // https://protobuf.dev/reference/protobuf/textformat-spec/ + PROTO_TEXT = 2; +} diff --git a/third_party/googleapis/google/maps/routeoptimization/v1/routeoptimization_v1.yaml b/third_party/googleapis/google/maps/routeoptimization/v1/routeoptimization_v1.yaml new file mode 100644 index 000000000..4141fd6e1 --- /dev/null +++ b/third_party/googleapis/google/maps/routeoptimization/v1/routeoptimization_v1.yaml @@ -0,0 +1,80 @@ +type: google.api.Service +config_version: 3 +name: routeoptimization.googleapis.com +title: Route Optimization API + +apis: +- name: google.longrunning.Operations +- name: google.maps.routeoptimization.v1.RouteOptimization + +types: +- name: google.maps.routeoptimization.v1.BatchOptimizeToursMetadata +- name: google.maps.routeoptimization.v1.BatchOptimizeToursResponse + +documentation: + summary: Route Optimization API. + +http: + rules: + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + +authentication: + rules: + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.maps.routeoptimization.v1.RouteOptimization.BatchOptimizeTours + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.maps.routeoptimization.v1.RouteOptimization.OptimizeTours + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1546507 + documentation_uri: https://developers.google.com/maps/documentation/route-optimization + proto_reference_documentation_uri: https://developers.google.com/maps/documentation/route-optimization/reference/rpc + rest_reference_documentation_uri: https://developers.google.com/maps/documentation/route-optimization/reference/rest + api_short_name: routeoptimization + github_label: 'api: routeoptimization' + doc_tag_prefix: routeoptimization + organization: GEO + library_settings: + - version: google.maps.routeoptimization.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/maps/routeoptimization/v1/routeoptimization_v1_grpc_service_config.json b/third_party/googleapis/google/maps/routeoptimization/v1/routeoptimization_v1_grpc_service_config.json new file mode 100644 index 000000000..57fa4d643 --- /dev/null +++ b/third_party/googleapis/google/maps/routeoptimization/v1/routeoptimization_v1_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.maps.routeoptimization.v1.RouteOptimization", "method": "OptimizeTours" } + ], + "timeout": "3600s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_request.proto b/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_request.proto index 4c7ad9f7a..971d2a495 100644 --- a/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_request.proto +++ b/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_request.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_response.proto b/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_response.proto index 57dd739bb..1b5fe97d4 100644 --- a/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_response.proto +++ b/third_party/googleapis/google/maps/routes/v1/compute_custom_routes_response.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/compute_route_matrix_request.proto b/third_party/googleapis/google/maps/routes/v1/compute_route_matrix_request.proto index c2c83cbc7..0348e44f8 100644 --- a/third_party/googleapis/google/maps/routes/v1/compute_route_matrix_request.proto +++ b/third_party/googleapis/google/maps/routes/v1/compute_route_matrix_request.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/compute_routes_request.proto b/third_party/googleapis/google/maps/routes/v1/compute_routes_request.proto index 81af6f947..e37649cad 100644 --- a/third_party/googleapis/google/maps/routes/v1/compute_routes_request.proto +++ b/third_party/googleapis/google/maps/routes/v1/compute_routes_request.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/compute_routes_response.proto b/third_party/googleapis/google/maps/routes/v1/compute_routes_response.proto index 779fd17d5..4861c2e7a 100644 --- a/third_party/googleapis/google/maps/routes/v1/compute_routes_response.proto +++ b/third_party/googleapis/google/maps/routes/v1/compute_routes_response.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/custom_route.proto b/third_party/googleapis/google/maps/routes/v1/custom_route.proto index c23fb7cc1..be40e6efb 100644 --- a/third_party/googleapis/google/maps/routes/v1/custom_route.proto +++ b/third_party/googleapis/google/maps/routes/v1/custom_route.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/fallback_info.proto b/third_party/googleapis/google/maps/routes/v1/fallback_info.proto index 33e8ba1ea..bc59479ef 100644 --- a/third_party/googleapis/google/maps/routes/v1/fallback_info.proto +++ b/third_party/googleapis/google/maps/routes/v1/fallback_info.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/polyline.proto b/third_party/googleapis/google/maps/routes/v1/polyline.proto index 83052b4b6..287216ddc 100644 --- a/third_party/googleapis/google/maps/routes/v1/polyline.proto +++ b/third_party/googleapis/google/maps/routes/v1/polyline.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/route.proto b/third_party/googleapis/google/maps/routes/v1/route.proto index 17a137482..86dcdc44d 100644 --- a/third_party/googleapis/google/maps/routes/v1/route.proto +++ b/third_party/googleapis/google/maps/routes/v1/route.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/route_matrix_element.proto b/third_party/googleapis/google/maps/routes/v1/route_matrix_element.proto index 065ee44af..5622d1295 100644 --- a/third_party/googleapis/google/maps/routes/v1/route_matrix_element.proto +++ b/third_party/googleapis/google/maps/routes/v1/route_matrix_element.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/route_service.proto b/third_party/googleapis/google/maps/routes/v1/route_service.proto index a8007fd23..ffc37c67f 100644 --- a/third_party/googleapis/google/maps/routes/v1/route_service.proto +++ b/third_party/googleapis/google/maps/routes/v1/route_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/toll_passes.proto b/third_party/googleapis/google/maps/routes/v1/toll_passes.proto index 96122a14d..1fb092690 100644 --- a/third_party/googleapis/google/maps/routes/v1/toll_passes.proto +++ b/third_party/googleapis/google/maps/routes/v1/toll_passes.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/vehicle_emission_type.proto b/third_party/googleapis/google/maps/routes/v1/vehicle_emission_type.proto index e46be9e36..a31fa17c8 100644 --- a/third_party/googleapis/google/maps/routes/v1/vehicle_emission_type.proto +++ b/third_party/googleapis/google/maps/routes/v1/vehicle_emission_type.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1/waypoint.proto b/third_party/googleapis/google/maps/routes/v1/waypoint.proto index 8234fbfa4..cfad50bb1 100644 --- a/third_party/googleapis/google/maps/routes/v1/waypoint.proto +++ b/third_party/googleapis/google/maps/routes/v1/waypoint.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routes/v1alpha/route_service.proto b/third_party/googleapis/google/maps/routes/v1alpha/route_service.proto index 9b92dc5e5..c6d9ddad2 100644 --- a/third_party/googleapis/google/maps/routes/v1alpha/route_service.proto +++ b/third_party/googleapis/google/maps/routes/v1alpha/route_service.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/fallback_info.proto b/third_party/googleapis/google/maps/routing/v2/fallback_info.proto index 3af720b9b..8ab23ae61 100644 --- a/third_party/googleapis/google/maps/routing/v2/fallback_info.proto +++ b/third_party/googleapis/google/maps/routing/v2/fallback_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,12 +62,13 @@ enum FallbackRoutingMode { // Not used. FALLBACK_ROUTING_MODE_UNSPECIFIED = 0; - // Indicates the `TRAFFIC_UNAWARE` [google.maps.routing.v2.RoutingPreference] - // was used to compute the response. + // Indicates the `TRAFFIC_UNAWARE` + // [`RoutingPreference`][google.maps.routing.v2.RoutingPreference] was used to + // compute the response. FALLBACK_TRAFFIC_UNAWARE = 1; // Indicates the `TRAFFIC_AWARE` - // [RoutingPreference][google.maps.routing.v2.RoutingPreference] was used to + // [`RoutingPreference`][google.maps.routing.v2.RoutingPreference] was used to // compute the response. FALLBACK_TRAFFIC_AWARE = 2; } diff --git a/third_party/googleapis/google/maps/routing/v2/geocoding_results.proto b/third_party/googleapis/google/maps/routing/v2/geocoding_results.proto index 8532119d2..f2ea9b3bf 100644 --- a/third_party/googleapis/google/maps/routing/v2/geocoding_results.proto +++ b/third_party/googleapis/google/maps/routing/v2/geocoding_results.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ option objc_class_prefix = "GMRV2"; option php_namespace = "Google\\Maps\\Routing\\V2"; option ruby_package = "Google::Maps::Routing::V2"; -// Contains [GeocodedWaypoints][google.maps.routing.v2.GeocodedWaypoint] for +// Contains [`GeocodedWaypoints`][google.maps.routing.v2.GeocodedWaypoint] for // origin, destination and intermediate waypoints. Only populated for address // waypoints. message GeocodingResults { @@ -57,8 +57,8 @@ message GeocodedWaypoint { optional int32 intermediate_waypoint_request_index = 2; // The type(s) of the result, in the form of zero or more type tags. - // Supported types: - // https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types + // Supported types: [Address types and address component + // types](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types). repeated string type = 3; // Indicates that the geocoder did not return an exact match for the original diff --git a/third_party/googleapis/google/maps/routing/v2/localized_time.proto b/third_party/googleapis/google/maps/routing/v2/localized_time.proto index 1f19ef196..a5a2e292f 100644 --- a/third_party/googleapis/google/maps/routing/v2/localized_time.proto +++ b/third_party/googleapis/google/maps/routing/v2/localized_time.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/location.proto b/third_party/googleapis/google/maps/routing/v2/location.proto index 8794169d1..00ea07a95 100644 --- a/third_party/googleapis/google/maps/routing/v2/location.proto +++ b/third_party/googleapis/google/maps/routing/v2/location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,6 +39,6 @@ message Location { // values can be from 0 to 360, where 0 specifies a heading of due North, 90 // specifies a heading of due East, and so on. You can use this field only for // `DRIVE` and `TWO_WHEELER` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. google.protobuf.Int32Value heading = 2; } diff --git a/third_party/googleapis/google/maps/routing/v2/maneuver.proto b/third_party/googleapis/google/maps/routing/v2/maneuver.proto index dac7b8e3d..246757496 100644 --- a/third_party/googleapis/google/maps/routing/v2/maneuver.proto +++ b/third_party/googleapis/google/maps/routing/v2/maneuver.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,7 +27,7 @@ option php_namespace = "Google\\Maps\\Routing\\V2"; option ruby_package = "Google::Maps::Routing::V2"; // A set of values that specify the navigation action to take for the current -// step (e.g., turn left, merge, straight, etc.). +// step (for example, turn left, merge, or straight). enum Maneuver { // Not used. MANEUVER_UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/maps/routing/v2/navigation_instruction.proto b/third_party/googleapis/google/maps/routing/v2/navigation_instruction.proto index cf6683232..1952c9b4e 100644 --- a/third_party/googleapis/google/maps/routing/v2/navigation_instruction.proto +++ b/third_party/googleapis/google/maps/routing/v2/navigation_instruction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,10 +29,11 @@ option php_namespace = "Google\\Maps\\Routing\\V2"; option ruby_package = "Google::Maps::Routing::V2"; // Encapsulates navigation instructions for a -// [RouteLegStep][google.maps.routing.v2.RouteLegStep] +// [`RouteLegStep`][google.maps.routing.v2.RouteLegStep]. message NavigationInstruction { - // Encapsulates the navigation instructions for the current step (e.g., turn - // left, merge, straight, etc.). This field determines which icon to display. + // Encapsulates the navigation instructions for the current step (for example, + // turn left, merge, or straight). This field determines which icon to + // display. Maneuver maneuver = 1; // Instructions for navigating this step. diff --git a/third_party/googleapis/google/maps/routing/v2/polyline.proto b/third_party/googleapis/google/maps/routing/v2/polyline.proto index ba3609b2d..c718ba2fa 100644 --- a/third_party/googleapis/google/maps/routing/v2/polyline.proto +++ b/third_party/googleapis/google/maps/routing/v2/polyline.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ message Polyline { string encoded_polyline = 1; // Specifies a polyline using the [GeoJSON LineString - // format](https://tools.ietf.org/html/rfc7946#section-3.1.4) + // format](https://tools.ietf.org/html/rfc7946#section-3.1.4). google.protobuf.Struct geo_json_linestring = 2; } } @@ -65,7 +65,7 @@ enum PolylineEncoding { POLYLINE_ENCODING_UNSPECIFIED = 0; // Specifies a polyline encoded using the [polyline encoding - // algorithm](https://developers.google.com/maps/documentation/utilities/polylinealgorithm). + // algorithm](/maps/documentation/utilities/polylinealgorithm). ENCODED_POLYLINE = 1; // Specifies a polyline using the [GeoJSON LineString diff --git a/third_party/googleapis/google/maps/routing/v2/route.proto b/third_party/googleapis/google/maps/routing/v2/route.proto index 3a982db04..1d05ad1cb 100644 --- a/third_party/googleapis/google/maps/routing/v2/route.proto +++ b/third_party/googleapis/google/maps/routing/v2/route.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -51,11 +51,11 @@ message Route { // Duration taking traffic conditions into consideration, represented in // text form. Note: If you did not request traffic information, this value - // will be the same value as static_duration. + // will be the same value as `static_duration`. google.type.LocalizedText duration = 2; - // Duration without taking traffic conditions into - // consideration, represented in text form. + // Duration without taking traffic conditions into consideration, + // represented in text form. google.type.LocalizedText static_duration = 3; // Transit fare represented in text form. @@ -68,8 +68,8 @@ message Route { // A collection of legs (path segments between waypoints) that make up the // route. Each leg corresponds to the trip between two non-`via` - // [Waypoints][google.maps.routing.v2.Waypoint]. For example, a route with no - // intermediate waypoints has only one leg. A route that includes one + // [`Waypoints`][google.maps.routing.v2.Waypoint]. For example, a route with + // no intermediate waypoints has only one leg. A route that includes one // non-`via` intermediate waypoint has two legs. A route that includes one // `via` intermediate waypoint has one leg. The order of the legs matches the // order of waypoints from `origin` to `intermediates` to `destination`. @@ -106,7 +106,7 @@ message Route { RouteTravelAdvisory travel_advisory = 9; // If you set - // [optimize_waypoint_order][google.maps.routing.v2.ComputeRoutesRequest.optimize_waypoint_order] + // [`optimize_waypoint_order`][google.maps.routing.v2.ComputeRoutesRequest.optimize_waypoint_order] // to true, this field contains the optimized ordering of intermediate // waypoints. Otherwise, this field is empty. // For example, if you give an input of Origin: LA; Intermediate waypoints: @@ -136,7 +136,7 @@ message Route { message RouteTravelAdvisory { // Contains information about tolls on the route. This field is only populated // if tolls are expected on the route. If this field is set, but the - // estimatedPrice subfield is not populated, then the route contains tolls, + // `estimatedPrice` subfield is not populated, then the route contains tolls, // but the estimated price is unknown. If this field is not set, then there // are no tolls expected on the route. TollInfo toll_info = 2; @@ -287,7 +287,7 @@ message RouteLeg { StepsOverview steps_overview = 10; } -// Contains a segment of a [RouteLeg][google.maps.routing.v2.RouteLeg]. A +// Contains a segment of a [`RouteLeg`][google.maps.routing.v2.RouteLeg]. A // step corresponds to a single navigation instruction. Route legs are made up // of steps. message RouteLegStep { @@ -338,7 +338,7 @@ message RouteLegStep { // Additional information for the `RouteLegStep` related to `TRANSIT` routes. message RouteLegStepTransitDetails { - // Details about the transit stops for the `RouteLegStep` + // Details about the transit stops for the `RouteLegStep`. message TransitStopDetails { // Information about the arrival stop for the step. TransitStop arrival_stop = 1; @@ -353,7 +353,7 @@ message RouteLegStepTransitDetails { google.protobuf.Timestamp departure_time = 4; } - // Localized descriptions of values for RouteTransitDetails. + // Localized descriptions of values for `RouteTransitDetails`. message TransitDetailsLocalizedValues { // Time in its formatted text representation with a corresponding time zone. LocalizedTime arrival_time = 1; diff --git a/third_party/googleapis/google/maps/routing/v2/route_label.proto b/third_party/googleapis/google/maps/routing/v2/route_label.proto index ba43b0b8c..862cc19e2 100644 --- a/third_party/googleapis/google/maps/routing/v2/route_label.proto +++ b/third_party/googleapis/google/maps/routing/v2/route_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ option objc_class_prefix = "GMRV2"; option php_namespace = "Google\\Maps\\Routing\\V2"; option ruby_package = "Google::Maps::Routing::V2"; -// Labels for the [Route][google.maps.routing.v2.Route] that are useful to +// Labels for the [`Route`][google.maps.routing.v2.Route] that are useful to // identify specific properties of the route to compare against others. enum RouteLabel { // Default - not used. @@ -37,7 +37,7 @@ enum RouteLabel { // An alternative to the default "best" route. Routes like this will be // returned when - // [compute_alternative_routes][google.maps.routing.v2.ComputeRoutesRequest.compute_alternative_routes] + // [`compute_alternative_routes`][google.maps.routing.v2.ComputeRoutesRequest.compute_alternative_routes] // is specified. DEFAULT_ROUTE_ALTERNATE = 2; diff --git a/third_party/googleapis/google/maps/routing/v2/route_modifiers.proto b/third_party/googleapis/google/maps/routing/v2/route_modifiers.proto index 33dcb7bd8..e4382acf0 100644 --- a/third_party/googleapis/google/maps/routing/v2/route_modifiers.proto +++ b/third_party/googleapis/google/maps/routing/v2/route_modifiers.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -34,22 +34,22 @@ option ruby_package = "Google::Maps::Routing::V2"; message RouteModifiers { // When set to true, avoids toll roads where reasonable, giving preference to // routes not containing toll roads. Applies only to the `DRIVE` and - // `TWO_WHEELER` [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // `TWO_WHEELER` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. bool avoid_tolls = 1; // When set to true, avoids highways where reasonable, giving preference to // routes not containing highways. Applies only to the `DRIVE` and - // `TWO_WHEELER` [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // `TWO_WHEELER` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. bool avoid_highways = 2; // When set to true, avoids ferries where reasonable, giving preference to // routes not containing ferries. Applies only to the `DRIVE` and`TWO_WHEELER` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. bool avoid_ferries = 3; // When set to true, avoids navigating indoors where reasonable, giving // preference to routes not containing indoor navigation. Applies only to the - // `WALK` [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // `WALK` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. bool avoid_indoor = 4; // Specifies the vehicle information. @@ -60,6 +60,6 @@ message RouteModifiers { // toll passes are not provided, the API treats the toll pass as unknown and // tries to return the cash price. // Applies only to the `DRIVE` and `TWO_WHEELER` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. repeated TollPass toll_passes = 6; } diff --git a/third_party/googleapis/google/maps/routing/v2/route_travel_mode.proto b/third_party/googleapis/google/maps/routing/v2/route_travel_mode.proto index f6bd3e52a..1e4a9995b 100644 --- a/third_party/googleapis/google/maps/routing/v2/route_travel_mode.proto +++ b/third_party/googleapis/google/maps/routing/v2/route_travel_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/routes_service.proto b/third_party/googleapis/google/maps/routing/v2/routes_service.proto index 1ef6db734..d2a84d30a 100644 --- a/third_party/googleapis/google/maps/routing/v2/routes_service.proto +++ b/third_party/googleapis/google/maps/routing/v2/routes_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -56,7 +56,7 @@ service Routes { // the input. You can provide the response field mask by using URL parameter // `$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask` // (see the [available URL parameters and - // headers](https://cloud.google.com/apis/docs/system-parameters). The value + // headers](https://cloud.google.com/apis/docs/system-parameters)). The value // is a comma separated list of field paths. See detailed documentation about // [how to construct the field // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). @@ -98,9 +98,9 @@ service Routes { // the input. You can provide the response field mask by using the URL // parameter `$fields` or `fields`, or by using the HTTP/gRPC header // `X-Goog-FieldMask` (see the [available URL parameters and - // headers](https://cloud.google.com/apis/docs/system-parameters). The value - // is a comma separated list of field paths. See this detailed documentation - // about [how to construct the field + // headers](https://cloud.google.com/apis/docs/system-parameters)). + // The value is a comma separated list of field paths. See this detailed + // documentation about [how to construct the field // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). // // For example, in this method: @@ -161,8 +161,7 @@ message ComputeRoutesRequest { // Traffic aware polylines for the route(s). TRAFFIC_ON_POLYLINE = 3; - // [Navigation - // Instructions][google.maps.routing.v2.NavigationInstructions.instructions] + // [`NavigationInstructions`](google.maps.routing.v2.NavigationInstructions.instructions) // presented as a formatted HTML text string. This content // is meant to be read as-is. This content is for display only. // Do not programmatically parse it. @@ -201,16 +200,18 @@ message ComputeRoutesRequest { // Optional. The departure time. If you don't set this value, then this value // defaults to the time that you made the request. // NOTE: You can only specify a `departure_time` in the past when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to - // `TRANSIT`. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to + // `TRANSIT`. Transit trips are available for up to 7 days in the past or 100 + // days in the future. google.protobuf.Timestamp departure_time = 7 [(google.api.field_behavior) = OPTIONAL]; // Optional. The arrival time. // NOTE: Can only be set when // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to - // `TRANSIT`. You can specify either departure_time or arrival_time, but not - // both. + // `TRANSIT`. You can specify either `departure_time` or `arrival_time`, but + // not both. Transit trips are available for up to 7 days in the past or 100 + // days in the future. google.protobuf.Timestamp arrival_time = 19 [(google.api.field_behavior) = OPTIONAL]; @@ -224,23 +225,24 @@ message ComputeRoutesRequest { RouteModifiers route_modifiers = 9 [(google.api.field_behavior) = OPTIONAL]; // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more - // information, see - // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. See - // [Language Support](https://developers.google.com/maps/faq#languagesupport) + // information, see [Unicode Locale + // Identifier](http://www.unicode.org/reports/tr35/#Unicode_locale_identifier). + // See [Language + // Support](https://developers.google.com/maps/faq#languagesupport) // for the list of supported languages. When you don't provide this value, the // display language is inferred from the location of the route request. string language_code = 10 [(google.api.field_behavior) = OPTIONAL]; // Optional. The region code, specified as a ccTLD ("top-level domain") - // two-character value. For more information see - // https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains + // two-character value. For more information see [Country code top-level + // domains](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains). string region_code = 16 [(google.api.field_behavior) = OPTIONAL]; // Optional. Specifies the units of measure for the display fields. These // fields include the `instruction` field in - // [NavigationInstruction][google.maps.routing.v2.NavigationInstruction]. The - // units of measure used for the route, leg, step distance, and duration are - // not affected by this value. If you don't provide this value, then the + // [`NavigationInstruction`][google.maps.routing.v2.NavigationInstruction]. + // The units of measure used for the route, leg, step distance, and duration + // are not affected by this value. If you don't provide this value, then the // display units are inferred from the location of the first origin. Units units = 11 [(google.api.field_behavior) = OPTIONAL]; @@ -273,20 +275,21 @@ message ComputeRoutesRequest { // Optional. Specifies the assumptions to use when calculating time in // traffic. This setting affects the value returned in the duration field in - // the [Route][google.maps.routing.v2.Route] and - // [RouteLeg][google.maps.routing.v2.RouteLeg] which contains the predicted + // the + // [`Route`][google.maps.routing.v2.Route] and + // [`RouteLeg`][google.maps.routing.v2.RouteLeg] which contains the predicted // time in traffic based on historical averages. // `TrafficModel` is only available for requests that have set - // [RoutingPreference][google.maps.routing.v2.RoutingPreference] to + // [`RoutingPreference`][google.maps.routing.v2.RoutingPreference] to // `TRAFFIC_AWARE_OPTIMAL` and - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] to `DRIVE`. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] to `DRIVE`. // Defaults to `BEST_GUESS` if traffic is requested and `TrafficModel` is not // specified. TrafficModel traffic_model = 18 [(google.api.field_behavior) = OPTIONAL]; // Optional. Specifies preferences that influence the route returned for // `TRANSIT` routes. NOTE: You can only specify a `transit_preferences` when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to // `TRANSIT`. TransitPreferences transit_preferences = 20 [(google.api.field_behavior) = OPTIONAL]; @@ -295,7 +298,7 @@ message ComputeRoutesRequest { // ComputeRoutes the response message. message ComputeRoutesResponse { // Contains an array of computed routes (up to three) when you specify - // compute_alternatives_routes, and contains just one route when you don't. + // `compute_alternatives_routes`, and contains just one route when you don't. // When this array contains multiple entries, the first one is the most // recommended route. If the array is empty, then it means no route could be // found. @@ -326,12 +329,14 @@ message ComputeRouteMatrixRequest { // matrix. Several size restrictions apply to the cardinality of origins and // destinations: // - // * The number of elements (origins × destinations) must be no greater than - // 625 in any case. - // * The number of elements (origins × destinations) must be no greater than - // 100 if routing_preference is set to `TRAFFIC_AWARE_OPTIMAL`. - // * The number of waypoints (origins + destinations) specified as `place_id` - // must be no greater than 50. + // * The sum of the number of origins + the number of destinations specified + // as either `place_id` or `address` must be no greater than 50. + // * The product of number of origins × number of destinations must be no + // greater than 625 in any case. + // * The product of the number of origins × number of destinations must be no + // greater than 100 if routing_preference is set to `TRAFFIC_AWARE_OPTIMAL`. + // * The product of the number of origins × number of destinations must be no + // greater than 100 if travel_mode is set to `TRANSIT`. repeated RouteMatrixOrigin origins = 1 [(google.api.field_behavior) = REQUIRED]; @@ -354,32 +359,36 @@ message ComputeRouteMatrixRequest { // Optional. The departure time. If you don't set this value, then this value // defaults to the time that you made the request. // NOTE: You can only specify a `departure_time` in the past when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to // `TRANSIT`. google.protobuf.Timestamp departure_time = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. The arrival time. // NOTE: Can only be set when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to - // `TRANSIT`. You can specify either departure_time or arrival_time, but not - // both. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to + // `TRANSIT`. You can specify either `departure_time` or `arrival_time`, but + // not both. google.protobuf.Timestamp arrival_time = 11 [(google.api.field_behavior) = OPTIONAL]; // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more - // information, see - // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. See - // [Language Support](https://developers.google.com/maps/faq#languagesupport) + // information, see [Unicode Locale + // Identifier](http://www.unicode.org/reports/tr35/#Unicode_locale_identifier). + // See [Language + // Support](https://developers.google.com/maps/faq#languagesupport) // for the list of supported languages. When you don't provide this value, the // display language is inferred from the location of the first origin. string language_code = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The region code, specified as a ccTLD ("top-level domain") - // two-character value. For more information see - // https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains + // two-character value. For more information see [Country code top-level + // domains](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains). string region_code = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Specifies the units of measure for the display fields. + Units units = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. A list of extra computations which may be used to complete the // request. Note: These extra computations may return extra fields on the // response. These extra fields must also be specified in the field mask to be diff --git a/third_party/googleapis/google/maps/routing/v2/routing_preference.proto b/third_party/googleapis/google/maps/routing/v2/routing_preference.proto index eaca42dcd..2f296145a 100644 --- a/third_party/googleapis/google/maps/routing/v2/routing_preference.proto +++ b/third_party/googleapis/google/maps/routing/v2/routing_preference.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -35,9 +35,11 @@ enum RoutingPreference { // Computes routes without taking live traffic conditions into consideration. // Suitable when traffic conditions don't matter or are not applicable. // Using this value produces the lowest latency. - // Note: For [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] `DRIVE` - // and `TWO_WHEELER` choice of route and duration are based on road network - // and average time-independent traffic conditions. Results for a given + // Note: For [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] + // `DRIVE` and `TWO_WHEELER`, the route and duration chosen are based on road + // network and average time-independent traffic conditions, not current road + // conditions. Consequently, routes may include roads that are temporarily + // closed. Results for a given // request may vary over time due to changes in the road network, updated // average traffic conditions, and the distributed nature of the service. // Results may also vary between nearly-equivalent routes at any time or diff --git a/third_party/googleapis/google/maps/routing/v2/speed_reading_interval.proto b/third_party/googleapis/google/maps/routing/v2/speed_reading_interval.proto index 2ca769c9e..107b78221 100644 --- a/third_party/googleapis/google/maps/routing/v2/speed_reading_interval.proto +++ b/third_party/googleapis/google/maps/routing/v2/speed_reading_interval.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,8 +28,8 @@ option ruby_package = "Google::Maps::Routing::V2"; // Traffic density indicator on a contiguous segment of a polyline or path. // Given a path with points P_0, P_1, ... , P_N (zero-based index), the -// SpeedReadingInterval defines an interval and describes its traffic using the -// following categories. +// `SpeedReadingInterval` defines an interval and describes its traffic using +// the following categories. message SpeedReadingInterval { // The classification of polyline speed based on traffic data. enum Speed { diff --git a/third_party/googleapis/google/maps/routing/v2/toll_info.proto b/third_party/googleapis/google/maps/routing/v2/toll_info.proto index 0788e5d45..a817115b7 100644 --- a/third_party/googleapis/google/maps/routing/v2/toll_info.proto +++ b/third_party/googleapis/google/maps/routing/v2/toll_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,12 +28,12 @@ option objc_class_prefix = "GMRV2"; option php_namespace = "Google\\Maps\\Routing\\V2"; option ruby_package = "Google::Maps::Routing::V2"; -// Encapsulates toll information on a [Route][google.maps.routing.v2.Route] or -// on a [RouteLeg][google.maps.routing.v2.RouteLeg]. +// Encapsulates toll information on a [`Route`][google.maps.routing.v2.Route] or +// on a [`RouteLeg`][google.maps.routing.v2.RouteLeg]. message TollInfo { // The monetary amount of tolls for the corresponding - // [Route][google.maps.routing.v2.Route] or - // [RouteLeg][google.maps.routing.v2.RouteLeg]. This list contains a money + // [`Route`][google.maps.routing.v2.Route] or + // [`RouteLeg`][google.maps.routing.v2.RouteLeg]. This list contains a money // amount for each currency that is expected to be charged by the toll // stations. Typically this list will contain only one item for routes with // tolls in one currency. For international trips, this list may contain diff --git a/third_party/googleapis/google/maps/routing/v2/toll_passes.proto b/third_party/googleapis/google/maps/routing/v2/toll_passes.proto index 72598e560..fea0078bc 100644 --- a/third_party/googleapis/google/maps/routing/v2/toll_passes.proto +++ b/third_party/googleapis/google/maps/routing/v2/toll_passes.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,7 +31,8 @@ enum TollPass { // Not used. If this value is used, then the request fails. TOLL_PASS_UNSPECIFIED = 0; - // Sydney toll pass. See additional details at https://www.myetoll.com.au. + // Sydney toll pass. See additional details at + // https://www.myetoll.com.au. AU_ETOLL_TAG = 82; // Sydney toll pass. See additional details at https://www.tollpay.com.au. @@ -95,6 +96,17 @@ enum TollPass { // India, HP state plate exemption. IN_LOCAL_HP_PLATE_EXEMPT = 79; + // Japan + // ETC. Electronic wireless system to collect tolls. + // https://www.go-etc.jp/ + JP_ETC = 98; + + // Japan + // ETC2.0. New version of ETC with further discount and bidirectional + // communication between devices on vehicles and antennas on the road. + // https://www.go-etc.jp/etc2/index.html + JP_ETC2 = 99; + // Mexico toll pass. // https://iave.capufe.gob.mx/#/ MX_IAVE = 90; @@ -329,6 +341,9 @@ enum TollPass { // WV, USA. US_WV_MEMORIAL_BRIDGE_TICKETS = 63; + // WV, USA + US_WV_MOV_PASS = 100; + // WV, USA. US_WV_NEWELL_TOLL_BRIDGE_TICKET = 64; } diff --git a/third_party/googleapis/google/maps/routing/v2/traffic_model.proto b/third_party/googleapis/google/maps/routing/v2/traffic_model.proto index 4326b4b12..9ad957f77 100644 --- a/third_party/googleapis/google/maps/routing/v2/traffic_model.proto +++ b/third_party/googleapis/google/maps/routing/v2/traffic_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/transit.proto b/third_party/googleapis/google/maps/routing/v2/transit.proto index 5099a4ff1..696569675 100644 --- a/third_party/googleapis/google/maps/routing/v2/transit.proto +++ b/third_party/googleapis/google/maps/routing/v2/transit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/transit_preferences.proto b/third_party/googleapis/google/maps/routing/v2/transit_preferences.proto index 987c06228..d20d78483 100644 --- a/third_party/googleapis/google/maps/routing/v2/transit_preferences.proto +++ b/third_party/googleapis/google/maps/routing/v2/transit_preferences.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/units.proto b/third_party/googleapis/google/maps/routing/v2/units.proto index d94df6c3e..821dd023b 100644 --- a/third_party/googleapis/google/maps/routing/v2/units.proto +++ b/third_party/googleapis/google/maps/routing/v2/units.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/maps/routing/v2/vehicle_emission_type.proto b/third_party/googleapis/google/maps/routing/v2/vehicle_emission_type.proto index 5109d4d30..4b9284f8b 100644 --- a/third_party/googleapis/google/maps/routing/v2/vehicle_emission_type.proto +++ b/third_party/googleapis/google/maps/routing/v2/vehicle_emission_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ option ruby_package = "Google::Maps::Routing::V2"; // A set of values describing the vehicle's emission type. // Applies only to the `DRIVE` -// [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. +// [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. enum VehicleEmissionType { // No emission type specified. Default to `GASOLINE`. VEHICLE_EMISSION_TYPE_UNSPECIFIED = 0; diff --git a/third_party/googleapis/google/maps/routing/v2/vehicle_info.proto b/third_party/googleapis/google/maps/routing/v2/vehicle_info.proto index 574d15f5d..d05a000fe 100644 --- a/third_party/googleapis/google/maps/routing/v2/vehicle_info.proto +++ b/third_party/googleapis/google/maps/routing/v2/vehicle_info.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -32,6 +32,6 @@ option ruby_package = "Google::Maps::Routing::V2"; message VehicleInfo { // Describes the vehicle's emission type. // Applies only to the `DRIVE` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. VehicleEmissionType emission_type = 2; } diff --git a/third_party/googleapis/google/maps/routing/v2/waypoint.proto b/third_party/googleapis/google/maps/routing/v2/waypoint.proto index 8a02d5e7d..30b7580be 100644 --- a/third_party/googleapis/google/maps/routing/v2/waypoint.proto +++ b/third_party/googleapis/google/maps/routing/v2/waypoint.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -47,7 +47,7 @@ message Waypoint { // Marks this waypoint as a milestone rather a stopping point. For // each non-via waypoint in the request, the response appends an entry to the - // [legs][google.maps.routing.v2.Route.legs] + // [`legs`][google.maps.routing.v2.Route.legs] // array to provide the details for stopovers on that leg of the trip. Set // this value to true when you want the route to pass through this waypoint // without stopping over. Via waypoints don't cause an entry to be added to @@ -63,14 +63,14 @@ message Waypoint { // calculated route won't include non-`via` waypoints on roads that are // unsuitable for pickup and drop-off. This option works only for `DRIVE` and // `TWO_WHEELER` travel modes, and when the `location_type` is - // [Location][google.maps.routing.v2.Location]. + // [`Location`][google.maps.routing.v2.Location]. bool vehicle_stopover = 4; // Indicates that the location of this waypoint is meant to have a preference // for the vehicle to stop at a particular side of road. When you set this // value, the route will pass through the location so that the vehicle can // stop at the side of road that the location is biased towards from the - // center of the road. This option works only for 'DRIVE' and 'TWO_WHEELER' - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // center of the road. This option works only for `DRIVE` and `TWO_WHEELER` + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. bool side_of_road = 5; } diff --git a/third_party/googleapis/google/maps/solar/v1/BUILD.bazel b/third_party/googleapis/google/maps/solar/v1/BUILD.bazel index 633b8e0dd..932cee3c9 100644 --- a/third_party/googleapis/google/maps/solar/v1/BUILD.bazel +++ b/third_party/googleapis/google/maps/solar/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "solar_proto", @@ -26,6 +29,7 @@ proto_library( deps = [ "//google/api:annotations_proto", "//google/api:client_proto", + "//google/api:field_behavior_proto", "//google/api:httpbody_proto", "//google/type:date_proto", "//google/type:latlng_proto", @@ -44,6 +48,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -93,6 +98,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-maps-solar-v1-java", + include_samples = True, transport = "grpc+rest", deps = [ ":solar_java_gapic", @@ -100,12 +106,12 @@ java_gapic_assembly_gradle_pkg( ":solar_java_proto", ":solar_proto", ], - include_samples = True, ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -133,7 +139,6 @@ go_gapic_library( grpc_service_config = "solar_grpc_service_config.json", importpath = "cloud.google.com/go/maps/solar/apiv1;solar", metadata = True, - release_level = "beta", rest_numeric_enums = True, service_yaml = "solar_v1.yaml", transport = "grpc+rest", @@ -148,9 +153,9 @@ go_gapic_assembly_pkg( name = "gapi-cloud-maps-solar-v1-go", deps = [ ":solar_go_gapic", - ":solar_go_gapic_srcjar-test.srcjar", ":solar_go_gapic_srcjar-metadata.srcjar", ":solar_go_gapic_srcjar-snippets.srcjar", + ":solar_go_gapic_srcjar-test.srcjar", ":solar_go_proto", ], ) @@ -158,6 +163,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -172,7 +178,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "solar_v1.yaml", transport = "grpc+rest", - deps = [], + deps = [ + ], ) py_test( @@ -196,6 +203,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -212,8 +220,8 @@ php_gapic_library( name = "solar_php_gapic", srcs = [":solar_proto_with_info"], grpc_service_config = "solar_grpc_service_config.json", - rest_numeric_enums = True, migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, service_yaml = "solar_v1.yaml", transport = "grpc+rest", deps = [ @@ -233,6 +241,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -241,7 +250,7 @@ load( nodejs_gapic_library( name = "solar_nodejs_gapic", - package_name = "@google-cloud/solar", + package_name = "@googlemaps/solar", src = ":solar_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "solar_grpc_service_config.json", @@ -263,10 +272,11 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -285,9 +295,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "solar_ruby_gapic", srcs = [":solar_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-maps-solar-v1", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-maps-solar-v1"], grpc_service_config = "solar_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "solar_v1.yaml", @@ -311,6 +319,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -321,7 +330,6 @@ load( csharp_proto_library( name = "solar_csharp_proto", - extra_opts = [], deps = [":solar_proto"], ) @@ -338,6 +346,7 @@ csharp_gapic_library( grpc_service_config = "solar_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "solar_v1.yaml", + transport = "grpc+rest", deps = [ ":solar_csharp_grpc", ":solar_csharp_proto", @@ -357,6 +366,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/maps/solar/v1/solar_service.proto b/third_party/googleapis/google/maps/solar/v1/solar_service.proto index cbe0d9bee..82ba7d7a3 100644 --- a/third_party/googleapis/google/maps/solar/v1/solar_service.proto +++ b/third_party/googleapis/google/maps/solar/v1/solar_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package google.maps.solar.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; +import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; import "google/type/date.proto"; import "google/type/latlng.proto"; @@ -67,14 +68,22 @@ service Solar { // Request message for `Solar.FindClosestBuildingInsights`. message FindClosestBuildingInsightsRequest { - // The longitude and latitude from which the API looks for the nearest known - // building. - google.type.LatLng location = 1; + // Required. The longitude and latitude from which the API looks for the + // nearest known building. + google.type.LatLng location = 1 [(google.api.field_behavior) = REQUIRED]; - // The minimum quality level allowed in the results. No result with + // Optional. The minimum quality level allowed in the results. No result with // lower quality than this will be returned. Not specifying this is // equivalent to restricting to HIGH quality only. - ImageryQuality required_quality = 3; + ImageryQuality required_quality = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to require exact quality of the imagery. + // If set to false, the `required_quality` field is interpreted as the minimum + // required quality, such that HIGH quality imagery may be returned when + // `required_quality` is set to MEDIUM. If set to true, `required_quality` + // is interpreted as the exact required quality and only `MEDIUM` quality + // imagery is returned if `required_quality` is set to `MEDIUM`. + bool exact_quality_required = 4 [(google.api.field_behavior) = OPTIONAL]; } // A bounding box in lat/lng coordinates. @@ -202,7 +211,8 @@ message SolarPotential { // order of increasing number of panels. The `SolarPanelConfig` with // [panels_count] // [google.maps.solar.v1.SolarPanelConfig.panels_count]=N is - // based on the first N panels in the `solar_panels` list. + // based on the first N panels in the `solar_panels` list. This field is only + // populated if at least 4 panels can fit on a roof. repeated SolarPanelConfig solar_panel_configs = 7; // A [FinancialAnalysis] @@ -496,8 +506,6 @@ message CashPurchaseSavings { // Cost and benefit of using a loan to buy a particular configuration // of solar panels with a particular electricity usage. -// Initial out of pocket cost is zero in our model: the loan covers -// everything. message FinancedPurchaseSavings { // Annual loan payments. google.type.Money annual_loan_payment = 1; @@ -515,10 +523,11 @@ message FinancedPurchaseSavings { // Request message for `Solar.GetDataLayers`. message GetDataLayersRequest { - // The longitude and latitude for the center of the region to get data for. - google.type.LatLng location = 1; + // Required. The longitude and latitude for the center of the region to get + // data for. + google.type.LatLng location = 1 [(google.api.field_behavior) = REQUIRED]; - // The radius, in meters, defining the region surrounding that + // Required. The radius, in meters, defining the region surrounding that // centre point for which data should be returned. The limitations // on this value are: // @@ -527,24 +536,32 @@ message GetDataLayersRequest { // `radius_meters` <= `pixel_size_meters * 1000`. // * However, for values over 175m, the `DataLayerView` in the // request must not include monthly flux or hourly shade. - float radius_meters = 2; + float radius_meters = 2 [(google.api.field_behavior) = REQUIRED]; - // The desired subset of the data to return. - DataLayerView view = 3; + // Optional. The desired subset of the data to return. + DataLayerView view = 3 [(google.api.field_behavior) = OPTIONAL]; - // The minimum quality level allowed in the results. No result with + // Optional. The minimum quality level allowed in the results. No result with // lower quality than this will be returned. Not specifying this is // equivalent to restricting to HIGH quality only. - ImageryQuality required_quality = 5; + ImageryQuality required_quality = 5 [(google.api.field_behavior) = OPTIONAL]; - // The minimum scale, in meters per pixel, of the data to return. + // Optional. The minimum scale, in meters per pixel, of the data to return. // Values of 0.1 (the default, if this field is not set explicitly), // 0.25, 0.5, and 1.0 are supported. Imagery components whose normal // resolution is less than `pixel_size_meters` will be returned at // the resolution specified by `pixel_size_meters`; imagery // components whose normal resolution is equal to or greater than // `pixel_size_meters` will be returned at that normal resolution. - float pixel_size_meters = 6; + float pixel_size_meters = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to require exact quality of the imagery. + // If set to false, the `required_quality` field is interpreted as the minimum + // required quality, such that HIGH quality imagery may be returned when + // `required_quality` is set to MEDIUM. If set to true, `required_quality` + // is interpreted as the exact required quality and only `MEDIUM` quality + // imagery is returned if `required_quality` is set to `MEDIUM`. + bool exact_quality_required = 7 [(google.api.field_behavior) = OPTIONAL]; } // Information about the solar potential of a region. The actual data @@ -629,6 +646,12 @@ message DataLayers { ImageryQuality imagery_quality = 9; } +// Request message for `Solar.GetGeoTiff`. +message GetGeoTiffRequest { + // Required. The ID of the asset being requested. + string id = 1 [(google.api.field_behavior) = REQUIRED]; +} + // What subset of the solar information to return. enum DataLayerView { // Equivalent to FULL. @@ -683,9 +706,3 @@ enum SolarPanelOrientation { // direction of the roof segment that it is placed on. PORTRAIT = 2; } - -// Request message for `Solar.GetGeoTiff`. -message GetGeoTiffRequest { - // The ID of the asset being requested. - string id = 1; -} diff --git a/third_party/googleapis/google/maps/solar/v1/solar_v1.yaml b/third_party/googleapis/google/maps/solar/v1/solar_v1.yaml index ab412a4f9..3ce0cbb94 100644 --- a/third_party/googleapis/google/maps/solar/v1/solar_v1.yaml +++ b/third_party/googleapis/google/maps/solar/v1/solar_v1.yaml @@ -16,3 +16,31 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1356349 + documentation_uri: https://developers.google.com/maps/documentation/solar/overview + api_short_name: solar + github_label: 'api: solar' + doc_tag_prefix: solar + organization: GEO + library_settings: + - version: google.maps.solar.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://developers.google.com/maps/documentation/solar/reference/rest diff --git a/third_party/googleapis/google/maps/unity/clientinfo.proto b/third_party/googleapis/google/maps/unity/clientinfo.proto index 76dd5d080..8a12860e7 100644 --- a/third_party/googleapis/google/maps/unity/clientinfo.proto +++ b/third_party/googleapis/google/maps/unity/clientinfo.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/marketingplatform/admin/v1alpha/BUILD.bazel b/third_party/googleapis/google/marketingplatform/admin/v1alpha/BUILD.bazel new file mode 100644 index 000000000..e25c13261 --- /dev/null +++ b/third_party/googleapis/google/marketingplatform/admin/v1alpha/BUILD.bazel @@ -0,0 +1,381 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "admin_proto", + srcs = [ + "marketingplatform_admin.proto", + "resources.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:empty_proto", + ], +) + +proto_library_with_info( + name = "admin_proto_with_info", + deps = [ + ":admin_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "admin_java_proto", + deps = [":admin_proto"], +) + +java_grpc_library( + name = "admin_java_grpc", + srcs = [":admin_proto"], + deps = [":admin_java_proto"], +) + +java_gapic_library( + name = "admin_java_gapic", + srcs = [":admin_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + test_deps = [ + ":admin_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":admin_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "admin_java_gapic_test_suite", + test_classes = [ + "com.google.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClientHttpJsonTest", + "com.google.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClientTest", + ], + runtime_deps = [":admin_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-marketingplatform-admin-v1alpha-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":admin_java_gapic", + ":admin_java_grpc", + ":admin_java_proto", + ":admin_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "admin_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/marketingplatform/admin/v1alpha", + protos = [":admin_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "admin_go_gapic", + srcs = [":admin_proto_with_info"], + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + importpath = "google.golang.org/google/marketingplatform/admin/v1alpha;admin", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":admin_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-marketingplatform-admin-v1alpha-go", + deps = [ + ":admin_go_gapic", + ":admin_go_gapic_srcjar-metadata.srcjar", + ":admin_go_gapic_srcjar-snippets.srcjar", + ":admin_go_gapic_srcjar-test.srcjar", + ":admin_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "admin_py_gapic", + srcs = [":admin_proto"], + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "admin_py_gapic_test", + srcs = [ + "admin_py_gapic_pytest.py", + "admin_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":admin_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "marketingplatform-admin-v1alpha-py", + deps = [ + ":admin_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "admin_php_proto", + deps = [":admin_proto"], +) + +php_gapic_library( + name = "admin_php_gapic", + srcs = [":admin_proto_with_info"], + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":admin_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-marketingplatform-admin-v1alpha-php", + deps = [ + ":admin_php_gapic", + ":admin_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "admin_nodejs_gapic", + package_name = "@google-cloud/admin", + src = ":admin_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + package = "google.marketingplatform.admin.v1alpha", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "marketingplatform-admin-v1alpha-nodejs", + deps = [ + ":admin_nodejs_gapic", + ":admin_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "admin_ruby_proto", + deps = [":admin_proto"], +) + +ruby_grpc_library( + name = "admin_ruby_grpc", + srcs = [":admin_proto"], + deps = [":admin_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "admin_ruby_gapic", + srcs = [":admin_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-marketingplatform-admin-v1alpha"], + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":admin_ruby_grpc", + ":admin_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-marketingplatform-admin-v1alpha-ruby", + deps = [ + ":admin_ruby_gapic", + ":admin_ruby_grpc", + ":admin_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "admin_csharp_proto", + deps = [":admin_proto"], +) + +csharp_grpc_library( + name = "admin_csharp_grpc", + srcs = [":admin_proto"], + deps = [":admin_csharp_proto"], +) + +csharp_gapic_library( + name = "admin_csharp_gapic", + srcs = [":admin_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "marketingplatformadmin_v1alpha.yaml", + transport = "grpc+rest", + deps = [ + ":admin_csharp_grpc", + ":admin_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-marketingplatform-admin-v1alpha-csharp", + deps = [ + ":admin_csharp_gapic", + ":admin_csharp_grpc", + ":admin_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "admin_cc_proto", + deps = [":admin_proto"], +) + +cc_grpc_library( + name = "admin_cc_grpc", + srcs = [":admin_proto"], + grpc_only = True, + deps = [":admin_cc_proto"], +) diff --git a/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto b/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto new file mode 100644 index 000000000..f501b2b5f --- /dev/null +++ b/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto @@ -0,0 +1,216 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.marketingplatform.admin.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/marketingplatform/admin/v1alpha/resources.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Marketingplatform.Admin.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/marketingplatform/admin/v1alpha;admin"; +option java_multiple_files = true; +option java_outer_classname = "MarketingplatformAdminProto"; +option java_package = "com.google.marketingplatform.admin.v1alpha"; +option php_namespace = "Google\\Marketingplatform\\Admin\\V1alpha"; +option ruby_package = "Google::Marketingplatform::AdminService::V1alpha"; +option (google.api.resource_definition) = { + type: "analyticsadmin.googleapis.com/Property" + pattern: "properties/{property}" +}; + +// Service Interface for the Google Marketing Platform Admin API. +service MarketingplatformAdminService { + option (google.api.default_host) = "marketingplatformadmin.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/marketingplatformadmin.analytics.read," + "https://www.googleapis.com/auth/marketingplatformadmin.analytics.update"; + + // Lookup for a single organization. + rpc GetOrganization(GetOrganizationRequest) returns (Organization) { + option (google.api.http) = { + get: "/v1alpha/{name=organizations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the Google Analytics accounts link to the specified Google Marketing + // Platform organization. + rpc ListAnalyticsAccountLinks(ListAnalyticsAccountLinksRequest) + returns (ListAnalyticsAccountLinksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=organizations/*}/analyticsAccountLinks" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates the link between the Analytics account and the Google Marketing + // Platform organization. + // + // User needs to be an org user, and admin on the Analytics account to create + // the link. If the account is already linked to an organization, user needs + // to unlink the account from the current organization, then try link again. + rpc CreateAnalyticsAccountLink(CreateAnalyticsAccountLinkRequest) + returns (AnalyticsAccountLink) { + option (google.api.http) = { + post: "/v1alpha/{parent=organizations/*}/analyticsAccountLinks" + body: "analytics_account_link" + }; + option (google.api.method_signature) = "parent,analytics_account_link"; + } + + // Deletes the AnalyticsAccountLink, which detaches the Analytics account from + // the Google Marketing Platform organization. + // + // User needs to be an org user, and admin on the Analytics account in order + // to delete the link. + rpc DeleteAnalyticsAccountLink(DeleteAnalyticsAccountLinkRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=organizations/*/analyticsAccountLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the service level for an Analytics property. + rpc SetPropertyServiceLevel(SetPropertyServiceLevelRequest) + returns (SetPropertyServiceLevelResponse) { + option (google.api.http) = { + post: "/v1alpha/{analytics_account_link=organizations/*/analyticsAccountLinks/*}:setPropertyServiceLevel" + body: "*" + }; + option (google.api.method_signature) = "analytics_account_link"; + } +} + +// Various levels of service for Google Analytics. +enum AnalyticsServiceLevel { + // Service level unspecified. + ANALYTICS_SERVICE_LEVEL_UNSPECIFIED = 0; + + // The standard version of Google Analytics. + ANALYTICS_SERVICE_LEVEL_STANDARD = 1; + + // The premium version of Google Analytics. + ANALYTICS_SERVICE_LEVEL_360 = 2; +} + +// Request message for GetOrganization RPC. +message GetOrganizationRequest { + // Required. The name of the Organization to retrieve. + // Format: organizations/{org_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "marketingplatformadmin.googleapis.com/Organization" + } + ]; +} + +// Request message for ListAnalyticsAccountLinks RPC. +message ListAnalyticsAccountLinksRequest { + // Required. The parent organization, which owns this collection of Analytics + // account links. Format: organizations/{org_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "marketingplatformadmin.googleapis.com/AnalyticsAccountLink" + } + ]; + + // Optional. The maximum number of Analytics account links to return in one + // call. The service may return fewer than this value. + // + // If unspecified, at most 50 Analytics account links will be returned. The + // maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous ListAnalyticsAccountLinks + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListAnalyticsAccountLinks` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListAnalyticsAccountLinks RPC. +message ListAnalyticsAccountLinksResponse { + // Analytics account links in this organization. + repeated AnalyticsAccountLink analytics_account_links = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for CreateAnalyticsAccountLink RPC. +message CreateAnalyticsAccountLinkRequest { + // Required. The parent resource where this Analytics account link will be + // created. Format: organizations/{org_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "marketingplatformadmin.googleapis.com/AnalyticsAccountLink" + } + ]; + + // Required. The Analytics account link to create. + AnalyticsAccountLink analytics_account_link = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteAnalyticsAccountLink RPC. +message DeleteAnalyticsAccountLinkRequest { + // Required. The name of the Analytics account link to delete. + // Format: + // organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "marketingplatformadmin.googleapis.com/AnalyticsAccountLink" + } + ]; +} + +// Request message for SetPropertyServiceLevel RPC. +message SetPropertyServiceLevelRequest { + // Required. The parent AnalyticsAccountLink scope where this property is in. + // Format: + // organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id} + string analytics_account_link = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Analytics property to change the ServiceLevel setting. This + // field is the name of the Google Analytics Admin API property resource. + // + // Format: analyticsadmin.googleapis.com/properties/{property_id} + string analytics_property = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; + + // Required. The service level to set for this property. + AnalyticsServiceLevel service_level = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for SetPropertyServiceLevel RPC. +message SetPropertyServiceLevelResponse {} diff --git a/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatform_admin_v1alpha_grpc_service_config.json b/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatform_admin_v1alpha_grpc_service_config.json new file mode 100644 index 000000000..d7fc6fccb --- /dev/null +++ b/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatform_admin_v1alpha_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [ + { + "name": [{"service": "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService"}], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "UNKNOWN"] + } + } + ] +} \ No newline at end of file diff --git a/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatformadmin_v1alpha.yaml b/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatformadmin_v1alpha.yaml new file mode 100644 index 000000000..14ba6cb08 --- /dev/null +++ b/third_party/googleapis/google/marketingplatform/admin/v1alpha/marketingplatformadmin_v1alpha.yaml @@ -0,0 +1,76 @@ +type: google.api.Service +config_version: 3 +name: marketingplatformadmin.googleapis.com +title: Google Marketing Platform Admin API + +apis: +- name: google.marketingplatform.admin.v1alpha.MarketingplatformAdminService + +documentation: + summary: |- + The Google Marketing Platform Admin API allows for programmatic access to + the Google Marketing Platform configuration data. You can use the Google + Marketing Platform Admin API to manage links between your Google Marketing + Platform organization and Google Analytics accounts, and to set the + service level of your GA4 properties. + +authentication: + rules: + - selector: 'google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/marketingplatformadmin.analytics.update + - selector: google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.GetOrganization + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/marketingplatformadmin.analytics.read, + https://www.googleapis.com/auth/marketingplatformadmin.analytics.update + - selector: google.marketingplatform.admin.v1alpha.MarketingplatformAdminService.ListAnalyticsAccountLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/marketingplatformadmin.analytics.read, + https://www.googleapis.com/auth/marketingplatformadmin.analytics.update + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1603054 + documentation_uri: https://developers.google.com/analytics/devguides/config/gmp/v1 + api_short_name: marketingplatformadminapi + github_label: 'api: library' + doc_tag_prefix: library + organization: ADS + library_settings: + - version: google.marketingplatform.admin.v1alpha + launch_stage: ALPHA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/library/docs/reference/rpc diff --git a/third_party/googleapis/google/marketingplatform/admin/v1alpha/resources.proto b/third_party/googleapis/google/marketingplatform/admin/v1alpha/resources.proto new file mode 100644 index 000000000..27c82dac4 --- /dev/null +++ b/third_party/googleapis/google/marketingplatform/admin/v1alpha/resources.proto @@ -0,0 +1,103 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.marketingplatform.admin.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Marketingplatform.Admin.V1Alpha"; +option go_package = "google.golang.org/genproto/googleapis/marketingplatform/admin/v1alpha;admin"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.marketingplatform.admin.v1alpha"; +option php_namespace = "Google\\Marketingplatform\\Admin\\V1alpha"; +option ruby_package = "Google::Marketingplatform::AdminService::V1alpha"; +option (google.api.resource_definition) = { + type: "analyticsadmin.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// The verification state of the link between a product account and a GMP +// organization. +enum LinkVerificationState { + // The link state is unknown. + LINK_VERIFICATION_STATE_UNSPECIFIED = 0; + + // The link is established. + LINK_VERIFICATION_STATE_VERIFIED = 1; + + // The link is requested, but hasn't been approved by the product account + // admin. + LINK_VERIFICATION_STATE_NOT_VERIFIED = 2; +} + +// A resource message representing a Google Marketing Platform organization. +message Organization { + option (google.api.resource) = { + type: "marketingplatformadmin.googleapis.com/Organization" + pattern: "organizations/{organization}" + plural: "organizations" + singular: "organization" + }; + + // Identifier. The resource name of the GMP organization. + // Format: organizations/{org_id} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The human-readable name for the organization. + string display_name = 2; +} + +// A resource message representing the link between a Google Analytics account +// and a Google Marketing Platform organization. +message AnalyticsAccountLink { + option (google.api.resource) = { + type: "marketingplatformadmin.googleapis.com/AnalyticsAccountLink" + pattern: "organizations/{organization}/analyticsAccountLinks/{analytics_account_link}" + plural: "analyticsAccountLinks" + singular: "analyticsAccountLink" + }; + + // Identifier. Resource name of this AnalyticsAccountLink. Note the resource + // ID is the same as the ID of the Analtyics account. + // + // Format: + // organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id} + // Example: "organizations/xyz/analyticsAccountLinks/1234" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Immutable. The resource name of the AnalyticsAdmin API account. + // The account ID will be used as the ID of this AnalyticsAccountLink + // resource, which will become the final component of the resource name. + // + // Format: analyticsadmin.googleapis.com/accounts/{account_id} + string analytics_account = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; + + // Output only. The human-readable name for the Analytics account. + string display_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The verification state of the link between the Analytics + // account and the parent organization. + LinkVerificationState link_verification_state = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/alertchart.proto b/third_party/googleapis/google/monitoring/dashboard/v1/alertchart.proto index d6ec736b7..3067eb4fa 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/alertchart.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/alertchart.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/collapsible_group.proto b/third_party/googleapis/google/monitoring/dashboard/v1/collapsible_group.proto index 386a68e93..69d95dc3b 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/collapsible_group.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/collapsible_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/common.proto b/third_party/googleapis/google/monitoring/dashboard/v1/common.proto index 981eb0a04..5a601625a 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/common.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/dashboard.proto b/third_party/googleapis/google/monitoring/dashboard/v1/dashboard.proto index d2a2889c3..53e4a53bf 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/dashboard.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/dashboard.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/dashboard_filter.proto b/third_party/googleapis/google/monitoring/dashboard/v1/dashboard_filter.proto index 793228a85..83976ac78 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/dashboard_filter.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/dashboard_filter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/dashboards_service.proto b/third_party/googleapis/google/monitoring/dashboard/v1/dashboards_service.proto index 0e118f498..068a90189 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/dashboards_service.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/dashboards_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/drilldowns.proto b/third_party/googleapis/google/monitoring/dashboard/v1/drilldowns.proto index ef405de90..787ae69cd 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/drilldowns.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/drilldowns.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/error_reporting_panel.proto b/third_party/googleapis/google/monitoring/dashboard/v1/error_reporting_panel.proto index 5a4d79b39..c134a5c73 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/error_reporting_panel.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/error_reporting_panel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/incident_list.proto b/third_party/googleapis/google/monitoring/dashboard/v1/incident_list.proto index 1915e93a7..6ad7fcf26 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/incident_list.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/incident_list.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/layouts.proto b/third_party/googleapis/google/monitoring/dashboard/v1/layouts.proto index 3be46ae25..efa49355a 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/layouts.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/layouts.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/logs_panel.proto b/third_party/googleapis/google/monitoring/dashboard/v1/logs_panel.proto index 2044451f6..864f6528b 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/logs_panel.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/logs_panel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/metrics.proto b/third_party/googleapis/google/monitoring/dashboard/v1/metrics.proto index df2421ac5..ddcbd3b97 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/metrics.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/piechart.proto b/third_party/googleapis/google/monitoring/dashboard/v1/piechart.proto index c59c83af5..cb709fe47 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/piechart.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/piechart.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/scorecard.proto b/third_party/googleapis/google/monitoring/dashboard/v1/scorecard.proto index 23fcd6a50..06e4611aa 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/scorecard.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/scorecard.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/section_header.proto b/third_party/googleapis/google/monitoring/dashboard/v1/section_header.proto index 1bec020c8..f19a3488c 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/section_header.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/section_header.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/service.proto b/third_party/googleapis/google/monitoring/dashboard/v1/service.proto index c75f3d370..9445a2fc6 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/service.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/single_view_group.proto b/third_party/googleapis/google/monitoring/dashboard/v1/single_view_group.proto index e6393925e..48ce37032 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/single_view_group.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/single_view_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/table.proto b/third_party/googleapis/google/monitoring/dashboard/v1/table.proto index 810a5c837..54bf93c35 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/table.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/table.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/table_display_options.proto b/third_party/googleapis/google/monitoring/dashboard/v1/table_display_options.proto index 5cc9369a5..c0e367d12 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/table_display_options.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/table_display_options.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/text.proto b/third_party/googleapis/google/monitoring/dashboard/v1/text.proto index f38828da0..0d6a7768d 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/text.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/text.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/widget.proto b/third_party/googleapis/google/monitoring/dashboard/v1/widget.proto index 465f79fbe..746840114 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/widget.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/widget.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/dashboard/v1/xychart.proto b/third_party/googleapis/google/monitoring/dashboard/v1/xychart.proto index 281fb7cf0..0c6537109 100644 --- a/third_party/googleapis/google/monitoring/dashboard/v1/xychart.proto +++ b/third_party/googleapis/google/monitoring/dashboard/v1/xychart.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scope.proto b/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scope.proto index a8d6b493f..6bdc0a252 100644 --- a/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scope.proto +++ b/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scope.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scopes.proto b/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scopes.proto index 8da87575d..cdd251fea 100644 --- a/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scopes.proto +++ b/third_party/googleapis/google/monitoring/metricsscope/v1/metrics_scopes.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/BUILD.bazel b/third_party/googleapis/google/monitoring/v3/BUILD.bazel index 9ab91ffc4..e79733176 100644 --- a/third_party/googleapis/google/monitoring/v3/BUILD.bazel +++ b/third_party/googleapis/google/monitoring/v3/BUILD.bazel @@ -215,16 +215,15 @@ py_gapic_library( transport = "grpc", ) -# Uncomment once https://github.com/googleapis/gapic-generator-python/issues/1359 is fixed -#py_test( -# name = "monitoring_py_gapic_test", -# srcs = [ -# "monitoring_py_gapic_pytest.py", -# "monitoring_py_gapic_test.py", -# ], -# legacy_create_init = False, -# deps = [":monitoring_py_gapic"], -#) +py_test( + name = "monitoring_py_gapic_test", + srcs = [ + "monitoring_py_gapic_pytest.py", + "monitoring_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":monitoring_py_gapic"], +) # Open Source Packages py_gapic_assembly_pkg( diff --git a/third_party/googleapis/google/monitoring/v3/alert.proto b/third_party/googleapis/google/monitoring/v3/alert.proto index 8dafe88a2..ba38d5bd3 100644 --- a/third_party/googleapis/google/monitoring/v3/alert.proto +++ b/third_party/googleapis/google/monitoring/v3/alert.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -46,9 +46,23 @@ message AlertPolicy { pattern: "*" }; - // A content string and a MIME type that describes the content string's - // format. + // Documentation that is included in the notifications and incidents + // pertaining to this policy. message Documentation { + // Links to content such as playbooks, repositories, and other resources. + message Link { + // A short display name for the link. The display name must not be empty + // or exceed 63 characters. Example: "playbook". + string display_name = 1; + + // The url of a webpage. + // A url can be templatized by using variables + // in the path or the query parameters. The total length of a URL should + // not exceed 2083 characters before and after variable expansion. + // Example: "https://my_domain.com/playbook?name=${resource.name}" + string url = 2; + } + // The body of the documentation, interpreted according to `mime_type`. // The content may not exceed 8,192 Unicode characters and may not exceed // more than 10,240 bytes when encoded in UTF-8 format, whichever is @@ -75,6 +89,10 @@ message AlertPolicy { // If this field is missing or empty, a default subject line will be // generated. string subject = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Links to content such as playbooks, repositories, and other + // resources. This field can contain up to 3 entries. + repeated Link links = 4 [(google.api.field_behavior) = OPTIONAL]; } // A condition is a true/false test that determines when an alerting policy @@ -228,7 +246,8 @@ message AlertPolicy { Trigger trigger = 7; // A condition control that determines how metric-threshold conditions - // are evaluated when data stops arriving. + // are evaluated when data stops arriving. To use this control, the value + // of the `duration` field must be greater than or equal to 60 seconds. EvaluationMissingData evaluation_missing_data = 11; } diff --git a/third_party/googleapis/google/monitoring/v3/alert_service.proto b/third_party/googleapis/google/monitoring/v3/alert_service.proto index d93ad0bad..5351e1282 100644 --- a/third_party/googleapis/google/monitoring/v3/alert_service.proto +++ b/third_party/googleapis/google/monitoring/v3/alert_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/common.proto b/third_party/googleapis/google/monitoring/v3/common.proto index 62a189b81..65f77ab38 100644 --- a/third_party/googleapis/google/monitoring/v3/common.proto +++ b/third_party/googleapis/google/monitoring/v3/common.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monito option java_multiple_files = true; option java_outer_classname = "CommonProto"; option java_package = "com.google.monitoring.v3"; +option objc_class_prefix = "GMON"; option php_namespace = "Google\\Cloud\\Monitoring\\V3"; option ruby_package = "Google::Cloud::Monitoring::V3"; @@ -51,34 +52,44 @@ message TypedValue { } } -// A closed time interval. It extends from the start time to the end time, and includes both: `[startTime, endTime]`. Valid time intervals depend on the [`MetricKind`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) of the metric value. The end time must not be earlier than the start time. When writing data points, the start time must not be more than 25 hours in the past and the end time must not be more than five minutes in the future. +// Describes a time interval: // -// * For `GAUGE` metrics, the `startTime` value is technically optional; if -// no value is specified, the start time defaults to the value of the -// end time, and the interval represents a single point in time. If both -// start and end times are specified, they must be identical. Such an -// interval is valid only for `GAUGE` metrics, which are point-in-time -// measurements. The end time of a new interval must be at least a -// millisecond after the end time of the previous interval. -// -// * For `DELTA` metrics, the start time and end time must specify a -// non-zero interval, with subsequent points specifying contiguous and -// non-overlapping intervals. For `DELTA` metrics, the start time of -// the next interval must be at least a millisecond after the end time -// of the previous interval. -// -// * For `CUMULATIVE` metrics, the start time and end time must specify a -// non-zero interval, with subsequent points specifying the same -// start time and increasing end times, until an event resets the -// cumulative value to zero and sets a new start time for the following -// points. The new start time must be at least a millisecond after the -// end time of the previous interval. -// -// * The start time of a new interval must be at least a millisecond after the -// end time of the previous interval because intervals are closed. If the -// start time of a new interval is the same as the end time of the previous -// interval, then data written at the new start time could overwrite data -// written at the previous end time. +// * Reads: A half-open time interval. It includes the end time but +// excludes the start time: `(startTime, endTime]`. The start time +// must be specified, must be earlier than the end time, and should be +// no older than the data retention period for the metric. +// * Writes: A closed time interval. It extends from the start time to the end +// time, +// and includes both: `[startTime, endTime]`. Valid time intervals +// depend on the +// [`MetricKind`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) +// of the metric value. The end time must not be earlier than the start +// time, and the end time must not be more than 25 hours in the past or more +// than five minutes in the future. +// * For `GAUGE` metrics, the `startTime` value is technically optional; if +// no value is specified, the start time defaults to the value of the +// end time, and the interval represents a single point in time. If both +// start and end times are specified, they must be identical. Such an +// interval is valid only for `GAUGE` metrics, which are point-in-time +// measurements. The end time of a new interval must be at least a +// millisecond after the end time of the previous interval. +// * For `DELTA` metrics, the start time and end time must specify a +// non-zero interval, with subsequent points specifying contiguous and +// non-overlapping intervals. For `DELTA` metrics, the start time of +// the next interval must be at least a millisecond after the end time +// of the previous interval. +// * For `CUMULATIVE` metrics, the start time and end time must specify a +// non-zero interval, with subsequent points specifying the same +// start time and increasing end times, until an event resets the +// cumulative value to zero and sets a new start time for the following +// points. The new start time must be at least a millisecond after the +// end time of the previous interval. +// * The start time of a new interval must be at least a millisecond after +// the +// end time of the previous interval because intervals are closed. If the +// start time of a new interval is the same as the end time of the +// previous interval, then data written at the new start time could +// overwrite data written at the previous end time. message TimeInterval { // Required. The end of the time interval. google.protobuf.Timestamp end_time = 2; @@ -461,7 +472,7 @@ enum ComparisonType { COMPARISON_NE = 6; } -// The tier of service for a Workspace. Please see the +// The tier of service for a Metrics Scope. Please see the // [service tiers // documentation](https://cloud.google.com/monitoring/workspaces/tiers) for more // details. @@ -472,17 +483,17 @@ enum ServiceTier { // been provided explicitly. SERVICE_TIER_UNSPECIFIED = 0; - // The Stackdriver Basic tier, a free tier of service that provides basic + // The Cloud Monitoring Basic tier, a free tier of service that provides basic // features, a moderate allotment of logs, and access to built-in metrics. // A number of features are not available in this tier. For more details, // see [the service tiers // documentation](https://cloud.google.com/monitoring/workspaces/tiers). SERVICE_TIER_BASIC = 1; - // The Stackdriver Premium tier, a higher, more expensive tier of service - // that provides access to all Stackdriver features, lets you use Stackdriver - // with AWS accounts, and has a larger allotments for logs and metrics. For - // more details, see [the service tiers + // The Cloud Monitoring Premium tier, a higher, more expensive tier of service + // that provides access to all Cloud Monitoring features, lets you use Cloud + // Monitoring with AWS accounts, and has a larger allotments for logs and + // metrics. For more details, see [the service tiers // documentation](https://cloud.google.com/monitoring/workspaces/tiers). SERVICE_TIER_PREMIUM = 2; } diff --git a/third_party/googleapis/google/monitoring/v3/dropped_labels.proto b/third_party/googleapis/google/monitoring/v3/dropped_labels.proto index 6c176698a..a7b120ca8 100644 --- a/third_party/googleapis/google/monitoring/v3/dropped_labels.proto +++ b/third_party/googleapis/google/monitoring/v3/dropped_labels.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/group.proto b/third_party/googleapis/google/monitoring/v3/group.proto index ee7a3004c..98c6f08c3 100644 --- a/third_party/googleapis/google/monitoring/v3/group.proto +++ b/third_party/googleapis/google/monitoring/v3/group.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/group_service.proto b/third_party/googleapis/google/monitoring/v3/group_service.proto index ebe1bd9d1..d06e6fb40 100644 --- a/third_party/googleapis/google/monitoring/v3/group_service.proto +++ b/third_party/googleapis/google/monitoring/v3/group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -96,7 +96,8 @@ service GroupService { } // Lists the monitored resources that are members of a group. - rpc ListGroupMembers(ListGroupMembersRequest) returns (ListGroupMembersResponse) { + rpc ListGroupMembers(ListGroupMembersRequest) + returns (ListGroupMembersResponse) { option (google.api.http) = { get: "/v3/{name=projects/*/groups/*}/members" }; @@ -106,8 +107,9 @@ service GroupService { // The `ListGroup` request. message ListGroupsRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) - // whose groups are to be listed. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) whose + // groups are to be listed. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string name = 7 [ @@ -128,8 +130,8 @@ message ListGroupsRequest { // Returns groups whose `parent_name` field contains the group // name. If no groups have this parent, the results are empty. string children_of_group = 2 [(google.api.resource_reference) = { - type: "monitoring.googleapis.com/Group" - }]; + type: "monitoring.googleapis.com/Group" + }]; // A group name. The format is: // @@ -140,8 +142,8 @@ message ListGroupsRequest { // ending with the most distant ancestor. If the specified group has no // immediate parent, the results are empty. string ancestors_of_group = 3 [(google.api.resource_reference) = { - type: "monitoring.googleapis.com/Group" - }]; + type: "monitoring.googleapis.com/Group" + }]; // A group name. The format is: // @@ -151,8 +153,8 @@ message ListGroupsRequest { // the results returned by the `children_of_group` filter, and includes // children-of-children, and so forth. string descendants_of_group = 4 [(google.api.resource_reference) = { - type: "monitoring.googleapis.com/Group" - }]; + type: "monitoring.googleapis.com/Group" + }]; } // A positive number that is the maximum number of results to return. @@ -190,8 +192,9 @@ message GetGroupRequest { // The `CreateGroup` request. message CreateGroupRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) in - // which to create the group. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) in which + // to create the group. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string name = 4 [ @@ -201,8 +204,8 @@ message CreateGroupRequest { } ]; - // Required. A group definition. It is an error to define the `name` field because - // the system assigns the name. + // Required. A group definition. It is an error to define the `name` field + // because the system assigns the name. Group group = 2 [(google.api.field_behavior) = REQUIRED]; // If true, validate this request but do not create the group. @@ -211,8 +214,9 @@ message CreateGroupRequest { // The `UpdateGroup` request. message UpdateGroupRequest { - // Required. The new definition of the group. All fields of the existing group, - // excepting `name`, are replaced with the corresponding fields of this group. + // Required. The new definition of the group. All fields of the existing + // group, excepting `name`, are replaced with the corresponding fields of this + // group. Group group = 2 [(google.api.field_behavior) = REQUIRED]; // If true, validate this request but do not update the existing group. diff --git a/third_party/googleapis/google/monitoring/v3/metric.proto b/third_party/googleapis/google/monitoring/v3/metric.proto index ba55255be..24b7349b8 100644 --- a/third_party/googleapis/google/monitoring/v3/metric.proto +++ b/third_party/googleapis/google/monitoring/v3/metric.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/metric_service.proto b/third_party/googleapis/google/monitoring/v3/metric_service.proto index edea2b532..de44912f7 100644 --- a/third_party/googleapis/google/monitoring/v3/metric_service.proto +++ b/third_party/googleapis/google/monitoring/v3/metric_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -72,32 +72,36 @@ service MetricService { "https://www.googleapis.com/auth/monitoring.read," "https://www.googleapis.com/auth/monitoring.write"; - // Lists monitored resource descriptors that match a filter. This method does not require a Workspace. - rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest) returns (ListMonitoredResourceDescriptorsResponse) { + // Lists monitored resource descriptors that match a filter. + rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest) + returns (ListMonitoredResourceDescriptorsResponse) { option (google.api.http) = { get: "/v3/{name=projects/*}/monitoredResourceDescriptors" }; option (google.api.method_signature) = "name"; } - // Gets a single monitored resource descriptor. This method does not require a Workspace. - rpc GetMonitoredResourceDescriptor(GetMonitoredResourceDescriptorRequest) returns (google.api.MonitoredResourceDescriptor) { + // Gets a single monitored resource descriptor. + rpc GetMonitoredResourceDescriptor(GetMonitoredResourceDescriptorRequest) + returns (google.api.MonitoredResourceDescriptor) { option (google.api.http) = { get: "/v3/{name=projects/*/monitoredResourceDescriptors/**}" }; option (google.api.method_signature) = "name"; } - // Lists metric descriptors that match a filter. This method does not require a Workspace. - rpc ListMetricDescriptors(ListMetricDescriptorsRequest) returns (ListMetricDescriptorsResponse) { + // Lists metric descriptors that match a filter. + rpc ListMetricDescriptors(ListMetricDescriptorsRequest) + returns (ListMetricDescriptorsResponse) { option (google.api.http) = { get: "/v3/{name=projects/*}/metricDescriptors" }; option (google.api.method_signature) = "name"; } - // Gets a single metric descriptor. This method does not require a Workspace. - rpc GetMetricDescriptor(GetMetricDescriptorRequest) returns (google.api.MetricDescriptor) { + // Gets a single metric descriptor. + rpc GetMetricDescriptor(GetMetricDescriptorRequest) + returns (google.api.MetricDescriptor) { option (google.api.http) = { get: "/v3/{name=projects/*/metricDescriptors/**}" }; @@ -105,11 +109,13 @@ service MetricService { } // Creates a new metric descriptor. - // The creation is executed asynchronously and callers may check the returned - // operation to track its progress. + // The creation is executed asynchronously. // User-created metric descriptors define // [custom metrics](https://cloud.google.com/monitoring/custom-metrics). - rpc CreateMetricDescriptor(CreateMetricDescriptorRequest) returns (google.api.MetricDescriptor) { + // The metric descriptor is updated if it already exists, + // except that metric labels are never removed. + rpc CreateMetricDescriptor(CreateMetricDescriptorRequest) + returns (google.api.MetricDescriptor) { option (google.api.http) = { post: "/v3/{name=projects/*}/metricDescriptors" body: "metric_descriptor" @@ -120,23 +126,20 @@ service MetricService { // Deletes a metric descriptor. Only user-created // [custom metrics](https://cloud.google.com/monitoring/custom-metrics) can be // deleted. - rpc DeleteMetricDescriptor(DeleteMetricDescriptorRequest) returns (google.protobuf.Empty) { + rpc DeleteMetricDescriptor(DeleteMetricDescriptorRequest) + returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v3/{name=projects/*/metricDescriptors/**}" }; option (google.api.method_signature) = "name"; } - // Lists time series that match a filter. This method does not require a Workspace. + // Lists time series that match a filter. rpc ListTimeSeries(ListTimeSeriesRequest) returns (ListTimeSeriesResponse) { option (google.api.http) = { get: "/v3/{name=projects/*}/timeSeries" - additional_bindings { - get: "/v3/{name=organizations/*}/timeSeries" - } - additional_bindings { - get: "/v3/{name=folders/*}/timeSeries" - } + additional_bindings { get: "/v3/{name=organizations/*}/timeSeries" } + additional_bindings { get: "/v3/{name=folders/*}/timeSeries" } }; option (google.api.method_signature) = "name,filter,interval,view"; } @@ -145,7 +148,11 @@ service MetricService { // The response is empty if all time series in the request were written. // If any time series could not be written, a corresponding failure message is // included in the error response. - rpc CreateTimeSeries(CreateTimeSeriesRequest) returns (google.protobuf.Empty) { + // This method does not support + // [resource locations constraint of an organization + // policy](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations#setting_the_organization_policy). + rpc CreateTimeSeries(CreateTimeSeriesRequest) + returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v3/{name=projects/*}/timeSeries" body: "*" @@ -162,7 +169,8 @@ service MetricService { // This method is only for use by Google Cloud services. Use // [projects.timeSeries.create][google.monitoring.v3.MetricService.CreateTimeSeries] // instead. - rpc CreateServiceTimeSeries(CreateTimeSeriesRequest) returns (google.protobuf.Empty) { + rpc CreateServiceTimeSeries(CreateTimeSeriesRequest) + returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v3/{name=projects/*}/timeSeries:createService" body: "*" @@ -173,8 +181,9 @@ service MetricService { // The `ListMonitoredResourceDescriptors` request. message ListMonitoredResourceDescriptorsRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) on - // which to execute the request. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) on which + // to execute the request. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string name = 5 [ @@ -231,8 +240,9 @@ message GetMonitoredResourceDescriptorRequest { // The `ListMetricDescriptors` request. message ListMetricDescriptorsRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) on - // which to execute the request. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) on which + // to execute the request. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string name = 5 [ @@ -252,7 +262,9 @@ message ListMetricDescriptorsRequest { // metric.type = starts_with("custom.googleapis.com/") string filter = 2; - // A positive number that is the maximum number of results to return. + // A positive number that is the maximum number of results to return. The + // default and maximum value is 10,000. If a page_size <= 0 or > 10,000 is + // submitted, will instead return a maximum of 10,000 results. int32 page_size = 3; // If this field is not empty then it must contain the `nextPageToken` value @@ -275,7 +287,8 @@ message ListMetricDescriptorsResponse { // The `GetMetricDescriptor` request. message GetMetricDescriptorRequest { - // Required. The metric descriptor on which to execute the request. The format is: + // Required. The metric descriptor on which to execute the request. The format + // is: // // projects/[PROJECT_ID_OR_NUMBER]/metricDescriptors/[METRIC_ID] // @@ -291,8 +304,9 @@ message GetMetricDescriptorRequest { // The `CreateMetricDescriptor` request. message CreateMetricDescriptorRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) on - // which to execute the request. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) on which + // to execute the request. The format is: // 4 // projects/[PROJECT_ID_OR_NUMBER] string name = 3 [ @@ -302,14 +316,16 @@ message CreateMetricDescriptorRequest { } ]; - // Required. The new [custom metric](https://cloud.google.com/monitoring/custom-metrics) - // descriptor. - google.api.MetricDescriptor metric_descriptor = 2 [(google.api.field_behavior) = REQUIRED]; + // Required. The new [custom + // metric](https://cloud.google.com/monitoring/custom-metrics) descriptor. + google.api.MetricDescriptor metric_descriptor = 2 + [(google.api.field_behavior) = REQUIRED]; } // The `DeleteMetricDescriptor` request. message DeleteMetricDescriptorRequest { - // Required. The metric descriptor on which to execute the request. The format is: + // Required. The metric descriptor on which to execute the request. The format + // is: // // projects/[PROJECT_ID_OR_NUMBER]/metricDescriptors/[METRIC_ID] // @@ -325,7 +341,7 @@ message DeleteMetricDescriptorRequest { // The `ListTimeSeries` request. message ListTimeSeriesRequest { - // Controls which fields are returned by `ListTimeSeries`. + // Controls which fields are returned by `ListTimeSeries*`. enum TimeSeriesView { // Returns the identity of the metric(s), the time series, // and the time series data. @@ -336,7 +352,8 @@ message ListTimeSeriesRequest { HEADERS = 1; } - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name), + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name), // organization or folder on which to execute the request. The format is: // // projects/[PROJECT_ID_OR_NUMBER] @@ -349,18 +366,19 @@ message ListTimeSeriesRequest { } ]; - // Required. A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) - // that specifies which time series should be returned. The filter must - // specify a single metric type, and can additionally specify metric labels - // and other information. For example: + // Required. A [monitoring + // filter](https://cloud.google.com/monitoring/api/v3/filters) that specifies + // which time series should be returned. The filter must specify a single + // metric type, and can additionally specify metric labels and other + // information. For example: // // metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND // metric.labels.instance_name = "my-instance-name" string filter = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The time interval for which results should be returned. Only time series - // that contain data points in the specified interval are included - // in the response. + // Required. The time interval for which results should be returned. Only time + // series that contain data points in the specified interval are included in + // the response. TimeInterval interval = 4 [(google.api.field_behavior) = REQUIRED]; // Specifies the alignment of data points in individual time series as @@ -419,8 +437,9 @@ message ListTimeSeriesResponse { // The `CreateTimeSeries` request. message CreateTimeSeriesRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) on - // which to execute the request. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) on which + // to execute the request. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string name = 3 [ @@ -472,8 +491,9 @@ message CreateTimeSeriesSummary { // The `QueryTimeSeries` request. message QueryTimeSeriesRequest { - // Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) on - // which to execute the request. The format is: + // Required. The + // [project](https://cloud.google.com/monitoring/api/v3#project_name) on which + // to execute the request. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string name = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/third_party/googleapis/google/monitoring/v3/monitoring.yaml b/third_party/googleapis/google/monitoring/v3/monitoring.yaml index fe3ee5592..9e94026cd 100644 --- a/third_party/googleapis/google/monitoring/v3/monitoring.yaml +++ b/third_party/googleapis/google/monitoring/v3/monitoring.yaml @@ -4,6 +4,7 @@ name: monitoring.googleapis.com title: Cloud Monitoring API apis: +- name: google.longrunning.Operations - name: google.monitoring.v3.AlertPolicyService - name: google.monitoring.v3.GroupService - name: google.monitoring.v3.MetricService @@ -20,29 +21,6 @@ types: documentation: summary: Manages your Cloud Monitoring data and configurations. -backend: - rules: - - selector: 'google.monitoring.v3.AlertPolicyService.*' - deadline: 30.0 - - selector: 'google.monitoring.v3.GroupService.*' - deadline: 30.0 - - selector: google.monitoring.v3.GroupService.UpdateGroup - deadline: 180.0 - - selector: 'google.monitoring.v3.MetricService.*' - deadline: 30.0 - - selector: google.monitoring.v3.MetricService.CreateServiceTimeSeries - deadline: 12.0 - - selector: google.monitoring.v3.MetricService.CreateTimeSeries - deadline: 12.0 - - selector: google.monitoring.v3.MetricService.ListTimeSeries - deadline: 90.0 - - selector: 'google.monitoring.v3.NotificationChannelService.*' - deadline: 30.0 - - selector: google.monitoring.v3.QueryService.QueryTimeSeries - deadline: 90.0 - - selector: 'google.monitoring.v3.SnoozeService.*' - deadline: 30.0 - authentication: rules: - selector: google.longrunning.Operations.GetOperation diff --git a/third_party/googleapis/google/monitoring/v3/mutation_record.proto b/third_party/googleapis/google/monitoring/v3/mutation_record.proto index bfad65ff4..5d7d9bed4 100644 --- a/third_party/googleapis/google/monitoring/v3/mutation_record.proto +++ b/third_party/googleapis/google/monitoring/v3/mutation_record.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/notification.proto b/third_party/googleapis/google/monitoring/v3/notification.proto index 67df55bad..7321afee6 100644 --- a/third_party/googleapis/google/monitoring/v3/notification.proto +++ b/third_party/googleapis/google/monitoring/v3/notification.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/notification_service.proto b/third_party/googleapis/google/monitoring/v3/notification_service.proto index 8b14dcf41..5da8dc639 100644 --- a/third_party/googleapis/google/monitoring/v3/notification_service.proto +++ b/third_party/googleapis/google/monitoring/v3/notification_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/query_service.proto b/third_party/googleapis/google/monitoring/v3/query_service.proto index 5d45124d6..5ff071816 100644 --- a/third_party/googleapis/google/monitoring/v3/query_service.proto +++ b/third_party/googleapis/google/monitoring/v3/query_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,8 +17,8 @@ syntax = "proto3"; package google.monitoring.v3; import "google/api/annotations.proto"; -import "google/monitoring/v3/metric_service.proto"; import "google/api/client.proto"; +import "google/monitoring/v3/metric_service.proto"; option csharp_namespace = "Google.Cloud.Monitoring.V3"; option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb"; @@ -28,7 +28,7 @@ option java_package = "com.google.monitoring.v3"; option php_namespace = "Google\\Cloud\\Monitoring\\V3"; option ruby_package = "Google::Cloud::Monitoring::V3"; -// The QueryService API is used to manage time series data in Stackdriver +// The QueryService API is used to manage time series data in Cloud // Monitoring. Time series data is a collection of data points that describes // the time-varying values of a metric. service QueryService { @@ -38,8 +38,9 @@ service QueryService { "https://www.googleapis.com/auth/monitoring," "https://www.googleapis.com/auth/monitoring.read"; - // Queries time series using Monitoring Query Language. This method does not require a Workspace. - rpc QueryTimeSeries(QueryTimeSeriesRequest) returns (QueryTimeSeriesResponse) { + // Queries time series using Monitoring Query Language. + rpc QueryTimeSeries(QueryTimeSeriesRequest) + returns (QueryTimeSeriesResponse) { option (google.api.http) = { post: "/v3/{name=projects/*}/timeSeries:query" body: "*" diff --git a/third_party/googleapis/google/monitoring/v3/service.proto b/third_party/googleapis/google/monitoring/v3/service.proto index ff4dd0c4c..10a92fff0 100644 --- a/third_party/googleapis/google/monitoring/v3/service.proto +++ b/third_party/googleapis/google/monitoring/v3/service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.monitoring.v3; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/type/calendar_period.proto"; @@ -42,25 +43,24 @@ message Service { pattern: "*" }; - // Custom view of service telemetry. Currently a place-holder pending final - // design. - message Custom { - - } + // Use a custom service to designate a service that you want to monitor + // when none of the other service types (like App Engine, Cloud Run, or + // a GKE type) matches your intended service. + message Custom {} // App Engine service. Learn more at https://cloud.google.com/appengine. message AppEngine { // The ID of the App Engine module underlying this service. Corresponds to - // the `module_id` resource label in the `gae_app` monitored resource: - // https://cloud.google.com/monitoring/api/resources#tag_gae_app + // the `module_id` resource label in the [`gae_app` monitored + // resource](https://cloud.google.com/monitoring/api/resources#tag_gae_app). string module_id = 1; } // Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints. message CloudEndpoints { // The name of the Cloud Endpoints service underlying this service. - // Corresponds to the `service` resource label in the `api` monitored - // resource: https://cloud.google.com/monitoring/api/resources#tag_api + // Corresponds to the `service` resource label in the [`api` monitored + // resource](https://cloud.google.com/monitoring/api/resources#tag_api). string service = 1; } @@ -124,6 +124,105 @@ message Service { string canonical_service = 4; } + // Cloud Run service. Learn more at https://cloud.google.com/run. + message CloudRun { + // The name of the Cloud Run service. Corresponds to the `service_name` + // resource label in the [`cloud_run_revision` monitored + // resource](https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision). + string service_name = 1; + + // The location the service is run. Corresponds to the `location` + // resource label in the [`cloud_run_revision` monitored + // resource](https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision). + string location = 2; + } + + // GKE Namespace. The field names correspond to the resource metadata labels + // on monitored resources that fall under a namespace (for example, + // `k8s_container` or `k8s_pod`). + message GkeNamespace { + // Output only. The project this resource lives in. For legacy services + // migrated from the `Custom` type, this may be a distinct project from the + // one parenting the service itself. + string project_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The location of the parent cluster. This may be a zone or region. + string location = 2; + + // The name of the parent cluster. + string cluster_name = 3; + + // The name of this namespace. + string namespace_name = 4; + } + + // A GKE Workload (Deployment, StatefulSet, etc). The field names correspond + // to the metadata labels on monitored resources that fall under a workload + // (for example, `k8s_container` or `k8s_pod`). + message GkeWorkload { + // Output only. The project this resource lives in. For legacy services + // migrated from the `Custom` type, this may be a distinct project from the + // one parenting the service itself. + string project_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The location of the parent cluster. This may be a zone or region. + string location = 2; + + // The name of the parent cluster. + string cluster_name = 3; + + // The name of the parent namespace. + string namespace_name = 4; + + // The type of this workload (for example, "Deployment" or "DaemonSet") + string top_level_controller_type = 5; + + // The name of this workload. + string top_level_controller_name = 6; + } + + // GKE Service. The "service" here represents a + // [Kubernetes service + // object](https://kubernetes.io/docs/concepts/services-networking/service). + // The field names correspond to the resource labels on [`k8s_service` + // monitored + // resources](https://cloud.google.com/monitoring/api/resources#tag_k8s_service). + message GkeService { + // Output only. The project this resource lives in. For legacy services + // migrated from the `Custom` type, this may be a distinct project from the + // one parenting the service itself. + string project_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The location of the parent cluster. This may be a zone or region. + string location = 2; + + // The name of the parent cluster. + string cluster_name = 3; + + // The name of the parent namespace. + string namespace_name = 4; + + // The name of this service. + string service_name = 5; + } + + // A well-known service type, defined by its service type and service labels. + // Documentation and examples + // [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli). + message BasicService { + // The type of service that this basic service defines, e.g. + // APP_ENGINE service type. + // Documentation and valid values + // [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli). + string service_type = 1; + + // Labels that specify the resource that emits the monitoring data which + // is used for SLO reporting of this `Service`. + // Documentation and valid values for given service types + // [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli). + map service_labels = 2; + } + // Configuration for how to query telemetry on a Service. message Telemetry { // The full name of the resource that defines this service. Formatted as @@ -131,10 +230,10 @@ message Service { string resource_name = 1; } - // Resource name for this Service. The format is: + // Identifier. Resource name for this Service. The format is: // // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Name used for UI elements listing this Service. string display_name = 2; @@ -160,8 +259,26 @@ message Service { // Metrics for Istio are // [documented here](https://istio.io/latest/docs/reference/config/metrics/) IstioCanonicalService istio_canonical_service = 11; + + // Type used for Cloud Run services. + CloudRun cloud_run = 12; + + // Type used for GKE Namespaces. + GkeNamespace gke_namespace = 15; + + // Type used for GKE Workloads. + GkeWorkload gke_workload = 16; + + // Type used for GKE Services (the Kubernetes concept of a service). + GkeService gke_service = 17; } + // Message that contains the service type and service labels of this service + // if it is a basic service. + // Documentation and examples + // [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli). + BasicService basic_service = 19; + // Configuration for how to query telemetry on a Service. Telemetry telemetry = 13; @@ -209,10 +326,10 @@ message ServiceLevelObjective { EXPLICIT = 1; } - // Resource name for this `ServiceLevelObjective`. The format is: + // Identifier. Resource name for this `ServiceLevelObjective`. The format is: // // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Name used for UI elements listing this SLO. string display_name = 11; @@ -284,9 +401,7 @@ message ServiceLevelIndicator { // this service. message BasicSli { // Future parameters for the availability SLI. - message AvailabilityCriteria { - - } + message AvailabilityCriteria {} // Parameters for a latency threshold SLI. message LatencyCriteria { diff --git a/third_party/googleapis/google/monitoring/v3/service_service.proto b/third_party/googleapis/google/monitoring/v3/service_service.proto index bc55a48ff..3c71ef1be 100644 --- a/third_party/googleapis/google/monitoring/v3/service_service.proto +++ b/third_party/googleapis/google/monitoring/v3/service_service.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,9 +33,9 @@ option php_namespace = "Google\\Cloud\\Monitoring\\V3"; option ruby_package = "Google::Cloud::Monitoring::V3"; // The Cloud Monitoring Service-Oriented Monitoring API has endpoints for -// managing and querying aspects of a workspace's services. These include the -// `Service`'s monitored resources, its Service-Level Objectives, and a taxonomy -// of categorized Health Metrics. +// managing and querying aspects of a Metrics Scope's services. These include +// the `Service`'s monitored resources, its Service-Level Objectives, and a +// taxonomy of categorized Health Metrics. service ServiceMonitoringService { option (google.api.default_host) = "monitoring.googleapis.com"; option (google.api.oauth_scopes) = @@ -60,7 +60,7 @@ service ServiceMonitoringService { option (google.api.method_signature) = "name"; } - // List `Service`s for this workspace. + // List `Service`s for this Metrics Scope. rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { option (google.api.http) = { get: "/v3/{parent=*/*}/services" @@ -86,7 +86,8 @@ service ServiceMonitoringService { } // Create a `ServiceLevelObjective` for the given `Service`. - rpc CreateServiceLevelObjective(CreateServiceLevelObjectiveRequest) returns (ServiceLevelObjective) { + rpc CreateServiceLevelObjective(CreateServiceLevelObjectiveRequest) + returns (ServiceLevelObjective) { option (google.api.http) = { post: "/v3/{parent=*/*/services/*}/serviceLevelObjectives" body: "service_level_objective" @@ -95,7 +96,8 @@ service ServiceMonitoringService { } // Get a `ServiceLevelObjective` by name. - rpc GetServiceLevelObjective(GetServiceLevelObjectiveRequest) returns (ServiceLevelObjective) { + rpc GetServiceLevelObjective(GetServiceLevelObjectiveRequest) + returns (ServiceLevelObjective) { option (google.api.http) = { get: "/v3/{name=*/*/services/*/serviceLevelObjectives/*}" }; @@ -103,7 +105,8 @@ service ServiceMonitoringService { } // List the `ServiceLevelObjective`s for the given `Service`. - rpc ListServiceLevelObjectives(ListServiceLevelObjectivesRequest) returns (ListServiceLevelObjectivesResponse) { + rpc ListServiceLevelObjectives(ListServiceLevelObjectivesRequest) + returns (ListServiceLevelObjectivesResponse) { option (google.api.http) = { get: "/v3/{parent=*/*/services/*}/serviceLevelObjectives" }; @@ -111,7 +114,8 @@ service ServiceMonitoringService { } // Update the given `ServiceLevelObjective`. - rpc UpdateServiceLevelObjective(UpdateServiceLevelObjectiveRequest) returns (ServiceLevelObjective) { + rpc UpdateServiceLevelObjective(UpdateServiceLevelObjectiveRequest) + returns (ServiceLevelObjective) { option (google.api.http) = { patch: "/v3/{service_level_objective.name=*/*/services/*/serviceLevelObjectives/*}" body: "service_level_objective" @@ -120,7 +124,8 @@ service ServiceMonitoringService { } // Delete the given `ServiceLevelObjective`. - rpc DeleteServiceLevelObjective(DeleteServiceLevelObjectiveRequest) returns (google.protobuf.Empty) { + rpc DeleteServiceLevelObjective(DeleteServiceLevelObjectiveRequest) + returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v3/{name=*/*/services/*/serviceLevelObjectives/*}" }; @@ -130,8 +135,9 @@ service ServiceMonitoringService { // The `CreateService` request. message CreateServiceRequest { - // Required. Resource [name](https://cloud.google.com/monitoring/api/v3#project_name) of - // the parent workspace. The format is: + // Required. Resource + // [name](https://cloud.google.com/monitoring/api/v3#project_name) of the + // parent Metrics Scope. The format is: // // projects/[PROJECT_ID_OR_NUMBER] string parent = 1 [ @@ -164,9 +170,9 @@ message GetServiceRequest { // The `ListServices` request. message ListServicesRequest { - // Required. Resource name of the parent containing the listed services, either a - // [project](https://cloud.google.com/monitoring/api/v3#project_name) or a - // Monitoring Workspace. The formats are: + // Required. Resource name of the parent containing the listed services, + // either a [project](https://cloud.google.com/monitoring/api/v3#project_name) + // or a Monitoring Metrics Scope. The formats are: // // projects/[PROJECT_ID_OR_NUMBER] // workspaces/[HOST_PROJECT_ID_OR_NUMBER] @@ -177,25 +183,24 @@ message ListServicesRequest { } ]; - // A filter specifying what `Service`s to return. The filter currently - // supports the following fields: + // A filter specifying what `Service`s to return. The filter supports + // filtering on a particular service-identifier type or one of its attributes. // - // - `identifier_case` - // - `app_engine.module_id` - // - `cloud_endpoints.service` (reserved for future use) - // - `mesh_istio.mesh_uid` - // - `mesh_istio.service_namespace` - // - `mesh_istio.service_name` - // - `cluster_istio.location` (deprecated) - // - `cluster_istio.cluster_name` (deprecated) - // - `cluster_istio.service_namespace` (deprecated) - // - `cluster_istio.service_name` (deprecated) + // To filter on a particular service-identifier type, the `identifier_case` + // refers to which option in the `identifier` field is populated. For example, + // the filter `identifier_case = "CUSTOM"` would match all services with a + // value for the `custom` field. Valid options include "CUSTOM", "APP_ENGINE", + // "MESH_ISTIO", and the other options listed at + // https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services#Service // - // `identifier_case` refers to which option in the identifier oneof is - // populated. For example, the filter `identifier_case = "CUSTOM"` would match - // all services with a value for the `custom` field. Valid options are - // "CUSTOM", "APP_ENGINE", "MESH_ISTIO", plus "CLUSTER_ISTIO" (deprecated) - // and "CLOUD_ENDPOINTS" (reserved for future use). + // To filter on an attribute of a service-identifier type, apply the filter + // name by using the snake case of the service-identifier type and the + // attribute of that service-identifier type, and join the two with a period. + // For example, to filter by the `meshUid` field of the `MeshIstio` + // service-identifier type, you must filter on `mesh_istio.mesh_uid = + // "123"` to match all services with mesh UID "123". Service-identifier types + // and their attributes are described at + // https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services#Service string filter = 2; // A non-negative number that is the maximum number of results to return. @@ -256,18 +261,20 @@ message CreateServiceLevelObjectiveRequest { // Optional. The ServiceLevelObjective id to use for this // ServiceLevelObjective. If omitted, an id will be generated instead. Must - // match the pattern `[a-z0-9\-]+` + // match the pattern `^[a-zA-Z0-9-_:.]+$` string service_level_objective_id = 3; // Required. The `ServiceLevelObjective` to create. // The provided `name` will be respected if no `ServiceLevelObjective` exists // with this name. - ServiceLevelObjective service_level_objective = 2 [(google.api.field_behavior) = REQUIRED]; + ServiceLevelObjective service_level_objective = 2 + [(google.api.field_behavior) = REQUIRED]; } // The `GetServiceLevelObjective` request. message GetServiceLevelObjectiveRequest { - // Required. Resource name of the `ServiceLevelObjective` to get. The format is: + // Required. Resource name of the `ServiceLevelObjective` to get. The format + // is: // // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] string name = 1 [ @@ -287,7 +294,7 @@ message GetServiceLevelObjectiveRequest { // The `ListServiceLevelObjectives` request. message ListServiceLevelObjectivesRequest { // Required. Resource name of the parent containing the listed SLOs, either a - // project or a Monitoring Workspace. The formats are: + // project or a Monitoring Metrics Scope. The formats are: // // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] // workspaces/[HOST_PROJECT_ID_OR_NUMBER]/services/- @@ -332,7 +339,8 @@ message ListServiceLevelObjectivesResponse { message UpdateServiceLevelObjectiveRequest { // Required. The `ServiceLevelObjective` to draw updates from. // The given `name` specifies the resource to update. - ServiceLevelObjective service_level_objective = 1 [(google.api.field_behavior) = REQUIRED]; + ServiceLevelObjective service_level_objective = 1 + [(google.api.field_behavior) = REQUIRED]; // A set of field paths defining which fields to use for the update. google.protobuf.FieldMask update_mask = 2; @@ -340,7 +348,8 @@ message UpdateServiceLevelObjectiveRequest { // The `DeleteServiceLevelObjective` request. message DeleteServiceLevelObjectiveRequest { - // Required. Resource name of the `ServiceLevelObjective` to delete. The format is: + // Required. Resource name of the `ServiceLevelObjective` to delete. The + // format is: // // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] string name = 1 [ diff --git a/third_party/googleapis/google/monitoring/v3/snooze.proto b/third_party/googleapis/google/monitoring/v3/snooze.proto index f20e1a0bd..ece181720 100644 --- a/third_party/googleapis/google/monitoring/v3/snooze.proto +++ b/third_party/googleapis/google/monitoring/v3/snooze.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/snooze_service.proto b/third_party/googleapis/google/monitoring/v3/snooze_service.proto index 286551a5a..344ffafaf 100644 --- a/third_party/googleapis/google/monitoring/v3/snooze_service.proto +++ b/third_party/googleapis/google/monitoring/v3/snooze_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/span_context.proto b/third_party/googleapis/google/monitoring/v3/span_context.proto index 2488e5dad..8696e4039 100644 --- a/third_party/googleapis/google/monitoring/v3/span_context.proto +++ b/third_party/googleapis/google/monitoring/v3/span_context.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/monitoring/v3/uptime.proto b/third_party/googleapis/google/monitoring/v3/uptime.proto index 81efb601c..b9ce3e0c8 100644 --- a/third_party/googleapis/google/monitoring/v3/uptime.proto +++ b/third_party/googleapis/google/monitoring/v3/uptime.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,6 +28,10 @@ option java_outer_classname = "UptimeProto"; option java_package = "com.google.monitoring.v3"; option php_namespace = "Google\\Cloud\\Monitoring\\V3"; option ruby_package = "Google::Cloud::Monitoring::V3"; +option (google.api.resource_definition) = { + type: "cloudfunctions.googleapis.com/Function" + pattern: "projects/{project}/locations/{location}/functions/{function}" +}; // An internal checker allows Uptime checks to run on private/internal GCP // resources. @@ -85,6 +89,35 @@ message InternalChecker { State state = 7; } +// Describes a Synthetic Monitor to be invoked by Uptime. +message SyntheticMonitorTarget { + // A Synthetic Monitor deployed to a Cloud Functions V2 instance. + message CloudFunctionV2Target { + // Required. Fully qualified GCFv2 resource name + // i.e. `projects/{project}/locations/{location}/functions/{function}` + // Required. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudfunctions.googleapis.com/Function" + } + ]; + + // Output only. The `cloud_run_revision` Monitored Resource associated with + // the GCFv2. The Synthetic Monitor execution results (metrics, logs, and + // spans) are reported against this Monitored Resource. This field is output + // only. + google.api.MonitoredResource cloud_run_revision = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Specifies a Synthetic Monitor's execution stack. + oneof target { + // Target a Synthetic Monitor GCFv2 instance. + CloudFunctionV2Target cloud_function_v2 = 1; + } +} + // This message configures which resources and services to monitor for // availability. message UptimeCheckConfig { @@ -194,6 +227,25 @@ message UptimeCheckConfig { } } + // Contains information needed for generating an + // [OpenID Connect + // token](https://developers.google.com/identity/protocols/OpenIDConnect). + // The OIDC token will be generated for the Monitoring service agent service + // account. + message ServiceAgentAuthentication { + // Type of authentication. + enum ServiceAgentAuthenticationType { + // Default value, will result in OIDC Authentication. + SERVICE_AGENT_AUTHENTICATION_TYPE_UNSPECIFIED = 0; + + // OIDC Authentication + OIDC_TOKEN = 1; + } + + // Type of authentication. + ServiceAgentAuthenticationType type = 1; + } + // The HTTP request method to use for the check. If set to // `METHOD_UNSPECIFIED` then `request_method` defaults to `GET`. RequestMethod request_method = 8; @@ -216,6 +268,7 @@ message UptimeCheckConfig { // The authentication information. Optional when creating an HTTP check; // defaults to empty. + // Do not set both `auth_method` and `auth_info`. BasicAuthentication auth_info = 4; // Boolean specifying whether to encrypt the header information. @@ -278,6 +331,16 @@ message UptimeCheckConfig { // Contains information needed to add pings to an HTTP check. PingConfig ping_config = 12; + + // This field is optional and should be set only by users interested in + // an authenticated uptime check. + // Do not set both `auth_method` and `auth_info`. + oneof auth_method { + // If specified, Uptime will generate and attach an OIDC JWT token for the + // Monitoring service agent service account as an `Authorization` header + // in the HTTP request when probing. + ServiceAgentAuthentication service_agent_authentication = 14; + } } // Information required for a TCP Uptime check request. @@ -399,7 +462,8 @@ message UptimeCheckConfig { VPC_CHECKERS = 3; } - // A unique resource name for this Uptime check configuration. The format is: + // Identifier. A unique resource name for this Uptime check configuration. The + // format is: // // projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] // @@ -409,7 +473,7 @@ message UptimeCheckConfig { // This field should be omitted when creating the Uptime check configuration; // on create, the resource name is assigned by the server and included in the // response. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // A human-friendly name for the Uptime check configuration. The display name // should be unique within a Cloud Monitoring Workspace in order to make it @@ -434,6 +498,9 @@ message UptimeCheckConfig { // The group resource associated with the configuration. ResourceGroup resource_group = 4; + + // Specifies a Synthetic Monitor to invoke. + SyntheticMonitorTarget synthetic_monitor = 21; } // The type of Uptime check request. diff --git a/third_party/googleapis/google/monitoring/v3/uptime_service.proto b/third_party/googleapis/google/monitoring/v3/uptime_service.proto index 391441b01..fe24f4a05 100644 --- a/third_party/googleapis/google/monitoring/v3/uptime_service.proto +++ b/third_party/googleapis/google/monitoring/v3/uptime_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/networking/trafficdirector/type/traffic_director_log_entry.proto b/third_party/googleapis/google/networking/trafficdirector/type/traffic_director_log_entry.proto index 8f6b4eefb..b0134c2ca 100644 --- a/third_party/googleapis/google/networking/trafficdirector/type/traffic_director_log_entry.proto +++ b/third_party/googleapis/google/networking/trafficdirector/type/traffic_director_log_entry.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/partner/aistreams/v1alpha1/aistreams.proto b/third_party/googleapis/google/partner/aistreams/v1alpha1/aistreams.proto index b4fc67fa2..3805ffbba 100644 --- a/third_party/googleapis/google/partner/aistreams/v1alpha1/aistreams.proto +++ b/third_party/googleapis/google/partner/aistreams/v1alpha1/aistreams.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/privacy/dlp/v2/dlp.proto b/third_party/googleapis/google/privacy/dlp/v2/dlp.proto index 3f1a1f667..b8710b11c 100644 --- a/third_party/googleapis/google/privacy/dlp/v2/dlp.proto +++ b/third_party/googleapis/google/privacy/dlp/v2/dlp.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -55,7 +55,7 @@ option (google.api.resource_definition) = { // scheduling of data scans on Google Cloud Platform based data sets. // // To learn more about concepts and find how-to guides see -// https://cloud.google.com/dlp/docs/. +// https://cloud.google.com/sensitive-data-protection/docs/. service DlpService { option (google.api.default_host) = "dlp.googleapis.com"; option (google.api.oauth_scopes) = @@ -68,8 +68,10 @@ service DlpService { // system will automatically choose what detectors to run. By default this may // be all types, but may change over time as detectors are updated. // - // For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images - // and https://cloud.google.com/dlp/docs/inspecting-text, + // For how to guides, see + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-images + // and + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-text, rpc InspectContent(InspectContentRequest) returns (InspectContentResponse) { option (google.api.http) = { post: "/v2/{parent=projects/*}/content:inspect" @@ -83,8 +85,9 @@ service DlpService { // Redacts potentially sensitive info from an image. // This method has limits on input size, processing time, and output size. - // See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images + // to learn more. // // When no InfoTypes or CustomInfoTypes are specified in this request, the // system will automatically choose what detectors to run. By default this may @@ -102,8 +105,9 @@ service DlpService { // De-identifies potentially sensitive info from a ContentItem. // This method has limits on input size and output size. - // See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data + // to learn more. // // When no InfoTypes or CustomInfoTypes are specified in this request, the // system will automatically choose what detectors to run. By default this may @@ -122,7 +126,7 @@ service DlpService { // Re-identifies content that has been de-identified. // See - // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example + // https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example // to learn more. rpc ReidentifyContent(ReidentifyContentRequest) returns (ReidentifyContentResponse) { @@ -137,8 +141,9 @@ service DlpService { } // Returns a list of the sensitive information types that DLP API - // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to - // learn more. + // supports. See + // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + // to learn more. rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) { option (google.api.http) = { get: "/v2/infoTypes" @@ -149,7 +154,9 @@ service DlpService { // Creates an InspectTemplate for reusing frequently used configuration // for inspecting content, images, and storage. - // See https://cloud.google.com/dlp/docs/creating-templates to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates + // to learn more. rpc CreateInspectTemplate(CreateInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { @@ -172,7 +179,9 @@ service DlpService { } // Updates the InspectTemplate. - // See https://cloud.google.com/dlp/docs/creating-templates to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates + // to learn more. rpc UpdateInspectTemplate(UpdateInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { @@ -195,7 +204,9 @@ service DlpService { } // Gets an InspectTemplate. - // See https://cloud.google.com/dlp/docs/creating-templates to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates + // to learn more. rpc GetInspectTemplate(GetInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { get: "/v2/{name=organizations/*/inspectTemplates/*}" @@ -211,7 +222,9 @@ service DlpService { } // Lists InspectTemplates. - // See https://cloud.google.com/dlp/docs/creating-templates to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates + // to learn more. rpc ListInspectTemplates(ListInspectTemplatesRequest) returns (ListInspectTemplatesResponse) { option (google.api.http) = { @@ -228,7 +241,9 @@ service DlpService { } // Deletes an InspectTemplate. - // See https://cloud.google.com/dlp/docs/creating-templates to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates + // to learn more. rpc DeleteInspectTemplate(DeleteInspectTemplateRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -246,8 +261,9 @@ service DlpService { // Creates a DeidentifyTemplate for reusing frequently used configuration // for de-identifying content, images, and storage. - // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn - // more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + // to learn more. rpc CreateDeidentifyTemplate(CreateDeidentifyTemplateRequest) returns (DeidentifyTemplate) { option (google.api.http) = { @@ -270,8 +286,9 @@ service DlpService { } // Updates the DeidentifyTemplate. - // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn - // more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + // to learn more. rpc UpdateDeidentifyTemplate(UpdateDeidentifyTemplateRequest) returns (DeidentifyTemplate) { option (google.api.http) = { @@ -295,8 +312,9 @@ service DlpService { } // Gets a DeidentifyTemplate. - // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn - // more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + // to learn more. rpc GetDeidentifyTemplate(GetDeidentifyTemplateRequest) returns (DeidentifyTemplate) { option (google.api.http) = { @@ -313,8 +331,9 @@ service DlpService { } // Lists DeidentifyTemplates. - // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn - // more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + // to learn more. rpc ListDeidentifyTemplates(ListDeidentifyTemplatesRequest) returns (ListDeidentifyTemplatesResponse) { option (google.api.http) = { @@ -331,8 +350,9 @@ service DlpService { } // Deletes a DeidentifyTemplate. - // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn - // more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid + // to learn more. rpc DeleteDeidentifyTemplate(DeleteDeidentifyTemplateRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -352,7 +372,9 @@ service DlpService { // Creates a job trigger to run DLP actions such as scanning storage for // sensitive information on a set schedule. - // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + // to learn more. rpc CreateJobTrigger(CreateJobTriggerRequest) returns (JobTrigger) { option (google.api.http) = { post: "/v2/{parent=projects/*}/jobTriggers" @@ -370,7 +392,9 @@ service DlpService { } // Updates a job trigger. - // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + // to learn more. rpc UpdateJobTrigger(UpdateJobTriggerRequest) returns (JobTrigger) { option (google.api.http) = { patch: "/v2/{name=projects/*/jobTriggers/*}" @@ -400,7 +424,9 @@ service DlpService { } // Gets a job trigger. - // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + // to learn more. rpc GetJobTrigger(GetJobTriggerRequest) returns (JobTrigger) { option (google.api.http) = { get: "/v2/{name=projects/*/jobTriggers/*}" @@ -415,7 +441,9 @@ service DlpService { } // Lists job triggers. - // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + // to learn more. rpc ListJobTriggers(ListJobTriggersRequest) returns (ListJobTriggersResponse) { option (google.api.http) = { @@ -431,7 +459,9 @@ service DlpService { } // Deletes a job trigger. - // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers + // to learn more. rpc DeleteJobTrigger(DeleteJobTriggerRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -523,8 +553,11 @@ service DlpService { } // Creates a new job to inspect storage or calculate risk metrics. - // See https://cloud.google.com/dlp/docs/inspecting-storage and - // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + // and + // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + // to learn more. // // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the // system will automatically choose what detectors to run. By default this may @@ -543,8 +576,11 @@ service DlpService { } // Lists DlpJobs that match the specified filter in the request. - // See https://cloud.google.com/dlp/docs/inspecting-storage and - // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + // and + // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + // to learn more. rpc ListDlpJobs(ListDlpJobsRequest) returns (ListDlpJobsResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*}/dlpJobs" @@ -557,8 +593,11 @@ service DlpService { } // Gets the latest state of a long-running DlpJob. - // See https://cloud.google.com/dlp/docs/inspecting-storage and - // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + // and + // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + // to learn more. rpc GetDlpJob(GetDlpJobRequest) returns (DlpJob) { option (google.api.http) = { get: "/v2/{name=projects/*/dlpJobs/*}" @@ -570,8 +609,11 @@ service DlpService { // Deletes a long-running DlpJob. This method indicates that the client is // no longer interested in the DlpJob result. The job will be canceled if // possible. - // See https://cloud.google.com/dlp/docs/inspecting-storage and - // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + // and + // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + // to learn more. rpc DeleteDlpJob(DeleteDlpJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=projects/*/dlpJobs/*}" @@ -585,8 +627,11 @@ service DlpService { // Starts asynchronous cancellation on a long-running DlpJob. The server // makes a best effort to cancel the DlpJob, but success is not // guaranteed. - // See https://cloud.google.com/dlp/docs/inspecting-storage and - // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage + // and + // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis + // to learn more. rpc CancelDlpJob(CancelDlpJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v2/{name=projects/*/dlpJobs/*}:cancel" @@ -599,8 +644,9 @@ service DlpService { } // Creates a pre-built stored infoType to be used for inspection. - // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + // to learn more. rpc CreateStoredInfoType(CreateStoredInfoTypeRequest) returns (StoredInfoType) { option (google.api.http) = { @@ -624,8 +670,9 @@ service DlpService { // Updates the stored infoType by creating a new version. The existing version // will continue to be used until the new version is ready. - // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + // to learn more. rpc UpdateStoredInfoType(UpdateStoredInfoTypeRequest) returns (StoredInfoType) { option (google.api.http) = { @@ -648,8 +695,9 @@ service DlpService { } // Gets a stored infoType. - // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + // to learn more. rpc GetStoredInfoType(GetStoredInfoTypeRequest) returns (StoredInfoType) { option (google.api.http) = { get: "/v2/{name=organizations/*/storedInfoTypes/*}" @@ -665,8 +713,9 @@ service DlpService { } // Lists stored infoTypes. - // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + // to learn more. rpc ListStoredInfoTypes(ListStoredInfoTypesRequest) returns (ListStoredInfoTypesResponse) { option (google.api.http) = { @@ -683,8 +732,9 @@ service DlpService { } // Deletes a stored infoType. - // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to - // learn more. + // See + // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes + // to learn more. rpc DeleteStoredInfoType(DeleteStoredInfoTypeRequest) returns (google.protobuf.Empty) { option (google.api.http) = { @@ -700,6 +750,128 @@ service DlpService { option (google.api.method_signature) = "name"; } + // Lists project data profiles for an organization. + rpc ListProjectDataProfiles(ListProjectDataProfilesRequest) + returns (ListProjectDataProfilesResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/locations/*}/projectDataProfiles" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/projectDataProfiles" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists table data profiles for an organization. + rpc ListTableDataProfiles(ListTableDataProfilesRequest) + returns (ListTableDataProfilesResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/locations/*}/tableDataProfiles" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/tableDataProfiles" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists column data profiles for an organization. + rpc ListColumnDataProfiles(ListColumnDataProfilesRequest) + returns (ListColumnDataProfilesResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/locations/*}/columnDataProfiles" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/columnDataProfiles" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a project data profile. + rpc GetProjectDataProfile(GetProjectDataProfileRequest) + returns (ProjectDataProfile) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/locations/*/projectDataProfiles/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/projectDataProfiles/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists file store data profiles for an organization. + rpc ListFileStoreDataProfiles(ListFileStoreDataProfilesRequest) + returns (ListFileStoreDataProfilesResponse) { + option (google.api.http) = { + get: "/v2/{parent=organizations/*/locations/*}/fileStoreDataProfiles" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a file store data profile. + rpc GetFileStoreDataProfile(GetFileStoreDataProfileRequest) + returns (FileStoreDataProfile) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Delete a FileStoreDataProfile. Will not prevent the profile from being + // regenerated if the resource is still included in a discovery configuration. + rpc DeleteFileStoreDataProfile(DeleteFileStoreDataProfileRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}" + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a table data profile. + rpc GetTableDataProfile(GetTableDataProfileRequest) + returns (TableDataProfile) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/locations/*/tableDataProfiles/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/tableDataProfiles/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets a column data profile. + rpc GetColumnDataProfile(GetColumnDataProfileRequest) + returns (ColumnDataProfile) { + option (google.api.http) = { + get: "/v2/{name=organizations/*/locations/*/columnDataProfiles/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/columnDataProfiles/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Delete a TableDataProfile. Will not prevent the profile from being + // regenerated if the table is still included in a discovery configuration. + rpc DeleteTableDataProfile(DeleteTableDataProfileRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=organizations/*/locations/*/tableDataProfiles/*}" + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/tableDataProfiles/*}" + } + }; + option (google.api.method_signature) = "name"; + } + // Inspect hybrid content and store findings to a job. // To review the findings, inspect the job. Inspection will occur // asynchronously. @@ -720,6 +892,62 @@ service DlpService { body: "*" }; } + + // Create a Connection to an external data source. + rpc CreateConnection(CreateConnectionRequest) returns (Connection) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/connections" + body: "*" + }; + option (google.api.method_signature) = "parent, connection"; + } + + // Get a Connection by name. + rpc GetConnection(GetConnectionRequest) returns (Connection) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/connections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Connections in a parent. + rpc ListConnections(ListConnectionsRequest) + returns (ListConnectionsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/connections" + }; + option (google.api.method_signature) = "parent"; + } + + // Searches for Connections in a parent. + rpc SearchConnections(SearchConnectionsRequest) + returns (SearchConnectionsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/connections:search" + additional_bindings { + get: "/v2/{parent=organizations/*/locations/*}/connections:search" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Delete a Connection. + rpc DeleteConnection(DeleteConnectionRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/connections/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update a Connection. + rpc UpdateConnection(UpdateConnectionRequest) returns (Connection) { + option (google.api.http) = { + patch: "/v2/{name=projects/*/locations/*/connections/*}" + body: "*" + }; + option (google.api.method_signature) = "name"; + } } // List of excluded infoTypes. @@ -869,7 +1097,7 @@ message InspectConfig { // Restricts what info_types to look for. The values must correspond to // InfoType values returned by ListInfoTypes or listed at - // https://cloud.google.com/dlp/docs/infotypes-reference. + // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference. // // When no InfoTypes or CustomInfoTypes are specified in a request, the // system may automatically choose a default list of detectors to run, which @@ -885,7 +1113,8 @@ message InspectConfig { // // In general, the highest likelihood setting yields the fewest findings in // results and the lowest chance of a false positive. For more information, - // see [Match likelihood](https://cloud.google.com/dlp/docs/likelihood). + // see [Match + // likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood). Likelihood min_likelihood = 2; // Minimum likelihood per infotype. For each infotype, a user can specify a @@ -922,7 +1151,8 @@ message InspectConfig { bool exclude_info_types = 5; // CustomInfoTypes provided by the user. See - // https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more. + // https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes + // to learn more. repeated CustomInfoType custom_info_types = 6; // Deprecated and unused. @@ -938,7 +1168,7 @@ message InspectConfig { message ByteContentItem { // The type of data being sent for inspection. To learn more, see // [Supported file - // types](https://cloud.google.com/dlp/docs/supported-file-types). + // types](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types). enum BytesType { // Unused BYTES_TYPE_UNSPECIFIED = 0; @@ -981,6 +1211,15 @@ message ByteContentItem { // tsv TSV = 13; + + // Audio file types. Only used for profiling. + AUDIO = 15; + + // Video file types. Only used for profiling. + VIDEO = 16; + + // Executable file types. Only used for profiling. + EXECUTABLE = 17; } // The type of data stored in the bytes string. Default will be TEXT_UTF8. @@ -990,6 +1229,7 @@ message ByteContentItem { bytes data = 2; } +// Type of content to inspect. message ContentItem { // Data of the item either in the byte array or UTF-8 string form, or table. oneof data_item { @@ -997,8 +1237,8 @@ message ContentItem { string value = 3; // Structured content for inspection. See - // https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to - // learn more. + // https://cloud.google.com/sensitive-data-protection/docs/inspecting-text#inspecting_a_table + // to learn more. Table table = 4; // Content data to inspect or redact. Replaces `type` and `data`. @@ -1007,7 +1247,7 @@ message ContentItem { } // Structured content to inspect. Up to 50,000 `Value`s per request allowed. See -// https://cloud.google.com/dlp/docs/inspecting-structured-text#inspecting_a_table +// https://cloud.google.com/sensitive-data-protection/docs/inspecting-structured-text#inspecting_a_table // to learn more. message Table { // Values of the row. @@ -1094,6 +1334,7 @@ message Finding { // No more than 10 labels can be associated with a given finding. // // Examples: + // // * `"environment" : "production"` // * `"pipeline" : "etl"` map labels = 10; @@ -1187,6 +1428,7 @@ message MetadataLocation { // Storage metadata label to indicate which metadata entry contains findings. message StorageMetadataLabel { + // Label name. string key = 1; } @@ -1322,11 +1564,11 @@ message RedactImageRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -1387,11 +1629,11 @@ message DeidentifyContentRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -1456,11 +1698,11 @@ message ReidentifyContentRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -1528,11 +1770,11 @@ message InspectContentRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -1658,6 +1900,10 @@ message InspectDataSourceDetails { // inspect job. repeated InfoTypeStats info_type_stats = 3; + // Number of rows scanned after sampling and time filtering (applicable for + // row based stores such as BigQuery). + int64 num_rows_processed = 5; + // Statistics related to the processing of hybrid inspect. HybridInspectStatistics hybrid_stats = 7; } @@ -1672,12 +1918,16 @@ message InspectDataSourceDetails { // The schema of data to be saved to the BigQuery table when the // `DataProfileAction` is enabled. message DataProfileBigQueryRowSchema { + // Data profile type. oneof data_profile { // Table data profile column TableDataProfile table_profile = 1; // Column data profile column ColumnDataProfile column_profile = 2; + + // File store data profile column. + FileStoreDataProfile file_store_profile = 3; } } @@ -1786,9 +2036,18 @@ message InfoTypeCategory { // The infoType is typically used in Argentina. ARGENTINA = 2; + // The infoType is typically used in Armenia. + ARMENIA = 51; + // The infoType is typically used in Australia. AUSTRALIA = 3; + // The infoType is typically used in Azerbaijan. + AZERBAIJAN = 48; + + // The infoType is typically used in Belarus. + BELARUS = 50; + // The infoType is typically used in Belgium. BELGIUM = 4; @@ -1843,6 +2102,9 @@ message InfoTypeCategory { // The infoType is typically used in Japan. JAPAN = 20; + // The infoType is typically used in Kazakhstan. + KAZAKHSTAN = 47; + // The infoType is typically used in Korea. KOREA = 21; @@ -1870,6 +2132,9 @@ message InfoTypeCategory { // The infoType is typically used in Portugal. PORTUGAL = 28; + // The infoType is typically used in Russia. + RUSSIA = 44; + // The infoType is typically used in Singapore. SINGAPORE = 29; @@ -1894,6 +2159,9 @@ message InfoTypeCategory { // The infoType is typically used in Turkey. TURKEY = 35; + // The infoType is typically used in Ukraine. + UKRAINE = 45; + // The infoType is typically used in the United Kingdom. UNITED_KINGDOM = 36; @@ -1903,6 +2171,9 @@ message InfoTypeCategory { // The infoType is typically used in Uruguay. URUGUAY = 38; + // The infoType is typically used in Uzbekistan. + UZBEKISTAN = 46; + // The infoType is typically used in Venezuela. VENEZUELA = 39; @@ -1958,6 +2229,7 @@ message InfoTypeCategory { CONTEXTUAL_INFORMATION = 7; } + // Categories of infotypes. oneof category { // The region or country that issued the ID or document represented by the // infoType. @@ -2009,7 +2281,8 @@ message ListInfoTypesResponse { } // Configuration for a risk analysis job. See -// https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more. +// https://cloud.google.com/sensitive-data-protection/docs/concepts-risk-analysis +// to learn more. message RiskAnalysisJobConfig { // Privacy metric to compute. PrivacyMetric privacy_metric = 1; @@ -2600,6 +2873,7 @@ message DateTime { // The configuration that controls how the data will change. message DeidentifyConfig { + // Type of transformation oneof transformation { // Treat the dataset as free-form text and apply the same free text // transformation everywhere. @@ -2636,6 +2910,7 @@ message ImageTransformations { // Apply to all text. message AllText {} + // Part of the image to transform. oneof target { // Apply transformation to the selected info_types. SelectedInfoTypes selected_info_types = 4; @@ -2655,6 +2930,7 @@ message ImageTransformations { Color redaction_color = 3; } + // List of transforms to make. repeated ImageTransformation transforms = 2; } @@ -2688,6 +2964,7 @@ message TransformationErrorHandling { // A rule for transforming a value. message PrimitiveTransformation { + // Type of transformation. oneof transformation { // Replace with a specified value. ReplaceValueConfig replace_config = 1; @@ -2764,7 +3041,8 @@ message TimePartConfig { // Outputs a base64 encoded representation of the hashed output // (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=). // Currently, only string and integer values can be hashed. -// See https://cloud.google.com/dlp/docs/pseudonymization to learn more. +// See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization +// to learn more. message CryptoHashConfig { // The key used by the hash function. CryptoKey crypto_key = 1; @@ -2842,10 +3120,11 @@ message ReplaceValueConfig { // Replace each input value with a value randomly selected from the dictionary. message ReplaceDictionaryConfig { + // Type of dictionary. oneof type { // A list of words to select from for random replacement. The - // [limits](https://cloud.google.com/dlp/limits) page contains details about - // the size limits of dictionaries. + // [limits](https://cloud.google.com/sensitive-data-protection/limits) page + // contains details about the size limits of dictionaries. CustomInfoType.Dictionary.WordList word_list = 1; } } @@ -2882,6 +3161,7 @@ message CharsToIgnore { WHITESPACE = 5; } + // Type of characters to skip. oneof characters { // Characters to not transform when masking. string characters_to_skip = 1; @@ -2953,7 +3233,9 @@ message CharacterMaskConfig { // being transformed, we will first attempt converting the type of the data to // be transformed to match the type of the bound before comparing. // -// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. +// See +// https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to +// learn more. message FixedSizeBucketingConfig { // Required. Lower bound value of buckets. All values less than `lower_bound` // are grouped together into a single bucket; for example if `lower_bound` = @@ -2974,13 +3256,16 @@ message FixedSizeBucketingConfig { // Generalization function that buckets values based on ranges. The ranges and // replacement values are dynamically provided by the user for custom behavior, -// such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH -// This can be used on -// data of type: number, long, string, timestamp. +// such as 1-30 -> LOW, 31-65 -> MEDIUM, 66-100 -> HIGH. +// +// This can be used on data of type: number, long, string, timestamp. +// // If the bound `Value` type differs from the type of data being transformed, we // will first attempt converting the type of the data to be transformed to match // the type of the bound before comparing. -// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more. +// See +// https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to +// learn more. message BucketingConfig { // Bucket is represented as a range, along with replacement values. message Bucket { @@ -3006,8 +3291,9 @@ message BucketingConfig { // encoded as ASCII. For a given crypto key and context, the same identifier // will be replaced with the same surrogate. Identifiers must be at least two // characters long. In the case that the identifier is the empty string, it will -// be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn -// more. +// be skipped. See +// https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to +// learn more. // // Note: We recommend using CryptoDeterministicConfig for all use cases which // do not require preserving the input alphabet space and size, plus warrant @@ -3091,7 +3377,7 @@ message CryptoReplaceFfxFpeConfig { // // This annotation identifies the surrogate when inspecting content using the // custom infoType - // [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). + // [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype). // This facilitates reversal of the surrogate when it occurs in free text. // // In order for inspection to work properly, the name of this infoType must @@ -3153,7 +3439,7 @@ message UnwrappedCryptoKey { // dlp.kms.encrypt // // For more information, see [Creating a wrapped key] -// (https://cloud.google.com/dlp/docs/create-wrapped-key). +// (https://cloud.google.com/sensitive-data-protection/docs/create-wrapped-key). // // Note: When you use Cloud KMS for cryptographic operations, // [charges apply](https://cloud.google.com/kms/pricing). @@ -3166,7 +3452,8 @@ message KmsWrappedCryptoKey { } // Shifts dates by random number of days, with option to be consistent for the -// same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting +// same context. See +// https://cloud.google.com/sensitive-data-protection/docs/concepts-date-shifting // to learn more. message DateShiftConfig { // Required. Range of shift in days. Actual shift will be selected at random @@ -3459,6 +3746,7 @@ message TransformationDetails { // Specifies the location of a transformation. message TransformationLocation { + // Location type. oneof location_type { // For infotype transformations, link to the corresponding findings ID so // that location information does not need to be duplicated. Each findings @@ -3476,6 +3764,7 @@ message TransformationLocation { TransformationContainerType container_type = 3; } +// The field in a record to transform. message RecordTransformation { // For record transformations, provide a field. FieldId field_id = 1; @@ -3487,6 +3776,7 @@ message RecordTransformation { string container_version = 3; } +// The outcome of a transformation. message TransformationResultStatus { // Transformation result status type, this will be either SUCCESS, or it will // be the reason for why the transformation was not completely successful. @@ -3500,6 +3790,7 @@ message TransformationResultStatus { // storing of transformation was successful, otherwise, reason for not // transforming. enum TransformationResultStatusType { + // Unused. STATE_TYPE_UNSPECIFIED = 0; // This will be set when a finding could not be transformed (i.e. outside user @@ -3522,12 +3813,16 @@ enum TransformationResultStatusType { // Describes functionality of a given container in its original format. enum TransformationContainerType { + // Unused. TRANSFORM_UNKNOWN_CONTAINER = 0; + // Body of a file. TRANSFORM_BODY = 1; + // Metadata for a file. TRANSFORM_METADATA = 2; + // A table. TRANSFORM_TABLE = 3; } @@ -3597,6 +3892,7 @@ message TransformationDetailsStorageConfig { // Schedule for inspect job triggers. message Schedule { + // Type of schedule. oneof option { // With this option a job is started on a regular periodic basis. For // example: every day (86400 seconds). @@ -3616,8 +3912,9 @@ message Manual {} // The inspectTemplate contains a configuration (set of types of sensitive data // to be detected) to be used anywhere you otherwise would normally specify -// InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates -// to learn more. +// InspectConfig. See +// https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to +// learn more. message InspectTemplate { option (google.api.resource) = { type: "dlp.googleapis.com/InspectTemplate" @@ -3653,7 +3950,9 @@ message InspectTemplate { } // DeidentifyTemplates contains instructions on how to de-identify content. -// See https://cloud.google.com/dlp/docs/concepts-templates to learn more. +// See +// https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to +// learn more. message DeidentifyTemplate { option (google.api.resource) = { type: "dlp.googleapis.com/DeidentifyTemplate" @@ -3691,16 +3990,33 @@ message DeidentifyTemplate { // Details information about an error encountered during job execution or // the results of an unsuccessful activation of the JobTrigger. message Error { + // Additional information about the error. + enum ErrorExtraInfo { + // Unused. + ERROR_INFO_UNSPECIFIED = 0; + + // Image scan is not available in the region. + IMAGE_SCAN_UNAVAILABLE_IN_REGION = 1; + + // File store cluster is not supported for profile generation. + FILE_STORE_CLUSTER_UNSUPPORTED = 2; + } + // Detailed error codes and messages. google.rpc.Status details = 1; // The times the error occurred. List includes the oldest timestamp and the // last 9 timestamps. repeated google.protobuf.Timestamp timestamps = 2; + + // Additional information about the error. + ErrorExtraInfo extra_info = 4; } -// Contains a configuration to make dlp api calls on a repeating basis. -// See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more. +// Contains a configuration to make API calls on a repeating basis. +// See +// https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers +// to learn more. message JobTrigger { option (google.api.resource) = { type: "dlp.googleapis.com/JobTrigger" @@ -3710,6 +4026,7 @@ message JobTrigger { // What event needs to occur for a new job to be started. message Trigger { + // What event needs to occur for a new job to be started. oneof trigger { // Create a job on a repeating basis based on the elapse of time. Schedule schedule = 1; @@ -3782,7 +4099,8 @@ message JobTrigger { } // A task to execute on the completion of a job. -// See https://cloud.google.com/dlp/docs/concepts-actions to learn more. +// See https://cloud.google.com/sensitive-data-protection/docs/concepts-actions +// to learn more. message Action { // If set, the detailed findings will be persisted to the specified // OutputStorageConfig. Only a single instance of this action can be @@ -3796,7 +4114,7 @@ message Action { // Publish a message into a given Pub/Sub topic when DlpJob has completed. The // message contains a single field, `DlpJobName`, which is equal to the // finished job's - // [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). + // [`DlpJob.name`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/projects.dlpJobs#DlpJob). // Compatible with: Inspect, Risk message PublishToPubSub { // Cloud Pub/Sub topic to send notifications to. The topic must have given @@ -3865,9 +4183,10 @@ message Action { TransformationDetailsStorageConfig transformation_details_storage_config = 3; + // Where to store the output. oneof output { // Required. User settable Cloud Storage bucket and folders to store - // de-identified files. This field must be set for cloud storage + // de-identified files. This field must be set for Cloud Storage // deidentification. The output Cloud Storage bucket must be different // from the input bucket. De-identified files will overwrite files in the // output path. @@ -3877,12 +4196,12 @@ message Action { } // List of user-specified file type groups to transform. If specified, only - // the files with these filetypes will be transformed. If empty, all + // 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 filetypes supported are: - // IMAGES, TEXT_FILES, CSV, TSV. + // successfully created/started. Currently the only file types supported + // are: IMAGES, TEXT_FILES, CSV, TSV. repeated FileType file_types_to_transform = 8; } @@ -3897,6 +4216,7 @@ message Action { // as 'Custom' under the Stackdriver label 'info_type'. message PublishToStackdriver {} + // Extra events to execute after the job has finished. oneof action { // Save resulting findings in a provided location. SaveFindings save_findings = 1; @@ -3958,15 +4278,15 @@ message CreateInspectTemplateRequest { // // The format of this value varies depending on the scope of the request // (project or organization) and whether you have [specified a processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID - // + Organizations scope, location specified:
+ // + Organizations scope, location specified: // `organizations/`ORG_ID`/locations/`LOCATION_ID - // + Organizations scope, no location specified (defaults to global):
+ // + Organizations scope, no location specified (defaults to global): // `organizations/`ORG_ID // // The following example `parent` string specifies a parent project with the @@ -4032,15 +4352,15 @@ message ListInspectTemplatesRequest { // // The format of this value varies depending on the scope of the request // (project or organization) and whether you have [specified a processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID - // + Organizations scope, location specified:
+ // + Organizations scope, location specified: // `organizations/`ORG_ID`/locations/`LOCATION_ID - // + Organizations scope, no location specified (defaults to global):
+ // + Organizations scope, no location specified (defaults to global): // `organizations/`ORG_ID // // The following example `parent` string specifies a parent project with the @@ -4063,7 +4383,7 @@ message ListInspectTemplatesRequest { // returns a page of max size 100. int32 page_size = 3; - // Comma separated list of fields to order by, + // Comma-separated list of fields to order by, // followed by `asc` or `desc` postfix. This list is case insensitive. The // default sorting order is ascending. Redundant space characters are // insignificant. @@ -4111,11 +4431,11 @@ message CreateJobTriggerRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -4183,8 +4503,13 @@ message GetJobTriggerRequest { message CreateDiscoveryConfigRequest { // Required. Parent resource name. // - // The format of this value is as follows: - // `projects/`PROJECT_ID`/locations/`LOCATION_ID + // The format of this value varies depending on the scope of the request + // (project or organization): + // + // + Projects scope: + // `projects/`PROJECT_ID`/locations/`LOCATION_ID + // + Organizations scope: + // `organizations/`ORG_ID`/locations/`LOCATION_ID // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4265,7 +4590,7 @@ message ListDiscoveryConfigsRequest { // Size of the page. This value can be limited by a server. int32 page_size = 3; - // Comma separated list of config fields to order by, + // Comma-separated list of config fields to order by, // followed by `asc` or `desc` postfix. This list is case insensitive. The // default sorting order is ascending. Redundant space characters are // insignificant. @@ -4310,11 +4635,11 @@ message CreateDlpJobRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -4355,11 +4680,11 @@ message ListJobTriggersRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -4382,7 +4707,7 @@ message ListJobTriggersRequest { // Size of the page. This value can be limited by a server. int32 page_size = 3; - // Comma separated list of triggeredJob fields to order by, + // Comma-separated list of triggeredJob fields to order by, // followed by `asc` or `desc` postfix. This list is case insensitive. The // default sorting order is ascending. Redundant space characters are // insignificant. @@ -4475,8 +4800,14 @@ message DataProfileAction { // of your choice whenever updated. message Export { // Store all table and column profiles in an existing table or a new table - // in an existing dataset. Each re-generation will result in a new row in - // BigQuery. + // in an existing dataset. Each re-generation will result in new rows in + // BigQuery. Data is inserted using [streaming + // insert](https://cloud.google.com/blog/products/bigquery/life-of-a-bigquery-streaming-insert) + // and so data may be in the buffer for a period of time after the profile + // has finished. The Pub/Sub notification is sent before the streaming + // buffer is guaranteed to be written, so data may not be instantly + // visible to queries by the time your topic receives the Pub/Sub + // notification. BigQueryTable profile_table = 1; } @@ -4492,8 +4823,11 @@ message DataProfileAction { // The full table data profile. TABLE_PROFILE = 1; - // The resource name of the table. + // The name of the profiled resource. RESOURCE_NAME = 2; + + // The full file store data profile. + FILE_STORE_PROFILE = 3; } // Cloud Pub/Sub topic to send notifications to. @@ -4522,13 +4856,9 @@ message DataProfileAction { // New profile (not a re-profile). NEW_PROFILE = 1; - // Changed one of the following profile metrics: - // * Table data risk score - // * Table sensitivity score - // * Table resource visibility - // * Table encryption type - // * Table predicted infoTypes - // * Table other infoTypes + // One of the following profile metrics changed: Data risk score, + // Sensitivity score, Resource visibility, Encryption type, Predicted + // infoTypes, Other infoTypes CHANGED_PROFILE = 2; // Table data risk score or sensitivity score increased. @@ -4538,6 +4868,7 @@ message DataProfileAction { ERROR_CHANGED = 4; } + // Type of action to execute when a profile is generated. oneof action { // Export data profiles into a provided location. Export export_data = 1; @@ -4553,7 +4884,7 @@ message DataProfileAction { // // The generated data profiles are retained according to the // [data retention policy] -// (https://cloud.google.com/dlp/docs/data-profiles#retention). +// (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention). message DataProfileJobConfig { // The data to scan. DataProfileLocation location = 1; @@ -4578,7 +4909,7 @@ message DataProfileJobConfig { // scanned. // // For more information, see - // https://cloud.google.com/dlp/docs/data-profiles#data-residency. + // https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency. repeated string inspect_templates = 7; // Actions to execute at the completion of the job. @@ -4674,7 +5005,7 @@ message DataProfileLocation { // The ID of an organization to scan. int64 organization_id = 1; - // The ID of the Folder within an organization to scan. + // The ID of the folder within an organization to scan. int64 folder_id = 2; } } @@ -4685,7 +5016,7 @@ message DataProfileLocation { // // The generated data profiles are retained according to the // [data retention policy] -// (https://cloud.google.com/dlp/docs/data-profiles#retention). +// (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention). message DiscoveryConfig { option (google.api.resource) = { type: "dlp.googleapis.com/DiscoveryConfig" @@ -4742,7 +5073,7 @@ message DiscoveryConfig { // scanned. // // For more information, see - // https://cloud.google.com/dlp/docs/data-profiles#data-residency. + // https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency. repeated string inspect_templates = 3; // Actions to execute at the completion of scanning. @@ -4780,6 +5111,19 @@ message DiscoveryTarget { // BigQuery target for Discovery. The first target to match a table will be // the one applied. BigQueryDiscoveryTarget big_query_target = 1; + + // Cloud SQL target for Discovery. The first target to match a table will be + // the one applied. + CloudSqlDiscoveryTarget cloud_sql_target = 2; + + // Discovery target that looks for credentials and secrets stored in cloud + // resource metadata and reports them as vulnerabilities to Security Command + // Center. Only one target of this type is allowed. + SecretsDiscoveryTarget secrets_target = 3; + + // Cloud Storage target for Discovery. The first target to match a table + // will be the one applied. + CloudStorageDiscoveryTarget cloud_storage_target = 4; } } @@ -4832,6 +5176,11 @@ message DiscoveryBigQueryFilter { // configuration. If none is specified, a default one will be added // automatically. AllOtherBigQueryTables other_tables = 2; + + // The table to scan. Discovery configurations including this can only + // include one DiscoveryTarget (the DiscoveryTarget with this + // TableReference). + TableReference table_reference = 3; } } @@ -4892,6 +5241,11 @@ message DiscoveryGenerationCadence { // Governs when to update data profiles when a table is modified. DiscoveryTableModifiedCadence table_modified_cadence = 2; + + // Governs when to update data profiles when the inspection rules + // defined by the `InspectTemplate` change. + // If not set, changing the template will not cause a data profile to update. + DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 3; } // The cadence at which to update data profiles when a table is modified. @@ -4943,50 +5297,482 @@ enum BigQuerySchemaModification { SCHEMA_REMOVED_COLUMNS = 2; } -// The location to begin a discovery scan. Denotes an organization ID or folder -// ID within an organization. -message DiscoveryStartingLocation { - // The location to be scanned. - oneof location { - // The ID of an organization to scan. - int64 organization_id = 1; - - // The ID of the Folder within an organization to scan. - int64 folder_id = 2; - } +// The cadence at which to update data profiles when the inspection rules +// defined by the `InspectTemplate` change. +message DiscoveryInspectTemplateModifiedCadence { + // How frequently data profiles can be updated when the template is modified. + // Defaults to never. + DataProfileUpdateFrequency frequency = 1; } -// Combines all of the information about a DLP job. -message DlpJob { - option (google.api.resource) = { - type: "dlp.googleapis.com/DlpJob" - pattern: "projects/{project}/dlpJobs/{dlp_job}" - pattern: "projects/{project}/locations/{location}/dlpJobs/{dlp_job}" - }; +// Target used to match against for discovery with Cloud SQL tables. +message CloudSqlDiscoveryTarget { + // Required. The tables the discovery cadence applies to. The first target + // with a matching filter will be the one to apply to a table. + DiscoveryCloudSqlFilter filter = 1 [(google.api.field_behavior) = REQUIRED]; - // Possible states of a job. New items may be added. - enum JobState { - // Unused. - JOB_STATE_UNSPECIFIED = 0; + // In addition to matching the filter, these conditions must be true + // before a profile is generated. + DiscoveryCloudSqlConditions conditions = 2; - // The job has not yet started. - PENDING = 1; + // Type of schedule. + oneof cadence { + // How often and when to update profiles. New tables that match both the + // filter and conditions are scanned as quickly as possible depending on + // system capacity. + DiscoveryCloudSqlGenerationCadence generation_cadence = 3; - // The job is currently running. Once a job has finished it will transition - // to FAILED or DONE. - RUNNING = 2; + // Disable profiling for database resources that match this filter. + Disabled disabled = 4; + } +} - // The job is no longer running. - DONE = 3; +// Determines what tables will have profiles generated within an organization +// or project. Includes the ability to filter by regular expression patterns +// on project ID, location, instance, database, and database resource name. +message DiscoveryCloudSqlFilter { + // Whether the filter applies to a specific set of database resources or all + // other database resources within the location being profiled. The first + // filter to match will be applied, regardless of the condition. If none is + // set, will default to `others`. + oneof filter { + // A specific set of database resources for this filter to apply to. + DatabaseResourceCollection collection = 1; - // The job was canceled before it could be completed. - CANCELED = 4; + // Catch-all. This should always be the last target in the list because + // anything above it will apply first. Should only appear once in a + // configuration. If none is specified, a default one will be added + // automatically. + AllOtherDatabaseResources others = 2; - // The job had an error and did not complete. - FAILED = 5; + // The database resource to scan. Targets including this can only include + // one target (the target with this database resource reference). + DatabaseResourceReference database_resource_reference = 3; + } +} - // The job is currently accepting findings via hybridInspect. - // A hybrid job in ACTIVE state may continue to have findings added to it +// Match database resources using regex filters. Examples of database +// resources are tables, views, and stored procedures. +message DatabaseResourceCollection { + // The first filter containing a pattern that matches a database resource will + // be used. + oneof pattern { + // A collection of regular expressions to match a database resource against. + DatabaseResourceRegexes include_regexes = 1; + } +} + +// A collection of regular expressions to determine what database resources to +// match against. +message DatabaseResourceRegexes { + // A group of regular expression patterns to match against one or more + // database resources. + // Maximum of 100 entries. The sum of all regular expression's length can't + // exceed 10 KiB. + repeated DatabaseResourceRegex patterns = 1; +} + +// A pattern to match against one or more database resources. At least one +// pattern must be specified. Regular expressions use RE2 +// [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found +// under the google/re2 repository on GitHub. +message DatabaseResourceRegex { + // For organizations, if unset, will match all projects. Has no effect + // for configurations created within a project. + string project_id_regex = 1; + + // Regex to test the instance name against. If empty, all instances match. + string instance_regex = 2; + + // Regex to test the database name against. If empty, all databases match. + string database_regex = 3; + + // Regex to test the database resource's name against. An example of a + // database resource name is a table's name. Other database resource names + // like view names could be included in the future. If empty, all database + // resources match. + string database_resource_name_regex = 4; +} + +// Match database resources not covered by any other filter. +message AllOtherDatabaseResources {} + +// Identifies a single database resource, like a table within a database. +message DatabaseResourceReference { + // Required. If within a project-level config, then this must match the + // config's project ID. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The instance where this resource is located. For example: Cloud + // SQL instance ID. + string instance = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of a database within the instance. + string database = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of a database resource, for example, a table within the + // database. + string database_resource = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Requirements that must be true before a table is profiled for the +// first time. +message DiscoveryCloudSqlConditions { + // The database engines that should be profiled. + enum DatabaseEngine { + // Unused. + DATABASE_ENGINE_UNSPECIFIED = 0; + + // Include all supported database engines. + ALL_SUPPORTED_DATABASE_ENGINES = 1; + + // MySQL database. + MYSQL = 2; + + // PostgreSQL database. + POSTGRES = 3; + } + + // Cloud SQL database resource types. New values can be added at a later time. + enum DatabaseResourceType { + // Unused. + DATABASE_RESOURCE_TYPE_UNSPECIFIED = 0; + + // Includes database resource types that become supported at a later time. + DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES = 1; + + // Tables. + DATABASE_RESOURCE_TYPE_TABLE = 2; + } + + // Optional. Database engines that should be profiled. + // Optional. Defaults to ALL_SUPPORTED_DATABASE_ENGINES if unspecified. + repeated DatabaseEngine database_engines = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Data profiles will only be generated for the database resource types + // specified in this field. + // If not specified, defaults to [DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES]. + repeated DatabaseResourceType types = 3; +} + +// How often existing tables should have their profiles refreshed. +// New tables are scanned as quickly as possible depending on system +// capacity. +message DiscoveryCloudSqlGenerationCadence { + // How frequently to modify the profile when the table's schema is modified. + message SchemaModifiedCadence { + // The type of modification that causes a profile update. + enum CloudSqlSchemaModification { + // Unused. + SQL_SCHEMA_MODIFICATION_UNSPECIFIED = 0; + + // New columns have appeared. + NEW_COLUMNS = 1; + + // Columns have been removed from the table. + REMOVED_COLUMNS = 2; + } + + // The types of schema modifications to consider. + // Defaults to NEW_COLUMNS. + repeated CloudSqlSchemaModification types = 1; + + // Frequency to regenerate data profiles when the schema is modified. + // Defaults to monthly. + DataProfileUpdateFrequency frequency = 2; + } + + // When to reprofile if the schema has changed. + SchemaModifiedCadence schema_modified_cadence = 1; + + // Data changes (non-schema changes) in Cloud SQL tables can't trigger + // reprofiling. If you set this field, profiles are refreshed at this + // frequency regardless of whether the underlying tables have changed. + // Defaults to never. + DataProfileUpdateFrequency refresh_frequency = 2; +} + +// Discovery target for credentials and secrets in cloud resource metadata. +// +// This target does not include any filtering or frequency controls. Cloud +// DLP will scan cloud resource metadata for secrets daily. +// +// No inspect template should be included in the discovery config for a +// security benchmarks scan. Instead, the built-in list of secrets and +// credentials infoTypes will be used (see +// https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#credentials_and_secrets). +// +// Credentials and secrets discovered will be reported as vulnerabilities to +// Security Command Center. +message SecretsDiscoveryTarget {} + +// Target used to match against for discovery with Cloud Storage buckets. +message CloudStorageDiscoveryTarget { + // Required. The buckets the generation_cadence applies to. The first target + // with a matching filter will be the one to apply to a bucket. + DiscoveryCloudStorageFilter filter = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. In addition to matching the filter, these conditions must be true + // before a profile is generated. + DiscoveryFileStoreConditions conditions = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // How often and when to update profiles. + oneof cadence { + // Optional. How often and when to update profiles. New buckets that match + // both the filter and conditions are scanned as quickly as possible + // depending on system capacity. + DiscoveryCloudStorageGenerationCadence generation_cadence = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disable profiling for buckets that match this filter. + Disabled disabled = 3 [(google.api.field_behavior) = OPTIONAL]; + } +} + +// Determines which buckets will have profiles generated within an organization +// or project. Includes the ability to filter by regular expression patterns +// on project ID and bucket name. +message DiscoveryCloudStorageFilter { + // Whether the filter applies to a specific set of buckets or all + // other buckets within the location being profiled. The first + // filter to match will be applied, regardless of the condition. If none is + // set, will default to `others`. + oneof filter { + // Optional. A specific set of buckets for this filter to apply to. + FileStoreCollection collection = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The bucket to scan. Targets including this can only include one + // target (the target with this bucket). This enables profiling the contents + // of a single bucket, while the other options allow for easy profiling of + // many bucets within a project or an organization. + CloudStorageResourceReference cloud_storage_resource_reference = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Catch-all. This should always be the last target in the list + // because anything above it will apply first. Should only appear once in a + // configuration. If none is specified, a default one will be added + // automatically. + AllOtherResources others = 100 [(google.api.field_behavior) = OPTIONAL]; + } +} + +// Match file stores (e.g. buckets) using regex filters. +message FileStoreCollection { + // The first filter containing a pattern that matches a file store will + // be used. + oneof pattern { + // Optional. A collection of regular expressions to match a file store + // against. + FileStoreRegexes include_regexes = 1 + [(google.api.field_behavior) = OPTIONAL]; + } +} + +// A collection of regular expressions to determine what file store to match +// against. +message FileStoreRegexes { + // Required. The group of regular expression patterns to match against one or + // more file stores. Maximum of 100 entries. The sum of all regular + // expression's length can't exceed 10 KiB. + repeated FileStoreRegex patterns = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// A pattern to match against one or more file stores. +message FileStoreRegex { + // The type of resource regex to use. + oneof resource_regex { + // Optional. Regex for Cloud Storage. + CloudStorageRegex cloud_storage_regex = 1 + [(google.api.field_behavior) = OPTIONAL]; + } +} + +// A pattern to match against one or more file stores. At least one +// pattern must be specified. Regular expressions use RE2 +// [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found +// under the google/re2 repository on GitHub. +message CloudStorageRegex { + // Optional. For organizations, if unset, will match all projects. + string project_id_regex = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Regex to test the bucket name against. If empty, all buckets + // match. Example: "marketing2021" or "(marketing)\d{4}" will both match the + // bucket gs://marketing2021 + string bucket_name_regex = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Identifies a single Cloud Storage bucket. +message CloudStorageResourceReference { + // Required. The bucket to scan. + string bucket_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. If within a project-level config, then this must match the + // config's project id. + string project_id = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// How often existing buckets should have their profiles refreshed. +// New buckets are scanned as quickly as possible depending on system +// capacity. +message DiscoveryCloudStorageGenerationCadence { + // Optional. Data changes in Cloud Storage can't trigger reprofiling. If you + // set this field, profiles are refreshed at this frequency regardless of + // whether the underlying buckets have changed. Defaults to never. + DataProfileUpdateFrequency refresh_frequency = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Governs when to update data profiles when the inspection rules + // defined by the `InspectTemplate` change. + // If not set, changing the template will not cause a data profile to update. + DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Requirements that must be true before a Cloud Storage bucket or object is +// scanned in discovery for the first time. There is an AND relationship between +// the top-level attributes. +message DiscoveryCloudStorageConditions { + // The attribute of an object. See + // https://cloud.google.com/storage/docs/storage-classes for more information + // on storage classes. + enum CloudStorageObjectAttribute { + // Unused. + CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED = 0; + + // Scan objects regardless of the attribute. + ALL_SUPPORTED_OBJECTS = 1; + + // Scan objects with the standard storage class. + STANDARD = 2; + + // Scan objects with the nearline storage class. This will incur retrieval + // fees. + NEARLINE = 3; + + // Scan objects with the coldline storage class. This will incur retrieval + // fees. + COLDLINE = 4; + + // Scan objects with the archive storage class. This will incur retrieval + // fees. + ARCHIVE = 5; + + // Scan objects with the regional storage class. + REGIONAL = 6; + + // Scan objects with the multi-regional storage class. + MULTI_REGIONAL = 7; + + // Scan objects with the dual-regional storage class. This will incur + // retrieval fees. + DURABLE_REDUCED_AVAILABILITY = 8; + } + + // The attribute of a bucket. + enum CloudStorageBucketAttribute { + // Unused. + CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED = 0; + + // Scan buckets regardless of the attribute. + ALL_SUPPORTED_BUCKETS = 1; + + // Buckets with autoclass disabled + // (https://cloud.google.com/storage/docs/autoclass). Only one of + // AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set. + AUTOCLASS_DISABLED = 2; + + // Buckets with autoclass enabled + // (https://cloud.google.com/storage/docs/autoclass). Only one of + // AUTOCLASS_DISABLED or AUTOCLASS_ENABLED should be set. Scanning + // Autoclass-enabled buckets can affect object storage classes. + AUTOCLASS_ENABLED = 3; + } + + // Required. Only objects with the specified attributes will be scanned. If an + // object has one of the specified attributes but is inside an excluded + // bucket, it will not be scanned. Defaults to [ALL_SUPPORTED_OBJECTS]. A + // profile will be created even if no objects match the + // included_object_attributes. + repeated CloudStorageObjectAttribute included_object_attributes = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Only objects with the specified attributes will be scanned. + // Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + repeated CloudStorageBucketAttribute included_bucket_attributes = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Requirements that must be true before a file store is scanned in discovery +// for the first time. There is an AND relationship between the top-level +// attributes. +message DiscoveryFileStoreConditions { + // Optional. File store must have been created after this date. Used to avoid + // backfilling. + google.protobuf.Timestamp created_after = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum age a file store must have. If set, the value must be 1 + // hour or greater. + google.protobuf.Duration min_age = 2 [(google.api.field_behavior) = OPTIONAL]; + + // File store specific conditions. + oneof conditions { + // Optional. Cloud Storage conditions. + DiscoveryCloudStorageConditions cloud_storage_conditions = 3 + [(google.api.field_behavior) = OPTIONAL]; + } +} + +// The location to begin a discovery scan. Denotes an organization ID or folder +// ID within an organization. +message DiscoveryStartingLocation { + // The location to be scanned. + oneof location { + // The ID of an organization to scan. + int64 organization_id = 1; + + // The ID of the folder within an organization to scan. + int64 folder_id = 2; + } +} + +// Match discovery resources not covered by any other filter. +message AllOtherResources {} + +// Combines all of the information about a DLP job. +message DlpJob { + option (google.api.resource) = { + type: "dlp.googleapis.com/DlpJob" + pattern: "projects/{project}/dlpJobs/{dlp_job}" + pattern: "projects/{project}/locations/{location}/dlpJobs/{dlp_job}" + }; + + // Possible states of a job. New items may be added. + enum JobState { + // Unused. + JOB_STATE_UNSPECIFIED = 0; + + // The job has not yet started. + PENDING = 1; + + // The job is currently running. Once a job has finished it will transition + // to FAILED or DONE. + RUNNING = 2; + + // The job is no longer running. + DONE = 3; + + // The job was canceled before it could be completed. + CANCELED = 4; + + // The job had an error and did not complete. + FAILED = 5; + + // The job is currently accepting findings via hybridInspect. + // A hybrid job in ACTIVE state may continue to have findings added to it // through the calling of hybridInspect. After the job has finished no more // calls to hybridInspect may be made. ACTIVE jobs can transition to DONE. ACTIVE = 6; @@ -5001,6 +5787,7 @@ message DlpJob { // State of a job. JobState state = 3; + // Job details. oneof details { // Results from analyzing risk of a data source. AnalyzeDataSourceRiskDetails risk_details = 4; @@ -5047,11 +5834,11 @@ message ListDlpJobsRequest { // // The format of this value varies depending on whether you have [specified a // processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -5105,7 +5892,7 @@ message ListDlpJobsRequest { // The type of job. Defaults to `DlpJobType.INSPECT` DlpJobType type = 5; - // Comma separated list of fields to order by, + // Comma-separated list of fields to order by, // followed by `asc` or `desc` postfix. This list is case insensitive. The // default sorting order is ascending. Redundant space characters are // insignificant. @@ -5144,7 +5931,7 @@ message CancelDlpJobRequest { // The request message for finishing a DLP hybrid job. message FinishDlpJobRequest { - // Required. The name of the DlpJob resource to be cancelled. + // Required. The name of the DlpJob resource to be finished. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" } @@ -5166,15 +5953,15 @@ message CreateDeidentifyTemplateRequest { // // The format of this value varies depending on the scope of the request // (project or organization) and whether you have [specified a processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID - // + Organizations scope, location specified:
+ // + Organizations scope, location specified: // `organizations/`ORG_ID`/locations/`LOCATION_ID - // + Organizations scope, no location specified (defaults to global):
+ // + Organizations scope, no location specified (defaults to global): // `organizations/`ORG_ID // // The following example `parent` string specifies a parent project with the @@ -5242,15 +6029,15 @@ message ListDeidentifyTemplatesRequest { // // The format of this value varies depending on the scope of the request // (project or organization) and whether you have [specified a processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID - // + Organizations scope, location specified:
+ // + Organizations scope, location specified: // `organizations/`ORG_ID`/locations/`LOCATION_ID - // + Organizations scope, no location specified (defaults to global):
+ // + Organizations scope, no location specified (defaults to global): // `organizations/`ORG_ID // // The following example `parent` string specifies a parent project with the @@ -5273,7 +6060,7 @@ message ListDeidentifyTemplatesRequest { // returns a page of max size 100. int32 page_size = 3; - // Comma separated list of fields to order by, + // Comma-separated list of fields to order by, // followed by `asc` or `desc` postfix. This list is case insensitive. The // default sorting order is ascending. Redundant space characters are // insignificant. @@ -5319,8 +6106,8 @@ message DeleteDeidentifyTemplateRequest { // Configuration for a custom dictionary created from a data source of any size // up to the maximum size defined in the -// [limits](https://cloud.google.com/dlp/limits) page. The artifacts of -// dictionary creation are stored in the specified Cloud Storage +// [limits](https://cloud.google.com/sensitive-data-protection/limits) page. The +// artifacts of dictionary creation are stored in the specified Cloud Storage // location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries // that satisfy the size requirements. message LargeCustomDictionaryConfig { @@ -5330,6 +6117,7 @@ message LargeCustomDictionaryConfig { // longer be used. CloudStoragePath output_path = 1; + // Source of the dictionary. oneof source { // Set of files containing newline-delimited lists of dictionary phrases. CloudStorageFileSet cloud_storage_file_set = 2; @@ -5347,7 +6135,7 @@ message LargeCustomDictionaryStats { // Configuration for stored infoTypes. All fields and subfield are provided // by the user. For more information, see -// https://cloud.google.com/dlp/docs/creating-custom-infotypes. +// https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes. message StoredInfoTypeConfig { // Display name of the StoredInfoType (max 256 characters). string display_name = 1; @@ -5438,15 +6226,15 @@ message CreateStoredInfoTypeRequest { // // The format of this value varies depending on the scope of the request // (project or organization) and whether you have [specified a processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID - // + Organizations scope, location specified:
+ // + Organizations scope, location specified: // `organizations/`ORG_ID`/locations/`LOCATION_ID - // + Organizations scope, no location specified (defaults to global):
+ // + Organizations scope, no location specified (defaults to global): // `organizations/`ORG_ID // // The following example `parent` string specifies a parent project with the @@ -5514,11 +6302,11 @@ message ListStoredInfoTypesRequest { // // The format of this value varies depending on the scope of the request // (project or organization) and whether you have [specified a processing - // location](https://cloud.google.com/dlp/docs/specifying-location): + // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // - // + Projects scope, location specified:
+ // + Projects scope, location specified: // `projects/`PROJECT_ID`/locations/`LOCATION_ID - // + Projects scope, no location specified (defaults to global):
+ // + Projects scope, no location specified (defaults to global): // `projects/`PROJECT_ID // // The following example `parent` string specifies a parent project with the @@ -5541,7 +6329,7 @@ message ListStoredInfoTypesRequest { // returns a page of max size 100. int32 page_size = 3; - // Comma separated list of fields to order by, + // Comma-separated list of fields to order by, // followed by `asc` or `desc` postfix. This list is case insensitive. The // default sorting order is ascending. Redundant space characters are // insignificant. @@ -5657,6 +6445,7 @@ message HybridFindingDetails { // No more than 10 labels can be associated with a given finding. // // Examples: + // // * `"environment" : "production"` // * `"pipeline" : "etl"` map labels = 5; @@ -5787,95 +6576,391 @@ enum StoredInfoTypeState { INVALID = 4; } -// Score is a summary of all elements in the data profile. -// A higher number means more risk. -message DataRiskLevel { - // Various score levels for resources. - enum DataRiskLevelScore { - // Unused. - RISK_SCORE_UNSPECIFIED = 0; +// Request to list the profiles generated for a given organization or project. +message ListProjectDataProfilesRequest { + // Required. organizations/{org_id}/locations/{loc_id} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/ProjectDataProfile" + } + ]; - // Low risk - Lower indication of sensitive data that appears to have - // additional access restrictions in place or no indication of sensitive - // data found. - RISK_LOW = 10; + // Page token to continue retrieval. + string page_token = 2; - // Medium risk - Sensitive data may be present but additional access or fine - // grain access restrictions appear to be present. Consider limiting - // access even further or transform data to mask. - RISK_MODERATE = 20; + // Size of the page. This value can be limited by the server. If zero, server + // returns a page of max size 100. + int32 page_size = 3; - // High risk – SPII may be present. Access controls may include public - // ACLs. Exfiltration of data may lead to user data loss. Re-identification - // of users may be possible. Consider limiting usage and or removing SPII. - RISK_HIGH = 30; - } + // Comma-separated list of fields to order by, followed by `asc` or `desc` + // postfix. This list is case insensitive. The default sorting order is + // ascending. Redundant space characters are insignificant. Only one order + // field at a time is allowed. + // + // Examples: + // * `project_id` + // * `sensitivity_level desc` + // + // Supported fields are: + // + // - `project_id`: Google Cloud project ID + // - `sensitivity_level`: How sensitive the data in a project is, at most. + // - `data_risk_level`: How much risk is associated with this data. + // - `profile_last_generated`: When the profile was last updated in epoch + // seconds. + string order_by = 4; - // The score applied to the resource. - DataRiskLevelScore score = 1; + // Allows filtering. + // + // Supported syntax: + // + // * Filter expressions are made up of one or more restrictions. + // * Restrictions can be combined by `AND` or `OR` logical operators. A + // sequence of restrictions implicitly uses `AND`. + // * A restriction has the form of `{field} {operator} {value}`. + // * Supported fields/values: + // - `sensitivity_level` - HIGH|MODERATE|LOW + // - `data_risk_level` - HIGH|MODERATE|LOW + // - `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: + // + // * `project_id = 12345 AND status_code = 1` + // * `project_id = 12345 AND sensitivity_level = HIGH` + // + // The length of this field should be no more than 500 characters. + string filter = 5; } -// How broadly a resource has been shared. New items may be added over time. -// A higher number means more restricted. -enum ResourceVisibility { - // Unused. - RESOURCE_VISIBILITY_UNSPECIFIED = 0; - - // Visible to any user. - RESOURCE_VISIBILITY_PUBLIC = 10; +// List of profiles generated for a given organization or project. +message ListProjectDataProfilesResponse { + // List of data profiles. + repeated ProjectDataProfile project_data_profiles = 1; - // Visible only to specific users. - RESOURCE_VISIBILITY_RESTRICTED = 20; + // The next page token. + string next_page_token = 2; } -// Snapshot of the configurations used to generate the profile. -message DataProfileConfigSnapshot { - // A copy of the inspection config used to generate this profile. This - // is a copy of the inspect_template specified in `DataProfileJobConfig`. - InspectConfig inspect_config = 2; - - // A copy of the configuration used to generate this profile. - DataProfileJobConfig data_profile_job = 3; -} +// Request to list the profiles generated for a given organization or project. +message ListTableDataProfilesRequest { + // Required. Resource name of the organization or project, for + // example `organizations/433245324/locations/europe` or + // `projects/project-id/locations/asia`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/TableDataProfile" + } + ]; -// The profile for a scanned table. -message TableDataProfile { - // Possible states of a profile. New items may be added. - enum State { - // Unused. - STATE_UNSPECIFIED = 0; + // Page token to continue retrieval. + string page_token = 2; - // The profile is currently running. Once a profile has finished it will - // transition to DONE. - RUNNING = 1; + // Size of the page. This value can be limited by the server. If zero, server + // returns a page of max size 100. + int32 page_size = 3; - // The profile is no longer generating. - // If profile_status.status.code is 0, the profile succeeded, otherwise, it - // failed. - DONE = 2; - } + // Comma-separated list of fields to order by, followed by `asc` or `desc` + // postfix. This list is case insensitive. The default sorting order is + // ascending. Redundant space characters are insignificant. Only one order + // field at a time is allowed. + // + // Examples: + // * `project_id asc` + // * `table_id` + // * `sensitivity_level desc` + // + // Supported fields are: + // + // - `project_id`: The Google Cloud project ID. + // - `dataset_id`: The ID of a BigQuery dataset. + // - `table_id`: The ID of a BigQuery table. + // - `sensitivity_level`: How sensitive the data in a table is, at most. + // - `data_risk_level`: How much risk is associated with this data. + // - `profile_last_generated`: When the profile was last updated in epoch + // seconds. + // - `last_modified`: The last time the resource was modified. + // - `resource_visibility`: Visibility restriction for this resource. + // - `row_count`: Number of rows in this resource. + string order_by = 4; + + // Allows filtering. + // + // Supported syntax: + // + // * Filter expressions are made up of one or more restrictions. + // * Restrictions can be combined by `AND` or `OR` logical operators. A + // sequence of restrictions implicitly uses `AND`. + // * A restriction has the form of `{field} {operator} {value}`. + // * Supported fields/values: + // - `project_id` - The Google Cloud project ID. + // - `dataset_id` - The BigQuery dataset ID. + // - `table_id` - The ID of the BigQuery table. + // - `sensitivity_level` - HIGH|MODERATE|LOW + // - `data_risk_level` - HIGH|MODERATE|LOW + // - `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: + // + // * `project_id = 12345 AND status_code = 1` + // * `project_id = 12345 AND sensitivity_level = HIGH` + // * `project_id = 12345 AND resource_visibility = PUBLIC` + // + // The length of this field should be no more than 500 characters. + string filter = 5; +} + +// List of profiles generated for a given organization or project. +message ListTableDataProfilesResponse { + // List of data profiles. + repeated TableDataProfile table_data_profiles = 1; + + // The next page token. + string next_page_token = 2; +} + +// Request to list the profiles generated for a given organization or project. +message ListColumnDataProfilesRequest { + // Required. Resource name of the organization or project, for + // example `organizations/433245324/locations/europe` or + // `projects/project-id/locations/asia`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/ColumnDataProfile" + } + ]; + + // Page token to continue retrieval. + string page_token = 2; + + // Size of the page. This value can be limited by the server. If zero, server + // returns a page of max size 100. + int32 page_size = 3; + + // Comma-separated list of fields to order by, followed by `asc` or `desc` + // postfix. This list is case insensitive. The default sorting order is + // ascending. Redundant space characters are insignificant. Only one order + // field at a time is allowed. + // + // Examples: + // + // * `project_id asc` + // * `table_id` + // * `sensitivity_level desc` + // + // Supported fields are: + // + // - `project_id`: The Google Cloud project ID. + // - `dataset_id`: The ID of a BigQuery dataset. + // - `table_id`: The ID of a BigQuery table. + // - `sensitivity_level`: How sensitive the data in a column is, at most. + // - `data_risk_level`: How much risk is associated with this data. + // - `profile_last_generated`: When the profile was last updated in epoch + // seconds. + string order_by = 4; + + // Allows filtering. + // + // Supported syntax: + // + // * Filter expressions are made up of one or more restrictions. + // * Restrictions can be combined by `AND` or `OR` logical operators. A + // sequence of restrictions implicitly uses `AND`. + // * A restriction has the form of `{field} {operator} {value}`. + // * Supported fields/values: + // - `table_data_profile_name` - The name of the related table data + // profile. + // - `project_id` - The Google Cloud project ID. (REQUIRED) + // - `dataset_id` - The BigQuery dataset ID. (REQUIRED) + // - `table_id` - The BigQuery table ID. (REQUIRED) + // - `field_id` - The ID of the BigQuery field. + // - `info_type` - The infotype detected in the resource. + // - `sensitivity_level` - HIGH|MEDIUM|LOW + // - `data_risk_level`: How much risk is associated with this data. + // - `status_code` - an RPC status code as defined in + // https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + // * The operator must be `=` for project_id, dataset_id, and table_id. Other + // filters also support `!=`. + // + // Examples: + // + // * project_id = 12345 AND status_code = 1 + // * project_id = 12345 AND sensitivity_level = HIGH + // * project_id = 12345 AND info_type = STREET_ADDRESS + // + // The length of this field should be no more than 500 characters. + string filter = 5; +} + +// List of profiles generated for a given organization or project. +message ListColumnDataProfilesResponse { + // List of data profiles. + repeated ColumnDataProfile column_data_profiles = 1; + + // The next page token. + string next_page_token = 2; +} + +// Score is a summary of all elements in the data profile. +// A higher number means more risk. +message DataRiskLevel { + // Various score levels for resources. + enum DataRiskLevelScore { + // Unused. + RISK_SCORE_UNSPECIFIED = 0; + + // Low risk - Lower indication of sensitive data that appears to have + // additional access restrictions in place or no indication of sensitive + // data found. + RISK_LOW = 10; + + // Unable to determine risk. + RISK_UNKNOWN = 12; + + // Medium risk - Sensitive data may be present but additional access or fine + // grain access restrictions appear to be present. Consider limiting + // access even further or transform data to mask. + RISK_MODERATE = 20; + + // High risk – SPII may be present. Access controls may include public + // ACLs. Exfiltration of data may lead to user data loss. Re-identification + // of users may be possible. Consider limiting usage and or removing SPII. + RISK_HIGH = 30; + } + + // The score applied to the resource. + DataRiskLevelScore score = 1; +} + +// An aggregated profile for this project, based on the resources profiled +// within it. +message ProjectDataProfile { + option (google.api.resource) = { + type: "dlp.googleapis.com/ProjectDataProfile" + pattern: "organizations/{organization}/locations/{location}/projectDataProfiles/{project_data_profile}" + pattern: "projects/{project}/locations/{location}/projectDataProfiles/{project_data_profile}" + }; + + // The resource name of the profile. + string name = 1; + + // Project ID that was profiled. + string project_id = 2; + + // The last time the profile was generated. + google.protobuf.Timestamp profile_last_generated = 3; + + // The sensitivity score of this project. + SensitivityScore sensitivity_score = 4; + + // The data risk level of this project. + DataRiskLevel data_risk_level = 5; + + // Success or error status of the last attempt to profile the project. + ProfileStatus profile_status = 7; + + // The number of table data profiles generated for this project. + int64 table_data_profile_count = 9; + + // The number of file store data profiles generated for this project. + int64 file_store_data_profile_count = 10; +} + +// How broadly the data in the resource has been shared. New items may be added +// over time. A higher number means more restricted. +enum ResourceVisibility { + // Unused. + RESOURCE_VISIBILITY_UNSPECIFIED = 0; + + // Visible to any user. + RESOURCE_VISIBILITY_PUBLIC = 10; + + // May contain public items. + // For example, if a Cloud Storage bucket has uniform bucket level access + // disabled, some objects inside it may be public, but none are known yet. + RESOURCE_VISIBILITY_INCONCLUSIVE = 15; + + // Visible only to specific users. + RESOURCE_VISIBILITY_RESTRICTED = 20; +} + +// Snapshot of the configurations used to generate the profile. +message DataProfileConfigSnapshot { + // A copy of the inspection config used to generate this profile. This + // is a copy of the inspect_template specified in `DataProfileJobConfig`. + InspectConfig inspect_config = 2; + + // A copy of the configuration used to generate this profile. This is + // deprecated, and the DiscoveryConfig field is preferred moving forward. + // DataProfileJobConfig will still be written here for Discovery in BigQuery + // for backwards compatibility, but will not be updated with new fields, while + // DiscoveryConfig will. + DataProfileJobConfig data_profile_job = 3 [deprecated = true]; + + // A copy of the configuration used to generate this profile. + DiscoveryConfig discovery_config = 4; + + // Name of the inspection template used to generate this profile + string inspect_template_name = 5; + + // Timestamp when the template was modified + google.protobuf.Timestamp inspect_template_modified_time = 6; +} + +// The profile for a scanned table. +message TableDataProfile { + option (google.api.resource) = { + type: "dlp.googleapis.com/TableDataProfile" + pattern: "organizations/{organization}/locations/{location}/tableDataProfiles/{table_data_profile}" + pattern: "projects/{project}/locations/{location}/tableDataProfiles/{table_data_profile}" + }; + + // Possible states of a profile. New items may be added. + enum State { + // Unused. + STATE_UNSPECIFIED = 0; + + // The profile is currently running. Once a profile has finished it will + // transition to DONE. + RUNNING = 1; + + // The profile is no longer generating. + // If profile_status.status.code is 0, the profile succeeded, otherwise, it + // failed. + DONE = 2; + } // The name of the profile. string name = 1; - // The resource name to the project data profile for this table. + // The resource type that was profiled. + DataSourceType data_source_type = 36; + + // The resource name of the project data profile for this table. string project_data_profile = 2; - // The Google Cloud project ID that owns the BigQuery dataset. + // The Google Cloud project ID that owns the resource. string dataset_project_id = 24; - // The BigQuery location where the dataset's data is stored. + // If supported, the location where the dataset's data is stored. // See https://cloud.google.com/bigquery/docs/locations for supported // locations. string dataset_location = 29; - // The BigQuery dataset ID. + // If the resource is BigQuery, the dataset ID. string dataset_id = 25; - // The BigQuery table ID. + // If the resource is BigQuery, the BigQuery table ID. string table_id = 26; - // The resource name of the table. + // The resource name of the resource profiled. // https://cloud.google.com/apis/design/resource_names#full_resource_name string full_resource = 3; @@ -5936,6 +7021,7 @@ message TableDataProfile { google.protobuf.Timestamp create_time = 23; } +// Success or errors for the profile generation. message ProfileStatus { // Profiling status code and optional message. The `status.code` value is 0 // (default value) for OK. @@ -5992,6 +7078,7 @@ enum NullPercentageLevel { // Some null entries. NULL_PERCENTAGE_LOW = 2; + // A few null entries. NULL_PERCENTAGE_MEDIUM = 3; // A lot of null entries. @@ -6019,6 +7106,12 @@ enum UniquenessScoreLevel { // The profile for a scanned column within a table. message ColumnDataProfile { + option (google.api.resource) = { + type: "dlp.googleapis.com/ColumnDataProfile" + pattern: "organizations/{organization}/locations/{location}/columnDataProfiles/{column_data_profile}" + pattern: "projects/{project}/locations/{location}/columnDataProfiles/{column_data_profile}" + }; + // Possible states of a profile. New items may be added. enum State { // Unused. @@ -6081,6 +7174,18 @@ message ColumnDataProfile { // Json type. TYPE_JSON = 14; + + // Interval type. + TYPE_INTERVAL = 15; + + // `Range` type. + TYPE_RANGE_DATE = 16; + + // `Range` type. + TYPE_RANGE_DATETIME = 17; + + // `Range` type. + TYPE_RANGE_TIMESTAMP = 18; } // The possible policy states for a column. @@ -6108,10 +7213,10 @@ message ColumnDataProfile { // The resource name of the table data profile. string table_data_profile = 4; - // The resource name of the table this column is within. + // The resource name of the resource this column is within. string table_full_resource = 5; - // The Google Cloud project ID that owns the BigQuery dataset. + // The Google Cloud project ID that owns the profiled resource. string dataset_project_id = 19; // The BigQuery location where the dataset's data is stored. @@ -6161,6 +7266,306 @@ message ColumnDataProfile { ColumnPolicyState policy_state = 15; } +// The profile for a file store. +// +// * Cloud Storage: maps 1:1 with a bucket. +message FileStoreDataProfile { + option (google.api.resource) = { + type: "dlp.googleapis.com/FileStoreDataProfile" + pattern: "organizations/{organization}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}" + pattern: "projects/{project}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}" + }; + + // Possible states of a profile. New items may be added. + enum State { + // Unused. + STATE_UNSPECIFIED = 0; + + // The profile is currently running. Once a profile has finished it will + // transition to DONE. + RUNNING = 1; + + // The profile is no longer generating. + // If profile_status.status.code is 0, the profile succeeded, otherwise, it + // failed. + DONE = 2; + } + + // The name of the profile. + string name = 1; + + // The resource type that was profiled. + DataSourceType data_source_type = 2; + + // The resource name of the project data profile for this file store. + string project_data_profile = 3; + + // The Google Cloud project ID that owns the resource. + string project_id = 4; + + // The location of the file store. + // + // * Cloud Storage: + // https://cloud.google.com/storage/docs/locations#available-locations + string file_store_location = 5; + + // For resources that have multiple storage locations, these are those + // regions. For Cloud Storage this is the list of regions chosen for + // dual-region storage. `file_store_location` will normally be the + // corresponding multi-region for the list of individual locations. The first + // region is always picked as the processing and storage location for the data + // profile. + repeated string data_storage_locations = 19; + + // The location type of the bucket (region, dual-region, multi-region, etc). + // If dual-region, expect data_storage_locations to be populated. + string location_type = 20; + + // The file store path. + // + // * Cloud Storage: `gs://{bucket}` + string file_store_path = 6; + + // The resource name of the resource profiled. + // https://cloud.google.com/apis/design/resource_names#full_resource_name + string full_resource = 24; + + // The snapshot of the configurations used to generate the profile. + DataProfileConfigSnapshot config_snapshot = 7; + + // Success or error status from the most recent profile generation attempt. + // May be empty if the profile is still being generated. + ProfileStatus profile_status = 8; + + // State of a profile. + State state = 9; + + // The last time the profile was generated. + google.protobuf.Timestamp profile_last_generated = 10; + + // How broadly a resource has been shared. + ResourceVisibility resource_visibility = 11; + + // The sensitivity score of this resource. + SensitivityScore sensitivity_score = 12; + + // The data risk level of this resource. + DataRiskLevel data_risk_level = 13; + + // The time the file store was first created. + google.protobuf.Timestamp create_time = 14; + + // The time the file store was last modified. + google.protobuf.Timestamp last_modified_time = 15; + + // FileClusterSummary per each cluster. + repeated FileClusterSummary file_cluster_summaries = 16; + + // Attributes of the resource being profiled. + // Currently used attributes: + // + // * customer_managed_encryption: boolean + // - true: the resource is encrypted with a customer-managed key. + // - false: the resource is encrypted with a provider-managed key. + map resource_attributes = 17; + + // The labels applied to the resource at the time the profile was generated. + map resource_labels = 18; + + // InfoTypes detected in this file store. + repeated FileStoreInfoTypeSummary file_store_info_type_summaries = 21; + + // The file store does not have any files. + bool file_store_is_empty = 23; +} + +// Information regarding the discovered InfoType. +message FileStoreInfoTypeSummary { + // The InfoType seen. + InfoType info_type = 1; +} + +// Information regarding the discovered file extension. +message FileExtensionInfo { + // The file extension if set. (aka .pdf, .jpg, .txt) + string file_extension = 1; +} + +// The file cluster summary. +message FileClusterSummary { + // The file cluster type. + FileClusterType file_cluster_type = 1; + + // InfoTypes detected in this cluster. + repeated FileStoreInfoTypeSummary file_store_info_type_summaries = 2; + + // The sensitivity score of this cluster. The score will be SENSITIVITY_LOW + // if nothing has been scanned. + SensitivityScore sensitivity_score = 3; + + // The data risk level of this cluster. RISK_LOW if nothing has been + // scanned. + DataRiskLevel data_risk_level = 4; + + // A list of errors detected while scanning this cluster. The list is + // truncated to 10 per cluster. + repeated Error errors = 6; + + // A sample of file types scanned in this cluster. Empty if no files were + // scanned. + repeated FileExtensionInfo file_extensions_scanned = 7; + + // A sample of file types seen in this cluster. Empty if no files were seen. + repeated FileExtensionInfo file_extensions_seen = 8; + + // True if no files exist in this cluster. If the bucket had more files than + // could be listed, this will be false even if no files for this cluster + // were seen and file_extensions_seen is empty. + bool no_files_exist = 9; +} + +// Request to get a project data profile. +message GetProjectDataProfileRequest { + // Required. Resource name, for example + // `organizations/12345/locations/us/projectDataProfiles/53234423`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dlp.googleapis.com/ProjectDataProfile" + } + ]; +} + +// Request to get a file store data profile. +message GetFileStoreDataProfileRequest { + // Required. Resource name, for example + // `organizations/12345/locations/us/fileStoreDataProfiles/53234423`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dlp.googleapis.com/ProjectDataProfile" + } + ]; +} + +// Request to list the file store profiles generated for a given organization or +// project. +message ListFileStoreDataProfilesRequest { + // Required. Resource name of the organization or project, for + // example `organizations/433245324/locations/europe` or + // `projects/project-id/locations/asia`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/FileStoreDataProfile" + } + ]; + + // Optional. Page token to continue retrieval. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Size of the page. This value can be limited by the server. If + // zero, server returns a page of max size 100. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Comma-separated list of fields to order by, followed by `asc` or + // `desc` postfix. This list is case insensitive. The default sorting order is + // ascending. Redundant space characters are insignificant. Only one order + // field at a time is allowed. + // + // Examples: + // + // * `project_id asc` + // * `name` + // * `sensitivity_level desc` + // + // Supported fields are: + // + // - `project_id`: The Google Cloud project ID. + // - `sensitivity_level`: How sensitive the data in a table is, at most. + // - `data_risk_level`: How much risk is associated with this data. + // - `profile_last_generated`: When the profile was last updated in epoch + // seconds. + // - `last_modified`: The last time the resource was modified. + // - `resource_visibility`: Visibility restriction for this resource. + // - `name`: The name of the profile. + // - `create_time`: The time the file store was first created. + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Allows filtering. + // + // Supported syntax: + // + // * Filter expressions are made up of one or more restrictions. + // * Restrictions can be combined by `AND` or `OR` logical operators. A + // sequence of restrictions implicitly uses `AND`. + // * A restriction has the form of `{field} {operator} {value}`. + // * Supported fields/values: + // - `project_id` - The Google Cloud project ID. + // - `file_store_path` - The path like "gs://bucket". + // - `sensitivity_level` - HIGH|MODERATE|LOW + // - `data_risk_level` - HIGH|MODERATE|LOW + // - `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: + // + // * `project_id = 12345 AND status_code = 1` + // * `project_id = 12345 AND sensitivity_level = HIGH` + // * `project_id = 12345 AND resource_visibility = PUBLIC` + // * `file_store_path = "gs://mybucket"` + // + // The length of this field should be no more than 500 characters. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// List of file store data profiles generated for a given organization or +// project. +message ListFileStoreDataProfilesResponse { + // List of data profiles. + repeated FileStoreDataProfile file_store_data_profiles = 1; + + // The next page token. + string next_page_token = 2; +} + +// Request message for DeleteFileStoreProfile. +message DeleteFileStoreDataProfileRequest { + // Required. Resource name of the file store data profile. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dlp.googleapis.com/FileStoreDataProfile" + } + ]; +} + +// Request to get a table data profile. +message GetTableDataProfileRequest { + // Required. Resource name, for example + // `organizations/12345/locations/us/tableDataProfiles/53234423`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dlp.googleapis.com/TableDataProfile" + } + ]; +} + +// Request to get a column data profile. +message GetColumnDataProfileRequest { + // Required. Resource name, for example + // `organizations/12345/locations/us/columnDataProfiles/53234423`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dlp.googleapis.com/ColumnDataProfile" + } + ]; +} + // A condition for determining whether a Pub/Sub should be triggered. message DataProfilePubSubCondition { // Various score levels for resources. @@ -6221,6 +7626,307 @@ message DataProfilePubSubMessage { // `full_resource` will be populated. TableDataProfile profile = 1; + // If `DetailLevel` is `FILE_STORE_PROFILE` this will be fully populated. + // Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and + // `file_store_path` will be populated. + FileStoreDataProfile file_store_profile = 3; + // The event that caused the Pub/Sub message to be sent. DataProfileAction.EventType event = 2; } + +// Request message for CreateConnection. +message CreateConnectionRequest { + // Required. Parent resource name in the format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/Connection" + } + ]; + + // Required. The connection resource. + Connection connection = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for GetConnection. +message GetConnectionRequest { + // Required. Resource name in the format: + // `projects/{project}/locations/{location}/connections/{connection}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dlp.googleapis.com/Connection" } + ]; +} + +// Request message for ListConnections. +message ListConnectionsRequest { + // Required. Parent name, for example: + // `projects/project-id/locations/global`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/Connection" + } + ]; + + // Optional. Number of results per page, max 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token from a previous page to return the next set of + // results. If set, all other request fields must match the original request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Supported field/value: `state` - MISSING|AVAILABLE|ERROR + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for SearchConnections. +message SearchConnectionsRequest { + // Required. Parent name, typically an organization, without location. + // For example: `organizations/12345678`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "dlp.googleapis.com/Connection" + } + ]; + + // Optional. Number of results per page, max 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token from a previous page to return the next set of + // results. If set, all other request fields must match the original request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Supported field/value: - `state` - MISSING|AVAILABLE|ERROR + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListConnections. +message ListConnectionsResponse { + // List of connections. + repeated Connection connections = 1; + + // Token to retrieve the next page of results. An empty value means there are + // no more results. + string next_page_token = 2; +} + +// Response message for SearchConnections. +message SearchConnectionsResponse { + // List of connections that match the search query. Note that only a subset + // of the fields will be populated, and only "name" is guaranteed to be set. + // For full details of a Connection, call GetConnection with the name. + repeated Connection connections = 1; + + // Token to retrieve the next page of results. An empty value means there are + // no more results. + string next_page_token = 2; +} + +// Request message for UpdateConnection. +message UpdateConnectionRequest { + // Required. Resource name in the format: + // `projects/{project}/locations/{location}/connections/{connection}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dlp.googleapis.com/Connection" } + ]; + + // Required. The connection with new values for the relevant fields. + Connection connection = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Mask to control which fields get updated. + google.protobuf.FieldMask update_mask = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for DeleteConnection. +message DeleteConnectionRequest { + // Required. Resource name of the Connection to be deleted, in the format: + // `projects/{project}/locations/{location}/connections/{connection}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "dlp.googleapis.com/Connection" } + ]; +} + +// A data connection to allow DLP to profile data in locations that require +// additional configuration. +message Connection { + option (google.api.resource) = { + type: "dlp.googleapis.com/Connection" + pattern: "projects/{project}/locations/{location}/connections/{connection}" + }; + + // Output only. Name of the connection: + // `projects/{project}/locations/{location}/connections/{name}`. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The connection's state in its lifecycle. + ConnectionState state = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Set if status == ERROR, to provide additional details. Will + // store the last 10 errors sorted with the most recent first. + repeated Error errors = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Type of connection. + oneof properties { + // Connect to a Cloud SQL instance. + CloudSqlProperties cloud_sql = 4; + } +} + +// State of the connection. +// New values may be added over time. +enum ConnectionState { + // Unused + CONNECTION_STATE_UNSPECIFIED = 0; + + // DLP automatically created this connection during an initial scan, and it is + // awaiting full configuration by a user. + MISSING_CREDENTIALS = 1; + + // A configured connection that has not encountered any errors. + AVAILABLE = 2; + + // A configured connection that encountered errors during its last use. It + // will not be used again until it is set to AVAILABLE. + // + // If the resolution requires external action, then the client must send a + // request to set the status to AVAILABLE when the connection is ready for + // use. If the resolution doesn't require external action, then any changes to + // the connection properties will automatically mark it as AVAILABLE. + ERROR = 3; +} + +// A credential consisting of a username and password, where the password is +// stored in a Secret Manager resource. +// Note: Secret Manager [charges +// apply](https://cloud.google.com/secret-manager/pricing). +message SecretManagerCredential { + // Required. The username. + string username = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the Secret Manager resource that stores the password, + // in the form `projects/project-id/secrets/secret-name/versions/version`. + string password_secret_version_name = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Use IAM authentication to connect. This requires the Cloud SQL IAM feature +// to be enabled on the instance, which is not the default for Cloud SQL. +// See https://cloud.google.com/sql/docs/postgres/authentication and +// https://cloud.google.com/sql/docs/mysql/authentication. +message CloudSqlIamCredential {} + +// Cloud SQL connection properties. +message CloudSqlProperties { + // Database engine of a Cloud SQL instance. + // New values may be added over time. + enum DatabaseEngine { + // An engine that is not currently supported by Sensitive Data Protection. + DATABASE_ENGINE_UNKNOWN = 0; + + // Cloud SQL for MySQL instance. + DATABASE_ENGINE_MYSQL = 1; + + // Cloud SQL for PostgreSQL instance. + DATABASE_ENGINE_POSTGRES = 2; + } + + // Optional. Immutable. The Cloud SQL instance for which the connection is + // defined. Only one connection per instance is allowed. This can only be set + // at creation time, and cannot be updated. + // + // It is an error to use a connection_name from different project or region + // than the one that holds the connection. + // For example, a Connection resource for Cloud SQL connection_name + // `project-id:us-central1:sql-instance` + // must be created under the parent + // `projects/project-id/locations/us-central1` + string connection_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; + + // How to authenticate to the instance. + oneof credential { + // A username and password stored in Secret Manager. + SecretManagerCredential username_password = 2; + + // Built-in IAM authentication (must be configured in Cloud SQL). + CloudSqlIamCredential cloud_sql_iam = 3; + } + + // Required. DLP will limit its connections to max_connections. + // Must be 2 or greater. + int32 max_connections = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The database engine used by the Cloud SQL instance that this + // connection configures. + DatabaseEngine database_engine = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteTableProfile. +message DeleteTableDataProfileRequest { + // Required. Resource name of the table data profile. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dlp.googleapis.com/TableDataProfile" + } + ]; +} + +// Message used to identify the type of resource being profiled. +message DataSourceType { + // Output only. An identifying string to the type of resource being profiled. + // Current values: google/bigquery/table, google/project + string data_source = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message used to identify file cluster type being profiled. +message FileClusterType { + // Cluster type. Each cluster corresponds to a set of file types. + // Over time new types may be added. + enum Cluster { + // Unused. + CLUSTER_UNSPECIFIED = 0; + + // Unsupported files. + CLUSTER_UNKNOWN = 1; + + // Plain text. + CLUSTER_TEXT = 2; + + // Structured data like CSV, TSV etc. + CLUSTER_STRUCTURED_DATA = 3; + + // Source code. + CLUSTER_SOURCE_CODE = 4; + + // Rich document like docx, xlsx etc. + CLUSTER_RICH_DOCUMENT = 5; + + // Images like jpeg, bmp. + CLUSTER_IMAGE = 6; + + // Archives and containers like .zip, .tar etc. + CLUSTER_ARCHIVE = 7; + + // Multimedia like .mp4, .avi etc. + CLUSTER_MULTIMEDIA = 8; + + // Executable files like .exe, .class, .apk etc. + CLUSTER_EXECUTABLE = 9; + } + + // File cluster type. + oneof file_cluster_type { + // Cluster type. + Cluster cluster = 1; + } +} diff --git a/third_party/googleapis/google/privacy/dlp/v2/dlp_grpc_service_config.json b/third_party/googleapis/google/privacy/dlp/v2/dlp_grpc_service_config.json index 983bffc5a..ffdb62287 100755 --- a/third_party/googleapis/google/privacy/dlp/v2/dlp_grpc_service_config.json +++ b/third_party/googleapis/google/privacy/dlp/v2/dlp_grpc_service_config.json @@ -93,6 +93,30 @@ { "service": "google.privacy.dlp.v2.DlpService", "method": "DeleteDiscoveryConfig" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "ListProjectDataProfiles" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "GetProjectDataProfile" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "ListTableDataProfiles" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "GetTableDataProfile" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "ListColumnDataProfiles" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "GetColumnDataProfile" } ], "timeout": "300s", diff --git a/third_party/googleapis/google/privacy/dlp/v2/dlp_v2.yaml b/third_party/googleapis/google/privacy/dlp/v2/dlp_v2.yaml index 7ded01eee..a886b28e4 100644 --- a/third_party/googleapis/google/privacy/dlp/v2/dlp_v2.yaml +++ b/third_party/googleapis/google/privacy/dlp/v2/dlp_v2.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: dlp.googleapis.com -title: Cloud Data Loss Prevention (DLP) +title: Sensitive Data Protection (DLP) apis: - name: google.cloud.location.Locations @@ -14,9 +14,9 @@ types: documentation: summary: |- - Provides methods for detection, risk analysis, and de-identification of - privacy-sensitive fragments in text, images, and Google Cloud Platform - storage repositories. + Discover and protect your sensitive data. A fully managed service designed + to help you discover, classify, and protect your valuable data assets with + ease. authentication: rules: diff --git a/third_party/googleapis/google/privacy/dlp/v2/storage.proto b/third_party/googleapis/google/privacy/dlp/v2/storage.proto index 4a39d183a..2f3763d63 100644 --- a/third_party/googleapis/google/privacy/dlp/v2/storage.proto +++ b/third_party/googleapis/google/privacy/dlp/v2/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,9 +31,11 @@ option ruby_package = "Google::Cloud::Dlp::V2"; message InfoType { // Name of the information type. Either a name of your choosing when // creating a CustomInfoType, or one of the names listed - // at https://cloud.google.com/dlp/docs/infotypes-reference when specifying - // a built-in type. When sending Cloud DLP results to Data Catalog, infoType - // names should conform to the pattern `[A-Za-z0-9$_-]{1,64}`. + // at + // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + // when specifying a built-in type. When sending Cloud DLP results to Data + // Catalog, infoType names should conform to the pattern + // `[A-Za-z0-9$_-]{1,64}`. string name = 1; // Optional version name for this InfoType. @@ -56,6 +58,9 @@ message SensitivityScore { // accessible. SENSITIVITY_LOW = 10; + // Unable to determine sensitivity. + SENSITIVITY_UNKNOWN = 12; + // Medium risk. Contains personally identifiable information (PII), // potentially sensitive data, or fields with free-text data that are at a // higher risk of having intermittent sensitive data. Consider limiting @@ -87,7 +92,7 @@ message SensitivityScore { // // For more information about each likelihood level // and how likelihood works, see [Match -// likelihood](https://cloud.google.com/dlp/docs/likelihood). +// likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood). enum Likelihood { // Default value; same as POSSIBLE. LIKELIHOOD_UNSPECIFIED = 0; @@ -142,10 +147,10 @@ message CustomInfoType { // Dictionary words containing a large number of characters that are not // letters or digits may result in unexpected findings because such characters // are treated as whitespace. The - // [limits](https://cloud.google.com/dlp/limits) page contains details about - // the size limits of dictionaries. For dictionaries that do not fit within - // these constraints, consider using `LargeCustomDictionaryConfig` in the - // `StoredInfoType` API. + // [limits](https://cloud.google.com/sensitive-data-protection/limits) page + // contains details about the size limits of dictionaries. For dictionaries + // that do not fit within these constraints, consider using + // `LargeCustomDictionaryConfig` in the `StoredInfoType` API. message Dictionary { // Message defining a list of words or phrases to search for in the data. message WordList { @@ -155,6 +160,7 @@ message CustomInfoType { repeated string words = 1; } + // The potential places the data can be read from. oneof source { // List of words or phrases to search for. WordList word_list = 1; @@ -179,7 +185,7 @@ message CustomInfoType { // Message for detecting output from deidentification transformations // such as - // [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/dlp/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). + // [`CryptoReplaceFfxFpeConfig`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/organizations.deidentifyTemplates#cryptoreplaceffxfpeconfig). // These types of transformations are // those that perform pseudonymization, thereby producing a "surrogate" as // output. This should be used in conjunction with a field on the @@ -199,7 +205,7 @@ message CustomInfoType { // if you want to modify the likelihood of an entire column of findngs, // set this to 1. For more information, see // [Hotword example: Set the match likelihood of a table column] - // (https://cloud.google.com/dlp/docs/creating-custom-infotypes-likelihood#match-column-values). + // (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values). int32 window_before = 1; // Number of characters after the finding to consider. @@ -209,6 +215,7 @@ message CustomInfoType { // Message for specifying an adjustment to the likelihood of a finding as // part of a detection rule. message LikelihoodAdjustment { + // How the likelihood will be modified. oneof adjustment { // Set the likelihood of a finding to a fixed value. Likelihood fixed_likelihood = 1; @@ -243,19 +250,21 @@ message CustomInfoType { // For tabular data, if you want to modify the likelihood of an entire // column of findngs, see // [Hotword example: Set the match likelihood of a table column] - // (https://cloud.google.com/dlp/docs/creating-custom-infotypes-likelihood#match-column-values). + // (https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes-likelihood#match-column-values). Proximity proximity = 2; // Likelihood adjustment to apply to all matching findings. LikelihoodAdjustment likelihood_adjustment = 3; } + // Type of hotword rule. oneof type { // Hotword-based detection rule. HotwordRule hotword_rule = 1; } } + // Type of exclusion rule. enum ExclusionType { // A finding of this custom info type will not be excluded from results. EXCLUSION_TYPE_UNSPECIFIED = 0; @@ -278,6 +287,7 @@ message CustomInfoType { // the rule. Defaults to `VERY_LIKELY` if not specified. Likelihood likelihood = 6; + // Type of custom detector. oneof type { // A list of phrases to detect as a CustomInfoType. Dictionary dictionary = 2; @@ -365,8 +375,9 @@ enum FileType { // dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, // mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, // properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, - // shtml, shtm, xhtml, lhs, ics, ini, java, js, json, kix, kml, ocaml, md, - // txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml. + // shtml, shtm, xhtml, lhs, ics, ini, java, js, json, jsonl, kix, kml, + // ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, + // yml, yaml. TEXT_FILE = 2; // Included file extensions: @@ -498,6 +509,7 @@ message CloudStorageOptions { // in conjunction with bytes_limit_per_file. If not specified, scanning would // start from the top. enum SampleMethod { + // No sampling. SAMPLE_METHOD_UNSPECIFIED = 0; // Scan from the top (default). @@ -517,7 +529,7 @@ message CloudStorageOptions { // This field can't be set if de-identification is requested. For certain file // types, setting this field has no effect. For more information, see [Limits // on bytes scanned per - // file](https://cloud.google.com/dlp/docs/supported-file-types#max-byte-size-per-file). + // file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file). int64 bytes_limit_per_file = 4; // Max percentage of bytes to scan from a file. The rest are omitted. The @@ -527,7 +539,7 @@ message CloudStorageOptions { // This field can't be set if de-identification is requested. For certain file // types, setting this field has no effect. For more information, see [Limits // on bytes scanned per - // file](https://cloud.google.com/dlp/docs/supported-file-types#max-byte-size-per-file). + // file](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types#max-byte-size-per-file). int32 bytes_limit_per_file_percent = 8; // List of file type groups to include in the scan. @@ -539,6 +551,7 @@ message CloudStorageOptions { // Image inspection is restricted to 'global', 'us', 'asia', and 'europe'. repeated FileType file_types = 5; + // How to sample the data. SampleMethod sample_method = 6; // Limits the number of files to scan to this percentage of the input FileSet. @@ -556,8 +569,8 @@ message CloudStorageFileSet { // Message representing a single file or path in Cloud Storage. message CloudStoragePath { - // A url representing a file or path (no wildcards) in Cloud Storage. - // Example: gs://[BUCKET_NAME]/dictionary.txt + // A URL representing a file or path (no wildcards) in Cloud Storage. + // Example: `gs://[BUCKET_NAME]/dictionary.txt` string path = 1; } @@ -567,6 +580,7 @@ message BigQueryOptions { // in conjunction with either rows_limit or rows_limit_percent. If not // specified, rows are scanned in the order BigQuery reads them. enum SampleMethod { + // No sampling. SAMPLE_METHOD_UNSPECIFIED = 0; // Scan groups of rows in the order BigQuery provides (default). Multiple @@ -599,8 +613,14 @@ message BigQueryOptions { // 100 means no limit. Defaults to 0. Only one of rows_limit and // rows_limit_percent can be specified. Cannot be used in conjunction with // TimespanConfig. + // + // Caution: A [known + // issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-sampling) + // is causing the `rowsLimitPercent` field to behave unexpectedly. We + // recommend using `rowsLimit` instead. int32 rows_limit_percent = 6; + // How to sample the data. SampleMethod sample_method = 4; // References to fields excluded from scanning. This allows you to skip @@ -662,7 +682,8 @@ message StorageConfig { // Valid data types of the provided timestamp property are: `TIMESTAMP`. // // See the - // [known issue](https://cloud.google.com/dlp/docs/known-issues#bq-timespan) + // [known + // issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#bq-timespan) // related to this operation. FieldId timestamp_field = 3; @@ -671,9 +692,21 @@ message StorageConfig { // since the last time the JobTrigger executed. This will be based on the // time of the execution of the last run of the JobTrigger or the timespan // end_time used in the last run of the JobTrigger. + // + // **For BigQuery** + // + // Inspect jobs triggered by automatic population will scan data that is at + // least three hours old when the job starts. This is because streaming + // buffer rows are not read during inspection and reading up to the current + // timestamp will result in skipped rows. + // + // See the [known + // issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#recently-streamed-data) + // related to this operation. bool enable_auto_population_of_timespan_config = 4; } + // Type of storage system to inspect. oneof type { // Google Cloud Datastore options. DatastoreOptions datastore_options = 2; @@ -688,6 +721,7 @@ message StorageConfig { HybridOptions hybrid_options = 9; } + // Configuration of the timespan of the items to include in scanning. TimespanConfig timespan_config = 6; } @@ -719,6 +753,7 @@ message HybridOptions { // No more than 10 labels can be associated with a given finding. // // Examples: + // // * `"environment" : "production"` // * `"pipeline" : "etl"` map labels = 3; @@ -797,9 +832,12 @@ message Key { // Message for a unique key indicating a record that contains a finding. message RecordKey { + // Type of key oneof type { + // BigQuery key DatastoreKey datastore_key = 2; + // Datastore key BigQueryKey big_query_key = 3; } @@ -825,6 +863,16 @@ message BigQueryTable { string table_id = 3; } +// Message defining the location of a BigQuery table with the projectId inferred +// from the parent project. +message TableReference { + // Dataset ID of the table. + string dataset_id = 1; + + // Name of the table. + string table_id = 2; +} + // Message defining a field of a BigQuery table. message BigQueryField { // Source table of the field. diff --git a/third_party/googleapis/google/pubsub/v1/BUILD.bazel b/third_party/googleapis/google/pubsub/v1/BUILD.bazel index aa97eaa3b..ac819bc7a 100644 --- a/third_party/googleapis/google/pubsub/v1/BUILD.bazel +++ b/third_party/googleapis/google/pubsub/v1/BUILD.bazel @@ -65,7 +65,7 @@ java_gapic_library( gapic_yaml = "pubsub_gapic.yaml", grpc_service_config = "pubsub_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = ":pubsub_v1.yaml", + service_yaml = "pubsub_v1.yaml", test_deps = [ ":pubsub_java_grpc", "//google/iam/v1:iam_java_grpc", @@ -208,7 +208,7 @@ php_gapic_library( srcs = [":pubsub_proto_with_info"], gapic_yaml = "pubsub_gapic.yaml", grpc_service_config = "pubsub_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = ":pubsub_v1.yaml", transport = "grpc+rest", diff --git a/third_party/googleapis/google/pubsub/v1/pubsub.proto b/third_party/googleapis/google/pubsub/v1/pubsub.proto index 93e1e84a7..b5092087a 100644 --- a/third_party/googleapis/google/pubsub/v1/pubsub.proto +++ b/third_party/googleapis/google/pubsub/v1/pubsub.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -203,7 +203,7 @@ message IngestionDataSourceSettings { KINESIS_PERMISSION_DENIED = 2; // Permission denied encountered while publishing to the topic. This can - // happen due to Pub/Sub SA has not been granted the [appropriate publish + // happen if the Pub/Sub SA has not been granted the [appropriate publish // permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher) PUBLISH_PERMISSION_DENIED = 3; @@ -1141,6 +1141,14 @@ message BigQueryConfig { // write to in BigQuery. `use_table_schema` and `use_topic_schema` cannot be // enabled at the same time. bool use_table_schema = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The service account to use to write to BigQuery. The subscription + // creator or updater that specifies this field must have + // `iam.serviceAccounts.actAs` permission on the service account. If not + // specified, the Pub/Sub [service + // agent](https://cloud.google.com/iam/docs/service-agents), + // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. + string service_account_email = 7 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for a Cloud Storage subscription. @@ -1160,6 +1168,10 @@ message CloudStorageConfig { // data (for example, an ordering_key, if present) are added as entries in // the attributes map. bool write_metadata = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When true, the output Cloud Storage file will be serialized + // using the topic schema, if it exists. + bool use_topic_schema = 2 [(google.api.field_behavior) = OPTIONAL]; } // Possible states for a Cloud Storage subscription. @@ -1180,6 +1192,10 @@ message CloudStorageConfig { // Cannot write to the destination because enforce_in_transit is set to true // and the destination locations are not in the allowed regions. IN_TRANSIT_LOCATION_RESTRICTION = 4; + + // Cannot write to the Cloud Storage bucket due to an incompatibility + // between the topic schema and subscription settings. + SCHEMA_MISMATCH = 5; } // Required. User-provided name for the Cloud Storage bucket. @@ -1197,6 +1213,11 @@ message CloudStorageConfig { // Must not end in "/". string filename_suffix = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. User-provided format string specifying how to represent datetimes + // in Cloud Storage filenames. See the [datetime format + // guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names). + string filename_datetime_format = 10 [(google.api.field_behavior) = OPTIONAL]; + // Defaults to text format. oneof output_format { // Optional. If set, message data will be written to Cloud Storage in text @@ -1219,9 +1240,21 @@ message CloudStorageConfig { // be exceeded in cases where messages are larger than the limit. int64 max_bytes = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The maximum number of messages that can be written to a Cloud + // Storage file before a new file is created. Min 1000 messages. + int64 max_messages = 8 [(google.api.field_behavior) = OPTIONAL]; + // Output only. An output-only field that indicates whether or not the // subscription can receive messages. State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The service account to use to write to Cloud Storage. The + // subscription creator or updater that specifies this field must have + // `iam.serviceAccounts.actAs` permission on the service account. If not + // specified, the Pub/Sub + // [service agent](https://cloud.google.com/iam/docs/service-agents), + // service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. + string service_account_email = 11 [(google.api.field_behavior) = OPTIONAL]; } // A message and its corresponding acknowledgment ID. diff --git a/third_party/googleapis/google/pubsub/v1/schema.proto b/third_party/googleapis/google/pubsub/v1/schema.proto index bd17cf0f8..d52c678c5 100644 --- a/third_party/googleapis/google/pubsub/v1/schema.proto +++ b/third_party/googleapis/google/pubsub/v1/schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/rpc/code.proto b/third_party/googleapis/google/rpc/code.proto index 7c810af40..ba8f2bf9e 100644 --- a/third_party/googleapis/google/rpc/code.proto +++ b/third_party/googleapis/google/rpc/code.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/rpc/context/attribute_context.proto b/third_party/googleapis/google/rpc/context/attribute_context.proto index ef9242e40..d6871eb40 100644 --- a/third_party/googleapis/google/rpc/context/attribute_context.proto +++ b/third_party/googleapis/google/rpc/context/attribute_context.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/rpc/context/audit_context.proto b/third_party/googleapis/google/rpc/context/audit_context.proto index 7b8b7051f..74945cd46 100644 --- a/third_party/googleapis/google/rpc/context/audit_context.proto +++ b/third_party/googleapis/google/rpc/context/audit_context.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/rpc/error_details.proto b/third_party/googleapis/google/rpc/error_details.proto index c489e8314..c06afd480 100644 --- a/third_party/googleapis/google/rpc/error_details.proto +++ b/third_party/googleapis/google/rpc/error_details.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/rpc/http.proto b/third_party/googleapis/google/rpc/http.proto index 299a71fd0..11688ea41 100644 --- a/third_party/googleapis/google/rpc/http.proto +++ b/third_party/googleapis/google/rpc/http.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/rpc/status.proto b/third_party/googleapis/google/rpc/status.proto index 923e16938..90b70ddf9 100644 --- a/third_party/googleapis/google/rpc/status.proto +++ b/third_party/googleapis/google/rpc/status.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/search/partnerdataingestion/logging/v1/platformlog.proto b/third_party/googleapis/google/search/partnerdataingestion/logging/v1/platformlog.proto index 917a32495..064c1b237 100644 --- a/third_party/googleapis/google/search/partnerdataingestion/logging/v1/platformlog.proto +++ b/third_party/googleapis/google/search/partnerdataingestion/logging/v1/platformlog.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/shopping/css/v1/accounts.proto b/third_party/googleapis/google/shopping/css/v1/accounts.proto index 6c098ccec..0f35cd3fd 100644 --- a/third_party/googleapis/google/shopping/css/v1/accounts.proto +++ b/third_party/googleapis/google/shopping/css/v1/accounts.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/shopping/css/v1/accounts_labels.proto b/third_party/googleapis/google/shopping/css/v1/accounts_labels.proto index fb6549923..4d21fc3dc 100644 --- a/third_party/googleapis/google/shopping/css/v1/accounts_labels.proto +++ b/third_party/googleapis/google/shopping/css/v1/accounts_labels.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/shopping/css/v1/css_product_common.proto b/third_party/googleapis/google/shopping/css/v1/css_product_common.proto index 9df0eea25..574ba4519 100644 --- a/third_party/googleapis/google/shopping/css/v1/css_product_common.proto +++ b/third_party/googleapis/google/shopping/css/v1/css_product_common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -172,7 +172,7 @@ message Attributes { // Date on which the item should expire, as specified upon insertion, in // [ISO // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual - // expiration date in Google Shopping is exposed in `productstatuses` as + // expiration date is exposed in `productstatuses` as // [googleExpirationDate](https://support.google.com/merchants/answer/6324499) // and might be earlier if `expirationDate` is too far in the future. // Note: It may take 2+ days from the expiration date for the item to @@ -325,7 +325,7 @@ message CssProductStatus { // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. google.protobuf.Timestamp last_update_date = 6; - // Date on which the item expires in Google Shopping, in [ISO + // Date on which the item expires, in [ISO // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. google.protobuf.Timestamp google_expiration_date = 7; } diff --git a/third_party/googleapis/google/shopping/css/v1/css_product_inputs.proto b/third_party/googleapis/google/shopping/css/v1/css_product_inputs.proto index ad71c170c..fb70a9688 100644 --- a/third_party/googleapis/google/shopping/css/v1/css_product_inputs.proto +++ b/third_party/googleapis/google/shopping/css/v1/css_product_inputs.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/shopping/css/v1/css_products.proto b/third_party/googleapis/google/shopping/css/v1/css_products.proto index 7c0076dd4..ea7fc0dff 100644 --- a/third_party/googleapis/google/shopping/css/v1/css_products.proto +++ b/third_party/googleapis/google/shopping/css/v1/css_products.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/shopping/merchant/accounts/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/accounts/BUILD.bazel new file mode 100644 index 000000000..8e217aa96 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-accounts. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant accounts. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "accounts_ruby_wrapper", + srcs = ["//google/shopping/merchant/accounts/v1beta:accounts_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-accounts", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/accounts/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-accounts-ruby", + deps = [ + ":accounts_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/BUILD.bazel new file mode 100644 index 000000000..14db50388 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/BUILD.bazel @@ -0,0 +1,460 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "accounts_proto", + srcs = [ + "accessright.proto", + "account_tax.proto", + "accountissue.proto", + "accounts.proto", + "businessidentity.proto", + "businessinfo.proto", + "customerservice.proto", + "emailpreferences.proto", + "homepage.proto", + "online_return_policy.proto", + "phoneverificationstate.proto", + "programs.proto", + "regions.proto", + "shippingsettings.proto", + "tax_rule.proto", + "termsofservice.proto", + "termsofserviceagreementstate.proto", + "termsofservicekind.proto", + "user.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/shopping/type:type_proto", # Manual fix. Original :types_proto + "//google/type:date_proto", + "//google/type:datetime_proto", + "//google/type:interval_proto", + "//google/type:phone_number_proto", + "//google/type:postal_address_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "accounts_proto_with_info", + deps = [ + ":accounts_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "accounts_java_proto", + deps = [ + ":accounts_proto", + "//google/shopping/type:type_proto", # Added manually + ], +) + +java_grpc_library( + name = "accounts_java_grpc", + srcs = [":accounts_proto"], + deps = [":accounts_java_proto"], +) + +java_gapic_library( + name = "accounts_java_gapic", + srcs = [":accounts_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "accounts_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":accounts_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":accounts_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "accounts_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.accounts.v1beta.AccountIssueServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.AccountIssueServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.AccountTaxServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.AccountTaxServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.AccountsServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.AccountsServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.BusinessIdentityServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.BusinessIdentityServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.BusinessInfoServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.BusinessInfoServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.HomepageServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.HomepageServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.ProgramsServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.ProgramsServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.RegionsServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.RegionsServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.ShippingSettingsServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.ShippingSettingsServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.TermsOfServiceServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.TermsOfServiceServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.UserServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.UserServiceClientTest", + ], + runtime_deps = [":accounts_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-accounts-v1beta-java", + transport = "grpc+rest", + deps = [ + ":accounts_java_gapic", + ":accounts_java_grpc", + ":accounts_java_proto", + ":accounts_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "accounts_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb", + protos = [":accounts_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto + "//google/type:date_go_proto", + "//google/type:datetime_go_proto", + "//google/type:interval_go_proto", + "//google/type:phone_number_go_proto", + "//google/type:postaladdress_go_proto", + ], +) + +go_gapic_library( + name = "accounts_go_gapic", + srcs = [":accounts_proto_with_info"], + grpc_service_config = "accounts_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta;accounts", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":accounts_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-accounts-v1beta-go", + deps = [ + ":accounts_go_gapic", + ":accounts_go_gapic_srcjar-test.srcjar", + ":accounts_go_gapic_srcjar-metadata.srcjar", + ":accounts_go_gapic_srcjar-snippets.srcjar", + ":accounts_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_import", + "py_test", +) + +py_import( + name = "shopping_type", + srcs = [ + "//google/shopping/type:type_py_gapic", + ], +) + +py_gapic_library( + name = "accounts_py_gapic", + srcs = [":accounts_proto"], + grpc_service_config = "accounts_grpc_service_config.json", + opt_args = [ + "proto-plus-deps=google.shopping.type", # Added manually + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_accounts", + ], + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":shopping_type", # Added manually + ], +) + +py_test( + name = "accounts_py_gapic_test", + srcs = [ + "accounts_py_gapic_pytest.py", + "accounts_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":accounts_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-accounts-v1beta-py", + deps = [ + ":accounts_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "accounts_php_proto", + deps = [":accounts_proto"], +) + +php_gapic_library( + name = "accounts_php_gapic", + srcs = [":accounts_proto_with_info"], + grpc_service_config = "accounts_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":accounts_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-accounts-v1beta-php", + deps = [ + ":accounts_php_gapic", + ":accounts_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "accounts_nodejs_gapic", + package_name = "@google-shopping/accounts", + src = ":accounts_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "accounts_grpc_service_config.json", + package = "google.shopping.merchant.accounts.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-accounts-v1beta-nodejs", + deps = [ + ":accounts_nodejs_gapic", + ":accounts_proto", + "//google/shopping/type:type_proto", # Added manually + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "accounts_ruby_proto", + deps = [":accounts_proto"], +) + +ruby_grpc_library( + name = "accounts_ruby_grpc", + srcs = [":accounts_proto"], + deps = [":accounts_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "accounts_ruby_gapic", + srcs = [":accounts_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-extra-dependencies=google-shopping-type=>0.0+<2.a", + "ruby-cloud-gem-name=google-shopping-merchant-accounts-v1beta", + ], + grpc_service_config = "accounts_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":accounts_ruby_grpc", + ":accounts_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-merchant-accounts-v1beta-ruby", + deps = [ + ":accounts_ruby_gapic", + ":accounts_ruby_grpc", + ":accounts_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "accounts_csharp_proto", + extra_opts = [], + deps = [":accounts_proto"], +) + +csharp_grpc_library( + name = "accounts_csharp_grpc", + srcs = [":accounts_proto"], + deps = [":accounts_csharp_proto"], +) + +csharp_gapic_library( + name = "accounts_csharp_gapic", + srcs = [":accounts_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "accounts_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":accounts_csharp_grpc", + ":accounts_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-accounts-v1beta-csharp", + deps = [ + ":accounts_csharp_gapic", + ":accounts_csharp_grpc", + ":accounts_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "accounts_cc_proto", + deps = [":accounts_proto"], +) + +cc_grpc_library( + name = "accounts_cc_grpc", + srcs = [":accounts_proto"], + grpc_only = True, + deps = [":accounts_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accessright.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accessright.proto new file mode 100644 index 000000000..40d972f5c --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accessright.proto @@ -0,0 +1,37 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "AccessRightProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// The access right. +enum AccessRight { + // Default value. This value is unused. + ACCESS_RIGHT_UNSPECIFIED = 0; + + // Standard access rights. + STANDARD = 1; + + // Admin access rights. + ADMIN = 2; + + // Users with this right have access to performance and insights. + PERFORMANCE_REPORTING = 3; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/account_tax.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/account_tax.proto new file mode 100644 index 000000000..440ddcba3 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/account_tax.proto @@ -0,0 +1,143 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; +import "google/shopping/merchant/accounts/v1beta/tax_rule.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "AccountTaxProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Manages account level tax setting data. +// +// This API defines the following resource model: +// +// - [AccountTax][google.shopping.merchant.accounts.v1main.AccountTax] +service AccountTaxService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Returns the tax rules that match the conditions of GetAccountTaxRequest + rpc GetAccountTax(GetAccountTaxRequest) returns (AccountTax) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/accounttax/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the tax settings of the sub-accounts only in your + // Merchant Center account. + // This method can only be called on a multi-client account, otherwise it'll + // return an error. + rpc ListAccountTax(ListAccountTaxRequest) returns (ListAccountTaxResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/accounttax" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates the tax settings of the account. + rpc UpdateAccountTax(UpdateAccountTaxRequest) returns (AccountTax) { + option (google.api.http) = { + patch: "/accounts/v1beta/{account_tax.name=accounts/*/accounttax/*}" + body: "account_tax" + }; + option (google.api.method_signature) = "account_tax,update_mask"; + option (google.api.method_signature) = "account_tax"; + } +} + +// The tax settings of a merchant account. All methods require the admin role. +message AccountTax { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/AccountTax" + pattern: "accounts/{account}/accounttax/{tax}" + plural: "accountTaxes" + singular: "accountTax" + }; + + // Identifier. The name of the tax setting. + // Format: + // "{account_tax.name=accounts/{account}}" + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The ID of the account to which these account tax settings + // belong. + int64 account = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Tax rules. "Define the tax rules in each region. + // No tax will be presented if a region has no rule." + repeated TaxRule tax_rules = 3; +} + +// Request to get tax settings +message GetAccountTaxRequest { + // Required. The name from which tax settings will be retrieved + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/AccountTax" + } + ]; +} + +// Request to update the tax settings +message UpdateAccountTaxRequest { + // Required. The tax setting that will be updated + AccountTax account_tax = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated + google.protobuf.FieldMask update_mask = 2; +} + +// Request to list all sub-account tax settings only for the requesting merchant +// This method can only be called on a multi-client account, otherwise it'll +// return an error. +message ListAccountTaxRequest { + // Required. The parent, which owns this collection of account tax. + // Format: accounts/{account} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/AccountTax" + } + ]; + + // The maximum number of tax settings to return in the response, used for + // paging. + int32 page_size = 2; + + // The token returned by the previous request. + string page_token = 3; +} + +// Response to account tax list request +// This method can only be called on a multi-client account, otherwise it'll +// return an error. +message ListAccountTaxResponse { + // Page of accounttax settings + repeated AccountTax account_taxes = 1; + + // The token for the retrieval of the next page of account tax settings. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accountissue.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accountissue.proto new file mode 100644 index 000000000..a6329d76e --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accountissue.proto @@ -0,0 +1,156 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/shopping/type/types.proto"; +import "google/type/datetime.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "AccountIssueProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support `AccountIssueService` API. +service AccountIssueService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Lists all account issues of a Merchant Center account. + rpc ListAccountIssues(ListAccountIssuesRequest) + returns (ListAccountIssuesResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/issues" + }; + option (google.api.method_signature) = "parent"; + } +} + +// An +// [`AccountIssue`](https://support.google.com/merchants/answer/12153802?sjid=17798438912526418908-EU#account). +message AccountIssue { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/AccountIssue" + pattern: "accounts/{account}/issues/{issue}" + plural: "accountIssues" + singular: "accountIssue" + }; + + // The impact of the issue on a destination. + message ImpactedDestination { + // The impact of the issue on a region. + message Impact { + // The [CLDR region code](https://cldr.unicode.org/) where this issue + // applies. + string region_code = 1; + + // The severity of the issue on the destination and region. + Severity severity = 2; + } + + // The impacted reporting context. + optional google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 1; + + // The (negative) impact for various regions on the given destination. + repeated Impact impacts = 2; + } + + // All possible issue severities. + enum Severity { + // The severity is unknown. + SEVERITY_UNSPECIFIED = 0; + + // The issue causes offers to not serve. + CRITICAL = 1; + + // The issue might affect offers (in the future) or might be an + // indicator of issues with offers. + ERROR = 2; + + // The issue is a suggestion for improvement. + SUGGESTION = 3; + } + + // Identifier. The resource name of the account issue. + // Format: `accounts/{account}/issues/{id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The localized title of the issue. + string title = 2; + + // The overall severity of the issue. + Severity severity = 3; + + // The impact this issue has on various destinations. + repeated ImpactedDestination impacted_destinations = 4; + + // Further localized details about the issue. + string detail = 5; + + // Link to Merchant Center Help Center providing further information about the + // issue and how to fix it. + string documentation_uri = 6; +} + +// Request message for the `ListAccountIssues` method. +message ListAccountIssuesRequest { + // Required. The parent, which owns this collection of issues. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Optional. The maximum number of issues to return. The service may return + // fewer than this value. If unspecified, at most 50 users will be returned. + // The maximum value is 100; values above 100 will be coerced to 100 + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListAccountIssues` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAccountIssues` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The issues in the response will have human-readable fields in the + // given language. The format is [BCP-47](https://tools.ietf.org/html/bcp47), + // such as `en-US` or `sr-Latn`. If not value is provided, `en-US` will be + // used. + string language_code = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The [IANA](https://www.iana.org/time-zones) timezone used to + // localize times in human-readable fields. For example 'America/Los_Angeles'. + // If not set, 'America/Los_Angeles' will be used. + google.type.TimeZone time_zone = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ListAccountIssues` method. +message ListAccountIssuesResponse { + // The issues from the specified account. + repeated AccountIssue account_issues = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accounts.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accounts.proto new file mode 100644 index 000000000..c223bcdfe --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accounts.proto @@ -0,0 +1,297 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/shopping/merchant/accounts/v1beta/user.proto"; +import "google/type/datetime.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "AccountsProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support Accounts API. +service AccountsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves an account from your Merchant Center account. + // After inserting, updating, or deleting an account, it may take several + // minutes before changes take effect. + rpc GetAccount(GetAccountRequest) returns (Account) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a standalone Merchant Center account with additional configuration. + // Adds the user that makes the request as an admin for the new account. + rpc CreateAndConfigureAccount(CreateAndConfigureAccountRequest) + returns (Account) { + option (google.api.http) = { + post: "/accounts/v1beta/accounts:createAndConfigure" + body: "*" + }; + } + + // Deletes the specified account regardless of its type: standalone, MCA or + // sub-account. Deleting an MCA leads to the deletion of all of its + // sub-accounts. Executing this method requires admin access. + rpc DeleteAccount(DeleteAccountRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/accounts/v1beta/{name=accounts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an account regardless of its type: standalone, MCA or sub-account. + // Executing this method requires admin access. + rpc UpdateAccount(UpdateAccountRequest) returns (Account) { + option (google.api.http) = { + patch: "/accounts/v1beta/{account.name=accounts/*}" + body: "account" + }; + option (google.api.method_signature) = "account,update_mask"; + } + + // Lists accounts accessible to the calling user and matching the + // constraints of the request such as page size or filters. + // This is not just listing the sub-accounts of an MCA, but all accounts the + // calling user has access to including other MCAs, linked accounts, + // standalone accounts and so on. + rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/accounts" + }; + } + + // List all sub-accounts for a given multi client account. This is a + // convenience wrapper for the more powerful `ListAccounts` method. This + // method will produce the same results as calling `ListsAccounts` with the + // following filter: + // `relationship(providerId={parent} AND service(type="ACCOUNT_AGGREGATION"))` + rpc ListSubAccounts(ListSubAccountsRequest) + returns (ListSubAccountsResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{provider=accounts/*}:listSubaccounts" + }; + option (google.api.method_signature) = "provider"; + } +} + +// An account. +message Account { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" + }; + + // Identifier. The resource name of the account. + // Format: `accounts/{account}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The ID of the account. + int64 account_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. A human-readable name of the account. See + // [store name](https://support.google.com/merchants/answer/160556) and + // [business name](https://support.google.com/merchants/answer/12159159) for + // more information. + string account_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Whether this account contains adult content. + bool adult_content = 4; + + // Output only. Whether this is a test account. + bool test_account = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The time zone of the account. + // + // On writes, `time_zone` sets both the `reporting_time_zone` and the + // `display_time_zone`. + // + // For reads, `time_zone` always returns the `display_time_zone`. If + // `display_time_zone` doesn't exist for your account, `time_zone` is empty. + google.type.TimeZone time_zone = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The account's [BCP-47 language + // code](https://tools.ietf.org/html/bcp47), such as `en-US` or `sr-Latn`. + string language_code = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `GetAccount` method. +message GetAccountRequest { + // Required. The name of the account to retrieve. + // Format: `accounts/{account}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; +} + +// Request message for the `CreateAndConfigureAccount` method. +message CreateAndConfigureAccountRequest { + // Reference to a Terms of Service resource. + message AcceptTermsOfService { + // Required. The resource name of the terms of service version. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfService" + } + ]; + + // Required. Region code as defined by [CLDR](https://cldr.unicode.org/). + // This is either a country when the ToS applies specifically to that + // country or `001` when it applies globally. + string region_code = 3 [(google.api.field_behavior) = REQUIRED]; + } + + // Additional instructions to add account services during creation of the + // account. + message AddAccountService { + // Currently only supports + // [Multi-client](https://support.google.com/merchants/answer/188487) + // parent account type. + oneof service_type { + // The provider is an aggregator for the account. + google.protobuf.Empty account_aggregation = 2; + } + + // Optional. The provider of the service. + // Format: `accounts/{account}` + optional string provider = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + } + + // Required. The account to be created. + Account account = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Users to be added to the account. + repeated CreateUserRequest users = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Terms of Service (ToS) to be accepted immediately upon + // account creation. + optional AcceptTermsOfService accept_terms_of_service = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If specified, an account service between the account to be + // created and the provider account is initialized as part of the + // creation. + repeated AddAccountService service = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `DeleteAccount` method. +message DeleteAccountRequest { + // Required. The name of the account to delete. + // Format: `accounts/{account}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; +} + +// Request message for the `UpdateAccount` method. +message UpdateAccountRequest { + // Required. The new version of the account. + Account account = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `ListAccounts` method. +message ListAccountsRequest { + // Optional. The maximum number of accounts to return. The service may return + // fewer than this value. If unspecified, at most 250 accounts are returned. + // The maximum value is 500; values above 500 are coerced to 500. + int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListAccounts` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAccounts` must match + // the call that provided the page token. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Returns only accounts that match the + // [filter](/merchant/api/guides/accounts/filter). + // For more details, see the + // [filter syntax reference](/merchant/api/guides/accounts/filter-syntax). + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ListAccounts` method. +message ListAccountsResponse { + // The accounts matching the `ListAccountsRequest`. + repeated Account accounts = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for the `ListSubAccounts` method. +message ListSubAccountsRequest { + // Required. The parent account. + // Format: `accounts/{account}` + string provider = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Optional. The maximum number of accounts to return. The service may return + // fewer than this value. If unspecified, at most 250 accounts are returned. + // The maximum value is 500; values above 500 are coerced to 500. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListAccounts` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAccounts` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ListSubAccounts` method. +message ListSubAccountsResponse { + // The accounts for which the given parent account is an aggregator. + repeated Account accounts = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json new file mode 100644 index 000000000..7bdcc2d41 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json @@ -0,0 +1,30 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.shopping.merchant.accounts.v1beta.AccountsService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.ShippingSettingService" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + } + ] +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/businessidentity.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/businessidentity.proto new file mode 100644 index 000000000..c7f02c421 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/businessidentity.proto @@ -0,0 +1,160 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "BusinessIdentityProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support [business +// identity](https://support.google.com/merchants/answer/12564247) API. +service BusinessIdentityService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the business identity of an account. + rpc GetBusinessIdentity(GetBusinessIdentityRequest) + returns (BusinessIdentity) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/businessIdentity}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the business identity of an account. Executing this method requires + // admin access. + rpc UpdateBusinessIdentity(UpdateBusinessIdentityRequest) + returns (BusinessIdentity) { + option (google.api.http) = { + patch: "/accounts/v1beta/{business_identity.name=accounts/*/businessIdentity}" + body: "business_identity" + }; + option (google.api.method_signature) = "business_identity,update_mask"; + } +} + +// Collection of information related to the [identity of a +// business](https://support.google.com/merchants/answer/12564247). +message BusinessIdentity { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/BusinessIdentity" + pattern: "accounts/{account}/businessIdentity" + plural: "businessIdentities" + singular: "businessIdentity" + }; + + // All information related to an identity attribute. + message IdentityAttribute { + // All possible settings regarding the declaration of an identity. + enum IdentityDeclaration { + // Default value indicating that no selection was made. + IDENTITY_DECLARATION_UNSPECIFIED = 0; + + // Indicates that the account identifies with the attribute. + SELF_IDENTIFIES_AS = 1; + + // Indicates that the account does not identify with the attribute. + DOES_NOT_SELF_IDENTIFY_AS = 2; + } + + // Required. The declaration of identity for this attribute. + IdentityDeclaration identity_declaration = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // All possible settings regarding promotions related to the business + // identity. + enum PromotionsConsent { + // Default value indicating that no selection was made. + PROMOTIONS_CONSENT_UNSPECIFIED = 0; + + // Indicates that the account consented to having their business identity + // used for promotions. + PROMOTIONS_CONSENT_GIVEN = 1; + + // Indicates that the account did not consent to having their business + // identity used for promotions. + PROMOTIONS_CONSENT_DENIED = 2; + } + + // Identifier. The resource name of the business identity. + // Format: `accounts/{account}/businessIdentity` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Whether the identity attributes may be used for promotions. + PromotionsConsent promotions_consent = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the business identifies itself as being + // black-owned. This optional field will only be available for merchants with + // a business country set to `US`. It is also not applicable for marketplaces + // or marketplace sellers. + IdentityAttribute black_owned = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the business identifies itself as being + // women-owned. This optional field will only be available for merchants with + // a business country set to `US`. It is also not applicable for marketplaces + // or marketplace sellers. + IdentityAttribute women_owned = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the business identifies itself as being + // veteran-owned. This optional field will only be available for merchants + // with a business country set to `US`. It is also not applicable for + // marketplaces or marketplace sellers. + IdentityAttribute veteran_owned = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the business identifies itself as being + // latino-owned. This optional field will only be available for merchants with + // a business country set to `US`. It is also not applicable for marketplaces + // or marketplace sellers. + IdentityAttribute latino_owned = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the business identifies itself as a small + // business. This optional field will only be available for merchants with a + // business country set to `US`. It is also not applicable for marketplaces. + IdentityAttribute small_business = 7 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `GetBusinessIdentity` method. +message GetBusinessIdentityRequest { + // Required. The resource name of the business identity. + // Format: `accounts/{account}/businessIdentity` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/BusinessIdentity" + } + ]; +} + +// Request message for the `UpdateBusinessIdentity` method. +message UpdateBusinessIdentityRequest { + // Required. The new version of the business identity. + BusinessIdentity business_identity = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/businessinfo.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/businessinfo.proto new file mode 100644 index 000000000..f2cfed816 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/businessinfo.proto @@ -0,0 +1,108 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; +import "google/shopping/merchant/accounts/v1beta/customerservice.proto"; +import "google/shopping/merchant/accounts/v1beta/phoneverificationstate.proto"; +import "google/type/phone_number.proto"; +import "google/type/postal_address.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "BusinessInfoProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support business info API. +service BusinessInfoService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the business info of an account. + rpc GetBusinessInfo(GetBusinessInfoRequest) returns (BusinessInfo) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/businessInfo}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the business info of an account. Executing this method requires + // admin access. + rpc UpdateBusinessInfo(UpdateBusinessInfoRequest) returns (BusinessInfo) { + option (google.api.http) = { + patch: "/accounts/v1beta/{business_info.name=accounts/*/businessInfo}" + body: "business_info" + }; + option (google.api.method_signature) = "business_info,update_mask"; + } +} + +// Collection of information related to a business. +message BusinessInfo { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/BusinessInfo" + pattern: "accounts/{account}/businessInfo" + plural: "businessInfos" + singular: "businessInfo" + }; + + // Identifier. The resource name of the business info. + // Format: `accounts/{account}/businessInfo` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The address of the business. + optional google.type.PostalAddress address = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The phone number of the business. + optional google.type.PhoneNumber phone = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The phone verification state of the business. + optional PhoneVerificationState phone_verification_state = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The customer service of the business. + optional CustomerService customer_service = 5 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `GetBusinessInfo` method. +message GetBusinessInfoRequest { + // Required. The resource name of the business info. + // Format: `accounts/{account}/businessInfo` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/BusinessInfo" + } + ]; +} + +// Request message for the `UpdateBusinessInfo` method. +message UpdateBusinessInfoRequest { + // Required. The new version of the business info. + BusinessInfo business_info = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/customerservice.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/customerservice.proto new file mode 100644 index 000000000..a9cd9f42c --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/customerservice.proto @@ -0,0 +1,38 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/field_behavior.proto"; +import "google/type/phone_number.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "CustomerServiceProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Customer service information. +message CustomerService { + // Optional. The URI where customer service may be found. + optional string uri = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The email address where customer service may be reached. + optional string email = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The phone number where customer service may be called. + optional google.type.PhoneNumber phone = 3 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/emailpreferences.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/emailpreferences.proto new file mode 100644 index 000000000..24bd0ab24 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/emailpreferences.proto @@ -0,0 +1,128 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "EmailPreferencesProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support the `EmailPreferences` API. +// +// This service only permits retrieving and updating email preferences for the +// authenticated user. +service EmailPreferencesService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Returns the email preferences for a Merchant Center account user. + // + // Use the name=accounts/*/users/me/emailPreferences alias to get preferences + // for the authenticated user. + rpc GetEmailPreferences(GetEmailPreferencesRequest) + returns (EmailPreferences) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/users/*/emailPreferences}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the email preferences for a Merchant Center account user. MCA users + // should specify the MCA account rather than a sub-account of the MCA. + // + // Preferences which are not explicitly selected in the update mask will not + // be updated. + // + // It is invalid for updates to specify an UNCONFIRMED opt-in status value. + // + // Use the name=accounts/*/users/me/emailPreferences alias to update + // preferences + // for the authenticated user. + rpc UpdateEmailPreferences(UpdateEmailPreferencesRequest) + returns (EmailPreferences) { + option (google.api.http) = { + patch: "/accounts/v1beta/{email_preferences.name=accounts/*/users/*/emailPreferences}" + body: "email_preferences" + }; + option (google.api.method_signature) = "email_preferences,update_mask"; + } +} + +// The categories of notifications the user opted into / opted out of. The email +// preferences do not include mandatory announcements as users can't opt out of +// them. +message EmailPreferences { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/EmailPreferences" + pattern: "accounts/{account}/users/{email}/emailPreferences" + plural: "emailPreferences" + singular: "emailPreferences" + }; + + // Opt in state of the email preference. + enum OptInState { + // Opt-in status is not specified. + OPT_IN_STATE_UNSPECIFIED = 0; + + // User has opted out of receiving this type of email. + OPTED_OUT = 1; + + // User has opted in to receiving this type of email. + OPTED_IN = 2; + + // User has opted in to receiving this type of email and the confirmation + // email has been sent, but user has not yet confirmed the opt in (applies + // only to certain countries). + UNCONFIRMED = 3; + } + + // Identifier. The name of the EmailPreferences. The endpoint is only + // supported for the authenticated user. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Updates on new features, tips and best practices. + OptInState news_and_tips = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for GetEmailPreferences method. +message GetEmailPreferencesRequest { + // Required. The name of the `EmailPreferences` resource. + // Format: `accounts/{account}/users/{email}/emailPreferences` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/EmailPreferences" + } + ]; +} + +// Request message for UpdateEmailPreferences method. +message UpdateEmailPreferencesRequest { + // Required. Email Preferences to be updated. + EmailPreferences email_preferences = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/homepage.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/homepage.proto new file mode 100644 index 000000000..aedfa98cd --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/homepage.proto @@ -0,0 +1,147 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "HomepageProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support an API for a store's homepage. +service HomepageService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves a store's homepage. + rpc GetHomepage(GetHomepageRequest) returns (Homepage) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/homepage}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a store's homepage. Executing this method requires admin access. + rpc UpdateHomepage(UpdateHomepageRequest) returns (Homepage) { + option (google.api.http) = { + patch: "/accounts/v1beta/{homepage.name=accounts/*/homepage}" + body: "homepage" + }; + option (google.api.method_signature) = "homepage,update_mask"; + } + + // Claims a store's homepage. Executing this method requires admin access. + // + // If the homepage is already claimed, this will recheck the + // verification (unless the merchant is exempted from claiming, which also + // exempts from verification) and return a successful response. If ownership + // can no longer be verified, it will return an error, but it won't clear the + // claim. In case of failure, a canonical error message will be returned: + // * PERMISSION_DENIED: user doesn't have the necessary permissions on this + // MC account; + // * FAILED_PRECONDITION: + // - The account is not a Merchant Center account; + // - MC account doesn't have a homepage; + // - claiming failed (in this case the error message will contain more + // details). + rpc ClaimHomepage(ClaimHomepageRequest) returns (Homepage) { + option (google.api.http) = { + post: "/accounts/v1beta/{name=accounts/*/homepage}:claim" + body: "*" + }; + } + + // Unclaims a store's homepage. Executing this method requires admin access. + rpc UnclaimHomepage(UnclaimHomepageRequest) returns (Homepage) { + option (google.api.http) = { + post: "/accounts/v1beta/{name=accounts/*/homepage}:unclaim" + body: "*" + }; + } +} + +// A store's homepage. +message Homepage { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/Homepage" + pattern: "accounts/{account}/homepage" + plural: "homepages" + singular: "homepage" + }; + + // Identifier. The resource name of the store's homepage. + // Format: `accounts/{account}/homepage` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The URI (typically a URL) of the store's homepage. + optional string uri = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Whether the homepage is claimed. See + // https://support.google.com/merchants/answer/176793. + bool claimed = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the `GetHomepage` method. +message GetHomepageRequest { + // Required. The name of the homepage to retrieve. + // Format: `accounts/{account}/homepage` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Homepage" + } + ]; +} + +// Request message for the `UpdateHomepage` method. +message UpdateHomepageRequest { + // Required. The new version of the homepage. + Homepage homepage = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `ClaimHomepage` method. +message ClaimHomepageRequest { + // Required. The name of the homepage to claim. + // Format: `accounts/{account}/homepage` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Homepage" + } + ]; +} + +// Request message for the `UnclaimHomepage` method. +message UnclaimHomepageRequest { + // Required. The name of the homepage to unclaim. + // Format: `accounts/{account}/homepage` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Homepage" + } + ]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..de4220c44 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,145 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.accounts.v1beta.AccountIssueService +- name: google.shopping.merchant.accounts.v1beta.AccountTaxService +- name: google.shopping.merchant.accounts.v1beta.AccountsService +- name: google.shopping.merchant.accounts.v1beta.BusinessIdentityService +- name: google.shopping.merchant.accounts.v1beta.BusinessInfoService +- name: google.shopping.merchant.accounts.v1beta.EmailPreferencesService +- name: google.shopping.merchant.accounts.v1beta.HomepageService +- name: google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService +- name: google.shopping.merchant.accounts.v1beta.ProgramsService +- name: google.shopping.merchant.accounts.v1beta.RegionsService +- name: google.shopping.merchant.accounts.v1beta.ShippingSettingsService +- name: google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService +- name: google.shopping.merchant.accounts.v1beta.TermsOfServiceService +- name: google.shopping.merchant.accounts.v1beta.UserService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: google.shopping.merchant.accounts.v1beta.AccountIssueService.ListAccountIssues + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.AccountTaxService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.AccountsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.BusinessIdentityService.GetBusinessIdentity + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.BusinessIdentityService.UpdateBusinessIdentity + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.BusinessInfoService.GetBusinessInfo + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.BusinessInfoService.UpdateBusinessInfo + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.EmailPreferencesService.GetEmailPreferences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.EmailPreferencesService.UpdateEmailPreferences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.HomepageService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService.GetOnlineReturnPolicy + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService.ListOnlineReturnPolicies + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.ProgramsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.RegionsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.ShippingSettingsService.GetShippingSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.ShippingSettingsService.InsertShippingSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService.GetTermsOfServiceAgreementState + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService.RetrieveForApplicationTermsOfServiceAgreementState + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.TermsOfServiceService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.accounts.v1beta.UserService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.accounts.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/online_return_policy.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/online_return_policy.proto new file mode 100644 index 000000000..52c7168b9 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/online_return_policy.proto @@ -0,0 +1,264 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "OnlineReturnPolicyProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// The service facilitates the management of a merchant's remorse return policy +// configuration, encompassing return policies for both ads and free listings +// ## programs. This API defines the following resource model: +// +// [OnlineReturnPolicy][google.shopping.merchant.accounts.v1.OnlineReturnPolicy] +service OnlineReturnPolicyService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Gets an existing return policy. + rpc GetOnlineReturnPolicy(GetOnlineReturnPolicyRequest) + returns (OnlineReturnPolicy) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/onlineReturnPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all existing return policies. + rpc ListOnlineReturnPolicies(ListOnlineReturnPoliciesRequest) + returns (ListOnlineReturnPoliciesResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/onlineReturnPolicies" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for the `GetOnlineReturnPolicy` method. +message GetOnlineReturnPolicyRequest { + // Required. The name of the return policy to retrieve. + // Format: `accounts/{account}/onlineReturnPolicies/{return_policy}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/OnlineReturnPolicy" + } + ]; +} + +// Request message for the `ListOnlineReturnPolicies` method. +message ListOnlineReturnPoliciesRequest { + // Required. The merchant account for which to list return policies. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/OnlineReturnPolicy" + } + ]; + + // Optional. The maximum number of `OnlineReturnPolicy` resources to return. + // The service returns fewer than this value if the number of return policies + // for the given merchant is less that than the `pageSize`. The default value + // is 10. The maximum value is 100; If a value higher than the maximum is + // specified, then the `pageSize` will default to the maximum + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListOnlineReturnPolicies` + // call. Provide the page token to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListOnlineReturnPolicies` must match the call that provided the page + // token. The token returned as + // [nextPageToken][google.shopping.merchant.accounts.v1beta.ListOnlineReturnPoliciesResponse.next_page_token] + // in the response to the previous request. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ListOnlineReturnPolicies` method. +message ListOnlineReturnPoliciesResponse { + // The retrieved return policies. + repeated OnlineReturnPolicy online_return_policies = 1; + + // A token, which can be sent as `pageToken` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// [Online return policy](https://support.google.com/merchants/answer/10220642) +// object. This is currently used to represent return policies for ads and free +// listings programs. +message OnlineReturnPolicy { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/OnlineReturnPolicy" + pattern: "accounts/{account}/onlineReturnPolicies/{return_policy}" + plural: "onlineReturnPolicies" + singular: "onlineReturnPolicy" + }; + + // The return shipping fee. This can either be a fixed fee or a boolean to + // indicate that the customer pays the actual shipping cost. + message ReturnShippingFee { + // Return shipping fee types. + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // The return shipping fee is a fixed value. + FIXED = 1; + + // Customers will pay the actual return shipping fee. + CUSTOMER_PAYING_ACTUAL_FEE = 2; + } + + // Type of return shipping fee. + Type type = 1; + + // Fixed return shipping fee amount. This value is only applicable when type + // is `FIXED`. We will treat the return shipping fee as free if type is + // `FIXED` and this value is not set. + google.shopping.type.Price fixed_fee = 2; + } + + // The restocking fee. This can be a flat fee or a micro percent. + message RestockingFee { + oneof type { + // Fixed restocking fee. + google.shopping.type.Price fixed_fee = 1; + + // Percent of total price in micros. 15,000,000 means 15% of the total + // price would be charged. + int32 micro_percent = 2; + } + } + + // The available policies. + message Policy { + // Return policy types. + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // The number of days within which a return is valid after delivery. + NUMBER_OF_DAYS_AFTER_DELIVERY = 1; + + // No returns. + NO_RETURNS = 2; + + // Life time returns. + LIFETIME_RETURNS = 3; + } + + // Policy type. + Type type = 1; + + // The number of days items can be returned after delivery, where one day + // is defined as 24 hours after the delivery timestamp. Required for + // `NUMBER_OF_DAYS_AFTER_DELIVERY` returns. + int64 days = 2; + } + + // The available return methods. + enum ReturnMethod { + // Default value. This value is unused. + RETURN_METHOD_UNSPECIFIED = 0; + + // Return by mail. + BY_MAIL = 1; + + // Return in store. + IN_STORE = 2; + + // Return at a kiosk. + AT_A_KIOSK = 3; + } + + // The available item conditions. + enum ItemCondition { + // Default value. This value is unused. + ITEM_CONDITION_UNSPECIFIED = 0; + + // New. + NEW = 1; + + // Used. + USED = 2; + } + + // Identifier. The name of the `OnlineReturnPolicy` resource. + // Format: `accounts/{account}/onlineReturnPolicies/{return_policy}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Return policy ID generated by Google. + string return_policy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // This field represents the unique user-defined label of the return policy. + // It is important to note that the same label cannot be used in different + // return policies for the same country. Unless a product specifies a specific + // label attribute, policies will be automatically labeled as 'default'. + // To assign a custom return policy to certain product groups, follow the + // instructions provided in the [Return policy label] + // (https://support.google.com/merchants/answer/9445425). + // The label can contain up to 50 characters. + string label = 3; + + // The countries of sale where the return policy applies. The values + // must be a valid 2 letter ISO 3166 code. + repeated string countries = 4; + + // The return policy. + Policy policy = 5; + + // The restocking fee that applies to all return reason categories. This would + // be treated as a free restocking fee if the value is not set. + RestockingFee restocking_fee = 6; + + // The return methods of how customers can return an item. This value is + // required to not be empty unless the type of return policy is noReturns. + repeated ReturnMethod return_methods = 7; + + // The item conditions accepted for returns must not be empty unless the type + // of return policy is 'noReturns'. + repeated ItemCondition item_conditions = 8; + + // The return shipping fee. Should be set only when customer need to download + // and print the return label. + ReturnShippingFee return_shipping_fee = 9; + + // The return policy uri. This can used by Google to do a sanity check for the + // policy. It must be a valid URL. + string return_policy_uri = 10; + + // This field specifies if merchant only accepts defective products for + // returns, and this field is required. + optional bool accept_defective_only = 11; + + // The field specifies the number of days it takes for merchants to process + // refunds, field is optional. + optional int32 process_refund_days = 12; + + // This field specifies if merchant allows customers to exchange products, + // this field is required. + optional bool accept_exchange = 13; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/phoneverificationstate.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/phoneverificationstate.proto new file mode 100644 index 000000000..1a55d08ef --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/phoneverificationstate.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "PhoneVerificationStateProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// The phone verification state. +enum PhoneVerificationState { + // Default value. This value is unused. + PHONE_VERIFICATION_STATE_UNSPECIFIED = 0; + + // The phone is verified. + PHONE_VERIFICATION_STATE_VERIFIED = 1; + + // The phone is unverified + PHONE_VERIFICATION_STATE_UNVERIFIED = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/programs.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/programs.proto new file mode 100644 index 000000000..e0f5dcd87 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/programs.proto @@ -0,0 +1,220 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "ProgramsProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service for program management. +// +// Programs provide a mechanism for adding functionality to merchant accounts. A +// typical example of this is the [Free product +// listings](https://support.google.com/merchants/topic/9240261?ref_topic=7257954,7259405,&sjid=796648681813264022-EU) +// program, which enables products from a merchant's store to be shown across +// Google for free. +// +// This service exposes methods to retrieve a merchant's +// participation in all available programs, in addition to methods for +// explicitly enabling or disabling participation in each program. +service ProgramsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the specified program for the account. + rpc GetProgram(GetProgramRequest) returns (Program) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/programs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Retrieves all programs for the account. + rpc ListPrograms(ListProgramsRequest) returns (ListProgramsResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/programs" + }; + option (google.api.method_signature) = "parent"; + } + + // Enable participation in the specified program for the account. Executing + // this method requires admin access. + rpc EnableProgram(EnableProgramRequest) returns (Program) { + option (google.api.http) = { + post: "/accounts/v1beta/{name=accounts/*/programs/*}:enable" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Disable participation in the specified program for the account. Executing + // this method requires admin access. + rpc DisableProgram(DisableProgramRequest) returns (Program) { + option (google.api.http) = { + post: "/accounts/v1beta/{name=accounts/*/programs/*}:disable" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// Defines participation in a given program for the specified account. +// +// Programs provide a mechanism for adding functionality to merchant accounts. A +// typical example of this is the [Free product +// listings](https://support.google.com/merchants/topic/9240261?ref_topic=7257954,7259405,&sjid=796648681813264022-EU) +// program, which enables products from a merchant's store to be shown across +// Google for free. +message Program { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/Program" + pattern: "accounts/{account}/programs/{program}" + plural: "programs" + singular: "program" + }; + + // Defines a requirement specified for participation in the program. + message Requirement { + // Output only. Name of the requirement. + string title = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of a help page describing the requirement. + string documentation_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The regions that are currently affected by this requirement + // not being met. + // + // Region codes are defined by [CLDR](https://cldr.unicode.org/). This is + // either a country where the program applies specifically to that country + // or `001` when the program applies globally. + repeated string affected_region_codes = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Possible program participation states for the account. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The account is not eligible to participate in the program. + NOT_ELIGIBLE = 1; + + // The account is eligible to participate in the program. + ELIGIBLE = 2; + + // The program is enabled for the account. + ENABLED = 3; + } + + // Identifier. The resource name of the program. + // Format: `accounts/{account}/programs/{program}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The URL of a Merchant Center help page describing the program. + string documentation_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The participation state of the account in the program. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The regions in which the account is actively participating in + // the program. Active regions are defined as those where all program + // requirements affecting the regions have been met. + // + // Region codes are defined by [CLDR](https://cldr.unicode.org/). This is + // either a country where the program applies specifically to that country or + // `001` when the program applies globally. + repeated string active_region_codes = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The requirements that the account has not yet satisfied that + // are affecting participation in the program. + repeated Requirement unmet_requirements = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the GetProgram method. +message GetProgramRequest { + // Required. The name of the program to retrieve. + // Format: `accounts/{account}/programs/{program}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Program" + } + ]; +} + +// Request message for the ListPrograms method. +message ListProgramsRequest { + // Required. The name of the account for which to retrieve all programs. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/Program" + } + ]; + + // Optional. The maximum number of programs to return in a single response. If + // unspecified (or 0), a default size of 1000 is used. The maximum value is + // 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A continuation token, received from a previous `ListPrograms` + // call. Provide this to retrieve the next page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the ListPrograms method. +message ListProgramsResponse { + // The programs for the given account. + repeated Program programs = 1; + + // A token that can be sent as `page_token` to retrieve the next page. If this + // field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for the EnableProgram method. +message EnableProgramRequest { + // Required. The name of the program for which to enable participation for the + // given account. Format: `accounts/{account}/programs/{program}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Program" + } + ]; +} + +// Request message for the DisableProgram method. +message DisableProgramRequest { + // Required. The name of the program for which to disable participation for + // the given account. Format: `accounts/{account}/programs/{program}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Program" + } + ]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/regions.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/regions.proto new file mode 100644 index 000000000..56a0e5b64 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/regions.proto @@ -0,0 +1,254 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "RegionsProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Manages regions configuration. +// +// This API defines the following resource model: +// +// - [Region][google.shopping.merchant.accounts.v1main.Region] +service RegionsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves a region defined in your Merchant Center account. + rpc GetRegion(GetRegionRequest) returns (Region) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/regions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a region definition in your Merchant Center account. Executing this + // method requires admin access. + rpc CreateRegion(CreateRegionRequest) returns (Region) { + option (google.api.http) = { + post: "/accounts/v1beta/{parent=accounts/*}/regions" + body: "region" + }; + option (google.api.method_signature) = "parent,region,region_id"; + } + + // Updates a region definition in your Merchant Center account. Executing this + // method requires admin access. + rpc UpdateRegion(UpdateRegionRequest) returns (Region) { + option (google.api.http) = { + patch: "/accounts/v1beta/{region.name=accounts/*/regions/*}" + body: "region" + }; + option (google.api.method_signature) = "region,update_mask"; + } + + // Deletes a region definition from your Merchant Center account. Executing + // this method requires admin access. + rpc DeleteRegion(DeleteRegionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/accounts/v1beta/{name=accounts/*/regions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the regions in your Merchant Center account. + rpc ListRegions(ListRegionsRequest) returns (ListRegionsResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/regions" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for the `GetRegion` method. +message GetRegionRequest { + // Required. The name of the region to retrieve. + // Format: `accounts/{account}/regions/{region}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Region" + } + ]; +} + +// Request message for the `CreateRegion` method. +message CreateRegionRequest { + // Required. The account to create a region for. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Required. The identifier for the region, unique over all regions of the + // same account. + string region_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The region to create. + Region region = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `UpdateRegion` method. +message UpdateRegionRequest { + // Required. The updated region. + Region region = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The comma-separated field mask indicating the fields to update. + // Example: + // `"displayName,postalCodeArea.regionCode"`. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `DeleteRegion` method. +message DeleteRegionRequest { + // Required. The name of the region to delete. + // Format: `accounts/{account}/regions/{region}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Region" + } + ]; +} + +// Request message for the `ListRegions` method. +message ListRegionsRequest { + // Required. The account to list regions for. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Optional. The maximum number of regions to return. The service may return + // fewer than this value. + // If unspecified, at most 50 regions will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListRegions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListRegions` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ListRegions` method. +message ListRegionsResponse { + // The regions from the specified merchant. + repeated Region regions = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Represents a geographic region that you can use as a target with both the +// `RegionalInventory` and `ShippingSettings` services. You can define regions +// as collections of either postal codes or, in some countries, using predefined +// geotargets. For more information, see [Set up regions +// ](https://support.google.com/merchants/answer/7410946#zippy=%2Ccreate-a-new-region) +// for more information. +message Region { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/Region" + pattern: "accounts/{account}/regions/{region}" + plural: "regions" + singular: "region" + }; + + // A list of postal codes that defines the region area. + // Note: All regions defined using postal codes are accessible through the + // account's `ShippingSettings.postalCodeGroups` resource. + message PostalCodeArea { + // A range of postal codes that defines the region area. + message PostalCodeRange { + // Required. A postal code or a pattern of the form prefix* denoting the + // inclusive lower bound of the range defining the area. Examples values: + // `94108`, `9410*`, `9*`. + string begin = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A postal code or a pattern of the form `prefix*` denoting the + // inclusive upper bound of the range defining the area. It must have the + // same length as postalCodeRangeBegin: if postalCodeRangeBegin is a + // postal code then postalCodeRangeEnd must be a postal code too; if + // postalCodeRangeBegin is a pattern then postalCodeRangeEnd must be a + // pattern with the same prefix length. Optional: if not set, then the + // area is defined as being all the postal codes matching + // postalCodeRangeBegin. + string end = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. [CLDR territory + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) + // or the country the postal code group applies to. + string region_code = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A range of postal codes. + repeated PostalCodeRange postal_codes = 2 + [(google.api.field_behavior) = REQUIRED]; + } + + // A list of geotargets that defines the region area. + message GeoTargetArea { + // Required. A non-empty list of [location + // IDs](https://developers.google.com/adwords/api/docs/appendix/geotargeting). + // They must all be of the same location type (for example, state). + repeated int64 geotarget_criteria_ids = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // Identifier. The resource name of the region. + // Format: `accounts/{account}/regions/{region}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The display name of the region. + optional string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of postal codes that defines the region area. + PostalCodeArea postal_code_area = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of geotargets that defines the region area. + GeoTargetArea geotarget_area = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Indicates if the region is eligible for use in the Regional + // Inventory configuration. + google.protobuf.BoolValue regional_inventory_eligible = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates if the region is eligible for use in the Shipping + // Services configuration. + google.protobuf.BoolValue shipping_eligible = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/shippingsettings.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/shippingsettings.proto new file mode 100644 index 000000000..73b8a3dd6 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/shippingsettings.proto @@ -0,0 +1,715 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "ShippingSettingsProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to get method call shipping setting information per Merchant API +// method. +service ShippingSettingsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieve shipping setting information. + rpc GetShippingSettings(GetShippingSettingsRequest) + returns (ShippingSettings) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/shippingSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Replace the shipping setting of a merchant with the request shipping + // setting. Executing this method requires admin access. + rpc InsertShippingSettings(InsertShippingSettingsRequest) + returns (ShippingSettings) { + option (google.api.http) = { + post: "/accounts/v1beta/{parent=accounts/*}/shippingSettings:insert" + body: "shipping_setting" + }; + } +} + +// The merchant account's [shipping +// setting]((https://support.google.com/merchants/answer/6069284). +message ShippingSettings { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/ShippingSettings" + pattern: "accounts/{account}/shippingSettings" + plural: "shippingSettings" + singular: "shippingSettings" + }; + + // Identifier. The resource name of the shipping setting. + // Format: `accounts/{account}/shippingSetting` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The target account's list of services. + repeated Service services = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of warehouses which can be referred to in `services`. + repeated Warehouse warehouses = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. This field is used for avoid async issue. Make sure shipping + // setting data + // didn't change between get call and insert call. The user should do + // following steps: + // + // 1. Set etag field as empty string for initial shipping setting creation. + // + // 2. After initial creation, call get method to obtain an etag and current + // shipping setting data before call insert. + // + // 3. Modify to wanted shipping setting information. + // + // 4. Call insert method with the wanted shipping setting information with + // the etag obtained from step 2. + // + // 5. If shipping setting data changed between step 2 and step 4. Insert + // request will fail because the etag changes every time the shipping setting + // data changes. User should repeate step 2-4 with the new etag. + string etag = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Shipping service. +message Service { + // A list of stores your products are delivered from. + // This is only valid for the local delivery shipment type. + message StoreConfig { + // Configs related to local delivery ends for the day. + message CutoffConfig { + // Time that local delivery ends for the day. + message LocalCutoffTime { + // Hour local delivery orders must be placed by to process the same + // day. + optional int64 hour = 1; + + // Minute local delivery orders must be placed by to process the same + // day. + optional int64 minute = 2; + } + + // Time that local delivery ends for the day. + optional LocalCutoffTime local_cutoff_time = 1; + + // Only valid with local delivery fulfillment. Represents cutoff time + // as the number of hours before store closing. Mutually exclusive + // with `local_cutoff_time`. + optional int64 store_close_offset_hours = 2; + + // Merchants can opt-out of showing n+1 day local delivery when they have + // a shipping service configured to n day local delivery. For example, if + // the shipping service defines same-day delivery, and it's past the + // cut-off, setting this field to `true` results in the calculated + // shipping service rate returning `NO_DELIVERY_POST_CUTOFF`. In the + // same example, setting this field to `false` results in the calculated + // shipping time being one day. This is only for local delivery. + optional bool no_delivery_post_cutoff = 3; + } + + // Indicates whether all stores, or selected stores, listed by the + // merchant provide local delivery. + enum StoreServiceType { + // Did not specify store service type. + STORE_SERVICE_TYPE_UNSPECIFIED = 0; + + // Indicates whether all stores, current and future, listed by this + // merchant provide local delivery. + ALL_STORES = 1; + + // Indicates that only the stores listed in `store_codes` are eligible + // for local delivery. + SELECTED_STORES = 2; + } + + // Indicates whether all stores, or selected stores, listed by this + // merchant provide local delivery. + optional StoreServiceType store_service_type = 1; + + // Optional. A list of store codes that provide local delivery. + // If empty, then `all_stores` must be true. + repeated string store_codes = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Configs related to local delivery ends for the day. + optional CutoffConfig cutoff_config = 3; + + // Maximum delivery radius. + // This is only required for the local delivery shipment type. + optional Distance service_radius = 4; + } + + // [Loyalty program](https://support.google.com/merchants/answer/12922446) + // provided by a merchant. + message LoyaltyProgram { + // Subset of a merchants loyalty program. + message LoyaltyProgramTiers { + // The tier label [tier_label] sub-attribute differentiates offer level + // benefits between each tier. This value is also set in your program + // settings in Merchant Center, and is required for data source changes + // even if your loyalty program only has 1 tier. + optional string tier_label = 1; + } + + // This is the loyalty program label set in your loyalty program settings in + // Merchant Center. This sub-attribute allows Google to map your loyalty + // program to eligible offers. + optional string program_label = 1; + + // Optional. Loyalty program tier of this shipping service. + repeated LoyaltyProgramTiers loyalty_program_tiers = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Shipment type of shipping service. + enum ShipmentType { + // This service did not specify shipment type. + SHIPMENT_TYPE_UNSPECIFIED = 0; + + // This service ships orders to an address chosen by the customer. + DELIVERY = 1; + + // This service ships orders to an address chosen by the customer. + // The order is shipped from a local store near by. + LOCAL_DELIVERY = 2; + + // This service ships orders to an address chosen by the customer. + // The order is shipped from a collection point. + COLLECTION_POINT = 3; + } + + // Required. Free-form name of the service. Must be unique within target + // account. + optional string service_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A boolean exposing the active status of the shipping service. + optional bool active = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The CLDR territory code of the countries to which the service + // applies. + repeated string delivery_countries = 3 + [(google.api.field_behavior) = REQUIRED]; + + // The CLDR code of the currency to which this service applies. Must match + // that of the prices in rate groups. + optional string currency_code = 4; + + // Required. Time spent in various aspects from order to the delivery of the + // product. + optional DeliveryTime delivery_time = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Shipping rate group definitions. Only the last one is allowed to + // have an empty `applicable_shipping_labels`, which means "everything else". + // The other `applicable_shipping_labels` must not overlap. + repeated RateGroup rate_groups = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Type of locations this service ships orders to. + optional ShipmentType shipment_type = 7; + + // Minimum order value for this service. If set, indicates that customers + // will have to spend at least this amount. + // All prices within a service must have the same currency. + // Cannot be set together with minimum_order_value_table. + optional google.shopping.type.Price minimum_order_value = 8; + + // Table of per store minimum order values for the pickup fulfillment type. + // Cannot be set together with minimum_order_value. + optional MinimumOrderValueTable minimum_order_value_table = 9; + + // A list of stores your products are delivered from. + // This is only valid for the local delivery shipment type. + optional StoreConfig store_config = 10; + + // Optional. Loyalty programs that this shipping service is limited to. + repeated LoyaltyProgram loyalty_programs = 11 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Maximum delivery radius. +// This is only required for the local delivery shipment type. +message Distance { + // Unit can differ based on country, it is parameterized to include miles + // and kilometers. + enum Unit { + // Unit unspecified + UNIT_UNSPECIFIED = 0; + + // Unit in miles + MILES = 1; + + // Unit in kilometers + KILOMETERS = 2; + } + + // Integer value of distance. + optional int64 value = 1; + + // Unit can differ based on country, it is parameterized to include miles + // and kilometers. + optional Unit unit = 2; +} + +// A fulfillment warehouse, which stores and handles inventory. +// Next tag: 7 +message Warehouse { + // Required. The name of the warehouse. Must be unique within account. + optional string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Shipping address of the warehouse. + optional Address shipping_address = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The latest time of day that an order can be accepted and begin + // processing. Later orders will be processed in the next day. The time is + // based on the warehouse postal code. + optional WarehouseCutoffTime cutoff_time = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The number of days it takes for this warehouse to pack up and + // ship an item. This is on the warehouse level, but can be overridden on the + // offer level based on the attributes of an item. + optional int64 handling_days = 4 [(google.api.field_behavior) = REQUIRED]; + + // Business days of the warehouse. + // If not set, will be Monday to Friday by default. + optional BusinessDayConfig business_day_config = 5; +} + +// The latest time of day that an order can be accepted and begin processing. +// Later orders will be processed in the next day. The time is based on the +// warehouse postal code. +message WarehouseCutoffTime { + // Required. Hour of the cutoff time until which an order has to be placed to + // be processed in the same day by the warehouse. Hour is based on the + // timezone of warehouse. + optional int32 hour = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Minute of the cutoff time until which an order has to be placed + // to be processed in the same day by the warehouse. Minute is based on the + // timezone of warehouse. + optional int32 minute = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Shipping address of the warehouse. +message Address { + // Street-level part of the address. For example: `111w 31st Street`. + optional string street_address = 1; + + // Required. City, town or commune. May also include dependent localities or + // sublocalities (For example neighborhoods or suburbs). + optional string city = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Top-level administrative subdivision of the country. For example, + // a state like California ("CA") or a province like Quebec ("QC"). + optional string administrative_area = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Postal code or ZIP (For example "94043"). + optional string postal_code = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. [CLDR country + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) + // (For example "US"). + optional string region_code = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Time spent in various aspects from order to the delivery of the product. +message DeliveryTime { + // Minimum number of business days that is spent in transit. 0 means same + // day delivery, 1 means next day delivery. + // Either `min_transit_days`, `max_transit_days` or + // `transit_time_table` must be set, but not both. + optional int32 min_transit_days = 1; + + // Maximum number of business days that is spent in transit. 0 means same + // day delivery, 1 means next day delivery. Must be greater than or equal + // to `min_transit_days`. + optional int32 max_transit_days = 2; + + // Business days cutoff time definition. + // If not configured the cutoff time will be defaulted to 8AM PST. + optional CutoffTime cutoff_time = 3; + + // Minimum number of business days spent before an order is shipped. + // 0 means same day shipped, 1 means next day shipped. + optional int32 min_handling_days = 4; + + // Maximum number of business days spent before an order is shipped. + // 0 means same day shipped, 1 means next day shipped. + // Must be greater than or equal to `min_handling_days`. + optional int32 max_handling_days = 5; + + // Transit time table, number of business days spent in transit based on row + // and column dimensions. Either `min_transit_days`, `max_transit_days` or + // `transit_time_table` can be set, but not both. + optional TransitTable transit_time_table = 6; + + // The business days during which orders can be handled. + // If not provided, Monday to Friday business days will be assumed. + optional BusinessDayConfig handling_business_day_config = 7; + + // The business days during which orders can be in-transit. + // If not provided, Monday to Friday business days will be assumed. + optional BusinessDayConfig transit_business_day_config = 8; + + // Optional. Indicates that the delivery time should be calculated per + // warehouse (shipping origin location) based on the settings of the selected + // carrier. When set, no other transit time related field in [delivery + // time][[google.shopping.content.bundles.ShippingSetting.DeliveryTime] should + // be set. + repeated WarehouseBasedDeliveryTime warehouse_based_delivery_times = 9 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Business days cutoff time definition. +message CutoffTime { + // Required. Hour of the cutoff time until which an order has to be placed to + // be processed in the same day. + optional int32 hour = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Minute of the cutoff time until which an order has to be placed + // to be processed in the same day. + optional int32 minute = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. [Timezone + // identifier](https://developers.google.com/adwords/api/docs/appendix/codes-formats#timezone-ids) + // For example "Europe/Zurich". + optional string time_zone = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Business days of the warehouse. +message BusinessDayConfig { + enum Weekday { + WEEKDAY_UNSPECIFIED = 0; + + MONDAY = 1; + + TUESDAY = 2; + + WEDNESDAY = 3; + + THURSDAY = 4; + + FRIDAY = 5; + + SATURDAY = 6; + + SUNDAY = 7; + } + + // Required. Regular business days. + // May not be empty. + repeated Weekday business_days = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Indicates that the delivery time should be calculated per warehouse +// (shipping origin location) based on the settings of the selected carrier. +// When set, no other transit time related field in `delivery_time` should be +// set. +message WarehouseBasedDeliveryTime { + // Required. Carrier, such as `"UPS"` or `"Fedex"`. + optional string carrier = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Carrier service, such as `"ground"` or `"2 days"`. The name of + // the service must be in the eddSupportedServices list. + optional string carrier_service = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Warehouse name. This should match + // [warehouse][ShippingSetting.warehouses.name] + optional string warehouse = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Shipping rate group definitions. Only the last one is allowed to have an +// empty `applicable_shipping_labels`, which means +// "everything else". The other `applicable_shipping_labels` must +// not overlap. +message RateGroup { + // Required. A list of [shipping + // labels](https://support.google.com/merchants/answer/6324504) defining the + // products to which this rate group applies to. This is a disjunction: only + // one of the labels has to match for the rate group to apply. May only be + // empty for the last rate group of a service. + repeated string applicable_shipping_labels = 1 + [(google.api.field_behavior) = REQUIRED]; + + // The value of the rate group (For example flat rate $10). Can only be set + // if `main_table` and `subtables` are not set. + optional Value single_value = 2; + + // A table defining the rate group, when `single_value` is not + // expressive enough. Can only be set if `single_value` is not + // set. + optional Table main_table = 3; + + // Optional. A list of subtables referred to by `main_table`. Can only + // be set if `main_table` is set. + repeated Table subtables = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of carrier rates that can be referred to by + // `main_table` or `single_value`. + repeated CarrierRate carrier_rates = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Name of the rate group. + // If set has to be unique within shipping service. + optional string name = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// A table defining the rate group, when `single_value` is not +// expressive enough. +message Table { + // Name of the table. Required for subtables, ignored for the main table. + optional string name = 1; + + // Required. Headers of the table's rows. + optional Headers row_headers = 2 [(google.api.field_behavior) = REQUIRED]; + + // Headers of the table's columns. Optional: if not set then the table has + // only one dimension. + optional Headers column_headers = 3; + + // Required. The list of rows that constitute the table. Must have the same + // length as `row_headers`. + repeated Row rows = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Transit time table, number of business days spent in transit based on row +// and column dimensions. Either `min_transit_days`, `max_transit_days` or +// `transit_time_table` can be set, but not both. +message TransitTable { + // If there's only one dimension set of `postal_code_group_names` or + // `transit_time_labels`, there are multiple rows each with one value + // for that dimension. If there are two dimensions, each row corresponds to a + // `postal_code_group_names`, and columns (values) to a + // `transit_time_labels`. + message TransitTimeRow { + // Transit time range (min-max) in business days. + message TransitTimeValue { + // Minimum transit time range in business days. 0 means same + // day delivery, 1 means next day delivery. + optional int32 min_transit_days = 1; + + // Must be greater than or equal to `min_transit_days`. + optional int32 max_transit_days = 2; + } + + // Required. Transit time range (min-max) in business days. + repeated TransitTimeValue values = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // Required. A list of region names + // [Region.name][google.shopping.merchant.accounts.v1beta.Region.name] . The + // last value can be + // `"all other locations"`. Example: + // `["zone 1", "zone 2", "all other locations"]`. The referred + // postal code groups must match the delivery country of the service. + repeated string postal_code_group_names = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of transit time labels. The last value can be + // `"all other labels"`. Example: + // `["food", "electronics", "all other labels"]`. + repeated string transit_time_labels = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. If there's only one dimension set of `postal_code_group_names` or + // `transit_time_labels`, there are multiple rows each with one value + // for that dimension. If there are two dimensions, each row corresponds to a + // `postal_code_group_names`, and columns (values) to a + // `transit_time_labels`. + repeated TransitTimeRow rows = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Table of per store minimum order values for the pickup fulfillment type. +message MinimumOrderValueTable { + // A list of store code sets sharing the same minimum order value. At least + // two sets are required and the last one must be empty, which signifies + // 'MOV for all other stores'. + // Each store code can only appear once across all the sets. + // All prices within a service must have the same currency. + message StoreCodeSetWithMov { + // Optional. A list of unique store codes or empty for the catch all. + repeated string store_codes = 1 [(google.api.field_behavior) = OPTIONAL]; + + // The minimum order value for the given stores. + optional google.shopping.type.Price value = 2; + } + + // Required. A list of store code sets sharing the same minimum order value + // (MOV). At least two sets are required and the last one must be empty, which + // signifies 'MOV for all other stores'. Each store code can only appear once + // across all the sets. All prices within a service must have the same + // currency. + repeated StoreCodeSetWithMov store_code_set_with_movs = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// A non-empty list of row or column headers for a table. +// Exactly one of `prices`, `weights`, +// `num_items`, `postal_code_group_names`, or +// `location` must be set. +message Headers { + // Required. A list of inclusive order price upper bounds. The last price's + // value can be infinity by setting price amount_micros = -1. For example + // `[{"amount_micros": 10000000, "currency_code": "USD"}, + // {"amount_micros": 500000000, "currency_code": "USD"}, + // {"amount_micros": -1, "currency_code": "USD"}]` represents the headers + // "<= $10", "<= $500", and "> $500". All prices within a service must have + // the same currency. Must be non-empty. Must be positive except -1. Can only + // be set if all other fields are not set. + repeated google.shopping.type.Price prices = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of inclusive order weight upper bounds. The last weight's + // value can be infinity by setting price amount_micros = -1. For example + // `[{"amount_micros": 10000000, "unit": "kg"}, {"amount_micros": 50000000, + // "unit": "kg"}, + // {"amount_micros": -1, "unit": "kg"}]` represents the headers + // "<= 10kg", "<= 50kg", and "> 50kg". All weights within a service must have + // the same unit. Must be non-empty. Must be positive except -1. Can only be + // set if all other fields are not set. + repeated google.shopping.type.Weight weights = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of inclusive number of items upper bounds. The last value + // can be + // `"infinity"`. For example + // `["10", "50", "infinity"]` represents the headers + // "<= 10 items", "<= 50 items", and "> 50 items". Must be non-empty. Can + // only be set if all other fields are not set. + repeated string number_of_items = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of postal group names. The last value can be + // `"all other locations"`. Example: + // `["zone 1", "zone 2", "all other locations"]`. The referred + // postal code groups must match the delivery country of the service. Must + // be non-empty. Can only be set if all other fields are not set. + repeated string postal_code_group_names = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A list of location ID sets. Must be non-empty. Can only be set if + // all other fields are not set. + repeated LocationIdSet locations = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// A list of location ID sets. Must be non-empty. Can only be set if all +// other fields are not set. +message LocationIdSet { + // Required. A non-empty list of + // [location + // IDs](https://developers.google.com/adwords/api/docs/appendix/geotargeting). + // They must all be of the same location type (For + // example, state). + repeated string location_ids = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Include a list of cells. +message Row { + // Required. The list of cells that constitute the row. Must have the same + // length as `columnHeaders` for two-dimensional tables, a length of 1 for + // one-dimensional tables. + repeated Value cells = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The single value of a rate group or the value of a rate group table's cell. +// Exactly one of `no_shipping`, `flat_rate`, +// `price_percentage`, `carrier_rateName`, +// `subtable_name` must be set. +message Value { + // If true, then the product can't be shipped. Must be true when set, can only + // be set if all other fields are not set. + optional bool no_shipping = 1; + + // A flat rate. Can only be set if all other fields are not set. + optional google.shopping.type.Price flat_rate = 2; + + // A percentage of the price represented as a number in decimal notation + // (For example, `"5.4"`). Can only be set if all other fields are not + // set. + optional string price_percentage = 3; + + // The name of a carrier rate referring to a carrier rate defined in the + // same rate group. Can only be set if all other fields are not set. + optional string carrier_rate = 4; + + // The name of a subtable. Can only be set in table cells (For example, not + // for single values), and only if all other fields are not set. + optional string subtable = 5; +} + +// A list of carrier rates that can be referred to by +// `main_table` or `single_value`. +message CarrierRate { + // Required. Name of the carrier rate. Must be unique per rate group. + optional string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Carrier service, such as `"UPS"` or `"Fedex"`. + optional string carrier = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Carrier service, such as `"ground"` or `"2 days"`. + optional string carrier_service = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Shipping origin for this carrier rate. + optional string origin_postal_code = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Multiplicative shipping rate modifier as a number in decimal + // notation. Can be negative. For example `"5.4"` increases the rate by 5.4%, + // `"-3"` decreases the rate by 3%. + optional string percentage_adjustment = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additive shipping rate modifier. Can be negative. For example + // `{ "amount_micros": 1, "currency_code" : "USD" }` adds $1 to the rate, + // `{ "amount_micros": -3, "currency_code" : "USD" }` removes $3 from the + // rate. + optional google.shopping.type.Price flat_adjustment = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `GetShippingSetting` method. +message GetShippingSettingsRequest { + // Required. The name of the shipping setting to retrieve. + // Format: `accounts/{account}/shippingsetting` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/ShippingSettings" + } + ]; +} + +// Request message for the `InsertShippingSetting` method. +message InsertShippingSettingsRequest { + // Required. The account where this product will be inserted. + // Format: accounts/{account} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The new version of the account. + ShippingSettings shipping_setting = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/tax_rule.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/tax_rule.proto new file mode 100644 index 000000000..a3217675d --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/tax_rule.proto @@ -0,0 +1,87 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/field_behavior.proto"; +import "google/type/interval.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "TaxRuleProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Primary type convension +// +// percent micro : 100% = 1 000 000 and 1% = 10 000 +// cannot be negative. +// +// Information about tax nexus and related parameters applicable to orders +// delivered to the area covered by a single tax admin. Nexus is created when a +// merchant is doing business in an area administered by tax admin (only US +// states are supported for nexus configuration). If merchant has nexus in a US +// state, merchant needs to pay tax to all tax authorities associated with +// the shipping destination. +// Next Id : 8 +message TaxRule { + // A range of postal codes that defines the area. + message TaxPostalCodeRange { + // Required. The start of the postal code range, which is also the smallest + // in the range. + string start = 1 [(google.api.field_behavior) = REQUIRED]; + + // The end of the postal code range. Will be the same as start if not + // specified. + string end = 2; + } + + // Describe the location through either postal code range or a criteria id. + oneof location { + // The admin_id or criteria_id of the region in which this rule is + // applicable. + int64 location_id = 2; + + // The range of postal codes in which this rule is applicable. + TaxPostalCodeRange post_code_range = 3; + } + + // What is the way to calculate tax rate for deliveries to this admin's area. + // Can only be set on US states. + oneof rate_calculation { + // Rate that depends on delivery location: if merchant has a nexus in + // corresponding US state, rates from authorities with jurisdiction over + // delivery area are added up. + bool use_google_rate = 4; + + // A fixed rate specified in micros, where 100% = 1_000_000. + // Suitable for origin-based states. + int64 self_specified_rate_micros = 5; + } + + // Region code in which this rule is applicable + string region_code = 1; + + // If set, shipping charge is taxed (at the same rate as product) when + // delivering to this admin's area. + // Can only be set on US states without category. + bool shipping_taxed = 6; + + // Required. Time period when this rule is effective. If the duration is + // missing from effective_time listed, then it is open ended to the future. + // The start of this time period is inclusive, and the end is exclusive. + google.type.Interval effective_time_period = 7 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofservice.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofservice.proto new file mode 100644 index 000000000..549a3a941 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofservice.proto @@ -0,0 +1,145 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/shopping/merchant/accounts/v1beta/termsofservicekind.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "TermsOfServiceProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support `TermsOfService` API. +service TermsOfServiceService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the `TermsOfService` associated with the provided version. + rpc GetTermsOfService(GetTermsOfServiceRequest) returns (TermsOfService) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=termsOfService/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Retrieves the latest version of the `TermsOfService` for a given `kind` and + // `region_code`. + rpc RetrieveLatestTermsOfService(RetrieveLatestTermsOfServiceRequest) + returns (TermsOfService) { + option (google.api.http) = { + get: "/accounts/v1beta/termsOfService:retrieveLatest" + }; + } + + // Accepts a `TermsOfService`. Executing this method requires admin access. + rpc AcceptTermsOfService(AcceptTermsOfServiceRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=termsOfService/*}:accept" + }; + option (google.api.method_signature) = "name"; + } +} + +// A `TermsOfService`. +message TermsOfService { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/TermsOfService" + pattern: "termsOfService/{version}" + }; + + // Identifier. The resource name of the terms of service version. + // Format: `termsOfService/{version}` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfService" + } + ]; + + // Region code as defined by [CLDR](https://cldr.unicode.org/). This is either + // a country where the ToS applies specifically to that country or `001` when + // the same `TermsOfService` can be signed in any country. However note that + // when signing a ToS that applies globally we still expect that a specific + // country is provided (this should be merchant business country or program + // country of participation). + string region_code = 2; + + // The Kind this terms of service version applies to. + TermsOfServiceKind kind = 3; + + // URI for terms of service file that needs to be displayed to signing users. + optional string file_uri = 4; + + // Whether this terms of service version is external. External terms of + // service versions can only be agreed through external processes and not + // directly by the merchant through UI or API. + bool external = 5; +} + +// Request message for the `GetTermsOfService` method. +message GetTermsOfServiceRequest { + // Required. The resource name of the terms of service version. + // Format: `termsOfService/{version}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfService" + } + ]; +} + +// Request message for the `RetrieveLatestTermsOfService` method. +message RetrieveLatestTermsOfServiceRequest { + // Region code as defined by [CLDR](https://cldr.unicode.org/). This is either + // a country when the ToS applies specifically to that country or 001 when it + // applies globally. + string region_code = 1; + + // The Kind this terms of service version applies to. + TermsOfServiceKind kind = 2; +} + +// Request message for the `AcceptTermsOfService` method. +message AcceptTermsOfServiceRequest { + // Required. The resource name of the terms of service version. + // Format: `termsOfService/{version}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfService" + } + ]; + + // Required. The account for which to accept the ToS. + string account = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Required. Region code as defined by [CLDR](https://cldr.unicode.org/). This + // is either a country when the ToS applies specifically to that country or + // 001 when it applies globally. + string region_code = 3 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto new file mode 100644 index 000000000..3d3b76f23 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto @@ -0,0 +1,166 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/shopping/merchant/accounts/v1beta/termsofservicekind.proto"; +import "google/type/date.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "TermsOfServiceAgreementStateProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support `TermsOfServiceAgreementState` API. +service TermsOfServiceAgreementStateService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Returns the state of a terms of service agreement. + rpc GetTermsOfServiceAgreementState(GetTermsOfServiceAgreementStateRequest) + returns (TermsOfServiceAgreementState) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/termsOfServiceAgreementStates/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Retrieves the state of the agreement for the application terms of service. + rpc RetrieveForApplicationTermsOfServiceAgreementState( + RetrieveForApplicationTermsOfServiceAgreementStateRequest) + returns (TermsOfServiceAgreementState) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/termsOfServiceAgreementStates:retrieveForApplication" + }; + option (google.api.method_signature) = "parent"; + } +} + +// This resource represents the agreement state for a given account and terms of +// service kind. +// The state is as follows: +// +// * If the merchant has accepted a terms of service: +// [accepted](TermsOfServiceAggrementState.accepted) will be populated, +// otherwise it will be empty +// * If the merchant must sign a terms of service: +// [required](TermsOfServiceAggrementState.required) will be populated, +// otherwise it will be empty. +// +// Note that both [required](TermsOfServiceAggrementState.required) and +// [accepted](TermsOfServiceAggrementState.accepted) can be present. In this +// case the `accepted` terms of services will have an expiration date set in the +// [valid_until](Accepted.valid_until) field. The `required` terms of services +// need to be accepted before `valid_until` in order for the account to continue +// having a valid agreement. When accepting new terms of services we expect 3Ps +// to display the text associated with the given terms of service agreement (the +// url to the file containing the text is added in the Required message below as +// [tos_file_uri](Accepted.tos_file_uri). The actual acceptance of the terms of +// service is done by calling accept on the [TermsOfService](TermsOfService) +// resource. +message TermsOfServiceAgreementState { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/TermsOfServiceAgreementState" + pattern: "accounts/{account}/termsOfServiceAgreementStates/{identifier}" + plural: "termsOfServiceAgreementStates" + singular: "termsOfServiceAgreementState" + }; + + // Identifier. The resource name of the terms of service version. + // Format: `accounts/{account}/termsOfServiceAgreementState/{identifier}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Region code as defined by https://cldr.unicode.org/. This is the + // country the current state applies to. + string region_code = 2; + + // Terms of Service kind associated with the particular version. + TermsOfServiceKind terms_of_service_kind = 3; + + // The accepted terms of service of this kind and for the associated + // region_code + optional Accepted accepted = 4; + + // The required terms of service + optional Required required = 5; +} + +// Describes the accepted terms of service. +message Accepted { + // The accepted + // [termsOfService](google.shopping.merchant.accounts.v1main.TermsOfService). + string terms_of_service = 1 [(google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfService" + }]; + + // The account where the acceptance was recorded. This can be the account + // itself or, in the case of subaccounts, the MCA account. + string accepted_by = 2 [(google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + }]; + + // When set, it states that the accepted + // [TermsOfService](google.shopping.merchant.accounts.v1main.TermsOfService) + // is only valid until the end of this date (in UTC). A new one must be + // accepted before then. The information of the required + // [TermsOfService](google.shopping.merchant.accounts.v1main.TermsOfService) + // is found in the [Required](Required) message. + optional google.type.Date valid_until = 3; +} + +// Describes the terms of service which are required to be accepted. +message Required { + // The + // [termsOfService](google.shopping.merchant.accounts.v1main.TermsOfService) + // that need to be accepted. + string terms_of_service = 1 [(google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfService" + }]; + + // Full URL to the terms of service file. This field is the same as + // [TermsOfService.file_uri](TermsOfService.file_uri), it is added + // here for convenience only. + string tos_file_uri = 2; +} + +// Request message for the `GetTermsOfServiceAgreementState` method. +message GetTermsOfServiceAgreementStateRequest { + // Required. The resource name of the terms of service version. + // Format: `accounts/{account}/termsOfServiceAgreementState/{identifier}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/TermsOfServiceAgreementState" + } + ]; +} + +// Request message for the `RetrieveForApplicationTermsOfServiceAgreementState` +// method. +message RetrieveForApplicationTermsOfServiceAgreementStateRequest { + // Required. The account for which to get a TermsOfServiceAgreementState + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/TermsOfServiceAgreementState" + } + ]; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofservicekind.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofservicekind.proto new file mode 100644 index 000000000..96848981d --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/termsofservicekind.proto @@ -0,0 +1,31 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "TermsOfServiceKindProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// The TermsOfService Kind. +enum TermsOfServiceKind { + // Default value. This value is unused. + TERMS_OF_SERVICE_KIND_UNSPECIFIED = 0; + + // Merchant Center application. + MERCHANT_CENTER = 1; +} diff --git a/third_party/googleapis/google/shopping/merchant/accounts/v1beta/user.proto b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/user.proto new file mode 100644 index 000000000..7f4d2bb3c --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/accounts/v1beta/user.proto @@ -0,0 +1,217 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/shopping/merchant/accounts/v1beta/accessright.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "UserProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support user API. +service UserService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves a Merchant Center account user. + rpc GetUser(GetUserRequest) returns (User) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/users/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a Merchant Center account user. Executing this method requires + // admin access. + rpc CreateUser(CreateUserRequest) returns (User) { + option (google.api.http) = { + post: "/accounts/v1beta/{parent=accounts/*}/users" + body: "user" + }; + option (google.api.method_signature) = "parent,user"; + } + + // Deletes a Merchant Center account user. Executing this method requires + // admin access. + rpc DeleteUser(DeleteUserRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/accounts/v1beta/{name=accounts/*/users/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Merchant Center account user. Executing this method requires + // admin access. + rpc UpdateUser(UpdateUserRequest) returns (User) { + option (google.api.http) = { + patch: "/accounts/v1beta/{user.name=accounts/*/users/*}" + body: "user" + }; + option (google.api.method_signature) = "user,update_mask"; + } + + // Lists all users of a Merchant Center account. + rpc ListUsers(ListUsersRequest) returns (ListUsersResponse) { + option (google.api.http) = { + get: "/accounts/v1beta/{parent=accounts/*}/users" + }; + option (google.api.method_signature) = "parent"; + } +} + +// A [user](https://support.google.com/merchants/answer/12160472). +message User { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/User" + pattern: "accounts/{account}/users/{email}" + plural: "users" + singular: "user" + }; + + // The possible states of a user. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // The user is pending confirmation. In this state, the user first needs to + // accept the invitation before performing other actions. + PENDING = 1; + + // The user is verified. + VERIFIED = 2; + } + + // Identifier. The resource name of the user. + // Format: `accounts/{account}/user/{email}` + // + // Use `me` to refer to your own email address, for example + // `accounts/{account}/users/me`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The state of the user. + State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The [access + // rights](https://support.google.com/merchants/answer/12160472?sjid=6789834943175119429-EU#accesstypes) + // the user has. + repeated AccessRight access_rights = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `GetUser` method. +message GetUserRequest { + // Required. The name of the user to retrieve. + // Format: `accounts/{account}/users/{email}` + // + // It is also possible to retrieve the user corresponding to the caller by + // using `me` rather than an email address as in + // `accounts/{account}/users/me`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/User" + } + ]; +} + +// Request message for the `CreateUser` method. +message CreateUserRequest { + // Required. The resource name of the account for which a user will be + // created. Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Required. The email address of the user (for example, + // `john.doe@gmail.com`). + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The user to create. + User user = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `DeleteUser` method. +message DeleteUserRequest { + // Required. The name of the user to delete. + // Format: `accounts/{account}/users/{email}` + // + // It is also possible to delete the user corresponding to the caller by using + // `me` rather than an email address as in `accounts/{account}/users/me`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/User" + } + ]; +} + +// Request message for the `UpdateUser` method. +message UpdateUserRequest { + // Required. The new version of the user. + // + // Use `me` to refer to your own email address, for example + // `accounts/{account}/users/me`. + User user = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `ListUsers` method. +message ListUsersRequest { + // Required. The parent, which owns this collection of users. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Account" + } + ]; + + // Optional. The maximum number of users to return. The service may return + // fewer than this value. If unspecified, at most 50 users will be returned. + // The maximum value is 100; values above 100 will be coerced to 100 + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListUsers` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListUsers` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the `ListUsers` method. +message ListUsersResponse { + // The users from the specified account. + repeated User users = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/conversions/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/conversions/BUILD.bazel new file mode 100644 index 000000000..6b354049f --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/conversions/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-conversions. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant conversions. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "conversions_ruby_wrapper", + srcs = ["//google/shopping/merchant/conversions/v1beta:conversions_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-conversions", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/conversions/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-conversions-ruby", + deps = [ + ":conversions_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/BUILD.bazel similarity index 51% rename from third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel rename to third_party/googleapis/google/shopping/merchant/conversions/v1beta/BUILD.bazel index 5cbc3cf5a..8ced1627f 100644 --- a/third_party/googleapis/google/maps/mapsplatformdatasets/v1alpha/BUILD.bazel +++ b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/BUILD.bazel @@ -9,22 +9,22 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( - name = "mapsplatformdatasets_proto", + name = "conversions_proto", srcs = [ - "data_source.proto", - "dataset.proto", - "maps_platform_datasets.proto", - "maps_platform_datasets_alpha_service.proto", + "conversionsources.proto", ], deps = [ "//google/api:annotations_proto", @@ -38,9 +38,9 @@ proto_library( ) proto_library_with_info( - name = "mapsplatformdatasets_proto_with_info", + name = "conversions_proto_with_info", deps = [ - ":mapsplatformdatasets_proto", + ":conversions_proto", "//google/cloud:common_resources_proto", ], ) @@ -48,6 +48,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -58,58 +59,59 @@ load( ) java_proto_library( - name = "mapsplatformdatasets_java_proto", - deps = [":mapsplatformdatasets_proto"], + name = "conversions_java_proto", + deps = [":conversions_proto"], ) java_grpc_library( - name = "mapsplatformdatasets_java_grpc", - srcs = [":mapsplatformdatasets_proto"], - deps = [":mapsplatformdatasets_java_proto"], + name = "conversions_java_grpc", + srcs = [":conversions_proto"], + deps = [":conversions_java_proto"], ) java_gapic_library( - name = "mapsplatformdatasets_java_gapic", - srcs = [":mapsplatformdatasets_proto_with_info"], + name = "conversions_java_gapic", + srcs = [":conversions_proto_with_info"], gapic_yaml = None, - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + grpc_service_config = "conversions_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", test_deps = [ - ":mapsplatformdatasets_java_grpc", + ":conversions_java_grpc", ], transport = "grpc+rest", deps = [ - ":mapsplatformdatasets_java_proto", + ":conversions_java_proto", "//google/api:api_java_proto", ], ) java_gapic_test( - name = "mapsplatformdatasets_java_gapic_test_suite", + name = "conversions_java_gapic_test_suite", test_classes = [ - "com.google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1AlphaClientHttpJsonTest", - "com.google.maps.mapsplatformdatasets.v1alpha.MapsPlatformDatasetsV1AlphaClientTest", + "com.google.shopping.merchant.conversions.v1beta.ConversionSourcesServiceClientHttpJsonTest", + "com.google.shopping.merchant.conversions.v1beta.ConversionSourcesServiceClientTest", ], - runtime_deps = [":mapsplatformdatasets_java_gapic_test"], + runtime_deps = [":conversions_java_gapic_test"], ) # Open Source Packages java_gapic_assembly_gradle_pkg( - name = "google-cloud-maps-mapsplatformdatasets-v1alpha-java", + name = "google-cloud-merchant-conversions-v1beta-java", include_samples = True, transport = "grpc+rest", deps = [ - ":mapsplatformdatasets_java_gapic", - ":mapsplatformdatasets_java_grpc", - ":mapsplatformdatasets_java_proto", - ":mapsplatformdatasets_proto", + ":conversions_java_gapic", + ":conversions_java_grpc", + ":conversions_java_proto", + ":conversions_proto", ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -118,45 +120,46 @@ load( ) go_proto_library( - name = "mapsplatformdatasets_go_proto", + name = "conversions_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha/mapsplatformdatasetspb", - protos = [":mapsplatformdatasets_proto"], + importpath = "cloud.google.com/go/shopping/merchant/conversions/apiv1beta/conversionspb", + protos = [":conversions_proto"], deps = [ "//google/api:annotations_go_proto", ], ) go_gapic_library( - name = "mapsplatformdatasets_go_gapic", - srcs = [":mapsplatformdatasets_proto_with_info"], - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", - importpath = "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha;mapsplatformdatasets", + name = "conversions_go_gapic", + srcs = [":conversions_proto_with_info"], + grpc_service_config = "conversions_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/conversions/apiv1beta;conversions", metadata = True, - release_level = "alpha", + release_level = "beta", rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ - ":mapsplatformdatasets_go_proto", + ":conversions_go_proto", ], ) # Open Source Packages go_gapic_assembly_pkg( - name = "gapi-cloud-maps-mapsplatformdatasets-v1alpha-go", + name = "gapi-cloud-merchant-conversions-v1beta-go", deps = [ - ":mapsplatformdatasets_go_gapic", - ":mapsplatformdatasets_go_gapic_srcjar-metadata.srcjar", - ":mapsplatformdatasets_go_gapic_srcjar-snippets.srcjar", - ":mapsplatformdatasets_go_gapic_srcjar-test.srcjar", - ":mapsplatformdatasets_go_proto", + ":conversions_go_gapic", + ":conversions_go_gapic_srcjar-metadata.srcjar", + ":conversions_go_gapic_srcjar-snippets.srcjar", + ":conversions_go_gapic_srcjar-test.srcjar", + ":conversions_go_proto", ], ) ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -165,37 +168,42 @@ load( ) py_gapic_library( - name = "mapsplatformdatasets_py_gapic", - srcs = [":mapsplatformdatasets_proto"], - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + name = "conversions_py_gapic", + srcs = [":conversions_proto"], + grpc_service_config = "conversions_grpc_service_config.json", + opt_args = [ + "python-gapic-name=merchant_conversions", + "python-gapic-namespace=google.shopping", + ], rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ ], ) py_test( - name = "mapsplatformdatasets_py_gapic_test", + name = "conversions_py_gapic_test", srcs = [ - "mapsplatformdatasets_py_gapic_pytest.py", - "mapsplatformdatasets_py_gapic_test.py", + "conversions_py_gapic_pytest.py", + "conversions_py_gapic_test.py", ], legacy_create_init = False, - deps = [":mapsplatformdatasets_py_gapic"], + deps = [":conversions_py_gapic"], ) # Open Source Packages py_gapic_assembly_pkg( - name = "maps-mapsplatformdatasets-v1alpha-py", + name = "merchant-conversions-v1beta-py", deps = [ - ":mapsplatformdatasets_py_gapic", + ":conversions_py_gapic", ], ) ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -204,34 +212,36 @@ load( ) php_proto_library( - name = "mapsplatformdatasets_php_proto", - deps = [":mapsplatformdatasets_proto"], + name = "conversions_php_proto", + deps = [":conversions_proto"], ) php_gapic_library( - name = "mapsplatformdatasets_php_gapic", - srcs = [":mapsplatformdatasets_proto_with_info"], - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + name = "conversions_php_gapic", + srcs = [":conversions_proto_with_info"], + grpc_service_config = "conversions_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ - ":mapsplatformdatasets_php_proto", + ":conversions_php_proto", ], ) # Open Source Packages php_gapic_assembly_pkg( - name = "google-cloud-maps-mapsplatformdatasets-v1alpha-php", + name = "google-cloud-merchant-conversions-v1beta-php", deps = [ - ":mapsplatformdatasets_php_gapic", - ":mapsplatformdatasets_php_proto", + ":conversions_php_gapic", + ":conversions_php_proto", ], ) ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -239,29 +249,30 @@ load( ) nodejs_gapic_library( - name = "mapsplatformdatasets_nodejs_gapic", - package_name = "@googlemaps/maps-platform-datasets", - src = ":mapsplatformdatasets_proto_with_info", + name = "conversions_nodejs_gapic", + package_name = "@google-shopping/conversions", + src = ":conversions_proto_with_info", extra_protoc_parameters = ["metadata"], - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", - package = "google.maps.mapsplatformdatasets.v1alpha", + grpc_service_config = "conversions_grpc_service_config.json", + package = "google.shopping.merchant.conversions.v1beta", rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [], ) nodejs_gapic_assembly_pkg( - name = "maps-mapsplatformdatasets-v1alpha-nodejs", + name = "merchant-conversions-v1beta-nodejs", deps = [ - ":mapsplatformdatasets_nodejs_gapic", - ":mapsplatformdatasets_proto", + ":conversions_nodejs_gapic", + ":conversions_proto", ], ) ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -271,43 +282,44 @@ load( ) ruby_proto_library( - name = "mapsplatformdatasets_ruby_proto", - deps = [":mapsplatformdatasets_proto"], + name = "conversions_ruby_proto", + deps = [":conversions_proto"], ) ruby_grpc_library( - name = "mapsplatformdatasets_ruby_grpc", - srcs = [":mapsplatformdatasets_proto"], - deps = [":mapsplatformdatasets_ruby_proto"], + name = "conversions_ruby_grpc", + srcs = [":conversions_proto"], + deps = [":conversions_ruby_proto"], ) ruby_cloud_gapic_library( - name = "mapsplatformdatasets_ruby_gapic", - srcs = [":mapsplatformdatasets_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-maps-mapsplatformdatasets-v1alpha"], - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + name = "conversions_ruby_gapic", + srcs = [":conversions_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-shopping-merchant-conversions-v1beta"], + grpc_service_config = "conversions_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ - ":mapsplatformdatasets_ruby_grpc", - ":mapsplatformdatasets_ruby_proto", + ":conversions_ruby_grpc", + ":conversions_ruby_proto", ], ) # Open Source Packages ruby_gapic_assembly_pkg( - name = "google-cloud-maps-mapsplatformdatasets-v1alpha-ruby", + name = "google-shopping-merchant-conversions-v1beta-ruby", deps = [ - ":mapsplatformdatasets_ruby_gapic", - ":mapsplatformdatasets_ruby_grpc", - ":mapsplatformdatasets_ruby_proto", + ":conversions_ruby_gapic", + ":conversions_ruby_grpc", + ":conversions_ruby_proto", ], ) ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -317,44 +329,44 @@ load( ) csharp_proto_library( - name = "mapsplatformdatasets_csharp_proto", - extra_opts = [], - deps = [":mapsplatformdatasets_proto"], + name = "conversions_csharp_proto", + deps = [":conversions_proto"], ) csharp_grpc_library( - name = "mapsplatformdatasets_csharp_grpc", - srcs = [":mapsplatformdatasets_proto"], - deps = [":mapsplatformdatasets_csharp_proto"], + name = "conversions_csharp_grpc", + srcs = [":conversions_proto"], + deps = [":conversions_csharp_proto"], ) csharp_gapic_library( - name = "mapsplatformdatasets_csharp_gapic", - srcs = [":mapsplatformdatasets_proto_with_info"], + name = "conversions_csharp_gapic", + srcs = [":conversions_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "mapsplatformdatasets_grpc_service_config.json", + grpc_service_config = "conversions_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "mapsplatformdatasets_v1alpha.yaml", + service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ - ":mapsplatformdatasets_csharp_grpc", - ":mapsplatformdatasets_csharp_proto", + ":conversions_csharp_grpc", + ":conversions_csharp_proto", ], ) # Open Source Packages csharp_gapic_assembly_pkg( - name = "google-cloud-maps-mapsplatformdatasets-v1alpha-csharp", + name = "google-cloud-merchant-conversions-v1beta-csharp", deps = [ - ":mapsplatformdatasets_csharp_gapic", - ":mapsplatformdatasets_csharp_grpc", - ":mapsplatformdatasets_csharp_proto", + ":conversions_csharp_gapic", + ":conversions_csharp_grpc", + ":conversions_csharp_proto", ], ) ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", @@ -362,13 +374,13 @@ load( ) cc_proto_library( - name = "mapsplatformdatasets_cc_proto", - deps = [":mapsplatformdatasets_proto"], + name = "conversions_cc_proto", + deps = [":conversions_proto"], ) cc_grpc_library( - name = "mapsplatformdatasets_cc_grpc", - srcs = [":mapsplatformdatasets_proto"], + name = "conversions_cc_grpc", + srcs = [":conversions_proto"], grpc_only = True, - deps = [":mapsplatformdatasets_cc_proto"], + deps = [":conversions_cc_proto"], ) diff --git a/third_party/googleapis/google/shopping/merchant/conversions/v1beta/conversions_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/conversions_grpc_service_config.json new file mode 100644 index 000000000..720cb60e0 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/conversions_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.shopping.merchant.conversions.v1beta.ConversionSourcesService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/shopping/merchant/conversions/v1beta/conversionsources.proto b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/conversionsources.proto new file mode 100644 index 000000000..16121667e --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/conversionsources.proto @@ -0,0 +1,377 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.conversions.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/conversions/apiv1beta/conversionspb;conversionspb"; +option java_multiple_files = true; +option java_outer_classname = "ConversionSourcesProto"; +option java_package = "com.google.shopping.merchant.conversions.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// Service for managing conversion sources for a merchant account. +service ConversionSourcesService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Creates a new conversion source. + rpc CreateConversionSource(CreateConversionSourceRequest) + returns (ConversionSource) { + option (google.api.http) = { + post: "/conversions/v1beta/{parent=accounts/*}/conversionSources" + body: "conversion_source" + }; + option (google.api.method_signature) = "parent,conversion_source"; + } + + // Updates information of an existing conversion source. Available only for + // Merchant Center Destination conversion sources. + rpc UpdateConversionSource(UpdateConversionSourceRequest) + returns (ConversionSource) { + option (google.api.http) = { + patch: "/conversions/v1beta/{conversion_source.name=accounts/*/conversionSources/*}" + body: "conversion_source" + }; + option (google.api.method_signature) = "conversion_source,update_mask"; + } + + // Archives an existing conversion source. If the conversion source is a + // Merchant Center Destination, it will be recoverable for 30 days. If the + // conversion source is a Google Analytics Link, it will be deleted + // immediately and can be restored by creating a new one. + rpc DeleteConversionSource(DeleteConversionSourceRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/conversions/v1beta/{name=accounts/*/conversionSources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Re-enables an archived conversion source. Only Available for Merchant + // Center Destination conversion sources. + rpc UndeleteConversionSource(UndeleteConversionSourceRequest) + returns (ConversionSource) { + option (google.api.http) = { + post: "/conversions/v1beta/{name=accounts/*/conversionSources/*}:undelete" + body: "*" + }; + } + + // Fetches a conversion source. + rpc GetConversionSource(GetConversionSourceRequest) + returns (ConversionSource) { + option (google.api.http) = { + get: "/conversions/v1beta/{name=accounts/*/conversionSources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Retrieves the list of conversion sources the caller has access to. + rpc ListConversionSources(ListConversionSourcesRequest) + returns (ListConversionSourcesResponse) { + option (google.api.http) = { + get: "/conversions/v1beta/{parent=accounts/*}/conversionSources" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Represents a conversion source owned by a Merchant account. A merchant +// account can have up to 200 conversion sources. +message ConversionSource { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/ConversionSource" + pattern: "accounts/{account}/conversionSources/{conversion_source}" + plural: "conversionSources" + singular: "conversionSource" + }; + + // Represents state of the conversion source. + enum State { + // Conversion source has unspecified state. + STATE_UNSPECIFIED = 0; + + // Conversion source is fully functional. + ACTIVE = 1; + + // Conversion source has been archived in the last 30 days and not + // currently functional. Can be restored using the undelete method. + ARCHIVED = 2; + + // Conversion source creation has started but not fully finished yet. + PENDING = 3; + } + + // Entity controlling the conversion source. + enum Controller { + // Default value. This value is unused. + CONTROLLER_UNSPECIFIED = 0; + + // Controlled by the Merchant who owns the Conversion Source. + MERCHANT = 1; + + // Controlled by the YT Affiliates program. + YOUTUBE_AFFILIATES = 2; + } + + // Required. + // Conversion source data specific to each different type of source. + oneof source_data { + // Immutable. Conversion Source of type "Link to Google Analytics Property". + GoogleAnalyticsLink google_analytics_link = 3 + [(google.api.field_behavior) = IMMUTABLE]; + + // Conversion Source of type "Merchant Center Tag Destination". + MerchantCenterDestination merchant_center_destination = 4; + } + + // Output only. Identifier. Generated by the Content API upon creation of a + // new `ConversionSource`. Format: [a-z]{4}:.+ The four characters before the + // colon represent the type of conversio source. Content after the colon + // represents the ID of the conversion source within that type. The ID of two + // different conversion sources might be the same across different types. The + // following type prefixes are supported: + // - galk: For GoogleAnalyticsLink sources. + // - mcdn: For MerchantCenterDestination sources. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. Current state of this conversion source. Can't be edited + // through the API. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when an archived conversion source becomes + // permanently deleted and is no longer available to undelete. + google.protobuf.Timestamp expire_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Controller of the conversion source. + Controller controller = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents attribution settings for conversion sources receiving +// pre-attribution data. +message AttributionSettings { + // Message representing a types of conversion events + message ConversionType { + // Output only. Conversion event name, as it'll be reported by the client. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Option indicating if the type should be included in Merchant + // Center reporting. + bool report = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The attribution model used for this source. We support the same set of + // models offered by Google Analytics 4, as described in: + // https://support.google.com/analytics/answer/10596866. + enum AttributionModel { + // Unspecified model. + ATTRIBUTION_MODEL_UNSPECIFIED = 0; + + // Cross-channel Last Click model. + CROSS_CHANNEL_LAST_CLICK = 1; + + // Ads-preferred Last Click model. + ADS_PREFERRED_LAST_CLICK = 2; + + // Cross-channel Data Driven model. + CROSS_CHANNEL_DATA_DRIVEN = 5; + + // Cross-channel First Click model. + CROSS_CHANNEL_FIRST_CLICK = 6; + + // Cross-channel Linear model. + CROSS_CHANNEL_LINEAR = 7; + + // Cross-channel Position Based model. + CROSS_CHANNEL_POSITION_BASED = 8; + + // Cross-channel Time Decay model. + CROSS_CHANNEL_TIME_DECAY = 9; + } + + // Required. Lookback windows (in days) used for attribution in this source. + // Supported values are 7, 30, 40. + int32 attribution_lookback_window_days = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Attribution model. + AttributionModel attribution_model = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Immutable. Unordered list. List of different conversion types a conversion + // event can be classified as. A standard "purchase" type will be + // automatically created if this list is empty at creation time. + repeated ConversionType conversion_type = 3 [ + (google.api.field_behavior) = UNORDERED_LIST, + (google.api.field_behavior) = IMMUTABLE + ]; +} + +// "Google Analytics Link" sources can be used to get conversion data from an +// existing Google Analytics property into the linked Merchant Center account. +message GoogleAnalyticsLink { + // Required. Immutable. ID of the Google Analytics property the merchant is + // linked to. + int64 property_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. Attribution settings for the linked Google Analytics property. + AttributionSettings attribution_settings = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the Google Analytics property the merchant is linked + // to. + string property = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// "Merchant Center Destination" sources can be used to send conversion events +// from an online store using a Google tag directly to a Merchant Center account +// where the source is created. +message MerchantCenterDestination { + // Output only. Merchant Center Destination ID. + string destination = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Attribution settings being used for the Merchant Center + // Destination. + AttributionSettings attribution_settings = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Merchant-specified display name for the destination. This is the + // name that identifies the conversion source within the Merchant Center UI. + // Limited to 64 characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Three-letter currency code (ISO 4217). The currency code defines + // in which currency the conversions sent to this destination will be reported + // in Merchant Center. + string currency_code = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the CreateConversionSource method. +message CreateConversionSourceRequest { + // Required. The merchant account that will own the new conversion source. + // Format: accounts/{account} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/ConversionSource" + } + ]; + + // Required. The conversion source description. A new ID will be automatically + // assigned to it upon creation. + ConversionSource conversion_source = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the UpdateConversionSource method. +message UpdateConversionSourceRequest { + // Required. The new version of the conversion source data. + // Format: accounts/{account}/conversionSources/{conversion_source} + ConversionSource conversion_source = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the DeleteConversionSource method. +message DeleteConversionSourceRequest { + // Required. The name of the conversion source to be deleted. + // Format: accounts/{account}/conversionSources/{conversion_source} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/ConversionSource" + } + ]; +} + +// Request message for the UndeleteConversionSource method. +message UndeleteConversionSourceRequest { + // Required. The name of the conversion source to be undeleted. + // Format: accounts/{account}/conversionSources/{conversion_source} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/ConversionSource" + } + ]; +} + +// Request message for the GetConversionSource method. +message GetConversionSourceRequest { + // Required. The name of the conversion source to be fetched. + // Format: accounts/{account}/conversionsources/{conversion_source} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/ConversionSource" + } + ]; +} + +// Request message for the ListConversionSources method. +message ListConversionSourcesRequest { + // Required. The merchant account who owns the collection of conversion + // sources. Format: accounts/{account} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/ConversionSource" + } + ]; + + // Optional. The maximum number of conversion sources to return in a page. + // If no `page_size` is specified, `100` is used as the default value. The + // maximum value is `200`. Values above `200` will be coerced to `200`. + // Regardless of pagination, at most `200` conversion sources are returned + // in total. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Show deleted (archived) option. + bool show_deleted = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the ListConversionSources method. +message ListConversionSourcesResponse { + // List of conversion sources. + repeated ConversionSource conversion_sources = 1; + + // Token to be used to fetch the next results page. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/conversions/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..957d1e5e3 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/conversions/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,56 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.conversions.v1beta.ConversionSourcesService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: 'google.shopping.merchant.conversions.v1beta.ConversionSourcesService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.conversions.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/datasources/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/datasources/BUILD.bazel new file mode 100644 index 000000000..c40e7841c --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-data_sources. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant datasources. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "datasources_ruby_wrapper", + srcs = ["//google/shopping/merchant/datasources/v1beta:datasources_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-data_sources", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/datasources/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-data_sources-ruby", + deps = [ + ":datasources_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/datasources/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/BUILD.bazel new file mode 100644 index 000000000..39ca7190b --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/BUILD.bazel @@ -0,0 +1,394 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "datasources_proto", + srcs = [ + "datasources.proto", + "datasourcetypes.proto", + "fileinputs.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/type:dayofweek_proto", + "//google/type:timeofday_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + ], +) + +proto_library_with_info( + name = "datasources_proto_with_info", + deps = [ + ":datasources_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "datasources_java_proto", + deps = [":datasources_proto"], +) + +java_grpc_library( + name = "datasources_java_grpc", + srcs = [":datasources_proto"], + deps = [":datasources_java_proto"], +) + +java_gapic_library( + name = "datasources_java_gapic", + srcs = [":datasources_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "datasources_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":datasources_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":datasources_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "datasources_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.datasources.v1beta.DataSourcesServiceClientHttpJsonTest", + "com.google.shopping.merchant.datasources.v1beta.DataSourcesServiceClientTest", + ], + runtime_deps = [":datasources_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-datasources-v1beta-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":datasources_java_gapic", + ":datasources_java_grpc", + ":datasources_java_proto", + ":datasources_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "datasources_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb", + protos = [":datasources_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:timeofday_go_proto", + ], +) + +go_gapic_library( + name = "datasources_go_gapic", + srcs = [":datasources_proto_with_info"], + grpc_service_config = "datasources_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/datasources/apiv1beta;datasources", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":datasources_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-datasources-v1beta-go", + deps = [ + ":datasources_go_gapic", + ":datasources_go_gapic_srcjar-metadata.srcjar", + ":datasources_go_gapic_srcjar-snippets.srcjar", + ":datasources_go_gapic_srcjar-test.srcjar", + ":datasources_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "datasources_py_gapic", + srcs = [":datasources_proto"], + grpc_service_config = "datasources_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ], + opt_args = [ + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_datasources", + ], +) + +py_test( + name = "datasources_py_gapic_test", + srcs = [ + "datasources_py_gapic_pytest.py", + "datasources_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":datasources_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-datasources-v1beta-py", + deps = [ + ":datasources_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "datasources_php_proto", + deps = [":datasources_proto"], +) + +php_gapic_library( + name = "datasources_php_gapic", + srcs = [":datasources_proto_with_info"], + grpc_service_config = "datasources_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":datasources_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-datasources-v1beta-php", + deps = [ + ":datasources_php_gapic", + ":datasources_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "datasources_nodejs_gapic", + package_name = "@google-shopping/datasources", + src = ":datasources_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "datasources_grpc_service_config.json", + package = "google.shopping.merchant.datasources.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-datasources-v1beta-nodejs", + deps = [ + ":datasources_nodejs_gapic", + ":datasources_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "datasources_ruby_proto", + deps = [":datasources_proto"], +) + +ruby_grpc_library( + name = "datasources_ruby_grpc", + srcs = [":datasources_proto"], + deps = [":datasources_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "datasources_ruby_gapic", + srcs = [":datasources_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-data_sources-v1beta", + ], + grpc_service_config = "datasources_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":datasources_ruby_grpc", + ":datasources_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-merchant-datasources-v1beta-ruby", + deps = [ + ":datasources_ruby_gapic", + ":datasources_ruby_grpc", + ":datasources_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "datasources_csharp_proto", + extra_opts = [], + deps = [":datasources_proto"], +) + +csharp_grpc_library( + name = "datasources_csharp_grpc", + srcs = [":datasources_proto"], + deps = [":datasources_csharp_proto"], +) + +csharp_gapic_library( + name = "datasources_csharp_gapic", + srcs = [":datasources_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "datasources_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":datasources_csharp_grpc", + ":datasources_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-datasources-v1beta-csharp", + deps = [ + ":datasources_csharp_gapic", + ":datasources_csharp_grpc", + ":datasources_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "datasources_cc_proto", + deps = [":datasources_proto"], +) + +cc_grpc_library( + name = "datasources_cc_grpc", + srcs = [":datasources_proto"], + grpc_only = True, + deps = [":datasources_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasources.proto b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasources.proto new file mode 100644 index 000000000..b5d3410f7 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasources.proto @@ -0,0 +1,301 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.datasources.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/shopping/merchant/datasources/v1beta/datasourcetypes.proto"; +import "google/shopping/merchant/datasources/v1beta/fileinputs.proto"; + +option csharp_namespace = "Google.Shopping.Merchant.DataSources.V1Beta"; +option go_package = "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb"; +option java_multiple_files = true; +option java_outer_classname = "DataSourcesProto"; +option java_package = "com.google.shopping.merchant.datasources.v1beta"; +option php_namespace = "Google\\Shopping\\Merchant\\DataSources\\V1beta"; +option ruby_package = "Google::Shopping::Merchant::DataSources::V1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Datasource" + pattern: "accounts/{account}/dataSources/{datasource}" +}; + +// Service to manage primary, supplemental, inventory and other data sources. +// See more in the [Merchant +// Center](https://support.google.com/merchants/answer/7439058) help article. +service DataSourcesService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the data source configuration for the given account. + rpc GetDataSource(GetDataSourceRequest) returns (DataSource) { + option (google.api.http) = { + get: "/datasources/v1beta/{name=accounts/*/dataSources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the configurations for data sources for the given account. + rpc ListDataSources(ListDataSourcesRequest) + returns (ListDataSourcesResponse) { + option (google.api.http) = { + get: "/datasources/v1beta/{parent=accounts/*}/dataSources" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates the new data source configuration for the given account. + rpc CreateDataSource(CreateDataSourceRequest) returns (DataSource) { + option (google.api.http) = { + post: "/datasources/v1beta/{parent=accounts/*}/dataSources" + body: "data_source" + }; + option (google.api.method_signature) = "parent,data_source"; + } + + // Updates the existing data source configuration. The fields that are + // set in the update mask but not provided in the resource will be deleted. + rpc UpdateDataSource(UpdateDataSourceRequest) returns (DataSource) { + option (google.api.http) = { + patch: "/datasources/v1beta/{data_source.name=accounts/*/dataSources/*}" + body: "data_source" + }; + option (google.api.method_signature) = "data_source,update_mask"; + } + + // Deletes a data source from your Merchant Center account. + rpc DeleteDataSource(DeleteDataSourceRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/datasources/v1beta/{name=accounts/*/dataSources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Performs the data fetch immediately (even outside fetch schedule) on a + // data source from your Merchant Center Account. If you need to call + // this method more than once per day, you should use the Products service to + // update your product data instead. + // This method only works on data sources with a file input set. + rpc FetchDataSource(FetchDataSourceRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/datasources/v1beta/{name=accounts/*/dataSources/*}:fetch" + body: "*" + }; + } +} + +// The [data source](https://support.google.com/merchants/answer/7439058) for +// the Merchant Center account. +message DataSource { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/DataSource" + pattern: "accounts/{account}/dataSources/{datasource}" + plural: "dataSources" + singular: "dataSource" + }; + + // Determines the type of input to the data source. Based on the input some + // settings might not be supported. + enum Input { + // Input unspecified. + INPUT_UNSPECIFIED = 0; + + // Represents data sources for which the data is primarily provided through + // the API. + API = 1; + + // Represents data sources for which the data is primarily provided through + // file input. Data can still be provided through the API. + FILE = 2; + + // The data source for products added directly in Merchant Center. + // + // This type of data source can not be created or updated through this API, + // only by Merchant Center UI. + // + // This type of data source is read only. + UI = 3; + + // This is also known as + // [Automated feeds](https://support.google.com/merchants/answer/12158480) + // used to automatically build your product data. This type of data source + // can be enabled or disabled through the Accounts bundle. + AUTOFEED = 4; + } + + // The data source type. + oneof Type { + // Required. The [primary data + // source](https://support.google.com/merchants/answer/7439058) for local + // and online products. + PrimaryProductDataSource primary_product_data_source = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The [supplemental data + // source](https://support.google.com/merchants/answer/7439058) for local + // and online products. + SupplementalProductDataSource supplemental_product_data_source = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The [local + // inventory](https://support.google.com/merchants/answer/7023001) data + // source. + LocalInventoryDataSource local_inventory_data_source = 6 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The [regional + // inventory](https://support.google.com/merchants/answer/7439058) data + // source. + RegionalInventoryDataSource regional_inventory_data_source = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The + // [promotion](https://support.google.com/merchants/answer/2906014) data + // source. + PromotionDataSource promotion_data_source = 8 + [(google.api.field_behavior) = REQUIRED]; + } + + // Identifier. The name of the data source. + // Format: + // `{datasource.name=accounts/{account}/dataSources/{datasource}}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The data source id. + int64 data_source_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The displayed data source name in the Merchant Center UI. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Determines the type of input to the data source. Based on the + // input some settings might not work. Only generic data sources can be + // created through the API. + Input input = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The field is used only when data is managed through a file. + FileInput file_input = 11 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the GetDataSource method. +message GetDataSourceRequest { + // Required. The name of the data source to retrieve. + // Format: `accounts/{account}/dataSources/{datasource}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/DataSource" + } + ]; +} + +// Request message for the ListDataSources method. +message ListDataSourcesRequest { + // Required. The account to list data sources for. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/DataSource" + } + ]; + + // Optional. The maximum number of data sources to return. The service may + // return fewer than this value. The maximum value is 1000; values above 1000 + // will be coerced to 1000. If unspecified, the maximum number of data sources + // will be returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListDataSources` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListDataSources` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the ListDataSources method. +message ListDataSourcesResponse { + // The data sources from the specified account. + repeated DataSource data_sources = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for the CreateDataSource method. +message CreateDataSourceRequest { + // Required. The account where this data source will be created. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/DataSource" + } + ]; + + // Required. The data source to create. + DataSource data_source = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the UpdateDataSource method. +message UpdateDataSourceRequest { + // Required. The data source resource to update. + DataSource data_source = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of data source fields to be updated. + // + // Fields specified in the update mask without a value specified in the + // body will be deleted from the data source. + // + // Providing special "*" value for full data source replacement is not + // supported. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the FetchDataSource method. +message FetchDataSourceRequest { + // Required. The name of the data source resource to fetch. + // Format: `accounts/{account}/dataSources/{datasource}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/DataSource" + } + ]; +} + +// Request message for the DeleteDataSource method. +message DeleteDataSourceRequest { + // Required. The name of the data source to delete. + // Format: `accounts/{account}/dataSources/{datasource}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/DataSource" + } + ]; +} diff --git a/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasources_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasources_grpc_service_config.json new file mode 100644 index 000000000..08de0af83 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasources_grpc_service_config.json @@ -0,0 +1,22 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.shopping.merchant.datasources.v1beta.DataSourcesService" + }, + { + "service": "google.shopping.merchant.datasources.v1beta.FileUploadsService" + } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + } + ] +} diff --git a/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto new file mode 100644 index 000000000..684c4b855 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto @@ -0,0 +1,199 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.datasources.v1beta; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Shopping.Merchant.DataSources.V1Beta"; +option go_package = "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb"; +option java_multiple_files = true; +option java_outer_classname = "DatasourcetypesProto"; +option java_package = "com.google.shopping.merchant.datasources.v1beta"; +option php_namespace = "Google\\Shopping\\Merchant\\DataSources\\V1beta"; +option ruby_package = "Google::Shopping::Merchant::DataSources::V1beta"; + +// The primary data source for local and online products. +message PrimaryProductDataSource { + // Data Source Channel. + // + // Channel is used to distinguish between data sources for different product + // verticals. + enum Channel { + // Not specified. + CHANNEL_UNSPECIFIED = 0; + + // Online product. + ONLINE_PRODUCTS = 1; + + // Local product. + LOCAL_PRODUCTS = 2; + + // Unified data source for both local and online products. + PRODUCTS = 3; + } + + // Required. Immutable. Specifies the type of data source channel. + Channel channel = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Immutable. The feed label that is specified on the data source + // level. + // + // Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), + // and dashes (-). + // + // See also [migration to feed + // labels](https://developers.google.com/shopping-content/guides/products/feed-labels). + // + // `feedLabel` and `contentLanguage` must be either both set or unset for data + // sources with product content type. + // They must be set for data sources with a file input. + // + // If set, the data source will only accept products matching this + // combination. If unset, the data source will accept products without that + // restriction. + optional string feed_label = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Immutable. The two-letter ISO 639-1 language of the items in the + // data source. + // + // `feedLabel` and `contentLanguage` must be either both set or unset. + // The fields can only be unset for data sources without file input. + // + // If set, the data source will only accept products matching this + // combination. If unset, the data source will accept products without that + // restriction. + optional string content_language = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The countries where the items may be displayed. Represented as a + // [CLDR territory + // code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml). + repeated string countries = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// The supplemental data source for local and online products. +message SupplementalProductDataSource { + // Optional. Immutable. The feed label that is specified on the data source + // level. + // + // Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), + // and dashes (-). + // + // See also [migration to feed + // labels](https://developers.google.com/shopping-content/guides/products/feed-labels). + // + // `feedLabel` and `contentLanguage` must be either both set or unset for data + // sources with product content type. + // They must be set for data sources with a file input. + // + // If set, the data source will only accept products matching this + // combination. If unset, the data source will accept produts without that + // restriction. + optional string feed_label = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Immutable. The two-letter ISO 639-1 language of the items in the + // data source. + // + // `feedLabel` and `contentLanguage` must be either both set or unset. + // The fields can only be unset for data sources without file input. + // + // If set, the data source will only accept products matching this + // combination. If unset, the data source will accept produts without that + // restriction. + optional string content_language = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; +} + +// The local inventory data source. +message LocalInventoryDataSource { + // Required. Immutable. The feed label of the offers to which the local + // inventory is provided. + // + // Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), + // and dashes (-). + // + // See also [migration to feed + // labels](https://developers.google.com/shopping-content/guides/products/feed-labels). + string feed_label = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The two-letter ISO 639-1 language of the items to + // which the local inventory is provided. + string content_language = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} + +// The regional inventory data source. +message RegionalInventoryDataSource { + // Required. Immutable. The feed label of the offers to which the regional + // inventory is provided. + // + // Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), + // and dashes (-). + // + // See also [migration to feed + // labels](https://developers.google.com/shopping-content/guides/products/feed-labels). + string feed_label = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The two-letter ISO 639-1 language of the items to + // which the regional inventory is provided. + string content_language = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} + +// The promotion data source. +message PromotionDataSource { + // Required. Immutable. The target country used as part of the unique + // identifier. Represented as a [CLDR territory + // code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml). + // + // Promotions are only available in selected + // [countries](https://support.google.com/merchants/answer/4588460). + string target_country = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The two-letter ISO 639-1 language of the items in the + // data source. + string content_language = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; +} diff --git a/third_party/googleapis/google/shopping/merchant/datasources/v1beta/fileinputs.proto b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/fileinputs.proto new file mode 100644 index 000000000..25e01db7f --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/fileinputs.proto @@ -0,0 +1,138 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.datasources.v1beta; + +import "google/api/field_behavior.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; + +option csharp_namespace = "Google.Shopping.Merchant.DataSources.V1Beta"; +option go_package = "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb"; +option java_multiple_files = true; +option java_outer_classname = "FileInputsProto"; +option java_package = "com.google.shopping.merchant.datasources.v1beta"; +option php_namespace = "Google\\Shopping\\Merchant\\DataSources\\V1beta"; +option ruby_package = "Google::Shopping::Merchant::DataSources::V1beta"; + +// The data specific for file data sources. This field is empty for other +// data source inputs. +message FileInput { + // Fetch details to deliver the data source. + message FetchSettings { + // The required fields vary based on the frequency of fetching. For a + // monthly + // fetch schedule, + // [day of + // month][google.shopping.content.bundles.DataSources.FileInput.FetchSchedule.day_of_month] + // and + // [hour of + // day][google.shopping.content.bundles.DataSources.FileInput.FetchSchedule.time_of_day] + // are required. For a weekly fetch schedule, + // [day of + // week][google.shopping.content.bundles.DataSources.FileInput.FetchSchedule.day_of_week] + // and [hour of + // day][google.shopping.content.bundles.DataSources.FileInput.FetchSchedule.time_of_day] + // are required. For a daily fetch schedule, only an [hour of + // day][google.shopping.content.bundles.DataSources.FileInput.FetchSchedule.time_of_day] + // is required. + enum Frequency { + // Frequency unspecified. + FREQUENCY_UNSPECIFIED = 0; + + // The fetch happens every day. + FREQUENCY_DAILY = 1; + + // The fetch happens every week. + FREQUENCY_WEEKLY = 2; + + // The fetch happens every month. + FREQUENCY_MONTHLY = 3; + } + + // Optional. Enables or pauses the fetch schedule. + bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The day of the month when the data source file should be + // fetched (1-31). This field can only be set for monthly frequency. + int32 day_of_month = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The hour of the day when the data source file should be + // fetched. Minutes and seconds are not supported and will be ignored. + google.type.TimeOfDay time_of_day = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The day of the week when the data source file should be + // fetched. This field can only be set for weekly frequency. + google.type.DayOfWeek day_of_week = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Time zone](https://cldr.unicode.org) used for schedule. UTC by + // default. For example, "America/Los_Angeles". + string time_zone = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The frequency describing fetch schedule. + Frequency frequency = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The URL where the data source file can be fetched. Google + // Merchant Center supports automatic scheduled uploads using the HTTP, + // HTTPS or SFTP protocols, so the value will need to be a valid link using + // one of those three protocols. Immutable for Google Sheets files. + string fetch_uri = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An optional user name for [fetch + // url][google.shopping.content.bundles.DataSources.FileInput.fetch_url]. + // Used for [submitting data sources through + // SFTP](https://support.google.com/merchants/answer/13813117). + string username = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An optional password for [fetch + // url][google.shopping.content.bundles.DataSources.FileInput.fetch_url]. + // Used for [submitting data sources through + // SFTP](https://support.google.com/merchants/answer/13813117). + string password = 9 [(google.api.field_behavior) = OPTIONAL]; + } + + // The method of file delivery. + enum FileInputType { + // File input type unspecified. + FILE_INPUT_TYPE_UNSPECIFIED = 0; + + // The file is uploaded through SFTP, Google Cloud Storage or manually in + // the Merchant Center. + UPLOAD = 1; + + // The file is fetched from the configured + // [fetch_uri][google.shopping.content.bundles.DataSources.FileInput.FetchSettings.fetch_uri]. + FETCH = 2; + + // The file is fetched from Google Sheets specified in the + // [fetch_uri][google.shopping.content.bundles.DataSources.FileInput.FetchSettings.fetch_uri]. + GOOGLE_SHEETS = 3; + } + + // Optional. Fetch details to deliver the data source. It contains settings + // for `FETCH` and `GOOGLE_SHEETS` file input types. The required fields vary + // based on the frequency of fetching. + FetchSettings fetch_settings = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The file name of the data source. Required for `UPLOAD` file + // input type. + string file_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The type of file input. + FileInputType file_input_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..fa95a941e --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,56 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.datasources.v1beta.DataSourcesService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: 'google.shopping.merchant.datasources.v1beta.DataSourcesService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.datasources.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/BUILD.bazel index ed0ec9ce0..1d5147f67 100644 --- a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/BUILD.bazel @@ -1,4 +1,3 @@ - # This file was automatically generated by BuildFileGenerator # https://github.com/googleapis/rules_gapic/tree/master/bazel @@ -10,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "inventories_proto", @@ -47,6 +49,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -81,6 +84,7 @@ java_gapic_library( deps = [ ":inventories_java_proto", "//google/shopping/type:type_java_proto", # Added manually + "//google/api:api_java_proto", ], ) @@ -112,6 +116,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -161,6 +166,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -214,6 +220,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -251,6 +258,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -282,6 +290,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -331,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -341,7 +351,6 @@ load( csharp_proto_library( name = "inventories_csharp_proto", - extra_opts = [], deps = [":inventories_proto"], ) @@ -358,6 +367,7 @@ csharp_gapic_library( grpc_service_config = "inventories_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", deps = [ ":inventories_csharp_grpc", ":inventories_csharp_proto", @@ -377,20 +387,21 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# load( -# "@com_google_googleapis_imports//:imports.bzl", -# "cc_grpc_library", -# "cc_proto_library", -# ) -# -# cc_proto_library( -# name = "inventories_cc_proto", -# deps = [":inventories_proto"], -# ) -# -# cc_grpc_library( -# name = "inventories_cc_grpc", -# srcs = [":inventories_proto"], -# grpc_only = True, -# deps = [":inventories_cc_proto"], -# ) +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "inventories_cc_proto", + deps = [":inventories_proto"], +) + +cc_grpc_library( + name = "inventories_cc_grpc", + srcs = [":inventories_proto"], + grpc_only = True, + deps = [":inventories_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/localinventory.proto b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/localinventory.proto index 6e128d2bc..7aef146c1 100644 --- a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/localinventory.proto +++ b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/localinventory.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,6 +28,10 @@ option go_package = "cloud.google.com/go/shopping/merchant/inventories/apiv1beta option java_multiple_files = true; option java_outer_classname = "LocalInventoryProto"; option java_package = "com.google.shopping.merchant.inventories.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Product" + pattern: "accounts/{account}/products/{product}" +}; // Service to manage local inventory for products service LocalInventoryService { @@ -83,7 +87,7 @@ service LocalInventoryService { // for a specific product at the store specified by // [`storeCode`][google.shopping.merchant.inventories.v1beta.LocalInventory.store_code]. // For a list of all accepted attribute values, see the [local product inventory -// feed specification](https://support.google.com/merchants/answer/3061342). +// data specification](https://support.google.com/merchants/answer/3061342). message LocalInventory { option (google.api.resource) = { type: "merchantapi.googleapis.com/LocalInventory" @@ -99,11 +103,15 @@ message LocalInventory { // if set by the client. int64 account = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. Store code (the store ID from your Business Profile) of the - // physical store the product is sold in. See the [Local product inventory - // feed specification](https://support.google.com/merchants/answer/3061342) - // for more information. - string store_code = 3 [(google.api.field_behavior) = REQUIRED]; + // Required. Immutable. Store code (the store ID from your Business Profile) + // of the physical store the product is sold in. See the [Local product + // inventory data + // specification](https://support.google.com/merchants/answer/3061342) for + // more information. + string store_code = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; // Price of the product at this store. google.shopping.type.Price price = 4; @@ -118,7 +126,7 @@ message LocalInventory { google.type.Interval sale_price_effective_date = 6; // Availability of the product at this store. - // For accepted attribute values, see the [local product inventory feed + // For accepted attribute values, see the [local product inventory data // specification](https://support.google.com/merchants/answer/3061342) optional string availability = 7; @@ -129,14 +137,14 @@ message LocalInventory { // Supported pickup method for this product. Unless the value is `"not // supported"`, this field must be submitted together with // `pickupSla`. - // For accepted attribute values, see the [local product inventory feed + // For accepted attribute values, see the [local product inventory data // specification](https://support.google.com/merchants/answer/3061342) optional string pickup_method = 9; // Relative time period from the order date for an order for this product, // from this store, to be ready for pickup. Must be submitted with // `pickupMethod`. - // For accepted attribute values, see the [local product inventory feed + // For accepted attribute values, see the [local product inventory data // specification](https://support.google.com/merchants/answer/3061342) optional string pickup_sla = 10; @@ -144,7 +152,7 @@ message LocalInventory { optional string instore_product_location = 11; // A list of custom (merchant-provided) attributes. You can also use - // `CustomAttribute` to submit any attribute of the feed specification in its + // `CustomAttribute` to submit any attribute of the data specification in its // generic form. repeated google.shopping.type.CustomAttribute custom_attributes = 12; } @@ -154,7 +162,12 @@ message ListLocalInventoriesRequest { // Required. The `name` of the parent product to list local inventories for. // Format: // `accounts/{account}/products/{product}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/LocalInventory" + } + ]; // The maximum number of `LocalInventory` resources for the given // product to return. The service returns fewer than this value if the number @@ -188,7 +201,12 @@ message ListLocalInventoriesResponse { message InsertLocalInventoryRequest { // Required. The account and product where this inventory will be inserted. // Format: `accounts/{account}/products/{product}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/LocalInventory" + } + ]; // Required. Local inventory information of the product. If the product // already has a `LocalInventory` resource for the same `storeCode`, full diff --git a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/merchantapi_v1beta.yaml index 31566c4ab..72826e7d0 100644 --- a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/merchantapi_v1beta.yaml +++ b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/merchantapi_v1beta.yaml @@ -35,44 +35,6 @@ publishing: common: destinations: - PACKAGE_MANAGER - cpp_settings: - common: - destinations: - - PACKAGE_MANAGER - php_settings: - common: - destinations: - - PACKAGE_MANAGER - python_settings: - common: - destinations: - - PACKAGE_MANAGER - node_settings: - common: - destinations: - - PACKAGE_MANAGER - dotnet_settings: - common: - destinations: - - PACKAGE_MANAGER - ruby_settings: - common: - destinations: - - PACKAGE_MANAGER - go_settings: - common: - destinations: - - PACKAGE_MANAGER - - version: google.shopping.merchant.reports.v1beta - launch_stage: BETA - java_settings: - common: - destinations: - - PACKAGE_MANAGER - cpp_settings: - common: - destinations: - - PACKAGE_MANAGER php_settings: common: destinations: diff --git a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/regionalinventory.proto b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/regionalinventory.proto index 756bef28c..87120253f 100644 --- a/third_party/googleapis/google/shopping/merchant/inventories/v1beta/regionalinventory.proto +++ b/third_party/googleapis/google/shopping/merchant/inventories/v1beta/regionalinventory.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -84,7 +84,7 @@ service RegionalInventoryService { // information like price and availability for a given product in a specific // [`region`][google.shopping.merchant.inventories.v1beta.RegionalInventory.region]. // For a list of all accepted attribute values, see the [regional product -// inventory feed +// inventory data // specification](https://support.google.com/merchants/answer/9698880). message RegionalInventory { option (google.api.resource) = { @@ -101,11 +101,14 @@ message RegionalInventory { // if set by the client. int64 account = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. ID of the region for this + // Required. Immutable. ID of the region for this // `RegionalInventory` resource. See the [Regional availability and // pricing](https://support.google.com/merchants/answer/9698880) for more // details. - string region = 3 [(google.api.field_behavior) = REQUIRED]; + string region = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; // Price of the product in this region. google.shopping.type.Price price = 4; @@ -120,12 +123,12 @@ message RegionalInventory { google.type.Interval sale_price_effective_date = 6; // Availability of the product in this region. - // For accepted attribute values, see the [regional product inventory feed + // For accepted attribute values, see the [regional product inventory data // specification](https://support.google.com/merchants/answer/3061342) optional string availability = 7; // A list of custom (merchant-provided) attributes. You can also use - // `CustomAttribute` to submit any attribute of the feed specification in its + // `CustomAttribute` to submit any attribute of the data specification in its // generic form. repeated google.shopping.type.CustomAttribute custom_attributes = 8; } @@ -134,7 +137,12 @@ message RegionalInventory { message ListRegionalInventoriesRequest { // Required. The `name` of the parent product to list `RegionalInventory` // resources for. Format: `accounts/{account}/products/{product}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/RegionalInventory" + } + ]; // The maximum number of `RegionalInventory` resources for the given product // to return. The service returns fewer than this value if the number of @@ -168,7 +176,12 @@ message ListRegionalInventoriesResponse { message InsertRegionalInventoryRequest { // Required. The account and product where this inventory will be inserted. // Format: `accounts/{account}/products/{product}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/RegionalInventory" + } + ]; // Required. Regional inventory information to add to the product. If the // product already has a `RegionalInventory` resource for the same `region`, diff --git a/third_party/googleapis/google/shopping/merchant/lfp/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/lfp/BUILD.bazel new file mode 100644 index 000000000..409a0a22e --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-lfp. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant lfp. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "lfp_ruby_wrapper", + srcs = ["//google/shopping/merchant/lfp/v1beta:lfp_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-lfp", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/lfp/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-lfp-ruby", + deps = [ + ":lfp_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/lfp/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/BUILD.bazel new file mode 100644 index 000000000..562384442 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/BUILD.bazel @@ -0,0 +1,409 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "lfp_proto", + srcs = [ + "lfpinventory.proto", + "lfpsale.proto", + "lfpstore.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", + "//google/shopping/type:type_proto", # Manual fix. Original :types_proto + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "lfp_proto_with_info", + deps = [ + ":lfp_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "lfp_java_proto", + deps = [":lfp_proto"], +) + +java_grpc_library( + name = "lfp_java_grpc", + srcs = [":lfp_proto"], + deps = [":lfp_java_proto"], +) + +java_gapic_library( + name = "lfp_java_gapic", + srcs = [":lfp_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "lfp_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":lfp_java_grpc", + "//google/shopping/type:type_proto" + ], + transport = "grpc+rest", + deps = [ + ":lfp_java_proto", + "//google/shopping/type:type_java_proto", # Added manually + ], +) + +java_gapic_test( + name = "lfp_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.lfp.v1beta.LfpInventoryServiceClientHttpJsonTest", + "com.google.shopping.merchant.lfp.v1beta.LfpInventoryServiceClientTest", + "com.google.shopping.merchant.lfp.v1beta.LfpSaleServiceClientHttpJsonTest", + "com.google.shopping.merchant.lfp.v1beta.LfpSaleServiceClientTest", + "com.google.shopping.merchant.lfp.v1beta.LfpStoreServiceClientHttpJsonTest", + "com.google.shopping.merchant.lfp.v1beta.LfpStoreServiceClientTest", + ], + runtime_deps = [":lfp_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-lfp-v1beta-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":lfp_java_gapic", + ":lfp_java_grpc", + ":lfp_java_proto", + ":lfp_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "lfp_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb", + protos = [":lfp_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto + ], +) + +go_gapic_library( + name = "lfp_go_gapic", + srcs = [":lfp_proto_with_info"], + grpc_service_config = "lfp_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta;lfp", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":lfp_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-lfp-v1beta-go", + deps = [ + ":lfp_go_gapic", + ":lfp_go_gapic_srcjar-metadata.srcjar", + ":lfp_go_gapic_srcjar-snippets.srcjar", + ":lfp_go_gapic_srcjar-test.srcjar", + ":lfp_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_import", +) + +py_import( + name = "shopping_type", + srcs = [ + "//google/shopping/type:type_py_gapic", +], +) + +py_gapic_library( + name = "lfp_py_gapic", + srcs = [":lfp_proto"], + grpc_service_config = "lfp_grpc_service_config.json", + opt_args = [ + "proto-plus-deps=google.shopping.type", # Added manually + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_lfp", + ], + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":shopping_type", # Added manually + ], +) + +py_test( + name = "lfp_py_gapic_test", + srcs = [ + "lfp_py_gapic_pytest.py", + "lfp_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":lfp_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-lfp-v1beta-py", + deps = [ + ":lfp_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "lfp_php_proto", + deps = [":lfp_proto"], +) + +php_gapic_library( + name = "lfp_php_gapic", + srcs = [":lfp_proto_with_info"], + grpc_service_config = "lfp_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":lfp_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-lfp-v1beta-php", + deps = [ + ":lfp_php_gapic", + ":lfp_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "lfp_nodejs_gapic", + package_name = "@google-shopping/lfp", + src = ":lfp_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "lfp_grpc_service_config.json", + package = "google.shopping.merchant.lfp.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-lfp-v1beta-nodejs", + deps = [ + ":lfp_nodejs_gapic", + ":lfp_proto", + "//google/shopping/type:type_proto" # Added manually + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "lfp_ruby_proto", + deps = [":lfp_proto"], +) + +ruby_grpc_library( + name = "lfp_ruby_grpc", + srcs = [":lfp_proto"], + deps = [":lfp_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "lfp_ruby_gapic", + srcs = [":lfp_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-lfp-v1beta", + "ruby-cloud-extra-dependencies=google-shopping-type=>0.0+<2.a", + ], + grpc_service_config = "lfp_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":lfp_ruby_grpc", + ":lfp_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-lfp-v1beta-ruby", + deps = [ + ":lfp_ruby_gapic", + ":lfp_ruby_grpc", + ":lfp_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "lfp_csharp_proto", + extra_opts = [], + deps = [":lfp_proto"], +) + +csharp_grpc_library( + name = "lfp_csharp_grpc", + srcs = [":lfp_proto"], + deps = [":lfp_csharp_proto"], +) + +csharp_gapic_library( + name = "lfp_csharp_gapic", + srcs = [":lfp_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "lfp_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":lfp_csharp_grpc", + ":lfp_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-lfp-v1beta-csharp", + deps = [ + ":lfp_csharp_gapic", + ":lfp_csharp_grpc", + ":lfp_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "lfp_cc_proto", + deps = [":lfp_proto"], +) + +cc_grpc_library( + name = "lfp_cc_grpc", + srcs = [":lfp_proto"], + grpc_only = True, + deps = [":lfp_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfp_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfp_grpc_service_config.json new file mode 100644 index 000000000..0e2eeac0d --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfp_grpc_service_config.json @@ -0,0 +1,17 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.shopping.merchant.lfp.v1beta.LfpInventoryService" }, + { "service": "google.shopping.merchant.lfp.v1beta.LfpStoreService" }, + { "service": "google.shopping.merchant.lfp.v1beta.LfpSaleService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpinventory.proto b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpinventory.proto new file mode 100644 index 000000000..8f5ea87a3 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpinventory.proto @@ -0,0 +1,149 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.lfp.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb"; +option java_multiple_files = true; +option java_outer_classname = "LfpInventoryProto"; +option java_package = "com.google.shopping.merchant.lfp.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// Service for a [LFP +// partner](https://support.google.com/merchants/answer/7676652) to submit local +// inventories for a merchant. +service LfpInventoryService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Inserts a `LfpInventory` resource for the given target merchant account. If + // the resource already exists, it will be replaced. The inventory + // automatically expires after 30 days. + rpc InsertLfpInventory(InsertLfpInventoryRequest) returns (LfpInventory) { + option (google.api.http) = { + post: "/lfp/v1beta/{parent=accounts/*}/lfpInventories:insert" + body: "lfp_inventory" + }; + } +} + +// Local Inventory for the merchant. +message LfpInventory { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/LfpInventory" + pattern: "accounts/{account}/lfpInventories/{target_merchant}~{store_code}~{offer}" + plural: "lfpInventories" + singular: "lfpInventory" + }; + + // Output only. Identifier. The name for the `LfpInventory` resource. + // Format: + // `accounts/{account}/lfpInventories/{target_merchant}~{store_code}~{offer}` + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Required. The Merchant Center ID of the merchant to submit the inventory + // for. + int64 target_account = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The identifier of the merchant's store. Either the store code + // inserted through `InsertLfpStore` or the store code in the Business + // Profile. + string store_code = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. A unique identifier for the product. If both + // inventories and sales are submitted for a merchant, this id should match + // for the same product. + // + // **Note**: if the merchant sells the same product new and used, they should + // have different IDs. + string offer_id = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. The [CLDR territory + // code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml) + // for the country where the product is sold. + string region_code = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The two-letter ISO 639-1 language code for the item. + string content_language = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The Global Trade Item Number of the product. + optional string gtin = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The current price of the product. + google.shopping.type.Price price = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Availability of the product at this store. + // For accepted attribute values, see the [local product inventory data + // specification](https://support.google.com/merchants/answer/3061342) + string availability = 9 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Quantity of the product available at this store. Must be greater + // than or equal to zero. + optional int64 quantity = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The time when the inventory is collected. If not set, it will be + // set to the time when the inventory is submitted. + google.protobuf.Timestamp collection_time = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Supported pickup method for this offer. Unless the value is "not + // supported", this field must be submitted together with `pickupSla`. For + // accepted attribute values, see the [local product inventory data + // specification](https://support.google.com/merchants/answer/3061342). + optional string pickup_method = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expected date that an order will be ready for pickup relative to + // the order date. Must be submitted together with `pickupMethod`. For + // accepted attribute values, see the [local product inventory data + // specification](https://support.google.com/merchants/answer/3061342). + optional string pickup_sla = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The [feed + // label](https://developers.google.com/shopping-content/guides/products/feed-labels) + // for the product. If this is not set, it will default to `regionCode`. + optional string feed_label = 14 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `InsertLfpInventory` method. +message InsertLfpInventoryRequest { + // Required. The LFP provider account. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/LfpInventory" + } + ]; + + // Required. The inventory to insert. + LfpInventory lfp_inventory = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpsale.proto b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpsale.proto new file mode 100644 index 000000000..d3efc95a6 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpsale.proto @@ -0,0 +1,122 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.lfp.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb"; +option java_multiple_files = true; +option java_outer_classname = "LfpSaleProto"; +option java_package = "com.google.shopping.merchant.lfp.v1beta"; + +// Service for a [LFP +// partner](https://support.google.com/merchants/answer/7676652) to submit sales +// data for a merchant. +service LfpSaleService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Inserts a `LfpSale` for the given merchant. + rpc InsertLfpSale(InsertLfpSaleRequest) returns (LfpSale) { + option (google.api.http) = { + post: "/lfp/v1beta/{parent=accounts/*}/lfpSales:insert" + body: "lfp_sale" + }; + } +} + +// A sale for the merchant. +message LfpSale { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/LfpSale" + pattern: "accounts/{account}/lfpSales/{sale}" + plural: "lfpSales" + singular: "lfpSale" + }; + + // Output only. Identifier. The name of the `LfpSale` resource. + // Format: + // `accounts/{account}/lfpSales/{sale}` + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Required. The Merchant Center ID of the merchant to submit the sale for. + int64 target_account = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The identifier of the merchant's store. Either a `storeCode` + // inserted through the API or the code of the store in the Business Profile. + string store_code = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. A unique identifier for the product. If both inventories and + // sales are submitted for a merchant, this id should match for the same + // product. + // + // **Note**: if the merchant sells the same product new and used, they should + // have different IDs. + string offer_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The [CLDR territory + // code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml) + // for the country where the product is sold. + string region_code = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The two-letter ISO 639-1 language code for the item. + string content_language = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Global Trade Item Number of the sold product. + string gtin = 7 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unit price of the product. + google.shopping.type.Price price = 8 [(google.api.field_behavior) = REQUIRED]; + + // Required. The relative change of the available quantity. Negative for items + // returned. + int64 quantity = 9 [(google.api.field_behavior) = REQUIRED]; + + // Required. The timestamp for the sale. + google.protobuf.Timestamp sale_time = 10 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. System generated globally unique ID for the `LfpSale`. + optional string uid = 11 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. The [feed + // label](https://developers.google.com/shopping-content/guides/products/feed-labels) + // for the product. If this is not set, it will default to `regionCode`. + optional string feed_label = 12 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the InsertLfpSale method. +message InsertLfpSaleRequest { + // Required. The LFP provider account. + // Format: `accounts/{lfp_partner}` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The sale to insert. + LfpSale lfp_sale = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpstore.proto b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpstore.proto new file mode 100644 index 000000000..37b37c1b6 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/lfpstore.proto @@ -0,0 +1,249 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.lfp.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb"; +option java_multiple_files = true; +option java_outer_classname = "LfpStoreProto"; +option java_package = "com.google.shopping.merchant.lfp.v1beta"; + +// Service for a [LFP +// partner](https://support.google.com/merchants/answer/7676652) to submit local +// stores for a merchant. +service LfpStoreService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves information about a store. + rpc GetLfpStore(GetLfpStoreRequest) returns (LfpStore) { + option (google.api.http) = { + get: "/lfp/v1beta/{name=accounts/*/lfpStores/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Inserts a store for the target merchant. If the store with the same store + // code already exists, it will be replaced. + rpc InsertLfpStore(InsertLfpStoreRequest) returns (LfpStore) { + option (google.api.http) = { + post: "/lfp/v1beta/{parent=accounts/*}/lfpStores:insert" + body: "lfp_store" + }; + option (google.api.method_signature) = "parent,lfp_store"; + } + + // Deletes a store for a target merchant. + rpc DeleteLfpStore(DeleteLfpStoreRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/lfp/v1beta/{name=accounts/*/lfpStores/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the stores of the target merchant, specified by the filter in + // `ListLfpStoresRequest`. + rpc ListLfpStores(ListLfpStoresRequest) returns (ListLfpStoresResponse) { + option (google.api.http) = { + get: "/lfp/v1beta/{parent=accounts/*}/lfpStores" + }; + option (google.api.method_signature) = "parent"; + } +} + +// A store for the merchant. This will be used to match to a store under the +// Google Business Profile of the target merchant. If a matching store can't be +// found, the inventories or sales submitted with the store code will not be +// used. +message LfpStore { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/LfpStore" + pattern: "accounts/{account}/lfpStores/{target_merchant}~{store_code}" + plural: "lfpStores" + singular: "lfpStore" + }; + + // The state of matching `LfpStore` to a Google Business Profile. + enum StoreMatchingState { + // Store matching state unspecified. + STORE_MATCHING_STATE_UNSPECIFIED = 0; + + // The `LfpStore` is successfully matched with a Google Business Profile + // store. + STORE_MATCHING_STATE_MATCHED = 1; + + // The `LfpStore` is not matched with a Google Business Profile store. + STORE_MATCHING_STATE_FAILED = 2; + } + + // Output only. Identifier. The name of the `LfpStore` resource. + // Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}` + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Required. The Merchant Center id of the merchant to submit the store for. + int64 target_account = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. A store identifier that is unique for the target + // merchant. + string store_code = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. The street address of the store. + // Example: 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA. + string store_address = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The merchant or store name. + optional string store_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The store phone number in + // [E.164](https://en.wikipedia.org/wiki/E.164) format. Example: + // `+15556767888` + optional string phone_number = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The website URL for the store or merchant. + optional string website_uri = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Google My Business category + // id](https://gcid-explorer.corp.google.com/static/gcid.html). + repeated string gcid_category = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The [Google Place + // Id](https://developers.google.com/maps/documentation/places/web-service/place-id#id-overview) + // of the store location. + optional string place_id = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. The state of matching to a Google Business Profile. + // See + // [matchingStateHint][google.shopping.merchant.lfp.v1beta.LfpStore.matching_state_hint] + // for further details if no match is found. + StoreMatchingState matching_state = 10 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Output only. The hint of why the matching has failed. This is + // only set when + // [matchingState][google.shopping.merchant.lfp.v1beta.LfpStore.matching_state]=`STORE_MATCHING_STATE_FAILED`. + // + // Possible values are: + // + // - "`linked-store-not-found`": There aren't any Google Business + // Profile stores available for matching. + // - "`store-match-not-found`": The provided `LfpStore` couldn't be matched to + // any of the connected Google Business Profile stores. Merchant Center + // account is connected correctly and stores are available on Google Business + // Profile, but the `LfpStore` location address does not match with Google + // Business Profile stores' addresses. Update the `LfpStore` address or Google + // Business Profile store address to match correctly. + // - "`store-match-unverified`": The provided `LfpStore` couldn't be matched + // to any of the connected Google Business Profile stores, as the matched + // Google Business Profile store is unverified. Go through the Google Business + // Profile verification process to match correctly. + optional string matching_state_hint = 11 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; +} + +// Request message for the `GetLfpStore` method. +message GetLfpStoreRequest { + // Required. The name of the store to retrieve. + // Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/LfpStore" + } + ]; +} + +// Request message for the InsertLfpStore method. +message InsertLfpStoreRequest { + // Required. The LFP provider account + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/LfpStore" + } + ]; + + // Required. The store to insert. + LfpStore lfp_store = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the DeleteLfpStore method. +message DeleteLfpStoreRequest { + // Required. The name of the store to delete for the target merchant account. + // Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/LfpStore" + } + ]; +} + +// Request message for the ListLfpStores method. +message ListLfpStoresRequest { + // Required. The LFP partner. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/LfpStore" + } + ]; + + // Required. The Merchant Center id of the merchant to list stores for. + int64 target_account = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The maximum number of `LfpStore` resources for the given account + // to return. The service returns fewer than this value if the number of + // stores for the given account is less than the `pageSize`. The default value + // is 250. The maximum value is 1000; If a value higher than the maximum is + // specified, then the `pageSize` will default to the maximum. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListLfpStoresRequest` + // call. Provide the page token to retrieve the subsequent page. When + // paginating, all other parameters provided to `ListLfpStoresRequest` must + // match the call that provided the page token. The token returned as + // [nextPageToken][google.shopping.merchant.lfp.v1beta.ListLfpStoresResponse.next_page_token] + // in the response to the previous request. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the ListLfpStores method. +message ListLfpStoresResponse { + // The stores from the specified merchant. + repeated LfpStore lfp_stores = 1; + + // A token, which can be sent as `pageToken` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/lfp/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..13914dccd --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/lfp/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,66 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.lfp.v1beta.LfpInventoryService +- name: google.shopping.merchant.lfp.v1beta.LfpSaleService +- name: google.shopping.merchant.lfp.v1beta.LfpStoreService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: google.shopping.merchant.lfp.v1beta.LfpInventoryService.InsertLfpInventory + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.lfp.v1beta.LfpSaleService.InsertLfpSale + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: 'google.shopping.merchant.lfp.v1beta.LfpStoreService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.lfp.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/notifications/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/notifications/BUILD.bazel new file mode 100644 index 000000000..53bfc387f --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/notifications/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-notifications. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant notifications. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "notifications_ruby_wrapper", + srcs = ["//google/shopping/merchant/notifications/v1beta:notifications_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-notifications", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/notifications/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-notifications-ruby", + deps = [ + ":notifications_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/notifications/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/BUILD.bazel new file mode 100644 index 000000000..35c663509 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/BUILD.bazel @@ -0,0 +1,401 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "notifications_proto", + srcs = [ + "notificationsapi.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/shopping/type:type_proto", # Manual fix. Original :types_proto + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + ], +) + +proto_library_with_info( + name = "notifications_proto_with_info", + deps = [ + ":notifications_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "notifications_java_proto", + deps = [":notifications_proto"], +) + +java_grpc_library( + name = "notifications_java_grpc", + srcs = [":notifications_proto"], + deps = [":notifications_java_proto"], +) + +java_gapic_library( + name = "notifications_java_gapic", + srcs = [":notifications_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "notifications_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":notifications_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":notifications_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "notifications_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.notifications.v1beta.NotificationsApiServiceClientHttpJsonTest", + "com.google.shopping.merchant.notifications.v1beta.NotificationsApiServiceClientTest", + ], + runtime_deps = [":notifications_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-notifications-v1beta-java", + transport = "grpc+rest", + deps = [ + ":notifications_java_gapic", + ":notifications_java_grpc", + ":notifications_java_proto", + ":notifications_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "notifications_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/notifications/apiv1beta/notificationspb", + protos = [":notifications_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto + ], +) + +go_gapic_library( + name = "notifications_go_gapic", + srcs = [":notifications_proto_with_info"], + grpc_service_config = "notifications_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/notifications/apiv1beta;notifications", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":notifications_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-notifications-v1beta-go", + deps = [ + ":notifications_go_gapic", + ":notifications_go_gapic_srcjar-test.srcjar", + ":notifications_go_gapic_srcjar-metadata.srcjar", + ":notifications_go_gapic_srcjar-snippets.srcjar", + ":notifications_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_import", +) + +py_import( + name = "shopping_type", + srcs = [ + "//google/shopping/type:type_py_gapic", +], +) + +py_gapic_library( + name = "notifications_py_gapic", + srcs = [":notifications_proto"], + grpc_service_config = "notifications_grpc_service_config.json", + opt_args = [ + "proto-plus-deps=google.shopping.type", # Added manually + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_notifications", + ], + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":shopping_type", # Added manually + ], +) + +py_test( + name = "notifications_py_gapic_test", + srcs = [ + "notifications_py_gapic_pytest.py", + "notifications_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":notifications_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-notifications-v1beta-py", + deps = [ + ":notifications_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "notifications_php_proto", + deps = [":notifications_proto"], +) + +php_gapic_library( + name = "notifications_php_gapic", + srcs = [":notifications_proto_with_info"], + grpc_service_config = "notifications_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":notifications_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-notifications-v1beta-php", + deps = [ + ":notifications_php_gapic", + ":notifications_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "notifications_nodejs_gapic", + package_name = "@google-shopping/notifications", + src = ":notifications_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "notifications_grpc_service_config.json", + package = "google.shopping.merchant.notifications.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-notifications-v1beta-nodejs", + deps = [ + ":notifications_nodejs_gapic", + ":notifications_proto", + "//google/shopping/type:type_proto" # Added manual + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "notifications_ruby_proto", + deps = [":notifications_proto"], +) + +ruby_grpc_library( + name = "notifications_ruby_grpc", + srcs = [":notifications_proto"], + deps = [":notifications_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "notifications_ruby_gapic", + srcs = [":notifications_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-notifications-v1beta", + "ruby-cloud-extra-dependencies=google-shopping-type=>0.0+<2.a", + ], + grpc_service_config = "notifications_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":notifications_ruby_grpc", + ":notifications_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-notifications-v1beta-ruby", + deps = [ + ":notifications_ruby_gapic", + ":notifications_ruby_grpc", + ":notifications_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "notifications_csharp_proto", + extra_opts = [], + deps = [":notifications_proto"], +) + +csharp_grpc_library( + name = "notifications_csharp_grpc", + srcs = [":notifications_proto"], + deps = [":notifications_csharp_proto"], +) + +csharp_gapic_library( + name = "notifications_csharp_gapic", + srcs = [":notifications_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "notifications_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":notifications_csharp_grpc", + ":notifications_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-notifications-v1beta-csharp", + deps = [ + ":notifications_csharp_gapic", + ":notifications_csharp_grpc", + ":notifications_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "notifications_cc_proto", + deps = [":notifications_proto"], +) + +cc_grpc_library( + name = "notifications_cc_grpc", + srcs = [":notifications_proto"], + grpc_only = True, + deps = [":notifications_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/notifications/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..214048b92 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,59 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.notifications.v1beta.NotificationsApiService + +types: +- name: google.shopping.merchant.notifications.v1beta.ProductStatusChangeMessage + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: 'google.shopping.merchant.notifications.v1beta.NotificationsApiService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.notifications.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/notifications/v1beta/notifications_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/notifications_grpc_service_config.json new file mode 100644 index 000000000..b0c877d6c --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/notifications_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.shopping.merchant.notifications.v1beta.NotificationsApiService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} \ No newline at end of file diff --git a/third_party/googleapis/google/shopping/merchant/notifications/v1beta/notificationsapi.proto b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/notificationsapi.proto new file mode 100644 index 000000000..27c225b26 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/notifications/v1beta/notificationsapi.proto @@ -0,0 +1,289 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.notifications.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/notifications/apiv1beta/notificationspb;notificationspb"; +option java_multiple_files = true; +option java_outer_classname = "NotificationsApiProto"; +option java_package = "com.google.shopping.merchant.notifications.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// Service to manage notification subscriptions for merchants +service NotificationsApiService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Gets notification subscriptions for an account. + rpc GetNotificationSubscription(GetNotificationSubscriptionRequest) + returns (NotificationSubscription) { + option (google.api.http) = { + get: "/notifications/v1beta/{name=accounts/*/notificationsubscriptions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a notification subscription for a merchant. We will allow the + // following types of notification subscriptions to exist together (per + // merchant as a subscriber per event type): + // 1. Subscription for all managed accounts + subscription for self + // 2. Multiple "partial" subscriptions for managed accounts + subscription + // for self + // + // we will not allow (per merchant as a subscriber per event type): + // 1. multiple self subscriptions. + // 2. multiple "all managed accounts" subscriptions. + // 3. all and partial subscriptions at the same time. + // 4. multiple partial subscriptions for the same target account + rpc CreateNotificationSubscription(CreateNotificationSubscriptionRequest) + returns (NotificationSubscription) { + option (google.api.http) = { + post: "/notifications/v1beta/{parent=accounts/*}/notificationsubscriptions" + body: "notification_subscription" + }; + option (google.api.method_signature) = "parent,notification_subscription"; + } + + // Updates an existing notification subscription for a merchant. + rpc UpdateNotificationSubscription(UpdateNotificationSubscriptionRequest) + returns (NotificationSubscription) { + option (google.api.http) = { + patch: "/notifications/v1beta/{notification_subscription.name=accounts/*/notificationsubscriptions/*}" + body: "notification_subscription" + }; + option (google.api.method_signature) = + "notification_subscription,update_mask"; + } + + // Deletes a notification subscription for a merchant. + rpc DeleteNotificationSubscription(DeleteNotificationSubscriptionRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/notifications/v1beta/{name=accounts/*/notificationsubscriptions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets all the notification subscriptions for a merchant. + rpc ListNotificationSubscriptions(ListNotificationSubscriptionsRequest) + returns (ListNotificationSubscriptionsResponse) { + option (google.api.http) = { + get: "/notifications/v1beta/{parent=accounts/*}/notificationsubscriptions" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Enum to specify the resource that is being changed to notify the merchant +// about. +enum Resource { + // Unspecified resource + RESOURCE_UNSPECIFIED = 0; + + // Resource type : product + PRODUCT = 1; +} + +// Enum to specify the attribute in the resource that is being changed to +// notify the merchant about. +enum Attribute { + // Unspecified attribute + ATTRIBUTE_UNSPECIFIED = 0; + + // Status of the changed entity + STATUS = 1; +} + +// Request message for the GetNotificationSubscription method. +message GetNotificationSubscriptionRequest { + // Required. The `name` of the notification subscription. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/NotificationSubscription" + } + ]; +} + +// Request message for the CreateNotificationSubscription method. +message CreateNotificationSubscriptionRequest { + // Required. The merchant account that owns the new notification subscription. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/NotificationSubscription" + } + ]; + + // Required. The notification subscription to create. + NotificationSubscription notification_subscription = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the UpdateNotificationSubscription method. +message UpdateNotificationSubscriptionRequest { + // Required. The new version of the notification subscription that should be + // updated. + NotificationSubscription notification_subscription = 1 + [(google.api.field_behavior) = REQUIRED]; + + // List of fields being updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for the DeleteNotificationSubscription method. +message DeleteNotificationSubscriptionRequest { + // Required. The name of the notification subscription to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/NotificationSubscription" + } + ]; +} + +// Request message for the ListNotificationSubscription method. +message ListNotificationSubscriptionsRequest { + // Required. The merchant account who owns the notification subscriptions. + // Format: `accounts/{account}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/NotificationSubscription" + } + ]; + + // The maximum number of notification subscriptions to return in a page. + // The default value for `page_size` is 100. The + // maximum value is `200`. Values above `200` will be coerced to `200`. + int32 page_size = 2; + + // Token (if provided) to retrieve the subsequent page. All other parameters + // must match the original call that provided the page token. + string page_token = 3; +} + +// Response message for the ListNotificationSubscription method. +message ListNotificationSubscriptionsResponse { + // The list of notification subscriptions requested by the merchant. + repeated NotificationSubscription notification_subscriptions = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Represents a notification subscription owned by a Merchant account. +message NotificationSubscription { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/NotificationSubscription" + pattern: "accounts/{account}/notificationsubscriptions/{notification_subscription}" + }; + + // Represents the event type that the merchant is interested in receiving + // notifications for. + enum NotificationEventType { + // Notifications event type is unspecified. + NOTIFICATION_EVENT_TYPE_UNSPECIFIED = 0; + + // Notification of product status changes, for example when product becomes + // disapproved. + PRODUCT_STATUS_CHANGE = 1; + } + + oneof interested_in { + // If this value is true, the requesting account is notified of the + // specified event for all managed accounts (can be subaccounts or other + // linked accounts) including newly added accounts on a daily basis. + bool all_managed_accounts = 3; + + // The `name` of the account you want to receive notifications for. + // Format: `accounts/{account}` + string target_account = 4; + } + + // Output only. The `name` of the notification configuration. Generated by the + // Content API upon creation of a new `NotificationSubscription`. The + // `account` represents the merchant ID of the merchant that owns the + // configuration. Format: + // `accounts/{account}/notificationsubscriptions/{notification_subscription}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The event that the merchant wants to be notified about. + NotificationEventType registered_event = 2; + + // URL to be used to push the notification to the merchant. + string call_back_uri = 5; +} + +// The change that happened to the product including old value, new value, +// country code as the region code and reporting context. +message ProductChange { + // The old value of the changed resource or attribute. + optional string old_value = 1; + + // The new value of the changed resource or attribute. + optional string new_value = 2; + + // Countries that have the change (if applicable) + optional string region_code = 3; + + // Reporting contexts that have the change (if applicable) + optional google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 4; +} + +// The message that the merchant will receive to notify about product status +// change event +message ProductStatusChangeMessage { + // The target account that owns the entity that changed. + // Format : `accounts/{merchant_id}` + optional string account = 1; + + // The account that manages the merchant's account. can be the same as + // merchant id if it is standalone account. Format : + // `accounts/{service_provider_id}` + optional string managing_account = 2; + + // The resource that changed, in this case it will always be `Product`. + optional Resource resource_type = 3; + + // The attribute in the resource that changed, in this case it will be always + // `Status`. + optional Attribute attribute = 4; + + // A message to describe the change that happened to the product + repeated ProductChange changes = 5; + + // The product id. + optional string resource_id = 6; + + // The product name. + // Format: `{product.name=accounts/{account}/products/{product}}` + optional string resource = 7; +} diff --git a/third_party/googleapis/google/shopping/merchant/products/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/products/BUILD.bazel new file mode 100644 index 000000000..d86563730 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-products. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant products. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "products_ruby_wrapper", + srcs = ["//google/shopping/merchant/products/v1beta:products_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-products", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/products/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-products-ruby", + deps = [ + ":products_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/products/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/products/v1beta/BUILD.bazel new file mode 100644 index 000000000..572bf2aa2 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/v1beta/BUILD.bazel @@ -0,0 +1,411 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "products_proto", + srcs = [ + "productinputs.proto", + "products.proto", + "products_common.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/shopping/type:type_proto", # Manual fix. Original :types_proto + "//google/type:interval_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "products_proto_with_info", + deps = [ + ":products_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "products_java_proto", + deps = [ + ":products_proto", + "//google/shopping/type:type_proto", # Added manually + ], +) + +java_grpc_library( + name = "products_java_grpc", + srcs = [":products_proto"], + deps = [":products_java_proto"], +) + +java_gapic_library( + name = "products_java_gapic", + srcs = [":products_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "products_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":products_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":products_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "products_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.products.v1beta.ProductInputsServiceClientHttpJsonTest", + "com.google.shopping.merchant.products.v1beta.ProductInputsServiceClientTest", + "com.google.shopping.merchant.products.v1beta.ProductsServiceClientHttpJsonTest", + "com.google.shopping.merchant.products.v1beta.ProductsServiceClientTest", + ], + runtime_deps = [":products_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-products-v1beta-java", + transport = "grpc+rest", + deps = [ + ":products_java_gapic", + ":products_java_grpc", + ":products_java_proto", + ":products_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "products_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/products/apiv1beta/productspb", + protos = [":products_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto + "//google/type:interval_go_proto", + ], +) + +go_gapic_library( + name = "products_go_gapic", + srcs = [":products_proto_with_info"], + grpc_service_config = "products_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/products/apiv1beta;products", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":products_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-products-v1beta-go", + deps = [ + ":products_go_gapic", + ":products_go_gapic_srcjar-test.srcjar", + ":products_go_gapic_srcjar-metadata.srcjar", + ":products_go_gapic_srcjar-snippets.srcjar", + ":products_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_import", + "py_test", +) + +py_import( + name = "shopping_type", + srcs = [ + "//google/shopping/type:type_py_gapic", + ], +) + +py_gapic_library( + name = "products_py_gapic", + srcs = [":products_proto"], + grpc_service_config = "products_grpc_service_config.json", + opt_args = [ + "proto-plus-deps=google.shopping.type", # Added manually + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_products", + ], + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":shopping_type", # Added manually + ], +) + +py_test( + name = "products_py_gapic_test", + srcs = [ + "products_py_gapic_pytest.py", + "products_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":products_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-products-v1beta-py", + deps = [ + ":products_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "products_php_proto", + deps = [":products_proto"], +) + +php_gapic_library( + name = "products_php_gapic", + srcs = [":products_proto_with_info"], + grpc_service_config = "products_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":products_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-products-v1beta-php", + deps = [ + ":products_php_gapic", + ":products_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "products_nodejs_gapic", + package_name = "@google-shopping/products", + src = ":products_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "products_grpc_service_config.json", + package = "google.shopping.merchant.products.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-products-v1beta-nodejs", + deps = [ + ":products_nodejs_gapic", + ":products_proto", + "//google/shopping/type:type_proto", # Added manually + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "products_ruby_proto", + deps = [":products_proto"], +) + +ruby_grpc_library( + name = "products_ruby_grpc", + srcs = [":products_proto"], + deps = [":products_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "products_ruby_gapic", + srcs = [":products_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-products-v1beta", + "ruby-cloud-extra-dependencies=google-shopping-type=>0.0+<2.a", + ], + grpc_service_config = "products_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":products_ruby_grpc", + ":products_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-merchant-products-v1beta-ruby", + deps = [ + ":products_ruby_gapic", + ":products_ruby_grpc", + ":products_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "products_csharp_proto", + extra_opts = [], + deps = [":products_proto"], +) + +csharp_grpc_library( + name = "products_csharp_grpc", + srcs = [":products_proto"], + deps = [":products_csharp_proto"], +) + +csharp_gapic_library( + name = "products_csharp_gapic", + srcs = [":products_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "products_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":products_csharp_grpc", + ":products_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-products-v1beta-csharp", + deps = [ + ":products_csharp_gapic", + ":products_csharp_grpc", + ":products_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "products_cc_proto", + deps = [":products_proto"], +) + +cc_grpc_library( + name = "products_cc_grpc", + srcs = [":products_proto"], + grpc_only = True, + deps = [":products_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/products/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/products/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..20d022de5 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,69 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.products.v1beta.ProductInputsService +- name: google.shopping.merchant.products.v1beta.ProductsService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: google.shopping.merchant.products.v1beta.ProductInputsService.DeleteProductInput + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.products.v1beta.ProductInputsService.InsertProductInput + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.products.v1beta.ProductsService.GetProduct + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.products.v1beta.ProductsService.ListProducts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.products.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/products/v1beta/productinputs.proto b/third_party/googleapis/google/shopping/merchant/products/v1beta/productinputs.proto new file mode 100644 index 000000000..88cbe1d5f --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/v1beta/productinputs.proto @@ -0,0 +1,207 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.products.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/shopping/merchant/products/v1beta/products_common.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspb"; +option java_multiple_files = true; +option java_outer_classname = "ProductInputsProto"; +option java_package = "com.google.shopping.merchant.products.v1beta"; + +// Service to use ProductInput resource. +// This service works for products with online channel only. +service ProductInputsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Uploads a product input to your Merchant Center account. If an input + // with the same contentLanguage, offerId, and dataSource already exists, + // this method replaces that entry. + // + // After inserting, updating, or deleting a product input, it may take several + // minutes before the processed product can be retrieved. + rpc InsertProductInput(InsertProductInputRequest) returns (ProductInput) { + option (google.api.http) = { + post: "/products/v1beta/{parent=accounts/*}/productInputs:insert" + body: "product_input" + }; + } + + // Deletes a product input from your Merchant Center account. + // + // After inserting, updating, or deleting a product input, it may take several + // minutes before the processed product can be retrieved. + rpc DeleteProductInput(DeleteProductInputRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/products/v1beta/{name=accounts/*/productInputs/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// This resource represents input data you submit for a product, not the +// processed product that you see in Merchant Center, in Shopping ads, or across +// Google surfaces. Product inputs, rules and supplemental data source data are +// combined to create the processed +// [product][google.shopping.content.bundles.Products.Product]. +// +// Required product input attributes to pass data validation checks are +// primarily defined in the [Products Data +// Specification](https://support.google.com/merchants/answer/188494). +// +// The following attributes are required: +// [feedLabel][google.shopping.content.bundles.Products.feed_label], +// [contentLanguage][google.shopping.content.bundles.Products.content_language] +// and [offerId][google.shopping.content.bundles.Products.offer_id]. +// +// After inserting, updating, or deleting a product input, it may take several +// minutes before the processed product can be retrieved. +// +// All fields in the product input and its sub-messages match the English name +// of their corresponding attribute in the vertical spec with [some +// exceptions](https://support.google.com/merchants/answer/7052112). +message ProductInput { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/ProductInput" + pattern: "accounts/{account}/productInputs/{productinput}" + plural: "productInputs" + singular: "productInput" + }; + + // Identifier. The name of the product input. + // Format: + // `"{productinput.name=accounts/{account}/productInputs/{productinput}}"` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The name of the processed product. + // Format: + // `"{product.name=accounts/{account}/products/{product}}"` + string product = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The + // [channel](https://support.google.com/merchants/answer/7361332) of the + // product. + google.shopping.type.Channel.ChannelEnum channel = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. Your unique identifier for the product. This is the + // same for the product input and processed product. Leading and trailing + // whitespaces are stripped and multiple whitespaces are replaced by a single + // whitespace upon submission. See the [products data + // specification](https://support.google.com/merchants/answer/188494#id) for + // details. + string offer_id = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The two-letter [ISO + // 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the + // product. + string content_language = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The [feed + // label](https://developers.google.com/shopping-content/guides/products/feed-labels) + // for the product. + string feed_label = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. Represents the existing version (freshness) of the product, which + // can be used to preserve the right order when multiple updates are done at + // the same time. + // + // If set, the insertion is prevented when version number is lower than + // the current version number of the existing product. Re-insertion (for + // example, product refresh after 30 days) can be performed with the current + // `version_number`. + // + // Only supported for insertions into primary data sources. + // + // If the operation is prevented, the aborted exception will be + // thrown. + optional int64 version_number = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of product attributes. + Attributes attributes = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of custom (merchant-provided) attributes. It can also be + // used for submitting any attribute of the data specification in its generic + // form (for example, + // `{ "name": "size type", "value": "regular" }`). + // This is useful for submitting attributes not explicitly exposed by the + // API, such as additional attributes used for Buy on Google. + // Maximum allowed number of characters for each + // custom attribute is 10240 (represents sum of characters for name and + // value). Maximum 2500 custom attributes can be set per product, with total + // size of 102.4kB. Underscores in custom attribute names are replaced by + // spaces upon insertion. + repeated google.shopping.type.CustomAttribute custom_attributes = 9 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the InsertProductInput method. +message InsertProductInputRequest { + // Required. The account where this product will be inserted. + // Format: accounts/{account} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/Product" + } + ]; + + // Required. The product input to insert. + ProductInput product_input = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The primary or supplemental product data source name. If the + // product already exists and data source provided is different, then the + // product will be moved to a new data source. Format: + // `accounts/{account}/dataSources/{datasource}`. + string data_source = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the DeleteProductInput method. +message DeleteProductInputRequest { + // Required. The name of the product input resource to delete. + // Format: accounts/{account}/productInputs/{product} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/ProductInput" + } + ]; + + // Required. The primary or supplemental data source from which the product + // input should be deleted. Format: + // `accounts/{account}/dataSources/{datasource}`. + string data_source = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/shopping/merchant/products/v1beta/products.proto b/third_party/googleapis/google/shopping/merchant/products/v1beta/products.proto new file mode 100644 index 000000000..d163bb7a4 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/v1beta/products.proto @@ -0,0 +1,193 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.products.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/shopping/merchant/products/v1beta/products_common.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspb"; +option java_multiple_files = true; +option java_outer_classname = "ProductsProto"; +option java_package = "com.google.shopping.merchant.products.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// Service to use Product resource. +// This service works for products with online channel only. +service ProductsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the processed product from your Merchant Center account. + // + // After inserting, updating, or deleting a product input, it may take several + // minutes before the updated final product can be retrieved. + rpc GetProduct(GetProductRequest) returns (Product) { + option (google.api.http) = { + get: "/products/v1beta/{name=accounts/*/products/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the processed products in your Merchant Center account. The response + // might contain fewer items than specified by pageSize. Rely on pageToken to + // determine if there are more items to be requested. + // + // After inserting, updating, or deleting a product input, it may take several + // minutes before the updated processed product can be retrieved. + rpc ListProducts(ListProductsRequest) returns (ListProductsResponse) { + option (google.api.http) = { + get: "/products/v1beta/{parent=accounts/*}/products" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The processed product, built from multiple [product +// inputs][[google.shopping.content.bundles.Products.ProductInput] after +// applying rules and supplemental data sources. This processed product matches +// what is shown in your Merchant Center account and in Shopping ads and other +// surfaces across Google. Each product is built from exactly one primary +// data source product input, and multiple supplemental data source inputs. +// After inserting, updating, or deleting a product input, it may take +// several minutes before the updated processed product can be retrieved. +// +// All fields in the processed product and its sub-messages match the name of +// their corresponding attribute in the [Product data +// specification](https://support.google.com/merchants/answer/7052112) with some +// exceptions. +message Product { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/Product" + pattern: "accounts/{account}/products/{product}" + }; + + // The name of the product. + // Format: + // `"{product.name=accounts/{account}/products/{product}}"` + string name = 1; + + // Output only. The + // [channel](https://support.google.com/merchants/answer/7361332) of the + // product. + google.shopping.type.Channel.ChannelEnum channel = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Your unique identifier for the product. This is the same for + // the product input and processed product. Leading and trailing whitespaces + // are stripped and multiple whitespaces are replaced by a single whitespace + // upon submission. See the [product data + // specification](https://support.google.com/merchants/answer/188494#id) for + // details. + string offer_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The two-letter [ISO + // 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the + // product. + string content_language = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The feed label for the product. + string feed_label = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The primary data source of the product. + string data_source = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents the existing version (freshness) of the product, + // which can be used to preserve the right order when multiple updates are + // done at the same time. + // + // If set, the insertion is prevented when version number is lower than + // the current version number of the existing product. Re-insertion (for + // example, product refresh after 30 days) can be performed with the current + // `version_number`. + // + // Only supported for insertions into primary data sources. + // + // If the operation is prevented, the aborted exception will be + // thrown. + optional int64 version_number = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of product attributes. + Attributes attributes = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of custom (merchant-provided) attributes. It can also + // be used to submit any attribute of the data specification in its generic + // form (for example, + // `{ "name": "size type", "value": "regular" }`). + // This is useful for submitting attributes not explicitly exposed by the + // API, such as additional attributes used for Buy on Google. + repeated google.shopping.type.CustomAttribute custom_attributes = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of a product, data validation issues, that is, + // information about a product computed asynchronously. + ProductStatus product_status = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the GetProduct method. +message GetProductRequest { + // Required. The name of the product to retrieve. + // Format: `accounts/{account}/products/{product}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Product" + } + ]; +} + +// Request message for the ListProducts method. +message ListProductsRequest { + // Required. The account to list processed products for. + // Format: accounts/{account} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/Product" + } + ]; + + // The maximum number of products to return. The service may return fewer than + // this value. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + // If unspecified, the maximum number of products will be returned. + int32 page_size = 2; + + // A page token, received from a previous `ListProducts` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListProducts` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for the ListProducts method. +message ListProductsResponse { + // The processed products from the specified account. These are your processed + // products after applying rules and supplemental data sources. + repeated Product products = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/products/v1beta/products_common.proto b/third_party/googleapis/google/shopping/merchant/products/v1beta/products_common.proto new file mode 100644 index 000000000..4bab62e28 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/v1beta/products_common.proto @@ -0,0 +1,835 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.products.v1beta; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; +import "google/shopping/type/types.proto"; +import "google/type/interval.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/products/apiv1beta/productspb;productspb"; +option java_multiple_files = true; +option java_outer_classname = "ProductsCommonProto"; +option java_package = "com.google.shopping.merchant.products.v1beta"; + +// The subscription period of the product. +enum SubscriptionPeriod { + // Indicates that the subscription period is unspecified. + SUBSCRIPTION_PERIOD_UNSPECIFIED = 0; + + // Indicates that the subscription period is month. + MONTH = 1; + + // Indicates that the subscription period is year. + YEAR = 2; +} + +// Attributes. +message Attributes { + // Set this value to false when the item does not have unique product + // identifiers appropriate to its category, such as GTIN, MPN, and brand. + // Defaults to true, if not provided. + optional bool identifier_exists = 4; + + // Whether the item is a merchant-defined bundle. A bundle is a custom + // grouping of different products sold by a merchant for a single price. + optional bool is_bundle = 5; + + // Title of the item. + optional string title = 6; + + // Description of the item. + optional string description = 7; + + // URL directly linking to your item's page on your online store. + optional string link = 8; + + // URL for the mobile-optimized version of your item's landing page. + optional string mobile_link = 9; + + // URL for the canonical version of your item's landing page. + optional string canonical_link = 10; + + // URL of an image of the item. + optional string image_link = 11; + + // Additional URLs of images of the item. + repeated string additional_image_links = 12; + + // Date on which the item should expire, as specified upon insertion, in + // [ISO + // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual + // expiration date is exposed in `productstatuses` as + // [googleExpirationDate](https://support.google.com/merchants/answer/6324499) + // and might be earlier if `expirationDate` is too far in the future. + google.protobuf.Timestamp expiration_date = 16; + + // The date time when an offer becomes visible in search results across + // Google’s YouTube surfaces, in [ISO + // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. See [Disclosure date]( + // https://support.google.com/merchants/answer/13034208) for more information. + google.protobuf.Timestamp disclosure_date = 79; + + // Set to true if the item is targeted towards adults. + optional bool adult = 17; + + // Target [age group](https://support.google.com/merchants/answer/6324463) of + // the item. + optional string age_group = 18; + + // Availability status of the item. + optional string availability = 19; + + // The day a pre-ordered product becomes available for delivery, in [ISO + // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. + google.protobuf.Timestamp availability_date = 20; + + // Brand of the item. + optional string brand = 21; + + // Color of the item. + optional string color = 22; + + // Condition or state of the item. + optional string condition = 23; + + // Target gender of the item. + optional string gender = 24; + + // Google's category of the item (see [Google product + // taxonomy](https://support.google.com/merchants/answer/1705911)). When + // querying products, this field will contain the user provided value. There + // is currently no way to get back the auto assigned google product + // categories through the API. + optional string google_product_category = 25; + + // Global Trade Item Number + // ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the + // item. + optional string gtin = 26; + + // Shared identifier for all variants of the same product. + optional string item_group_id = 27; + + // The material of which the item is made. + optional string material = 28; + + // Manufacturer Part Number + // ([MPN](https://support.google.com/merchants/answer/188494#mpn)) of the + // item. + optional string mpn = 29; + + // The item's pattern (for example, polka dots). + optional string pattern = 30; + + // Price of the item. + google.shopping.type.Price price = 31; + + // Number and amount of installments to pay for an item. + Installment installment = 32; + + // Number of periods (months or years) and amount of payment per period + // for an item with an associated subscription contract. + SubscriptionCost subscription_cost = 33; + + // Loyalty points that users receive after purchasing the item. Japan only. + LoyaltyPoints loyalty_points = 34; + + // A list of loyalty program information that is used to surface loyalty + // benefits (for example, better pricing, points, etc) to the user of this + // item. + repeated LoyaltyProgram loyalty_programs = 136; + + // Categories of the item (formatted as in [product data + // specification](https://support.google.com/merchants/answer/188494#product_type)). + repeated string product_types = 35; + + // Advertised sale price of the item. + google.shopping.type.Price sale_price = 36; + + // Date range during which the item is on sale (see [product data + // specification](https://support.google.com/merchants/answer/188494#sale_price_effective_date)). + google.type.Interval sale_price_effective_date = 37; + + // The quantity of the product that is available for selling on Google. + // Supported only for online products. + optional int64 sell_on_google_quantity = 38; + + // The height of the product in the units provided. The value must be + // between + // 0 (exclusive) and 3000 (inclusive). + ProductDimension product_height = 119; + + // The length of the product in the units provided. The value must be + // between 0 (exclusive) and 3000 (inclusive). + ProductDimension product_length = 120; + + // The width of the product in the units provided. The value must be between + // 0 (exclusive) and 3000 (inclusive). + ProductDimension product_width = 121; + + // The weight of the product in the units provided. The value must be + // between 0 (exclusive) and 2000 (inclusive). + ProductWeight product_weight = 122; + + // Shipping rules. + repeated Shipping shipping = 39; + + // Conditions to be met for a product to have free shipping. + repeated FreeShippingThreshold free_shipping_threshold = 135; + + // Weight of the item for shipping. + ShippingWeight shipping_weight = 40; + + // Length of the item for shipping. + ShippingDimension shipping_length = 41; + + // Width of the item for shipping. + ShippingDimension shipping_width = 42; + + // Height of the item for shipping. + ShippingDimension shipping_height = 43; + + // Maximal product handling time (in business days). + optional int64 max_handling_time = 44; + + // Minimal product handling time (in business days). + optional int64 min_handling_time = 45; + + // The shipping label of the product, used to group product in account-level + // shipping rules. + optional string shipping_label = 46; + + // The transit time label of the product, used to group product in + // account-level transit time tables. + optional string transit_time_label = 47; + + // Size of the item. Only one value is allowed. For variants with different + // sizes, insert a separate product for each size with the same + // `itemGroupId` value (see + // [https://support.google.com/merchants/answer/6324492](size definition)). + optional string size = 48; + + // System in which the size is specified. Recommended for apparel items. + optional string size_system = 49; + + // The cut of the item. It can be used to represent combined size types for + // apparel items. Maximum two of size types can be provided (see + // [https://support.google.com/merchants/answer/6324497](size type)). + repeated string size_types = 50; + + // Tax information. + repeated Tax taxes = 51; + + // The tax category of the product, used to configure detailed tax nexus + // in account-level tax settings. + optional string tax_category = 52; + + // The energy efficiency class as defined in EU directive 2010/30/EU. + optional string energy_efficiency_class = 53; + + // The energy efficiency class as defined in EU directive 2010/30/EU. + optional string min_energy_efficiency_class = 54; + + // The energy efficiency class as defined in EU directive 2010/30/EU. + optional string max_energy_efficiency_class = 55; + + // The measure and dimension of an item. + UnitPricingMeasure unit_pricing_measure = 56; + + // The preference of the denominator of the unit price. + UnitPricingBaseMeasure unit_pricing_base_measure = 57; + + // The number of identical products in a merchant-defined multipack. + optional int64 multipack = 58; + + // Used to group items in an arbitrary way. Only for CPA%, discouraged + // otherwise. + optional string ads_grouping = 59; + + // Similar to ads_grouping, but only works on CPC. + repeated string ads_labels = 60; + + // Allows advertisers to override the item URL when the product is shown + // within the context of Product ads. + optional string ads_redirect = 61; + + // Cost of goods sold. Used for gross profit reporting. + google.shopping.type.Price cost_of_goods_sold = 62; + + // Technical specification or additional product details. + repeated ProductDetail product_details = 63; + + // Bullet points describing the most relevant highlights of a product. + repeated string product_highlights = 64; + + // An identifier for an item for dynamic remarketing campaigns. + optional string display_ads_id = 65; + + // Advertiser-specified recommendations. + repeated string display_ads_similar_ids = 66; + + // Title of an item for dynamic remarketing campaigns. + optional string display_ads_title = 67; + + // URL directly to your item's landing page for dynamic remarketing + // campaigns. + optional string display_ads_link = 68; + + // Offer margin for dynamic remarketing campaigns. + optional double display_ads_value = 69; + + // The unique ID of a promotion. + repeated string promotion_ids = 70; + + // The pick up option for the item. + optional string pickup_method = 80; + + // Item store pickup timeline. + optional string pickup_sla = 81; + + // Link template for merchant hosted local storefront. + optional string link_template = 82; + + // Link template for merchant hosted local storefront optimized for mobile + // devices. + optional string mobile_link_template = 83; + + // Custom label 0 for custom grouping of items in a Shopping campaign. + optional string custom_label_0 = 71; + + // Custom label 1 for custom grouping of items in a Shopping campaign. + optional string custom_label_1 = 72; + + // Custom label 2 for custom grouping of items in a Shopping campaign. + optional string custom_label_2 = 73; + + // Custom label 3 for custom grouping of items in a Shopping campaign. + optional string custom_label_3 = 74; + + // Custom label 4 for custom grouping of items in a Shopping campaign. + optional string custom_label_4 = 75; + + // The list of destinations to include for this target (corresponds to + // checked check boxes in Merchant Center). Default destinations are always + // included unless provided in `excludedDestinations`. + repeated string included_destinations = 76; + + // The list of destinations to exclude for this target (corresponds to + // unchecked check boxes in Merchant Center). + repeated string excluded_destinations = 77; + + // List of country codes (ISO 3166-1 alpha-2) to exclude the offer from + // Shopping Ads destination. + // Countries from this list are removed from countries configured + // in data source settings. + repeated string shopping_ads_excluded_countries = 78; + + // Required for multi-seller accounts. Use this attribute if you're a + // marketplace uploading products for various sellers to your multi-seller + // account. + optional string external_seller_id = 1; + + // Publication of this item will be temporarily + // [paused](https://support.google.com/merchants/answer/11909930). + optional string pause = 13; + + // Additional URLs of lifestyle images of the item, used to explicitly + // identify images that showcase your item in a real-world context. See the + // [Help Center article](https://support.google.com/merchants/answer/9103186) + // for more information. + repeated string lifestyle_image_links = 14; + + // Extra fields to export to the Cloud Retail program. + repeated CloudExportAdditionalProperties cloud_export_additional_properties = + 84; + + // URL of the 3D image of the item. See the + // [Help Center article](https://support.google.com/merchants/answer/13674896) + // for more information. + optional string virtual_model_link = 130; + + // Product Certifications, for example for energy efficiency labeling of + // products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home) + // database. See the [Help + // Center](https://support.google.com/merchants/answer/13528839) + // article for more information. + repeated Certification certifications = 123; + + // Structured title, for algorithmically (AI)-generated titles. + optional ProductStructuredTitle structured_title = 132; + + // Structured description, for algorithmically (AI)-generated descriptions. + optional ProductStructuredDescription structured_description = 133; + + // A safeguard in the "Automated Discounts" + // (https://support.google.com/merchants/answer/10295759) and + // "Dynamic Promotions" + // (https://support.google.com/merchants/answer/13949249) projects, + // ensuring that discounts on merchants' offers do not fall below this value, + // thereby preserving the offer's value and profitability. + google.shopping.type.Price auto_pricing_min_price = 124; +} + +// The Tax of the product. +message Tax { + // The percentage of tax rate that applies to the item price. + double rate = 1; + + // The country within which the item is taxed, specified as a [CLDR + // territory + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml). + string country = 2; + + // The geographic region to which the tax rate applies. + string region = 3; + + // Set to true if tax is charged on shipping. + bool tax_ship = 4; + + // The numeric ID of a location that the tax rate applies to as defined in + // the [AdWords + // API](https://developers.google.com/adwords/api/docs/appendix/geotargeting). + int64 location_id = 5; + + // The postal code range that the tax rate applies to, represented by + // a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP + // codes or two ZIP code prefixes of equal length. + // Examples: 94114, 94*, 94002-95460, 94*-95*. + string postal_code = 6; +} + +// The ShippingWeight of the product. +message ShippingWeight { + // The weight of the product used to calculate the shipping cost of the + // item. + double value = 1; + + // The unit of value. + string unit = 2; +} + +// The ShippingDimension of the product. +message ShippingDimension { + // The dimension of the product used to calculate the shipping cost of the + // item. + double value = 1; + + // The unit of value. + string unit = 2; +} + +// The UnitPricingBaseMeasure of the product. +message UnitPricingBaseMeasure { + // The denominator of the unit price. + int64 value = 1; + + // The unit of the denominator. + string unit = 2; +} + +// The UnitPricingMeasure of the product. +message UnitPricingMeasure { + // The measure of an item. + double value = 1; + + // The unit of the measure. + string unit = 2; +} + +// The SubscriptionCost of the product. +message SubscriptionCost { + // The type of subscription period. + // Supported values are: + // * "`month`" + // * "`year`" + SubscriptionPeriod period = 1; + + // The number of subscription periods the buyer has to pay. + int64 period_length = 2; + + // The amount the buyer has to pay per subscription period. + google.shopping.type.Price amount = 3; +} + +// A message that represents installment. +message Installment { + // The number of installments the buyer has to pay. + int64 months = 1; + + // The amount the buyer has to pay per month. + google.shopping.type.Price amount = 2; + + // The up-front down payment amount the buyer has to pay. + optional google.shopping.type.Price downpayment = 3; + + // Type of installment payments. + // Supported values are: + // * "`finance`" + // * "`lease`" + optional string credit_type = 4; +} + +// A message that represents loyalty points. +message LoyaltyPoints { + // Name of loyalty points program. It is recommended to limit the name to + // 12 full-width characters or 24 Roman characters. + string name = 1; + + // The retailer's loyalty points in absolute value. + int64 points_value = 2; + + // The ratio of a point when converted to currency. Google assumes currency + // based on Merchant Center settings. If ratio is left out, it defaults to + // 1.0. + double ratio = 3; +} + +// A message that represents loyalty program. +message LoyaltyProgram { + // The label of the loyalty program. This is an internal label that uniquely + // identifies the relationship between a merchant entity and a loyalty + // program entity. The label must be provided so that the system can associate + // the assets below (for example, price and points) with a merchant. The + // corresponding program must be linked to the merchant account. + optional string program_label = 1; + + // The label of the tier within the loyalty program. + // Must match one of the labels within the program. + optional string tier_label = 2; + + // The price for members of the given tier, that is, the instant discount + // price. Must be smaller or equal to the regular price. + optional google.shopping.type.Price price = 3; + + // The cashback that can be used for future purchases. + optional google.shopping.type.Price cashback_for_future_use = 4; + + // The amount of loyalty points earned on a purchase. + optional int64 loyalty_points = 5; +} + +// The Shipping of the product. +message Shipping { + // Fixed shipping price, represented as a number. + google.shopping.type.Price price = 1; + + // The [CLDR territory + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) + // of the country to which an item will ship. + string country = 2; + + // The geographic region to which a shipping rate applies. + // See [region](https://support.google.com/merchants/answer/6324484) for more + // information. + string region = 3; + + // A free-form description of the service class or delivery speed. + string service = 4; + + // The numeric ID of a location that the shipping rate applies to as + // defined in the [AdWords + // API](https://developers.google.com/adwords/api/docs/appendix/geotargeting). + int64 location_id = 5; + + // The location where the shipping is applicable, represented by a + // location group name. + string location_group_name = 6; + + // The postal code range that the shipping rate applies to, represented by + // a postal code, a postal code prefix followed by a * wildcard, a range + // between two postal codes or two postal code prefixes of equal length. + string postal_code = 7; + + // Minimum handling time (inclusive) between when the order is received and + // shipped in business days. 0 means that the order is shipped on the same + // day as it is received if it happens before the cut-off time. + // [minHandlingTime][google.shopping.content.bundles.Products.Shipping.min_handling_time] + // can only be present together with + // [maxHandlingTime][google.shopping.content.bundles.Products.Shipping.max_handling_time]; + // but it is not required if + // [maxHandlingTime][google.shopping.content.bundles.Products.Shipping.max_handling_time] + // is present. + optional int64 min_handling_time = 8; + + // Maximum handling time (inclusive) between when the order is received and + // shipped in business days. 0 means that the order is shipped on the same + // day as it is received if it happens before the cut-off time. Both + // [maxHandlingTime][google.shopping.content.bundles.Products.Shipping.max_handling_time] + // and + // [maxTransitTime][google.shopping.content.bundles.Products.Shipping.max_transit_time] + // are required if providing shipping speeds. + // [minHandlingTime][google.shopping.content.bundles.Products.Shipping.min_handling_time] + // is optional if + // [maxHandlingTime][google.shopping.content.bundles.Products.Shipping.max_handling_time] + // is present. + optional int64 max_handling_time = 9; + + // Minimum transit time (inclusive) between when the order has shipped and + // when it is delivered in business days. 0 means that the order is + // delivered on the same day as it ships. + // [minTransitTime][google.shopping.content.bundles.Products.Shipping.min_transit_time] + // can only be present together with + // [maxTransitTime][google.shopping.content.bundles.Products.Shipping.max_transit_time]; + // but it is not required if + // [maxTransitTime][google.shopping.content.bundles.Products.Shipping.max_transit_time] + // is present. + optional int64 min_transit_time = 10; + + // Maximum transit time (inclusive) between when the order has shipped and + // when it is delivered in business days. 0 means that the order is + // delivered on the same day as it ships. Both + // [maxHandlingTime][google.shopping.content.bundles.Products.Shipping.max_handling_time] + // and + // [maxTransitTime][google.shopping.content.bundles.Products.Shipping.max_transit_time] + // are required if providing shipping speeds. + // [minTransitTime][google.shopping.content.bundles.Products.Shipping.min_transit_time] + // is optional if + // [maxTransitTime][google.shopping.content.bundles.Products.Shipping.max_transit_time] + // is present. + optional int64 max_transit_time = 11; +} + +// Conditions to be met for a product to have free shipping. +message FreeShippingThreshold { + // The [CLDR territory + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) + // of the country to which an item will ship. + optional string country = 1; + + // The minimum product price for the shipping cost to become free. Represented + // as a number. + optional google.shopping.type.Price price_threshold = 2; +} + +// The product details. +message ProductDetail { + // The section header used to group a set of product details. + string section_name = 1; + + // The name of the product detail. + string attribute_name = 2; + + // The value of the product detail. + string attribute_value = 3; +} + +// Product +// [certification](https://support.google.com/merchants/answer/13528839), +// initially introduced for EU energy efficiency labeling compliance using the +// EU EPREL database. +message Certification { + // The certification authority, for example "European_Commission". + // Maximum length is 2000 characters. + optional string certification_authority = 1; + + // The name of the certification, for example "EPREL". + // Maximum length is 2000 characters. + optional string certification_name = 2; + + // The certification code. + // Maximum length is 2000 characters. + optional string certification_code = 3; + + // The certification value (also known as class, level or grade), for example + // "A+", "C", "gold". + // Maximum length is 2000 characters. + optional string certification_value = 4; +} + +// Structured title, for algorithmically (AI)-generated titles. +message ProductStructuredTitle { + // The digital source type, for example "trained_algorithmic_media". + // Following [IPTC](https://cv.iptc.org/newscodes/digitalsourcetype). + // Maximum length is 40 characters. + optional string digital_source_type = 1; + + // The title text + // Maximum length is 150 characters + optional string content = 2; +} + +// Structured description, for algorithmically (AI)-generated descriptions. +message ProductStructuredDescription { + // The digital source type, for example "trained_algorithmic_media". + // Following [IPTC](https://cv.iptc.org/newscodes/digitalsourcetype). + // Maximum length is 40 characters. + optional string digital_source_type = 1; + + // The description text + // Maximum length is 5000 characters + optional string content = 2; +} + +// The dimension of the product. +message ProductDimension { + // Required. The dimension value represented as a number. The value can have a + // maximum precision of four decimal places. + double value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The dimension units. + // Acceptable values are: + // * "`in`" + // * "`cm`" + string unit = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The weight of the product. +message ProductWeight { + // Required. The weight represented as a number. The weight can have a maximum + // precision of four decimal places. + double value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The weight unit. + // Acceptable values are: + // * "`g`" + // * "`kg`" + // * "`oz`" + // * "`lb`" + string unit = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The status of a product, data validation issues, that is, information about +// a product computed asynchronously. +message ProductStatus { + // The destination status of the product status. + message DestinationStatus { + // The name of the reporting context. + google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 1; + + // List of country codes (ISO 3166-1 alpha-2) where the offer is approved. + repeated string approved_countries = 2; + + // List of country codes (ISO 3166-1 alpha-2) where the offer is pending + // approval. + repeated string pending_countries = 3; + + // List of country codes (ISO 3166-1 alpha-2) where the offer is + // disapproved. + repeated string disapproved_countries = 4; + } + + // The ItemLevelIssue of the product status. + message ItemLevelIssue { + // How the issue affects the serving of the product. + enum Severity { + // Not specified. + SEVERITY_UNSPECIFIED = 0; + + // This issue represents a warning and does not have a direct affect + // on the product. + NOT_IMPACTED = 1; + + // The product is demoted and most likely have limited performance + // in search results + DEMOTED = 2; + + // Issue disapproves the product. + DISAPPROVED = 3; + } + + // The error code of the issue. + string code = 1; + + // How this issue affects serving of the offer. + Severity severity = 2; + + // Whether the issue can be resolved by the merchant. + string resolution = 3; + + // The attribute's name, if the issue is caused by a single attribute. + string attribute = 4; + + // The reporting context the issue applies to. + google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 5; + + // A short issue description in English. + string description = 6; + + // A detailed issue description in English. + string detail = 7; + + // The URL of a web page to help with resolving this issue. + string documentation = 8; + + // List of country codes (ISO 3166-1 alpha-2) where issue applies to the + // offer. + repeated string applicable_countries = 9; + } + + // The intended destinations for the product. + repeated DestinationStatus destination_statuses = 3; + + // A list of all issues associated with the product. + repeated ItemLevelIssue item_level_issues = 4; + + // Date on which the item has been created, in [ISO + // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. + google.protobuf.Timestamp creation_date = 5; + + // Date on which the item has been last updated, in [ISO + // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. + google.protobuf.Timestamp last_update_date = 6; + + // Date on which the item expires, in [ISO + // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. + google.protobuf.Timestamp google_expiration_date = 7; +} + +// Product property for the Cloud Retail API. +// For example, properties for a TV product could be "Screen-Resolution" or +// "Screen-Size". +message CloudExportAdditionalProperties { + // Name of the given property. For example, + // "Screen-Resolution" for a TV product. Maximum string size is 256 + // characters. + optional string property_name = 1; + + // Text value of the given property. For example, + // "8K(UHD)" could be a text value for a TV product. Maximum + // repeatedness of this value is 400. Values are stored in an arbitrary but + // consistent order. Maximum string size is 256 characters. + repeated string text_value = 2; + + // Boolean value of the given property. For example for a TV product, + // "True" or "False" if the screen is UHD. + optional bool bool_value = 3; + + // Integer values of the given property. For example, 1080 for a TV + // product's Screen Resolution. Maximum repeatedness of this value + // is 400. Values are stored in an arbitrary but consistent order. + repeated int64 int_value = 4; + + // Float values of the given property. For example for a TV product + // 1.2345. Maximum repeatedness of this value is 400. Values + // are stored in an arbitrary but consistent order. + repeated float float_value = 5; + + // Minimum float value of the given property. For example for a TV + // product 1.00. + optional float min_value = 6; + + // Maximum float value of the given property. For example for a TV + // product 100.00. + optional float max_value = 7; + + // Unit of the given property. For example, "Pixels" for a TV product. Maximum + // string size is 256B. + optional string unit_code = 8; +} diff --git a/third_party/googleapis/google/shopping/merchant/products/v1beta/products_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/products/v1beta/products_grpc_service_config.json new file mode 100644 index 000000000..36330cf8b --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/products/v1beta/products_grpc_service_config.json @@ -0,0 +1,16 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.shopping.merchant.products.v1beta.ProductInputsService" }, + { "service": "google.shopping.merchant.products.v1beta.ProductsService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/shopping/merchant/promotions/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/promotions/BUILD.bazel new file mode 100644 index 000000000..da6f80614 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/promotions/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-promotions. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant promotions. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "promotions_ruby_wrapper", + srcs = ["//google/shopping/merchant/promotions/v1beta:promotions_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-promotions", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/promotions/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-promotions-ruby", + deps = [ + ":promotions_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/promotions/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/BUILD.bazel new file mode 100644 index 000000000..af98dfc31 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/BUILD.bazel @@ -0,0 +1,408 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "promotions_proto", + srcs = [ + "promotions.proto", + "promotions_common.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/shopping/type:type_proto", # Manual fix. Original :types_proto + "//google/type:interval_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "promotions_proto_with_info", + deps = [ + ":promotions_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "promotions_java_proto", + deps = [ + ":promotions_proto", + "//google/shopping/type:type_proto", # Added manually + ], + +) + +java_grpc_library( + name = "promotions_java_grpc", + srcs = [":promotions_proto"], + deps = [":promotions_java_proto"], +) + +java_gapic_library( + name = "promotions_java_gapic", + srcs = [":promotions_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "promotions_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":promotions_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":promotions_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "promotions_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.promotions.v1beta.PromotionsServiceClientHttpJsonTest", + "com.google.shopping.merchant.promotions.v1beta.PromotionsServiceClientTest", + ], + runtime_deps = [":promotions_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-promotions-v1beta-java", + transport = "grpc+rest", + deps = [ + ":promotions_java_gapic", + ":promotions_java_grpc", + ":promotions_java_proto", + ":promotions_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "promotions_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/promotions/apiv1beta/promotionspb", + protos = [":promotions_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto + "//google/type:interval_go_proto", + ], +) + +go_gapic_library( + name = "promotions_go_gapic", + srcs = [":promotions_proto_with_info"], + grpc_service_config = "promotions_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/promotions/apiv1beta;promotions", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":promotions_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-promotions-v1beta-go", + deps = [ + ":promotions_go_gapic", + ":promotions_go_gapic_srcjar-test.srcjar", + ":promotions_go_gapic_srcjar-metadata.srcjar", + ":promotions_go_gapic_srcjar-snippets.srcjar", + ":promotions_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_import", + "py_test", +) + +py_import( + name = "shopping_type", + srcs = [ + "//google/shopping/type:type_py_gapic", + ], +) + +py_gapic_library( + name = "promotions_py_gapic", + srcs = [":promotions_proto"], + grpc_service_config = "promotions_grpc_service_config.json", + opt_args = [ + "proto-plus-deps=google.shopping.type", # Added manually + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_promotions", + ], + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":shopping_type", # Added manually + ], +) + +py_test( + name = "promotions_py_gapic_test", + srcs = [ + "promotions_py_gapic_pytest.py", + "promotions_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":promotions_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-promotions-v1beta-py", + deps = [ + ":promotions_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "promotions_php_proto", + deps = [":promotions_proto"], +) + +php_gapic_library( + name = "promotions_php_gapic", + srcs = [":promotions_proto_with_info"], + grpc_service_config = "promotions_grpc_service_config.json", + rest_numeric_enums = True, + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":promotions_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-promotions-v1beta-php", + deps = [ + ":promotions_php_gapic", + ":promotions_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "promotions_nodejs_gapic", + package_name = "@google-shopping/promotions", + src = ":promotions_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "promotions_grpc_service_config.json", + package = "google.shopping.merchant.promotions.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-promotions-v1beta-nodejs", + deps = [ + ":promotions_nodejs_gapic", + ":promotions_proto", + "//google/shopping/type:type_proto", # Added manually + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "promotions_ruby_proto", + deps = [":promotions_proto"], +) + +ruby_grpc_library( + name = "promotions_ruby_grpc", + srcs = [":promotions_proto"], + deps = [":promotions_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "promotions_ruby_gapic", + srcs = [":promotions_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-promotions-v1beta", + "ruby-cloud-extra-dependencies=google-shopping-type=>0.0+<2.a", + ], + grpc_service_config = "promotions_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":promotions_ruby_grpc", + ":promotions_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-merchant-promotions-v1beta-ruby", + deps = [ + ":promotions_ruby_gapic", + ":promotions_ruby_grpc", + ":promotions_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "promotions_csharp_proto", + extra_opts = [], + deps = [":promotions_proto"], +) + +csharp_grpc_library( + name = "promotions_csharp_grpc", + srcs = [":promotions_proto"], + deps = [":promotions_csharp_proto"], +) + +csharp_gapic_library( + name = "promotions_csharp_gapic", + srcs = [":promotions_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "promotions_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":promotions_csharp_grpc", + ":promotions_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-promotions-v1beta-csharp", + deps = [ + ":promotions_csharp_gapic", + ":promotions_csharp_grpc", + ":promotions_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "promotions_cc_proto", + deps = [":promotions_proto"], +) + +cc_grpc_library( + name = "promotions_cc_grpc", + srcs = [":promotions_proto"], + grpc_only = True, + deps = [":promotions_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/promotions/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..ae96c5bdb --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,56 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.promotions.v1beta.PromotionsService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: 'google.shopping.merchant.promotions.v1beta.PromotionsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.promotions.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions.proto b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions.proto new file mode 100644 index 000000000..521e94594 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions.proto @@ -0,0 +1,220 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.promotions.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/shopping/merchant/promotions/v1beta/promotions_common.proto"; +import "google/shopping/type/types.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/promotions/apiv1beta/promotionspb;promotionspb"; +option java_multiple_files = true; +option java_outer_classname = "PromotionsProto"; +option java_package = "com.google.shopping.merchant.promotions.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// Service to manage promotions for products. +service PromotionsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Inserts a promotion for your Merchant Center account. If the promotion + // already exists, then it updates the promotion instead. + rpc InsertPromotion(InsertPromotionRequest) returns (Promotion) { + option (google.api.http) = { + post: "/promotions/v1beta/{parent=accounts/*}/promotions:insert" + body: "*" + }; + } + + // Retrieves the promotion from your Merchant Center account. + // + // After inserting or updating a promotion input, it may take several + // minutes before the updated promotion can be retrieved. + rpc GetPromotion(GetPromotionRequest) returns (Promotion) { + option (google.api.http) = { + get: "/promotions/v1beta/{name=accounts/*/promotions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists the promotions in your Merchant Center account. The + // response might contain fewer items than specified by `pageSize`. Rely on + // `pageToken` to determine if there are more items to be requested. + // + // After inserting or updating a promotion, it may take several minutes before + // the updated processed promotion can be retrieved. + rpc ListPromotions(ListPromotionsRequest) returns (ListPromotionsResponse) { + option (google.api.http) = { + get: "/promotions/v1beta/{parent=accounts/*}/promotions" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Represents a promotion. See the following articles for more details. +// +// Required promotion input attributes to pass data validation checks are +// primarily defined below: +// +// * [Promotions data +// specification](https://support.google.com/merchants/answer/2906014) +// * [Local promotions data +// specification](https://support.google.com/merchants/answer/10146130) +// +// After inserting, updating a promotion input, it may take several minutes +// before the final promotion can be retrieved. +message Promotion { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/Promotion" + pattern: "accounts/{account}/promotions/{promotion}" + plural: "promotions" + singular: "promotion" + }; + + // Identifier. The name of the promotion. + // Format: `accounts/{account}/promotions/{promotion}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The user provided promotion ID to uniquely identify the + // promotion. Follow [minimum + // requirements](https://support.google.com/merchants/answer/7050148?ref_topic=7322920&sjid=871860036916537104-NC#minimum_requirements) + // to prevent promotion disapprovals. + string promotion_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The two-letter [ISO + // 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the + // promotion. + // + // Promotions is only for [selected + // languages](https://support.google.com/merchants/answer/4588281?ref_topic=6396150&sjid=18314938579342094533-NC#option3&zippy=). + string content_language = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The target country used as part of the unique identifier. + // Represented as a [CLDR territory + // code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml). + // + // Promotions are only available in selected + // countries, [Free Listings and Shopping + // ads](https://support.google.com/merchants/answer/4588460) [Local Inventory + // ads](https://support.google.com/merchants/answer/10146326) + string target_country = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. [Redemption + // channel](https://support.google.com/merchants/answer/13837674?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. At least one channel is required. + repeated RedemptionChannel redemption_channel = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. The primary data source of the promotion. + string data_source = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A list of promotion attributes. + Attributes attributes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of custom (merchant-provided) attributes. It can also be + // used for submitting any attribute of the data specification in its generic + // form (for example, + // `{ "name": "size type", "value": "regular" }`). + // This is useful for submitting attributes not explicitly exposed by the + // API. + repeated google.shopping.type.CustomAttribute custom_attributes = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The [status of a + // promotion](https://support.google.com/merchants/answer/3398326?ref_topic=7322924&sjid=5155774230887277618-NC), + // data validation issues, that is, information about a promotion computed + // asynchronously. + PromotionStatus promotion_status = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Represents the existing version (freshness) of the promotion, + // which can be used to preserve the right order when multiple updates are + // done at the same time. + // + // If set, the insertion is prevented when version number is lower than + // the current version number of the existing promotion. Re-insertion (for + // example, promotion refresh after 30 days) can be performed with the current + // `version_number`. + // + // If the operation is prevented, the aborted exception will be + // thrown. + optional int64 version_number = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for the `InsertPromotion` method. +message InsertPromotionRequest { + // Required. The account where the promotion will be inserted. + // Format: accounts/{account} + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The promotion to insert. + Promotion promotion = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The data source of the + // [promotion](https://support.google.com/merchants/answer/6396268?sjid=5155774230887277618-NC) + // Format: + // `accounts/{account}/dataSources/{datasource}`. + string data_source = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for the `GetPromotion` method. +message GetPromotionRequest { + // Required. The name of the promotion to retrieve. + // Format: `accounts/{account}/promotions/{promotions}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/Promotion" + } + ]; +} + +// Request message for the `ListPromotions` method. +message ListPromotionsRequest { + // Required. The account to list processed promotions for. + // Format: `accounts/{account}` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The maximum number of promotions to return. The service may + // return fewer than this value. The maximum value is 1000; values above 1000 + // will be coerced to 1000. If unspecified, the maximum number of promotions + // will be returned. + int32 page_size = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A page token, received from a previous `ListPromotions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListPromotions` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message for the `ListPromotions` method. +message ListPromotionsResponse { + // The processed promotions from the specified account. + repeated Promotion promotions = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions_common.proto b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions_common.proto new file mode 100644 index 000000000..92e4b228a --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions_common.proto @@ -0,0 +1,458 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.promotions.v1beta; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; +import "google/shopping/type/types.proto"; +import "google/type/interval.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/promotions/apiv1beta/promotionspb;promotionspb"; +option java_multiple_files = true; +option java_outer_classname = "PromotionsCommonProto"; +option java_package = "com.google.shopping.merchant.promotions.v1beta"; + +// Which product or list of products the promotion applies to. +enum ProductApplicability { + // Which products the promotion applies to is unknown. + PRODUCT_APPLICABILITY_UNSPECIFIED = 0; + + // Applicable to all products. + ALL_PRODUCTS = 1; + + // Applicable to only a single product or list of products. + SPECIFIC_PRODUCTS = 2; +} + +// Store codes or list of store codes the promotion applies to. Only for +// Local inventory ads promotions. +enum StoreApplicability { + // Which store codes the promotion applies to is unknown. + STORE_APPLICABILITY_UNSPECIFIED = 0; + + // Promotion applies to all stores. + ALL_STORES = 1; + + // Promotion applies to only the specified stores. + SPECIFIC_STORES = 2; +} + +// Offer type of a promotion. +enum OfferType { + // Unknown offer type. + OFFER_TYPE_UNSPECIFIED = 0; + + // Offer type without a code. + NO_CODE = 1; + + // Offer type with a code. Generic redemption code for the promotion is + // required when `offerType` = `GENERIC_CODE`. + GENERIC_CODE = 2; +} + +// Channel of a promotion. +enum RedemptionChannel { + // Indicates that the channel is unspecified. + REDEMPTION_CHANNEL_UNSPECIFIED = 0; + + // Indicates that the channel is in store. + // This is same as `local` channel used for `products`. + IN_STORE = 1; + + // Indicates that the channel is online. + ONLINE = 2; +} + +// [Coupon value +// type](https://support.google.com/merchants/answer/13861986?ref_topic=13773355&sjid=17642868584668136159-NC) +// of a promotion. +enum CouponValueType { + // Indicates that the coupon value type is unspecified. + COUPON_VALUE_TYPE_UNSPECIFIED = 0; + + // Money off coupon value type. + MONEY_OFF = 1; + + // Percent off coupon value type. + PERCENT_OFF = 2; + + // Buy M quantity, get N money off coupon value type. + // `minimum_purchase_quantity` and `get_this_quantity_discounted` must be + // present. `money_off_amount` must also be present. + BUY_M_GET_N_MONEY_OFF = 3; + + // Buy M quantity, get N percent off coupon value type. + // `minimum_purchase_quantity` and `get_this_quantity_discounted` must be + // present. `percent_off_percentage` must also be present. + BUY_M_GET_N_PERCENT_OFF = 4; + + // Buy M quantity, get money off. `minimum_purchase_quantity` and + // `money_off_amount` must be present. + BUY_M_GET_MONEY_OFF = 5; + + // Buy M quantity, get money off. `minimum_purchase_quantity` and + // `percent_off_percentage` must be present. + BUY_M_GET_PERCENT_OFF = 6; + + // Free gift with description only. + FREE_GIFT = 7; + + // Free gift with monetary value. + FREE_GIFT_WITH_VALUE = 8; + + // Free gift with item ID. + FREE_GIFT_WITH_ITEM_ID = 9; + + // Standard free shipping coupon value type. + FREE_SHIPPING_STANDARD = 10; + + // Overnight free shipping coupon value type. + FREE_SHIPPING_OVERNIGHT = 11; + + // Two day free shipping coupon value type. + FREE_SHIPPING_TWO_DAY = 12; +} + +// Attributes. +message Attributes { + // Required. Applicability of the promotion to either all products or + // [only specific + // products](https://support.google.com/merchants/answer/6396257?ref_topic=6396150&sjid=17642868584668136159-NC). + ProductApplicability product_applicability = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. + // [Type](https://support.google.com/merchants/answer/13837405?ref_topic=13773355&sjid=17642868584668136159-NC) + // of the promotion. Use this attribute to indicate whether or not customers + // need a coupon code to redeem your promotion. + OfferType offer_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Generic redemption code for the promotion. To be used with the + // `offerType` field and must meet the [minimum + // requirements](https://support.google.com/merchants/answer/13837405?ref_topic=13773355&sjid=17642868584668136159-NC). + string generic_redemption_code = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. [Long + // title](https://support.google.com/merchants/answer/13838102?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + string long_title = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The [coupon value type] + // (https://support.google.com/merchants/answer/13861986?ref_topic=13773355&sjid=17642868584668136159-NC) + // attribute to signal the type of promotion that you are running. Depending + // on type of the selected coupon value [some attributes are + // required](https://support.google.com/merchants/answer/6393006?ref_topic=7322920). + CouponValueType coupon_value_type = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of destinations where the promotion applies to. If you + // don't specify a destination by including a supported value in your data + // source, your promotion will display in Shopping ads and free listings by + // default. + // + // You may have previously submitted the following values as destinations for + // your products: Shopping Actions, Surfaces across Google, Local surfaces + // across Google. To represent these values use `FREE_LISTINGS`, + // `FREE_LOCAL_LISTINGS`, `LOCAL_INVENTORY_ADS`. For more details see + // [Promotion + // destination](https://support.google.com/merchants/answer/13837465?sjid=5155774230887277618-NC) + repeated google.shopping.type.Destination.DestinationEnum + promotion_destinations = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Product filter by [item + // ID](https://support.google.com/merchants/answer/13861565?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. The product filter attributes only applies when the + // products eligible for promotion product applicability + // `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string item_id_inclusion = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by brand for the promotion. The product filter + // attributes only applies when the products eligible for promotion product + // applicability `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string brand_inclusion = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by item group ID for the promotion. The product + // filter attributes only applies when the products eligible for promotion + // product applicability [product_applicability] attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string item_group_id_inclusion = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by product type for the promotion. The product + // filter attributes only applies when the products eligible for promotion + // product applicability `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string product_type_inclusion = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by [item ID + // exclusion](https://support.google.com/merchants/answer/13863524?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. The product filter attributes only applies when the + // products eligible for promotion product applicability + // `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string item_id_exclusion = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by [brand + // exclusion](https://support.google.com/merchants/answer/13861679?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. The product filter attributes only applies when the + // products eligible for promotion product applicability + // `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string brand_exclusion = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by [item group + // ID](https://support.google.com/merchants/answer/13837298?ref_topic=13773355&sjid=17642868584668136159-NC). + // The product filter attributes only applies when the products eligible for + // promotion product applicability `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + // exclusion for the promotion. + repeated string item_group_id_exclusion = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Product filter by [product type + // exclusion](https://support.google.com/merchants/answer/13863746?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. The product filter attributes only applies when the + // products eligible for promotion product applicability + // `product_applicability` attribute is set to + // [specific_products](https://support.google.com/merchants/answer/13837299?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string product_type_exclusion = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Minimum purchase + // amount](https://support.google.com/merchants/answer/13837705?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + google.shopping.type.Price minimum_purchase_amount = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Minimum purchase + // quantity](https://support.google.com/merchants/answer/13838182?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + int64 minimum_purchase_quantity = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Maximum purchase + // quantity](https://support.google.com/merchants/answer/13861564?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + int64 limit_quantity = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Maximum product + // price](https://support.google.com/merchants/answer/2906014) for + // promotion. + google.shopping.type.Price limit_value = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The [percentage + // discount](https://support.google.com/merchants/answer/13837404?sjid=17642868584668136159-NC) + // offered in the promotion. + int64 percent_off = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The [money off + // amount](https://support.google.com/merchants/answer/13838101?ref_topic=13773355&sjid=17642868584668136159-NC) + // offered in the promotion. + google.shopping.type.Price money_off_amount = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of items discounted in the promotion. The attribute is + // set when `couponValueType` is equal to `buy_m_get_n_money_off` or + // `buy_m_get_n_percent_off`. + int64 get_this_quantity_discounted = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Free gift + // value](https://support.google.com/merchants/answer/13844477?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + google.shopping.type.Price free_gift_value = 22 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Free gift + // description](https://support.google.com/merchants/answer/13847245?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + string free_gift_description = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Free gift item + // ID](https://support.google.com/merchants/answer/13857152?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. + string free_gift_item_id = 24 [(google.api.field_behavior) = OPTIONAL]; + + // Required. `TimePeriod` representation of the promotion's effective dates. + // This attribute specifies that the promotion can be tested on your online + // store during this time period. + google.type.Interval promotion_effective_time_period = 25 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. `TimePeriod` representation of the promotion's display dates. + // This attribute specifies the date and time frame when the promotion will be + // live on Google.com and Shopping ads. If the display time period for + // promotion `promotion_display_time_period` attribute is not specified, the + // promotion effective time period `promotion_effective_time_period` + // determines the date and time frame when the promotion will be live on + // Google.com and Shopping ads. + google.type.Interval promotion_display_time_period = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether the promotion applies to [all stores, or only specified + // stores](https://support.google.com/merchants/answer/13857563?sjid=17642868584668136159-NC). + // Local Inventory ads promotions throw an error if no store applicability is + // included. An `INVALID_ARGUMENT` error is thrown if `store_applicability` is + // set to `ALL_STORES` and `store_codes_inclusion` or `score_code_exclusion` + // is set to a value. + StoreApplicability store_applicability = 28 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Store codes to + // include](https://support.google.com/merchants/answer/13857470?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. The store filter attributes only applies when the + // `store_applicability` attribute is set to + // [specific_stores](https://support.google.com/merchants/answer/13857563?ref_topic=13773355&sjid=17642868584668136159-NC). + // + // Store code (the store ID from + // your Business Profile) of the physical store the product is sold in. See + // the [Local product inventory data + // specification](https://support.google.com/merchants/answer/3061342) for + // more information. + repeated string store_codes_inclusion = 29 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. [Store codes to + // exclude](https://support.google.com/merchants/answer/13859586?ref_topic=13773355&sjid=17642868584668136159-NC) + // for the promotion. The store filter attributes only applies when the + // `store_applicability` attribute is set to + // [specific_stores](https://support.google.com/merchants/answer/13857563?ref_topic=13773355&sjid=17642868584668136159-NC). + repeated string store_codes_exclusion = 30 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. URL to the page on the merchant's site where the promotion shows. + // Local Inventory ads promotions throw an error if no `promotion_url` is + // included. URL is used to confirm that the promotion is valid and can be + // redeemed. + string promotion_url = 31 [(google.api.field_behavior) = OPTIONAL]; +} + +// The status of the promotion. +message PromotionStatus { + // The status for the specified destination. + message DestinationStatus { + // The current state of the promotion. + enum State { + // Unknown promotion state. + STATE_UNSPECIFIED = 0; + + // The promotion is under review. + IN_REVIEW = 1; + + // The promotion is disapproved. + REJECTED = 2; + + // The promotion is approved and active. + LIVE = 3; + + // The promotion is stopped by merchant. + STOPPED = 4; + + // The promotion is no longer active. + EXPIRED = 5; + + // The promotion is not stopped, and all reviews are approved, but the + // active date is in the future. + PENDING = 6; + } + + // Output only. The name of the promotion destination. + google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status for the specified destination. + State status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The issue associated with the promotion. + message ItemLevelIssue { + // The severity of the issue. + enum Severity { + // Not specified. + SEVERITY_UNSPECIFIED = 0; + + // This issue represents a warning and does not have a direct affect + // on the promotion. + NOT_IMPACTED = 1; + + // The promotion is demoted and most likely have limited performance + // in search results + DEMOTED = 2; + + // Issue disapproves the promotion. + DISAPPROVED = 3; + } + + // Output only. The error code of the issue. + string code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How this issue affects serving of the promotion. + Severity severity = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether the issue can be resolved by the merchant. + string resolution = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The attribute's name, if the issue is caused by a single + // attribute. + string attribute = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The destination the issue applies to. + google.shopping.type.ReportingContext.ReportingContextEnum + reporting_context = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A short issue description in English. + string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A detailed issue description in English. + string detail = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of a web page to help with resolving this issue. + string documentation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of country codes (ISO 3166-1 alpha-2) where issue + // applies to the offer. + repeated string applicable_countries = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The intended destinations for the promotion. + repeated DestinationStatus destination_statuses = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of issues associated with the promotion. + repeated ItemLevelIssue item_level_issues = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date on which the promotion has been created + // in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, + // and offset, for example `2020-01-02T09:00:00+01:00` or + // `2020-01-02T09:00:00Z` + google.protobuf.Timestamp creation_date = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date on which the promotion status has been last updated + // in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, + // and offset, for example `2020-01-02T09:00:00+01:00` or + // `2020-01-02T09:00:00Z` + google.protobuf.Timestamp last_update_date = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions_grpc_service_config.json new file mode 100644 index 000000000..2c249105d --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/promotions/v1beta/promotions_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.shopping.merchant.promotions.v1beta.PromotionsService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} diff --git a/third_party/googleapis/google/shopping/merchant/quota/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/quota/BUILD.bazel new file mode 100644 index 000000000..29583fc5b --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/quota/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-shopping-merchant-quota. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for merchant quota. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1beta in this case. +ruby_cloud_gapic_library( + name = "quota_ruby_wrapper", + srcs = ["//google/shopping/merchant/quota/v1beta:quota_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-quota", + "ruby-cloud-wrapper-of=v1beta:0.0", + ], + service_yaml = "//google/shopping/merchant/quota/v1beta:merchantapi_v1beta.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-quota-ruby", + deps = [ + ":quota_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/shopping/merchant/quota/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/quota/v1beta/BUILD.bazel new file mode 100644 index 000000000..401d1b686 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/quota/v1beta/BUILD.bazel @@ -0,0 +1,386 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "quota_proto", + srcs = [ + "quota.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + ], +) + +proto_library_with_info( + name = "quota_proto_with_info", + deps = [ + ":quota_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "quota_java_proto", + deps = [":quota_proto"], +) + +java_grpc_library( + name = "quota_java_grpc", + srcs = [":quota_proto"], + deps = [":quota_java_proto"], +) + +java_gapic_library( + name = "quota_java_gapic", + srcs = [":quota_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "quota_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + test_deps = [ + ":quota_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":quota_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "quota_java_gapic_test_suite", + test_classes = [ + "com.google.shopping.merchant.quota.v1beta.QuotaServiceClientHttpJsonTest", + "com.google.shopping.merchant.quota.v1beta.QuotaServiceClientTest", + ], + runtime_deps = [":quota_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-merchant-quota-v1beta-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":quota_java_gapic", + ":quota_java_grpc", + ":quota_java_proto", + ":quota_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "quota_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb", + protos = [":quota_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "quota_go_gapic", + srcs = [":quota_proto_with_info"], + grpc_service_config = "quota_grpc_service_config.json", + importpath = "cloud.google.com/go/shopping/merchant/quota/apiv1beta;quota", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":quota_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-merchant-quota-v1beta-go", + deps = [ + ":quota_go_gapic", + ":quota_go_gapic_srcjar-metadata.srcjar", + ":quota_go_gapic_srcjar-snippets.srcjar", + ":quota_go_gapic_srcjar-test.srcjar", + ":quota_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "quota_py_gapic", + srcs = [":quota_proto"], + grpc_service_config = "quota_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ], + opt_args = [ + "python-gapic-namespace=google.shopping", + "python-gapic-name=merchant_quota", + ], +) + +py_test( + name = "quota_py_gapic_test", + srcs = [ + "quota_py_gapic_pytest.py", + "quota_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":quota_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "merchant-quota-v1beta-py", + deps = [ + ":quota_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "quota_php_proto", + deps = [":quota_proto"], +) + +php_gapic_library( + name = "quota_php_gapic", + srcs = [":quota_proto_with_info"], + grpc_service_config = "quota_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":quota_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-merchant-quota-v1beta-php", + deps = [ + ":quota_php_gapic", + ":quota_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "quota_nodejs_gapic", + package_name = "@google-shopping/quota", + src = ":quota_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "quota_grpc_service_config.json", + package = "google.shopping.merchant.quota.v1beta", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "merchant-quota-v1beta-nodejs", + deps = [ + ":quota_nodejs_gapic", + ":quota_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "quota_ruby_proto", + deps = [":quota_proto"], +) + +ruby_grpc_library( + name = "quota_ruby_grpc", + srcs = [":quota_proto"], + deps = [":quota_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "quota_ruby_gapic", + srcs = [":quota_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-shopping-merchant-quota-v1beta", + ], + grpc_service_config = "quota_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":quota_ruby_grpc", + ":quota_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-shopping-merchant-quota-v1beta-ruby", + deps = [ + ":quota_ruby_gapic", + ":quota_ruby_grpc", + ":quota_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "quota_csharp_proto", + extra_opts = [], + deps = [":quota_proto"], +) + +csharp_grpc_library( + name = "quota_csharp_grpc", + srcs = [":quota_proto"], + deps = [":quota_csharp_proto"], +) + +csharp_gapic_library( + name = "quota_csharp_gapic", + srcs = [":quota_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "quota_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", + deps = [ + ":quota_csharp_grpc", + ":quota_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-merchant-quota-v1beta-csharp", + deps = [ + ":quota_csharp_gapic", + ":quota_csharp_grpc", + ":quota_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "quota_cc_proto", + deps = [":quota_proto"], +) + +cc_grpc_library( + name = "quota_cc_grpc", + srcs = [":quota_proto"], + grpc_only = True, + deps = [":quota_cc_proto"], +) diff --git a/third_party/googleapis/google/shopping/merchant/quota/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/quota/v1beta/merchantapi_v1beta.yaml new file mode 100644 index 000000000..58838bd96 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/quota/v1beta/merchantapi_v1beta.yaml @@ -0,0 +1,56 @@ +type: google.api.Service +config_version: 3 +name: merchantapi.googleapis.com +title: Merchant API + +apis: +- name: google.shopping.merchant.quota.v1beta.QuotaService + +documentation: + summary: Programmatically manage your Merchant Center accounts. + +authentication: + rules: + - selector: google.shopping.merchant.quota.v1beta.QuotaService.ListQuotaGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 + documentation_uri: https://developers.google.com/merchant/api + api_short_name: merchantapi + github_label: 'api: merchantapi' + doc_tag_prefix: merchantapi + organization: SHOPPING + library_settings: + - version: google.shopping.merchant.quota.v1beta + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/shopping/merchant/quota/v1beta/quota.proto b/third_party/googleapis/google/shopping/merchant/quota/v1beta/quota.proto new file mode 100644 index 000000000..f85b0f0d5 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/quota/v1beta/quota.proto @@ -0,0 +1,128 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.shopping.merchant.quota.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb;quotapb"; +option java_multiple_files = true; +option java_outer_classname = "QuotaProto"; +option java_package = "com.google.shopping.merchant.quota.v1beta"; +option (google.api.resource_definition) = { + type: "merchantapi.googleapis.com/Account" + pattern: "accounts/{account}" +}; + +// Service to get method call quota information per Merchant API method. +service QuotaService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Lists the daily call quota and usage per group for your Merchant + // Center account. + rpc ListQuotaGroups(ListQuotaGroupsRequest) + returns (ListQuotaGroupsResponse) { + option (google.api.http) = { + get: "/quota/v1beta/{parent=accounts/*}/quotas" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The group information for methods in the Merchant API. The quota is shared +// between all methods in the group. Even if none of the methods within the +// group have usage the information for the group is returned. +message QuotaGroup { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/QuotaGroup" + pattern: "accounts/{account}/groups/{group}" + plural: "quotaGroups" + singular: "quotaGroup" + }; + + // Identifier. The resource name of the quota group. + // Format: accounts/{account}/quotas/{group} + // Note: There is no guarantee on the format of {group} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The current quota usage, meaning the number of calls already + // made on a given day to the methods in the group. The daily quota limits + // reset at at 12:00 PM midday UTC. + int64 quota_usage = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum number of calls allowed per day for the group. + int64 quota_limit = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum number of calls allowed per minute for the group. + int64 quota_minute_limit = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of all methods group quota applies to. + repeated MethodDetails method_details = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The method details per method in the Merchant API. +message MethodDetails { + // Output only. The name of the method for example `products.list`. + string method = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The API version that the method belongs to. + string version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The sub-API that the method belongs to. + string subapi = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The path for the method such as + // `products/v1/productInputs.insert` + string path = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the ListQuotaGroups method. +message ListQuotaGroupsRequest { + // Required. The merchant account who owns the collection of method quotas + // Format: accounts/{account} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "merchantapi.googleapis.com/QuotaGroup" + } + ]; + + // Optional. The maximum number of quotas to return in the response, used + // for paging. Defaults to 500; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Token (if provided) to retrieve the subsequent page. All other + // parameters must match the original call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for the ListMethodGroups method. +message ListQuotaGroupsResponse { + // The methods, current quota usage and limits per each group. The quota is + // shared between all methods in the group. The groups are sorted in + // descending order based on + // [quotaUsage][google.shopping.merchant.quota.v1main.QuotaGroup.quota_usage]. + repeated QuotaGroup quota_groups = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/shopping/merchant/quota/v1beta/quota_grpc_service_config.json b/third_party/googleapis/google/shopping/merchant/quota/v1beta/quota_grpc_service_config.json new file mode 100644 index 000000000..573bda286 --- /dev/null +++ b/third_party/googleapis/google/shopping/merchant/quota/v1beta/quota_grpc_service_config.json @@ -0,0 +1,15 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.shopping.merchant.quota.v1beta.QuotaService" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }] +} \ No newline at end of file diff --git a/third_party/googleapis/google/shopping/merchant/reports/v1beta/BUILD.bazel b/third_party/googleapis/google/shopping/merchant/reports/v1beta/BUILD.bazel index 422b34f3e..04193c834 100644 --- a/third_party/googleapis/google/shopping/merchant/reports/v1beta/BUILD.bazel +++ b/third_party/googleapis/google/shopping/merchant/reports/v1beta/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "reports_proto", @@ -44,6 +47,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -101,13 +105,13 @@ java_gapic_assembly_gradle_pkg( ":reports_java_grpc", ":reports_java_proto", ":reports_proto", -"//google/shopping/type:type_java_proto", # Added manually ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -157,6 +161,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -209,6 +214,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -246,6 +252,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -277,6 +284,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -326,6 +334,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -336,6 +345,7 @@ load( csharp_proto_library( name = "reports_csharp_proto", + extra_opts = [], deps = [":reports_proto"], ) @@ -352,6 +362,7 @@ csharp_gapic_library( grpc_service_config = "reports_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "merchantapi_v1beta.yaml", + transport = "grpc+rest", deps = [ ":reports_csharp_grpc", ":reports_csharp_proto", @@ -371,6 +382,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/shopping/merchant/reports/v1beta/merchantapi_v1beta.yaml b/third_party/googleapis/google/shopping/merchant/reports/v1beta/merchantapi_v1beta.yaml index d83ae222a..37d904814 100644 --- a/third_party/googleapis/google/shopping/merchant/reports/v1beta/merchantapi_v1beta.yaml +++ b/third_party/googleapis/google/shopping/merchant/reports/v1beta/merchantapi_v1beta.yaml @@ -24,50 +24,12 @@ publishing: doc_tag_prefix: merchantapi organization: SHOPPING library_settings: - - version: google.shopping.merchant.inventories.v1beta - launch_stage: BETA - java_settings: - common: - destinations: - - PACKAGE_MANAGER - cpp_settings: - common: - destinations: - - PACKAGE_MANAGER - php_settings: - common: - destinations: - - PACKAGE_MANAGER - python_settings: - common: - destinations: - - PACKAGE_MANAGER - node_settings: - common: - destinations: - - PACKAGE_MANAGER - dotnet_settings: - common: - destinations: - - PACKAGE_MANAGER - ruby_settings: - common: - destinations: - - PACKAGE_MANAGER - go_settings: - common: - destinations: - - PACKAGE_MANAGER - version: google.shopping.merchant.reports.v1beta launch_stage: BETA java_settings: common: destinations: - PACKAGE_MANAGER - cpp_settings: - common: - destinations: - - PACKAGE_MANAGER php_settings: common: destinations: diff --git a/third_party/googleapis/google/shopping/merchant/reports/v1beta/reports.proto b/third_party/googleapis/google/shopping/merchant/reports/v1beta/reports.proto index 039932120..efd5afb13 100644 --- a/third_party/googleapis/google/shopping/merchant/reports/v1beta/reports.proto +++ b/third_party/googleapis/google/shopping/merchant/reports/v1beta/reports.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -60,7 +60,7 @@ message SearchRequest { string query = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Number of `ReportRows` to retrieve in a single page. Defaults to - // the maximum of 1000. Values above 1000 are coerced to 1000. + // 1000. Values above 5000 are coerced to 5000. int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Token of the page to retrieve. If not specified, the first page @@ -89,6 +89,9 @@ message ReportRow { // Fields available for query in `product_performance_view` table. ProductPerformanceView product_performance_view = 1; + // Fields available for query in `non_product_performance_view` table. + NonProductPerformanceView non_product_performance_view = 7; + // Fields available for query in `product_view` table. ProductView product_view = 2; @@ -352,7 +355,7 @@ message ProductView { // // Here's an example of how the aggregated status is computed: // - // Free listings | Shopping Ads | Status + // Free listings | Shopping ads | Status // --------------|--------------|------------------------------ // Approved | Approved | ELIGIBLE // Approved | Pending | ELIGIBLE @@ -378,6 +381,29 @@ message ProductView { ELIGIBLE = 4; } + // A product's [click + // potential](https://support.google.com/merchants/answer/188488) estimates + // its performance potential compared to highest performing products of the + // merchant. Click potential of a product helps merchants to prioritize which + // products to fix and helps them understand how products are performing + // against their potential. + enum ClickPotential { + // Unknown predicted clicks impact. + CLICK_POTENTIAL_UNSPECIFIED = 0; + + // Potential to receive a low number of clicks compared to the highest + // performing products of the merchant. + LOW = 1; + + // Potential to receive a moderate number of clicks compared to the highest + // performing products of the merchant. + MEDIUM = 2; + + // Potential to receive a similar number of clicks as the highest performing + // products of the merchant. + HIGH = 3; + } + // REST ID of the product, in the form of // `channel~languageCode~feedLabel~offerId`. Merchant API methods that operate // on products take this as their `name` parameter. @@ -457,7 +483,7 @@ message ProductView { // Normalized [shipping // label](https://support.google.com/merchants/answer/6324504) specified in - // the feed. + // the data source. optional string shipping_label = 20; // List of Global Trade Item Numbers (GTINs) of the product. @@ -488,6 +514,15 @@ message ProductView { // `item_issues.severity.aggregated_severity`) can be used for filtering the // results.** repeated ItemIssue item_issues = 27; + + // Estimated performance potential compared to highest performing products of + // the merchant. + ClickPotential click_potential = 29; + + // Rank of the product based on its click potential. A product with + // `click_potential_rank` 1 has the highest click potential among the + // merchant's products that fulfill the search query conditions. + optional int64 click_potential_rank = 30; } // Fields available for query in `price_competitiveness_product_view` table. @@ -575,6 +610,27 @@ message PriceCompetitivenessProductView { // Values are only set for fields requested explicitly in the request's search // query. message PriceInsightsProductView { + // Predicted effectiveness bucket. + // + // Effectiveness indicates which products would benefit most from price + // changes. This rating takes into consideration the performance boost + // predicted by adjusting the sale price and the difference between your + // current price and the suggested price. Price suggestions with `HIGH` + // effectiveness are predicted to drive the largest increase in performance. + enum Effectiveness { + // Effectiveness is unknown. + EFFECTIVENESS_UNSPECIFIED = 0; + + // Effectiveness is low. + LOW = 1; + + // Effectiveness is medium. + MEDIUM = 2; + + // Effectiveness is high. + HIGH = 3; + } + // REST ID of the product, in the form of // `channel~languageCode~feedLabel~offerId`. Can be used to join data with the // `product_view` table. @@ -651,6 +707,9 @@ message PriceInsightsProductView { // suggested price compared to current active price. For example, 0.05 is a 5% // predicted increase in conversions). optional double predicted_conversions_change_fraction = 19; + + // The predicted effectiveness of applying the price suggestion, bucketed. + Effectiveness effectiveness = 22; } // Fields available for query in `best_sellers_product_cluster_view` table. @@ -746,16 +805,16 @@ message BestSellersProductClusterView { // GTINs of example variants of the product cluster. repeated string variant_gtins = 13; - // Whether the product cluster is `IN_STOCK` in your product feed in at least - // one of the countries, `OUT_OF_STOCK` in your product feed in all countries, - // or `NOT_IN_INVENTORY` at all. + // Whether the product cluster is `IN_STOCK` in your product data source in at + // least one of the countries, `OUT_OF_STOCK` in your product data source in + // all countries, or `NOT_IN_INVENTORY` at all. // // The field doesn't take the Best sellers report country filter into account. optional InventoryStatus inventory_status = 14; // Whether there is at least one product of the brand currently `IN_STOCK` in - // your product feed in at least one of the countries, all products are - // `OUT_OF_STOCK` in your product feed in all countries, or + // your product data source in at least one of the countries, all products are + // `OUT_OF_STOCK` in your product data source in all countries, or // `NOT_IN_INVENTORY`. // // The field doesn't take the Best sellers report country filter into account. @@ -846,6 +905,42 @@ message BestSellersBrandView { relative_demand_change = 11; } +// Fields available for query in `non_product_performance_view` table. +// +// Performance data on images and online store links leading to your non-product +// pages. This includes performance metrics (for example, `clicks`) +// and dimensions according to which performance metrics are segmented (for +// example, `date`). +// +// Segment fields cannot be selected in queries without also selecting at least +// one metric field. +// +// Values are only set for fields requested explicitly in the request's search +// query. +message NonProductPerformanceView { + // Date in the merchant timezone to which metrics apply. Segment. + // + // Condition on `date` is required in the `WHERE` clause. + google.type.Date date = 1; + + // First day of the week (Monday) of the metrics date in the merchant + // timezone. Segment. + google.type.Date week = 2; + + // Number of clicks on images and online store links leading to your + // non-product pages. Metric. + optional int64 clicks = 3; + + // Number of times images and online store links leading to your non-product + // pages were shown. Metric. + optional int64 impressions = 4; + + // Click-through rate - the number of clicks (`clicks`) divided by the number + // of impressions (`impressions`) of images and online store links leading to + // your non-product pages. Metric. + optional double click_through_rate = 5; +} + // Fields available for query in `competitive_visibility_competitor_view` table. // // [Competitive diff --git a/third_party/googleapis/google/shopping/type/BUILD.bazel b/third_party/googleapis/google/shopping/type/BUILD.bazel index d45457806..d4f867871 100644 --- a/third_party/googleapis/google/shopping/type/BUILD.bazel +++ b/third_party/googleapis/google/shopping/type/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -20,6 +22,7 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_proto_library", @@ -43,6 +46,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", @@ -68,6 +72,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", @@ -113,6 +118,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -134,6 +140,7 @@ php_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -154,6 +161,7 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", @@ -178,6 +186,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/shopping/type/types.proto b/third_party/googleapis/google/shopping/type/types.proto index f2e842724..0d219e72d 100644 --- a/third_party/googleapis/google/shopping/type/types.proto +++ b/third_party/googleapis/google/shopping/type/types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,13 +22,37 @@ option java_multiple_files = true; option java_outer_classname = "TypesProto"; option java_package = "com.google.shopping.type"; +// The weight represented as the value in string and the unit. +message Weight { + // The weight unit. + enum WeightUnit { + // unit unspecified + WEIGHT_UNIT_UNSPECIFIED = 0; + + // lb unit. + POUND = 1; + + // kg unit. + KILOGRAM = 2; + } + + // Required. The weight represented as a number in micros (1 million micros is + // an equivalent to one's currency standard unit, for example, 1 kg = 1000000 + // micros). + // This field can also be set as infinity by setting to -1. + // This field only support -1 and positive value. + optional int64 amount_micros = 1; + + // Required. The weight unit. + // Acceptable values are: kg and lb + WeightUnit unit = 2; +} + // The price represented as a number and currency. message Price { // The price represented as a number in micros (1 million micros is an // equivalent to one's currency standard unit, for example, 1 USD = 1000000 // micros). - // This field can also be set as infinity by setting to -1. - // This field only support -1 and positive value. optional int64 amount_micros = 1; // The currency of the price using three-letter acronyms according to [ISO @@ -89,7 +113,7 @@ message Destination { // Reporting contexts are groups of surfaces and formats for product results on // Google. They can represent the entire destination (for example, [Shopping // ads](https://support.google.com/merchants/answer/6149970)) or a subset of -// formats within a destination (for example, [Discovery +// formats within a destination (for example, [Demand Gen // ads](https://support.google.com/merchants/answer/13389785)). // message ReportingContext { @@ -101,9 +125,17 @@ message ReportingContext { // [Shopping ads](https://support.google.com/merchants/answer/6149970). SHOPPING_ADS = 1; + // Deprecated: Use `DEMAND_GEN_ADS` instead. // [Discovery and Demand Gen // ads](https://support.google.com/merchants/answer/13389785). - DISCOVERY_ADS = 2; + DISCOVERY_ADS = 2 [deprecated = true]; + + // [Demand Gen ads](https://support.google.com/merchants/answer/13389785). + DEMAND_GEN_ADS = 13; + + // [Demand Gen ads on Discover + // surface](https://support.google.com/merchants/answer/13389785). + DEMAND_GEN_ADS_DISCOVER_SURFACE = 14; // [Video ads](https://support.google.com/google-ads/answer/6340491). VIDEO_ADS = 3; diff --git a/third_party/googleapis/google/spanner/admin/database/v1/BUILD.bazel b/third_party/googleapis/google/spanner/admin/database/v1/BUILD.bazel index 3715691ba..7d20b051e 100644 --- a/third_party/googleapis/google/spanner/admin/database/v1/BUILD.bazel +++ b/third_party/googleapis/google/spanner/admin/database/v1/BUILD.bazel @@ -51,6 +51,7 @@ proto_library( name = "database_proto", srcs = [ "backup.proto", + "backup_schedule.proto", "common.proto", "spanner_database_admin.proto", ], @@ -63,6 +64,7 @@ proto_library( "//google/iam/v1:policy_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", diff --git a/third_party/googleapis/google/spanner/admin/database/v1/backup.proto b/third_party/googleapis/google/spanner/admin/database/v1/backup.proto index fce69a2f3..f684a4c60 100644 --- a/third_party/googleapis/google/spanner/admin/database/v1/backup.proto +++ b/third_party/googleapis/google/spanner/admin/database/v1/backup.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -51,14 +51,14 @@ message Backup { READY = 2; } - // Required for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation. - // Name of the database from which this backup was - // created. This needs to be in the same instance as the backup. - // Values are of the form + // Required for the + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // operation. Name of the database from which this backup was created. This + // needs to be in the same instance as the backup. Values are of the form // `projects//instances//databases/`. string database = 2 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; // The backup will contain an externally consistent copy of the database at // the timestamp specified by `version_time`. If `version_time` is not @@ -66,7 +66,8 @@ message Backup { // backup. google.protobuf.Timestamp version_time = 9; - // Required for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // Required for the + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] // operation. The expiration time of the backup, with microseconds // granularity that must be at least 6 hours and at most 366 days // from the time the CreateBackup request is processed. Once the `expire_time` @@ -74,8 +75,11 @@ message Backup { // Spanner to free the resources used by the backup. google.protobuf.Timestamp expire_time = 3; - // Output only for the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation. - // Required for the [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] operation. + // Output only for the + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // operation. Required for the + // [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup] + // operation. // // A globally unique identifier for the backup which cannot be // changed. Values are of the form @@ -89,10 +93,12 @@ message Backup { // `projects//instances/`. string name = 1; - // Output only. The time the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // Output only. The time the + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] // request is received. If the request does not specify `version_time`, the // `version_time` of the backup will be equivalent to the `create_time`. - google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Size of the backup in bytes. int64 size_bytes = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -115,10 +121,21 @@ message Backup { ]; // Output only. The encryption information for the backup. - EncryptionInfo encryption_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + EncryptionInfo encryption_info = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The encryption information for the backup, whether it is + // protected by one or more KMS keys. The information includes all Cloud + // KMS key versions used to encrypt the backup. The `encryption_status' field + // inside of each `EncryptionInfo` is not populated. At least one of the key + // versions must be available for the backup to be restored. If a key version + // is revoked in the middle of a restore, the restore behavior is undefined. + repeated EncryptionInfo encryption_information = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The database dialect information for the backup. - DatabaseDialect database_dialect = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + DatabaseDialect database_dialect = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The names of the destination backups being created by copying // this source backup. The backup names are of the form @@ -129,9 +146,7 @@ message Backup { // destination backup is deleted), the reference to the backup is removed. repeated string referencing_backups = 11 [ (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - } + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } ]; // Output only. The max allowed expiration time of the backup, with @@ -139,10 +154,24 @@ message Backup { // multiple APIs: CreateBackup, UpdateBackup, CopyBackup. When updating or // copying an existing backup, the expiration time specified must be // less than `Backup.max_expire_time`. - google.protobuf.Timestamp max_expire_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp max_expire_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of backup schedule URIs that are associated with + // creating this backup. This is only applicable for scheduled backups, and + // is empty for on-demand backups. + // + // To optimize for storage, whenever possible, multiple schedules are + // collapsed together to create one backup. In such cases, this field captures + // the list of all backup schedule URIs that are associated with creating + // this backup. If collapsing is not done, then this field captures the + // single backup schedule URI associated with creating this backup. + repeated string backup_schedules = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; } -// The request for [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]. +// The request for +// [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]. message CreateBackupRequest { // Required. The name of the instance in which the backup will be // created. This must be the same instance that contains the database the @@ -165,29 +194,31 @@ message CreateBackupRequest { // Required. The backup to create. Backup backup = 3 [(google.api.field_behavior) = REQUIRED]; - // Optional. The encryption configuration used to encrypt the backup. If this field is - // not specified, the backup will use the same - // encryption configuration as the database by default, namely - // [encryption_type][google.spanner.admin.database.v1.CreateBackupEncryptionConfig.encryption_type] = - // `USE_DATABASE_ENCRYPTION`. - CreateBackupEncryptionConfig encryption_config = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The encryption configuration used to encrypt the backup. If this + // field is not specified, the backup will use the same encryption + // configuration as the database by default, namely + // [encryption_type][google.spanner.admin.database.v1.CreateBackupEncryptionConfig.encryption_type] + // = `USE_DATABASE_ENCRYPTION`. + CreateBackupEncryptionConfig encryption_config = 4 + [(google.api.field_behavior) = OPTIONAL]; } // Metadata type for the operation returned by // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]. message CreateBackupMetadata { // The name of the backup being created. - string name = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - }]; + string name = 1 [ + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } + ]; // The name of the database the backup is created from. string database = 2 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; // The progress of the - // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] operation. + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // operation. OperationProgress progress = 3; // The time at which cancellation of this operation was received. @@ -205,10 +236,11 @@ message CreateBackupMetadata { google.protobuf.Timestamp cancel_time = 4; } -// The request for [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup]. +// The request for +// [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup]. message CopyBackupRequest { - // Required. The name of the destination instance that will contain the backup copy. - // Values are of the form: `projects//instances/`. + // Required. The name of the destination instance that will contain the backup + // copy. Values are of the form: `projects//instances/`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -229,9 +261,7 @@ message CopyBackupRequest { // `projects//instances//backups/`. string source_backup = 3 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - } + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } ]; // Required. The expiration time of the backup in microsecond granularity. @@ -239,35 +269,38 @@ message CopyBackupRequest { // from the `create_time` of the source backup. Once the `expire_time` has // passed, the backup is eligible to be automatically deleted by Cloud Spanner // to free the resources used by the backup. - google.protobuf.Timestamp expire_time = 4 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The encryption configuration used to encrypt the backup. If this field is - // not specified, the backup will use the same - // encryption configuration as the source backup by default, namely - // [encryption_type][google.spanner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type] = - // `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`. - CopyBackupEncryptionConfig encryption_config = 5 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp expire_time = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The encryption configuration used to encrypt the backup. If this + // field is not specified, the backup will use the same encryption + // configuration as the source backup by default, namely + // [encryption_type][google.spanner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type] + // = `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`. + CopyBackupEncryptionConfig encryption_config = 5 + [(google.api.field_behavior) = OPTIONAL]; } -// Metadata type for the google.longrunning.Operation returned by +// Metadata type for the operation returned by // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup]. message CopyBackupMetadata { // The name of the backup being created through the copy operation. // Values are of the form // `projects//instances//backups/`. - string name = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - }]; + string name = 1 [ + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } + ]; // The name of the source backup that is being copied. // Values are of the form // `projects//instances//backups/`. - string source_backup = 2 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - }]; + string source_backup = 2 [ + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } + ]; // The progress of the - // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup] operation. + // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup] + // operation. OperationProgress progress = 3; // The time at which cancellation of CopyBackup operation was received. @@ -285,7 +318,8 @@ message CopyBackupMetadata { google.protobuf.Timestamp cancel_time = 4; } -// The request for [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup]. +// The request for +// [UpdateBackup][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackup]. message UpdateBackupRequest { // Required. The backup to update. `backup.name`, and the fields to be updated // as specified by `update_mask` are required. Other fields are ignored. @@ -298,36 +332,36 @@ message UpdateBackupRequest { // resource, not to the request message. The field mask must always be // specified; this prevents any future fields from being erased accidentally // by clients that do not know about them. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; } -// The request for [GetBackup][google.spanner.admin.database.v1.DatabaseAdmin.GetBackup]. +// The request for +// [GetBackup][google.spanner.admin.database.v1.DatabaseAdmin.GetBackup]. message GetBackupRequest { // Required. Name of the backup. // Values are of the form // `projects//instances//backups/`. string name = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - } + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } ]; } -// The request for [DeleteBackup][google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup]. +// The request for +// [DeleteBackup][google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackup]. message DeleteBackupRequest { // Required. Name of the backup to delete. // Values are of the form // `projects//instances//backups/`. string name = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - } + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } ]; } -// The request for [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups]. +// The request for +// [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups]. message ListBackupsRequest { // Required. The instance to list backups from. Values are of the // form `projects//instances/`. @@ -346,7 +380,9 @@ message ListBackupsRequest { // must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. // Colon `:` is the contains operator. Filter rules are not case sensitive. // - // The following fields in the [Backup][google.spanner.admin.database.v1.Backup] are eligible for filtering: + // The following fields in the + // [Backup][google.spanner.admin.database.v1.Backup] are eligible for + // filtering: // // * `name` // * `database` @@ -380,21 +416,23 @@ message ListBackupsRequest { int32 page_size = 3; // If non-empty, `page_token` should contain a - // [next_page_token][google.spanner.admin.database.v1.ListBackupsResponse.next_page_token] from a - // previous [ListBackupsResponse][google.spanner.admin.database.v1.ListBackupsResponse] to the same `parent` and with the same - // `filter`. + // [next_page_token][google.spanner.admin.database.v1.ListBackupsResponse.next_page_token] + // from a previous + // [ListBackupsResponse][google.spanner.admin.database.v1.ListBackupsResponse] + // to the same `parent` and with the same `filter`. string page_token = 4; } -// The response for [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups]. +// The response for +// [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups]. message ListBackupsResponse { // The list of matching backups. Backups returned are ordered by `create_time` // in descending order, starting from the most recent `create_time`. repeated Backup backups = 1; // `next_page_token` can be sent in a subsequent - // [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups] call to fetch more - // of the matching backups. + // [ListBackups][google.spanner.admin.database.v1.DatabaseAdmin.ListBackups] + // call to fetch more of the matching backups. string next_page_token = 2; } @@ -424,7 +462,9 @@ message ListBackupOperationsRequest { // * `name` - The name of the long-running operation // * `done` - False if the operation is in progress, else true. // * `metadata.@type` - the type of metadata. For example, the type string - // for [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata] is + // for + // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata] + // is // `type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`. // * `metadata.` - any field in metadata.value. // `metadata.@type` must be specified first if filtering on metadata @@ -442,14 +482,15 @@ message ListBackupOperationsRequest { // * `done:true` - The operation is complete. // * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \ // `metadata.database:prod` - Returns operations where: - // * The operation's metadata type is [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. - // * The database the backup was taken from has a name containing the - // string "prod". + // * The operation's metadata type is + // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. + // * The source database name of backup contains the string "prod". // * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \ // `(metadata.name:howl) AND` \ // `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \ // `(error:*)` - Returns operations where: - // * The operation's metadata type is [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. + // * The operation's metadata type is + // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. // * The backup name contains the string "howl". // * The operation started before 2018-03-28T14:50:00Z. // * The operation resulted in an error. @@ -457,9 +498,9 @@ message ListBackupOperationsRequest { // `(metadata.source_backup:test) AND` \ // `(metadata.progress.start_time < \"2022-01-18T14:50:00Z\") AND` \ // `(error:*)` - Returns operations where: - // * The operation's metadata type is [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata]. - // * The source backup of the copied backup name contains the string - // "test". + // * The operation's metadata type is + // [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata]. + // * The source backup name contains the string "test". // * The operation started before 2022-01-18T14:50:00Z. // * The operation resulted in an error. // * `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \ @@ -469,12 +510,13 @@ message ListBackupOperationsRequest { // `(metadata.source_backup:test_bkp)) AND` \ // `(error:*)` - Returns operations where: // * The operation's metadata matches either of criteria: - // * The operation's metadata type is [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata] AND the - // database the backup was taken from has name containing string + // * The operation's metadata type is + // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata] + // AND the source database name of the backup contains the string // "test_db" - // * The operation's metadata type is [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata] AND the - // backup the backup was copied from has name containing string - // "test_bkp" + // * The operation's metadata type is + // [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata] + // AND the source backup name contains the string "test_bkp" // * The operation resulted in an error. string filter = 2; @@ -484,8 +526,9 @@ message ListBackupOperationsRequest { // If non-empty, `page_token` should contain a // [next_page_token][google.spanner.admin.database.v1.ListBackupOperationsResponse.next_page_token] - // from a previous [ListBackupOperationsResponse][google.spanner.admin.database.v1.ListBackupOperationsResponse] to the - // same `parent` and with the same `filter`. + // from a previous + // [ListBackupOperationsResponse][google.spanner.admin.database.v1.ListBackupOperationsResponse] + // to the same `parent` and with the same `filter`. string page_token = 4; } @@ -512,25 +555,26 @@ message ListBackupOperationsResponse { // Information about a backup. message BackupInfo { // Name of the backup. - string backup = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - }]; + string backup = 1 [ + (google.api.resource_reference) = { type: "spanner.googleapis.com/Backup" } + ]; // The backup contains an externally consistent copy of `source_database` at // the timestamp specified by `version_time`. If the - // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] request did not specify - // `version_time`, the `version_time` of the backup is equivalent to the - // `create_time`. + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // request did not specify `version_time`, the `version_time` of the backup is + // equivalent to the `create_time`. google.protobuf.Timestamp version_time = 4; - // The time the [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] request was - // received. + // The time the + // [CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup] + // request was received. google.protobuf.Timestamp create_time = 2; // Name of the database the backup was created from. string source_database = 3 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; } // Encryption configuration for the backup to create. @@ -542,9 +586,10 @@ message CreateBackupEncryptionConfig { // Use the same encryption configuration as the database. This is the // default option when - // [encryption_config][google.spanner.admin.database.v1.CreateBackupEncryptionConfig] is empty. - // For example, if the database is using `Customer_Managed_Encryption`, the - // backup will be using the same Cloud KMS key as the database. + // [encryption_config][google.spanner.admin.database.v1.CreateBackupEncryptionConfig] + // is empty. For example, if the database is using + // `Customer_Managed_Encryption`, the backup will be using the same Cloud + // KMS key as the database. USE_DATABASE_ENCRYPTION = 1; // Use Google default encryption. @@ -560,8 +605,8 @@ message CreateBackupEncryptionConfig { // Optional. The Cloud KMS key that will be used to protect the backup. // This field should be set only when - // [encryption_type][google.spanner.admin.database.v1.CreateBackupEncryptionConfig.encryption_type] is - // `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form + // [encryption_type][google.spanner.admin.database.v1.CreateBackupEncryptionConfig.encryption_type] + // is `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form // `projects//locations//keyRings//cryptoKeys/`. string kms_key_name = 2 [ (google.api.field_behavior) = OPTIONAL, @@ -569,6 +614,28 @@ message CreateBackupEncryptionConfig { type: "cloudkms.googleapis.com/CryptoKey" } ]; + + // Optional. Specifies the KMS configuration for the one or more keys used to + // protect the backup. Values are of the form + // `projects//locations//keyRings//cryptoKeys/`. + // + // The keys referenced by kms_key_names must fully cover all + // regions of the backup's instance configuration. Some examples: + // * For single region instance configs, specify a single regional + // location KMS key. + // * For multi-regional instance configs of type GOOGLE_MANAGED, + // either specify a multi-regional location KMS key or multiple regional + // location KMS keys that cover all regions in the instance config. + // * For an instance config of type USER_MANAGED, please specify only + // regional location KMS keys to cover each region in the instance config. + // Multi-regional location KMS keys are not supported for USER_MANAGED + // instance configs. + repeated string kms_key_names = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; } // Encryption configuration for the copied backup. @@ -578,17 +645,20 @@ message CopyBackupEncryptionConfig { // Unspecified. Do not use. ENCRYPTION_TYPE_UNSPECIFIED = 0; - // This is the default option for [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup] - // when [encryption_config][google.spanner.admin.database.v1.CopyBackupEncryptionConfig] is not specified. - // For example, if the source backup is using `Customer_Managed_Encryption`, - // the backup will be using the same Cloud KMS key as the source backup. + // This is the default option for + // [CopyBackup][google.spanner.admin.database.v1.DatabaseAdmin.CopyBackup] + // when + // [encryption_config][google.spanner.admin.database.v1.CopyBackupEncryptionConfig] + // is not specified. For example, if the source backup is using + // `Customer_Managed_Encryption`, the backup will be using the same Cloud + // KMS key as the source backup. USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION = 1; // Use Google default encryption. GOOGLE_DEFAULT_ENCRYPTION = 2; - // Use customer managed encryption. If specified, `kms_key_name` - // must contain a valid Cloud KMS key. + // Use customer managed encryption. If specified, either `kms_key_name` or + // `kms_key_names` must contain valid Cloud KMS key(s). CUSTOMER_MANAGED_ENCRYPTION = 3; } @@ -597,8 +667,8 @@ message CopyBackupEncryptionConfig { // Optional. The Cloud KMS key that will be used to protect the backup. // This field should be set only when - // [encryption_type][google.spanner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type] is - // `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form + // [encryption_type][google.spanner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type] + // is `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form // `projects//locations//keyRings//cryptoKeys/`. string kms_key_name = 2 [ (google.api.field_behavior) = OPTIONAL, @@ -606,4 +676,32 @@ message CopyBackupEncryptionConfig { type: "cloudkms.googleapis.com/CryptoKey" } ]; + + // Optional. Specifies the KMS configuration for the one or more keys used to + // protect the backup. Values are of the form + // `projects//locations//keyRings//cryptoKeys/`. + // Kms keys specified can be in any order. + // + // The keys referenced by kms_key_names must fully cover all + // regions of the backup's instance configuration. Some examples: + // * For single region instance configs, specify a single regional + // location KMS key. + // * For multi-regional instance configs of type GOOGLE_MANAGED, + // either specify a multi-regional location KMS key or multiple regional + // location KMS keys that cover all regions in the instance config. + // * For an instance config of type USER_MANAGED, please specify only + // regional location KMS keys to cover each region in the instance config. + // Multi-regional location KMS keys are not supported for USER_MANAGED + // instance configs. + repeated string kms_key_names = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; } + +// The specification for full backups. +// A full backup stores the entire contents of the database at a given +// version time. +message FullBackupSpec {} diff --git a/third_party/googleapis/google/spanner/admin/database/v1/backup_schedule.proto b/third_party/googleapis/google/spanner/admin/database/v1/backup_schedule.proto new file mode 100644 index 000000000..9ef4587f8 --- /dev/null +++ b/third_party/googleapis/google/spanner/admin/database/v1/backup_schedule.proto @@ -0,0 +1,227 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package google.spanner.admin.database.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/spanner/admin/database/v1/backup.proto"; + +option csharp_namespace = "Google.Cloud.Spanner.Admin.Database.V1"; +option go_package = "cloud.google.com/go/spanner/admin/database/apiv1/databasepb;databasepb"; +option java_multiple_files = true; +option java_outer_classname = "BackupScheduleProto"; +option java_package = "com.google.spanner.admin.database.v1"; +option php_namespace = "Google\\Cloud\\Spanner\\Admin\\Database\\V1"; +option ruby_package = "Google::Cloud::Spanner::Admin::Database::V1"; + +// Defines specifications of the backup schedule. +message BackupScheduleSpec { + // Required. + oneof schedule_spec { + // Cron style schedule specification. + CrontabSpec cron_spec = 1; + } +} + +// BackupSchedule expresses the automated backup creation specification for a +// Spanner database. +// Next ID: 10 +message BackupSchedule { + option (google.api.resource) = { + type: "spanner.googleapis.com/BackupSchedule" + pattern: "projects/{project}/instances/{instance}/databases/{database}/backupSchedules/{schedule}" + plural: "backupSchedules" + singular: "backupSchedule" + }; + + // Identifier. Output only for the + // [CreateBackupSchedule][DatabaseAdmin.CreateBackupSchededule] operation. + // Required for the + // [UpdateBackupSchedule][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackupSchedule] + // operation. A globally unique identifier for the backup schedule which + // cannot be changed. Values are of the form + // `projects//instances//databases//backupSchedules/[a-z][a-z0-9_\-]*[a-z0-9]` + // The final segment of the name must be between 2 and 60 characters in + // length. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The schedule specification based on which the backup creations + // are triggered. + BackupScheduleSpec spec = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The retention duration of a backup that must be at least 6 hours + // and at most 366 days. The backup is eligible to be automatically deleted + // once the retention period has elapsed. + google.protobuf.Duration retention_duration = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The encryption configuration that will be used to encrypt the + // backup. If this field is not specified, the backup will use the same + // encryption configuration as the database. + CreateBackupEncryptionConfig encryption_config = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. Backup type spec determines the type of backup that is created by + // the backup schedule. Currently, only full backups are supported. + oneof backup_type_spec { + // The schedule creates only full backups. + FullBackupSpec full_backup_spec = 7; + } + + // Output only. The timestamp at which the schedule was last updated. + // If the schedule has never been updated, this field contains the timestamp + // when the schedule was first created. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// CrontabSpec can be used to specify the version time and frequency at +// which the backup should be created. +message CrontabSpec { + // Required. Textual representation of the crontab. User can customize the + // backup frequency and the backup version time using the cron + // expression. The version time must be in UTC timzeone. + // + // The backup will contain an externally consistent copy of the + // database at the version time. Allowed frequencies are 12 hour, 1 day, + // 1 week and 1 month. Examples of valid cron specifications: + // * `0 2/12 * * * ` : every 12 hours at (2, 14) hours past midnight in UTC. + // * `0 2,14 * * * ` : every 12 hours at (2,14) hours past midnight in UTC. + // * `0 2 * * * ` : once a day at 2 past midnight in UTC. + // * `0 2 * * 0 ` : once a week every Sunday at 2 past midnight in UTC. + // * `0 2 8 * * ` : once a month on 8th day at 2 past midnight in UTC. + string text = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The time zone of the times in `CrontabSpec.text`. Currently + // only UTC is supported. + string time_zone = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Schedule backups will contain an externally consistent copy + // of the database at the version time specified in + // `schedule_spec.cron_spec`. However, Spanner may not initiate the creation + // of the scheduled backups at that version time. Spanner will initiate + // the creation of scheduled backups within the time window bounded by the + // version_time specified in `schedule_spec.cron_spec` and version_time + + // `creation_window`. + google.protobuf.Duration creation_window = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The request for +// [CreateBackupSchedule][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackupSchedule]. +message CreateBackupScheduleRequest { + // Required. The name of the database that this backup schedule applies to. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Database" + } + ]; + + // Required. The Id to use for the backup schedule. The `backup_schedule_id` + // appended to `parent` forms the full backup schedule name of the form + // `projects//instances//databases//backupSchedules/`. + string backup_schedule_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The backup schedule to create. + BackupSchedule backup_schedule = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request for +// [GetBackupSchedule][google.spanner.admin.database.v1.DatabaseAdmin.GetBackupSchedule]. +message GetBackupScheduleRequest { + // Required. The name of the schedule to retrieve. + // Values are of the form + // `projects//instances//databases//backupSchedules/`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/BackupSchedule" + } + ]; +} + +// The request for +// [DeleteBackupSchedule][google.spanner.admin.database.v1.DatabaseAdmin.DeleteBackupSchedule]. +message DeleteBackupScheduleRequest { + // Required. The name of the schedule to delete. + // Values are of the form + // `projects//instances//databases//backupSchedules/`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/BackupSchedule" + } + ]; +} + +// The request for +// [ListBackupSchedules][google.spanner.admin.database.v1.DatabaseAdmin.ListBackupSchedules]. +message ListBackupSchedulesRequest { + // Required. Database is the parent resource whose backup schedules should be + // listed. Values are of the form + // projects//instances//databases/ + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Database" + } + ]; + + // Optional. Number of backup schedules to be returned in the response. If 0 + // or less, defaults to the server's maximum allowed page size. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If non-empty, `page_token` should contain a + // [next_page_token][google.spanner.admin.database.v1.ListBackupSchedulesResponse.next_page_token] + // from a previous + // [ListBackupSchedulesResponse][google.spanner.admin.database.v1.ListBackupSchedulesResponse] + // to the same `parent`. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for +// [ListBackupSchedules][google.spanner.admin.database.v1.DatabaseAdmin.ListBackupSchedules]. +message ListBackupSchedulesResponse { + // The list of backup schedules for a database. + repeated BackupSchedule backup_schedules = 1; + + // `next_page_token` can be sent in a subsequent + // [ListBackupSchedules][google.spanner.admin.database.v1.DatabaseAdmin.ListBackupSchedules] + // call to fetch more of the schedules. + string next_page_token = 2; +} + +// The request for +// [UpdateBackupScheduleRequest][google.spanner.admin.database.v1.DatabaseAdmin.UpdateBackupSchedule]. +message UpdateBackupScheduleRequest { + // Required. The backup schedule to update. `backup_schedule.name`, and the + // fields to be updated as specified by `update_mask` are required. Other + // fields are ignored. + BackupSchedule backup_schedule = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. A mask specifying which fields in the BackupSchedule resource + // should be updated. This mask is relative to the BackupSchedule resource, + // not to the request message. The field mask must always be + // specified; this prevents any future fields from being erased + // accidentally. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/third_party/googleapis/google/spanner/admin/database/v1/common.proto b/third_party/googleapis/google/spanner/admin/database/v1/common.proto index 32d7519e3..a91012306 100644 --- a/third_party/googleapis/google/spanner/admin/database/v1/common.proto +++ b/third_party/googleapis/google/spanner/admin/database/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -58,8 +58,27 @@ message EncryptionConfig { // the database. Values are of the form // `projects//locations//keyRings//cryptoKeys/`. string kms_key_name = 2 [(google.api.resource_reference) = { - type: "cloudkms.googleapis.com/CryptoKey" - }]; + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Specifies the KMS configuration for the one or more keys used to encrypt + // the database. Values are of the form + // `projects//locations//keyRings//cryptoKeys/`. + // + // The keys referenced by kms_key_names must fully cover all + // regions of the database instance configuration. Some examples: + // * For single region database instance configs, specify a single regional + // location KMS key. + // * For multi-regional database instance configs of type GOOGLE_MANAGED, + // either specify a multi-regional location KMS key or multiple regional + // location KMS keys that cover all regions in the instance config. + // * For a database instance config of type USER_MANAGED, please specify only + // regional location KMS keys to cover each region in the instance config. + // Multi-regional location KMS keys are not supported for USER_MANAGED + // instance configs. + repeated string kms_key_names = 3 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; } // Encryption information for a Cloud Spanner database or backup. @@ -83,13 +102,14 @@ message EncryptionInfo { // Output only. The type of encryption. Type encryption_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. If present, the status of a recent encrypt/decrypt call on underlying data - // for this database or backup. Regardless of status, data is always encrypted - // at rest. - google.rpc.Status encryption_status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. If present, the status of a recent encrypt/decrypt call on + // underlying data for this database or backup. Regardless of status, data is + // always encrypted at rest. + google.rpc.Status encryption_status = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A Cloud KMS key version that is being used to protect the database or - // backup. + // Output only. A Cloud KMS key version that is being used to protect the + // database or backup. string kms_key_version = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -104,7 +124,7 @@ enum DatabaseDialect { // GOOGLE_STANDARD_SQL dialect. DATABASE_DIALECT_UNSPECIFIED = 0; - // Google standard SQL. + // GoogleSQL supported SQL. GOOGLE_STANDARD_SQL = 1; // PostgreSQL supported SQL. diff --git a/third_party/googleapis/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json b/third_party/googleapis/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json index 40ae996e6..e96643790 100755 --- a/third_party/googleapis/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json +++ b/third_party/googleapis/google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json @@ -53,6 +53,26 @@ { "service": "google.spanner.admin.database.v1.DatabaseAdmin", "method": "ListDatabaseRoles" + }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "CreateBackupSchedule" + }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "GetBackupSchedule" + }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "UpdateBackupSchedule" + }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "DeleteBackupSchedule" + }, + { + "service": "google.spanner.admin.database.v1.DatabaseAdmin", + "method": "ListBackupSchedules" } ], "timeout": "3600s", diff --git a/third_party/googleapis/google/spanner/admin/database/v1/spanner_database_admin.proto b/third_party/googleapis/google/spanner/admin/database/v1/spanner_database_admin.proto index a522c08c1..5df142403 100644 --- a/third_party/googleapis/google/spanner/admin/database/v1/spanner_database_admin.proto +++ b/third_party/googleapis/google/spanner/admin/database/v1/spanner_database_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/spanner/admin/database/v1/backup.proto"; +import "google/spanner/admin/database/v1/backup_schedule.proto"; import "google/spanner/admin/database/v1/common.proto"; option csharp_namespace = "Google.Cloud.Spanner.Admin.Database.V1"; @@ -46,7 +47,7 @@ option (google.api.resource_definition) = { // The Cloud Spanner Database Admin API can be used to: // * create, drop, and list databases // * update the schema of pre-existing databases -// * create, delete and list backups for a database +// * create, delete, copy and list backups for a database // * restore a database from an existing backup service DatabaseAdmin { option (google.api.default_host) = "spanner.googleapis.com"; @@ -67,10 +68,11 @@ service DatabaseAdmin { // have a name of the format `/operations/` and // can be used to track preparation of the database. The // [metadata][google.longrunning.Operation.metadata] field type is - // [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The - // [response][google.longrunning.Operation.response] field type is + // [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. + // The [response][google.longrunning.Operation.response] field type is // [Database][google.spanner.admin.database.v1.Database], if successful. - rpc CreateDatabase(CreateDatabaseRequest) returns (google.longrunning.Operation) { + rpc CreateDatabase(CreateDatabaseRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/instances/*}/databases" body: "*" @@ -145,8 +147,10 @@ service DatabaseAdmin { // the format `/operations/` and can be used to // track execution of the schema change(s). The // [metadata][google.longrunning.Operation.metadata] field type is - // [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata]. The operation has no response. - rpc UpdateDatabaseDdl(UpdateDatabaseDdlRequest) returns (google.longrunning.Operation) { + // [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata]. + // The operation has no response. + rpc UpdateDatabaseDdl(UpdateDatabaseDdlRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { patch: "/v1/{database=projects/*/instances/*/databases/*}/ddl" body: "*" @@ -187,7 +191,8 @@ service DatabaseAdmin { // permission on [resource][google.iam.v1.SetIamPolicyRequest.resource]. // For backups, authorization requires `spanner.backups.setIamPolicy` // permission on [resource][google.iam.v1.SetIamPolicyRequest.resource]. - rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) { + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1/{resource=projects/*/instances/*/databases/*}:setIamPolicy" body: "*" @@ -195,6 +200,10 @@ service DatabaseAdmin { post: "/v1/{resource=projects/*/instances/*/backups/*}:setIamPolicy" body: "*" } + additional_bindings { + post: "/v1/{resource=projects/*/instances/*/databases/*/backupSchedules/*}:setIamPolicy" + body: "*" + } }; option (google.api.method_signature) = "resource,policy"; } @@ -207,7 +216,8 @@ service DatabaseAdmin { // [resource][google.iam.v1.GetIamPolicyRequest.resource]. // For backups, authorization requires `spanner.backups.getIamPolicy` // permission on [resource][google.iam.v1.GetIamPolicyRequest.resource]. - rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) { + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { option (google.api.http) = { post: "/v1/{resource=projects/*/instances/*/databases/*}:getIamPolicy" body: "*" @@ -215,6 +225,10 @@ service DatabaseAdmin { post: "/v1/{resource=projects/*/instances/*/backups/*}:getIamPolicy" body: "*" } + additional_bindings { + post: "/v1/{resource=projects/*/instances/*/databases/*/backupSchedules/*}:getIamPolicy" + body: "*" + } }; option (google.api.method_signature) = "resource"; } @@ -229,7 +243,8 @@ service DatabaseAdmin { // Calling this method on a backup that does not exist will // result in a NOT_FOUND error if the user has // `spanner.backups.list` permission on the containing instance. - rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { option (google.api.http) = { post: "/v1/{resource=projects/*/instances/*/databases/*}:testIamPermissions" body: "*" @@ -237,6 +252,10 @@ service DatabaseAdmin { post: "/v1/{resource=projects/*/instances/*/backups/*}:testIamPermissions" body: "*" } + additional_bindings { + post: "/v1/{resource=projects/*/instances/*/databases/*/backupSchedules/*}:testIamPermissions" + body: "*" + } additional_bindings { post: "/v1/{resource=projects/*/instances/*/databases/*/databaseRoles/*}:testIamPermissions" body: "*" @@ -251,12 +270,12 @@ service DatabaseAdmin { // `projects//instances//backups//operations/` // and can be used to track creation of the backup. The // [metadata][google.longrunning.Operation.metadata] field type is - // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. The - // [response][google.longrunning.Operation.response] field type is - // [Backup][google.spanner.admin.database.v1.Backup], if successful. Cancelling the returned operation will stop the - // creation and delete the backup. - // There can be only one pending backup creation per database. Backup creation - // of different databases can run concurrently. + // [CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]. + // The [response][google.longrunning.Operation.response] field type is + // [Backup][google.spanner.admin.database.v1.Backup], if successful. + // Cancelling the returned operation will stop the creation and delete the + // backup. There can be only one pending backup creation per database. Backup + // creation of different databases can run concurrently. rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/instances/*}/backups" @@ -278,22 +297,25 @@ service DatabaseAdmin { // The [metadata][google.longrunning.Operation.metadata] field type is // [CopyBackupMetadata][google.spanner.admin.database.v1.CopyBackupMetadata]. // The [response][google.longrunning.Operation.response] field type is - // [Backup][google.spanner.admin.database.v1.Backup], if successful. Cancelling the returned operation will stop the - // copying and delete the backup. - // Concurrent CopyBackup requests can run on the same source backup. + // [Backup][google.spanner.admin.database.v1.Backup], if successful. + // Cancelling the returned operation will stop the copying and delete the + // destination backup. Concurrent CopyBackup requests can run on the same + // source backup. rpc CopyBackup(CopyBackupRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/instances/*}/backups:copy" body: "*" }; - option (google.api.method_signature) = "parent,backup_id,source_backup,expire_time"; + option (google.api.method_signature) = + "parent,backup_id,source_backup,expire_time"; option (google.longrunning.operation_info) = { response_type: "google.spanner.admin.database.v1.Backup" metadata_type: "google.spanner.admin.database.v1.CopyBackupMetadata" }; } - // Gets metadata on a pending or completed [Backup][google.spanner.admin.database.v1.Backup]. + // Gets metadata on a pending or completed + // [Backup][google.spanner.admin.database.v1.Backup]. rpc GetBackup(GetBackupRequest) returns (Backup) { option (google.api.http) = { get: "/v1/{name=projects/*/instances/*/backups/*}" @@ -301,7 +323,8 @@ service DatabaseAdmin { option (google.api.method_signature) = "name"; } - // Updates a pending or completed [Backup][google.spanner.admin.database.v1.Backup]. + // Updates a pending or completed + // [Backup][google.spanner.admin.database.v1.Backup]. rpc UpdateBackup(UpdateBackupRequest) returns (Backup) { option (google.api.http) = { patch: "/v1/{backup.name=projects/*/instances/*/backups/*}" @@ -310,7 +333,8 @@ service DatabaseAdmin { option (google.api.method_signature) = "backup,update_mask"; } - // Deletes a pending or completed [Backup][google.spanner.admin.database.v1.Backup]. + // Deletes a pending or completed + // [Backup][google.spanner.admin.database.v1.Backup]. rpc DeleteBackup(DeleteBackupRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/{name=projects/*/instances/*/backups/*}" @@ -345,7 +369,8 @@ service DatabaseAdmin { // Once the restore operation completes, a new restore operation can be // initiated, without waiting for the optimize operation associated with the // first restore to complete. - rpc RestoreDatabase(RestoreDatabaseRequest) returns (google.longrunning.Operation) { + rpc RestoreDatabase(RestoreDatabaseRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=projects/*/instances/*}/databases:restore" body: "*" @@ -365,7 +390,8 @@ service DatabaseAdmin { // `metadata.type_url` describes the type of the metadata. Operations returned // include those that have completed/failed/canceled within the last 7 days, // and pending operations. - rpc ListDatabaseOperations(ListDatabaseOperationsRequest) returns (ListDatabaseOperationsResponse) { + rpc ListDatabaseOperations(ListDatabaseOperationsRequest) + returns (ListDatabaseOperationsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/instances/*}/databaseOperations" }; @@ -382,7 +408,8 @@ service DatabaseAdmin { // and pending operations. Operations returned are ordered by // `operation.metadata.value.progress.start_time` in descending order starting // from the most recently started operation. - rpc ListBackupOperations(ListBackupOperationsRequest) returns (ListBackupOperationsResponse) { + rpc ListBackupOperations(ListBackupOperationsRequest) + returns (ListBackupOperationsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/instances/*}/backupOperations" }; @@ -390,12 +417,60 @@ service DatabaseAdmin { } // Lists Cloud Spanner database roles. - rpc ListDatabaseRoles(ListDatabaseRolesRequest) returns (ListDatabaseRolesResponse) { + rpc ListDatabaseRoles(ListDatabaseRolesRequest) + returns (ListDatabaseRolesResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/instances/*/databases/*}/databaseRoles" }; option (google.api.method_signature) = "parent"; } + + // Creates a new backup schedule. + rpc CreateBackupSchedule(CreateBackupScheduleRequest) + returns (BackupSchedule) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/instances/*/databases/*}/backupSchedules" + body: "backup_schedule" + }; + option (google.api.method_signature) = + "parent,backup_schedule,backup_schedule_id"; + } + + // Gets backup schedule for the input schedule name. + rpc GetBackupSchedule(GetBackupScheduleRequest) returns (BackupSchedule) { + option (google.api.http) = { + get: "/v1/{name=projects/*/instances/*/databases/*/backupSchedules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a backup schedule. + rpc UpdateBackupSchedule(UpdateBackupScheduleRequest) + returns (BackupSchedule) { + option (google.api.http) = { + patch: "/v1/{backup_schedule.name=projects/*/instances/*/databases/*/backupSchedules/*}" + body: "backup_schedule" + }; + option (google.api.method_signature) = "backup_schedule,update_mask"; + } + + // Deletes a backup schedule. + rpc DeleteBackupSchedule(DeleteBackupScheduleRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/instances/*/databases/*/backupSchedules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists all the backup schedules for the database. + rpc ListBackupSchedules(ListBackupSchedulesRequest) + returns (ListBackupSchedulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/instances/*/databases/*}/backupSchedules" + }; + option (google.api.method_signature) = "parent"; + } } // Information about the database restore. @@ -452,7 +527,8 @@ message Database { State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. If exists, the time at which the database creation started. - google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Applicable only for restored databases. Contains information // about the restore source. @@ -462,32 +538,37 @@ message Database { // field contains the encryption configuration for the database. // For databases that are using Google default or other types of encryption, // this field is empty. - EncryptionConfig encryption_config = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + EncryptionConfig encryption_config = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. For databases that are using customer managed encryption, this // field contains the encryption information for the database, such as - // encryption state and the Cloud KMS key versions that are in use. + // all Cloud KMS key versions that are in use. The `encryption_status' field + // inside of each `EncryptionInfo` is not populated. // // For databases that are using Google default or other types of encryption, // this field is empty. // // This field is propagated lazily from the backend. There might be a delay // from when a key version is being used and when it appears in this field. - repeated EncryptionInfo encryption_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + repeated EncryptionInfo encryption_info = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The period in which Cloud Spanner retains all versions of data // for the database. This is the same as the value of version_retention_period // database option set using - // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]. Defaults to 1 hour, - // if not set. - string version_retention_period = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]. + // Defaults to 1 hour, if not set. + string version_retention_period = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Earliest timestamp at which older versions of the data can be // read. This value is continuously updated by Cloud Spanner and becomes stale // the moment it is queried. If you are using this value to recover data, make // sure to account for the time from the moment when the value is queried to // the moment when you initiate the recovery. - google.protobuf.Timestamp earliest_version_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp earliest_version_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The read-write region which contains the database's leader // replicas. @@ -498,10 +579,13 @@ message Database { string default_leader = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The dialect of the Cloud Spanner Database. - DatabaseDialect database_dialect = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + DatabaseDialect database_dialect = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Whether drop protection is enabled for this database. Defaults to false, - // if not set. + // if not set. For more details, please see how to [prevent accidental + // database + // deletion](https://cloud.google.com/spanner/docs/prevent-database-deletion). bool enable_drop_protection = 11; // Output only. If true, the database is being updated. If false, there are no @@ -509,7 +593,8 @@ message Database { bool reconciling = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// The request for [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases]. +// The request for +// [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases]. message ListDatabasesRequest { // Required. The instance whose databases should be listed. // Values are of the form `projects//instances/`. @@ -525,23 +610,26 @@ message ListDatabasesRequest { int32 page_size = 3; // If non-empty, `page_token` should contain a - // [next_page_token][google.spanner.admin.database.v1.ListDatabasesResponse.next_page_token] from a - // previous [ListDatabasesResponse][google.spanner.admin.database.v1.ListDatabasesResponse]. + // [next_page_token][google.spanner.admin.database.v1.ListDatabasesResponse.next_page_token] + // from a previous + // [ListDatabasesResponse][google.spanner.admin.database.v1.ListDatabasesResponse]. string page_token = 4; } -// The response for [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases]. +// The response for +// [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases]. message ListDatabasesResponse { // Databases that matched the request. repeated Database databases = 1; // `next_page_token` can be sent in a subsequent - // [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases] call to fetch more - // of the matching databases. + // [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases] + // call to fetch more of the matching databases. string next_page_token = 2; } -// The request for [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase]. +// The request for +// [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase]. message CreateDatabaseRequest { // Required. The name of the instance that will serve the new database. // Values are of the form `projects//instances/`. @@ -565,10 +653,11 @@ message CreateDatabaseRequest { // if there is an error in any statement, the database is not created. repeated string extra_statements = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The encryption configuration for the database. If this field is not - // specified, Cloud Spanner will encrypt/decrypt all data at rest using + // Optional. The encryption configuration for the database. If this field is + // not specified, Cloud Spanner will encrypt/decrypt all data at rest using // Google default encryption. - EncryptionConfig encryption_config = 4 [(google.api.field_behavior) = OPTIONAL]; + EncryptionConfig encryption_config = 4 + [(google.api.field_behavior) = OPTIONAL]; // Optional. The dialect of the Cloud Spanner Database. DatabaseDialect database_dialect = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -596,11 +685,12 @@ message CreateDatabaseRequest { message CreateDatabaseMetadata { // The database being created. string database = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; } -// The request for [GetDatabase][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase]. +// The request for +// [GetDatabase][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase]. message GetDatabaseRequest { // Required. The name of the requested database. Values are of the form // `projects//instances//databases/`. @@ -657,8 +747,8 @@ message UpdateDatabaseMetadata { // Each batch of statements is assigned a name which can be used with // the [Operations][google.longrunning.Operations] API to monitor // progress. See the -// [operation_id][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.operation_id] field for more -// details. +// [operation_id][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.operation_id] +// field for more details. message UpdateDatabaseDdlRequest { // Required. The database to update. string database = 1 [ @@ -678,18 +768,20 @@ message UpdateDatabaseDdlRequest { // // Specifying an explicit operation ID simplifies determining // whether the statements were executed in the event that the - // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] call is replayed, - // or the return value is otherwise lost: the [database][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.database] and - // `operation_id` fields can be combined to form the + // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] + // call is replayed, or the return value is otherwise lost: the + // [database][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.database] + // and `operation_id` fields can be combined to form the // [name][google.longrunning.Operation.name] of the resulting - // [longrunning.Operation][google.longrunning.Operation]: `/operations/`. + // [longrunning.Operation][google.longrunning.Operation]: + // `/operations/`. // // `operation_id` should be unique within the database, and must be // a valid identifier: `[a-z][a-z0-9_]*`. Note that // automatically-generated operation IDs always begin with an // underscore. If the named operation already exists, - // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] returns - // `ALREADY_EXISTS`. + // [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl] + // returns `ALREADY_EXISTS`. string operation_id = 3; // Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements. @@ -735,8 +827,8 @@ message DdlStatementActionInfo { message UpdateDatabaseDdlMetadata { // The database being modified. string database = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; // For an update this list contains all the statements. For an // individual statement, this list contains only that statement. @@ -766,7 +858,8 @@ message UpdateDatabaseDdlMetadata { repeated DdlStatementActionInfo actions = 6; } -// The request for [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase]. +// The request for +// [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase]. message DropDatabaseRequest { // Required. The database to be dropped. string database = 1 [ @@ -777,7 +870,8 @@ message DropDatabaseRequest { ]; } -// The request for [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl]. +// The request for +// [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl]. message GetDatabaseDdlRequest { // Required. The database whose schema we wish to get. // Values are of the form @@ -790,7 +884,8 @@ message GetDatabaseDdlRequest { ]; } -// The response for [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl]. +// The response for +// [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl]. message GetDatabaseDdlResponse { // A list of formatted DDL statements defining the schema of the database // specified in the request. @@ -830,7 +925,9 @@ message ListDatabaseOperationsRequest { // * `name` - The name of the long-running operation // * `done` - False if the operation is in progress, else true. // * `metadata.@type` - the type of metadata. For example, the type string - // for [RestoreDatabaseMetadata][google.spanner.admin.database.v1.RestoreDatabaseMetadata] is + // for + // [RestoreDatabaseMetadata][google.spanner.admin.database.v1.RestoreDatabaseMetadata] + // is // `type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata`. // * `metadata.` - any field in metadata.value. // `metadata.@type` must be specified first, if filtering on metadata @@ -852,7 +949,8 @@ message ListDatabaseOperationsRequest { // `(metadata.name:restored_howl) AND` \ // `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \ // `(error:*)` - Return operations where: - // * The operation's metadata type is [RestoreDatabaseMetadata][google.spanner.admin.database.v1.RestoreDatabaseMetadata]. + // * The operation's metadata type is + // [RestoreDatabaseMetadata][google.spanner.admin.database.v1.RestoreDatabaseMetadata]. // * The database is restored from a backup. // * The backup name contains "backup_howl". // * The restored database's name contains "restored_howl". @@ -866,8 +964,9 @@ message ListDatabaseOperationsRequest { // If non-empty, `page_token` should contain a // [next_page_token][google.spanner.admin.database.v1.ListDatabaseOperationsResponse.next_page_token] - // from a previous [ListDatabaseOperationsResponse][google.spanner.admin.database.v1.ListDatabaseOperationsResponse] to the - // same `parent` and with the same `filter`. + // from a previous + // [ListDatabaseOperationsResponse][google.spanner.admin.database.v1.ListDatabaseOperationsResponse] + // to the same `parent` and with the same `filter`. string page_token = 4; } @@ -913,17 +1012,18 @@ message RestoreDatabaseRequest { // Name of the backup from which to restore. Values are of the form // `projects//instances//backups/`. string backup = 3 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Backup" - }]; + type: "spanner.googleapis.com/Backup" + }]; } - // Optional. An encryption configuration describing the encryption type and key - // resources in Cloud KMS used to encrypt/decrypt the database to restore to. - // If this field is not specified, the restored database will use - // the same encryption configuration as the backup by default, namely - // [encryption_type][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.encryption_type] = - // `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`. - RestoreDatabaseEncryptionConfig encryption_config = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. An encryption configuration describing the encryption type and + // key resources in Cloud KMS used to encrypt/decrypt the database to restore + // to. If this field is not specified, the restored database will use the same + // encryption configuration as the backup by default, namely + // [encryption_type][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.encryption_type] + // = `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`. + RestoreDatabaseEncryptionConfig encryption_config = 4 + [(google.api.field_behavior) = OPTIONAL]; } // Encryption configuration for the restored database. @@ -934,7 +1034,8 @@ message RestoreDatabaseEncryptionConfig { ENCRYPTION_TYPE_UNSPECIFIED = 0; // This is the default option when - // [encryption_config][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig] is not specified. + // [encryption_config][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig] + // is not specified. USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION = 1; // Use Google default encryption. @@ -948,10 +1049,10 @@ message RestoreDatabaseEncryptionConfig { // Required. The encryption type of the restored database. EncryptionType encryption_type = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. The Cloud KMS key that will be used to encrypt/decrypt the restored - // database. This field should be set only when - // [encryption_type][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.encryption_type] is - // `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form + // Optional. The Cloud KMS key that will be used to encrypt/decrypt the + // restored database. This field should be set only when + // [encryption_type][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.encryption_type] + // is `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form // `projects//locations//keyRings//cryptoKeys/`. string kms_key_name = 2 [ (google.api.field_behavior) = OPTIONAL, @@ -959,6 +1060,28 @@ message RestoreDatabaseEncryptionConfig { type: "cloudkms.googleapis.com/CryptoKey" } ]; + + // Optional. Specifies the KMS configuration for the one or more keys used to + // encrypt the database. Values are of the form + // `projects//locations//keyRings//cryptoKeys/`. + // + // The keys referenced by kms_key_names must fully cover all + // regions of the database instance configuration. Some examples: + // * For single region database instance configs, specify a single regional + // location KMS key. + // * For multi-regional database instance configs of type GOOGLE_MANAGED, + // either specify a multi-regional location KMS key or multiple regional + // location KMS keys that cover all regions in the instance config. + // * For a database instance config of type USER_MANAGED, please specify only + // regional location KMS keys to cover each region in the instance config. + // Multi-regional location KMS keys are not supported for USER_MANAGED + // instance configs. + repeated string kms_key_names = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; } // Metadata type for the long-running operation returned by @@ -966,14 +1089,15 @@ message RestoreDatabaseEncryptionConfig { message RestoreDatabaseMetadata { // Name of the database being created and restored to. string name = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; // The type of the restore source. RestoreSourceType source_type = 2; // Information about the source used to restore the database, as specified by - // `source` in [RestoreDatabaseRequest][google.spanner.admin.database.v1.RestoreDatabaseRequest]. + // `source` in + // [RestoreDatabaseRequest][google.spanner.admin.database.v1.RestoreDatabaseRequest]. oneof source_info { // Information about the backup used to restore the database. BackupInfo backup_info = 3; @@ -994,7 +1118,8 @@ message RestoreDatabaseMetadata { // operation completed despite cancellation. On successful cancellation, // the operation is not deleted; instead, it becomes an operation with // an [Operation.error][google.longrunning.Operation.error] value with a - // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to `Code.CANCELLED`. + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. google.protobuf.Timestamp cancel_time = 5; // If exists, the name of the long-running operation that will be used to @@ -1004,10 +1129,10 @@ message RestoreDatabaseMetadata { // `projects//instances//databases//operations/` // where the is the name of database being created and restored to. // The metadata type of the long-running operation is - // [OptimizeRestoredDatabaseMetadata][google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata]. This long-running operation will be - // automatically created by the system after the RestoreDatabase long-running - // operation completes successfully. This operation will not be created if the - // restore was not successful. + // [OptimizeRestoredDatabaseMetadata][google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata]. + // This long-running operation will be automatically created by the system + // after the RestoreDatabase long-running operation completes successfully. + // This operation will not be created if the restore was not successful. string optimize_database_operation_name = 6; } @@ -1018,8 +1143,8 @@ message RestoreDatabaseMetadata { message OptimizeRestoredDatabaseMetadata { // Name of the restored database being optimized. string name = 1 [(google.api.resource_reference) = { - type: "spanner.googleapis.com/Database" - }]; + type: "spanner.googleapis.com/Database" + }]; // The progress of the post-restore optimizations. OperationProgress progress = 2; @@ -1042,18 +1167,17 @@ message DatabaseRole { }; // Required. The name of the database role. Values are of the form - // `projects//instances//databases//databaseRoles/ - // {role}`, where `` is as specified in the `CREATE ROLE` - // DDL statement. This name can be passed to Get/Set IAMPolicy methods to - // identify the database role. + // `projects//instances//databases//databaseRoles/` + // where `` is as specified in the `CREATE ROLE` DDL statement. string name = 1 [(google.api.field_behavior) = REQUIRED]; } -// The request for [ListDatabaseRoles][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles]. +// The request for +// [ListDatabaseRoles][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles]. message ListDatabaseRolesRequest { // Required. The database whose roles should be listed. // Values are of the form - // `projects//instances//databases//databaseRoles`. + // `projects//instances//databases/`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1066,12 +1190,14 @@ message ListDatabaseRolesRequest { int32 page_size = 2; // If non-empty, `page_token` should contain a - // [next_page_token][google.spanner.admin.database.v1.ListDatabaseRolesResponse.next_page_token] from a - // previous [ListDatabaseRolesResponse][google.spanner.admin.database.v1.ListDatabaseRolesResponse]. + // [next_page_token][google.spanner.admin.database.v1.ListDatabaseRolesResponse.next_page_token] + // from a previous + // [ListDatabaseRolesResponse][google.spanner.admin.database.v1.ListDatabaseRolesResponse]. string page_token = 3; } -// The response for [ListDatabaseRoles][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles]. +// The response for +// [ListDatabaseRoles][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabaseRoles]. message ListDatabaseRolesResponse { // Database roles that matched the request. repeated DatabaseRole database_roles = 1; diff --git a/third_party/googleapis/google/spanner/admin/instance/v1/common.proto b/third_party/googleapis/google/spanner/admin/instance/v1/common.proto index ffb69748f..075b45fea 100644 --- a/third_party/googleapis/google/spanner/admin/instance/v1/common.proto +++ b/third_party/googleapis/google/spanner/admin/instance/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -40,3 +40,17 @@ message OperationProgress { // successfully. google.protobuf.Timestamp end_time = 3; } + +// Indicates the expected fulfillment period of an operation. +enum FulfillmentPeriod { + // Not specified. + FULFILLMENT_PERIOD_UNSPECIFIED = 0; + + // Normal fulfillment period. The operation is expected to complete within + // minutes. + FULFILLMENT_PERIOD_NORMAL = 1; + + // Extended fulfillment period. It can take up to an hour for the operation + // to complete. + FULFILLMENT_PERIOD_EXTENDED = 2; +} diff --git a/third_party/googleapis/google/spanner/admin/instance/v1/spanner_instance_admin.proto b/third_party/googleapis/google/spanner/admin/instance/v1/spanner_instance_admin.proto index 58051df00..499bd8603 100644 --- a/third_party/googleapis/google/spanner/admin/instance/v1/spanner_instance_admin.proto +++ b/third_party/googleapis/google/spanner/admin/instance/v1/spanner_instance_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -235,6 +235,15 @@ service InstanceAdmin { option (google.api.method_signature) = "parent"; } + // Lists all instance partitions for the given instance. + rpc ListInstancePartitions(ListInstancePartitionsRequest) + returns (ListInstancePartitionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/instances/*}/instancePartitions" + }; + option (google.api.method_signature) = "parent"; + } + // Gets information about a particular instance. rpc GetInstance(GetInstanceRequest) returns (Instance) { option (google.api.http) = { @@ -403,6 +412,161 @@ service InstanceAdmin { }; option (google.api.method_signature) = "resource,permissions"; } + + // Gets information about a particular instance partition. + rpc GetInstancePartition(GetInstancePartitionRequest) + returns (InstancePartition) { + option (google.api.http) = { + get: "/v1/{name=projects/*/instances/*/instancePartitions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates an instance partition and begins preparing it to be used. The + // returned [long-running operation][google.longrunning.Operation] + // can be used to track the progress of preparing the new instance partition. + // The instance partition name is assigned by the caller. If the named + // instance partition already exists, `CreateInstancePartition` returns + // `ALREADY_EXISTS`. + // + // Immediately upon completion of this request: + // + // * The instance partition is readable via the API, with all requested + // attributes but no allocated resources. Its state is `CREATING`. + // + // Until completion of the returned operation: + // + // * Cancelling the operation renders the instance partition immediately + // unreadable via the API. + // * The instance partition can be deleted. + // * All other attempts to modify the instance partition are rejected. + // + // Upon completion of the returned operation: + // + // * Billing for all successfully-allocated resources begins (some types + // may have lower than the requested levels). + // * Databases can start using this instance partition. + // * The instance partition's allocated resource levels are readable via the + // API. + // * The instance partition's state becomes `READY`. + // + // The returned [long-running operation][google.longrunning.Operation] will + // have a name of the format + // `/operations/` and can be used to + // track creation of the instance partition. The + // [metadata][google.longrunning.Operation.metadata] field type is + // [CreateInstancePartitionMetadata][google.spanner.admin.instance.v1.CreateInstancePartitionMetadata]. + // The [response][google.longrunning.Operation.response] field type is + // [InstancePartition][google.spanner.admin.instance.v1.InstancePartition], if + // successful. + rpc CreateInstancePartition(CreateInstancePartitionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/instances/*}/instancePartitions" + body: "*" + }; + option (google.api.method_signature) = + "parent,instance_partition,instance_partition_id"; + option (google.longrunning.operation_info) = { + response_type: "google.spanner.admin.instance.v1.InstancePartition" + metadata_type: "google.spanner.admin.instance.v1.CreateInstancePartitionMetadata" + }; + } + + // Deletes an existing instance partition. Requires that the + // instance partition is not used by any database or backup and is not the + // default instance partition of an instance. + // + // Authorization requires `spanner.instancePartitions.delete` permission on + // the resource + // [name][google.spanner.admin.instance.v1.InstancePartition.name]. + rpc DeleteInstancePartition(DeleteInstancePartitionRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/instances/*/instancePartitions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an instance partition, and begins allocating or releasing resources + // as requested. The returned [long-running + // operation][google.longrunning.Operation] can be used to track the + // progress of updating the instance partition. If the named instance + // partition does not exist, returns `NOT_FOUND`. + // + // Immediately upon completion of this request: + // + // * For resource types for which a decrease in the instance partition's + // allocation has been requested, billing is based on the newly-requested + // level. + // + // Until completion of the returned operation: + // + // * Cancelling the operation sets its metadata's + // [cancel_time][google.spanner.admin.instance.v1.UpdateInstancePartitionMetadata.cancel_time], + // and begins restoring resources to their pre-request values. The + // operation is guaranteed to succeed at undoing all resource changes, + // after which point it terminates with a `CANCELLED` status. + // * All other attempts to modify the instance partition are rejected. + // * Reading the instance partition via the API continues to give the + // pre-request resource levels. + // + // Upon completion of the returned operation: + // + // * Billing begins for all successfully-allocated resources (some types + // may have lower than the requested levels). + // * All newly-reserved resources are available for serving the instance + // partition's tables. + // * The instance partition's new resource levels are readable via the API. + // + // The returned [long-running operation][google.longrunning.Operation] will + // have a name of the format + // `/operations/` and can be used to + // track the instance partition modification. The + // [metadata][google.longrunning.Operation.metadata] field type is + // [UpdateInstancePartitionMetadata][google.spanner.admin.instance.v1.UpdateInstancePartitionMetadata]. + // The [response][google.longrunning.Operation.response] field type is + // [InstancePartition][google.spanner.admin.instance.v1.InstancePartition], if + // successful. + // + // Authorization requires `spanner.instancePartitions.update` permission on + // the resource + // [name][google.spanner.admin.instance.v1.InstancePartition.name]. + rpc UpdateInstancePartition(UpdateInstancePartitionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{instance_partition.name=projects/*/instances/*/instancePartitions/*}" + body: "*" + }; + option (google.api.method_signature) = "instance_partition,field_mask"; + option (google.longrunning.operation_info) = { + response_type: "google.spanner.admin.instance.v1.InstancePartition" + metadata_type: "google.spanner.admin.instance.v1.UpdateInstancePartitionMetadata" + }; + } + + // Lists instance partition [long-running + // operations][google.longrunning.Operation] in the given instance. + // An instance partition operation has a name of the form + // `projects//instances//instancePartitions//operations/`. + // The long-running operation + // [metadata][google.longrunning.Operation.metadata] field type + // `metadata.type_url` describes the type of the metadata. Operations returned + // include those that have completed/failed/canceled within the last 7 days, + // and pending operations. Operations returned are ordered by + // `operation.metadata.value.start_time` in descending order starting from the + // most recently started operation. + // + // Authorization requires `spanner.instancePartitionOperations.list` + // permission on the resource + // [parent][google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest.parent]. + rpc ListInstancePartitionOperations(ListInstancePartitionOperationsRequest) + returns (ListInstancePartitionOperationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/instances/*}/instancePartitionOperations" + }; + option (google.api.method_signature) = "parent"; + } } message ReplicaInfo { @@ -1041,6 +1205,14 @@ message ListInstancesRequest { // it has the label "env" with its value // containing "dev". string filter = 4; + + // Deadline used while retrieving metadata for instances. + // Instances whose metadata cannot be retrieved within this deadline will be + // added to + // [unreachable][google.spanner.admin.instance.v1.ListInstancesResponse.unreachable] + // in + // [ListInstancesResponse][google.spanner.admin.instance.v1.ListInstancesResponse]. + google.protobuf.Timestamp instance_deadline = 5; } // The response for @@ -1053,6 +1225,12 @@ message ListInstancesResponse { // [ListInstances][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances] // call to fetch more of the matching instances. string next_page_token = 2; + + // The list of unreachable instances. + // It includes the names of instances whose metadata could not be retrieved + // within + // [instance_deadline][google.spanner.admin.instance.v1.ListInstancesRequest.instance_deadline]. + repeated string unreachable = 3; } // The request for @@ -1104,6 +1282,9 @@ message CreateInstanceMetadata { // The time at which this operation failed or was completed successfully. google.protobuf.Timestamp end_time = 4; + + // The expected fulfillment period of this create operation. + FulfillmentPeriod expected_fulfillment_period = 5; } // Metadata type for the operation returned by @@ -1124,6 +1305,9 @@ message UpdateInstanceMetadata { // The time at which this operation failed or was completed successfully. google.protobuf.Timestamp end_time = 4; + + // The expected fulfillment period of this update operation. + FulfillmentPeriod expected_fulfillment_period = 5; } // Metadata type for the operation returned by @@ -1155,3 +1339,381 @@ message UpdateInstanceConfigMetadata { // The time at which this operation was cancelled. google.protobuf.Timestamp cancel_time = 3; } + +// An isolated set of Cloud Spanner resources that databases can define +// placements on. +message InstancePartition { + option (google.api.resource) = { + type: "spanner.googleapis.com/InstancePartition" + pattern: "projects/{project}/instances/{instance}/instancePartitions/{instance_partition}" + }; + + // Indicates the current state of the instance partition. + enum State { + // Not specified. + STATE_UNSPECIFIED = 0; + + // The instance partition is still being created. Resources may not be + // available yet, and operations such as creating placements using this + // instance partition may not work. + CREATING = 1; + + // The instance partition is fully created and ready to do work such as + // creating placements and using in databases. + READY = 2; + } + + // Required. A unique identifier for the instance partition. Values are of the + // form + // `projects//instances//instancePartitions/[a-z][-a-z0-9]*[a-z0-9]`. + // The final segment of the name must be between 2 and 64 characters in + // length. An instance partition's name cannot be changed after the instance + // partition is created. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the instance partition's configuration. Values are of + // the form `projects//instanceConfigs/`. See also + // [InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig] and + // [ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs]. + string config = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/InstanceConfig" + } + ]; + + // Required. The descriptive name for this instance partition as it appears in + // UIs. Must be unique per project and between 4 and 30 characters in length. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Compute capacity defines amount of server and storage resources that are + // available to the databases in an instance partition. At most one of either + // node_count or processing_units should be present in the message. See [the + // documentation](https://cloud.google.com/spanner/docs/compute-capacity) + // for more information about nodes and processing units. + oneof compute_capacity { + // The number of nodes allocated to this instance partition. + // + // Users can set the node_count field to specify the target number of nodes + // allocated to the instance partition. + // + // This may be zero in API responses for instance partitions that are not + // yet in state `READY`. + int32 node_count = 5; + + // The number of processing units allocated to this instance partition. + // + // Users can set the processing_units field to specify the target number of + // processing units allocated to the instance partition. + // + // This may be zero in API responses for instance partitions that are not + // yet in state `READY`. + int32 processing_units = 6; + } + + // Output only. The current instance partition state. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the instance partition was created. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the instance partition was most recently + // updated. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The names of the databases that reference this + // instance partition. Referencing databases should share the parent instance. + // The existence of any referencing database prevents the instance partition + // from being deleted. + repeated string referencing_databases = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The names of the backups that reference this instance + // partition. Referencing backups should share the parent instance. The + // existence of any referencing backup prevents the instance partition from + // being deleted. + repeated string referencing_backups = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used for optimistic concurrency control as a way + // to help prevent simultaneous updates of a instance partition from + // overwriting each other. It is strongly suggested that systems make use of + // the etag in the read-modify-write cycle to perform instance partition + // updates in order to avoid race conditions: An etag is returned in the + // response which contains instance partitions, and systems are expected to + // put that etag in the request to update instance partitions to ensure that + // their change will be applied to the same version of the instance partition. + // If no etag is provided in the call to update instance partition, then the + // existing instance partition is overwritten blindly. + string etag = 12; +} + +// Metadata type for the operation returned by +// [CreateInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstancePartition]. +message CreateInstancePartitionMetadata { + // The instance partition being created. + InstancePartition instance_partition = 1; + + // The time at which the + // [CreateInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstancePartition] + // request was received. + google.protobuf.Timestamp start_time = 2; + + // The time at which this operation was cancelled. If set, this operation is + // in the process of undoing itself (which is guaranteed to succeed) and + // cannot be cancelled again. + google.protobuf.Timestamp cancel_time = 3; + + // The time at which this operation failed or was completed successfully. + google.protobuf.Timestamp end_time = 4; +} + +// The request for +// [CreateInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstancePartition]. +message CreateInstancePartitionRequest { + // Required. The name of the instance in which to create the instance + // partition. Values are of the form + // `projects//instances/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Instance" + } + ]; + + // Required. The ID of the instance partition to create. Valid identifiers are + // of the form `[a-z][-a-z0-9]*[a-z0-9]` and must be between 2 and 64 + // characters in length. + string instance_partition_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The instance partition to create. The instance_partition.name may + // be omitted, but if specified must be + // `/instancePartitions/`. + InstancePartition instance_partition = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// The request for +// [DeleteInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.DeleteInstancePartition]. +message DeleteInstancePartitionRequest { + // Required. The name of the instance partition to be deleted. + // Values are of the form + // `projects/{project}/instances/{instance}/instancePartitions/{instance_partition}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/InstancePartition" + } + ]; + + // Optional. If not empty, the API only deletes the instance partition when + // the etag provided matches the current status of the requested instance + // partition. Otherwise, deletes the instance partition without checking the + // current status of the requested instance partition. + string etag = 2; +} + +// The request for +// [GetInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.GetInstancePartition]. +message GetInstancePartitionRequest { + // Required. The name of the requested instance partition. Values are of + // the form + // `projects/{project}/instances/{instance}/instancePartitions/{instance_partition}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/InstancePartition" + } + ]; +} + +// The request for +// [UpdateInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstancePartition]. +message UpdateInstancePartitionRequest { + // Required. The instance partition to update, which must always include the + // instance partition name. Otherwise, only fields mentioned in + // [field_mask][google.spanner.admin.instance.v1.UpdateInstancePartitionRequest.field_mask] + // need be included. + InstancePartition instance_partition = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. A mask specifying which fields in + // [InstancePartition][google.spanner.admin.instance.v1.InstancePartition] + // should be updated. The field mask must always be specified; this prevents + // any future fields in + // [InstancePartition][google.spanner.admin.instance.v1.InstancePartition] + // from being erased accidentally by clients that do not know about them. + google.protobuf.FieldMask field_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata type for the operation returned by +// [UpdateInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstancePartition]. +message UpdateInstancePartitionMetadata { + // The desired end state of the update. + InstancePartition instance_partition = 1; + + // The time at which + // [UpdateInstancePartition][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstancePartition] + // request was received. + google.protobuf.Timestamp start_time = 2; + + // The time at which this operation was cancelled. If set, this operation is + // in the process of undoing itself (which is guaranteed to succeed) and + // cannot be cancelled again. + google.protobuf.Timestamp cancel_time = 3; + + // The time at which this operation failed or was completed successfully. + google.protobuf.Timestamp end_time = 4; +} + +// The request for +// [ListInstancePartitions][google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitions]. +message ListInstancePartitionsRequest { + // Required. The instance whose instance partitions should be listed. Values + // are of the form `projects//instances/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Instance" + } + ]; + + // Number of instance partitions to be returned in the response. If 0 or less, + // defaults to the server's maximum allowed page size. + int32 page_size = 2; + + // If non-empty, `page_token` should contain a + // [next_page_token][google.spanner.admin.instance.v1.ListInstancePartitionsResponse.next_page_token] + // from a previous + // [ListInstancePartitionsResponse][google.spanner.admin.instance.v1.ListInstancePartitionsResponse]. + string page_token = 3; + + // Optional. Deadline used while retrieving metadata for instance partitions. + // Instance partitions whose metadata cannot be retrieved within this deadline + // will be added to + // [unreachable][google.spanner.admin.instance.v1.ListInstancePartitionsResponse.unreachable] + // in + // [ListInstancePartitionsResponse][google.spanner.admin.instance.v1.ListInstancePartitionsResponse]. + google.protobuf.Timestamp instance_partition_deadline = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for +// [ListInstancePartitions][google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitions]. +message ListInstancePartitionsResponse { + // The list of requested instancePartitions. + repeated InstancePartition instance_partitions = 1; + + // `next_page_token` can be sent in a subsequent + // [ListInstancePartitions][google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitions] + // call to fetch more of the matching instance partitions. + string next_page_token = 2; + + // The list of unreachable instance partitions. + // It includes the names of instance partitions whose metadata could + // not be retrieved within + // [instance_partition_deadline][google.spanner.admin.instance.v1.ListInstancePartitionsRequest.instance_partition_deadline]. + repeated string unreachable = 3; +} + +// The request for +// [ListInstancePartitionOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitionOperations]. +message ListInstancePartitionOperationsRequest { + // Required. The parent instance of the instance partition operations. + // Values are of the form `projects//instances/`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Instance" + } + ]; + + // Optional. An expression that filters the list of returned operations. + // + // A filter expression consists of a field name, a + // comparison operator, and a value for filtering. + // The value must be a string, a number, or a boolean. The comparison operator + // must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. + // Colon `:` is the contains operator. Filter rules are not case sensitive. + // + // The following fields in the [Operation][google.longrunning.Operation] + // are eligible for filtering: + // + // * `name` - The name of the long-running operation + // * `done` - False if the operation is in progress, else true. + // * `metadata.@type` - the type of metadata. For example, the type string + // for + // [CreateInstancePartitionMetadata][google.spanner.admin.instance.v1.CreateInstancePartitionMetadata] + // is + // `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstancePartitionMetadata`. + // * `metadata.` - any field in metadata.value. + // `metadata.@type` must be specified first, if filtering on metadata + // fields. + // * `error` - Error associated with the long-running operation. + // * `response.@type` - the type of response. + // * `response.` - any field in response.value. + // + // You can combine multiple expressions by enclosing each expression in + // parentheses. By default, expressions are combined with AND logic. However, + // you can specify AND, OR, and NOT logic explicitly. + // + // Here are a few examples: + // + // * `done:true` - The operation is complete. + // * `(metadata.@type=` \ + // `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstancePartitionMetadata) + // AND` \ + // `(metadata.instance_partition.name:custom-instance-partition) AND` \ + // `(metadata.start_time < \"2021-03-28T14:50:00Z\") AND` \ + // `(error:*)` - Return operations where: + // * The operation's metadata type is + // [CreateInstancePartitionMetadata][google.spanner.admin.instance.v1.CreateInstancePartitionMetadata]. + // * The instance partition name contains "custom-instance-partition". + // * The operation started before 2021-03-28T14:50:00Z. + // * The operation resulted in an error. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of operations to be returned in the response. If 0 or + // less, defaults to the server's maximum allowed page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If non-empty, `page_token` should contain a + // [next_page_token][google.spanner.admin.instance.v1.ListInstancePartitionOperationsResponse.next_page_token] + // from a previous + // [ListInstancePartitionOperationsResponse][google.spanner.admin.instance.v1.ListInstancePartitionOperationsResponse] + // to the same `parent` and with the same `filter`. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Deadline used while retrieving metadata for instance partition + // operations. Instance partitions whose operation metadata cannot be + // retrieved within this deadline will be added to + // [unreachable][ListInstancePartitionOperationsResponse.unreachable] in + // [ListInstancePartitionOperationsResponse][google.spanner.admin.instance.v1.ListInstancePartitionOperationsResponse]. + google.protobuf.Timestamp instance_partition_deadline = 5 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for +// [ListInstancePartitionOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitionOperations]. +message ListInstancePartitionOperationsResponse { + // The list of matching instance partition [long-running + // operations][google.longrunning.Operation]. Each operation's name will be + // prefixed by the instance partition's name. The operation's + // [metadata][google.longrunning.Operation.metadata] field type + // `metadata.type_url` describes the type of the metadata. + repeated google.longrunning.Operation operations = 1; + + // `next_page_token` can be sent in a subsequent + // [ListInstancePartitionOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstancePartitionOperations] + // call to fetch more of the matching metadata. + string next_page_token = 2; + + // The list of unreachable instance partitions. + // It includes the names of instance partitions whose operation metadata could + // not be retrieved within + // [instance_partition_deadline][google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest.instance_partition_deadline]. + repeated string unreachable_instance_partitions = 3; +} diff --git a/third_party/googleapis/google/spanner/executor/v1/cloud_executor.proto b/third_party/googleapis/google/spanner/executor/v1/cloud_executor.proto index 56332dc0e..05d662a5a 100644 --- a/third_party/googleapis/google/spanner/executor/v1/cloud_executor.proto +++ b/third_party/googleapis/google/spanner/executor/v1/cloud_executor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -78,6 +78,9 @@ message SpannerAction { // database path if it applies to the same database as the previous action. string database_path = 1; + // Configuration options for Spanner backend + SpannerOptions spanner_options = 2; + // Action represents a spanner action kind, there will only be one action kind // per SpannerAction. oneof action { @@ -129,6 +132,9 @@ message SpannerAction { // Action to execute change stream query. ExecuteChangeStreamQuery execute_change_stream_query = 50; + + // Query cancellation action for testing the cancellation of a query. + QueryCancellationAction query_cancellation = 51; } } @@ -565,8 +571,8 @@ message AdminAction { // Action that cancels an operation. CancelOperationAction cancel_operation = 26; - // Action that reconfigures a Cloud Spanner database. - ReconfigureCloudDatabaseAction reconfigure_cloud_database = 28; + // Action that changes quorum of a Cloud Spanner database. + ChangeQuorumCloudDatabaseAction change_quorum_cloud_database = 28; } } @@ -772,9 +778,9 @@ message DropCloudDatabaseAction { string database_id = 3; } -// Action that reconfigures a Cloud Spanner database. -message ReconfigureCloudDatabaseAction { - // The fully qualified uri of the database to be reconfigured. +// Action that changes quorum of a Cloud Spanner database. +message ChangeQuorumCloudDatabaseAction { + // The fully qualified uri of the database whose quorum has to be changed. optional string database_uri = 1; // The locations of the serving regions, e.g. "asia-south1". @@ -877,6 +883,10 @@ message RestoreCloudDatabaseAction { // The id of the database to create and restore to, e.g. "db0". Note that this // database must not already exist. string database_id = 5; + + // The KMS key(s) used to encrypt the restored database to be created if the + // restored database should be CMEK protected. + google.spanner.admin.database.v1.EncryptionConfig encryption_config = 7; } // Action that gets a Cloud Spanner database. @@ -916,6 +926,10 @@ message CreateCloudBackupAction { // [earliest_version_time, NOW], where earliest_version_time is retrieved by // cloud spanner frontend API (See details: go/cs-pitr-lite-design). optional google.protobuf.Timestamp version_time = 6; + + // The KMS key(s) used to encrypt the backup to be created if the backup + // should be CMEK protected. + google.spanner.admin.database.v1.EncryptionConfig encryption_config = 7; } // Action that copies a Cloud Spanner database backup. @@ -1037,6 +1051,16 @@ message GetOperationAction { string operation = 1; } +// Query cancellation action defines the long running query and the cancel query +// format depening on the Cloud database dialect. +message QueryCancellationAction { + // Long running query. + string long_running_sql = 1; + + // Format of the cancel query for the cloud database dialect. + string cancel_query = 2; +} + // Action that cancels an operation. message CancelOperationAction { // The name of the operation resource to be cancelled. @@ -1481,3 +1505,16 @@ message HeartbeatRecord { // Timestamp for this heartbeat check. google.protobuf.Timestamp heartbeat_time = 1; } + +// Options for Cloud Spanner Service. +message SpannerOptions { + // Options for configuring the session pool + SessionPoolOptions session_pool_options = 1; +} + +// Options for the session pool used by the DatabaseClient. +message SessionPoolOptions { + // passing this as true, will make applicable RPCs use multiplexed sessions + // instead of regular sessions + bool use_multiplexed = 1; +} diff --git a/third_party/googleapis/google/spanner/v1/commit_response.proto b/third_party/googleapis/google/spanner/v1/commit_response.proto index 436a002b8..d44aad63b 100644 --- a/third_party/googleapis/google/spanner/v1/commit_response.proto +++ b/third_party/googleapis/google/spanner/v1/commit_response.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/spanner/v1/keys.proto b/third_party/googleapis/google/spanner/v1/keys.proto index 8fb4757f5..82f073b96 100644 --- a/third_party/googleapis/google/spanner/v1/keys.proto +++ b/third_party/googleapis/google/spanner/v1/keys.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/spanner/v1/mutation.proto b/third_party/googleapis/google/spanner/v1/mutation.proto index cced61f33..7fbf93f8a 100644 --- a/third_party/googleapis/google/spanner/v1/mutation.proto +++ b/third_party/googleapis/google/spanner/v1/mutation.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/spanner/v1/query_plan.proto b/third_party/googleapis/google/spanner/v1/query_plan.proto index c0903bdd7..ba18055e3 100644 --- a/third_party/googleapis/google/spanner/v1/query_plan.proto +++ b/third_party/googleapis/google/spanner/v1/query_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/spanner/v1/result_set.proto b/third_party/googleapis/google/spanner/v1/result_set.proto index cfa5719c4..f392c1d7d 100644 --- a/third_party/googleapis/google/spanner/v1/result_set.proto +++ b/third_party/googleapis/google/spanner/v1/result_set.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/spanner/v1/spanner.proto b/third_party/googleapis/google/spanner/v1/spanner.proto index 440ebf785..301139210 100644 --- a/third_party/googleapis/google/spanner/v1/spanner.proto +++ b/third_party/googleapis/google/spanner/v1/spanner.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -1043,6 +1043,71 @@ message PartitionResponse { // The request for [Read][google.spanner.v1.Spanner.Read] and // [StreamingRead][google.spanner.v1.Spanner.StreamingRead]. message ReadRequest { + // An option to control the order in which rows are returned from a read. + enum OrderBy { + // Default value. + // + // 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. + ORDER_BY_PRIMARY_KEY = 1; + + // Read rows are returned in any order. + ORDER_BY_NO_ORDER = 2; + } + + // A lock hint mechanism for reads done within a transaction. + enum LockHint { + // Default value. + // + // LOCK_HINT_UNSPECIFIED is equivalent to LOCK_HINT_SHARED. + LOCK_HINT_UNSPECIFIED = 0; + + // Acquire shared locks. + // + // By default when you perform a read as part of a read-write transaction, + // Spanner acquires shared read locks, which allows other reads to still + // access the data until your transaction is ready to commit. When your + // transaction is committing and writes are being applied, the transaction + // attempts to upgrade to an exclusive lock for any data you are writing. + // For more information about locks, see [Lock + // modes](https://cloud.google.com/spanner/docs/introspection/lock-statistics#explain-lock-modes). + LOCK_HINT_SHARED = 1; + + // Acquire exclusive locks. + // + // Requesting exclusive locks is beneficial if you observe high write + // contention, which means you notice that multiple transactions are + // concurrently trying to read and write to the same data, resulting in a + // large number of aborts. This problem occurs when two transactions + // initially acquire shared locks and then both try to upgrade to exclusive + // locks at the same time. In this situation both transactions are waiting + // for the other to give up their lock, resulting in a deadlocked situation. + // Spanner is able to detect this occurring and force one of the + // transactions to abort. However, this is a slow and expensive operation + // and results in lower performance. In this case it makes sense to acquire + // exclusive locks at the start of the transaction because then when + // multiple transactions try to act on the same data, they automatically get + // 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 + // Spanner exclusive locks as a mutual exclusion mechanism for the execution + // of code outside of Spanner. + // + // **Note:** Request exclusive locks judiciously because they block others + // from reading that data for the entire transaction, rather than just when + // the writes are being performed. Unless you observe high write contention, + // you should use the default of shared read locks so you don't prematurely + // block other clients from reading the data that you're writing to. + LOCK_HINT_EXCLUSIVE = 2; + } + // Required. The session in which the read should be performed. string session = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1117,6 +1182,19 @@ message ReadRequest { // If the field is set to `true` but the request does not set // `partition_token`, the API returns an `INVALID_ARGUMENT` error. bool data_boost_enabled = 15; + + // 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 + // 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). + OrderBy order_by = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Lock Hint for the request, it can only be used with read-write + // transactions. + LockHint lock_hint = 17 [(google.api.field_behavior) = OPTIONAL]; } // The request for diff --git a/third_party/googleapis/google/spanner/v1/spanner.yaml b/third_party/googleapis/google/spanner/v1/spanner.yaml index f0e3826cd..06fe82338 100644 --- a/third_party/googleapis/google/spanner/v1/spanner.yaml +++ b/third_party/googleapis/google/spanner/v1/spanner.yaml @@ -57,3 +57,7 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/spanner.data + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=190851&template=0 + documentation_uri: https://cloud.google.com/spanner/ diff --git a/third_party/googleapis/google/spanner/v1/spanner_grpc_service_config.json b/third_party/googleapis/google/spanner/v1/spanner_grpc_service_config.json index 5176a671b..68853556f 100755 --- a/third_party/googleapis/google/spanner/v1/spanner_grpc_service_config.json +++ b/third_party/googleapis/google/spanner/v1/spanner_grpc_service_config.json @@ -34,7 +34,8 @@ "maxBackoff": "32s", "backoffMultiplier": 1.3, "retryableStatusCodes": [ - "UNAVAILABLE" + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" ] } }, @@ -51,7 +52,8 @@ "maxBackoff": "32s", "backoffMultiplier": 1.3, "retryableStatusCodes": [ - "UNAVAILABLE" + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" ] } }, @@ -104,7 +106,8 @@ "maxBackoff": "32s", "backoffMultiplier": 1.3, "retryableStatusCodes": [ - "UNAVAILABLE" + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" ] } } diff --git a/third_party/googleapis/google/spanner/v1/transaction.proto b/third_party/googleapis/google/spanner/v1/transaction.proto index e3f22ee3c..8af513d15 100644 --- a/third_party/googleapis/google/spanner/v1/transaction.proto +++ b/third_party/googleapis/google/spanner/v1/transaction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/spanner/v1/type.proto b/third_party/googleapis/google/spanner/v1/type.proto index 8e28fa7fd..4e77106c9 100644 --- a/third_party/googleapis/google/spanner/v1/type.proto +++ b/third_party/googleapis/google/spanner/v1/type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/storage/control/BUILD.bazel b/third_party/googleapis/google/storage/control/BUILD.bazel new file mode 100644 index 000000000..9bb21e62f --- /dev/null +++ b/third_party/googleapis/google/storage/control/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-storage-control. + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +# Generates a Ruby wrapper client for storage-control. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v2 in this case. +ruby_cloud_gapic_library( + name = "control_ruby_wrapper", + srcs = ["//google/storage/control/v2:control_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-storage-control", + "ruby-cloud-wrapper-of=v2:0.0", + ], + service_yaml = "//google/storage/control/v2:storage_v2.yaml", + transport = "grpc", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-storage-control-ruby", + deps = [ + ":control_ruby_wrapper", + ], +) diff --git a/third_party/googleapis/google/storage/control/v2/BUILD.bazel b/third_party/googleapis/google/storage/control/v2/BUILD.bazel index c865933e8..3fa0b64c8 100644 --- a/third_party/googleapis/google/storage/control/v2/BUILD.bazel +++ b/third_party/googleapis/google/storage/control/v2/BUILD.bazel @@ -104,261 +104,264 @@ java_gapic_assembly_gradle_pkg( ], ) -# Other than Java, the build target for all other languages are commented out. - -############################################################################### -## Go -############################################################################### -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "go_gapic_assembly_pkg", -# "go_gapic_library", -# "go_proto_library", -#) -# -#go_proto_library( -# name = "control_go_proto", -# compilers = ["@io_bazel_rules_go//proto:go_grpc"], -# importpath = "cloud.google.com/go/storage/control/apiv2/storagecontrolpb", -# protos = [":control_proto"], -# deps = [ -# "//google/api:annotations_go_proto", -# "//google/longrunning:longrunning_go_proto", -# ], -#) -# -#go_gapic_library( -# name = "control_go_gapic", -# srcs = [":control_proto_with_info"], -# grpc_service_config = "storage_control_grpc_service_config.json", -# importpath = "cloud.google.com/go/storage/control/apiv2;storagecontrol", -# metadata = True, -# release_level = "beta", -# rest_numeric_enums = True, -# service_yaml = "storage_v2.yaml", -# transport = "grpc", -# deps = [ -# ":control_go_proto", -# "//google/longrunning:longrunning_go_proto", -# "@com_google_cloud_go_longrunning//:go_default_library", -# "@com_google_cloud_go_longrunning//autogen:go_default_library", -# ], -#) -# -## Open Source Packages -#go_gapic_assembly_pkg( -# name = "gapi-cloud-storage-control-v2-go", -# deps = [ -# ":control_go_gapic", -# ":control_go_gapic_srcjar-test.srcjar", -# ":control_go_gapic_srcjar-metadata.srcjar", -# ":control_go_gapic_srcjar-snippets.srcjar", -# ":control_go_proto", -# ], -#) -# -############################################################################### -## Python -############################################################################### -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "py_gapic_assembly_pkg", -# "py_gapic_library", -# "py_test", -#) -# -#py_gapic_library( -# name = "control_py_gapic", -# srcs = [":control_proto"], -# grpc_service_config = "storage_control_grpc_service_config.json", -# rest_numeric_enums = True, -# service_yaml = "storage_v2.yaml", -# transport = "grpc", -# deps = [ -# -# ], -#) -# -#py_test( -# name = "control_py_gapic_test", -# srcs = [ -# "control_py_gapic_pytest.py", -# "control_py_gapic_test.py", -# ], -# legacy_create_init = False, -# deps = [":control_py_gapic"], -#) -# -## Open Source Packages -#py_gapic_assembly_pkg( -# name = "storage-control-v2-py", -# deps = [ -# ":control_py_gapic", -# ], -#) -# -############################################################################### -## PHP -############################################################################### -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "php_gapic_assembly_pkg", -# "php_gapic_library", -# "php_proto_library", -#) -# -#php_proto_library( -# name = "control_php_proto", -# deps = [":control_proto"], -#) -# -#php_gapic_library( -# name = "control_php_gapic", -# srcs = [":control_proto_with_info"], -# grpc_service_config = "storage_control_grpc_service_config.json", -# rest_numeric_enums = True, -# migration_mode = "NEW_SURFACE_ONLY", -# service_yaml = "storage_v2.yaml", -# transport = "grpc", -# deps = [ -# ":control_php_proto", -# ], -#) -# -## Open Source Packages -#php_gapic_assembly_pkg( -# name = "google-cloud-storage-control-v2-php", -# deps = [ -# ":control_php_gapic", -# ":control_php_proto", -# ], -#) -# -############################################################################### -## Node.js -############################################################################### -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "nodejs_gapic_assembly_pkg", -# "nodejs_gapic_library", -#) -# -#nodejs_gapic_library( -# name = "control_nodejs_gapic", -# package_name = "@google-cloud/control", -# src = ":control_proto_with_info", -# extra_protoc_parameters = ["metadata"], -# grpc_service_config = "storage_control_grpc_service_config.json", -# package = "google.storage.control.v2", -# rest_numeric_enums = True, -# service_yaml = "storage_v2.yaml", -# transport = "grpc", -# deps = [], -#) -# -#nodejs_gapic_assembly_pkg( -# name = "storage-control-v2-nodejs", -# deps = [ -# ":control_nodejs_gapic", -# ":control_proto", -# ], -#) -# -############################################################################### -## Ruby -############################################################################### -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "ruby_gapic_assembly_pkg", -# "ruby_cloud_gapic_library", -# "ruby_grpc_library", -# "ruby_proto_library", -#) -# -#ruby_proto_library( -# name = "control_ruby_proto", -# deps = [":control_proto"], -#) -# -#ruby_grpc_library( -# name = "control_ruby_grpc", -# srcs = [":control_proto"], -# deps = [":control_ruby_proto"], -#) -# -#ruby_cloud_gapic_library( -# name = "control_ruby_gapic", -# srcs = [":control_proto_with_info"], -# extra_protoc_parameters = [ -# "ruby-cloud-gem-name=google-cloud-storage-control-v2", -# ], -# grpc_service_config = "storage_control_grpc_service_config.json", -# rest_numeric_enums = True, -# service_yaml = "storage_v2.yaml", -# transport = "grpc", -# deps = [ -# ":control_ruby_grpc", -# ":control_ruby_proto", -# ], -#) -# -## Open Source Packages -#ruby_gapic_assembly_pkg( -# name = "google-cloud-storage-control-v2-ruby", -# deps = [ -# ":control_ruby_gapic", -# ":control_ruby_grpc", -# ":control_ruby_proto", -# ], -#) -# -############################################################################### -## C# -############################################################################### -#load( -# "@com_google_googleapis_imports//:imports.bzl", -# "csharp_gapic_assembly_pkg", -# "csharp_gapic_library", -# "csharp_grpc_library", -# "csharp_proto_library", -#) -# -#csharp_proto_library( -# name = "control_csharp_proto", -# extra_opts = [], -# deps = [":control_proto"], -#) -# -#csharp_grpc_library( -# name = "control_csharp_grpc", -# srcs = [":control_proto"], -# deps = [":control_csharp_proto"], -#) -# -#csharp_gapic_library( -# name = "control_csharp_gapic", -# srcs = [":control_proto_with_info"], -# common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", -# grpc_service_config = "storage_control_grpc_service_config.json", -# rest_numeric_enums = True, -# service_yaml = "storage_v2.yaml", -# transport = "grpc", -# deps = [ -# ":control_csharp_grpc", -# ":control_csharp_proto", -# ], -#) -# -## Open Source Packages -#csharp_gapic_assembly_pkg( -# name = "google-cloud-storage-control-v2-csharp", -# deps = [ -# ":control_csharp_gapic", -# ":control_csharp_grpc", -# ":control_csharp_proto", -# ], -#) -# +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "control_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/storage/control/apiv2/controlpb", + protos = [":control_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "control_go_gapic", + srcs = [":control_proto_with_info"], + grpc_service_config = "storage_control_grpc_service_config.json", + importpath = "cloud.google.com/go/storage/control/apiv2;control", + metadata = True, + release_level = "ga", + rest_numeric_enums = True, + service_yaml = "storage_v2.yaml", + transport = "grpc", + deps = [ + ":control_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-storage-control-v2-go", + deps = [ + ":control_go_gapic", + ":control_go_gapic_srcjar-test.srcjar", + ":control_go_gapic_srcjar-metadata.srcjar", + ":control_go_gapic_srcjar-snippets.srcjar", + ":control_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "control_py_gapic", + srcs = [":control_proto"], + grpc_service_config = "storage_control_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "storage_v2.yaml", + transport = "grpc", + deps = [ + + ], + opt_args = [ + "python-gapic-namespace=google.cloud", + "python-gapic-name=storage_control", + "warehouse-package-name=google-cloud-storage-control" + ], +) + + +py_test( + name = "control_py_gapic_test", + srcs = [ + "control_py_gapic_pytest.py", + "control_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":control_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "storage-control-v2-py", + deps = [ + ":control_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "control_php_proto", + deps = [":control_proto"], +) + +php_gapic_library( + name = "control_php_gapic", + srcs = [":control_proto_with_info"], + grpc_service_config = "storage_control_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + service_yaml = "storage_v2.yaml", + transport = "grpc", + deps = [ + ":control_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-storage-control-v2-php", + deps = [ + ":control_php_gapic", + ":control_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "control_nodejs_gapic", + package_name = "@google-cloud/storage-control", + src = ":control_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "storage_control_grpc_service_config.json", + package = "google.storage.control.v2", + rest_numeric_enums = True, + service_yaml = "storage_v2.yaml", + transport = "grpc", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "storage-control-v2-nodejs", + deps = [ + ":control_nodejs_gapic", + ":control_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_cloud_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "control_ruby_proto", + deps = [":control_proto"], +) + +ruby_grpc_library( + name = "control_ruby_grpc", + srcs = [":control_proto"], + deps = [":control_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "control_ruby_gapic", + srcs = [":control_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-storage-control-v2", + ], + grpc_service_config = "storage_control_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "storage_v2.yaml", + transport = "grpc", + deps = [ + ":control_ruby_grpc", + ":control_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-storage-control-v2-ruby", + deps = [ + ":control_ruby_gapic", + ":control_ruby_grpc", + ":control_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "control_csharp_proto", + extra_opts = [], + deps = [":control_proto"], +) + +csharp_grpc_library( + name = "control_csharp_grpc", + srcs = [":control_proto"], + deps = [":control_csharp_proto"], +) + +csharp_gapic_library( + name = "control_csharp_gapic", + srcs = [":control_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "storage_control_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "storage_v2.yaml", + transport = "grpc", + deps = [ + ":control_csharp_grpc", + ":control_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-storage-control-v2-csharp", + deps = [ + ":control_csharp_gapic", + ":control_csharp_grpc", + ":control_csharp_proto", + ], +) + ############################################################################## # C++ ############################################################################## diff --git a/third_party/googleapis/google/storage/control/v2/storage_control.proto b/third_party/googleapis/google/storage/control/v2/storage_control.proto index 65a01f390..28551e3ef 100644 --- a/third_party/googleapis/google/storage/control/v2/storage_control.proto +++ b/third_party/googleapis/google/storage/control/v2/storage_control.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,10 +25,13 @@ import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; -option go_package = "cloud.google.com/go/storage/control/apiv2/storagecontrolpb;storagecontrolpb"; +option csharp_namespace = "Google.Cloud.Storage.Control.V2"; +option go_package = "cloud.google.com/go/storage/control/apiv2/controlpb;controlpb"; option java_multiple_files = true; option java_outer_classname = "StorageControlProto"; option java_package = "com.google.storage.control.v2"; +option php_namespace = "Google\\Cloud\\Storage\\Control\\V2"; +option ruby_package = "Google::Cloud::Storage::Control::V2"; option (google.api.resource_definition) = { type: "storage.googleapis.com/Bucket" pattern: "projects/{project}/buckets/{bucket}" @@ -44,7 +47,8 @@ service StorageControl { "https://www.googleapis.com/auth/devstorage.read_only," "https://www.googleapis.com/auth/devstorage.read_write"; - // Creates a new folder. + // Creates a new folder. This operation is only applicable to a hierarchical + // namespace enabled bucket. rpc CreateFolder(CreateFolderRequest) returns (Folder) { option (google.api.routing) = { routing_parameters { field: "parent" path_template: "{bucket=**}" } @@ -52,7 +56,8 @@ service StorageControl { option (google.api.method_signature) = "parent,folder,folder_id"; } - // Permanently deletes an empty folder. + // Permanently deletes an empty folder. This operation is only applicable to a + // hierarchical namespace enabled bucket. rpc DeleteFolder(DeleteFolderRequest) returns (google.protobuf.Empty) { option (google.api.routing) = { routing_parameters { @@ -63,7 +68,8 @@ service StorageControl { option (google.api.method_signature) = "name"; } - // Returns metadata for the specified folder. + // Returns metadata for the specified folder. This operation is only + // applicable to a hierarchical namespace enabled bucket. rpc GetFolder(GetFolderRequest) returns (Folder) { option (google.api.routing) = { routing_parameters { @@ -74,7 +80,8 @@ service StorageControl { option (google.api.method_signature) = "name"; } - // Retrieves a list of folders for a given bucket. + // Retrieves a list of folders. This operation is only applicable to a + // hierarchical namespace enabled bucket. rpc ListFolders(ListFoldersRequest) returns (ListFoldersResponse) { option (google.api.routing) = { routing_parameters { field: "parent" path_template: "{bucket=**}" } @@ -82,7 +89,8 @@ service StorageControl { option (google.api.method_signature) = "parent"; } - // Renames a source folder to a destination folder. During a rename, the + // Renames a source folder to a destination folder. This operation is only + // applicable to a hierarchical namespace enabled bucket. During a rename, the // source and destination folders are locked until the long running operation // completes. rpc RenameFolder(RenameFolderRequest) returns (google.longrunning.Operation) { @@ -109,6 +117,47 @@ service StorageControl { }; option (google.api.method_signature) = "name"; } + + // Creates a new managed folder. + rpc CreateManagedFolder(CreateManagedFolderRequest) returns (ManagedFolder) { + option (google.api.routing) = { + routing_parameters { field: "parent" path_template: "{bucket=**}" } + }; + option (google.api.method_signature) = + "parent,managed_folder,managed_folder_id"; + } + + // Permanently deletes an empty managed folder. + rpc DeleteManagedFolder(DeleteManagedFolderRequest) + returns (google.protobuf.Empty) { + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // Returns metadata for the specified managed folder. + rpc GetManagedFolder(GetManagedFolderRequest) returns (ManagedFolder) { + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "{bucket=projects/*/buckets/*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // Retrieves a list of managed folders for a given bucket. + rpc ListManagedFolders(ListManagedFoldersRequest) + returns (ListManagedFoldersResponse) { + option (google.api.routing) = { + routing_parameters { field: "parent" path_template: "{bucket=**}" } + }; + option (google.api.method_signature) = "parent"; + } } // Contains information about a pending rename operation. @@ -117,7 +166,8 @@ message PendingRenameInfo { string operation = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// A folder. +// A folder resource. This resource can only exist in a hierarchical namespace +// enabled bucket. message Folder { option (google.api.resource) = { type: "storage.googleapis.com/Folder" @@ -151,7 +201,8 @@ message Folder { [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Request message for GetFolder. +// Request message for GetFolder. This operation is only applicable to a +// hierarchical namespace enabled bucket. message GetFolderRequest { // Required. Name of the folder. // Format: `projects/{project}/buckets/{bucket}/folders/{folder}` @@ -176,9 +227,11 @@ message GetFolderRequest { ]; } -// Request message for CreateFolder. +// Request message for CreateFolder. This operation is only applicable to a +// hierarchical namespace enabled bucket. message CreateFolderRequest { - // Required. Name of the bucket in which the folder will reside. + // Required. Name of the bucket in which the folder will reside. The bucket + // must be a hierarchical namespace enabled bucket. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -192,7 +245,11 @@ message CreateFolderRequest { // error. Folder folder = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The absolute path of the folder, using a single `/` as delimiter. + // Required. The full name of a folder, including all its parent folders. + // Folders use single '/' characters as a delimiter. + // The folder_id must end with a slash. + // For example, the folder_id of "books/biographies/" would create a new + // "biographies/" folder under the "books/" folder. string folder_id = 3 [(google.api.field_behavior) = REQUIRED]; // Optional. If true, parent folder doesn't have to be present and all missing @@ -200,15 +257,15 @@ message CreateFolderRequest { bool recursive = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. A unique identifier for this request. UUID is the recommended - // format, but other formats are still accepted. This request is only - // idempotent if a `request_id` is provided. + // format, but other formats are still accepted. string request_id = 5 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } -// Request message for DeleteFolder. +// Request message for DeleteFolder. This operation is only applicable to a +// hierarchical namespace enabled bucket. message DeleteFolderRequest { // Required. Name of the folder. // Format: `projects/{project}/buckets/{bucket}/folders/{folder}` @@ -226,17 +283,18 @@ message DeleteFolderRequest { optional int64 if_metageneration_not_match = 4; // Optional. A unique identifier for this request. UUID is the recommended - // format, but other formats are still accepted. This request is only - // idempotent if a `request_id` is provided. + // format, but other formats are still accepted. string request_id = 5 [ (google.api.field_info).format = UUID4, (google.api.field_behavior) = OPTIONAL ]; } -// Request message for ListFolders. +// Request message for ListFolders. This operation is only applicable to a +// hierarchical namespace enabled bucket. message ListFoldersRequest { - // Required. Name of the bucket in which to look for folders. + // Required. Name of the bucket in which to look for folders. The bucket must + // be a hierarchical namespace enabled bucket. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -291,7 +349,8 @@ message ListFoldersResponse { string next_page_token = 2; } -// Request message for RenameFolder. +// Request message for RenameFolder. This operation is only applicable to a +// hierarchical namespace enabled bucket. message RenameFolderRequest { // Required. Name of the source folder being renamed. // Format: `projects/{project}/buckets/{bucket}/folders/{folder}` @@ -425,3 +484,161 @@ message GetStorageLayoutRequest { (google.api.field_behavior) = OPTIONAL ]; } + +// A managed folder. +message ManagedFolder { + option (google.api.resource) = { + type: "storage.googleapis.com/ManagedFolder" + pattern: "projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}" + plural: "managedFolders" + singular: "managedFolder" + }; + + // Identifier. The name of this managed folder. + // Format: + // `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The metadata version of this managed folder. It increases + // whenever the metadata is updated. Used for preconditions and for detecting + // changes in metadata. Managed folders don't have a generation number. + int64 metageneration = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The creation time of the managed folder. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The modification time of the managed folder. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for GetManagedFolder. +message GetManagedFolderRequest { + // Required. Name of the managed folder. + // Format: + // `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder}` + string name = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "storage.googleapis.com/ManagedFolder" + } + ]; + + // The operation succeeds conditional on the managed folder's current + // metageneration matching the value here specified. + optional int64 if_metageneration_match = 3; + + // The operation succeeds conditional on the managed folder's current + // metageneration NOT matching the value here specified. + optional int64 if_metageneration_not_match = 4; + + // Optional. A unique identifier for this request. UUID is the recommended + // format, but other formats are still accepted. + string request_id = 5 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request message for CreateManagedFolder. +message CreateManagedFolderRequest { + // Required. Name of the bucket this managed folder belongs to. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "storage.googleapis.com/ManagedFolder" + } + ]; + + // Required. Properties of the managed folder being created. + // The bucket and managed folder names are specified in the `parent` and + // `managed_folder_id` fields. Populating these fields in `managed_folder` + // will result in an error. + ManagedFolder managed_folder = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the managed folder. It uses a single `/` as delimiter + // and leading and trailing `/` are allowed. + string managed_folder_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A unique identifier for this request. UUID is the recommended + // format, but other formats are still accepted. + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// DeleteManagedFolder RPC request message. +message DeleteManagedFolderRequest { + // Required. Name of the managed folder. + // Format: + // `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder}` + string name = 7 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "storage.googleapis.com/ManagedFolder" + } + ]; + + // The operation succeeds conditional on the managed folder's current + // metageneration matching the value here specified. + optional int64 if_metageneration_match = 3; + + // The operation succeeds conditional on the managed folder's current + // metageneration NOT matching the value here specified. + optional int64 if_metageneration_not_match = 4; + + // Allows deletion of a managed folder even if it is not empty. + // A managed folder is empty if it manages no child managed folders or + // objects. Caller must have permission for + // storage.managedFolders.setIamPolicy. + bool allow_non_empty = 5; + + // Optional. A unique identifier for this request. UUID is the recommended + // format, but other formats are still accepted. + string request_id = 6 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request message for ListManagedFolders. +message ListManagedFoldersRequest { + // Required. Name of the bucket this managed folder belongs to. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "storage.googleapis.com/ManagedFolder" + } + ]; + + // Optional. Maximum number of managed folders to return in a single response. + // The service will use this parameter or 1,000 items, whichever is smaller. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A previously-returned page token representing part of the larger + // set of results to view. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter results to match managed folders with name starting with + // this prefix. + string prefix = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A unique identifier for this request. UUID is the recommended + // format, but other formats are still accepted. + string request_id = 5 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Response message for ListManagedFolders. +message ListManagedFoldersResponse { + // The list of matching managed folders + repeated ManagedFolder managed_folders = 1; + + // The continuation token, used to page through large result sets. Provide + // this value in a subsequent request to return the next page of results. + string next_page_token = 2; +} diff --git a/third_party/googleapis/google/storage/control/v2/storage_control_grpc_service_config.json b/third_party/googleapis/google/storage/control/v2/storage_control_grpc_service_config.json index 024ce0f87..ed70dd1b7 100644 --- a/third_party/googleapis/google/storage/control/v2/storage_control_grpc_service_config.json +++ b/third_party/googleapis/google/storage/control/v2/storage_control_grpc_service_config.json @@ -20,6 +20,14 @@ { "service": "google.storage.control.v2.StorageControl", "method": "RenameFolder" + }, + { + "service": "google.storage.control.v2.StorageControl", + "method": "GetManagedFolder" + }, + { + "service": "google.storage.control.v2.StorageControl", + "method": "ListManagedFolders" } ], "timeout": "60s", diff --git a/third_party/googleapis/google/storage/control/v2/storage_v2.yaml b/third_party/googleapis/google/storage/control/v2/storage_v2.yaml index b84566987..fecaf1ddb 100644 --- a/third_party/googleapis/google/storage/control/v2/storage_v2.yaml +++ b/third_party/googleapis/google/storage/control/v2/storage_v2.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: storage.googleapis.com -title: Cloud Storage API +title: Storage Control API apis: - name: google.longrunning.Operations @@ -12,7 +12,14 @@ types: - name: google.storage.control.v2.RenameFolderMetadata documentation: - summary: 'Lets you store and retrieve potentially-large, immutable data objects.' + summary: |- + The Storage Control API lets you perform metadata-specific, control plane, + and long-running operations. + + The Storage Control API creates one space to perform metadata-specific, + control plane, and long-running operations apart from the Storage API. + Separating these operations from the Storage API improves API + standardization and lets you run faster releases. overview: |- The Google Cloud Storage API allows applications to read and write data through the abstractions of buckets and objects, which are similar to @@ -58,6 +65,18 @@ publishing: - selector: google.storage.control.v2.StorageControl.GetStorageLayout auto_populated_fields: - request_id + - selector: google.storage.control.v2.StorageControl.CreateManagedFolder + auto_populated_fields: + - request_id + - selector: google.storage.control.v2.StorageControl.DeleteManagedFolder + auto_populated_fields: + - request_id + - selector: google.storage.control.v2.StorageControl.GetManagedFolder + auto_populated_fields: + - request_id + - selector: google.storage.control.v2.StorageControl.ListManagedFolders + auto_populated_fields: + - request_id new_issue_uri: https://issuetracker.google.com/issues/new?component=187243&template=1162869 documentation_uri: https://cloud.google.com/storage/docs/overview api_short_name: storage @@ -65,9 +84,37 @@ publishing: doc_tag_prefix: storage organization: CLOUD library_settings: - - version: google.cloud.storage.control.v2 - launch_stage: ALPHA + - version: google.storage.control.v2 + launch_stage: GA java_settings: common: destinations: - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/third_party/googleapis/google/storage/v1/storage.proto b/third_party/googleapis/google/storage/v1/storage.proto index 11418166d..89dbe6fe3 100644 --- a/third_party/googleapis/google/storage/v1/storage.proto +++ b/third_party/googleapis/google/storage/v1/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/storage/v1/storage_resources.proto b/third_party/googleapis/google/storage/v1/storage_resources.proto index 7baa8342c..089442493 100644 --- a/third_party/googleapis/google/storage/v1/storage_resources.proto +++ b/third_party/googleapis/google/storage/v1/storage_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/storage/v2/storage.proto b/third_party/googleapis/google/storage/v2/storage.proto index a8516a58e..0f9758f19 100644 --- a/third_party/googleapis/google/storage/v2/storage.proto +++ b/third_party/googleapis/google/storage/v2/storage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -1248,6 +1248,11 @@ message ListObjectsRequest { // Soft delete policy is required to set this option. bool soft_deleted = 12 [(google.api.field_behavior) = OPTIONAL]; + // Optional. If true, will also include folders and managed folders (besides + // objects) in the returned `prefixes`. Requires `delimiter` to be set to '/'. + bool include_folders_as_prefixes = 13 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Filter results to objects and prefixes that match this glob // pattern. See [List Objects Using // Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob) @@ -1988,6 +1993,12 @@ message Bucket { [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Configuration for a bucket's hierarchical namespace feature. + message HierarchicalNamespace { + // Optional. Enables the hierarchical namespace feature. + bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Immutable. The name of the bucket. // Format: `projects/{project}/buckets/{bucket}` string name = 1 [(google.api.field_behavior) = IMMUTABLE]; @@ -2136,6 +2147,12 @@ message Bucket { // Autoclass feature will be disabled and have no effect on the bucket. Autoclass autoclass = 28; + // Optional. The bucket's hierarchical namespace configuration. If there is no + // configuration, the hierarchical namespace feature will be disabled and have + // no effect on the bucket. + HierarchicalNamespace hierarchical_namespace = 32 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The bucket's soft delete policy. The soft delete policy prevents // soft-deleted objects from being permanently deleted. SoftDeletePolicy soft_delete_policy = 31 diff --git a/third_party/googleapis/google/storagetransfer/logging/transfer_activity_log.proto b/third_party/googleapis/google/storagetransfer/logging/transfer_activity_log.proto index 642e19020..ec7e0a4d5 100644 --- a/third_party/googleapis/google/storagetransfer/logging/transfer_activity_log.proto +++ b/third_party/googleapis/google/storagetransfer/logging/transfer_activity_log.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/storagetransfer/v1/transfer.proto b/third_party/googleapis/google/storagetransfer/v1/transfer.proto index 09880b898..ab249c9d2 100644 --- a/third_party/googleapis/google/storagetransfer/v1/transfer.proto +++ b/third_party/googleapis/google/storagetransfer/v1/transfer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/storagetransfer/v1/transfer_types.proto b/third_party/googleapis/google/storagetransfer/v1/transfer_types.proto index 02cf2744f..378795c11 100644 --- a/third_party/googleapis/google/storagetransfer/v1/transfer_types.proto +++ b/third_party/googleapis/google/storagetransfer/v1/transfer_types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/streetview/publish/v1/BUILD.bazel b/third_party/googleapis/google/streetview/publish/v1/BUILD.bazel index 37948a8b4..f77e61c57 100644 --- a/third_party/googleapis/google/streetview/publish/v1/BUILD.bazel +++ b/third_party/googleapis/google/streetview/publish/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "publish_proto", @@ -29,6 +32,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", "//google/type:latlng_proto", @@ -50,6 +54,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -112,6 +117,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -122,7 +128,7 @@ load( go_proto_library( name = "publish_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/streetview/publish/v1", + importpath = "cloud.google.com/go/streetview/publish/apiv1/publishpb", protos = [":publish_proto"], deps = [ "//google/api:annotations_go_proto", @@ -136,8 +142,9 @@ go_gapic_library( name = "publish_go_gapic", srcs = [":publish_proto_with_info"], grpc_service_config = "streetview_publish_grpc_service_config.json", - importpath = "google.golang.org/google/streetview/publish/v1;publish", + importpath = "cloud.google.com/go/streetview/publish/apiv1;publish", metadata = True, + release_level = "beta", rest_numeric_enums = True, service_yaml = "streetviewpublish.yaml", transport = "grpc+rest", @@ -165,10 +172,12 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", "py_gapic_library", + "py_test", ) py_gapic_library( @@ -203,6 +212,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -219,10 +229,13 @@ php_gapic_library( name = "publish_php_gapic", srcs = [":publish_proto_with_info"], grpc_service_config = "streetview_publish_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "streetviewpublish.yaml", transport = "grpc+rest", - deps = [":publish_php_proto"], + deps = [ + ":publish_php_proto", + ], ) # Open Source Packages @@ -237,6 +250,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -267,6 +281,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -313,6 +328,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -323,6 +339,7 @@ load( csharp_proto_library( name = "publish_csharp_proto", + extra_opts = [], deps = [":publish_proto"], ) @@ -359,6 +376,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/google/streetview/publish/v1/resources.proto b/third_party/googleapis/google/streetview/publish/v1/resources.proto index 2082eee97..9635bafea 100644 --- a/third_party/googleapis/google/streetview/publish/v1/resources.proto +++ b/third_party/googleapis/google/streetview/publish/v1/resources.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,11 +17,12 @@ syntax = "proto3"; package google.streetview.publish.v1; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; -option go_package = "google.golang.org/genproto/googleapis/streetview/publish/v1;publish"; +option go_package = "cloud.google.com/go/streetview/publish/apiv1/publishpb;publishpb"; option java_outer_classname = "StreetViewPublishResources"; option java_package = "com.google.geo.ugc.streetview.publish.v1"; @@ -44,9 +45,9 @@ message PhotoId { // Level information containing level number and its corresponding name. message Level { - // Optional. Floor number, used for ordering. 0 indicates the ground level, 1 indicates - // the first level above ground level, -1 indicates the first level under - // ground level. Non-integer values are OK. + // Optional. Floor number, used for ordering. 0 indicates the ground level, 1 + // indicates the first level above ground level, -1 indicates the first level + // under ground level. Non-integer values are OK. double number = 1 [(google.api.field_behavior) = OPTIONAL]; // Required. A name assigned to this Level, restricted to 3 characters. @@ -196,16 +197,16 @@ message Photo { REJECTED_UNKNOWN = 2; } - // Required. Output only. Required when updating a photo. Output only when creating a photo. - // Identifier for the photo, which is unique among all photos in - // Google. + // Required. Output only. Required when updating a photo. Output only when + // creating a photo. Identifier for the photo, which is unique among all + // photos in Google. PhotoId photo_id = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = OUTPUT_ONLY ]; - // Input only. Required when creating a photo. Input only. The resource URL where the - // photo bytes are uploaded to. + // Input only. Required when creating a photo. Input only. The resource URL + // where the photo bytes are uploaded to. UploadRef upload_reference = 2 [(google.api.field_behavior) = INPUT_ONLY]; // Output only. The download URL for the photo bytes. This field is set only @@ -224,17 +225,19 @@ message Photo { // Optional. Pose of the photo. Pose pose = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Connections to other photos. A connection represents the link from this - // photo to another photo. + // Optional. Connections to other photos. A connection represents the link + // from this photo to another photo. repeated Connection connections = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Absolute time when the photo was captured. // When the photo has no exif timestamp, this is used to set a timestamp in // the photo metadata. - google.protobuf.Timestamp capture_time = 6 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp capture_time = 6 + [(google.api.field_behavior) = OPTIONAL]; // Output only. Time when the image was uploaded. - google.protobuf.Timestamp upload_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + google.protobuf.Timestamp upload_time = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Places where this photo belongs. repeated Place places = 7 [(google.api.field_behavior) = OPTIONAL]; @@ -243,10 +246,13 @@ message Photo { int64 view_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Status of rights transfer on this photo. - TransferStatus transfer_status = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + TransferStatus transfer_status = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Status in Google Maps, whether this photo was published or rejected. - MapsPublishStatus maps_publish_status = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Status in Google Maps, whether this photo was published or + // rejected. + MapsPublishStatus maps_publish_status = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A sequence of 360 photos along with metadata. @@ -276,19 +282,20 @@ message PhotoSequence { // If the photo sequence is a video, this is the start time of the video. // If this field is populated in input, it overrides the capture time in the // video or XDM file. - google.protobuf.Timestamp capture_time_override = 4 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp capture_time_override = 4 + [(google.api.field_behavior) = OPTIONAL]; // Output only. The time this photo sequence was created in uSV Store service. - google.protobuf.Timestamp upload_time = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Input only. Raw GPS measurements with increasing timestamps from the device that - // aren't time synced with each photo. - // These raw measurements will be used to infer the pose of each frame. - // Required in input when InputType is VIDEO and raw GPS measurements are not - // in Camera Motion Metadata Track (CAMM). - // User can indicate which takes precedence using gps_source if raw GPS - // measurements are provided in both raw_gps_timeline and - // Camera Motion Metadata Track (CAMM). + google.protobuf.Timestamp upload_time = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. Raw GPS measurements with increasing timestamps from the device + // that aren't time synced with each photo. These raw measurements will be + // used to infer the pose of each frame. Required in input when InputType is + // VIDEO and raw GPS measurements are not in Camera Motion Metadata Track + // (CAMM). User can indicate which takes precedence using gps_source if raw + // GPS measurements are provided in both raw_gps_timeline and Camera Motion + // Metadata Track (CAMM). repeated Pose raw_gps_timeline = 7 [(google.api.field_behavior) = INPUT_ONLY]; // Input only. If both raw_gps_timeline and @@ -303,30 +310,34 @@ message PhotoSequence { Imu imu = 11 [(google.api.field_behavior) = INPUT_ONLY]; // Output only. The processing state of this sequence. - ProcessingState processing_state = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + ProcessingState processing_state = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. If this sequence has processing_state = FAILED, this will contain the - // reason why it failed. If the processing_state is any other value, this - // field will be unset. - ProcessingFailureReason failure_reason = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. If this sequence has processing_state = FAILED, this will + // contain the reason why it failed. If the processing_state is any other + // value, this field will be unset. + ProcessingFailureReason failure_reason = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. If this sequence has `failure_reason` set, this may contain additional - // details about the failure. - ProcessingFailureDetails failure_details = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. If this sequence has `failure_reason` set, this may contain + // additional details about the failure. + ProcessingFailureDetails failure_details = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The computed distance of the photo sequence in meters. double distance_meters = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. A rectangular box that encapsulates every image in this photo sequence. + // Output only. A rectangular box that encapsulates every image in this photo + // sequence. LatLngBounds sequence_bounds = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The total number of views that all the published images in this - // PhotoSequence have received. + // Output only. The total number of views that all the published images in + // this PhotoSequence have received. int64 view_count = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The filename of the upload. Does not include the directory path. Only - // available if the sequence was uploaded on a platform that provides the - // filename. + // Output only. The filename of the upload. Does not include the directory + // path. Only available if the sequence was uploaded on a platform that + // provides the filename. string filename = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -445,6 +456,15 @@ enum ProcessingFailureReason { // Not enough video frames. INSUFFICIENT_VIDEO_FRAMES = 19; + + // Not enough moving data. + INSUFFICIENT_MOVEMENT = 20; + + // Mast is down. + MAST_DOWN = 27; + + // Camera is covered. + CAMERA_COVERED = 28; } // Additional details to accompany the ProcessingFailureReason enum. @@ -466,6 +486,9 @@ message ProcessingFailureDetails { // See NotOutdoorsFailureDetails. NotOutdoorsFailureDetails not_outdoors_details = 4; + + // See NoOverlapGpsFailureDetails. + NoOverlapGpsFailureDetails no_overlap_gps_details = 5; } } @@ -504,3 +527,18 @@ message NotOutdoorsFailureDetails { // found. optional google.protobuf.Duration start_time = 1; } + +// Details related to PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS. +message NoOverlapGpsFailureDetails { + // Time of first recorded GPS point. + optional google.protobuf.Timestamp gps_start_time = 1; + + // Time of last recorded GPS point. + optional google.protobuf.Timestamp gps_end_time = 2; + + // Start time of video. + optional google.protobuf.Timestamp video_start_time = 3; + + // End time of video. + optional google.protobuf.Timestamp video_end_time = 4; +} diff --git a/third_party/googleapis/google/streetview/publish/v1/rpcmessages.proto b/third_party/googleapis/google/streetview/publish/v1/rpcmessages.proto index a3aae444e..3fe355cde 100644 --- a/third_party/googleapis/google/streetview/publish/v1/rpcmessages.proto +++ b/third_party/googleapis/google/streetview/publish/v1/rpcmessages.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,12 +17,13 @@ syntax = "proto3"; package google.streetview.publish.v1; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; import "google/streetview/publish/v1/resources.proto"; -option go_package = "google.golang.org/genproto/googleapis/streetview/publish/v1;publish"; +option go_package = "cloud.google.com/go/streetview/publish/apiv1/publishpb;publishpb"; option java_outer_classname = "StreetViewPublishRpcMessages"; option java_package = "com.google.geo.ugc.streetview.publish.v1"; @@ -45,8 +46,8 @@ message GetPhotoRequest { // Required. ID of the [Photo][google.streetview.publish.v1.Photo]. string photo_id = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Specifies if a download URL for the photo bytes should be returned in the - // [Photo][google.streetview.publish.v1.Photo] response. + // Required. Specifies if a download URL for the photo bytes should be + // returned in the [Photo][google.streetview.publish.v1.Photo] response. PhotoView view = 2 [(google.api.field_behavior) = REQUIRED]; // The BCP-47 language code, such as "en-US" or "sr-Latn". For more @@ -71,8 +72,8 @@ message BatchGetPhotosRequest { // `photoIds=&photoIds=&...`. repeated string photo_ids = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Specifies if a download URL for the photo bytes should be returned in the - // Photo response. + // Required. Specifies if a download URL for the photo bytes should be + // returned in the Photo response. PhotoView view = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more @@ -124,8 +125,8 @@ message PhotoResponse { // * `filter` allows filtering by a given parameter. 'placeId' is the only // parameter supported at the moment. message ListPhotosRequest { - // Required. Specifies if a download URL for the photos bytes should be returned in the - // Photos response. + // Required. Specifies if a download URL for the photos bytes should be + // returned in the Photos response. PhotoView view = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. The maximum number of photos to return. @@ -142,11 +143,12 @@ message ListPhotosRequest { // request, if any. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`. + // Optional. The filter expression. For example: + // `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`. // // The filters supported are: `placeId`, `min_latitude`, `max_latitude`, - // `min_longitude`, and `max_longitude`. See https://google.aip.dev/160 for - // more information. + // `min_longitude`, `max_longitude`. See https://google.aip.dev/160 for more + // information. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more @@ -187,7 +189,7 @@ message UpdatePhotoRequest { // The following fields are valid: // // * `pose.heading` - // * `pose.latLngPair` + // * `pose.lat_lng_pair` // * `pose.pitch` // * `pose.roll` // * `pose.level` @@ -203,7 +205,8 @@ message UpdatePhotoRequest { // [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask] // contains `connections` and `UpdatePhotoRequest.photo.connections` is empty, // all connections are removed. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; } // Request to update the metadata of photos. @@ -211,7 +214,8 @@ message UpdatePhotoRequest { message BatchUpdatePhotosRequest { // Required. List of // [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest]. - repeated UpdatePhotoRequest update_photo_requests = 1 [(google.api.field_behavior) = REQUIRED]; + repeated UpdatePhotoRequest update_photo_requests = 1 + [(google.api.field_behavior) = REQUIRED]; } // Response to batch update of metadata of one or more @@ -242,7 +246,8 @@ message BatchDeletePhotosRequest { message CreatePhotoSequenceRequest { // Input forms of [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. enum InputType { - // Not specified. Server will return [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. + // Not specified. Server will return + // [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. INPUT_TYPE_UNSPECIFIED = 0; // 360 Video. @@ -334,11 +339,12 @@ message ListPhotoSequencesRequest { // Optional. The filter expression. For example: `imagery_type=SPHERICAL`. // // The filters supported are: `imagery_type`, `processing_state`, - // `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude`, and - // `filename_query`. See https://google.aip.dev/160 for more information. - // Filename queries should sent as a Phrase in order to support multple words - // and special characters by adding escaped quotes. Ex: - // filename_query="example of a phrase.mp4" + // `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude`, + // `filename_query`, `min_capture_time_seconds`, `max_capture_time_seconds. + // See https://google.aip.dev/160 for more information. Filename queries + // should sent as a Phrase in order to support multiple words and special + // characters by adding escaped quotes. Ex: filename_query="example of a + // phrase.mp4" string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/third_party/googleapis/google/streetview/publish/v1/streetview_publish.proto b/third_party/googleapis/google/streetview/publish/v1/streetview_publish.proto index 11aa968e0..3032c8e81 100644 --- a/third_party/googleapis/google/streetview/publish/v1/streetview_publish.proto +++ b/third_party/googleapis/google/streetview/publish/v1/streetview_publish.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,21 +18,27 @@ package google.streetview.publish.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; +import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/streetview/publish/v1/resources.proto"; import "google/streetview/publish/v1/rpcmessages.proto"; -option go_package = "google.golang.org/genproto/googleapis/streetview/publish/v1;publish"; +option go_package = "cloud.google.com/go/streetview/publish/apiv1/publishpb;publishpb"; option java_outer_classname = "StreetViewPublish"; option java_package = "com.google.geo.ugc.streetview.publish.v1"; +option (google.api.resource_definition) = { + type: "streetviewpublish.googleapis.com/Contract" + pattern: "contracts/{contract}" +}; // Definition of the service that backs the Street View Publish API. // Publishes and connects user-contributed photos on Street View. service StreetViewPublishService { option (google.api.default_host) = "streetviewpublish.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/streetviewpublish"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/streetviewpublish"; // Creates an upload session to start uploading photo bytes. The method uses // the upload URL of the returned @@ -75,11 +81,12 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if the request is malformed or if - // the uploaded photo is not a 360 photo. - // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the upload reference does not exist. - // * [google.rpc.Code.RESOURCE_EXHAUSTED][google.rpc.Code.RESOURCE_EXHAUSTED] if the account has reached the - // storage limit. + // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if + // the request is malformed or if the uploaded photo is not a 360 photo. + // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the upload + // reference does not exist. + // * [google.rpc.Code.RESOURCE_EXHAUSTED][google.rpc.Code.RESOURCE_EXHAUSTED] + // if the account has reached the storage limit. rpc CreatePhoto(CreatePhotoRequest) returns (Photo) { option (google.api.http) = { post: "/v1/photo" @@ -93,12 +100,14 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if the requesting user did not - // create the requested [Photo][google.streetview.publish.v1.Photo]. + // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if + // the requesting user did not create the requested + // [Photo][google.streetview.publish.v1.Photo]. // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested // [Photo][google.streetview.publish.v1.Photo] does not exist. - // * [google.rpc.Code.UNAVAILABLE][google.rpc.Code.UNAVAILABLE] if the requested - // [Photo][google.streetview.publish.v1.Photo] is still being indexed. + // * [google.rpc.Code.UNAVAILABLE][google.rpc.Code.UNAVAILABLE] if the + // requested [Photo][google.streetview.publish.v1.Photo] is still being + // indexed. rpc GetPhoto(GetPhotoRequest) returns (Photo) { option (google.api.http) = { get: "/v1/photo/{photo_id}" @@ -152,12 +161,15 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if the requesting user did not - // create the requested photo. - // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if the request is malformed. - // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested photo does not exist. - // * [google.rpc.Code.UNAVAILABLE][google.rpc.Code.UNAVAILABLE] if the requested - // [Photo][google.streetview.publish.v1.Photo] is still being indexed. + // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if + // the requesting user did not create the requested photo. + // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if + // the request is malformed. + // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested + // photo does not exist. + // * [google.rpc.Code.UNAVAILABLE][google.rpc.Code.UNAVAILABLE] if the + // requested [Photo][google.streetview.publish.v1.Photo] is still being + // indexed. rpc UpdatePhoto(UpdatePhotoRequest) returns (Photo) { option (google.api.http) = { put: "/v1/photo/{photo.photo_id.id}" @@ -199,7 +211,8 @@ service StreetViewPublishService { // [Pose.altitude][google.streetview.publish.v1.Pose.altitude], // [Pose.latLngPair][google.streetview.publish.v1.Pose.lat_lng_pair] has to be // filled as well. Otherwise, the request will fail. - rpc BatchUpdatePhotos(BatchUpdatePhotosRequest) returns (BatchUpdatePhotosResponse) { + rpc BatchUpdatePhotos(BatchUpdatePhotosRequest) + returns (BatchUpdatePhotosResponse) { option (google.api.http) = { post: "/v1/photos:batchUpdate" body: "*" @@ -211,9 +224,10 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if the requesting user did not - // create the requested photo. - // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the photo ID does not exist. + // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if + // the requesting user did not create the requested photo. + // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the photo ID + // does not exist. rpc DeletePhoto(DeletePhotoRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/photo/{photo_id}" @@ -237,7 +251,8 @@ service StreetViewPublishService { // See // [DeletePhoto][google.streetview.publish.v1.StreetViewPublishService.DeletePhoto] // for specific failures that can occur per photo. - rpc BatchDeletePhotos(BatchDeletePhotosRequest) returns (BatchDeletePhotosResponse) { + rpc BatchDeletePhotos(BatchDeletePhotosRequest) + returns (BatchDeletePhotosResponse) { option (google.api.http) = { post: "/v1/photos:batchDelete" body: "*" @@ -276,9 +291,12 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if the request is malformed. - // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the upload reference does not exist. - rpc CreatePhotoSequence(CreatePhotoSequenceRequest) returns (google.longrunning.Operation) { + // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if + // the request is malformed. + // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the upload + // reference does not exist. + rpc CreatePhotoSequence(CreatePhotoSequenceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/photoSequence" body: "photo_sequence" @@ -307,12 +325,13 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if the requesting user did not - // create the requested + // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if + // the requesting user did not create the requested // [PhotoSequence][google.streetview.publish.v1.PhotoSequence]. // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested // [PhotoSequence][google.streetview.publish.v1.PhotoSequence] does not exist. - rpc GetPhotoSequence(GetPhotoSequenceRequest) returns (google.longrunning.Operation) { + rpc GetPhotoSequence(GetPhotoSequenceRequest) + returns (google.longrunning.Operation) { option (google.api.http) = { get: "/v1/photoSequence/{sequence_id}" }; @@ -324,7 +343,8 @@ service StreetViewPublishService { // Lists all the [PhotoSequences][google.streetview.publish.v1.PhotoSequence] // that belong to the user, in descending CreatePhotoSequence timestamp order. - rpc ListPhotoSequences(ListPhotoSequencesRequest) returns (ListPhotoSequencesResponse) { + rpc ListPhotoSequences(ListPhotoSequencesRequest) + returns (ListPhotoSequencesResponse) { option (google.api.http) = { get: "/v1/photoSequences" }; @@ -335,12 +355,14 @@ service StreetViewPublishService { // // This method returns the following error codes: // - // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if the requesting user did not - // create the requested photo sequence. - // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the photo sequence ID does not exist. + // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if + // the requesting user did not create the requested photo sequence. + // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the photo + // sequence ID does not exist. // * [google.rpc.Code.FAILED_PRECONDITION][google.rpc.Code.FAILED_PRECONDITION] if the photo sequence ID is not // yet finished processing. - rpc DeletePhotoSequence(DeletePhotoSequenceRequest) returns (google.protobuf.Empty) { + rpc DeletePhotoSequence(DeletePhotoSequenceRequest) + returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/photoSequence/{sequence_id}" }; diff --git a/third_party/googleapis/google/streetview/publish/v1/streetview_publish.yaml b/third_party/googleapis/google/streetview/publish/v1/streetview_publish.yaml deleted file mode 100644 index 5a75cf8e7..000000000 --- a/third_party/googleapis/google/streetview/publish/v1/streetview_publish.yaml +++ /dev/null @@ -1,27 +0,0 @@ - -type: google.api.Service -config_version: 3 -name: streetviewpublish.googleapis.com -title: Street View Publish API - -apis: -- name: google.streetview.publish.v1.StreetViewPublishService - -documentation: - summary: |- - The Street View Publish API allows your application to publish 360 photos to - Google Maps, along with image metadata that specifies the position, - orientation, and connectivity of each photo. With this API, any app can - offer an interface for positioning, connecting, and uploading user-generated - Street View images. - overview: |- - An API to contribute 360 photos to Google Street View. The API also allows - the users to connect photos, update metadata of the photos, generate photo - collections, and delete photos. - -authentication: - rules: - - selector: '*' - oauth: - canonical_scopes: >- - https://www.googleapis.com/auth/streetviewpublish diff --git a/third_party/googleapis/google/streetview/publish/v1/streetviewpublish.yaml b/third_party/googleapis/google/streetview/publish/v1/streetviewpublish.yaml index 861d1aeed..1c9da93b0 100644 --- a/third_party/googleapis/google/streetview/publish/v1/streetviewpublish.yaml +++ b/third_party/googleapis/google/streetview/publish/v1/streetviewpublish.yaml @@ -16,14 +16,41 @@ documentation: the users to connect photos, update metadata of the photos, generate photo collections, and delete photos. -backend: - rules: - - selector: 'google.streetview.publish.v1.StreetViewPublishService.*' - deadline: 30.0 - authentication: rules: - selector: 'google.streetview.publish.v1.StreetViewPublishService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/streetviewpublish + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=316970&template=1019235 + documentation_uri: https://developers.google.com/streetview/publish + api_short_name: streetviewpublish + github_label: 'api: streetviewpublish' + doc_tag_prefix: streetviewpublish + organization: GEO + library_settings: + - version: google.streetview.publish.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://developers.google.com/streetview/publish/reference/rest diff --git a/third_party/googleapis/google/type/calendar_period.proto b/third_party/googleapis/google/type/calendar_period.proto index 82f5690b7..25a8f6441 100644 --- a/third_party/googleapis/google/type/calendar_period.proto +++ b/third_party/googleapis/google/type/calendar_period.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/color.proto b/third_party/googleapis/google/type/color.proto index 5dc85a6a3..3e57c1fb2 100644 --- a/third_party/googleapis/google/type/color.proto +++ b/third_party/googleapis/google/type/color.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/date.proto b/third_party/googleapis/google/type/date.proto index e4e730e6f..6370cd869 100644 --- a/third_party/googleapis/google/type/date.proto +++ b/third_party/googleapis/google/type/date.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/datetime.proto b/third_party/googleapis/google/type/datetime.proto index cfed85d70..a363a41ef 100644 --- a/third_party/googleapis/google/type/datetime.proto +++ b/third_party/googleapis/google/type/datetime.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/dayofweek.proto b/third_party/googleapis/google/type/dayofweek.proto index 4c80c62ec..e16c19469 100644 --- a/third_party/googleapis/google/type/dayofweek.proto +++ b/third_party/googleapis/google/type/dayofweek.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/decimal.proto b/third_party/googleapis/google/type/decimal.proto index beb18a5d8..293d08273 100644 --- a/third_party/googleapis/google/type/decimal.proto +++ b/third_party/googleapis/google/type/decimal.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/expr.proto b/third_party/googleapis/google/type/expr.proto index af0778cf9..544e66874 100644 --- a/third_party/googleapis/google/type/expr.proto +++ b/third_party/googleapis/google/type/expr.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/fraction.proto b/third_party/googleapis/google/type/fraction.proto index 6c5ae6e2a..06f072322 100644 --- a/third_party/googleapis/google/type/fraction.proto +++ b/third_party/googleapis/google/type/fraction.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/interval.proto b/third_party/googleapis/google/type/interval.proto index 9702324cd..fcf94c866 100644 --- a/third_party/googleapis/google/type/interval.proto +++ b/third_party/googleapis/google/type/interval.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/latlng.proto b/third_party/googleapis/google/type/latlng.proto index 9231456e3..daeba48b4 100644 --- a/third_party/googleapis/google/type/latlng.proto +++ b/third_party/googleapis/google/type/latlng.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/localized_text.proto b/third_party/googleapis/google/type/localized_text.proto index 5c6922b8c..82d083c43 100644 --- a/third_party/googleapis/google/type/localized_text.proto +++ b/third_party/googleapis/google/type/localized_text.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/money.proto b/third_party/googleapis/google/type/money.proto index 98d6494e4..c61094336 100644 --- a/third_party/googleapis/google/type/money.proto +++ b/third_party/googleapis/google/type/money.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/month.proto b/third_party/googleapis/google/type/month.proto index 99e7551b1..19982cb51 100644 --- a/third_party/googleapis/google/type/month.proto +++ b/third_party/googleapis/google/type/month.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/phone_number.proto b/third_party/googleapis/google/type/phone_number.proto index 7bbb7d873..370d1623d 100644 --- a/third_party/googleapis/google/type/phone_number.proto +++ b/third_party/googleapis/google/type/phone_number.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/postal_address.proto b/third_party/googleapis/google/type/postal_address.proto index c57c7c31a..7023a9b3e 100644 --- a/third_party/googleapis/google/type/postal_address.proto +++ b/third_party/googleapis/google/type/postal_address.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/quaternion.proto b/third_party/googleapis/google/type/quaternion.proto index dfb822def..416de30cf 100644 --- a/third_party/googleapis/google/type/quaternion.proto +++ b/third_party/googleapis/google/type/quaternion.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/type/timeofday.proto b/third_party/googleapis/google/type/timeofday.proto index 5cb48aa93..3735745a4 100644 --- a/third_party/googleapis/google/type/timeofday.proto +++ b/third_party/googleapis/google/type/timeofday.proto @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/google/watcher/v1/watch.proto b/third_party/googleapis/google/watcher/v1/watch.proto index 644439827..8631c5466 100644 --- a/third_party/googleapis/google/watcher/v1/watch.proto +++ b/third_party/googleapis/google/watcher/v1/watch.proto @@ -1,4 +1,4 @@ -// Copyright 2017 Google Inc. +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/third_party/googleapis/grafeas/v1/BUILD.bazel b/third_party/googleapis/grafeas/v1/BUILD.bazel index ccb9380a9..fea885db9 100644 --- a/third_party/googleapis/grafeas/v1/BUILD.bazel +++ b/third_party/googleapis/grafeas/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "grafeas_proto", @@ -35,6 +38,7 @@ proto_library( "intoto_statement.proto", "package.proto", "provenance.proto", + "sbom.proto", "severity.proto", "slsa_provenance.proto", "slsa_provenance_zero_two.proto", @@ -127,6 +131,7 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -197,6 +202,7 @@ java_proto_library( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -286,6 +292,7 @@ go_proto_library( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -335,6 +342,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -351,11 +359,13 @@ php_gapic_library( name = "grafeas_php_gapic", srcs = [":grafeas_proto_with_info"], grpc_service_config = "grafeas_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "grafeas_v1.yaml", transport = "grpc+rest", - deps = [":grafeas_php_proto"], + deps = [ + ":grafeas_php_proto", + ], ) # Open Source Packages @@ -370,6 +380,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -400,6 +411,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -432,6 +444,7 @@ ruby_cloud_gapic_library( ruby_cloud_description = "The Grafeas API stores, and enables querying and retrieval of, critical metadata about all of your software artifacts.", ruby_cloud_title = "Grafeas V1", service_yaml = "grafeas_v1.yaml", + transport = "grpc", deps = [ ":grafeas_ruby_grpc", ":grafeas_ruby_proto", @@ -451,6 +464,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -477,6 +491,7 @@ csharp_gapic_library( grpc_service_config = "grafeas_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "grafeas_v1.yaml", + transport = "grpc", deps = [ ":grafeas_csharp_grpc", ":grafeas_csharp_proto", @@ -496,6 +511,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/third_party/googleapis/grafeas/v1/build.proto b/third_party/googleapis/grafeas/v1/build.proto index 172637fd4..d5d398c85 100644 --- a/third_party/googleapis/grafeas/v1/build.proto +++ b/third_party/googleapis/grafeas/v1/build.proto @@ -59,4 +59,10 @@ message BuildOccurrence { // payload of the statement can be stored and signed in the Occurrence's // envelope. InTotoStatement intoto_statement = 4; + + // In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa + // spec, wrapped in an in-toto statement. This allows for direct + // jsonification of a to-spec in-toto slsa statement with a to-spec + // slsa provenance. + InTotoSlsaProvenanceV1 in_toto_slsa_provenance_v1 = 5; } diff --git a/third_party/googleapis/grafeas/v1/common.proto b/third_party/googleapis/grafeas/v1/common.proto index 1464ecc9b..057616039 100644 --- a/third_party/googleapis/grafeas/v1/common.proto +++ b/third_party/googleapis/grafeas/v1/common.proto @@ -47,6 +47,8 @@ enum NoteKind { DSSE_ATTESTATION = 10; // This represents a Vulnerability Assessment. VULNERABILITY_ASSESSMENT = 11; + // This represents an SBOM Reference. + SBOM_REFERENCE = 12; } // Metadata for any related URL information. diff --git a/third_party/googleapis/grafeas/v1/compliance.proto b/third_party/googleapis/grafeas/v1/compliance.proto index 688fa8259..0c14dad68 100644 --- a/third_party/googleapis/grafeas/v1/compliance.proto +++ b/third_party/googleapis/grafeas/v1/compliance.proto @@ -44,6 +44,10 @@ message ComplianceNote { } // Serialized scan instructions with a predefined format. bytes scan_instructions = 7; + // Potential impact of the suggested remediation + oneof potential_impact { + string impact = 8; + } } // Describes the CIS benchmark version that is applicable to a given OS and diff --git a/third_party/googleapis/grafeas/v1/discovery.proto b/third_party/googleapis/grafeas/v1/discovery.proto index bfb94e4a3..bd37ac214 100644 --- a/third_party/googleapis/grafeas/v1/discovery.proto +++ b/third_party/googleapis/grafeas/v1/discovery.proto @@ -101,4 +101,26 @@ message DiscoveryOccurrence { // The time occurrences related to this discovery occurrence were archived. google.protobuf.Timestamp archive_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The status of an SBOM generation. + message SBOMStatus { + // An enum indicating the progress of the SBOM generation. + enum SBOMState { + // Default unknown state. + SBOM_STATE_UNSPECIFIED = 0; + // SBOM scanning is pending. + PENDING = 1; + // SBOM scanning has completed. + COMPLETE = 2; + } + + // The progress of the SBOM generation. + SBOMState sbom_state = 1; + // If there was an error generating an SBOM, this will indicate what that + // error was. + string error = 2; + } + + // The status of an SBOM generation. + SBOMStatus sbom_status = 9; } diff --git a/third_party/googleapis/grafeas/v1/grafeas.proto b/third_party/googleapis/grafeas/v1/grafeas.proto index 5ec930e6e..84d3f7a24 100644 --- a/third_party/googleapis/grafeas/v1/grafeas.proto +++ b/third_party/googleapis/grafeas/v1/grafeas.proto @@ -32,6 +32,7 @@ import "grafeas/v1/discovery.proto"; import "grafeas/v1/dsse_attestation.proto"; import "grafeas/v1/image.proto"; import "grafeas/v1/package.proto"; +import "grafeas/v1/sbom.proto"; import "grafeas/v1/upgrade.proto"; import "grafeas/v1/vex.proto"; import "grafeas/v1/vulnerability.proto"; @@ -66,6 +67,9 @@ service Grafeas { rpc GetOccurrence(GetOccurrenceRequest) returns (Occurrence) { option (google.api.http) = { get: "/v1/{name=projects/*/occurrences/*}" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/occurrences/*}" + } }; option (google.api.method_signature) = "name"; } @@ -75,6 +79,9 @@ service Grafeas { returns (ListOccurrencesResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*}/occurrences" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*}/occurrences" + } }; option (google.api.method_signature) = "parent,filter"; } @@ -123,6 +130,9 @@ service Grafeas { rpc GetOccurrenceNote(GetOccurrenceNoteRequest) returns (Note) { option (google.api.http) = { get: "/v1/{name=projects/*/occurrences/*}/notes" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/occurrences/*}/notes" + } }; option (google.api.method_signature) = "name"; } @@ -131,6 +141,7 @@ service Grafeas { rpc GetNote(GetNoteRequest) returns (Note) { option (google.api.http) = { get: "/v1/{name=projects/*/notes/*}" + additional_bindings { get: "/v1/{name=projects/*/locations/*/notes/*}" } }; option (google.api.method_signature) = "name"; } @@ -139,6 +150,7 @@ service Grafeas { rpc ListNotes(ListNotesRequest) returns (ListNotesResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*}/notes" + additional_bindings { get: "/v1/{parent=projects/*/locations/*}/notes" } }; option (google.api.method_signature) = "parent,filter"; } @@ -186,6 +198,9 @@ service Grafeas { returns (ListNoteOccurrencesResponse) { option (google.api.http) = { get: "/v1/{name=projects/*/notes/*}/occurrences" + additional_bindings { + get: "/v1/{name=projects/*/locations/*/notes/*}/occurrences" + } }; option (google.api.method_signature) = "name,filter"; } @@ -249,6 +264,8 @@ message Occurrence { grafeas.v1.ComplianceOccurrence compliance = 16; // Describes an attestation of an artifact using dsse. grafeas.v1.DSSEAttestationOccurrence dsse_attestation = 17; + // Describes a specific SBOM reference occurrences. + grafeas.v1.SBOMReferenceOccurrence sbom_reference = 19; } // https://github.com/secure-systems-lab/dsse @@ -317,6 +334,8 @@ message Note { grafeas.v1.DSSEAttestationNote dsse_attestation = 19; // A note describing a vulnerability assessment. grafeas.v1.VulnerabilityAssessmentNote vulnerability_assessment = 20; + // A note describing an SBOM reference. + grafeas.v1.SBOMReferenceNote sbom_reference = 21; } } diff --git a/third_party/googleapis/grafeas/v1/intoto_statement.proto b/third_party/googleapis/grafeas/v1/intoto_statement.proto index 1f798d0d6..d14b6970e 100644 --- a/third_party/googleapis/grafeas/v1/intoto_statement.proto +++ b/third_party/googleapis/grafeas/v1/intoto_statement.proto @@ -16,6 +16,8 @@ syntax = "proto3"; package grafeas.v1; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; import "grafeas/v1/intoto_provenance.proto"; import "grafeas/v1/slsa_provenance.proto"; import "grafeas/v1/slsa_provenance_zero_two.proto"; @@ -50,3 +52,55 @@ message Subject { // https://github.com/in-toto/attestation/blob/main/spec/field_types.md#DigestSet map digest = 2; } + +message InTotoSlsaProvenanceV1 { + // InToto spec defined at + // https://github.com/in-toto/attestation/tree/main/spec#statement + string type = 1 [json_name = "_type"]; + repeated Subject subject = 2; + string predicate_type = 3; + SlsaProvenanceV1 predicate = 4; + + // Keep in sync with schema at + // https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto + // Builder renamed to ProvenanceBuilder because of Java conflicts. + message SlsaProvenanceV1 { + BuildDefinition build_definition = 1; + RunDetails run_details = 2; + } + + message BuildDefinition { + string build_type = 1; + google.protobuf.Struct external_parameters = 2; + google.protobuf.Struct internal_parameters = 3; + repeated ResourceDescriptor resolved_dependencies = 4; + } + + message ResourceDescriptor { + string name = 1; + string uri = 2; + map digest = 3; + bytes content = 4; + string download_location = 5; + string media_type = 6; + map annotations = 7; + } + + message RunDetails { + ProvenanceBuilder builder = 1; + BuildMetadata metadata = 2; + repeated ResourceDescriptor byproducts = 3; + } + + message ProvenanceBuilder { + string id = 1; + map version = 2; + repeated ResourceDescriptor builder_dependencies = 3; + } + + message BuildMetadata { + string invocation_id = 1; + google.protobuf.Timestamp started_on = 2; + google.protobuf.Timestamp finished_on = 3; + } +} diff --git a/third_party/googleapis/grafeas/v1/sbom.proto b/third_party/googleapis/grafeas/v1/sbom.proto new file mode 100644 index 000000000..1c0938fdf --- /dev/null +++ b/third_party/googleapis/grafeas/v1/sbom.proto @@ -0,0 +1,78 @@ +// Copyright 2023 The Grafeas Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.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. + +syntax = "proto3"; + +package grafeas.v1; + +import "grafeas/v1/common.proto"; +import "grafeas/v1/intoto_statement.proto"; + +option go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas"; +option java_multiple_files = true; +option java_package = "io.grafeas.v1"; +option objc_class_prefix = "GRA"; + +// The note representing an SBOM reference. +message SBOMReferenceNote { + // The format that SBOM takes. E.g. may be spdx, cyclonedx, etc... + string format = 1; + // The version of the format that the SBOM takes. E.g. if the format + // is spdx, the version may be 2.3. + string version = 2; +} + +// The occurrence representing an SBOM reference as applied to a specific +// resource. The occurrence follows the DSSE specification. See +// https://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more +// details. +message SBOMReferenceOccurrence { + // The actual payload that contains the SBOM reference data. + SbomReferenceIntotoPayload payload = 1; + // The kind of payload that SbomReferenceIntotoPayload takes. Since it's in + // the intoto format, this value is expected to be + // 'application/vnd.in-toto+json'. + string payload_type = 2; + // The signatures over the payload. + repeated EnvelopeSignature signatures = 3; +} + +// The actual payload that contains the SBOM Reference data. +// The payload follows the intoto statement specification. See +// https://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md +// for more details. +message SbomReferenceIntotoPayload { + // Identifier for the schema of the Statement. + string type = 1 [json_name = "_type"]; + // URI identifying the type of the Predicate. + string predicate_type = 2; + // Set of software artifacts that the attestation applies to. Each element + // represents a single software artifact. + repeated Subject subject = 3; + // Additional parameters of the Predicate. Includes the actual data about the + // SBOM. + SbomReferenceIntotoPredicate predicate = 4; +} + +// A predicate which describes the SBOM being referenced. +message SbomReferenceIntotoPredicate { + // The person or system referring this predicate to the consumer. + string referrer_id = 1; + // The location of the SBOM. + string location = 2; + // The mime type of the SBOM. + string mime_type = 3; + // A map of algorithm to digest of the contents of the SBOM. + map digest = 4; +} diff --git a/third_party/googleapis/grafeas/v1/swagger/grafeas.swagger.json b/third_party/googleapis/grafeas/v1/swagger/grafeas.swagger.json index 414ae0d28..eeeb249d0 100644 --- a/third_party/googleapis/grafeas/v1/swagger/grafeas.swagger.json +++ b/third_party/googleapis/grafeas/v1/swagger/grafeas.swagger.json @@ -100,13 +100,13 @@ }, "/v1/{name_1}": { "get": { - "summary": "Gets the specified note.", - "operationId": "Grafeas_GetNote", + "summary": "Gets the specified occurrence.", + "operationId": "Grafeas_GetOccurrence2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1Note" + "$ref": "#/definitions/v1Occurrence" } }, "default": { @@ -119,11 +119,11 @@ "parameters": [ { "name": "name_1", - "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "description": "The name of the occurrence in the form of\n`projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", "in": "path", "required": true, "type": "string", - "pattern": "projects/[^/]+/notes/[^/]+" + "pattern": "projects/[^/]+/locations/[^/]+/occurrences/[^/]+" } ], "tags": [ @@ -209,15 +209,103 @@ ] } }, + "/v1/{name_1}/notes": { + "get": { + "summary": "Gets the note attached to the specified occurrence. Consumer projects can\nuse this method to get a note that belongs to a provider project.", + "operationId": "Grafeas_GetOccurrenceNote2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_1", + "description": "The name of the occurrence in the form of\n`projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+/occurrences/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{name_1}/occurrences": { + "get": { + "summary": "Lists occurrences referencing the specified note. Provider projects can use\nthis method to get all occurrences across consumer projects referencing the\nspecified note.", + "operationId": "Grafeas_ListNoteOccurrences2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListNoteOccurrencesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_1", + "description": "The name of the note to list occurrences for in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+/notes/[^/]+" + }, + { + "name": "filter", + "description": "The filter expression.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "pageSize", + "description": "Number of occurrences to return in the list.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pageToken", + "description": "Token to provide to skip to a particular spot in the list.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Grafeas" + ] + } + }, "/v1/{name_2}": { "get": { - "summary": "Gets the specified project.", - "operationId": "Projects_GetProject", + "summary": "Gets the specified note.", + "operationId": "Grafeas_GetNote", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/projectProject" + "$ref": "#/definitions/v1Note" } }, "default": { @@ -230,15 +318,15 @@ "parameters": [ { "name": "name_2", - "description": "The name of the project in the form of `projects/{PROJECT_ID}`.", + "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", "in": "path", "required": true, "type": "string", - "pattern": "projects/[^/]+" + "pattern": "projects/[^/]+/notes/[^/]+" } ], "tags": [ - "Projects" + "Grafeas" ] }, "delete": { @@ -273,6 +361,72 @@ ] } }, + "/v1/{name_3}": { + "get": { + "summary": "Gets the specified note.", + "operationId": "Grafeas_GetNote2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_3", + "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+/notes/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{name_4}": { + "get": { + "summary": "Gets the specified project.", + "operationId": "Projects_GetProject", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/projectProject" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_4", + "description": "The name of the project in the form of `projects/{PROJECT_ID}`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + } + ], + "tags": [ + "Projects" + ] + } + }, "/v1/{name}": { "get": { "summary": "Gets the specified occurrence.", @@ -472,6 +626,116 @@ ] } }, + "/v1/{parent_1}/notes": { + "get": { + "summary": "Lists notes for the specified project.", + "operationId": "Grafeas_ListNotes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListNotesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent_1", + "description": "The name of the project to list notes for in the form of\n`projects/[PROJECT_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+" + }, + { + "name": "filter", + "description": "The filter expression.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "pageSize", + "description": "Number of notes to return in the list. Must be positive. Max allowed page\nsize is 1000. If not specified, page size defaults to 20.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pageToken", + "description": "Token to provide to skip to a particular spot in the list.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{parent_1}/occurrences": { + "get": { + "summary": "Lists occurrences for the specified project.", + "operationId": "Grafeas_ListOccurrences2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListOccurrencesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent_1", + "description": "The name of the project to list occurrences for in the form of\n`projects/[PROJECT_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+" + }, + { + "name": "filter", + "description": "The filter expression.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "pageSize", + "description": "Number of occurrences to return in the list. Must be positive. Max allowed\npage size is 1000. If not specified, page size defaults to 20.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pageToken", + "description": "Token to provide to skip to a particular spot in the list.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Grafeas" + ] + } + }, "/v1/{parent}/notes": { "get": { "summary": "Lists notes for the specified project.", @@ -930,6 +1194,105 @@ "default": "CONTINUOUS_ANALYSIS_UNSPECIFIED", "description": "Whether the resource is continuously analyzed.\n\n - CONTINUOUS_ANALYSIS_UNSPECIFIED: Unknown.\n - ACTIVE: The resource is continuously analyzed.\n - INACTIVE: The resource is ignored for continuous analysis." }, + "DiscoveryOccurrenceSBOMStatus": { + "type": "object", + "properties": { + "sbomState": { + "$ref": "#/definitions/SBOMStatusSBOMState", + "description": "The progress of the SBOM generation." + }, + "error": { + "type": "string", + "description": "If there was an error generating an SBOM, this will indicate what that\nerror was." + } + }, + "description": "The status of an SBOM generation." + }, + "InTotoSlsaProvenanceV1BuildDefinition": { + "type": "object", + "properties": { + "buildType": { + "type": "string" + }, + "externalParameters": { + "type": "object" + }, + "internalParameters": { + "type": "object" + }, + "resolvedDependencies": { + "type": "array", + "items": { + "$ref": "#/definitions/v1InTotoSlsaProvenanceV1ResourceDescriptor" + } + } + } + }, + "InTotoSlsaProvenanceV1BuildMetadata": { + "type": "object", + "properties": { + "invocationId": { + "type": "string" + }, + "startedOn": { + "type": "string", + "format": "date-time" + }, + "finishedOn": { + "type": "string", + "format": "date-time" + } + } + }, + "InTotoSlsaProvenanceV1ProvenanceBuilder": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "version": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "builderDependencies": { + "type": "array", + "items": { + "$ref": "#/definitions/v1InTotoSlsaProvenanceV1ResourceDescriptor" + } + } + } + }, + "InTotoSlsaProvenanceV1RunDetails": { + "type": "object", + "properties": { + "builder": { + "$ref": "#/definitions/InTotoSlsaProvenanceV1ProvenanceBuilder" + }, + "metadata": { + "$ref": "#/definitions/InTotoSlsaProvenanceV1BuildMetadata" + }, + "byproducts": { + "type": "array", + "items": { + "$ref": "#/definitions/v1InTotoSlsaProvenanceV1ResourceDescriptor" + } + } + } + }, + "InTotoSlsaProvenanceV1SlsaProvenanceV1": { + "type": "object", + "properties": { + "buildDefinition": { + "$ref": "#/definitions/InTotoSlsaProvenanceV1BuildDefinition" + }, + "runDetails": { + "$ref": "#/definitions/InTotoSlsaProvenanceV1RunDetails" + } + }, + "description": "Keep in sync with schema at\nhttps://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto\nBuilder renamed to ProvenanceBuilder because of Java conflicts." + }, "JustificationJustificationType": { "type": "string", "enum": [ @@ -956,6 +1319,16 @@ "default": "REMEDIATION_TYPE_UNSPECIFIED", "description": "The type of remediation that can be applied.\n\n - REMEDIATION_TYPE_UNSPECIFIED: No remediation type specified.\n - MITIGATION: A MITIGATION is available.\n - NO_FIX_PLANNED: No fix is planned.\n - NONE_AVAILABLE: Not available.\n - VENDOR_FIX: A vendor fix is available.\n - WORKAROUND: A workaround is available." }, + "SBOMStatusSBOMState": { + "type": "string", + "enum": [ + "SBOM_STATE_UNSPECIFIED", + "PENDING", + "COMPLETE" + ], + "default": "SBOM_STATE_UNSPECIFIED", + "description": "An enum indicating the progress of the SBOM generation.\n\n - SBOM_STATE_UNSPECIFIED: Default unknown state.\n - PENDING: SBOM scanning is pending.\n - COMPLETE: SBOM scanning has completed." + }, "SlsaProvenanceMaterial": { "type": "object", "properties": { @@ -1061,7 +1434,11 @@ "properties": { "cve": { "type": "string", - "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE)\ntracking number for the vulnerability." + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE)\ntracking number for the vulnerability.\nDeprecated: Use vulnerability_id instead to denote CVEs." + }, + "vulnerabilityId": { + "type": "string", + "description": "The vulnerability identifier for this Assessment. Will hold one of\ncommon identifiers e.g. CVE, GHSA etc." }, "shortDescription": { "type": "string", @@ -1281,7 +1658,11 @@ "properties": { "cve": { "type": "string", - "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE)\ntracking number for the vulnerability." + "description": "Holds the MITRE standard Common Vulnerabilities and Exposures (CVE)\ntracking number for the vulnerability.\nDeprecated: Use vulnerability_id instead to denote CVEs." + }, + "vulnerabilityId": { + "type": "string", + "description": "The vulnerability identifier for this Assessment. Will hold one of\ncommon identifiers e.g. CVE, GHSA etc." }, "relatedUris": { "type": "array", @@ -1582,6 +1963,10 @@ "intotoStatement": { "$ref": "#/definitions/v1InTotoStatement", "description": "In-toto Statement representation as defined in spec.\nThe intoto_statement can contain any type of provenance. The serialized\npayload of the statement can be stored and signed in the Occurrence's\nenvelope." + }, + "inTotoSlsaProvenanceV1": { + "$ref": "#/definitions/v1InTotoSlsaProvenanceV1", + "description": "In-Toto Slsa Provenance V1 represents a slsa provenance meeting the slsa\nspec, wrapped in an in-toto statement. This allows for direct\njsonification of a to-spec in-toto slsa statement with a to-spec\nslsa provenance." } }, "description": "Details of a build occurrence." @@ -1992,6 +2377,9 @@ "type": "string", "format": "byte", "description": "Serialized scan instructions with a predefined format." + }, + "impact": { + "type": "string" } } }, @@ -2167,6 +2555,10 @@ "format": "date-time", "description": "The time occurrences related to this discovery occurrence were archived.", "readOnly": true + }, + "sbomStatus": { + "$ref": "#/definitions/DiscoveryOccurrenceSBOMStatus", + "description": "The status of an SBOM generation." } }, "description": "Provides information about the analysis status of a discovered resource." @@ -2398,6 +2790,60 @@ } } }, + "v1InTotoSlsaProvenanceV1": { + "type": "object", + "properties": { + "_type": { + "type": "string", + "title": "InToto spec defined at https://github.com/in-toto/attestation/tree/main/spec#statement" + }, + "subject": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Subject" + } + }, + "predicateType": { + "type": "string" + }, + "predicate": { + "$ref": "#/definitions/InTotoSlsaProvenanceV1SlsaProvenanceV1" + } + } + }, + "v1InTotoSlsaProvenanceV1ResourceDescriptor": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uri": { + "type": "string" + }, + "digest": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "content": { + "type": "string", + "format": "byte" + }, + "downloadLocation": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "annotations": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, "v1InTotoStatement": { "type": "object", "properties": { @@ -2656,6 +3102,10 @@ "vulnerabilityAssessment": { "$ref": "#/definitions/v1VulnerabilityAssessmentNote", "description": "A note describing a vulnerability assessment." + }, + "sbomReference": { + "$ref": "#/definitions/v1SBOMReferenceNote", + "description": "A note describing an SBOM reference." } }, "description": "A type of analysis that can be done for a resource." @@ -2674,10 +3124,11 @@ "UPGRADE", "COMPLIANCE", "DSSE_ATTESTATION", - "VULNERABILITY_ASSESSMENT" + "VULNERABILITY_ASSESSMENT", + "SBOM_REFERENCE" ], "default": "NOTE_KIND_UNSPECIFIED", - "description": "Kind represents the kinds of notes supported.\n\n - NOTE_KIND_UNSPECIFIED: Default value. This value is unused.\n - VULNERABILITY: The note and occurrence represent a package vulnerability.\n - BUILD: The note and occurrence assert build provenance.\n - IMAGE: This represents an image basis relationship.\n - PACKAGE: This represents a package installed via a package manager.\n - DEPLOYMENT: The note and occurrence track deployment events.\n - DISCOVERY: The note and occurrence track the initial discovery status of a resource.\n - ATTESTATION: This represents a logical \"role\" that can attest to artifacts.\n - UPGRADE: This represents an available package upgrade.\n - COMPLIANCE: This represents a Compliance Note\n - DSSE_ATTESTATION: This represents a DSSE attestation Note\n - VULNERABILITY_ASSESSMENT: This represents a Vulnerability Assessment." + "description": "Kind represents the kinds of notes supported.\n\n - NOTE_KIND_UNSPECIFIED: Default value. This value is unused.\n - VULNERABILITY: The note and occurrence represent a package vulnerability.\n - BUILD: The note and occurrence assert build provenance.\n - IMAGE: This represents an image basis relationship.\n - PACKAGE: This represents a package installed via a package manager.\n - DEPLOYMENT: The note and occurrence track deployment events.\n - DISCOVERY: The note and occurrence track the initial discovery status of a resource.\n - ATTESTATION: This represents a logical \"role\" that can attest to artifacts.\n - UPGRADE: This represents an available package upgrade.\n - COMPLIANCE: This represents a Compliance Note\n - DSSE_ATTESTATION: This represents a DSSE attestation Note\n - VULNERABILITY_ASSESSMENT: This represents a Vulnerability Assessment.\n - SBOM_REFERENCE: This represents an SBOM Reference." }, "v1Occurrence": { "type": "object", @@ -2756,6 +3207,10 @@ "$ref": "#/definitions/v1DSSEAttestationOccurrence", "description": "Describes an attestation of an artifact using dsse." }, + "sbomReference": { + "$ref": "#/definitions/v1SBOMReferenceOccurrence", + "description": "Describes a specific SBOM reference occurrences." + }, "envelope": { "$ref": "#/definitions/v1Envelope", "title": "https://github.com/secure-systems-lab/dsse" @@ -2946,6 +3401,91 @@ }, "description": "A unique identifier for a Cloud Repo." }, + "v1SBOMReferenceNote": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "The format that SBOM takes. E.g. may be spdx, cyclonedx, etc..." + }, + "version": { + "type": "string", + "description": "The version of the format that the SBOM takes. E.g. if the format\nis spdx, the version may be 2.3." + } + }, + "description": "The note representing an SBOM reference." + }, + "v1SBOMReferenceOccurrence": { + "type": "object", + "properties": { + "payload": { + "$ref": "#/definitions/v1SbomReferenceIntotoPayload", + "description": "The actual payload that contains the SBOM reference data." + }, + "payloadType": { + "type": "string", + "description": "The kind of payload that SbomReferenceIntotoPayload takes. Since it's in\nthe intoto format, this value is expected to be\n'application/vnd.in-toto+json'." + }, + "signatures": { + "type": "array", + "items": { + "$ref": "#/definitions/v1EnvelopeSignature" + }, + "description": "The signatures over the payload." + } + }, + "description": "The occurrence representing an SBOM reference as applied to a specific\nresource. The occurrence follows the DSSE specification. See\nhttps://github.com/secure-systems-lab/dsse/blob/master/envelope.md for more\ndetails." + }, + "v1SbomReferenceIntotoPayload": { + "type": "object", + "properties": { + "_type": { + "type": "string", + "description": "Identifier for the schema of the Statement." + }, + "predicateType": { + "type": "string", + "description": "URI identifying the type of the Predicate." + }, + "subject": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Subject" + }, + "description": "Set of software artifacts that the attestation applies to. Each element\nrepresents a single software artifact." + }, + "predicate": { + "$ref": "#/definitions/v1SbomReferenceIntotoPredicate", + "description": "Additional parameters of the Predicate. Includes the actual data about the\nSBOM." + } + }, + "description": "The actual payload that contains the SBOM Reference data.\nThe payload follows the intoto statement specification. See\nhttps://github.com/in-toto/attestation/blob/main/spec/v1.0/statement.md\nfor more details." + }, + "v1SbomReferenceIntotoPredicate": { + "type": "object", + "properties": { + "referrerId": { + "type": "string", + "description": "The person or system referring this predicate to the consumer." + }, + "location": { + "type": "string", + "description": "The location of the SBOM." + }, + "mimeType": { + "type": "string", + "description": "The mime type of the SBOM." + }, + "digest": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of algorithm to digest of the contents of the SBOM." + } + }, + "description": "A predicate which describes the SBOM being referenced." + }, "v1Severity": { "type": "string", "enum": [ @@ -3441,6 +3981,10 @@ }, "vexAssessment": { "$ref": "#/definitions/VulnerabilityOccurrenceVexAssessment" + }, + "extraDetails": { + "type": "string", + "description": "Occurrence-specific extra details about the vulnerability." } }, "description": "An occurrence of a severity vulnerability on a resource." diff --git a/third_party/googleapis/grafeas/v1/vex.proto b/third_party/googleapis/grafeas/v1/vex.proto index ba53a8438..ca952fa81 100644 --- a/third_party/googleapis/grafeas/v1/vex.proto +++ b/third_party/googleapis/grafeas/v1/vex.proto @@ -91,7 +91,12 @@ message VulnerabilityAssessmentNote { message Assessment { // Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) // tracking number for the vulnerability. - string cve = 1; + // Deprecated: Use vulnerability_id instead to denote CVEs. + string cve = 1 [deprecated = true]; + + // The vulnerability identifier for this Assessment. Will hold one of + // common identifiers e.g. CVE, GHSA etc. + string vulnerability_id = 9; // A one sentence description of this Vex. string short_description = 2; diff --git a/third_party/googleapis/grafeas/v1/vulnerability.proto b/third_party/googleapis/grafeas/v1/vulnerability.proto index 3b316eb8d..ee1381332 100644 --- a/third_party/googleapis/grafeas/v1/vulnerability.proto +++ b/third_party/googleapis/grafeas/v1/vulnerability.proto @@ -259,7 +259,12 @@ message VulnerabilityOccurrence { message VexAssessment { // Holds the MITRE standard Common Vulnerabilities and Exposures (CVE) // tracking number for the vulnerability. - string cve = 1; + // Deprecated: Use vulnerability_id instead to denote CVEs. + string cve = 1 [deprecated = true]; + + // The vulnerability identifier for this Assessment. Will hold one of + // common identifiers e.g. CVE, GHSA etc. + string vulnerability_id = 8; // Holds a list of references associated with this vulnerability item and // assessment. @@ -288,10 +293,13 @@ message VulnerabilityOccurrence { grafeas.v1.VulnerabilityAssessmentNote.Assessment.Justification justification = 7; - // Next ID: 8 + // Next ID: 9 } VexAssessment vex_assessment = 13; - // Next free ID is 14. + // Occurrence-specific extra details about the vulnerability. + string extra_details = 14; + + // Next free ID is 15. }